From a5dc5841fb0c8e940619fdadf70ce7fa036bc282 Mon Sep 17 00:00:00 2001 From: Alex Yang Date: Sun, 25 Jan 2026 16:13:52 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E7=89=88=E6=9C=AC=E5=88=B02.?= =?UTF-8?q?0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CHANGELOG.md | 48 +- build-windows.sh | 5 - build.sh | 11 +- config.json | 40 +- config/config.go | 82 +- data/gflist.txt | 2572 ++ data/gfwlist.txt | 7552 +++++ dns-server.service | 24 + dns/cache.go | 792 +- dns/server.go | 2072 +- download.sh | 12 - gfw/manager.go | 241 + http/server.go | 90 +- logger/logger.go | 6 +- main.go | 37 +- package.json | 18 - shield/manager.go | 73 +- start.sh | 176 + static/api/index.html | 6 +- static/api/js/index.js | 2 +- static/css/font-awesome.min.css | 3045 ++ static/css/style.css | 156 +- static/css/vendor/tailwind.css | 83 + static/css/webfonts/fontawesome-webfont.eot | Bin 0 -> 165742 bytes static/css/webfonts/fontawesome-webfont.svg | 2671 ++ static/css/webfonts/fontawesome-webfont.woff | Bin 0 -> 98024 bytes static/css/webfonts/fontawesome-webfont.woff2 | Bin 0 -> 77160 bytes static/domain-info/domains/domain-info.json | 4081 +++ static/domain-info/tracker/trackers.json | 25347 ++++++++++++++++ static/domain-info/tracker/trackers.json.bak | 25333 +++++++++++++++ static/images/gfwlist/amazon.png | Bin 0 -> 4630 bytes static/images/gfwlist/bbc.png | Bin 0 -> 4812 bytes static/images/gfwlist/discord.png | Bin 0 -> 6764 bytes static/images/gfwlist/dropbox.png | Bin 0 -> 4231 bytes static/images/gfwlist/google.png | Bin 0 -> 4744 bytes static/images/gfwlist/mediawiki.png | Bin 0 -> 10457 bytes static/images/gfwlist/microsoft.png | Bin 0 -> 2217 bytes static/images/gfwlist/steam.png | Bin 0 -> 5326 bytes static/images/gfwlist/telegram.png | Bin 0 -> 4259 bytes static/images/gfwlist/tiktok.png | Bin 0 -> 5658 bytes static/images/gfwlist/v2ex.png | Bin 0 -> 4921 bytes static/images/gfwlist/wikimedia.png | Bin 0 -> 7161 bytes static/images/gfwlist/yahoo.png | Bin 0 -> 6143 bytes static/images/gfwlist/youtube.png | Bin 0 -> 9458 bytes static/images/user.jpg | Bin 0 -> 1114 bytes static/index.html | 669 +- static/js/api.js | 162 +- static/js/config.js | 299 +- static/js/dashboard.js | 2366 +- static/js/logs.js | 1009 +- static/js/main.js | 276 +- static/js/shield.js | 2 +- tailwind.config.js | 24 - temp_config.json | 52 - 54 files changed, 76520 insertions(+), 2914 deletions(-) delete mode 100755 build-windows.sh create mode 100644 data/gflist.txt create mode 100644 data/gfwlist.txt create mode 100644 dns-server.service delete mode 100755 download.sh create mode 100644 gfw/manager.go delete mode 100644 package.json create mode 100755 start.sh create mode 100644 static/css/font-awesome.min.css create mode 100644 static/css/vendor/tailwind.css create mode 100644 static/css/webfonts/fontawesome-webfont.eot create mode 100644 static/css/webfonts/fontawesome-webfont.svg create mode 100644 static/css/webfonts/fontawesome-webfont.woff create mode 100644 static/css/webfonts/fontawesome-webfont.woff2 create mode 100644 static/domain-info/domains/domain-info.json create mode 100644 static/domain-info/tracker/trackers.json create mode 100644 static/domain-info/tracker/trackers.json.bak create mode 100644 static/images/gfwlist/amazon.png create mode 100644 static/images/gfwlist/bbc.png create mode 100644 static/images/gfwlist/discord.png create mode 100644 static/images/gfwlist/dropbox.png create mode 100644 static/images/gfwlist/google.png create mode 100644 static/images/gfwlist/mediawiki.png create mode 100644 static/images/gfwlist/microsoft.png create mode 100644 static/images/gfwlist/steam.png create mode 100644 static/images/gfwlist/telegram.png create mode 100644 static/images/gfwlist/tiktok.png create mode 100644 static/images/gfwlist/v2ex.png create mode 100644 static/images/gfwlist/wikimedia.png create mode 100644 static/images/gfwlist/yahoo.png create mode 100644 static/images/gfwlist/youtube.png create mode 100644 static/images/user.jpg delete mode 100644 tailwind.config.js delete mode 100644 temp_config.json diff --git a/CHANGELOG.md b/CHANGELOG.md index 05b31ee..58a7128 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,47 @@ # Changelog 所有对本项目的显著更改都将记录在此文件中。 +## [2.0.0] - 2026-01-18 +### 重大重构 +- **核心查询逻辑重构**:移除了所有响应合并相关代码,简化了DNS查询处理流程 +- **并行查询模式重设计**:改为返回第一个成功响应,提高响应速度 +- **fast-ip模式优化**:只向一个预先测试出的最快服务器发送请求,降低资源消耗 +- **代码结构优化**:移除了冗余的响应合并机制,减少了内存占用和CPU消耗 + +### 移除 +- 删除了 `mergeResponses` 函数:不再合并多个DNS响应 +- 删除了 `recordKey` 结构体:不再需要唯一标识DNS记录 +- 删除了 `getRecordKey` 函数:不再需要获取DNS记录的唯一标识 +- 移除了所有响应合并相关的代码 + +### 改进 +- **parallel模式**:向多个上游服务器并行发送请求,返回第一个成功响应 +- **fast-ip模式**:通过ping测试选择最快服务器,只向一个服务器发送请求 +- **默认模式**:采用新的并行查询逻辑,返回第一个成功响应 +- **资源管理**:优化了连接池使用,减少资源消耗 +- **DNSSEC验证**:只对将要返回的响应进行验证,减少不必要的计算 + +### 性能提升 +- 减少了内存占用:不再存储多个响应进行合并 +- 降低了CPU消耗:移除了复杂的响应合并算法 +- 提高了响应速度:返回第一个成功响应,无需等待所有服务器响应 +- 减少了网络流量:fast-ip模式只向一个服务器发送请求 + +## [1.2.7] - 2026-01-17 +### 改进 +- 实现服务器启动时远程屏蔽列表获取和DNS服务启动同时进行 +- 新增`LoadLocalRulesOnly()`方法,只加载本地规则和hosts文件,确保服务器快速启动 +- 在main.go中使用`LoadLocalRulesOnly()`替代`LoadRules()`,不再等待远程规则获取完成 +- 添加异步加载远程规则的goroutine,服务器启动后在后台加载远程规则 +- 优化缓存机制,本地有缓存时自动加载,服务器启动时只检查更新而不是重新获取 +- 修改`fetchRemoteRules`方法,只有在缓存需要更新时才去远程获取规则,否则直接从缓存加载 +- 完善错误处理,当从远程获取失败时,尝试使用过期的缓存 +- 服务器和设置界面优化调整,增加缓存模式设置、缓存大小、缓存时间设置 + +## [1.2.6] - 2025-12-30 +### 新增 +- 实现查询日志详情的域名信息显示功能 +- 实现GFWList功能,可以使用Steam++作为代理访问YouTube,谷歌等被屏蔽的网站 ## [1.2.5] - 2025-12-26 ### 新增 - 增加了对IPv6的支持配置项,默认关闭; @@ -21,9 +62,6 @@ - 修复了DNS查询超时设置过短导致的"Server failed"错误。 ### 更新 - 更新Swagger API文档。 -### 下一版本改进 -- 增加了对DNSSEC的支持配置项,默认关闭; - ## [1.2.4] - 2025-12-25 ### 改进 @@ -99,13 +137,13 @@ ### 修改 - 在forwardDNSRequestWithCache函数中添加域名匹配逻辑,检查域名是否包含不验证DNSSEC的模式 -- 在所有查询模式(parallel、loadbalance、fastest-ip、default)中实现跳过DNSSEC验证的功能 +- 在所有查询模式(parallel、fastest-ip、default)中实现跳过DNSSEC验证的功能 ## [1.1.1] - 2025-12-19 ### 修改 - 修复NXDOMAIN响应传播逻辑,确保上游DNS服务器返回的NXDOMAIN响应能正确传递给客户端 -- 优化loadbalance、fastest-ip和parallel查询模式下的NXDOMAIN响应选择机制 +- 优化fastest-ip和parallel查询模式下的NXDOMAIN响应选择机制 - 确保不存在的域名能被正确识别并返回NXDOMAIN状态码 - 修复服务器绑定地址配置,确保IPv4兼容性 diff --git a/build-windows.sh b/build-windows.sh deleted file mode 100755 index f070b7e..0000000 --- a/build-windows.sh +++ /dev/null @@ -1,5 +0,0 @@ -CGO_ENABLED=1 \ -GOOS=windows \ -GOARCH=amd64 \ -CC=gcc \ -go build -o dns-server.exe main.go diff --git a/build.sh b/build.sh index 6048767..caf9aa7 100755 --- a/build.sh +++ b/build.sh @@ -1,5 +1,6 @@ -CGO_ENABLED=1 \ -GOOS=linux \ -GOARCH=amd64 \ -CC=gcc \ -go build -ldflags "-linkmode external -extldflags '-static -pthread'" -o dns-server main.go +CGO_ENABLED=1 +GOOS=linux +GOARCH=amd64 +CC=gcc +service dns-server stop && go build -o dns-server main.go && service dns-server start + diff --git a/config.json b/config.json index 3373ce1..bd207b2 100644 --- a/config.json +++ b/config.json @@ -2,29 +2,29 @@ "dns": { "port": 53, "upstreamDNS": [ - "223.5.5.5:53" + "10.35.10.200", + "223.5.5.5", + "223.6.6.6" ], "dnssecUpstreamDNS": [ - "117.50.10.10", - "101.226.4.6", - "218.30.118.6", "208.67.220.220", "208.67.222.222" ], - "timeout": 5, - "saveInterval": 30, - "cacheTTL": 10, - "enableDNSSEC": true, + "saveInterval": 10, + "cacheTTL": 60, + "enableDNSSEC": false, "queryMode": "parallel", + "queryTimeout": 500, + "enableFastReturn": true, "domainSpecificDNS": { "addr.arpa": [ "10.35.10.200:53" ], "akadns": [ - "4.2.2.1:53" + "223.5.5.5:53" ], "akamai": [ - "4.2.2.1:53" + "223.5.5.5:53" ], "amazehome.cn": [ "10.35.10.200:53" @@ -36,7 +36,7 @@ "4.2.2.1:53" ], "steam": [ - "4.2.2.1:53" + "223.5.5.5:53" ] }, "noDNSSECDomains": [ @@ -45,7 +45,12 @@ "amazehome.xyz", ".cn" ], - "enableIPv6": false + "enableIPv6": false, + "cacheMode": "file", + "cacheSize": 100, + "maxCacheTTL": 60, + "minCacheTTL": 30, + "cacheFilePath": "data/cache.json" }, "http": { "port": 8080, @@ -60,7 +65,7 @@ "name": "AdGuard DNS filter", "url": "https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-filters/raw/branch/main/filter.txt", "enabled": true, - "lastUpdateTime": "2025-12-21T10:46:36.629Z" + "lastUpdateTime": "2026-01-23T01:04:32.424Z" }, { "name": "Adaway Default Blocklist", @@ -78,7 +83,7 @@ "name": "My GitHub Rules", "url": "https://gitea.amazehome.xyz/AMAZEHOME/hosts-and-filters/raw/branch/main/rules/costomize.txt", "enabled": true, - "lastUpdateTime": "2025-12-24T07:11:16.596Z" + "lastUpdateTime": "2026-01-17T19:04:34.551Z" }, { "name": "CNList", @@ -141,9 +146,14 @@ ], "updateInterval": 3600, "blockMethod": "NXDOMAIN", - "customBlockIP": "", + "customBlockIP": "0.0.0.2", "statsSaveInterval": 60 }, + "gfwList": { + "ip": "127.0.0.1", + "content": "", + "enabled": false + }, "log": { "level": "debug", "maxSize": 100, diff --git a/config/config.go b/config/config.go index 28961c4..cc113f9 100644 --- a/config/config.go +++ b/config/config.go @@ -17,14 +17,20 @@ type DNSConfig struct { Port int `json:"port"` UpstreamDNS []string `json:"upstreamDNS"` DNSSECUpstreamDNS []string `json:"dnssecUpstreamDNS"` // 用于DNSSEC查询的专用服务器 - Timeout int `json:"timeout"` SaveInterval int `json:"saveInterval"` // 数据保存间隔(秒) CacheTTL int `json:"cacheTTL"` // DNS缓存过期时间(分钟) EnableDNSSEC bool `json:"enableDNSSEC"` // 是否启用DNSSEC支持 - QueryMode string `json:"queryMode"` // 查询模式:"loadbalance"(负载均衡)、"parallel"(并行请求)、"fastest-ip"(最快的IP地址) + QueryMode string `json:"queryMode"` // 查询模式:"parallel"(并行请求)、"fastest-ip"(最快的IP地址) + QueryTimeout int `json:"queryTimeout"` // 查询超时时间(毫秒) + EnableFastReturn bool `json:"enableFastReturn"` // 是否启用快速返回机制 DomainSpecificDNS DomainSpecificDNS `json:"domainSpecificDNS"` // 域名特定DNS服务器配置 NoDNSSECDomains []string `json:"noDNSSECDomains"` // 不验证DNSSEC的域名模式列表 EnableIPv6 bool `json:"enableIPv6"` // 是否启用IPv6解析(AAAA记录) + CacheMode string `json:"cacheMode"` // 缓存模式:"memory"(内存缓存)、"file"(文件缓存) + CacheSize int `json:"cacheSize"` // 缓存大小限制(MB),0表示不缓存 + MaxCacheTTL int `json:"maxCacheTTL"` // 最大缓存TTL(分钟) + MinCacheTTL int `json:"minCacheTTL"` // 最小缓存TTL(分钟) + CacheFilePath string `json:"cacheFilePath"` // 缓存文件路径 } // HTTPConfig HTTP控制台配置 @@ -49,9 +55,16 @@ type BlacklistEntry struct { type ShieldConfig struct { Blacklists []BlacklistEntry `json:"blacklists"` UpdateInterval int `json:"updateInterval"` - BlockMethod string `json:"blockMethod"` // 屏蔽方法: "NXDOMAIN", "refused", "emptyIP", "customIP" - CustomBlockIP string `json:"customBlockIP"` // 自定义屏蔽IP,当BlockMethod为"customIP"时使用 - StatsSaveInterval int `json:"statsSaveInterval"` // 计数数据保存间隔(秒) + BlockMethod string `json:"blockMethod"` // 屏蔽方法: "NXDOMAIN", "refused", "emptyIP", "customIP" + CustomBlockIP string `json:"customBlockIP"` // 自定义屏蔽IP,当BlockMethod为"customIP"时使用 + StatsSaveInterval int `json:"statsSaveInterval"` // 计数数据保存间隔(秒) +} + +// GFWListConfig GFWList配置 +type GFWListConfig struct { + IP string `json:"ip"` // GFWList域名解析的目标IP地址 + Content string `json:"content"` // GFWList规则文件路径 + Enabled bool `json:"enabled"` // 是否启用GFWList功能 } // LogConfig 日志配置 @@ -64,10 +77,11 @@ type LogConfig struct { // Config 整体配置 type Config struct { - DNS DNSConfig `json:"dns"` - HTTP HTTPConfig `json:"http"` - Shield ShieldConfig `json:"shield"` - Log LogConfig `json:"log"` + DNS DNSConfig `json:"dns"` + HTTP HTTPConfig `json:"http"` + Shield ShieldConfig `json:"shield"` + GFWList GFWListConfig `json:"gfwList"` // GFWList配置 + Log LogConfig `json:"log"` } // LoadConfig 加载配置文件 @@ -87,9 +101,6 @@ func LoadConfig(path string) (*Config, error) { if config.DNS.Port == 0 { config.DNS.Port = 53 } - if config.DNS.Timeout == 0 { - config.DNS.Timeout = 5000 // 默认超时时间为5000毫秒 - } if len(config.DNS.UpstreamDNS) == 0 { config.DNS.UpstreamDNS = []string{"223.5.5.5:53", "223.6.6.6:53"} } @@ -100,10 +111,38 @@ func LoadConfig(path string) (*Config, error) { if config.DNS.CacheTTL == 0 { config.DNS.CacheTTL = 30 // 默认30分钟 } + // 缓存模式默认值 + if config.DNS.CacheMode == "" { + config.DNS.CacheMode = "memory" // 默认内存缓存 + } + // 缓存大小默认值(100MB) + if config.DNS.CacheSize == 0 { + config.DNS.CacheSize = 100 // 默认100MB + } + // 最大缓存TTL默认值(120分钟) + if config.DNS.MaxCacheTTL == 0 { + config.DNS.MaxCacheTTL = 120 // 默认120分钟 + } + // 最小缓存TTL默认值(5分钟) + if config.DNS.MinCacheTTL == 0 { + config.DNS.MinCacheTTL = 5 // 默认5分钟 + } + // 缓存文件路径固定为data/cache.json,不再从配置文件读取 + config.DNS.CacheFilePath = "data/cache.json" // DNSSEC默认配置 - config.DNS.EnableDNSSEC = true // 默认启用DNSSEC支持 + // 如果未在配置文件中设置,默认启用DNSSEC支持 + // json.Unmarshal会将未设置的布尔字段设为false,所以我们需要显式检查 + // 但由于这是一个新字段,为了向后兼容,我们保持默认值为true + // 注意:如果用户在配置文件中明确设置为false,则使用false + if !config.DNS.EnableDNSSEC { + // 检查是否真的是用户设置为false,还是默认值 + // 由于JSON布尔值默认是false,我们无法直接区分 + // 所以这里保持默认行为,让用户可以通过配置文件设置为false + } // IPv6默认配置 - config.DNS.EnableIPv6 = true // 默认启用IPv6解析 + // 注意:我们不能直接设置默认值,因为JSON布尔值默认是false + // 我们需要检查配置文件中是否真的设置了这个字段 + // 由于我们无法直接区分,这里保持现状,让用户可以通过配置文件设置为false // DNSSEC专用服务器默认配置 if len(config.DNS.DNSSECUpstreamDNS) == 0 { config.DNS.DNSSECUpstreamDNS = []string{"8.8.8.8:53", "1.1.1.1:53"} @@ -112,6 +151,14 @@ func LoadConfig(path string) (*Config, error) { if config.DNS.QueryMode == "" { config.DNS.QueryMode = "parallel" // 默认使用并行请求模式 } + // 查询超时默认配置(毫秒) + if config.DNS.QueryTimeout == 0 { + config.DNS.QueryTimeout = 500 // 默认超时时间为500ms + } + // 快速返回机制默认配置 + if config.DNS.EnableFastReturn == false { + config.DNS.EnableFastReturn = true // 默认启用快速返回机制 + } // 域名特定DNS服务器配置默认值 if config.DNS.DomainSpecificDNS == nil { config.DNS.DomainSpecificDNS = make(DomainSpecificDNS) // 默认为空映射 @@ -140,6 +187,13 @@ func LoadConfig(path string) (*Config, error) { config.Shield.StatsSaveInterval = 300 // 默认5分钟保存一次 } + // GFWList默认配置 + if config.GFWList.IP == "" { + config.GFWList.IP = "127.0.0.1" // 默认GFWList解析目标IP为127.0.0.1 + } + // GFWList默认启用(仅当未在配置文件中明确设置为false时) + // 注意:如果用户在配置文件中明确设置为false,则保持为false + // 如果黑名单列表为空,添加一些默认的黑名单 if len(config.Shield.Blacklists) == 0 { config.Shield.Blacklists = []BlacklistEntry{ diff --git a/data/gflist.txt b/data/gflist.txt new file mode 100644 index 0000000..9806b0e --- /dev/null +++ b/data/gflist.txt @@ -0,0 +1,2572 @@ +W0F1dG9Qcm94eSAwLjIuOV0KISBDaGVja3N1bTogQVg1c3RUZ3B2eDg0MkRBNkxk +dEtBdwohIEV4cGlyZXM6IDZoCiEgVGl0bGU6IEdGV0xpc3Q0TEwKISBHRldMaXN0 +IHdpdGggRVZFUllUSElORyBpbmNsdWRlZAohIExhc3QgTW9kaWZpZWQ6IFNhdCwg +MTMgU2VwIDIwMjUgMDQ6MTM6NDUgKzAwMDAKIQohIEhvbWVQYWdlOiBodHRwczov +L2dpdGh1Yi5jb20vZ2Z3bGlzdC9nZndsaXN0CiEgTGljZW5zZTogaHR0cHM6Ly93 +d3cuZ251Lm9yZy9saWNlbnNlcy9vbGQtbGljZW5zZXMvbGdwbC0yLjEudHh0CiEK +ISBHRldMaXN0IGlzIHVubGlrZWx5IHRvIGZ1bGx5IGNvbXByaXNlIHRoZSByZWFs +CiEgcnVsZXMgYmVpbmcgZGVwbG95ZWQgaW5zaWRlIEdGVyBzeXN0ZW0uIFdlIHRy +eQohIG91ciBiZXN0IHRvIGtlZXAgdGhlIGxpc3QgdXAgdG8gZGF0ZS4gUGxlYXNl +CiEgY29udGFjdCB1cyByZWdhcmRpbmcgVVJMIHN1Ym1pc3Npb24gLyByZW1vdmFs +LAohIG9yIHN1Z2dlc3Rpb24gLyBlbmhhbmNlbWVudCBhdCBpc3N1ZSB0cmFja2Vy +OgohIGh0dHBzOi8vZ2l0aHViLmNvbS9nZndsaXN0L2dmd2xpc3QvaXNzdWVzLy4K +CiEtLS0tLS0tLS00MDMvNDUxLzUwMy81MjAgJiBVUkwgUmVkaXJlY3RzLS0tLS0t +LS0tCnx8YmxvZ2phdi5uZXQKfHx6b29taW5mby5jb20KfHxwdHd4ei5jb20KfHxt +aXVpcG9sc2thLnBsCnx8cGlhb3RpYS5jb20KfHx3dW5kZXJncm91bmQuY29tCnx8 +NTAwcHguY29tCnx8NTAwcHgub3JnCiEtLWVoZW50YWkKfGh0dHA6Ly84NS4xNy43 +My4zMS8KIS0tfHxhZG9yYW1hLmNvbQp8fGFmcmVlY2F0di5jb20KfHxhZ25lc2Iu +ZnIKfHxhaXJpdGlsaWJyYXJ5LmNvbQp8fGFiZW1hdHYuYWthbWFpemVkLm5ldAp8 +fGxpbmVhci1hYmVtYXR2LmFrYW1haXplZC5uZXQKfHx2b2QtYWJlbWF0di5ha2Ft +YWl6ZWQubmV0Cnx8YWtpYmEtd2ViLmNvbQp8fGFsdHJlYy5jb20KfHxhbWF6b252 +aWRlby5jb20KfHxhbmdlbGEtbWVya2VsLmRlCnx8YW5nb2xhLm9yZwp8fGFudGhy +b3BpYy5jb20KfHxhcGFydG1lbnRyYXRpbmdzLmNvbQp8fGFwYXJ0bWVudHMuY29t +Cnx8YXJlbmEudGFpcGVpCnx8YXNzZXRzLmJ3YnguaW8KfHxhc3NpbXAub3JnCnx8 +YXRoZW5hZWl6b3UuY29tCnx8YmFua21vYmlsZXZpYmUuY29tCnx8YmFub3J0ZS5j +b20KfHxiZWVnLmNvbQp8fGdsb2JhbC5iaW5nLmNvbQp8fGJvb2t0b3BpYS5jb20u +YXUKfHxib3lzbWFzdGVyLmNvbQp8fGJ5bmV0LmNvLmlsCnx8YnlydXQub3JnCnx8 +Y2FyZmF4LmNvbQouY2FzaW5vYmVsbGluaS5jb20KfHxjYXNpbm9iZWxsaW5pLmNv +bQp8fGNlbnRhdXJvLmNvbS5icgp8fGNob2JpdC5jYwp8fGNpY2lhaS5jb20KfHxj +aWNpLmNvbQp8fGNsYXVkZS5haQp8fGNsZWFyc3VyYW5jZS5jb20KfHxjbmJldGEu +Y29tLnR3Cnx8Y291bnRlci5zb2NpYWwKfHxjb3N0Y28uY29tCnx8Y296ZS5jb20K +fHxjcm9zc2ZpcmUuY28ua3IKfHxjcnVuY2h5cm9sbC5jb20KfHxkMnBhc3MuY29t +Cnx8ZGFycGEubWlsCnx8ZGF3YW5naWRjLmNvbQp8fGRlZXplci5jb20KfHxkZXNp +cHJvLmRlCnx8ZGlzY29yZC5jb20KfHxkaXNjb3JkLmdnCnx8ZGlzY29yZGFwcC5j +b20KfHxkaXNjb3JkYXBwLm5ldAp8fGRpc2guY29tCnxodHRwOi8vaW1nLmRsc2l0 +ZS5qcC8KfHxkbTUzMC5uZXQKfHxkbWh5Lm9yZwp8fGRtbS5jby5qcAp8aHR0cDov +L3d3dy5kbW0uY29tL25ldGdhbWUKfHxkbnZvZC50dgp8fGR1Ym94LmNvbQp8fGR2 +ZHBhYy5jb20KfHxlZXN0aS5lZQp8fGVzdXJhbmNlLmNvbQouZXhwZWt0LmNvbQp8 +fGV4cGVrdC5jb20KLmV4dG1hdHJpeC5jb20KfHxleHRtYXRyaXguY29tCnx8ZmFr +a3UubmV0Cnx8ZmFzdHBpYy5ydQp8fGZpbGVzb3IuY29tCnx8ZmluYW5jZXR3aXR0 +ZXIuY29tCnx8ZmxpcGJvYXJkLmNvbQp8fGZsaXR0by5jb20KfHxmbmFjLmJlCnx8 +Zm5hYy5jb20KfHxmdW5reWltZy5jb20KfHxmeG5ldHdvcmtzLmNvbQp8fGctYXJl +YS5vcmcKfHxnZXR0eWltYWdlcy4qCkBAfHxnZXR0eWltYWdlcy5jb20KQEB8fGdl +dHR5aW1hZ2VzLmNuCnx8Z2V0dXBsb2FkZXIuY29tCnx8Z2hpZHJhLXNyZS5vcmcK +IS0tfGh0dHBzOi8vZ2l0aHViLmNvbS9wcm9ncmFtdGhpbmsvemhhbwohLS18aHR0 +cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3Byb2dyYW10aGluay96aGFv +Cnx8Z2xhc3M4LmV1Cnx8Z2x5cGUuY29tCnx8Z28xNDEuY29tCnx8aGF1dGVsb29r +LmNvbQp8fGhhdXRlbG9va2Nkbi5jb20KfHx3ZWdvLmhlcmUuY29tCnx8Z3Jvay5j +b20KfHxobW9lZ2lybC5jb20KfHxobXZkaWdpdGFsLmNhCnx8aG12ZGlnaXRhbC5j +b20KfHxob21lZGVwb3QuY29tCnx8aG9vdmVycy5jb20KfHxodWx1LmNvbQp8fGh1 +bHVpbS5jb20KfGh0dHA6Ly9zZWN1cmUuaHVzdGxlci5jb20KfGh0dHA6Ly9odXN0 +bGVyY2FzaC5jb20KfGh0dHA6Ly93d3cuaHVzdGxlcmNhc2guY29tCnx8aHlicmlk +LWFuYWx5c2lzLmNvbQp8fGNkbiouaS1zY21wLmNvbQp8fGlsYmUuY29tCnx8aWxv +dmVsb25ndG9lcy5jb20KfGh0dHA6Ly9pbWdtZWdhLmNvbS8qLmdpZi5odG1sCnxo +dHRwOi8vaW1nbWVnYS5jb20vKi5qcGcuaHRtbAp8aHR0cDovL2ltZ21lZ2EuY29t +LyouanBlZy5odG1sCnxodHRwOi8vaW1nbWVnYS5jb20vKi5wbmcuaHRtbAp8fGlt +bGl2ZS5jbwp8fGphdmh1Yi5uZXQKfHxqYXZodWdlLmNvbQouamF2bGlicmFyeS5j +b20KfHxqYXZsaWJyYXJ5LmNvbQp8fGpjcGVubmV5LmNvbQp8fGppbXMubmV0Cnx8 +dHYuanRiYy5qb2lucy5jb20KfHxqdWt1am8tY2x1Yi5jb20KfHxqdWxpZXBvc3Qu +Y29tCnx8a2F3YWlpa2F3YWlpLmpwCnx8a2VuZGF0aXJlLmNvbQp8fGtoYXRyaW1h +emEub3JnCnx8a2tib3guY29tCnx8bGVpc3VyZXByby5jb20KfHxsaWZlbWlsZXMu +Y29tCnx8bGloLmtnCnx8bG9uZ3RvZXMuY29tCnx8bG92ZXR2c2hvdy5jb20KfHxs +cHNnLmNvbQp8fGxyZnouY29tCnxodHRwOi8vd3d3Lm0tc3BvcnQuY28udWsKfHxt +YWNnYW1lc3RvcmUuY29tCnx8bWFkb25uYS1hdi5jb20KfHxtYW5kaWFudC5jb20K +fHxtYW5nYWZveC5jb20KfHxtYW5nYWZveC5tZQp8fG1hbnRhLmNvbQp8fG1hdG9t +ZS1wbHVzLmNvbQp8fG1hdG9tZS1wbHVzLm5ldAp8fG1hdHR3aWxjb3gubmV0Cnx8 +bWV0YXJ0aHVudGVyLmNvbQp8fG1meG1lZGlhLmNvbQp8fG1pcmFoZXplLm9yZwp8 +fG1vamltLmNvbQp8fGtiLm1vbml0b3J3YXJlLmNvbQp8fG1vbnN0ZXIuY29tCnx8 +bW9vZHl6LmNvbQp8fG1vb25iaW5nby5jb20KfHxtb3MucnUKfHxhZGRvbnMubW96 +aWxsYS5vcmcvKi0qL2ZpcmVmb3gvYWRkb24vdWJsb2NrLW9yaWdpbi8qCnx8YWRk +b25zLm1vemlsbGEub3JnL2ZpcmVmb3gvZG93bmxvYWRzL2ZpbGUvKi91YmxvY2tf +b3JpZ2luLSoueHBpCnx8bXNoYS5nb3YKfHx3d3cubXNuLmNvbQp8fG11enUudHYK +fHxtdmcuanAKLm15YmV0LmNvbQp8fG15YmV0LmNvbQp8fG15cGlrcGFrLmNvbQp8 +fG5hdGlvbndpZGUuY29tCnxodHRwOi8vd3d3Lm5iYy5jb20vbGl2ZQp8fG5lby1t +aXJhY2xlLmNvbQp8fG5ldGZsaXguY29tCnx8bmV0ZmxpeC5uZXQKfHxuZmx4aW1n +LmNvbQp8fG5mbHhpbWcubmV0Cnx8bmZseGV4dC5jb20KfHxuZmx4c28ubmV0Cnx8 +bmZseHZpZGVvLm5ldAp8fG5pYy5nb3YKfGh0dHA6Ly9tby5uaWdodGxpZmUxNDEu +Y29tCnx8cHVycG9zZS5uaWtlLmNvbQp8fG5veGluZmx1ZW5jZXIuY29tCkBAfHxj +bi5ub3hpbmZsdWVuY2VyLmNvbQp8fG5vcmRzdHJvbS5jb20KfHxub3Jkc3Ryb21p +bWFnZS5jb20KfHxub3Jkc3Ryb21yYWNrLmNvbQp8fG5vdHRpbmdoYW1wb3N0LmNv +bQp8fG5wc2Jvb3N0LmNvbQp8fG50ZHR2LmN6Cnx8bnVzYXRyaXAuY29tCnx8bnV1 +dmVtLmNvbQp8fGJicy5ueWluZm9yLmNvbQp8fG9sZWhkdHYuY29tCnx8b21uaTcu +anAKfHxvbmFwcC5jb20KIS0tV2UgYXJlIGNvbmZ1c2VkIGFzIHdlbGwKfHxvbnRy +YWMuY29tCkBAfGh0dHA6Ly9ibG9nLm9udHJhYy5jb20KfHxvcGVuYWkuY29tCnx8 +cGFuZG9yYS5jb20KLnBhbmRvcmEudHYKfHxwYXJrYW5za3kuY29tCnx8cGhtc29j +aWV0eS5vcmcKfGh0dHA6Ly8qLnBpbWcudHcvCnx8cG9kY2FzdC5jbwp8fHBvcGFp +LnBybwp8fHByaW1ldmlkZW8uY29tCnx8cHJveWVjdG9jbHViZXMuY29tCnx8cHVy +ZTE4LmNvbQp8fHB5dG9yY2gub3JnCnx8cXEuY28uemEKfHxyMTguY29tCnxodHRw +Oi8vcmFkaWtvLmpwCnx8cmFtY2l0eS5jb20uYXUKfHxyYXRleW91cm11c2ljLmNv +bQp8fHJkLmNvbQp8aHR0cHM6Ly9yaXNldXAubmV0Cnx8c2FkaXN0aWMtdi5jb20K +fHxpc2Muc2Fucy5lZHUKfGh0dHA6Ly9jZG4qLnNlYXJjaC54eHgvCnx8c2hpa3No +YS5jb20KfHxzbGFja2VyLmNvbQp8fHNtLW1pcmFjbGUuY29tCnx8c295bGVudG5l +d3Mub3JnCnx8c3BvdGlmeS5jb20KfHxzcHJlYWRzaGlydC5lcwp8fHNwcmluZ2Jv +YXJkcGxhdGZvcm0uY29tCnx8c3ByaXRlLm9yZwpAQHxodHRwOi8vc3RvcmUuc3By +aXRlLm9yZwp8fHN1cGVycGFnZXMuY29tCnx8c3dhZ2J1Y2tzLmNvbQp8fHN3aXRj +aDEuanAKfHx0YXBhbndhcC5jb20KfHxnc3AudGFyZ2V0LmNvbQp8fGxvZ2luLnRh +cmdldC5jb20KIS0tQEB8fGludGwudGFyZ2V0LmNvbQp8fHJjYW0udGFyZ2V0LmNv +bQp8fHRlY2huZXdzLnR3Cnx8dGVyYWJveC5jb20KfHx0aGlua2dlZWsuY29tCnx8 +dGhlYm9keXNob3AtdXNhLmNvbQp8fHRtYS5jby5qcAp8fHRyYWNmb25lLmNvbQp8 +fHRyeWhlYXJ0LmpwCnx8dHVybnRhYmxlLmZtCnx8dHdlcmtpbmdidXR0LmNvbQp8 +fHVsb3AubmV0Cnx8dXVrYW5zaHUuY29tCnx8dmVnYXNyZWQuY29tCnx8dmV2by5j +b20KfHx2aXAtZW50ZXJwcmlzZS5jb20KfGh0dHA6Ly92aXUudHYvY2gvCnxodHRw +Oi8vdml1LnR2L2VuY29yZS8KfHx2bXBzb2Z0LmNvbQp8fHdhbnotZmFjdG9yeS5j +b20KfHxzc2wud2VicGFjay5kZQp8fHdlZWJseS5jb20KfHx3aGVyZXRvd2F0Y2gu +Y29tCnx8d2luZ2FtZXN0b3JlLmNvbQp8fHdpemNyYWZ0cy5uZXQKfHx3b3doZWFk +LmNvbQp8fHZvZC53d2UuY29tCnx8eGZpbml0eS5jb20KfHx4aWFvbWkuZXUKfHx5 +b3V3aW4uY29tCnx8eXRuLmNvLmtyCnx8emFtaW1nLmNvbQp8fHphdHRvby5jb20K +fHx6aW0udm4KfHx6b3pvdG93bi5jb20KCiEjIyMjIyMjIyMjIyMjI0dlbmVyYWwg +TGlzdCBTdGFydCMjIyMjIyMjIyMjIyMjIwohLS0tLS0tLS0tLS0tLS0tLS0tLUNv +aW4gUG9vbC0tLS0tLS0tLS0tLS0tLS0tLS0KfHxjM3Bvb2wuY29tCnx8dW5taW5l +YWJsZS5jb20KfHw2NjZwb29sLmNuCnx8YW50cG9vbC5jb20KfHxjcmF6eXBvb2wu +b3JnCnx8Y3J1eHBvb2wuY29tCnx8bWluaW5ncG9vbGh1Yi5jb20KfHxodW9iaXBv +b2wuY29tCnx8cG9vbGJpbmFuY2UuY29tCnx8aGl2ZW9uLm5ldAp8fHNwYXJrcG9v +bC5jb20KfHxmbHlwb29sLm9yZwp8fG5hbm9wb29sLm9yZwp8fHhucG9vbC5jb20K +fHxiZWVwb29sLmNvbQp8fHpoaXpodS50b3AKfHxzcGlkZXJwb29sLmNvbQp8fHV1 +cG9vbC5jbgp8fGZsZXhwb29sLmlvCnx8YmVlcG9vbC5vcmcKfHxkcG9vbC50b3AK +fHxva3Bvb2wubWUKfHxiaW5hbmNlemguY2MKfHxidGMuY29tCnx8ci1wb29sLm5l +dAp8fHctcG9vbC5jb20KCiEtLS0tLS0tLS0tLS0tLS0tLS0tUHVyZSBJUC0tLS0t +LS0tLS0tLS0tLS0tLS0tLQoxNC4xMDIuMjUwLjE4CjE0LjEwMi4yNTAuMTkKNTAu +Ny4zMS4yMzA6ODg5OAoxNzQuMTQyLjEwNS4xNTMKNjkuNjUuMTkuMTYwCgohLS0t +LS0tLS0tLS0tLS0tLS0tLS0tLUlETi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KfHx4 +bi0tMTF4czg2Zi5pY3UKfHx4bi0tNGdxMTcxcC5jb20KfHx4bi0tY3pxNzVwdnYx +YWo1Yy5vcmcKfHx4bi0taTJydThxMnFnLmNvbQp8fHhuLS1ub3NzNDNpLmNvbQp8 +fHhuLS1vaXEuY2MKfHx4bi0tcDhqOWEwZDljOWEueG4tLXE5anliNGMKfHx4bi0t +OXByNjJyMjRhLmNvbQpAQC9eaHR0cHM/OlwvXC8oPz0uKj8oMngzfG5pNXxqNW8p +KVthLXowLTkuLV0rXC54bi0tbmdzdHItbHJhOGpcLmNvbSQKfHx4bi0tbmdzdHIt +bHJhOGouY29tCgohLS0tLS0tLS0tLS0tLS0tLS1ETlMgUG9pc29uaW5nLS0tLS0t +LS0tLS0tLS0tLS0KIS0tLUFtYXpvbi0tLQohLXx8Y2RuLWltYWdlcy5tYWlsY2hp +bXAuY29tCnx8YWJlYm9va3MuY29tCnxodHRwczovLyouczMuYW1hem9uYXdzLmNv +bQoKfHw5Y2FjaGUuY29tCnx8OWdhZy5jb20KfHxhZ3JvLmhrCnx8c2hhcmUuYW1l +cmljYS5nb3YKfHxhcGttaXJyb3IuY29tCnx8YXJ0ZS50dgp8fGFydHN0YXRpb24u +Y29tCnx8YmFuZ2RyZWFtLnNwYWNlCnx8YmVoYW5jZS5uZXQKfHxiaXJkLnNvCnx8 +Yml0dGVyd2ludGVyLm9yZwp8fGJubi5jbwp8fGJ1c2luZXNzaW5zaWRlci5jb20K +fHxid2d5aHcuY29tCnx8Y2FzdGJveC5mbQp8fGNseXAuaXQKfHxjbWNuLm9yZwp8 +fGNteC5pbQp8fGRhaWx5dmlldy50dwp8fGRhdW0ubmV0Cnx8ZGVwb3NpdHBob3Rv +cy5jb20KfHxkaXNjb25uZWN0Lm1lCnx8ZG9jdW1lbnRpbmdyZWFsaXR5LmNvbQp8 +fGRvdWJpYmFja3VwLmNvbQp8fGVuY3ljbG9wZWRpYS5jb20KfHxmYW5nZXFpYW5n +LmNvbQp8fGZhbnFpYW5nZGFuZy5jb20KfHxmZWVkeC5uZXQKfHxmbHl6eTIwMDUu +Y29tCnx8Zm9yZWlnbnBvbGljeS5jb20KfHxmcmVlLXNzLnNpdGUKfHxmcmVlaG9u +Z2tvbmcub3JnCnx8YmxvZy5mdWNrZ2Z3MjMzLm9yZwp8fGcwdi5zb2NpYWwKfHxn +bG9iYWx2b2ljZXMub3JnCnx8Z2xvcnlzdGFyLm1lCnx8Z29yZWdyaXNoLmNvbQp8 +fGhhbmltZS50dgp8fGhiby5jb20KfHxzcGFjZXMuaGlnaHRhaWwuY29tCnx8aGtn +YWxkZW4uY29tCnx8aGtnb2xkZW4uY29tCnx8aHVkc29uLm9yZwp8fGlwZnMuaW8K +fHxqYXBhbnRpbWVzLmNvLmpwCnx8amlqaS5jb20KfHxqaW50aWFuLm5ldAp8fGpp +bnguY29tCnx8am9pbm1hc3RvZG9uLm9yZwp8fGxpYW5nemhpY2h1YW5tZWkuY29t +Cnx8bGlnaHRpLm1lCnx8bGlnaHR5ZWFydnBuLmNvbQp8fGxpaGtnLmNvbQp8fGxp +bmUtc2Nkbi5uZXQKfHxpLmxpdGhpdW0uY29tCnx8Y2xvdWQubWFpbC5ydQp8fGNk +bi1pbWFnZXMubWFpbGNoaW1wLmNvbQp8fG1hc3RvZG9uLmNsb3VkCnx8bWFzdG9k +b24uaG9zdAp8fG1hc3RvZG9uLnNvY2lhbAp8fG1hc3RvZG9uLnh5egp8fG1hdHRl +cnMubmV3cwp8fG1lLm1lCnx8bWV0YXJ0LmNvbQp8fG1vaHUuY2x1Ygp8fG1zYS1p +dC5vcmcKfHxnb28ubmUuanAKfHxuaWtrZWkuY29tCnx8bml0dGVyLmNjCnx8bml0 +dGVyLm5ldAp8fG5pdS5tb2UKfHxub3cuY29tCnx8b3BlbnZwbi5vcmcKfHxvbmVq +YXYuY29tCnx8cGFzdGUuZWUKfHxteS5wY2xvdWQuY29tCnx8cGljYWNvbWljLmNv +bQp8fHBpbmNvbmcucm9ja3MKfHxwaXhpdi5uZXQKfHxwaXhpdi5vcmcKfHxwaXhp +dnNrZXRjaC5uZXQKfHxwb3RhdG8uaW0KfHxwcmVtcHJveHkuY29tCnx8cHJpc20t +YnJlYWsub3JnCnx8cHJvdG9uLm1lCnx8cHJvdG9udnBuLmNvbQp8fGFwaS5wdXJl +YXBrLmNvbQp8fHF1b3JhLmNvbQp8fHF1b3JhY2RuLm5ldAp8fHF6LmNvbQp8fGNk +bi5zZWF0Z3VydS5jb20KfHxyZWRkLml0Cnx8cmVkZGl0c3BhY2UuY29tCnx8cmVk +ZGl0LmNvbQp8fHJlZGRpdGhlbHAuY29tCi5yZWRkaXRsaXN0LmNvbQp8aHR0cDov +L3JlZGRpdGxpc3QuY29tCnx8cmVkZGl0bWVkaWEuY29tCnx8cmVkZGl0c3RhdGlj +LmNvbQohLS1kZWZ1bmN0Cnx8cml4Y2xvdWQuY29tCnx8cml4Y2xvdWQudXMKfHxy +c2RsbW9uaXRvci5jb20KfHxzaGFkb3dzb2Nrcy5iZQp8fHRuMS5zaGVtYWxlei5j +b20KfHx0bjIuc2hlbWFsZXouY29tCnx8dG4zLnNoZW1hbGV6LmNvbQp8fHN0YXRp +Yy5zaGVtYWxlei5jb20KfHxzaXgtZGVncmVlcy5pbwp8fHNvZnRmYW1vdXMuY29t +Cnx8c29zcmVhZGVyLmNvbQp8fHNzcGFuZWwubmV0Cnx8c3VwY2hpbmEuY29tCnx8 +dGVkZHlzdW4uY29tCnx8dGV4dG5vdy5tZQp8fHRpbmV5ZS5jb20KfHx0b3AxMHZw +bi5jb20KfHx0dWJlcG9ybmNsYXNzaWMuY29tCnx8dWt1LmltCnx8dW5zZWVuLmlz +Cnx8Y24udXB0b2Rvd24uY29tCnx8dXJhYmFuLm1lCnx8dnJzbWFzaC5jb20KfHx2 +dWx0cnlody5jb20KfHxzY2FjaGUudnp3LmNvbQp8fHNjYWNoZTEudnp3LmNvbQp8 +fHNjYWNoZTIudnp3LmNvbQp8fHNzNy52encuY29tCnx8c3NyLnRvb2xzCnx8c3Rl +ZW1pdC5jb20KfHx0YWl3YW5qdXN0aWNlLm5ldAp8fHRpbmMtdnBuLm9yZwp8fHUx +NS5pbmZvCnx8d2FzaGluZ3RvbnBvc3QuY29tCnx8d2Vuemhhby5jYQp8fHdoYXRz +b253ZWliby5jb20KfHx3aXJlLmNvbQp8fHhtLmNvbQp8fHh1ZWh1YS51cwp8fHll +cy1uZXdzLmNvbQp8fHlpZ2VuaS5jb20KfHx5b3UtZ2V0Lm9yZwp8fHp6Y2xvdWQu +bWUKCiEtLS1EaWdpdGFsIEN1cnJlbmN5IEV4Y2hhbmdlKENSWVBUTyktLS0KfHxh +ZXguY29tCnx8YWxsY29pbi5jb20KfHxhZGNleC5jb20KfHxiY2V4LmNhCnx8Ymli +b3guY29tCnx8YmlnLm9uZQp8fGJpZ29uZS5jb20KfHxiaW5hbmNlLmNvbQp8fGJp +dC16LmNvbQp8fGJpdHouYWkKfHxiaXRiYXkubmV0Cnx8Yml0Y29pbndvcmxkLmNv +bQp8fGJpdGZpbmV4LmNvbQp8fGJpdGh1bWIuY29tCnx8Yml0bWV4LmNvbQp8fGJu +YnN0YXRpYy5jb20KfHxidGM5OC5jb20KfHxidGNiYW5rLmJhbmsKfHxidGN0cmFk +ZS5pbQp8fGJ5Yml0LmNvbQp8fGMyY3guY29tCnx8Y2hhb2V4LmNvbQp8fGNvYmlu +aG9vZC5jb20KfHxjb2luYmFzZS5jb20KfHxjb2luYmVuZS5jb20KfHxjb2luZXgu +Y29tCiEtLXxodHRwczovL3d3dy5jb2luZXhjaGFuZ2UuaW8vCnx8Y29pbmdlY2tv +LmNvbQp8fGNvaW5naS5jb20KfHxjb2lubWFya2V0Y2FwLmNvbQp8fGNvaW5yYWls +LmNvLmtyCnx8Y29pbnRpZ2VyLmNvbQp8fGNvaW50b2JlLmNvbQp8fGNvaW51dC5j +b20KfHxkaXNjb2lucy5jb20KfHxkcmFnb25leC5pbwp8fGVidGNiYW5rLmNvbQp8 +fGV0aGVyZGVsdGEuY29tCnx8ZXRoZXJtaW5lLm9yZwp8fGV0aGVyc2Nhbi5pbwp8 +fGV4bW8uY29tCnx8ZXhyYXRlcy5tZQp8fGYycG9vbC5jb20KfHxmYXRidGMuY29t +Cnx8ZnR4LmNvbQp8fGdhdGUuaW8KfHxnYXRlY29pbi5jb20KfHxoYmcuY29tCnx8 +aGl0YnRjLmNvbQp8fGhvdGNvaW4uY29tCnx8aHVvYmkuY28KfHxodW9iaS5jb20K +fHxodW9iaS5tZQohLS18fGh1b2JpLmxpCnx8aHVvYmkucHJvCnx8aHVvYmkuc2MK +fHxodW9iaXByby5jb20KfHxieC5pbi50aAp8fGpleC5jb20KfHxrZXguY29tCnx8 +a3Jha2VuLmNvbQp8fGtzcGNvaW4uY29tCnx8a3Vjb2luLmNvbQp8fGxiYW5rLmlu +Zm8KfHxsaXF1aWRpdHl0cC5jb20KfHxsaXZlY29pbi5uZXQKfHxsb2NhbGJpdGNv +aW5zLmNvbQp8fG1lcmNhdG94LmNvbQp8fG9hbmRhLmNvbQp8fG9ieXRlLm9yZwp8 +fG9leC5jb20KfHxva2V4LmNvbQp8fG9reC5jb20KfHxvcGVuc2VhLmlvCnx8b3Rj +YnRjLmNvbQp8fHBheGZ1bC5jb20KfHxwb29saW4uY29tCnx8c2ltcGxlc3dhcC5p +bwp8fHNvbHYuZmluYW5jZQp8fHRvcGJ0Yy5jb20KfHx0cm9uc2Nhbi5vcmcKfHx4 +YnRjZS5jb20KfHx5b2JpdC5uZXQKfHx6Yi5jb20KCiEtLS0tLS0tLS0tLS0tLS0t +RnJhdWRzICYgU2NhbXMtLS0tLS0tLS0tLS0tLS0tLQohIS0tLUNvbnRlbnQgRmFy +bShmYWtlIDUwMCBlcnJvciktLS0KfHxyZWFkMDEuY29tCnx8a2tuZXdzLmNjCgpj +aGluYS1tbW0uanAubmV0Ci5sc3hzenpnLmNvbQouY2hpbmEtbW1tLm5ldAp8fGNo +aW5hLW1tbS5uZXQKCiEtLS0tLS0tLS0tLS0tLS0tLS0tLS1Hcm91cHMtLS0tLS0t +LS0tLS0tLS0tLS0tLQohIS0tLU1hc3RlcmRvbi0tLQp8fGJnbWUubWUKfHxvM28u +Y2EKfHxnbzUuZGV2Cnx8bWUubnMuY2kKfHxtb3Jlc2NpLnNhbGUKfHxzb2NpYWwu +ZWR1LmNpCnx8bXN0ZG4uc29jaWFsCnx8ZG91Y2hpLnNwYWNlCnx8c2xhc2hpbmUu +b25sCnx8c29jaWFsLmRhdGFsYWJvdXIuY29tCnx8bWFzdG9kb24ub25saW5lCgoh +IS0tLUFmcmFpZCBGcmVlRE5TLS0tCi5hbGxvd2VkLm9yZwoubm93LmltCgohIS0t +LUFtYXpvbi0tLQp8fHBheW1lbnRzLWpwLmFtYXpvbi5jb20KfHxhbWF6b24uY28u +anAKfHxzMy1hcC0qLmFtYXpvbmF3cy5jb20KfHxzMy5ldS1jZW50cmFsLTEuYW1h +em9uYXdzLmNvbQp8fHMzLWV1LWNlbnRyYWwtMS5hbWF6b25hd3MuY29tCnx8czMu +dXMtZWFzdC0xLmFtYXpvbmF3cy5jb20KfHxzMy1hcC1ub3J0aGVhc3QtMi5hbWF6 +b25hd3MuY29tCnx8czMuYXAtbm9ydGhlYXN0LTIuYW1hem9uYXdzLmNvbQp8fHMz +LWFwLW5vcnRoZWFzdC0xLmFtYXpvbmF3cy5jb20KfHxzMy1hcC1zb3V0aGVhc3Qt +MS5hbWF6b25hd3MuY29tCnx8czMtYXAtc291dGhlYXN0LTIuYW1hem9uYXdzLmNv +bQoKISEtLS1BT0wtLS0KdmlkZW8uYW9sLmNhL3ZpZGVvLWRldGFpbAp2aWRlby5h +b2wuY28udWsvdmlkZW8tZGV0YWlsCnZpZGVvLmFvbC5jb20KfHx2aWRlby5hb2wu +Y29tCnx8c2VhcmNoLmFvbC5jb20Kd3d3LmFvbG5ld3MuY29tCgohIS0tLUF2TW9v +LS0tCi5hdm1vLnB3CiEtLXxodHRwOi8vYXZtby5wdwouYXZtb28uY29tCnxodHRw +Oi8vYXZtb28uY29tCi5hdm1vby5uZXQKfGh0dHA6Ly9hdm1vby5uZXQKfHxhdm1v +by5wdwouamF2bW9vLnh5egp8aHR0cDovL2phdm1vby54eXoKLmphdnRhZy5jb20K +fGh0dHA6Ly9qYXZ0YWcuY29tCi5qYXZ6b28uY29tCnxodHRwOi8vamF2em9vLmNv +bQoudGVsbG1lLnB3CgohIS0tLUJCQy0tLQohLS0uYmJjLmNvLnVrL2Jsb2dzCiEt +LS5iYmMuY28udWsvY2hpbmVzZQohLS0uYmJjLmNvLnVrL25ld3Mvd29ybGQtYXNp +YS1jaGluYQohLS0uYmJjLmNvLnVrL3R2CiEtLS5iYmMuY28udWsvemhvbmd3ZW4K +IS0tLmJiYy5jb20vdWtjaGluYQohLS0uYmJjLmNvbS96aG9uZ3dlbgohLS0uYmJj +LmNvbSUyRnpob25nd2VuCiEtLW5ld3MuYmJjLmNvLnVrL29udGhpc2RheSpuZXdz +aWRfMjQ5NjAwMC8yNDk2Mjc3CiEtLW5ld3Nmb3J1bXMuYmJjLmNvLnVrCi5iYmMu +Y29tCnx8YmJjLmNvbQouYmJjLmNvLnVrCnx8YmJjLmNvLnVrCnx8YmJjaS5jby51 +awouYmJjY2hpbmVzZS5jb20KfHxiYmNjaGluZXNlLmNvbQp8aHR0cDovL2JiYy5p +bgoKISEtLS1CbG9vbWJlcmctLS0KLmJsb29tYmVyZy5jbgp8fGJsb29tYmVyZy5j +bgouYmxvb21iZXJnLmNvbQp8fGJsb29tYmVyZy5jb20KYmxvb21iZXJnLmRlCnx8 +Ymxvb21iZXJnLmRlCnx8Ymxvb21iZXJndmlldy5jb20KLmJ1c2luZXNzd2Vlay5j +b20KCiEhLS0tQ2hhbmdlSVAtLS0KLjFkdW1iLmNvbQouMjV1LmNvbQouMndha3ku +Y29tCi4zLWEubmV0Ci40ZHEuY29tCi40bXlkb21haW4uY29tCi40cHUuY29tCi5h +Y21ldG95LmNvbQouYWxtb3N0bXkuY29tCi5hbWVyaWNhbnVuZmluaXNoZWQuY29t +Ci5hdXRob3JpemVkZG5zLm5ldAouYXV0aG9yaXplZGRucy5vcmcKLmJpZ21vbmV5 +LmJpegouY2hhbmdlaXAubmFtZQouY2hhbmdlaXAubmV0Ci5jaGFuZ2VpcC5vcmcK +LmNsZWFuc2l0ZS5iaXoKLmNsZWFuc2l0ZS5pbmZvCi5jbGVhbnNpdGUudXMKLmNv +bXByZXNzLnRvCi5kZG5zLmluZm8KLmRkbnMubWUudWsKLmRkbnMubW9iaQouZGRu +cy5tcwouZGRucy5uYW1lCi5kZG5zLnVzCi5kbnMtZG5zLmNvbQouZG5zLXN0dWZm +LmNvbQouZG5zMDQuY29tCi5kbnMwNS5jb20KLmRuczEudXMKLmRuczIudXMKLmRu +c2V0LmNvbQouZG5zcmQuY29tCi5kc210cC5jb20KLmR1bWIxLmNvbQouZHluYW1p +Yy1kbnMubmV0Ci5keW5hbWljZG5zLmJpegouZHluYW1pY2Rucy5jby51awouZHlu +YW1pY2Rucy5tZS51awouZHluYW1pY2Rucy5vcmcudWsKLmR5bmRucy5wcm8KLmR5 +bnNzbC5jb20KLmVwYWMudG8KLmVzbXRwLmJpegouZXp1YS5jb20KLmZhcXNlcnYu +Y29tCi5mYXJ0aXQuY29tCi5mcmVlZGRucy5jb20KLmZyZWV0Y3AuY29tCi5mcmVl +d3d3LmluZm8KLmZ0cDEuYml6Ci5mdHBzZXJ2ZXIuYml6Ci5nZXR0cmlhbHMuY29t +Ci5nb3QtZ2FtZS5vcmcKLmdyOGRvbWFpbi5iaXoKLmdyOG5hbWUuYml6Ci5odHRw +czQ0My5uZXQKLmh0dHBzNDQzLm9yZwouaWt3Yi5jb20KLmluc3RhbnRocS5jb20K +Lmlvd255b3VyLm9yZwouaXNhc2VjcmV0LmNvbQouaXRlbWRiLmNvbQouaXRzYW9s +LmNvbQouamV0b3MuY29tCi5qa3ViLmNvbQouanVuZ2xlaGVhcnQuY29tCi5qdXN0 +ZGllZC5jb20KLmxmbGluay5jb20KLmxmbGlua3VwLmNvbQoubGZsaW5rdXAubmV0 +Ci5sZmxpbmt1cC5vcmcKLmxvbmdtdXNpYy5jb20KLm1lZm91bmQuY29tCi5tb25l +eWhvbWUuYml6Ci5tcmJhc2ljLmNvbQoubXJib251cy5jb20KLm1yZmFjZS5jb20K +Lm1yc2xvdmUuY29tCi5teTAzLmNvbQoubXlkYWQuaW5mbwoubXlkZG5zLmNvbQou +bXlmdHAuaW5mbwoubXlsZnR2LmNvbQoubXltb20uaW5mbwoubXluZXRhdi5uZXQK +Lm15bmV0YXYub3JnCi5teW51bWJlci5vcmcKLm15cGljdHVyZS5pbmZvCi5teXBv +cDMubmV0Ci5teXBvcDMub3JnCi5teXNlY29uZGFyeWRucy5jb20KLm15d3d3LmJp +egoubXl6LmluZm8KLm5zMDEuYml6Ci5uczAxLmluZm8KLm5zMDEudXMKLm5zMDIu +Yml6Ci5uczAyLmluZm8KLm5zMDIudXMKLm5zMS5uYW1lCi5uczIubmFtZQoubnMz +Lm5hbWUKLm9jcnkuY29tCi5vbmVkdW1iLmNvbQoub25teXBjLmJpegoub25teXBj +LmluZm8KLm9ubXlwYy5uZXQKLm9ubXlwYy5vcmcKLm9yZ2FuaWNjcmFwLmNvbQou +b3R6by5jb20KLm91cmhvYmJ5LmNvbQoucGNhbnl3aGVyZS5uZXQKLnBvcnQyNS5i +aXoKLnByb3h5ZG5zLmNvbQoucWhpZ2guY29tCi5xcG9lLmNvbQoucmViYXRlc3J1 +bGUubmV0Ci5zZWxsY2xhc3NpY3MuY29tCi5zZW5kc210cC5jb20KLnNlcnZldXNl +ci5jb20KLnNlcnZldXNlcnMuY29tCi5zZXhpZHVkZS5jb20KLnNxdWlybHkuaW5m +bwouc3NsNDQzLm9yZwoudG9oLmluZm8KLnRveXRoaWV2ZXMuY29tCi50cmlja2lw +Lm5ldAoudml6dmF6LmNvbQoud2lrYWJhLmNvbQoud3d3MS5iaXoKLnd3d2hvc3Qu +Yml6CkBAfGh0dHA6Ly94eC53d3dob3N0LmJpegoueDI0aHIuY29tCi54eHV6LmNv +bQoueHh4eS5pbmZvCi55Z3RvLmNvbQoueW91ZG9udGNhcmUuY29tCi55b3VydHJh +cC5jb20KLnp5bnMuY29tCi56enV4LmNvbQoKISEtLUNsb3VkZmxhcmUtLQohLS18 +fHBhZ2VzLmRldgp8fHdvcmtlcnMuZGV2Cnx8b25lLm9uZS5vbmUub25lCnx8Y2xv +dWRmbGFyZS1kbnMuY29tCgohIS0tLUR0RE5TLS0tCiEjIyNodHRwczovL3d3dy5k +dGRucy5jb20vZHRzaXRlL2ZhcQouM2QtZ2FtZS5jb20KLjRpcmMuY29tCi5iMG5l +LmNvbQouY2hhdG5vb2suY29tCi5kYXJrdGVjaC5vcmcKLmRlYWZ0b25lLmNvbQou +ZWZmZXJzLmNvbQouZXRvd25zLm5ldAouZXRvd25zLm9yZwouZmxuZXQub3JnCi5n +b3RnZWVrcy5jb20KLnNjaWVyb24uY29tCi5zbHlpcC5jb20KLnNseWlwLm5ldAou +c3Vyb290LmNvbQoKISEtLS1EeW5ETlMtLS0KISMjI2h0dHBzOi8vaGVscC5keW4u +Y29tL2xpc3Qtb2YtZHluLWRucy1wcm8tcmVtb3RlLWFjY2Vzcy1kb21haW4tbmFt +ZXMvCi5ibG9nZG5zLm9yZwouZHluZG5zLm9yZwouZHluZG5zLWlwLmNvbQouZHlu +ZG5zLXBpY3MuY29tCi5mcm9tLXNkLmNvbQouZnJvbS1wci5jb20KLmlzLWEtaHVu +dGVyLmNvbQoKISEtLS1EeW51LS0tCi5keW51LmNvbQp8fGR5bnUuY29tCi5keW51 +Lm5ldAouZnJlZWRkbnMub3JnCgohIS0tLUZhY2Vib29rLS0tCnx8YWNjb3VudGtp +dC5jb20KfHxjZG5pbnN0YWdyYW0uY29tCnx8ZjguY29tCi5mYWNlYm9vay5jb20K +fHxmYWNlYm9vay5jb20KIS0tL15odHRwcz86XC9cL1teXC9dK2ZhY2Vib29rXC5j +b20vCkBAfHx2Ni5mYWNlYm9vay5jb20KfHxmYWNlYm9vay5kZQp8fGZhY2Vib29r +LmRlc2lnbgp8fGNvbm5lY3QuZmFjZWJvb2submV0Cnx8ZmFjZWJvb2suaHUKfHxm +YWNlYm9vay5pbgp8fGZhY2Vib29rLm5sCnx8ZmFjZWJvb2suc2UKfHxmYWNlYm9v +a21haWwuY29tCnx8ZmIuY29tCnx8ZmIubWUKfHxmYi53YXRjaAp8fGZiY2RuLm5l +dAp8fGZic2J4LmNvbQp8fGZiYWRkaW5zLmNvbQp8fGZid29ya21haWwuY29tCi5p +bnN0YWdyYW0uY29tCnx8aW5zdGFncmFtLmNvbQp8fG0ubWUKfHxtZXNzZW5nZXIu +Y29tCnx8bWV0YS5jb20KfHxvY3VsdXMuY29tCnx8b2N1bHVzY2RuLmNvbQp8fHJv +Y2tzZGIub3JnCkBAfHxpcDYuc3RhdGljLnNsLXJldmVyc2UuY29tCnx8cGFyc2Uu +Y29tCnx8dGhlZmFjZWJvb2suY29tCnx8dGhyZWFkcy5uZXQKfHx3aGF0c2FwcC5j +b20KfHx3aGF0c2FwcC5uZXQKCiEhLS0tRmFuZG9tLS0tCnx8YXVudG9sb2d5LmZh +bmRvbS5jb20KfHxob25na29uZy5mYW5kb20uY29tCgohIS0tLUZUQ2hpbmVzZS0t +LQouZnRjaGluZXNlLmNvbQp8fGZ0Y2hpbmVzZS5jb20KCiEhLS0tR29vZ2xlLS0t +Cnx8Z2xlCnx8Z29vZ2xlCnx8ZG9jLm5ldwp8fGZvcm0ubmV3Cnx8Zm9ybXMubmV3 +Cnx8c2hlZXQubmV3Cnx8c2hlZXRzLm5ldwp8fHNwcmVhZHNoZWV0Lm5ldwp8fHNp +dGUubmV3Cnx8c2l0ZXMubmV3Cnx8d2Vic2l0ZS5uZXcKfHxzbGlkZXMubmV3Cnx8 +ZGVjay5uZXcKfHxwcmVzZW50YXRpb24ubmV3Cnx8Z29vZ2xlYXBpcy5jb20KISMj +I2h0dHBzOi8vd3d3Lmdvb2dsZS5jb20vc3VwcG9ydGVkX2RvbWFpbnMjIyMKIS4u +LkdGV0xpc3QgZG9lc24ndCBpbnRlbmQgdG8gc3VwcG9ydCB0eXBvc3F1YXR0aW5n +Li4uCnx8MWUxMDAubmV0Cnx8NDY2NDUzLmNvbQp8fGFiYy54eXoKfHxhZG1vYi5j +b20KfHxhZHNlbnNlLmNvbQp8fGFkdmVydGlzZXJjb21tdW5pdHkuY29tCnx8YWdv +b2dsZWFkYXkuY29tCnx8YW1wcHJvamVjdC5vcmcKQEB8aHR0cHM6Ly93d3cuYW1w +cHJvamVjdC5vcmcKQEB8aHR0cHM6Ly9jZG4uYW1wcHJvamVjdC5vcmcKfHxhbmRy +b2lkLmNvbQpAQHx8Y2kuYW5kcm9pZC5jb20KfHxhbmRyb2lkaWZ5LmNvbQp8fGFu +ZHJvaWR0di5jb20KfHxhcGkuYWkKLmFwcHNwb3QuY29tCnx8YXBwc3BvdC5jb20K +fHxhdXRvZHJhdy5jb20KfHxibG9nYmxvZy5jb20KYmxvZ3Nwb3QuY29tCi9eaHR0 +cHM/OlwvXC9bXlwvXStibG9nc3BvdFwuKC4qKS8KLmJsb2dzcG90LmhrCi5ibG9n +c3BvdC5qcAouYmxvZ3Nwb3QudHcKfHxidXNpbmVzcy5wYWdlCiEtLXx8Y2FwaXRh +bGcuY29tCnx8Y2VydGlmaWNhdGUtdHJhbnNwYXJlbmN5Lm9yZwp8fGNocm9tZS5j +b20KfHxjaHJvbWVjYXN0LmNvbQp8fGNocm9tZWV4cGVyaW1lbnRzLmNvbQp8fGNo +cm9tZXN0YXR1cy5jb20KfHxjaHJvbWl1bS5vcmcKfHxjbG91ZGZ1bmN0aW9ucy5u +ZXQKfHxjcmJ1Zy5jb20KfHxjcmVhdGl2ZWxhYjUuY29tCnx8Y3JyZXYuY29tCnx8 +ZGF0YS12b2NhYnVsYXJ5Lm9yZwp8fGRlYnVnLmNvbQp8fGRlZXBtaW5kLmNvbQp8 +fGRlamEuY29tCnx8ZGlnaXNmZXJhLmNvbQp8fGRvY2tlci5jb20KfHxkb2NzLm5l +dwp8fGR1Y2suY29tCnx8ZmVlZGJ1cm5lci5jb20KfHxmaXJlYmFzZWlvLmNvbQp8 +fGcuY28KfHxnY3IuaW8KfHxnZXQuYXBwCnx8Z2V0LmRldgp8fGdldC5ob3cKfHxn +ZXQucGFnZQp8fGdldG1kbC5pbwp8fGdldG91dGxpbmUub3JnCnx8Z2dwaHQuY29t +Cnx8Z21haWwuY29tCnx8Z21vZHVsZXMuY29tCnx8Z29kb2Mub3JnCnx8Z29sYW5n +Lm9yZwp8fGdvby5nbAp8fGdvby5nbGUKLmdvb2dsZS5hZQouZ29vZ2xlLmFzCi5n +b29nbGUuYW0KLmdvb2dsZS5hdAouZ29vZ2xlLmF6Ci5nb29nbGUuYmEKLmdvb2ds +ZS5iZQouZ29vZ2xlLmJnCi5nb29nbGUuY2EKLmdvb2dsZS5jZAouZ29vZ2xlLmNp +Ci5nb29nbGUuY28uaWQKLmdvb2dsZS5jby5qcAouZ29vZ2xlLmNvLmtyCi5nb29n +bGUuY28ubWEKLmdvb2dsZS5jby51awouZ29vZ2xlLmNvbQouZ29vZ2xlLmRlCnx8 +Z29vZ2xlLmRldgouZ29vZ2xlLmRqCi5nb29nbGUuZGsKLmdvb2dsZS5lcwouZ29v +Z2xlLmZpCi5nb29nbGUuZm0KLmdvb2dsZS5mcgouZ29vZ2xlLmdnCi5nb29nbGUu +Z2wKLmdvb2dsZS5ncgouZ29vZ2xlLmllCi5nb29nbGUuaXMKLmdvb2dsZS5pdAou +Z29vZ2xlLmpvCi5nb29nbGUua3oKLmdvb2dsZS5sdgouZ29vZ2xlLm1uCi5nb29n +bGUubXMKLmdvb2dsZS5ubAouZ29vZ2xlLm51Ci5nb29nbGUubm8KLmdvb2dsZS5y +bwouZ29vZ2xlLnJ1Ci5nb29nbGUucncKLmdvb2dsZS5zYwouZ29vZ2xlLnNoCi5n +b29nbGUuc2sKLmdvb2dsZS5zbQouZ29vZ2xlLnNuCi5nb29nbGUudGsKLmdvb2ds +ZS50bQouZ29vZ2xlLnRvCi5nb29nbGUudHQKLmdvb2dsZS52dQouZ29vZ2xlLndz +Ci9eaHR0cHM/OlwvXC8oW15cL10rXC4pKmdvb2dsZVwuKGFjfGFkfGFlfGFmfGFp +fGFsfGFtfGFzfGF0fGF6fGJhfGJlfGJmfGJnfGJpfGJqfGJzfGJ0fGJ5fGNhfGNh +dHxjZHxjZnxjZ3xjaHxjaXxjbHxjbXxjby5hb3xjby5id3xjby5ja3xjby5jcnxj +by5pZHxjby5pbHxjby5pbnxjby5qcHxjby5rZXxjby5rcnxjby5sc3xjby5tYXxj +b218Y29tLmFmfGNvbS5hZ3xjb20uYWl8Y29tLmFyfGNvbS5hdXxjb20uYmR8Y29t +LmJofGNvbS5ibnxjb20uYm98Y29tLmJyfGNvbS5ienxjb20uY298Y29tLmN1fGNv +bS5jeXxjb20uZG98Y29tLmVjfGNvbS5lZ3xjb20uZXR8Y29tLmZqfGNvbS5naHxj +b20uZ2l8Y29tLmd0fGNvbS5oa3xjb20uam18Y29tLmtofGNvbS5rd3xjb20ubGJ8 +Y29tLmx5fGNvbS5tbXxjb20ubXR8Y29tLm14fGNvbS5teXxjb20ubmF8Y29tLm5m +fGNvbS5uZ3xjb20ubml8Y29tLm5wfGNvbS5vbXxjb20ucGF8Y29tLnBlfGNvbS5w +Z3xjb20ucGh8Y29tLnBrfGNvbS5wcnxjb20ucHl8Y29tLnFhfGNvbS5zYXxjb20u +c2J8Y29tLnNnfGNvbS5zbHxjb20uc3Z8Y29tLnRqfGNvbS50cnxjb20udHd8Y29t +LnVhfGNvbS51eXxjb20udmN8Y29tLnZufGNvLm16fGNvLm56fGNvLnRofGNvLnR6 +fGNvLnVnfGNvLnVrfGNvLnV6fGNvLnZlfGNvLnZpfGNvLnphfGNvLnptfGNvLnp3 +fGN2fGN6fGRlfGRqfGRrfGRtfGR6fGVlfGVzfGV1fGZpfGZtfGZyfGdhfGdlfGdn +fGdsfGdtfGdwfGdyfGd5fGhrfGhufGhyfGh0fGh1fGllfGltfGlxfGlzfGl0fGl0 +LmFvfGplfGpvfGtnfGtpfGt6fGxhfGxpfGxrfGx0fGx1fGx2fG1kfG1lfG1nfG1r +fG1sfG1ufG1zfG11fG12fG13fG14fG5lfG5sfG5vfG5yfG51fG9yZ3xwbHxwbnxw +c3xwdHxyb3xyc3xydXxyd3xzY3xzZXxzaHxzaXxza3xzbXxzbnxzb3xzcnxzdHx0 +ZHx0Z3x0a3x0bHx0bXx0bnx0b3x0dHx1c3x2Z3x2bnx2dXx3cylcLy4qLwohLS18 +fGdvb2dsZS1hbmFseXRpY3MuY29tCiEtLXx8Z29vZ2xlYWRzZXJ2aWNlcy5jb20K +fHxnb29nbGVhcHBzLmNvbQp8fGdvb2dsZWFydHByb2plY3QuY29tCnx8Z29vZ2xl +YmxvZy5jb20KfHxnb29nbGVib3QuY29tCiEtLXx8Z29vZ2xlY2FwaXRhbC5jb20K +fHxnb29nbGVjaGluYXdlYm1hc3Rlci5jb20KfHxnb29nbGVjb2RlLmNvbQp8fGdv +b2dsZWNvbW1lcmNlLmNvbQp8fGdvb2dsZWRvbWFpbnMuY29tCnx8Z29vZ2xlYXJ0 +aC5jb20KfHxnb29nbGVlYXJ0aC5jb20KfHxnb29nbGVkcml2ZS5jb20KfHxnb29n +bGVmaWJlci5uZXQKfHxnb29nbGVncm91cHMuY29tCnx8Z29vZ2xlaG9zdGVkLmNv +bQp8fGdvb2dsZWlkZWFzLmNvbQp8fGdvb2dsZWluc2lkZXNlYXJjaC5jb20KfHxn +b29nbGVtYWlsLmNvbQp8fGdvb2dsZW1hc2h1cHMuY29tCnx8Z29vZ2xlcGFnZWNy +ZWF0b3IuY29tCnx8Z29vZ2xlcGxheS5jb20KfHxnb29nbGVwbHVzLmNvbQp8fGdv +b2dsZXNjaG9sYXIuY29tCnx8Z29vZ2xlc291cmNlLmNvbQohLS18fGdvb2dsZXN5 +bmRpY2F0aW9uLmNvbQohLS18fGdvb2dsZXRhZ21hbmFnZXIuY29tCiEtLXx8Z29v +Z2xldGFnc2VydmljZXMuY29tCnx8Z29vZ2xldXNlcmNvbnRlbnQuY29tCi5nb29n +bGV2aWRlby5jb20KfHxnb29nbGV2aWRlby5jb20KfHxnb29nbGV3ZWJsaWdodC5j +b20KfHxnb29nbGV6aXAubmV0Cnx8Z3N0YXRpYy5jb20KIS0tfHxndi5jb20KfHxn +dnQxLmNvbQpAQHx8cmVkaXJlY3Rvci5ndnQxLmNvbQp8fGd2dDMuY29tCnx8Z3d0 +cHJvamVjdC5vcmcKfHxodG1sNXJvY2tzLmNvbQp8fGlhbS5zb3kKfHxpZ29vZ2xl +LmNvbQp8fGl0YXNvZnR3YXJlLmNvbQp8fGxpa2UuY29tCnx8bWFkZXdpdGhjb2Rl +LmNvbQp8fG1hdGVyaWFsLmlvCnx8b24yLmNvbQp8fHBhbm9yYW1pby5jb20KfHxw +aWNhc2F3ZWIuY29tCnx8cGtpLmdvb2cKfHxwbHVzLmNvZGVzCnx8cG9seW1lci1w +cm9qZWN0Lm9yZwp8fHF1ZXN0dmlzdWFsLmNvbQp8fGFkbWluLnJlY2FwdGNoYS5u +ZXQKfHxhcGkucmVjYXB0Y2hhLm5ldAp8fGFwaS1zZWN1cmUucmVjYXB0Y2hhLm5l +dAp8fGFwaS12ZXJpZnkucmVjYXB0Y2hhLm5ldAp8fHJlZGhvdGxhYnMuY29tCnx8 +c2F2ZXRoZWRhdGUuZm9vCnx8c2NoZW1hLm9yZwp8fHNoYXR0ZXJlZC5pbwp8aHR0 +cDovL3NpcG1sNS5vcmcvCnx8c2hlZXRzLm5ldwp8fHNsaWRlcy5uZXcKfHxzbmFw +c2VlZC5jb20KfHxzeW5lcmd5c2UuY29tCnx8dGVhY2hwYXJlbnRzdGVjaC5vcmcK +fHx0ZW5zb3JmbG93Lm9yZwp8fHRmaHViLmRldgp8fHRoaW5rd2l0aGdvb2dsZS5j +b20KfHx0aWx0YnJ1c2guY29tCnx8dHJhbnNsYXRlLmdvb2cKfHx1YTV2LmNvbQp8 +fHVyY2hpbi5jb20KfHx1c2VyY29udGVudC5nb29nCiEtLXx8d3d3Lmdvb2dsZQp8 +fHdhdmVwcm90b2NvbC5vcmcKfHx3YXltby5jb20KfHx3ZWIuZGV2Cnx8d2VibXBy +b2plY3Qub3JnCnx8d2VicGtnY2FjaGUuY29tCnx8d2VicnRjLm9yZwp8fHdoYXRi +cm93c2VyLm9yZwp8fHdoYXRzLm5ldwp8fHdpZGV2aW5lLmNvbQp8fHdpdGhnb29n +bGUuY29tCnx8d2l0aHlvdXR1YmUuY29tCnx8eC5jb21wYW55Cnx8eG4tLW5nc3Ry +LWxyYThqLmNvbQp8fHlvdXR1LmJlCi55b3V0dWJlLmNvbQp8fHlvdXR1YmUuY29t +Cnx8eW91dHViZS1ub2Nvb2tpZS5jb20KfHx5b3V0dWJlZWR1Y2F0aW9uLmNvbQp8 +fHlvdXR1YmVnYW1pbmcuY29tCnx8eW91dHViZWtpZHMuY29tCnx8eXQuYmUKfHx5 +dGltZy5jb20KfHx6eW5hbWljcy5jb20KCiEhLS0tS2lja0FTUy0tLQohLS1PRkZJ +Q0lBTCBVUkwgbGlzdCBhdDogaHR0cHM6Ly9rYXN0YXR1cy5jb20KCiEhLS0tTWlj +cm9zb2Z0LS0tCiEtLUBAfHxiaW5nLmNvbQp8fGNvcGlsb3QubWljcm9zb2Z0LmNv +bQoKISEtLS1OYXVnaHR5QW1lcmljYS0tLQp8fG5hdWdodHlhbWVyaWNhLmNvbQoK +ISEtLS1OWVRpbWVzLS0tCiEtLXx8ZDFmMWVyeWlxeWpzMHIuY2xvdWRmcm9udC5u +ZXQKIS0tfHxkM2xhcjA5eGJ3bHNnZS5jbG91ZGZyb250Lm5ldAohLS18fGQzcTFx +ajlqenN1OG53LmNsb3VkZnJvbnQubmV0CiEtLXx8ZGM4eGwwbmR6bjJjYi5jbG91 +ZGZyb250Lm5ldAohLS18fGExLm55dC5jb20KIS0tfHxpbnQubnl0LmNvbQohLS18 +fHMxLm55dC5jb20Kc3RhdGljMDEubnl0LmNvbQohLS18fHN0YXRpYzAxLm55dC5j +b20KIS0tfHx0eXBlZmFjZS5ueXQuY29tCnx8bnl0LmNvbQpueXRjaGluYS5jb20K +bnl0Y24ubWUKfHxueXRjbi5tZQp8fG55dGNvLmNvbQp8aHR0cDovL255dGkubXMv +Ci5ueXRpbWVzLmNvbQp8fG55dGltZXMuY29tCnx8bnl0aW1nLmNvbQpjbi5ueXRz +dHlsZS5jb20KfHxueXRzdHlsZS5jb20KCiEhLS0tU3RlYW0tLS0KLnN0ZWFtY29t +bXVuaXR5LmNvbQp8fHN0ZWFtY29tbXVuaXR5LmNvbQohLS1zdGVhbWNvbW11bml0 +eS5jb20vcHJvZmlsZXMvNzY1NjExOTgwNjI3NzE2MDkKIS0tc3RlYW1jb21tdW5p +dHkuY29tL2dyb3Vwcy9MaWJldFRpYmV0CiEtLXN0ZWFtY29tbXVuaXR5LmNvbS9n +cm91cHMvemhvbmdnb25nCiEtLXN0ZWFtY29tbXVuaXR5LmNvbS9pZC9DSlRfSmFj +a3Rvbgp8fHN0b3JlLnN0ZWFtcG93ZXJlZC5jb20KfHxhcGkuc3RlYW1wb3dlcmVk +LmNvbQp8fHN0ZWFtc3RhdGljLmNvbQohIS0tLVRlbGVncmFtLS0tCiEhIS0tLURv +bWFpbi0tLQp8fHR4Lm1lCnx8dGcuZGV2Cnx8dGVsZWdhLm9uZQp8fGNkbi10ZWxl +Z3JhbS5vcmcKfHxjb21tZW50cy5hcHAKfHxncmFwaC5vcmcKfHxsZWdyYS5waAp8 +fHF1aXouZGlyZWN0b3J5Cnx8dC5tZQp8fHVwZGF0ZXMudGRlc2t0b3AuY29tCnx8 +dGVsZWdyYW0uZG9nCnx8dGVsZWdyYW0ubWUKfHx0ZWxlZ3JhbS5vcmcKfHx0ZWxl +Z3JhbS5zcGFjZQp8fHRlbGVncmFtZG93bmxvYWQuY29tCnx8dGVsZWdyYS5waAp8 +fHRlbGVzY28ucGUKISEhLS0tSVAtLS0KCiEhLS0tVGlrdG9rLS0tCnx8dGlrdG9r +LmNvbQp8fHRpa3Rva3YuY29tCnx8dGlrdG9rdi51cwp8fHRpa3Rva2Nkbi11cy5j +b20KfHx0aWt0b2tjZG4uY29tCnx8dGlrdG9rY2RuLWV1LmNvbQoKISEtLS1Ud2l0 +Y2gtLS0KfHxqdHZudy5uZXQKfHx0dHZudy5uZXQKfHx0d2l0Y2gudHYKfHx0d2l0 +Y2hjZG4ubmV0CgohIS0tLVR3aXR0ZXIvWC0tLQp8fHBlcmlzY29wZS50dgoucHNj +cC50dgp8fHBzY3AudHYKLnQuY28KfHx0LmNvCi50d2VldGRlY2suY29tCnx8dHdl +ZXRkZWNrLmNvbQp8fHR3aW1nLmNvbQoudHdpdHBpYy5jb20KfHx0d2l0cGljLmNv +bQoudHdpdHRlci5jb20KfHx0d2l0dGVyLmNvbQp8fHR3aXR0ZXIuanAKfHx2aW5l +LmNvCnx8eC5jb20KCiEhLS0tVGFpd2FuLS0tCnx8bW9qLmdvdi50dwp8fGdvdi50 +YWlwZWkKLmdvdi50dwp8aHR0cHM6Ly9haXNzLmFud3MuZ292LnR3Cnx8YXJjaGl2 +ZXMuZ292LnR3Cnx8dGFjYy5jd2IuZ292LnR3Cnx8ZGF0YS5nb3YudHcKfHxleGFt +Lmdvdi50dwp8fGV5Lmdvdi50dwp8fGZhLmdvdi50dwp8fGZkYS5nb3YudHcKfHxo +cGEuZ292LnR3Cnx8aW1taWdyYXRpb24uZ292LnR3Cnx8aXRhaXdhbi5nb3YudHcK +fHxqdWRpY2lhbC5nb3YudHcKfHxsaS50YWlwZWkKfHxseS5nb3YudHcKfHxtamli +Lmdvdi50dwp8fG1vZWFpYy5nb3YudHcKfHxtb2ZhLmdvdi50dwp8fG1vbC5nb3Yu +dHcKfHxtdmRpcy5nb3YudHcKfHxuYXQuZ292LnR3Cnx8bmhpLmdvdi50dwp8fG5w +YS5nb3YudHcKfHxuc2MuZ292LnR3Cnx8bnRiay5nb3YudHcKfHxudGJuYS5nb3Yu +dHcKfHxudGJ0Lmdvdi50dwp8fHBjYy5nb3YudHcKfHxzdGF0Lmdvdi50dwp8fHRh +aXBlaS5nb3YudHcKfHx0YWl3YW5qb2JzLmdvdi50dwp8fHRoYi5nb3YudHcKfHx0 +aXBvLmdvdi50dwp8fHdkYS5nb3YudHcKCnx8dGVjby1oay5vcmcKfHx0ZWNvLW1v +Lm9yZwoKQEB8fGFmdHlnaC5nb3YudHcKQEB8fGFpZGUuZ292LnR3CkBAfHx0cGRl +LmFpZGUuZ292LnR3CkBAfHxhcnRlLmdvdi50dwpAQHx8Y2h1a3VhbmcuZ292LnR3 +CkBAfHxjd2IuZ292LnR3CkBAfHxjeWNhYi5nb3YudHcKQEB8fGRibnNhLmdvdi50 +dwpAQHx8ZGYuZ292LnR3CkBAfHxlYXN0Y29hc3QtbnNhLmdvdi50dwpAQHx8ZXJ2 +LW5zYS5nb3YudHcKQEB8fGdyYi5nb3YudHcKQEB8fGd5c2QubnljLmdvdi50dwpA +QHx8aGNoY2MuZ292LnR3CkBAfHxoc2luY2h1LWNjLmdvdi50dwpAQHx8aW5lci5n +b3YudHcKQEB8fGtsc2lvLmdvdi50dwpAQHx8a21zZWguZ292LnR3CkBAfHxsdW5n +dGFuaHIuZ292LnR3CkBAfHxtYW9saW4tbnNhLmdvdi50dwpAQHx8bWF0c3UtbmV3 +cy5nb3YudHcKQEB8fG1hdHN1LW5zYS5nb3YudHcKQEB8fG1hdHN1Y2MuZ292LnR3 +CkBAfHxtb2UuZ292LnR3CkBAfHxuYW5rYW4uZ292LnR3CkBAfHxuY3JlZS5nb3Yu +dHcKQEB8fGNyb21vdGMubmF0Lmdvdi50dwpAQHx8dGF4Lm5hdC5nb3YudHcKQEB8 +fG5lY29hc3QtbnNhLmdvdi50dwpAQHx8bmVyLmdvdi50dwpAQHx8bm1tYmEuZ292 +LnR3CkBAfHxubXAuZ292LnR3CkBAfHxubXZ0dGMuZ292LnR3CkBAfHxub3J0aGd1 +YW4tbnNhLmdvdi50dwp8fG5wbS5nb3YudHcKQEB8fG5zdG0uZ292LnR3CkBAfHxu +dGRtaC5nb3YudHcKQEB8fG50bC5nb3YudHcKQEB8fG50c2VjLmdvdi50dwpAQHx8 +bnR1aC5nb3YudHcKQEB8fG52cmkuZ292LnR3CkBAfHxwZW5naHUtbnNhLmdvdi50 +dwpAQHx8cG9zdC5nb3YudHcKQEB8fHNpcmF5YS1uc2EuZ292LnR3CkBAfHxzdGR0 +aW1lLmdvdi50dwpAQHx8c3VubW9vbmxha2UuZ292LnR3CkBAfHx0YWl0dW5nLWhv +dXNlLmdvdi50dwpAQHx8dGFveXVhbi5nb3YudHcKQEB8fHRwaGNjLmdvdi50dwpA +QHx8dHJpbXQtbnNhLmdvdi50dwpAQHx8dmdodHBlLmdvdi50dwpAQHx8dmdoa3Mu +Z292LnR3CkBAfHx2Z2h0Yy5nb3YudHcKQEB8fHdhbmZhbmcuZ292LnR3CkBAfHx5 +YXRzZW4uZ292LnR3CkBAfHx5ZGEuZ292LnR3CgohLS1AQHx8NHBwcGMuZ292LnR3 +CiEtLUBAfHw5MjEuZ292LnR3CiEtLUBAfHxkbXRpcC5nb3YudHcKIS0tQEB8fGV0 +cmFpbmluZy5nb3YudHcKIS0tQEB8fGdzbi1jZXJ0Lm5hdC5nb3YudHcKIS0tQEB8 +fG5pY2kubmF0Lmdvdi50dwohLS1AQHx8aGNjLmdvdi50dwohLS1AQHx8aGVuZ2No +dWVuLmdvdi50dwohLS1AQHx8a2hjYy5nb3YudHcKIS0tQEB8fGtobXMuZ292LnR3 +CiEtLUBAfHxray5nb3YudHcKIS0tQEB8fGtsY2NhYi5nb3YudHcKIS0tQEB8fGts +cmEuZ292LnR3CiEtLUBAfHxubWguZ292LnR3CiEtLUBAfHxubXRsLmdvdi50dwoh +LS1AQHx8cGFicC5nb3YudHcKIS0tQEB8fHBldC5nb3YudHcKIS0tQEB8fHRjaGIu +Z292LnR3CiEtLUBAfHx0Y3NhYy5nb3YudHcKIS0tQEB8fHRuY3NlYy5nb3YudHcK +fHxraW5tZW4ub3JnLnR3CgohIS0tLVVTQS0tLQp8fGFtZXJpY29ycHMuZ292Cnx8 +ZG1hLm1pbAp8fGpwbC5uYXNhLmdvdgp8fHBkcy5uYXNhLmdvdgp8fHBhY29tLm1p +bAp8fHNvYy5taWwKfHxzb2xhcnN5c3RlbS5uYXNhLmdvdgppaXBkaWdpdGFsLnVz +ZW1iYXNzeS5nb3YKfHx1c2NnLm1pbAp8fHVzZmsubWlsCnxodHRwOi8vdGFyci51 +c3B0by5nb3YvCnx8dHNkci51c3B0by5nb3YKCiEhLS0tVjJFWC0tLQp8fHYyZXgu +Y29tCiEtLS52MmV4LmNvbQohLS1JbmNsdWRlZCBpbiBhYm92ZSBydWxlOiBkbnMu +djJleC5jb20KIS0tQEB8aHR0cDovL3YyZXguY29tCiEtLUBAfGh0dHA6Ly9jZG4u +djJleC5jb20KIS0tQEB8aHR0cDovL2NuLnYyZXguY29tCiEtLUBAfGh0dHA6Ly9o +ay52MmV4LmNvbQohLS1AQHxodHRwOi8vaS52MmV4LmNvbQohLS1AQHxodHRwOi8v +bGF4LnYyZXguY29tCiEtLUBAfGh0dHA6Ly9uZXVlLnYyZXguY29tCiEtLUBAfGh0 +dHA6Ly9wYWdlc3BlZWQudjJleC5jb20KIS0tQEB8aHR0cDovL3N0YXRpYy52MmV4 +LmNvbQohLS1AQHxodHRwOi8vd29ya3NwYWNlLnYyZXguY29tCiEtLUBAfGh0dHA6 +Ly93d3cudjJleC5jb20KCiEhLS0tVk9BLS0tCnx8dm9hY2FtYm9kaWEuY29tCi52 +b2FjaGluZXNlYmxvZy5jb20KfHx2b2FjaGluZXNlYmxvZy5jb20KLnZvYWNhbnRv +bmVzZS5jb20KfHx2b2FjYW50b25lc2UuY29tCnZvYWNoaW5lc2UuY29tCnx8dm9h +Y2hpbmVzZS5jb20Kdm9hZ2QuY29tCnx8dm9haW5kb25lc2lhLmNvbQoudm9hbmV3 +cy5jb20KfHx2b2FuZXdzLmNvbQp2b2F0aWJldGFuLmNvbQp8fHZvYXRpYmV0YW4u +Y29tCi52b2F0aWJldGFuZW5nbGlzaC5jb20KfHx2b2F0aWJldGFuZW5nbGlzaC5j +b20KCiEhLS0tV2lraWEtLS0KfHx6aC5lY2RtLndpa2lhLmNvbQp8fGV2Y2hrLndp +a2lhLmNvbQpmcS53aWtpYS5jb20KemgucHR0cGVkaWEud2lraWEuY29tL3dpa2kv +JUU3JUJGJTkyJUU1JThDJTg1JUU1JUFEJTkwJUU0JUI5JThCJUU0JUJBJTgyCmNu +LnVuY3ljbG9wZWRpYS53aWtpYS5jb20KemgudW5jeWNsb3BlZGlhLndpa2lhLmNv +bQoKIS0tLS0tLS0tLS0tLS1XaWtpcGVkaWEgUmVsYXRlZC0tLS0tLS0tLS0tLS0K +ISFFbWVyZ2VuY3kgbmVlZCBvbmx5KElQL1BvcnQgYmxvY2sgdXNhZ2UpISEKIS0t +LS0tLTAtLS0tLS0KfHxtZWRpYXdpa2kub3JnCiEtLS0tLS0xLS0tLS0tCnx8d2lr +aWRhdGEub3JnCiEtLS0tLS0yLS0tLS0tCnx8d2lraW1lZGlhLm9yZwohLS0tLS0t +My0tLS0tLQp8fHdpa2lib29rcy5vcmcKIS0tLS0tLTQtLS0tLS0KfHx3aWtpdmVy +c2l0eS5vcmcKIS0tLS0tLTUtLS0tLS0KfHx3aWtpc291cmNlLm9yZwohLS0tLS0t +Ni0tLS0tLQp8fHpoLndpa2lxdW90ZS5vcmcKIS0tLS0tLTctLS0tLS0KfHx3aWtp +bmV3cy5vcmcKIS0tLS0tLTgtLS0tLS0KfHx3aWtpdm95YWdlLm9yZwohLS0tLS0t +OS0tLS0tLQp8fHdpa3Rpb25hcnkub3JnCiEtLS0tTWFpbi0tLS0tCnx8d2lraXBl +ZGlhLm9yZwp8fHdtZnVzZXJjb250ZW50Lm9yZwoKISEtLS1ZYWhvby0tLQp8fHNo +b3BwaW5nLnlhaG9vLmNvLmpwCnx8YXVjdGlvbnMueWFob28uY28uanAKfHxzZWFy +Y2gueWFob28uY28uanAKfHx5YWhvby5jb20udHcKfHx5YWhvby5jb20uaGsKfHx5 +YWhvby5jb20KCiEtLS0tLS0tLS0tLS0tLS0tLS1OdW1lcmljcy0tLS0tLS0tLS0t +LS0tLS0tLS0tLQp8fGlwZnMuNGV2ZXJsYW5kLmlvCnx8OTFkYXNhaS5jb20KfHxp +LjExMTY2Ni5iZXN0Cnx8MWxpYi5zawp8fDIwNDcub25lCnx8NjlzaHViYS5jeAp8 +fDIwNDliYnMueHl6Cnx8NjExc3R1ZHkuY29tCnx8MThjb21pYy5vcmcKfHwwMDB3 +ZWJob3N0LmNvbQouMDMwYnV5LmNvbQouMHJ6LnR3CnxodHRwOi8vMHJ6LnR3CjEt +YXBwbGUuY29tLnR3Cnx8MS1hcHBsZS5jb20udHcKLjEwMDBnaXJpLm5ldAp8fDEw +MDBnaXJpLm5ldAp8fDEwYmVhc3RzLm5ldAouMTBjb25kaXRpb25zb2Zsb3ZlLmNv +bQp8fDEwbXVzdW1lLmNvbQoxMjNyZi5jb20KLjEyYmV0LmNvbQp8fDEyYmV0LmNv +bQouMTJ2cG4uY29tCi4xMnZwbi5uZXQKfHwxMnZwbi5jb20KfHwxMnZwbi5uZXQK +fHwxMzM3eC50bwouMTM4LmNvbQoxNDFob25na29uZy5jb20vZm9ydW0KfHwxNDFq +ai5jb20KLjE0MXR1YmUuY29tCnx8MTY4OC5jb20uYXUKLjE3M25nLmNvbQp8fDE3 +M25nLmNvbQouMTc3cGljLmluZm8KLjE3dDE3cC5jb20KfHwxOGJvYXJkLmNvbQox +OG9ubHlnaXJscy5jb20KLjE4cDJwLmNvbQouMTh2aXJnaW5zZXguY29tCnpoYW8u +MTk4NC5jaXR5Cnx8emhhby4xOTg0LmNpdHkKMTk4NGJicy5jb20KfHwxOTg0YmJz +LmNvbQohLS18fDE5ODRibG9nLmNvbQouMTk5MXdheS5jb20KfHwxOTkxd2F5LmNv +bQouMWVldy5jb20KLjFtb2JpbGUuY29tCnx8MXBvaW50M2FjcmVzLmNvbQp8fDFw +b25kby50dgouMi1oYW5kLmluZm8KLjIwMDBmdW4uY29tL2Jicwp8fDIwMDh4aWFu +emhhbmcuaW5mbwp8fDIwMjFoa2NoYXJ0ZXIuY29tCnx8MjA0Ny5uYW1lCjIxYW5k +eS5jb20vYmxvZwoyMXNleHR1cnkuY29tCi4yMjgubmV0LnR3Cnx8MjMzYWJjLmNv +bQp8fDI0aHJzLmNhCjJsaXBzdHViZS5jb20KLjJzaGFyZWQuY29tCjMwYm94ZXMu +Y29tCi4zMTVsei5jb20KfHwzMnJlZC5jb20KfHwzNnJhaW4uY29tCi4zYTVhLmNv +bQozYXJhYnR2LmNvbQouM2JveXMyZ2lybHMuY29tCi4zcHJveHkucnUKLjNyZW4u +Y2EKLjN0dWkubmV0Cnx8NDA0bXVzZXVtLmNvbQp8fDRibHVlc3RvbmVzLmJpegou +NGNoYW4uY29tCiEtLXx8NGNoYW4ub3JnCi40ZXZlcnByb3h5LmNvbQp8fDRldmVy +cHJveHkuY29tCnx8NHJidHYuY29tCnx8NHNoYXJlZC5jb20KdGFpd2FubmF0aW9u +LjUwd2Vicy5jb20KfHw1MS5jYQp8fDUxamF2Lm9yZwouNTFsdW9iZW4uY29tCnx8 +NTFsdW9iZW4uY29tCnx8NTI3OC5jYwouNTI5OS50dgo1aTAxLmNvbQouNWlzb3Rv +aTUub3JnCi41bWFvZGFuZy5jb20KfHw2MTFzdHVkeS5pY3UKfHw2M2kuY29tCi42 +NG11c2V1bS5vcmcKNjR0aWFud2FuZy5jb20KNjR3aWtpLmNvbQouNjYuY2EKNjY2 +a2IuY29tCnx8NmRvLm5ld3MKfHw2ZG8ud29ybGQKLjZwYXJrLmNvbQp8fDZwYXJr +LmNvbQp8fDZwYXJrYmJzLmNvbQp8fDZwYXJrZXIuY29tCnx8NnBhcmtuZXdzLmNv +bQp8fDdjYXB0dXJlLmNvbQouN2Nvdy5jb20KIS0tfHw3LXppcC5vcmcKLjgtZC5j +b20KfGh0dHA6Ly84LWQuY29tCi44NWNjLnVzCnxodHRwOi8vODVjYy51cwouODgx +OTAzLmNvbS9wYWdlL3poLXR3Lwp8fDg4MTkwMy5jb20KLjg4OC5jb20KLjg4OHBv +a2VyLmNvbQo4OS42NC5jaGFydGVyLmNvbnN0aXR1dGlvbmFsaXNtLnNvbHV0aW9u +cwo4OS02NC5vcmcKfHw4OS02NC5vcmcKfHw4OTY0bXVzZXVtLmNvbQouOG5ld3Mu +Y29tLnR3Ci44ejEubmV0Cnx8OHoxLm5ldAp8fDkxcG9ybi5jb20KfHw5MXBvcm55 +LmNvbQp8fDkxdnBzLmNsdWIKLjkyY2Nhdi5jb20KLjk5MS5jb20KfGh0dHA6Ly85 +OTEuY29tCi45OWJ0Z2MwMS5jb20KfHw5OWJ0Z2MwMS5jb20KLjk5Y24uaW5mbwp8 +aHR0cDovLzk5Y24uaW5mbwp8fDliaXMuY29tCnx8OWJpcy5uZXQKfHw5bmV3cy5j +b20uYXUKCiEtLS0tLS0tLS0tLS0tLS0tLS0tLUFBLS0tLS0tLS0tLS0tLS0tLS0t +LS0tLS0tLQp8fGFtdWxldG1jLmNvbQp8fGFicGxpdmUuY29tCnx8Y2RuLmFyc3Rl +Y2huaWNhLm5ldAp8fGFvbWVkaWEub3JnCnx8YWxqYXplZXJhLmNvbQp8fGFraW5h +dG9yLmNvbQp8fGFubmFzLWFyY2hpdmUub3JnCnx8YXYwMS50dgp8fGFjZy5yaXAK +fHxhbm5hcy1hcmNoaXZlLnNlCnx8YS1ub3JtYWwtZGF5LmNvbQphNS5jb20ucnUK +fGh0dHA6Ly9hYW1hY2F1LmNvbQohLS18aHR0cDovL2NkbiouYWJjLmNvbS8KLmFi +Yy5jb20KLmFiYy5uZXQuYXUKfHxhYmMubmV0LmF1Ci5hYmNoaW5lc2UuY29tCnx8 +YWJlYm9va3MuY28udWsKLmFibHdhbmcuY29tCi5hYm9sdW93YW5nLmNvbQp8fGFi +b2x1b3dhbmcuY29tCnx8YWJvdXQubWUKLmFicy5lZHUKfHxhY2FzdC5jb20KLmFj +Y2ltLm9yZwouYWNlcm9zLWRlLWhpc3BhbmlhLmNvbQouYWNldnBuLmNvbQp8fGFj +ZXZwbi5jb20KLmFjZzE4Lm1lCnxodHRwOi8vYWNnMTgubWUKfHxhY2dib3gub3Jn +Cnx8YWNna2ouY29tCnx8YWNnbnguc2UKLmFjbWVkaWEzNjUuY29tCi5hY253LmNv +bS5hdQphY3Rmb3J0aWJldC5vcmcKYWN0aW1lcy5jb20uYXUKYWN0aXZwbi5jb20K +fHxhY3RpdnBuLmNvbQp8fGFjdWxvLnVzCnx8YWRkaWN0ZWR0b2NvZmZlZS5kZQp8 +fGFkZHlvdXR1YmUuY29tCi5hZGVsYWlkZWJicy5jb20vYmJzCi5hZHBsLm9yZy5o +awp8aHR0cDovL2FkcGwub3JnLmhrCi5hZHVsdC1zZXgtZ2FtZXMuY29tCnx8YWR1 +bHQtc2V4LWdhbWVzLmNvbQphZHVsdGZyaWVuZGZpbmRlci5jb20KfHxhZHZhbnNj +ZW5lLmNvbQp8fGFkdmVydGZhbi5jb20KLmFlLm9yZwp8fGFlaS5vcmcKfHxhZW5o +YW5jZXJzLmNvbQp8fGFmLm1pbAouYWZhbnRpYmJzLmNvbQp8aHR0cDovL2FmYW50 +aWJicy5jb20KfHxhZnIuY29tCnx8YWlvc2VhcmNoLmNvbQouYWlwaC5uZXQKfHxh +aXBoLm5ldAouYWlyYXNpYS5jb20KfHxhaXJjb25zb2xlLmNvbQp8aHR0cDovL2Rv +d25sb2FkLmFpcmNyYWNrLW5nLm9yZwouYWlydnBuLm9yZwp8fGFpcnZwbi5vcmcK +LmFpc2V4LmNvbQp8fGFpdC5vcmcudHcKYWl3ZWl3ZWkuY29tCi5haXdlaXdlaWJs +b2cuY29tCnx8YWl3ZWl3ZWlibG9nLmNvbQp8fHd3dy5hanNhbmRzLmNvbQoKISEt +LS1Ba2FtYWktLS0KYTI0OC5lLmFrYW1haS5uZXQKfHxhMjQ4LmUuYWthbWFpLm5l +dAoKcmZhbGl2ZTEuYWthY2FzdC5ha2FtYWlzdHJlYW0ubmV0CnZvYS0xMS5ha2Fj +YXN0LmFrYW1haXN0cmVhbS5uZXQKCnxodHRwczovL2ZiY2RuKi5ha2FtYWloZC5u +ZXQvCiEtLXx8ZmJleHRlcm5hbC1hLmFrYW1haWhkLm5ldAohLS18fGZic3RhdGlj +LWEuYWthbWFpaGQubmV0CiEtLXxodHRwczovL2lnY2RuKi5ha2FtYWloZC5uZXQK +cnRoa2xpdmUyLWxoLmFrYW1haWhkLm5ldAoKLmFrYWRlbWl5ZS5vcmcvdWcKfGh0 +dHA6Ly9ha2FkZW1peWUub3JnL3VnCnx8YWtpYmEtb25saW5lLmNvbQp8fGFrb3cu +b3JnCi5hbC1pc2xhbS5jb20KfHxhbGFib3V0LmNvbQouYWxhbmhvdS5jb20KfGh0 +dHA6Ly9hbGFuaG91LmNvbQouYWxhcmFiLnFhCnx8YWxhc2JhcnJpY2FkYXMub3Jn +Cnx8YWxmb3JhdHR2Lm5ldAouYWxoYXlhdC5jb20KLmFsaWNlamFwYW4uY28uanAK +YWxpZW5ndS5jb20KfHxhbGl2ZS5iYXIKfHxhbGthc2lyLmNvbQp8fGFsbDRtb20u +b3JnCnx8YWxsY29ubmVjdGVkLmNvCi5hbGxkcmF3bnNleC5jb20KfHxhbGxkcmF3 +bnNleC5jb20KfHxhbGxmaW5lZ2lybHMuY29tCi5hbGxnaXJsbWFzc2FnZS5jb20K +YWxsZ2lybHNhbGxvd2VkLm9yZwouYWxsZ3JhdnVyZS5jb20KYWxsaWFuY2Uub3Jn +LmhrCi5hbGxpbmZhLmNvbQp8fGFsbGluZmEuY29tCi5hbGxqYWNrcG90c2Nhc2lu +by5jb20KfHxhbGxtb3ZpZS5jb20KLmFscGhhcG9ybm8uY29tCnx8YWx0ZXJuYXRl +LXRvb2xzLmNvbQphbHRlcm5hdGl2ZXRvLm5ldC9zb2Z0d2FyZQphbHZpbmFsZXhh +bmRlci5jb20KYWx3YXlzZGF0YS5jb20KfHxhbHdheXNkYXRhLmNvbQp8fGFsd2F5 +c2RhdGEubmV0Ci5hbHdheXN2cG4uY29tCnx8YWx3YXlzdnBuLmNvbQp8fGFtNzMw +LmNvbS5oawphbWVibG8uanAKfHxhbWVibG8uanAKd3d3MS5hbWVyaWNhbi5lZHUv +dGVkL2ljZS90aWJldAp8fGFtZXJpY2FuZ3JlZW5jYXJkLmNvbQp8fGFtaWJsb2Nr +ZWRvcm5vdC5jb20KLmFtaWdvYmJzLm5ldAouYW1pdGFiaGFmb3VuZGF0aW9uLnVz +CnxodHRwOi8vYW1pdGFiaGFmb3VuZGF0aW9uLnVzCi5hbW5lc3R5Lm9yZwp8fGFt +bmVzdHkub3JnCnx8YW1uZXN0eS5vcmcuaGsKLmFtbmVzdHkudHcKLmFtbmVzdHl1 +c2Eub3JnCnx8YW1uZXN0eXVzYS5vcmcKLmFtdGItdGFpcGVpLm9yZwouYW5keWdv +ZC5jb20KfGh0dHA6Ly9hbmR5Z29kLmNvbQphbm5hdGFtLmNvbS9jaGluZXNlCnx8 +YW5jaG9yLmZtCnx8YW5jaG9yZnJlZS5jb20KIS0tR0hTCnx8YW5jc2NvbmYub3Jn +Cnx8YW5kZmFyYXdheS5uZXQKfHxhbmRyb2lkLXg4Ni5vcmcKfHxhbmRyb2lkYXBr +c2ZyZWUuY29tCmFuZ2VsZmlyZS5jb20vaGkvaGF5YXNoaQp8fGFuZ3VsYXJqcy5v +cmcKYW5pbWVjcmF6eS5uZXQKYW5pc2NhcnR1am8uY29tCnx8YW5pc2NhcnR1am8u +Y29tCnx8YW5vYmlpLmNvbQp8fGFub25maWxlcy5jb20KLmFub255bWl0eW5ldHdv +cmsuY29tCi5hbm9ueW1pemVyLmNvbQouYW5vbnltb3VzZS5vcmcKfHxhbm9ueW1v +dXNlLm9yZwphbm9udGV4dC5jb20KLmFucG9wby5jb20KLmFuc3dlcmluZy1pc2xh +bS5vcmcKfGh0dHA6Ly93d3cuYW50ZC5vcmcKfHxhbnRob255Y2FsemFkaWxsYS5j +b20KYW50aWNocmlzdGVuZG9tLmNvbQouYW50aXdhdmUubmV0CnxodHRwOi8vYW50 +aXdhdmUubmV0Ci5hbnlwb3JuLmNvbQouYW55c2V4LmNvbQp8aHR0cDovL2FueXNl +eC5jb20KLmFvMy5vcmcKfHxhbzMub3JnCnx8YW9iby5jb20uYXUKLmFvZnJpZW5k +LmNvbQp8aHR0cDovL2FvZnJpZW5kLmNvbQouYW9qaWFvLm9yZwp8fGFvbWl3YW5n +LmNvbQp8fGFwYXQxOTg5Lm9yZwouYXBldHViZS5jb20KfHxhcGlhcnkuaW8KLmFw +aWdlZS5jb20KfHxhcGlnZWUuY29tCnx8YXBrLnN1cHBvcnQKfHxhcGtjb21iby5j +b20KLmFwa21vbmsuY29tL2FwcAp8fGFwa21vbmsuY29tCnx8YXBrcGx6LmNvbQp8 +fGFwa3B1cmUuY29tCnx8YXBrcHVyZS5uZXQKfHxhcHBhZHZpY2UuY29tCiEtLXx8 +YXBwYW5uaWUuY29tCnx8YXBwYnJhaW4uY29tCi5hcHBkb3dubG9hZGVyLm5ldC9B +bmRyb2lkCi5hcHBsZWRhaWx5LmNvbQp8fGFwcGxlZGFpbHkuY29tCmFwcGxlZGFp +bHkuY29tLnR3Cnx8YXBwbGVkYWlseS5jb20udHcKLmFwcHNob3BwZXIuY29tCnxo +dHRwOi8vYXBwc2hvcHBlci5jb20KfHxhcHBzb2Nrcy5uZXQKfHxhcHBzdG8ucmUK +LmFwdG9pZGUuY29tCnx8YXB0b2lkZS5jb20KfHxhcmNoaXZlcy5nb3YKLmFyY2hp +dmUuZm8KfHxhcmNoaXZlLmZvCnx8YXJjaGl2ZS52bgp8fGFyY2hpdmUuaXMKfHxh +cmNoaXZlLmlzCnx8YXJjaGl2ZS5saQp8fGFyY2hpdmUubGkKfHxhcmNoaXZlLm1k +Cnx8YXJjaGl2ZS5vcmcKfHxhcmNoaXZlLnBoCnx8YXJjaGl2ZS50b2RheQp8fGFy +Y2hpdmVvZm91cm93bi5jb20KfHxhcmNoaXZlb2ZvdXJvd24ub3JnCi5hcmN0b3Np +YS5jb20KfHxhcmN0b3NpYS5jb20KfHxhcmVjYS1iYWNrdXAub3JnCi5hcmV0aHVz +YS5zdQp8fGFyZXRodXNhLnN1Cnx8YXJsaW5ndG9uY2VtZXRlcnkubWlsCi5hcnQ0 +dGliZXQxOTk4Lm9yZwphcnRvZnBlYWNlZm91bmRhdGlvbi5vcmcKYXJ0c3kubmV0 +Cnx8YXNhY3Aub3JnCmFzZGZnLmpwL2RhYnIKYXNnLnRvCi5hc2lhLWdhbWluZy5j +b20KLmFzaWFoYXJ2ZXN0Lm9yZwp8fGFzaWFoYXJ2ZXN0Lm9yZwp8fGFzaWFuYWdl +LmNvbQp8fGFzaWFuZXdzLml0Cnx8YXNpYW5zZXhkaWFyeS5jb20KfHxhc2lhb25l +LmNvbQouYXNpYXRncC5jb20KfHxhc2suY29tCnx8YXNrc3R1ZGVudC5jb20KLmFz +a3luei5uZXQKfHxhc2t5bnoubmV0Cnx8YXNwaS5vcmcuYXUKfHxhc3Bpc3RyYXRl +Z2lzdC5vcmcuYXUKfHxhc3NlbWJsYS5jb20KfHxhc3RyaWxsLmNvbQp8fGF0Yy5v +cmcuYXUKLmF0Y2hpbmVzZS5jb20KfGh0dHA6Ly9hdGNoaW5lc2UuY29tCmF0Z2Z3 +Lm9yZwouYXRsYW50YTE2OC5jb20KfHxhdGxhbnRhMTY4LmNvbQouYXRuZXh0LmNv +bQp8fGF0bmV4dC5jb20KfHxhdWRhY3kuY29tCmljZS5hdWRpb25vdy5jb20KLmF2 +LmNvbQp8fGF2Lm1vdmllCi5hdi1lLWJvZHkuY29tCmF2YWF6Lm9yZwp8fGF2YWF6 +Lm9yZwohLS18fGF2YXN0LmNvbQouYXZjb29sLmNvbQouYXZkYi5pbgp8fGF2ZGIu +aW4KLmF2ZGIudHYKfHxhdmRiLnR2Ci5hdmZhbnRhc3kuY29tCnx8YXZnLmNvbQou +YXZnbGUuY29tCnx8YXZnbGUuY29tCnx8YXZpZGVtdXgub3JnCnx8YXZvaXNpb24u +Y29tCi5hdnlhaG9vLmNvbQp8fGF4aW9zLmNvbQp8fGF4dXJlZm9ybWFjLmNvbQph +emVyaW1peC5jb20KfHxhemlyZXZwbi5jb20KIS0tYm94dW4uYXp1cmV3ZWJzaXRl +cy5uZXQgZG9lc24ndCBleGlzdC4KYm94dW4qLmF6dXJld2Vic2l0ZXMubmV0Cnx8 +Ym94dW4qLmF6dXJld2Vic2l0ZXMubmV0CgohLS0tLS0tLS0tLS0tLS0tLS0tLS1C +Qi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KfHxidDRncHJ4LmNvbQp8fGJ0NGcu +b3JnCnx8YmV0dGVyaGFzaC5uZXQKfHxiaW5hbmNlLm9yZwp8fGJpdGdldC5jb20K +fHxibGFja21hZ2ljZGVzaWduLmNvbQp8fGJlYXJ0ZWFjaC5jb20KfHxidGJ0dC5t +ZQp8fGJ0YnR0LmNvCnx8YnRiaXQubmV0Cnx8YmV0YWNsb3Vkcy5uZXQKfHxibG9j +a3RlbXBvLmNvbQp8fGJsb2NrY2FzdC5pdAp8fHd3dy5iaW5nLmNvbQp8fGJhbmd1 +bWkubW9lCnx8Yi1vay5jYwpmb3J1bS5iYWJ5LWtpbmdkb20uY29tCnx8YmFieWxv +bmJlZS5jb20KYmFieW5ldC5jb20uaGsKYmFja2NoaW5hLmNvbQp8fGJhY2tjaGlu +YS5jb20KLmJhY2twYWNrZXJzLmNvbS50dy9mb3J1bQpiYWNrdG90aWFuYW5tZW4u +Y29tCnx8YmFkLm5ld3MKLmJhZGl1Y2FvLmNvbQp8fGJhZGl1Y2FvLmNvbQouYmFk +am9qby5jb20KYmFkb28uY29tCnxodHRwOi8vKjIuYmFoYW11dC5jb20udHcKfHxi +YWlkdS5qcAouYmFpamllLm9yZwp8fGJhaWppZS5vcmcKfHxiYWlsYW5kYWlseS5j +b20KfHxiYWl4aW5nLm1lCnx8YmFpemhpLm9yZwouYmFuYW5hLXZwbi5jb20KfHxi +YW5hbmEtdnBuLmNvbQp8fGJhbmQudXMKfHxiYW5kY2FtcC5jb20KLmJhbmR3YWdv +bmhvc3QuY29tCnx8YmFuZHdhZ29uaG9zdC5jb20KLmJhbmdicm9zbmV0d29yay5j +b20KLmJhbmdjaGVuLm5ldAp8aHR0cDovL2JhbmdjaGVuLm5ldAp8fGJhbmdrb2tw +b3N0LmNvbQp8fGJhbmd5b3VsYXRlci5jb20KYmFubmVkYm9vay5vcmcKfHxiYW5u +ZWRib29rLm9yZwouYmFubmVkbmV3cy5vcmcKLmJhcmFtYW5nYW9ubGluZS5jb20K +fGh0dHA6Ly9iYXJhbWFuZ2FvbmxpbmUuY29tCi5iYXJlbmFrZWRpc2xhbS5jb20K +fHxiYXJuYWJ1LmNvLnVrCnx8YmFydG9uLmRlCi5iYXN0aWxsZXBvc3QuY29tCnx8 +YmFzdGlsbGVwb3N0LmNvbQpiYXl2b2ljZS5uZXQKfHxiYXl2b2ljZS5uZXQKfHxi +YmNoYXQudHYKfHxiYi1jaGF0LnR2Ci5iYmcuZ292Ci5iYmt6LmNvbS9mb3J1bQou +YmJucmFkaW8ub3JnCmJicy10dy5jb20KLmJic2RpZ2VzdC5jb20vdGhyZWFkCmJi +c2xhbmQuY29tCi5iYnNtby5jb20KLmJic29uZS5jb20KYmJ0b3lzdG9yZS5jb20K +LmJjYy5jb20udHcvYm9hcmQKLmJjY2hpbmVzZS5uZXQKLmJjbW9ybmluZy5jb20K +YmRzbXZpZGVvcy5uZXQKLmJlYWNvbmV2ZW50cy5jb20KLmJlYm8uY29tCnx8YmVi +by5jb20KLmJlZXZwbi5jb20KfHxiZWV2cG4uY29tCi5iZWhpbmRraW5rLmNvbQp8 +fGJlaWppbmcxOTg5LmNvbQp8fGJlaWppbmcyMDIyLmFydApiZWlqaW5nc3ByaW5n +LmNvbQp8fGJlaWppbmdzcHJpbmcuY29tCi5iZWxhbWlvbmxpbmUuY29tCi5iZWxs +Lndpa2kKfGh0dHA6Ly9iZWxsLndpa2kKYmVteXdpZmUuY2MKYmVyaWMubWUKfHxi +ZXJsaW5lcmJlcmljaHQuZGUKLmJlcmxpbnR3aXR0ZXJ3YWxsLmNvbQp8fGJlcmxp +bnR3aXR0ZXJ3YWxsLmNvbQouYmVybS5jby5uegouYmVzdGdvcmUuY29tCi5iZXN0 +cG9ybnN0YXJkYi5jb20KfHxiZXN0dnBuLmNvbQp8fGJlc3R2cG5hbmFseXNpcy5j +b20KfHxiZXN0dnBuZm9yY2hpbmEubmV0Cnx8YmVzdHZwbnNlcnZlci5jb20KfHxi +ZXN0dnBuc2VydmljZS5jb20KfHxiZXN0dnBudXNhLmNvbQp8fGJldDM2NS5jb20K +LmJldGZhaXIuY29tCnx8YmV0dGVybmV0LmNvCi5iZXR0ZXJ2cG4uY29tCnx8YmV0 +dGVydnBuLmNvbQouYmV0dHdlZW4uY29tCnx8YmV0dHdlZW4uY29tCnx8YmV0dmlj +dG9yLmNvbQouYmV3d3cubmV0Ci5iZXlvbmRmaXJld2FsbC5jb20KfHxiZm5uLm9y +Zwp8fGJmc2guaGsKLmJndnBuLmNvbQp8fGJndnBuLmNvbQouYmlhbmxlaS5jb20K +QEB8fGJpYW5sZWkuY29tCmJpYW50YWlsYWppYW8uY29tCnx8YmlibGVzZm9yYW1l +cmljYS5vcmcKfHx2cGwuYmlibGlvY29tbW9ucy5jb20KfHxiaWVkaWFuLm1lCmJp +Z2Zvb2xzLmNvbQp8fGJpZ2phcGFuZXNlc2V4LmNvbQouYmlnbmV3cy5vcmcKfHxi +aWduZXdzLm9yZwouYmlnc291bmQub3JnCnx8YmlsZC5kZQouYmlsaXdvcmxkLmNv +bQp8aHR0cDovL2JpbGl3b3JsZC5jb20KfGh0dHA6Ly9iaWxseXBhbi5jb20vd2lr +aQouYmludXgubWUKYWkuYmlud2FuZy5tZS9jb3VwbGV0Ci5iaXQuZG8KfGh0dHA6 +Ly9iaXQuZG8KLmJpdC5seQp8aHR0cDovL2JpdC5seQohLS18fGJpdGJ1Y2tldC5v +cmcKfHxiaXRjaHV0ZS5jb20KfHxiaXRjb2ludGFsay5vcmcKLmJpdHNoYXJlLmNv +bQp8fGJpdHNoYXJlLmNvbQpiaXRzbm9vcC5jb20KLmJpdHZpc2UuY29tCnx8Yml0 +dmlzZS5jb20KYml6aGF0LmNvbQp8fGJsLWRvdWppbnNvdWtvLmNvbQouYmpuZXds +aWZlLm9yZwouYmpzLm9yZwpianpjLm9yZwp8fGJqemMub3JnCnx8YmxhY2tlZC5j +b20KLmJsYWNrbG9naWMuY29tCi5ibGFja3Zwbi5jb20KfHxibGFja3Zwbi5jb20K +Ymxld3Bhc3MuY29tCi5ibGlua3guY29tCnx8Ymxpbmt4LmNvbQpibGludy5jb20K +LmJsaXAudHYKfHxibGlwLnR2Cnx8YmxvY2tjYXN0Lml0Ci5ibG9ja2NuLmNvbQp8 +fGJsb2NrY24uY29tCnx8YmxvY2tlZGJ5aGsuY29tCnx8YmxvY2tsZXNzLmNvbQp8 +fGJsb2cuZGUKLmJsb2cuanAKfGh0dHA6Ly9ibG9nLmpwCkBAfHxqcHVzaC5jbgou +YmxvZ2NhdGFsb2cuY29tCnx8YmxvZ2NhdGFsb2cuY29tCnx8YmxvZ2NpdHkubWUK +LmJsb2dnZXIuY29tCnx8YmxvZ2dlci5jb20KYmxvZ2ltZy5qcAouYmxvZ2xpbmVz +LmNvbQp8fGJsb2dsaW5lcy5jb20KfHxibG9nbG92aW4uY29tCnJjb252ZXJzYXRp +b24uYmxvZ3MuY29tCi5ibG9ndGQub3JnCnxodHRwOi8vYmxvZ3RkLm9yZwp8fGJs +b29kc2hlZC5uZXQKfHxib290c3RyYXBjZG4uY29tCnx8Ymxvb21mb3J0dW5lLmNv +bQpibHVlYW5nZWxsaXZlLmNvbQp8fGJsdWJycnkuY29tCnx8Ym1kcnUuY29tCnx8 +Ym5leHQuY29tLnR3Cnx8Ym5ybWV0YWwuY29tCmJvYXJkcmVhZGVyLmNvbS90aHJl +YWQKfHxib2FyZHJlYWRlci5jb20KLmJvZC5hc2lhCnx8Ym9kLmFzaWEKLmJvZG9n +ODguY29tCi5ib2xlaHZwbi5uZXQKfHxib2xlaHZwbi5uZXQKYm9uYm9ubWUuY29t +Ci5ib25mb3VuZGF0aW9uLm9yZwouYm9uZ2FjYW1zLmNvbQp8fGJvb2JzdGFncmFt +LmNvbQp8fGJvb2suY29tLnR3Cnx8Ym9va2RlcG9zaXRvcnkuY29tCmJvb2tlcHVi +LmNvbQp8fGJvb2tzLmNvbS50dwp8fGJvb2t3YWxrZXIuY29tLnR3Cnx8Ym9yZ2Vu +bWFnYXppbmUuY29tCnx8Ym90YW53YW5nLmNvbQouYm90Lm51Ci5ib3dlbnByZXNz +LmNvbQp8fGJvd2VucHJlc3MuY29tCnx8YXBwLmJveC5jb20KZGwuYm94Lm5ldAp8 +fGRsLmJveC5uZXQKLmJveHBuLmNvbQp8fGJveHBuLmNvbQpib3h1bi5jb20KfHxi +b3h1bi5jb20KLmJveHVuLnR2Cnx8Ym94dW4udHYKLmJveHVuY2x1Yi5jb20KYm95 +YW5ndS5jb20KLmJveWZyaWVuZHR2LmNvbQouYm95c2Zvb2QuY29tCnx8YnIuc3QK +LmJyYWlueXF1b3RlLmNvbS9xdW90ZXMvYXV0aG9ycy9kL2RhbGFpX2xhbWEKfHxi +cmF1bWVpc3Rlci5vcmcKfHxicmF2ZS5jb20KLmJyYXZvdHViZS5uZXQKfHxicmF2 +b3R1YmUubmV0Ci5icmF6emVycy5jb20KfHxicmF6emVycy5jb20KfHxicmVhY2hl +ZC50bwouYnJlYWsuY29tCnx8YnJlYWsuY29tCmJyZWFrZ2Z3LmNvbQp8fGJyZWFr +Z2Z3LmNvbQpicmVha2luZzkxMS5jb20KLmJyZWFraW5ndHdlZXRzLmNvbQp8fGJy +ZWFraW5ndHdlZXRzLmNvbQp8fGJyZWFrd2FsbC5uZXQKYnJpaWFuLmNvbS82NTEx +L2ZyZWVnYXRlCnx8YnJpbGwuY29tCmJyaXp6bHkuY29tCnx8YnJpenpseS5jb20K +YnJvYWRib29rLmNvbQouYnJvYWRwcmVzc2luYy5jb20KfHxicm9hZHByZXNzaW5j +LmNvbQpiYnMuYnJvY2tiYnMuY29tCnx8YnJvb2tpbmdzLmVkdQpicnVjZXdhbmcu +bmV0Ci5icnV0YWx0Z3AuY29tCnx8YnJ1dGFsdGdwLmNvbQp8fGJza3kuYXBwCnx8 +YnNreS5uZXR3b3JrCnx8YnNreS5zb2NpYWwKfHxidDk1LmNvbQouYnRhaWEuY29t +Ci5idGJ0YXYuY29tCnx8YnRkaWcuY29tCnx8YnRkaWdnLm9yZwp8fGJ0Z3VhcmQu +Y29tCi5idGt1Lm1lCnx8YnRrdS5tZQp8fGJ0a3Uub3JnCi5idHNwcmVhZC5jb20K +LmJ0c3luY2tleXMuY29tCi5idWRhZWR1Lm9yZwp8fGJ1ZGFlZHUub3JnCi5idWRk +aGFuZXQuY29tLnR3L3pmcm9wL3RpYmV0Cnx8YnVmZmVyZWQuY29tCnx8YnVsbGd1 +YXJkLmNvbQouYnVsbG9nLm9yZwp8fGJ1bGxvZy5vcmcKLmJ1bGxvZ2dlci5jb20K +fHxidWxsb2dnZXIuY29tCnx8YnVtaW5nYmFpLm5ldAp8fGJ1bmJ1bmhrLmNvbQou +YnVzYXlhcmkuY29tCnxodHRwOi8vYnVzYXlhcmkuY29tCnx8YnVzaW5lc3MtaHVt +YW5yaWdodHMub3JnCi5idXNpbmVzc2luc2lkZXIuY29tL2JpbmctY291bGQtYmUt +Y2Vuc29yaW5nLXNlYXJjaC1yZXN1bHRzLTIwMTQKLmJ1c2luZXNzaW5zaWRlci5j +b20vY2hpbmEtYmFua3MtcHJlcGFyaW5nLWZvci1kZWJ0LWltcGxvc2lvbi0yMDE0 +Ci5idXNpbmVzc2luc2lkZXIuY29tL2hvbmcta29uZy1hY3RpdmlzdHMtZGVmeS1w +b2xpY2UtdGVhci1nYXMtYXMtcHJvdGVzdHMtY29udGludWUtb3Zlcm5pZ2h0LTIw +MTQKLmJ1c2luZXNzaW5zaWRlci5jb20vaW50ZXJuZXQtb3V0YWdlcy1yZXBvcnRl +ZC1pbi1ub3J0aC1rb3JlYS0yMDE0Ci5idXNpbmVzc2luc2lkZXIuY29tL2lwaG9u +ZS02LWlzLWFwcHJvdmVkLWZvci1zYWxlLWluLWNoaW5hLTIwMTQKLmJ1c2luZXNz +aW5zaWRlci5jb20vbmZsLWFubm91bmNlcnMtc3VyZmFjZS10YWJsZXRzLTIwMTQK +LmJ1c2luZXNzaW5zaWRlci5jb20vcGFuYW1hLXBhcGVycwouYnVzaW5lc3NpbnNp +ZGVyLmNvbS91bWJyZWxsYS1tYW4taG9uZy1rb25nLTIwMTQKfGh0dHA6Ly93d3cu +YnVzaW5lc3NpbnNpZGVyLmNvbS5hdS8qCi5idXNpbmVzc3RvZGF5LmNvbS50dwp8 +fGJ1c2luZXNzdG9kYXkuY29tLnR3Ci5idXN1Lm9yZy9uZXdzCnxodHRwOi8vYnVz +dS5vcmcvbmV3cwpidXN5dHJhZGUuY29tCi5idXp6aGFuZC5jb20KLmJ1enpoYW5k +Lm5ldAouYnV6em9yYW5nZS5jb20KfHxidXp6b3JhbmdlLmNvbQp8fGJ1enpzcHJv +dXQuY29tCnx8YnZwbi5jb20KfHxid2gxLm5ldAp8fGJ5cGFzc2NlbnNvcnNoaXAu +b3JnCgohLS0tLS0tLS0tLS0tLS0tLS0tLS1DQy0tLS0tLS0tLS0tLS0tLS0tLS0t +LS0tLS0KfHxjb3ZlbmFudHN3YXRjaC5vcmcudHcKfHxjcHUtbW9ua2V5LmNvbQp8 +fGNvZmZlZW1hbmdhLnRvCnx8Y3RpbmV3cy5jb20KfHxjYWNoZWZseS5jb20KfHxj +YWNoZWZseS5uZXQKfHxjdXRvdXQucHJvCnx8Y2l4aWFveWEuY2x1Ygp8fGNhbXBh +aWduLWFyY2hpdmUuY29tCnx8Y2hpbmF1bmNlbnNvcmVkLnR2Cnx8Y2F0Ym94Lm1v +ZQp8fGNyb3Nzd2FsbC5vcmcKfHxjbGlwY29udmVydGVyLmNjCnx8emgtaGFucy5j +ZnNoOTkuY29tCnx8Y29sYWNsb3VkLm5ldAp8fGNpLWVuLmpwCnx8Yy1zcGFuLm9y +ZwouYy1zcGFudmlkZW8ub3JnCnx8Yy1zcGFudmlkZW8ub3JnCnx8Yy1lc3Qtc2lt +cGxlLmNvbQouYzEwMHRpYmV0Lm9yZwp8fGNhYmxlYXYudHYKfHxjYWJsZWdhdGVz +ZWFyY2gubmV0Ci5jYWNoaW5lc2UuY29tCi5jYWNudy5jb20KfGh0dHA6Ly9jYWNu +dy5jb20KLmNhY3R1c3Zwbi5jb20KfHxjYWN0dXN2cG4uY29tCi5jYWZlcHJlc3Mu +Y29tCi5jYWhyLm9yZy50dwouY2FsYW1lby5jb20vYm9va3MKfHxjYWxlbmRhcnou +Y29tCi5jYWxnYXJ5Y2hpbmVzZS5jYQouY2FsZ2FyeWNoaW5lc2UuY29tCi5jYWxn +YXJ5Y2hpbmVzZS5uZXQKLmNhbTQuY29tCi5jYW00LmpwCi5jYW00LnNnCi5jYW1m +cm9nLmNvbQp8fGNhbWZyb2cuY29tCnx8Y2FtcGFpZ25mb3J1eWdodXJzLm9yZwp8 +fGNhbXMuY29tCi5jYW1zLm9yZy5zZwpjYW5hZGFtZWV0LmNvbQouY2FuYWxwb3Ju +by5jb20KfGh0dHA6Ly9iYnMuY2FudG9uZXNlLmFzaWEvCiEtLWh0dHA6Ly93d3cu +Y2FudG9uZXNlLmFzaWEvYWN0aW9uLWJicy5odG1sCi5jYW55dS5vcmcKfHxjYW55 +dS5vcmcKLmNhb2JpYW4uaW5mbwp8fGNhb2JpYW4uaW5mbwpjYW9jaGFuZ3Fpbmcu +Y29tCnx8Y2FvY2hhbmdxaW5nLmNvbQouY2FwLm9yZy5oawp8fGNhcC5vcmcuaGsK +fHxjYW9wb3JuLnVzCi5jYXJhYmluYXN5cGlzdG9sYXMuY29tCmNhcmRpbmFsa3Vu +Z2ZvdW5kYXRpb24ub3JnCnx8cG9zdHMuY2FyZWVyZW5naW5lLnVzCmNhcm1vdG9y +c2hvdy5jb20KfHxjYXJyZC5jbwouY2FydG9vbm1vdmVtZW50LmNvbQp8fGNhcnRv +b25tb3ZlbWVudC5jb20KLmNhc2FkZWx0aWJldGJjbi5vcmcKLmNhc2F0aWJldC5v +cmcubXgKfGh0dHA6Ly9jYXNhdGliZXQub3JnLm14Ci5jYXJpLmNvbS5teQp8fGNh +cmkuY29tLm15Cnx8Y2FyaWJiZWFuY29tLmNvbQp8fGNhcm91c2VsbC5jb20uaGsK +LmNhc2lub2tpbmcuY29tCi5jYXNpbm9yaXZhLmNvbQp8fGNhdGNoMjIubmV0Ci5j +YXRjaGdvZC5jb20KfGh0dHA6Ly9jYXRjaGdvZC5jb20KLmNhdGhvbGljLm9yZy5o +awp8fGNhdGhvbGljLm9yZy5oawpjYXRob2xpYy5vcmcudHcKfHxjYXRob2xpYy5v +cmcudHcKLmNhdGh2b2ljZS5vcmcudHcKfHxjYXRvLm9yZwp8fGNhdHR0LmNvbQp8 +fGNhdXMuY29tCi5jYmMuY2EKfHxjYmMuY2EKLmNic25ld3MuY29tL3ZpZGVvCi5j +YnRjLm9yZy5oawp8fHNvdXRocGFyay5jYy5jb20KIS0uY2NjLmRlCiEtfHxjY2Mu +ZGUKfHxjY2NhdC5jYwp8fGNjY2F0LmNvCnx8Y2NmZC5vcmcudHcKLmNjaGVyZS5j +b20KfHxjY2hlcmUuY29tCi5jY2ltLm9yZwouY2NsaWZlLmNhCmNjbGlmZS5vcmcK +fHxjY2xpZmUub3JnCmNjbGlmZWZsLm9yZwp8fGNjbGlmZWZsLm9yZwouY2N0aGVy +ZS5jb20KfHxjY3RoZXJlLmNvbQp8fGNjdGhlcmUubmV0Ci5jY3Rtd2ViLm5ldAou +Y2N0b25nYmFvLmNvbS9hcnRpY2xlLzIwNzg3MzIKY2N1ZS5jYQpjY3VlLmNvbQou +Y2N2b2ljZS5jYQouY2N3Lm9yZy50dwouY2dkZXBvdC5vcmcKfGh0dHA6Ly9jZ2Rl +cG90Lm9yZwp8fGNkYm9vay5vcmcKLmNkZWYub3JnCnx8Y2RlZi5vcmcKfHxjZGln +LmluZm8KY2RqcC5vcmcKfHxjZGpwLm9yZwohLS0uY2RuLWFwcGxlLmNvbQohLS18 +fGNkbi1hcHBsZS5jb20KLmNkbmV3cy5jb20udHcKY2RwMTk4OS5vcmcKY2RwMTk5 +OC5vcmcKfHxjZHAxOTk4Lm9yZwpjZHAyMDA2Lm9yZwp8fGNkcDIwMDYub3JnCnx8 +Y2RwZXUub3JnCnx8Y2RwdWsuY28udWsKfHxjZHB3ZWIub3JnCnx8Y2Rwd2ViLm9y +Zwp8fGNkcHd1Lm9yZwp8fGNkdy5jb20KfHxjZWNjLmdvdgp8fGNlbGx1bG8uaW5m +bwp8fGNlbmV3cy5ldQp8fGNlbnRlcmZvcmh1bWFucmVwcm9kLmNvbQp8fGNlbnRy +YWxuYXRpb24uY29tCi5jZW50dXJ5cy5uZXQKfGh0dHA6Ly9jZW50dXJ5cy5uZXQK +LmNmaGtzLm9yZy5oawouY2Zvcy5kZQp8fGNmci5vcmcKLmNmdGZjLmNvbQouY2dz +dC5lZHUKLmNoYW5nZS5vcmcKfHxjaGFuZ2Uub3JnCi5jaGFuZ3AuY29tCnx8Y2hh +bmdwLmNvbQp8fGNoYW5uZWxuZXdzYXNpYS5jb20KfHxjaGFud29ybGQub3JnCnx8 +Y2hhb3Muc29jaWFsCnx8Y2hhcmFjdGVyLmFpCnx8Y2hhdGdwdC5jb20KLmNoYXR1 +cmJhdGUuY29tCnx8Y2hhdHVyYmF0ZS5jb20KLmNodWFuZy15ZW4ub3JnCnx8Y2hl +Y2tnZncuY29tCnx8Y2hlbmdtaW5nbWFnLmNvbQp8fGNoZW5ndWFuZ2NoZW5nLmNv +bQp8fGNoZW5wb2tvbmcuY29tCnx8Y2hlbnBva29uZ3ZpcC5jb20KfHxjaGVycnlz +YXZlLmNvbQp8fGNoaG9uZ2JpLm9yZwp8fGNoaW5hLXdlZWsuY29tCnx8Y2hpbmEx +MDEuY29tCnx8Y2hpbmExOC5vcmcKfHxjaGluYTIxLmNvbQp8fGNoaW5hMjEub3Jn +Cnx8Y2hpbmE1MDAwLnVzCnx8Y2hpbmFhZmZhaXJzLm9yZwp8fGNoaW5hYWlkLnVz +Cnx8Y2hpbmFhaWQub3JnCnx8Y2hpbmFhaWQubmV0Cnx8Y2hpbmFjaGFuZ2Uub3Jn +Cnx8Y2hpbmFjaGFubmVsLmhrCnx8Y2hpbmFkZW1vY3JhdHMub3JnCnx8Y2hpbmFk +aWFsb2d1ZS5uZXQKfHxjaGluYWRpZ2l0YWx0aW1lcy5uZXQKfHxjaGluYWVsZWN0 +aW9ucy5vcmcKfHxjaGluYWZpbGUuY29tCnx8Y2hpbmFmcmVlcHJlc3Mub3JnCi5j +aGluYWdhdGUuY29tCmNoaW5hZ2Z3Lm9yZwp8fGNoaW5hZ2Z3Lm9yZwouY2hpbmFn +b25ldC5jb20KLmNoaW5haG9yaXpvbi5vcmcKfHxjaGluYWhvcml6b24ub3JnCi5j +aGluYWh1c2guY29tCi5jaGluYWlucGVyc3BlY3RpdmUuY29tCmNoaW5hbGFib3J3 +YXRjaC5vcmcKY2hpbmFsYXd0cmFuc2xhdGUuY29tCi5jaGluYXBvc3QuY29tLnR3 +L3RhaXdhbi9uYXRpb25hbC9uYXRpb25hbC1uZXdzCmNoaW5hbGF3YW5kcG9saWN5 +LmNvbQouY2hpbmFtdWxlLmNvbQp8fGNoaW5hbXVsZS5jb20KY2hpbmFtei5vcmcK +LmNoaW5hbmV3c2NlbnRlci5jb20KfGh0dHBzOi8vY2hpbmFuZXdzY2VudGVyLmNv +bQouY2hpbmFwcmVzcy5jb20ubXkKfHxjaGluYXByZXNzLmNvbS5teQouY2hpbmEt +cmV2aWV3LmNvbS51YQp8aHR0cDovL2NoaW5hLXJldmlldy5jb20udWEKLmNoaW5h +cmlnaHRzaWEub3JnCmNoaW5hc21pbGUubmV0L2ZvcnVtcwpjaGluYXNvY2lhbGRl +bW9jcmF0aWNwYXJ0eS5jb20KfHxjaGluYXNvY2lhbGRlbW9jcmF0aWNwYXJ0eS5j +b20KY2hpbmFzb3VsLm9yZwp8fGNoaW5hc291bC5vcmcKLmNoaW5hc3Vja3MubmV0 +Cnx8Y2hpbmF0b3BzZXguY29tCi5jaGluYXRvd24uY29tLmF1CmNoaW5hd2F5Lm9y +ZwouY2hpbmF3b3JrZXIuaW5mbwp8fGNoaW5hd29ya2VyLmluZm8KY2hpbmF5b3V0 +aC5vcmcuaGsKY2hpbmVzZS1sZWFkZXJzLm9yZwp8fGNoaW5lc2UtbWVtb3JpYWwu +b3JnCi5jaGluZXNlZGFpbHkuY29tCnx8Y2hpbmVzZWRhaWx5bmV3cy5jb20KLmNo +aW5lc2VkZW1vY3JhY3kuY29tCnx8Y2hpbmVzZWRlbW9jcmFjeS5jb20KfHxjaGlu +ZXNlZ2F5Lm9yZwouY2hpbmVzZW4uZGUKfHxjaGluZXNlbi5kZQp8fGNoaW5lc2Vu +ZXdzLm5ldC5hdQouY2hpbmVzZXBlbi5vcmcKfHxjaGluZXNlcmFkaW9zZWF0dGxl +LmNvbQp8fGNoaW5lc2V1cHJlc3MuY29tCi5jaGluZ2NoZW9uZy5jb20KfHxjaGlu +Z2NoZW9uZy5jb20KLmNoaW5tYW4ubmV0CnxodHRwOi8vY2hpbm1hbi5uZXQKY2hp +dGh1Lm9yZwp8fGNubmV3cy5jaG9zdW4uY29tCi5jaHJkbmV0LmNvbQp8aHR0cDov +L2NocmRuZXQuY29tCi5jaHJpc3RpYW5mcmVlZG9tLm9yZwp8fGNocmlzdGlhbmZy +ZWVkb20ub3JnCmNocmlzdGlhbnN0dWR5LmNvbQp8fGNocmlzdGlhbnN0dWR5LmNv +bQpjaHJpc3R1c3JleC5vcmcvd3d3MS9zZGMKLmNodWJvbGQuY29tCmNodWJ1bi5j +b20KfHxjaHJpc3RpYW50aW1lcy5vcmcuaGsKLmNocmxhd3llcnMuaGsKfHxjaHJs +YXd5ZXJzLmhrCi5jaHVyY2hpbmhvbmdrb25nLm9yZy9iNS9pbmRleC5waHAKfGh0 +dHA6Ly9jaHVyY2hpbmhvbmdrb25nLm9yZy9iNS9pbmRleC5waHAKLmNodXNoaWdh +bmdkcnVnLmNoCi5jaWVuZW4uY29tCi5jaW5lYXN0ZW50cmVmZi5kZQouY2lwZmcu +b3JnCnx8Y2lyb3NhbnRpbGxpLmNvbQouY2l0aXplbmNuLmNvbQp8fGNpdGl6ZW5j +bi5jb20KfHxjaXRpemVubGFiLmNhCnx8Y2l0aXplbmxhYi5vcmcKLmNpdGl6ZW5s +YWIub3JnCmNpdGl6ZW5zcmFkaW8ub3JnCi5jaXR5MzY1LmNhCnxodHRwOi8vY2l0 +eTM2NS5jYQpjaXR5OXguY29tCnx8Y2l0eXBvcHVsYXRpb24uZGUKLmNpdHl0YWxr +LnR3L2V2ZW50Ci5jaXZpY3BhcnR5LmhrCnx8Y2l2aWNwYXJ0eS5oawpjaXZpbGhy +ZnJvbnQub3JnCnx8Y2l2aWxocmZyb250Lm9yZwouY2l2aWxpYW5ndW5uZXIuY29t +Ci5jaXZpbG1lZGlhLnR3Cnx8Y2l2aWxtZWRpYS50dwp8fGNpdml0YWkuY29tCi5j +azEwMS5jb20KfHxjazEwMS5jb20KLmNsYXJpb25wcm9qZWN0Lm9yZy9uZXdzL2lz +bGFtaWMtc3RhdGUtaXNpcy1pc2lsLXByb3BhZ2FuZGEKfHxjbGFzc2ljYWxndWl0 +YXJibG9nLm5ldAouY2xiLm9yZy5oawpjbGVhcmhhcm1vbnkubmV0CmNsZWFyd2lz +ZG9tLm5ldAp8fGNsaW5pY2EtdGliZXQucnUKLmNsaXBmaXNoLmRlCnx8YXBwLmNs +b3VkY29uZS5jb20KfHxjbG91ZGZsYXJlLWlwZnMuY29tCnx8Y2x1YjEwNjkuY29t +Cnx8Y2x1YmhvdXNlYXBpLmNvbQp8fGNtZWdyb3VwLmNvbQp8fGNtaS5vcmcudHcK +fGh0dHA6Ly93d3cuY21vaW5jLm9yZwpjbXAuaGt1LmhrCnx8Y211bGUuY29tCnx8 +Y21zLmdvdgp8aHR0cDovL3Zwbi5jbXUuZWR1CnxodHRwOi8vdnBuLnN2LmNtdS5l +ZHUKLmNuNi5ldQouY25hLmNvbS50dwp8fGNuYS5jb20udHcKLmNuYWJjLmNvbQou +Y25kLm9yZwp8fGNuZC5vcmcKZG93bmxvYWQuY25ldC5jb20KLmNuZXgub3JnLmNu +Ci5jbmluZXUuY29tCi5jbm4uY29tL3ZpZGVvCi5jbnBvbGl0aWNzLm9yZwp8fGNu +cG9saXRpY3Mub3JnCi5jbi1wcm94eS5jb20KfGh0dHA6Ly9jbi1wcm94eS5jb20K +LmNucHJveHkuY29tCm5ld3MuY255ZXMuY29tCnx8Y29hdC5jby5qcAp8fGNvY2hp +bmEub3JnCnx8Y29kZXNoYXJlLmlvCnx8Y29kZXNrdWxwdG9yLm9yZwp8fGNvZmFj +dHMudHcKfHxjb25vaGEuanAKfGh0dHA6Ly90b3NoLmNvbWVkeWNlbnRyYWwuY29t +CmNvbWVmcm9tY2hpbmEuY29tCnx8Y29tZWZyb21jaGluYS5jb20KLmNvbWljLW1l +Z2EubWUKY29tbWFuZGFybXMuY29tCnx8Y29tbWVudHNoay5jb20KLmNvbW11bmlz +dGNyaW1lcy5vcmcKfHxjb21tdW5pc3RjcmltZXMub3JnCnx8Y29tbXVuaXR5Y2hv +aWNlY3UuY29tCnx8Y29tcGFyaXRlY2guY29tCnx8Y29tcGlsZWhlYXJ0LmNvbQp8 +fGNvbm9oYS5qcAouY29udGFjdG1hZ2F6aW5lLm5ldAouY29udmlvLm5ldAp8fGNv +b2wxOC5jb20KLmNvb2xhbGVyLmNvbQp8fGNvb2xhbGVyLmNvbQpjb29sZGVyLmNv +bQp8fGNvb2xkZXIuY29tCnx8Y29vbGxvdWQub3JnLnR3Ci5jb29sbmN1dGUuY29t +Cnx8Y29vbHN0dWZmaW5jLmNvbQpjb3J1bWNvbGxlZ2UuY29tCi5jb3MtbW9lLmNv +bQp8aHR0cDovL2Nvcy1tb2UuY29tCi5jb3NwbGF5amF2LnBsCnxodHRwOi8vY29z +cGxheWphdi5wbAouY290d2VldC5jb20KfHxjb3R3ZWV0LmNvbQouY291cnNlaGVy +by5jb20KfHxjb3Vyc2VoZXJvLmNvbQpjcGoub3JnCnx8Y3BqLm9yZwouY3E5OS51 +cwp8aHR0cDovL2NxOTkudXMKY3JhY2tsZS5jb20KfHxjcmFja2xlLmNvbQouY3Jh +enlzLmNjCi5jcmF6eXNoaXQuY29tCnx8Y3JhenlzaGl0LmNvbQp8fGNyY2hpbmEu +b3JnCmNyZC1uZXQub3JnCmNyZWFkZXJzLm5ldAp8fGNyZWFkZXJzLm5ldAouY3Jl +YWRlcnNuZXQuY29tCnx8Y3Jpc3R5bGkuY29tCnx8Y3JveHlwcm94eS5jb20KLmNy +b2NvdHViZS5jb20KfGh0dHA6Ly9jcm9jb3R1YmUuY29tCi5jcm9zc3Zwbi5uZXQK +fHxjcm9zc3Zwbi5uZXQKfHxjcnVjaWFsLmNvbQp8fGJsb2cuY3J5cHRvZ3JhcGh5 +ZW5naW5lZXJpbmcuY29tCmNzZHBhcnR5LmNvbQp8fGNzZHBhcnR5LmNvbQp8fGNz +aXMub3JnCnx8Y3Ntb25pdG9yLmNvbQp8fGNzdWNoZW4uZGUKfHxjc3cub3JnLnVr +Cnx8Y3Qub3JnLnR3Ci5jdGFvLm9yZwp8fGN0aXR2LmNvbS50dwp8fGN0b3djLm9y +Zwp8fGN0cy5jb20udHcKfHxjdHdhbnQuY29tCnxodHRwOi8vbGlicmFyeS51c2Mu +Y3Voay5lZHUuaGsvCnxodHRwOi8vbWpsc2gudXNjLmN1aGsuZWR1LmhrLwouY3Vo +a2Fjcy5vcmcvfmJlbm5nCi5jdWl3ZWlwaW5nLm5ldAp8fGN1aXdlaXBpbmcubmV0 +Cnx8Y3VsdHVyZS50dwouY3VtbG91ZGVyLmNvbQp8fGN1bWxvdWRlci5jb20KfHxj +dXJ2ZWZpc2guY29tCnx8Y3VzcC5oawouY3V0c2NlbmVzLm5ldAp8fGN1dHNjZW5l +cy5uZXQKLmN3LmNvbS50dwp8fGN3LmNvbS50dwp8aHR0cDovL2ZvcnVtLmN5YmVy +Y3RtLmNvbQpjeWJlcmdob3N0dnBuLmNvbQp8fGN5YmVyZ2hvc3R2cG4uY29tCnx8 +Y3luc2NyaWJlLmNvbQp8fGlmYW4uY3ouY2MKfHxtaWtlLmN6LmNjCnx8bmljLmN6 +LmNjCgohLS0tLS0tLS0tLS0tLS0tLS0tLS1ERC0tLS0tLS0tLS0tLS0tLS0tLS0t +LS0tLS0KfHxkZW5vLmRldgp8fGRvY3MuZGVuby5jb20KfHxkb29tOS5vcmcKfHxk +d2ViLmxpbmsKfHxkb2NrZXIuaW8KfHxkaXNuZXlwbHVzLmNvbQp8fGRkZXguaW8K +fHxkLmNhc2gKfHxkb3ViaXl1bmJhY2t1cC5jb20KfHxjbG91ZC5kaWZ5LmFpCi5k +LWZ1a3l1LmNvbQp8aHR0cDovL2QtZnVreXUuY29tCi5kMTAwLm5ldAp8fGQxMDAu +bmV0Ci5kMmJheS5jb20KfGh0dHA6Ly9kMmJheS5jb20KLmRhYnIuY28udWsKfHxk +YWJyLmNvLnVrCmRhYnIuZXUKZGFici5tb2JpCnx8ZGFici5tb2JpCnx8ZGFici5t +ZQpkYWRhemltLmNvbQp8fGRhZGF6aW0uY29tCi5kYWRpMzYwLmNvbQouZGFmYWJl +dC5jb20KZGFmYWdvb2QuY29tCmRhZmFoYW8uY29tCi5kYWZvaC5vcmcKLmRhZnRw +b3JuLmNvbQouZGFnZWxpamtzZXN0YW5kYWFyZC5ubAouZGFpZG9zdHVwLnJ1Cnxo +dHRwOi8vZGFpZG9zdHVwLnJ1Cnx8ZGFpbHltYWlsLmNvLnVrCi5kYWlseW1vdGlv +bi5jb20KfHxkYWlseW1vdGlvbi5jb20KfHxkYWlseXNhYmFoLmNvbQouZGFqaXl1 +YW4uY29tCnx8ZGFqaXl1YW4uZGUKZGFqaXl1YW4uZXUKZGFsYWlsYW1hLmNvbQou +ZGFsYWlsYW1hLm1uCnxodHRwOi8vZGFsYWlsYW1hLm1uCi5kYWxhaWxhbWEucnUK +fHxkYWxhaWxhbWEucnUKZGFsYWlsYW1hODAub3JnCi5kYWxhaWxhbWEtYXJjaGl2 +ZXMub3JnCi5kYWxhaWxhbWFjZW50ZXIub3JnCnxodHRwOi8vZGFsYWlsYW1hY2Vu +dGVyLm9yZwpkYWxhaWxhbWFmZWxsb3dzLm9yZwouZGFsYWlsYW1hZmlsbS5jb20K +LmRhbGFpbGFtYWZvdW5kYXRpb24ub3JnCi5kYWxhaWxhbWFoaW5kaS5jb20KLmRh +bGFpbGFtYWluYXVzdHJhbGlhLm9yZwouZGFsYWlsYW1hamFwYW5lc2UuY29tCi5k +YWxhaWxhbWFwcm90ZXN0ZXJzLmluZm8KLmRhbGFpbGFtYXF1b3Rlcy5vcmcKLmRh +bGFpbGFtYXRydXN0Lm9yZwouZGFsYWlsYW1hdmlzaXQub3JnLm56Ci5kYWxhaWxh +bWF3b3JsZC5jb20KfHxkYWxhaWxhbWF3b3JsZC5jb20KZGFsaWFubWVuZy5vcmcK +fHxkYWxpYW5tZW5nLm9yZwouZGFsaXVsaWFuLm9yZwp8fGRhbGl1bGlhbi5vcmcK +LmRhbmtlNGNoaW5hLm5ldAp8fGRhbmtlNGNoaW5hLm5ldApkYW9sYW4ubmV0Cnx8 +ZGFycmVubGl1d2VpLmNvbQp8fGRhc2hsYW5lLmNvbQp8fGRhdW0ubmV0Ci5kYXZp +ZC1raWxnb3VyLmNvbQp8aHR0cDovL2RhdmlkLWtpbGdvdXIuY29tCmRheGEuY24K +fHxkYXhhLmNuCi5kYXlsaWZlLmNvbS90b3BpYy9kYWxhaV9sYW1hCnx8ZGIudHQK +fHxkYmdqZC5jb20KfHxkY2FyZC50dwpkY21pbGl0YXJ5LmNvbQp8fGRkYy5jb20u +dHcKfHxkZWFkaG91c2Uub3JnCnx8ZGVhZGxpbmUuY29tCnx8ZGVlcGFpLm9yZwp8 +fGRlY29kZXQuY28KCiEtLU9yaWdpbjpjZG4taTMwJF8KIS0tRXhjZXB0aW9uOiBI +b21lcGFnZSBhY2Nlc3Mgd2l0aG91dCByc3QKIS0tS2V5d29yZCBpcyAkXwouZGVm +aW5lYmFiZS5jb20KCnx8ZGVsY2FtcC5uZXQKZGVsaWNpb3VzLmNvbS9HRldib29r +bWFyawouZGVtb2NyYXRzLm9yZwp8fGRlbW9jcmF0cy5vcmcKLmRlbW9zaXN0by5o +awp8fGRlbW9zaXN0by5oawp8fGRlc2Muc2UKfHxkZXNzY2kuY29tCi5kZXN0cm95 +LWNoaW5hLmpwCnx8ZGV1dHNjaGUtd2VsbGUuZGUKfHxkZXZpYW50YXJ0LmNvbQp8 +fGRldmlhbnRhcnQubmV0Cnx8ZGV2aW8udXMKfHxkZXZwbi5jb20KfHxkZXZ2LmFp +CmRmbi5vcmcKZGhhcm1ha2FyYS5uZXQKLmRoYXJhbXNhbGFuZXQuY29tCi5kaWFv +eXVpc2xhbmRzLm9yZwp8fGRpYW95dWlzbGFuZHMub3JnCi5kaWZhbmd3ZW5nZS5v +cmcKfGh0dHA6Ly9kaWdpbGFuZC50dy8KLmRpaWdvLmNvbQp8fGRpaWdvLmNvbQou +ZGlwaXR5LmNvbQp8fGRpcmVjdGNyZWF0aXZlLmNvbQohLS18fGRpc2NvZ3MuY29t +CiEtLUBAfHxjZG4uZGlzY29ncy5jb20KLmRpc2N1c3MuY29tLmhrCnx8ZGlzY3Vz +cy5jb20uaGsKLmRpc2N1c3M0dS5jb20KfHxkaXNwLmNjCi5kaXNxdXMuY29tCnx8 +ZGlzcXVzLmNvbQouZGl0LWluYy51cwp8fGRpdC1pbmMudXMKfHxkaXlpbi5vcmcK +LmRpemhpZGl6aGkuY29tCnx8ZGl6aHV6aGlzaGFuZy5jb20KZGphbmdvc25pcHBl +dHMub3JnCnx8ZGwtbGFieS5qcAp8fGRsaXZlLnR2Cnx8ZGxzaXRlLmNvbQp8fGRs +eW91dHViZS5jb20KfHxkbWMubmljbwp8fGRtY2RuLm5ldAouZG5zY3J5cHQub3Jn +Cnx8ZG5zY3J5cHQub3JnCnx8ZG5zMmdvLmNvbQp8fGRuc3NlYy5uZXQKZG9jdG9y +dm9pY2Uub3JnCgohLS1Eb2dGYXJ0TmV0d29yawouZG9nZmFydG5ldHdvcmsuY29t +L3RvdXIKZ2xvcnlob2xlLmNvbQoKLmRvamluLmNvbQp8fGRvbGMuZGUKfHxkb2xm +Lm9yZy5oawouZG9tYWluLmNsdWIudHcKLmRvbWFpbnRvZGF5LmNvbS5hdQpjaGlu +ZXNlLmRvbmdhLmNvbQpkb25ndGFpd2FuZy5jb20KfHxkb25ndGFpd2FuZy5jb20K +LmRvbmd0YWl3YW5nLm5ldAp8fGRvbmd0YWl3YW5nLm5ldAouZG9uZ3lhbmdqaW5n +LmNvbQp8fGRhbmJvb3J1LmRvbm1haS51cwouZG9udGZpbHRlci51cwp8fGRvb3No +by5jb20KfHxkb291cmJlc3Qub3JnCi5kb3JqZXNodWdkZW4uY29tCi5kb3RwbGFu +ZS5jb20KfHxkb3RwbGFuZS5jb20KfHxkb3RzdWIuY29tCi5kb3R2cG4uY29tCnx8 +ZG90dnBuLmNvbQouZG91Yi5pbwp8fGRvdWIuaW8KfHxkb3VibGV0aGlua2xhYi5v +cmcKfHxkb3Vnc2NyaXB0cy5jb20KfHxkb3VqaW5jYWZlLmNvbQp8aHR0cHM6Ly9i +YXJ0ZW5kZXIuZG93am9uZXMuY29tCmRwaGsub3JnCmRwcC5vcmcudHcKfHxkcHAu +b3JnLnR3Cnx8ZHByLmluZm8KfHxkcmFnb25zcHJpbmdzLm9yZwohLS18fGRyYXcu +aW8KLmRyZWFtYW1hdGV1cnMuY29tCi5kcmVwdW5nLm9yZwp8fGRyZ2FuLm5ldAp8 +fGRyb3Bib29rcy50dgp8fGRyb3Bib3guY29tCnx8ZHJvcGJveGFwaS5jb20KfHxk +cm9wYm94dXNlcmNvbnRlbnQuY29tCi5kcnR1YmVyLmNvbQouZHNjbi5pbmZvCnxo +dHRwOi8vZHNjbi5pbmZvCi5kc3RrLmRrCnxodHRwOi8vZHN0ay5kawp8fGR0aWJs +b2cuY29tCnx8ZHRpYy5taWwKLmR1Y2tkdWNrZ28uY29tCnx8ZHVja2R1Y2tnby5j +b20KLmR1Y2tsb2FkLmNvbS9kb3dubG9hZAp8fGR1Y2tteWxpZmUuY29tCi5kdWdh +LmpwCnxodHRwOi8vZHVnYS5qcAouZHVpaHVhLm9yZwp8fGR1aWh1YS5vcmcKfHxk +dWlodWFocmpvdXJuYWwub3JnCmR1cGluZy5uZXQKfHxkdXBsaWNhdGkuY29tCmR1 +cG9sYS5jb20KZHVwb2xhLm5ldAouZHVzaGkuY2EKfHxkdXlhb3NzLmNvbQp8fGR2 +b3Jhay5vcmcKLmR3LmNvbQp8fGR3LmNvbQp8fGR3LmRlCi5kdy13b3JsZC5jb20K +fHxkdy13b3JsZC5jb20KLmR3LXdvcmxkLmRlCnxodHRwOi8vZHctd29ybGQuZGUK +d3d3LmR3aGVlbGVyLmNvbQpkd25ld3MuY29tCnx8ZHduZXdzLmNvbQpkd25ld3Mu +bmV0Cnx8ZHduZXdzLm5ldAp4eXMuZHhpb25nLmNvbQp8fGR5bmF3ZWJpbmMuY29t +Cnx8ZHlzZnouY2MKLmR6emUuY29tCgohLS0tLS0tLS0tLS0tLS0tLS0tLS1FRS0t +LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KfHxlNjIxLm5ldAp8fGVkeC1jZG4ub3Jn +Cnx8ZXZlcmlwZWRpYS5vcmcKfHxlcG9jaHRpbWVzLmNvbS50dwp8fGV0aGVyc2Nh +bi5jb20KfHxlbGNvbmZpZGVuY2lhbC5jb20KfHxlLWNsYXNzaWNhbC5jb20udHcK +fHxlLWdvbGQuY29tCi5lLWdvbGQuY29tCi5lLWhlbnRhaS5vcmcKfHxlLWhlbnRh +aS5vcmcKLmUtaGVudGFpZGIuY29tCnxodHRwOi8vZS1oZW50YWlkYi5jb20KZS1p +bmZvLm9yZy50dwouZS16b25lLmNvbS5oay9kaXNjdXoKfGh0dHA6Ly9lLXpvbmUu +Y29tLmhrL2Rpc2N1egouZTEyMy5oawp8fGUxMjMuaGsKLmVhcmx5dGliZXQuY29t +CnxodHRwOi8vZWFybHl0aWJldC5jb20KLmVhcnRoY2FtLmNvbQouZWFydGh2cG4u +Y29tCnx8ZWFydGh2cG4uY29tCnx8ZWFzdGFzaWFmb3J1bS5vcmcKLmVhc3Rlcm5s +aWdodG5pbmcub3JnCi5lYXN0dHVya2VzdGFuLmNvbQp8aHR0cDovL3d3dy5lYXN0 +dHVya2lzdGFuLm5ldC8KLmVhc3R0dXJraXN0YW4tZ292Lm9yZwouZWFzdHR1cmtp +c3RhbmNjLm9yZwouZWFzdHR1cmtpc3RhbmdvdmVybm1lbnRpbmV4aWxlLnVzCnx8 +ZWFzdHR1cmtpc3RhbmdvdmVybm1lbnRpbmV4aWxlLnVzCi5lYXN5Y2EuY2EKLmVh +c3lwaWMuY29tCnx8Zm5jLmViYy5uZXQudHcKfHxuZXdzLmViYy5uZXQudHcKLmVi +b255LWJlYXV0eS5jb20KZWJvb2ticm93c2UuY29tCmVib29rZWUuY29tCnx8ZWNm +YS5vcmcudHcKfHxlY2ltZy50dwplY21pbmlzdHJ5Lm5ldAouZWNvbm9taXN0LmNv +bQpiYnMuZWNzdGFydC5jb20KZWRnZWNhc3RjZG4ubmV0Cnx8ZWRnZWNhc3RjZG4u +bmV0Ci90d2ltZ1wuZWRnZXN1aXRlXC5uZXRcL1wvP2FwcGxlZGFpbHkvCmVkaWN5 +cGFnZXMuY29tCi5lZG1vbnRvbmNoaW5hLmNuCi5lZG1vbnRvbnNlcnZpY2UuY29t +CmVkb29ycy5jb20KLmVkdWJyaWRnZS5jb20KfHxlZHVicmlkZ2UuY29tCi5lZHVw +cm8ub3JnCnx8ZWV2cG4uY29tCmVmY2Mub3JnLmhrCi5lZnVrdC5jb20KfGh0dHA6 +Ly9lZnVrdC5jb20KfHxlaWMtYXYuY29tCnx8ZWlyZWluaWtvdGFlcnVrYWkuY29t +Ci5laXNiYi5jb20KLmVrc2lzb3psdWsuY29tCnx8ZWtzaXNvemx1ay5jb20KZWxl +Y3Rpb25zbWV0ZXIuY29tCnx8ZWxnb29nLmltCi5lbHBhaXMuY29tCnx8ZWxwYWlz +LmNvbQouZWx0b25kaXNuZXkuY29tCi5lbWFnYS5jb20vaW5mby8zNDA3CmVtaWx5 +bGF1Lm9yZy5oawouZW1hbm5hLmNvbS9jaGluZXNlVHJhZGl0aW9uYWwKLmVtcGZp +bC5jb20KLmVtdWxlLWVkMmsuY29tCnxodHRwOi8vZW11bGUtZWQyay5jb20KLmVt +dWxlZmFucy5jb20KfGh0dHA6Ly9lbXVsZWZhbnMuY29tCi5lbXVwYXJhZGlzZS5t +ZQouZW5hbnlhbmcubXkKIS0tLmVuYW55YW5nLm15L25ld3MvMjAxNzA1MDIvJUU3 +JUJFJThFJUU1JTlCJUJEJUU0JUI5JThCJUU5JTlGJUIzJUU1JUE0JUE3JUU1JTlD +JUIwJUU5JTlDJTg3JUUzJTgwJThBJUU4JThCJUI5JUU2JTlFJTlDJUUzJTgwJThC +JUU3JThCJUFDJUU1JUFFJUI2Cnx8ZW5jcnlwdC5tZQp8fGVuZXdzdHJlZS5jb20K +LmVuZmFsLmRlCnx8Y2hpbmVzZS5lbmdhZGdldC5jb20KZW5nbGlzaGZvcmV2ZXJ5 +b25lLm9yZwp8fGVuZ2xpc2hmcm9tZW5nbGFuZC5jby51awplbmdsaXNocGVuLm9y +ZwouZW5saWdodGVuLm9yZy50dwp8fGVudGVybWFwLmNvbQouZXBpc2NvcGFsY2h1 +cmNoLm9yZwouZXBvY2hoay5jb20KfHxlcG9jaGhrLmNvbQplcG9jaHRpbWVzLWJn +LmNvbQp8fGVwb2NodGltZXMtYmcuY29tCmVwb2NodGltZXMtcm9tYW5pYS5jb20K +fHxlcG9jaHRpbWVzLXJvbWFuaWEuY29tCmVwb2NodGltZXMuY28uaWwKfHxlcG9j +aHRpbWVzLmNvLmlsCmVwb2NodGltZXMuY28ua3IKfHxlcG9jaHRpbWVzLmNvLmty +CmVwb2NodGltZXMuY29tCnx8ZXBvY2h0aW1lcy5jb20KLmVwb2NodGltZXMuY3oK +fHxlcG9jaHRpbWVzLmRlCnx8ZXBvY2h0aW1lcy5mcgp8fGVwb2NodGltZXMuaXQK +fHxlcG9jaHRpbWVzLmpwCnx8ZXBvY2h0aW1lcy5ydQp8fGVwb2NodGltZXMuc2UK +fHxlcG9jaHRpbWVzdHIuY29tCi5lcG9jaHdlZWsuY29tCnx8ZXBvY2h3ZWVrLmNv +bQp8fGVwb2Nod2Vla2x5LmNvbQp8fGVwb3JuZXIuY29tCi5lcXVpbmVub3cuY29t +CmVyYWJhcnUubmV0Ci5lcmFjb20uY29tLnR3Ci5lcmF5c29mdC5jb20udHIKLmVy +ZXB1Ymxpay5jb20KLmVyaWdodHMubmV0Cnx8ZXJpZ2h0cy5uZXQKfHxlcm5lc3Rt +YW5kZWwub3JnCnx8ZXJvZGFpemVuc3l1LmNvbQp8fGVyb2RvdWppbmxvZy5jb20K +fHxlcm9kb3VqaW53b3JsZC5jb20KfHxlcm9tYW5nYS1raW5nZG9tLmNvbQp8fGVy +b21hbmdhZG91emluLmNvbQouZXJvbW9uLm5ldAp8aHR0cDovL2Vyb21vbi5uZXQK +LmVyb3Byb2ZpbGUuY29tCi5lcm90aWNzYWxvb24ubmV0Ci5lc2xpdGUuY29tCnx8 +ZXNsaXRlLmNvbQouZXRhYS5vcmcuYXUKLmV0YWR1bHQuY29tCmV0YWl3YW5uZXdz +LmNvbQp8fGV0aXplci5vcmcKfHxldG9ra2kuY29tCnx8ZXRzeS5jb20KLmV0dG9k +YXkubmV0CmV0dm9ubGluZS5oawouZXVjYXNpbm8uY29tCi5ldWxhbS5jb20KLmV1 +cmVrYXZwdC5jb20KfHxldXJla2F2cHQuY29tCi5ldXJvbmV3cy5jb20KfHxldXJv +bmV3cy5jb20KZWVhcy5ldXJvcGEuZXUvZGVsZWdhdGlvbnMvY2hpbmEvcHJlc3Nf +Y29ybmVyL2FsbF9uZXdzL25ld3MvMjAxNS8yMDE1MDcxNl96aAplZWFzLmV1cm9w +YS5ldS9zdGF0ZW1lbnRzLWVlYXMvMjAxNS8xNTEwMjIKfHxhcHBzLmV2b3ppLmNv +bQp8fGV2c2Nob29sLm5ldAp8fGV4YmxvZy5qcApAQHx8d3d3LmV4YmxvZy5qcAou +ZXhjaHJpc3RpYW4uaGsKfHxleGNocmlzdGlhbi5oawp8aHR0cDovL2Jsb2cuZXhj +aXRlLmNvLmpwCnx8ZXhoZW50YWkub3JnCnx8ZXhtb3Jtb24ub3JnCnx8ZXhwYXRz +aGllbGQuY29tCi5leHBlY3RoaW0uY29tCnx8ZXhwZWN0aGltLmNvbQpleHBlcnRz +LXVuaXZlcnMuY29tCnx8ZXhwbG9hZGVyLm5ldAouZXhwcmVzc3Zwbi5jb20KfHxl +eHByZXNzdnBuLmNvbQouZXh0cmVtZXR1YmUuY29tCmV5ZXZpby5qcAp8fGV5ZXZp +by5qcAouZXlueS5jb20KfHxleW55LmNvbQouZXpwZWVyLmNvbQoKIS0tLS0tLS0t +LS0tLS0tLS0tLS0tRkYtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCnx8ZmVlZGx5 +LmNvbQp8fGZ1Y2tjY3AueHl6Cnx8ZnVja2NjcC5jb20KfHxmdXJyeWJhci5jb20K +fHxmb3JiZXMuY29tCnx8ZmluYW5jaWFsZXhwcmVzcy5jb20KfHxmYXN0LmNvbQp8 +fGZhY3RjaGVja2xhYi5vcmcKfHxmdC5jb20KfHxmdWNoc2lhLmRldgp8fGZyZWVz +cy5vcmcKfHxmcmlsLmpwCnx8ZnJlZS5jb20udHcKfHxmcm90aC56b25lCnx8ZmFu +Ym94LmNjCnx8ZnJlZS5iZwp8fGYtZHJvaWQub3JnCnx8ZmFjZWJvb2txdW90ZXM0 +dS5jb20KLmZhY2VsZXNzLm1lCnx8ZmFjZWxlc3MubWUKfGh0dHA6Ly9mYWNlc29m +dGliZXRhbnNlbGZpbW1vbGF0b3JzLmluZm8KfHxmYWNlc29mbnlmdy5jb20KfHxm +YWN0cGVkaWEub3JnCi5mYWl0aDEwMC5vcmcKfGh0dHA6Ly9mYWl0aDEwMC5vcmcK +CiEtLUVuaGFuY2VtZW50OgohLS1odHRwOi8vZmFpdGhmdWxleWUuY29tLmRldGFp +bC53ZWJzaXRlLwohLS1odHRwOi8vZmFpdGhmdWxleWUuY29tLmlwYWRkcmVzcy5j +b20vCi5mYWl0aGZ1bGV5ZS5jb20KCnx8ZmFpdGh0aGVkb2cuaW5mbwouZmFra3Uu +bmV0Cnx8ZmFsbGVuYXJrLmNvbQouZmFsc2VmaXJlLmNvbQp8fGZhbHNlZmlyZS5j +b20KZmFsdW4tY28ub3JnCmZhbHVuYXJ0Lm9yZwp8fGZhbHVuYXNpYS5pbmZvCnxo +dHRwOi8vZmFsdW5hdS5vcmcKLmZhbHVuYXoubmV0CmZhbHVuZGFmYS5vcmcKZmFs +dW5kYWZhLWRjLm9yZwp8fGZhbHVuZGFmYS1mbG9yaWRhLm9yZwp8fGZhbHVuZGFm +YS1uYy5vcmcKfHxmYWx1bmRhZmEtcGEubmV0CmZhbHVuLW55Lm5ldAp8fGZhbHVu +ZGFmYWluZGlhLm9yZwpmYWx1bmRhZmFtdXNldW0ub3JnCi5mYWx1bmdvbmcuY2x1 +YgouZmFsdW5nb25nLmRlCmZhbHVuZ29uZy5vcmcudWsKfHxmYWx1bmhyLm9yZwpm +YWx1bmluZm8uZGUKZmFsdW5pbmZvLm5ldAouZmFsdW5waWxpcGluYXMubmV0CmZh +bWlseWZlZC5vcmcKLmZhbmdlbWluZy5jb20KfHxmYW5nbGl6aGkuaW5mbwp8fGZh +bmdvbmcub3JnCmZhbmdvbmdoZWlrZS5jb20KfHxmYW5oYW9sb3UuY29tCi5mYW5x +aWFuZy50awpmYW5xaWFuZ2hvdS5jb20KfHxmYW5xaWFuZ2hvdS5jb20KLmZhbnFp +YW5nemhlLmNvbQp8fGZhbnFpYW5nemhlLmNvbQp8fGZhbnR2LmhrCmZhcGR1LmNv +bQpmYXByb3h5LmNvbQohLS0uZmFyeGlhbi5jb20KLmZhd2FuZ2h1aWh1aS5vcmcK +fHxmYW11bmlvbi5jb20KLmZhbi1xaWFuZy5jb20KZmFuZ2VtaW5nLmNvbQouZmFu +aGFvZGFuZy5jb20KfHxmYW5xaWFuZy5uZXR3b3JrCnx8ZmFuc3dvbmcuY29tCi5m +YW55dWUuaW5mbwouZmFyd2VzdGNoaW5hLmNvbQoKIS0tRmFzdGx5CmVuLmZhdm90 +dGVyLm5ldAohLS18fHJudy5nbG9iYWwuc3NsLmZhc3RseS5uZXQKLmdsb2JhbC5z +c2wuZmFzdGx5Lm5ldAp8fGZyZWV0bHMuZmFzdGx5Lm5ldApueXRpbWVzLm1hcC5m +YXN0bHkubmV0Cnx8bnl0aW1lcy5tYXAuZmFzdGx5Lm5ldAp8fGZhc3Qud2lzdGlh +LmNvbQoKfHxmYXN0ZXN0dnBuLmNvbQp8fGZhc3Rzc2guY29tCnx8ZmFzdHN0b25l +Lm9yZwpmYXZzdGFyLmZtCnx8ZmF2c3Rhci5mbQpmYXlkYW8uY29tL3dlYmxvZwp8 +fGZhei5uZXQKLmZjMi5jb20KLmZjMmNoaW5hLmNvbQouZmMyY24uY29tCnx8ZmMy +Y24uY29tCmZjMmJsb2cubmV0CnxodHRwOi8vdXlndXIuZmMyd2ViLmNvbS8KLmZk +YzY0LmRlCi5mZGM2NC5vcmcKLmZkYzg5LmpwCiEtLWZlZWRib29rcy5tb2JpCnx8 +ZmVlZGVyLmNvCnx8ZmVlbHNzaC5jb20KZmVlci5jb20KfGh0dHA6Ly9mZWl0aWFu +YWNhZGVteS5vcmcKLmZlaXRpYW4tY2FsaWZvcm5pYS5vcmcKfHxmZWl4aWFvaGFv +LmNvbQp8fGZlbWluaXN0dGVhY2hlci5jb20KLmZlbmd6aGVuZ2h1LmNvbQp8fGZl +bmd6aGVuZ2h1LmNvbQouZmVuZ3poZW5naHUubmV0Cnx8ZmVuZ3poZW5naHUubmV0 +Ci5mZXZlcm5ldC5jb20KfGh0dHA6Ly9mZi5pbQpmZmZmZi5hdApmZmxpY2suY29t +Ci5mZnZwbi5jb20KZmdtdHYubmV0Ci5mZ210di5vcmcKLmZocmVwb3J0cy5uZXQK +fGh0dHA6Ly9maHJlcG9ydHMubmV0Ci5maWdwcmF5ZXIuY29tCnx8ZmlncHJheWVy +LmNvbQouZmlsZWZseWVyLmNvbQp8fGZpbGVmbHllci5jb20KfGh0dHA6Ly9mZWVk +cy5maWxlZm9ydW0uY29tCi5maWxlc2VydmUuY29tL2ZpbGUKZmlsbHRoZXNxdWFy +ZS5vcmcKZmlsbWluZ2ZvcnRpYmV0Lm9yZwouZmlsdGhkdW1wLmNvbQouZmluY2h2 +cG4uY29tCnx8ZmluY2h2cG4uY29tCiEtLWZpbmRib29rLnR3CmZpbmRtZXNwb3Qu +Y29tCnx8ZmluZHlvdXR1YmUuY29tCnx8ZmluZHlvdXR1YmUubmV0Ci5maW5nZXJk +YWlseS5jb20KLmZpcmVhcm1zd29ybGQubmV0CnxodHRwOi8vZmlyZWFybXN3b3Js +ZC5uZXQKfHxyZWxheS5maXJlZm94LmNvbQp8fGZpcmVvZmxpYmVydHkuaW5mbwp8 +fGZpcmVvZmxpYmVydHkub3JnCi5maXJldHdlZXQuaW8KfHxmaXJldHdlZXQuaW8K +fHxvcGVuLmZpcnN0b3J5Lm1lCnx8Zmlyc3Rwb3N0LmNvbQp8fGZpcnN0cmFkZS5j +b20KfHxmaXNoLmF1ZGlvCiEtLXx8ZmxhZ2ZveC5uZXQKLmZsYWdzb25saW5lLml0 +CmZsZXNoYm90LmNvbQouZmxldXJzZGVzbGV0dHJlcy5jb20KfGh0dHA6Ly9mbGV1 +cnNkZXNsZXR0cmVzLmNvbQp8fGZsZ2p1c3RpY2Uub3JnCgohLS18fGZhcm02LnN0 +YXRpY2ZsaWNrci5jb20KIS0tLmZsaWNrci5jb20vcGhvdG9zLzQ2MjMxMDc3QE4w +NgohLS0uZmxpY2tyLmNvbS9ncm91cHMvYWl3ZWl3ZWkKIS0tLmZsaWNrci5jb20v +cGhvdG9zL2RpZ2l0YWxib3kxMDAKIS0tLmZsaWNrci5jb20vcGhvdG9zL2Z6aGVu +Z2h1CiEtLS5mbGlja3IuY29tL3Bob3Rvcy9sb25lbHlmb3gKIS0tZmxpY2tyLmNv +bS9waG90b3MvdmFudmFuLzUyOTkyNTE1NwohLS0uZmxpY2tyLmNvbS9waG90b3Mv +d2ludGVya2FuYWwKIS0tLmZsaWNrci5jb20vcGhvdG9zL3pvbGEKfHxmbGlja3Iu +Y29tCnx8c3RhdGljZmxpY2tyLmNvbQoKZmxpY2tyaGl2ZW1pbmQubmV0Ci5mbGlj +a3JpdmVyLmNvbQouZmxpbmcuY29tCnx8ZmxpcGthcnQuY29tCnx8ZmxvZy50dwp8 +fGZsb3dob25na29uZy5uZXQKLmZseXZwbi5jb20KfHxmbHl2cG4uY29tCnxodHRw +Oi8vY24uZm1ubm93LmNvbQpibG9nLmZvb2xzbW91bnRhaW4uY29tCi5mb3J1bTRo +ay5jb20KZmFuZ29uZy5mb3J1bXMtZnJlZS5jb20KcGlvbmVlci13b3JrZXIuZm9y +dW1zLWZyZWUuY29tCiEtLWZvdXJzcXVhcmUuY29tCiEtLXxodHRwOi8vNHNxLmNv +bQp8aHR0cHM6Ly9zcyouNHNxaS5uZXQKdmlkZW8uZm94YnVzaW5lc3MuY29tCnxo +dHRwOi8vZm94Z2F5LmNvbQp8fGZyaW5nZW5ldHdvcmsuY29tCnx8ZmxlY2hlaW50 +aGVwZWNoZS5mcgouZm9jaGsub3JnCnx8Zm9jaGsub3JnCnx8Zm9jdXN0YWl3YW4u +dHcKLmZvY3VzdnBuLmNvbQp8fGZvZmcub3JnCi5mb29vb28uY29tCnx8Zm9vb29v +LmNvbQp8fGZvcmVpZ25hZmZhaXJzLmNvbQp8fGZvdW50bWVkaWEuaW8KfHxmb3Vy +dGhpbnRlcm5hdGlvbmFsLm9yZwp8fGZveHN1Yi5jb20KZm94dGFuZy5jb20KLmZw +bXQub3JnCnxodHRwOi8vZnBtdC5vcmcKLmZwbXQudHcKLmZwbXQtb3NlbC5vcmcK +fHxmcG10bWV4aWNvLm9yZwp8fGZxcm91dGVyLmNvbQp8fGZyYW5rMjAxOS5tZQp8 +fGZyYW5rbGMuY29tCi5mcmVha3NoYXJlLmNvbQp8aHR0cDovL2ZyZWFrc2hhcmUu +Y29tCmZyZWUtZ2F0ZS5vcmcKLmZyZWUtaGFkYS1ub3cub3JnCmZyZWUtcHJveHku +Y3oKLmZyZWUuZnIvYWRzbApraW5lb3guZnJlZS5mcgp0aWJldGxpYnJlLmZyZWUu +ZnIKfHxmcmVlYnJvd3Nlci5vcmcKLmZyZWVjaGFsLmNvbQouZnJlZWRvbWhvdXNl +Lm9yZwp8fGZyZWVkb21ob3VzZS5vcmcKLmZyZWVkb21zaGVyYWxkLm9yZwp8fGZy +ZWVkb21zaGVyYWxkLm9yZwp8fGZyZWVnYW8uY29tCmZyZWVpbGhhbXRvaHRpLm9y +Zwp8fGZyZWVrYXpha2hzLm9yZwouZnJlZWxvdHRvLmNvbQp8fGZyZWVsb3R0by5j +b20KZnJlZW1hbjIuY29tCi5mcmVlb3BlbnZwbi5jb20KZnJlZW1vcmVuLmNvbQpm +cmVlbW9yZW5ld3MuY29tCmZyZWVtdXNlLm9yZy9hcmNoaXZlcy83ODkKZnJlZW5l +dC1jaGluYS5vcmcKZnJlZW5ld3Njbi5jb20KY24uZnJlZW9uZXMuY29tCi5mcmVl +b3oub3JnL2Jicwp8fGZyZWVvei5vcmcKfHxmcmVlc3NoLnVzCnx8ZnJlZWJlYWNv +bi5jb20KLmZyZWVjaGluYS5uZXdzCnx8ZnJlZWNoaW5hd2VpYm8uY29tCi5mcmVl +ZG9tY29sbGVjdGlvbi5vcmcvaW50ZXJ2aWV3cy9yZWJpeWFfa2FkZWVyCi5mcmVl +Zm9ydW1zLm9yZwp8fGZyZWVuZXRwcm9qZWN0Lm9yZwouZnJlZW96Lm9yZwouZnJl +ZXRpYmV0Lm5ldAp8fGZyZWV0aWJldC5vcmcKLmZyZWV0aWJldGFuaGVyb2VzLm9y +Zwp8aHR0cDovL2ZyZWV0aWJldGFuaGVyb2VzLm9yZwp8fGZyZWV0cmliZS5tZQou +ZnJlZXZpZXdtb3ZpZXMuY29tCi5mcmVldnBuLm1lCnxodHRwOi8vZnJlZXZwbi5t +ZQp8fGZyZWV3YWxscGFwZXI0Lm1lCi5mcmVld2Vicy5jb20KLmZyZWV3ZWNoYXQu +Y29tCnx8ZnJlZXdlY2hhdC5jb20KZnJlZXdlaWJvLmNvbQp8fGZyZWV3ZWliby5j +b20KLmZyZWV4aW53ZW4uY29tCnx8ZnJlZXpoaWh1Lm9yZwp8fGZyaWVuZGZlZWQu +Y29tCnx8ZnJpZW5kcy1vZi10aWJldC5vcmcKLmZyaWVuZHNvZnRpYmV0Lm9yZwp8 +fGZyaWVuZHNvZnRpYmV0Lm9yZwpmcmVlY2hpbmEubmV0CnxodHRwOi8vd3d3Lnpl +bnN1ci5mcmVlcmsuY29tLwpmcmVldnBuLm5sCmZyZWV5ZWxsb3cuY29tCmhrLmZy +aWVuZGR5LmNvbS9oawp8aHR0cDovL2FkdWx0LmZyaWVuZGZpbmRlci5jb20vCi5m +cmluZy5jb20KfHxmcmluZy5jb20KLmZyb21jaGluYXRvdXNhLm5ldAp8fGZyb21t +ZWwubmV0Ci5mcm9udGxpbmVkZWZlbmRlcnMub3JnCnx8ZnJvbnRsaW5lZGVmZW5k +ZXJzLm9yZwouZnJvb3R2cG4uY29tCnx8ZnJvb3R2cG4uY29tCnx8ZnNja2VkLm9y +ZwouZnN1cmYuY29tCi5mdHYuY29tLnR3Cnx8ZnR2LmNvbS50dwp8fGZ0dm5ld3Mu +Y29tLnR3CmZ1Y2QuY29tCmZ1Y2tnZncub3JnCi5mdWxpb25lLmNvbQp8aHR0cHM6 +Ly9mdWxpb25lLmNvbQp8fGZ1bGxlcmNvbnNpZGVyYXRpb24uY29tCnx8ZnVsbHNl +cnZpY2VnYW1lLmNvbQouZnVuZi50dwpmdW5wLmNvbQouZnVxLmNvbQouZnVyaGhk +bC5vcmcKfHxmdXJpbmthbi5jb20KLmZ1dHVyZWNoaW5hZm9ydW0ub3JnCnx8ZnV0 +dXJlbWVzc2FnZS5vcmcKLmZ1eC5jb20KLmZ1eWluZGlhbnRhaS5vcmcKLmZ1eXUu +b3JnLnR3Cnx8ZncuY20KLmZ4Y20tY2hpbmVzZS5jb20KfHxmeGNtLWNoaW5lc2Uu +Y29tCgohLS0tLS0tLS0tLS0tLS0tLS0tLS1HRy0tLS0tLS0tLS0tLS0tLS0tLS0t +LS0tLS0KfHxnaXRsYWIubmV0CnxodHRwOi8vZ21wNC5jb20KfHxnZXRzZXNzaW9u +Lm9yZwp8fGdkYWlseS5vcmcKfHxnZndhdGNoLm9yZwp8fGdvLXRvLXpsaWJyYXJ5 +LnNlCnx8Z2l0Ym9vay5pbwouZzZoZW50YWkuY29tCnxodHRwOi8vZzZoZW50YWku +Y29tCnx8Zy1xdWVlbi5jb20KfHxnYWIuY29tCnx8Z2Fib2NvcnAuY29tCi5nYWVw +cm94eS5jb20KLmdhZm9ydW0ub3JnCi5nYWdhb29sYWxhLmNvbQp8fGdhZ2Fvb2xh +bGEuY29tCi5nYWxheHltYWNhdS5jb20KfHxnYWxlbnd1LmNvbQouZ2Fsc3RhcnMu +bmV0Cnx8Z2FtZTczNS5jb20KZ2FtZWJhc2UuY29tLnR3CmdhbWVqb2x0LmNvbQp8 +aHR0cDovL3dpa2kuZ2FtZXJwLmpwCnx8Z2FtZXIuY29tLnR3Ci5nYW1lci5jb20u +dHcKLmdhbWV6LmNvbS50dwp8fGdhbWV6LmNvbS50dwouZ2Ftb3VzYS5jb20KLmdh +b21pbmcubmV0Cnx8Z2FvbWluZy5uZXQKZ2FuZ2VzLmNvbQp8fGdhbmppbmcuY29t +Cnx8Z2FuamluZ3dvcmxkLmNvbQouZ2FvcGkubmV0CnxodHRwOi8vZ2FvcGkubmV0 +CmdhcmRlbm5ldHdvcmtzLmNvbQp8fGdhcmRlbm5ldHdvcmtzLm9yZwohLS1JUCBv +ZiBHYXJkZW4gTmV0d29yawo3Mi41Mi44MS4yMgp8fGdhcnRsaXZlLmNvbQp8fGdh +dGhlci5jb20KLmdhdGhlcnByb3h5LmNvbQouZ2F5YnViYmxlLmNvbQouZ2F5Y24u +bmV0Ci5nYXlodWIuY29tCnx8Z2F5bWFwLmNjCi5nYXltZW5yaW5nLmNvbQouZ2F5 +dHViZS5jb20KIS0tfHxnYXl0dWJlLmNvbQp8fGltYWdlcy1nYXl0dWJlLmNvbQou +Z2F5d2F0Y2guY29tCnxodHRwOi8vZ2F5d2F0Y2guY29tCi5nYXpvdHViZS5jb20K +fHxnYXpvdHViZS5jb20KfHxnY2Mub3JnLmhrCnx8Z2NsdWJzLmNvbQp8fGdjbWFz +aWEuY29tCi5nY3BuZXdzLmNvbQp8aHR0cDovL2djcG5ld3MuY29tCmdkemYub3Jn +Cnx8Z2Vlay1hcnQubmV0CmdlZWtlcmhvbWUuY29tLzIwMTAvMDMveGl4aWFuZy1w +cm9qZWN0LWNyb3NzLWdmdwouZ2VraWthbWUuY29tCnxodHRwOi8vZ2VraWthbWUu +Y29tCi5nZWxib29ydS5jb20KfGh0dHA6Ly9nZWxib29ydS5jb20KfHxnZW5lcmF0 +ZWQucGhvdG9zCnx8Z2VuaXVzLmNvbQohLS18fGdlbnVpdGVjLmNvbQouZ2VvY2l0 +aWVzLmNvLmpwCi5nZW9jaXRpZXMuY29tL1NpbGljb25WYWxsZXkvQ2lyY3VpdC81 +NjgzL2Rvd25sb2FkLmh0bWwKaGsuZ2VvY2l0aWVzLmNvbQpnZW9jaXRpZXMuanAK +fHxnZXBoLmlvCi5nZXJlZm91bmRhdGlvbi5vcmcKfHxnZXRhc3RyaWxsLmNvbQou +Z2V0Y2h1LmNvbQouZ2V0Y2xvYWsuY29tCnx8Z2V0Y2xvYWsuY29tCnx8Z2V0Zm94 +eXByb3h5Lm9yZwp8fGdldGdvbS5jb20KLmdldGkycC5uZXQKfHxnZXRpMnAubmV0 +CmdldGl0b24uY29tCi5nZXRqZXRzby5jb20vZm9ydW0KLmdldGxhbnRlcm4ub3Jn +Cnx8Z2V0bGFudGVybi5vcmcKfHxnZXRtYWx1cy5jb20KLmdldHNvY2lhbHNjb3Bl +LmNvbQp8fGdldHN5bmMuY29tCnx8Z2V0dHIuY29tCmdmYnYuZGUKLmdmc2FsZS5j +b20KfHxnZnNhbGUuY29tCi5nZncucHJlc3MKfHxnZncucHJlc3MKfHxnZncucmVw +b3J0Ci5nZ3NzbC5jb20KfHxnZ3NzbC5jb20KIS0tfHxnaG9zdC5vcmcKLmdob3N0 +cGF0aC5jb20KfHxnaG9zdHBhdGguY29tCnx8Z2h1dC5vcmcKLmdpYW50ZXNzbmln +aHQuY29tCnxodHRwOi8vZ2lhbnRlc3NuaWdodC5jb20KLmdpZnJlZS5jb20KfHxn +aWdhLXdlYi5qcAp0dy5naWdhY2lyY2xlLmNvbQpnaWdwb3Juby5ydQp8fGdpcmxi +YW5rZXIuY29tCi5naXQuaW8KfHxnaXQuaW8KfGh0dHA6Ly9zb2Z0d2FyZWRvd25s +b2FkLmdpdGJvb2tzLmlvCnx8cmF3LmdpdGhhY2suY29tCgohLS0tR2l0SHViLS0t +Cnx8Z2l0aHViLmJsb2cKfHxnaXRodWIuY29tCnx8Z2l0aHViY29waWxvdC5jb20K +IS0tZ2l0aHViLmNvbS9nZXRsYW50ZXJuCiEtLXxodHRwczovL2dpc3QuZ2l0aHVi +LmNvbQohLS1odHRwOi8vY3RobG8uZ2l0aHViLmlvL2hrdHYKIS0taGFoYXhpeGku +Z2l0aHViLmlvCiEtLXxodHRwczovL2hhaGF4aXhpLmdpdGh1Yi5pbwohLS18fGhh +b2VsLmdpdGh1Yi5pbwohLS18aHR0cDovL29uaW9uaGFja2VyLmdpdGh1Yi5pbwoh +LS18fHJnMy5naXRodWIuaW8KIS0tfHxzaWthb3poZTE5OTcuZ2l0aHViLmlvCiEt +LXx8c29kYXRlYS5naXRodWIuaW8KIS0tfHx0ZXJtaW51czIwNDkuZ2l0aHViLmlv +CiEtLXx8dG91dHlyYXRlci5naXRodWIuaW8KIS0td3NnemFvLmdpdGh1Yi5pbwoh +LS18aHR0cHM6Ly93c2d6YW8uZ2l0aHViLmlvCi5naXRodWIuaW8KfHxnaXRodWIu +aW8KfHxnaXRodWJ1c2VyY29udGVudC5jb20KfHxnaXRodWJhc3NldHMuY29tCgou +Z2l6bGVuLm5ldAp8fGdpemxlbi5uZXQKLmdqY3p6LmNvbQp8fGdqY3p6LmNvbQp8 +fGdsYXJpdHkuYXBwCnx8Z2xvYmFsamloYWQubmV0Cmdsb2JhbG1lZGlhb3V0cmVh +Y2guY29tCmdsb2JhbG11c2V1bW9uY29tbXVuaXNtLm9yZwp8fGdsb2JhbHJlc2N1 +ZS5uZXQKLmdsb2JhbHRtLm9yZwouZ2xvYmFsdm9pY2Vzb25saW5lLm9yZwp8fGds +b2JhbHZvaWNlc29ubGluZS5vcmcKfHxnbG9iYWx2cG4ubmV0Ci5nbG9jay5jb20K +Z2x1Y2ttYW4uY29tL0RhbGFpTGFtYQp8fGdtZ2FyZC5jb20KfGh0dHA6Ly93d3cu +Z21pZGRsZS5jb20KfGh0dHA6Ly93d3cuZ21pZGRsZS5uZXQKLmdtbGwub3JnCnx8 +c3VjaGUuZ214Lm5ldAp8fGduY2kub3JnLmhrCnx8Z25ld3Mub3JnCnx8Z29hZ2Vu +dC5iaXoKfHxnb2RhZGR5LmNvbQpnb2Rmb290c3RlcHMub3JnCnx8Z29kZm9vdHN0 +ZXBzLm9yZwpnb2RzZGlyZWN0Y29udGFjdC5jby51awouZ29kc2RpcmVjdGNvbnRh +Y3Qub3JnCmdvZHNkaXJlY3Rjb250YWN0Lm9yZy50dwouZ29kc2ltbWVkaWF0ZWNv +bnRhY3QuY29tCnx8Z29mdW5kbWUuY29tCnx8Z29oYXBweS5jb20udHcKLmdva2Jh +eXJhay5jb20KLmdvbGRiZXQuY29tCnx8Z29sZGJldHNwb3J0cy5jb20KfHxnb2xk +ZW4tYWdlcy5vcmcKfHxnb2xkZW5leWV2YXVsdC5jb20KLmdvbGRlbmZyb2cuY29t +Cnx8Z29sZGVuZnJvZy5jb20KLmdvbGRzdGVwLm5ldAp8fGdvbGR3YXZlLmNvbQp8 +fGdvbmdtLmluCmJsb2cuZ29vLm5lLmpwL2R1Y2stdGFpbF8yMDA5Cmdvb2QubmV3 +cwouZ29vZGF5Lnh5egp8fGdvb2RheS54eXoKfHxnb29kaG9wZS5zY2hvb2wKfHxn +b29kbmV3c25ldHdvcmsub3JnCi5nb29kcmVhZHMuY29tCnx8Z29vZHJlYWRzLmNv +bQouZ29vZHJlYWRlcnMuY29tCnx8Z29vZHJlYWRlcnMuY29tCi5nb29kdHYuY29t +LnR3Ci5nb29kdHYudHYKfHxnb29maW5kLmNvbQouZ29wZXRpdGlvbi5jb20KfHxn +b3BldGl0aW9uLmNvbQp8fGdvcmVmb3J1bS5jb20KfHxnb3RxdWVzdGlvbnMub3Jn +Ci5nb3RydXN0ZWQuY29tCnx8Z290cnVzdGVkLmNvbQp8fGdvdHcuY2EKfHxncmFt +bWFseS5jb20KZ3JhbmR0cmlhbC5vcmcKLmdyYXBoaXMubmUuanAKfHxncmFwaGlz +Lm5lLmpwCnx8Z3JhcGhxbC5vcmcKfHxncmF2YXRhci5jb20KZ3JlYXRmaXJld2Fs +bC5iaXoKLmdyZWF0ZmlyZXdhbGxvZmNoaW5hLm9yZwp8fGdyZWF0ZmlyZXdhbGxv +ZmNoaW5hLm9yZwouZ3JlZW5wYXJ0eS5vcmcudHcKfHxncmVlbnBlYWNlLm9yZwou +Z3JlZW5yZWFkaW5ncy5jb20vZm9ydW0KfHxncmVhc3lmb3JrLm9yZwpncmVhdHJv +Yy5vcmcKZ3JlYXR6aG9uZ2h1YS5vcmcKLmdyZWVucGVhY2UuY29tLnR3Ci5ncmVl +bnZwbi5uZXQKfHxncmVlbnZwbi5uZXQKLmdyZWVudnBuLm9yZwp8fGdyaW5kci5j +b20KfHxncm91bmQubmV3cwpncy1kaXNjdXNzLmNvbQp8fGdzZWFyY2gubWVkaWEK +fHxndHJpY2tzLmNvbQpndWFuY2hhLm9yZwouZ3VhcmRzdGVyLmNvbQouZ3VuLXdv +cmxkLm5ldApndW5zYW5kYW1tby5jb20KfHxndXR0ZXJ1bmNlbnNvcmVkLmNvbQp8 +fGd2bS5jb20udHcKfHxnd2lucy5vcmcKLmd6bS50dgp8fGd6b25lLWFuaW1lLmlu +Zm8KCiEtLS0tLS0tLS0tLS0tR0hTLS0tLS0KIS18fGZlZWRzLmNic25ld3MuY29t +CiEtfHx3d3cuY2hpbmVzZWFsYnVtYXJ0LmNvbQp8fGNsZW1lbnRpbmUtcGxheWVy +Lm9yZwohLXx8Y2xlbWVzaGEub3JnCiEtfHx3d3cuY2xvdWRnaXJsZnJpZW5kLmNv +bQohLXx8Y29jb2F3aXRobG92ZS5jb20KIS18fGJsb2cuY29udHJvbHNwYWNlLm9y +ZwohLUQKIS18fHd3dy5kYWlseWd5YW4uY29tCiEtfHxkYWlseXRvZG8ub3JnCiEt +fHxibG9nLmRhbm1hcm5lci5jb20KIS18fGdpdGh1Yi5kYW5tYXJuZXIuY29tCiEt +fHxkZXNpZ24tc2VlZHMuY29tCiEtfHxkZXNpZ25lcnMtYXJ0aXN0cy5jb20KIS18 +fG1haWwuZGl5YW5nLm9yZwohLXx8YmxvZy5kb3VnaGVsbG1hbm4uY29tCiEtfHxk +b3duZm9yZXZlcnlvbmVvcmp1c3RtZS5jb20KIS18fGRyb2lkc2VjdXJpdHkuY29t +CiEtfHx3d3cuZHJvcG1vY2tzLmNvbQohLXx8ZHVtYmxpdHRsZW1hbi5jb20KIS1F +CmVjaG9mb24uY29tCiEtfHxlY2hvZm9uLmNvbQohLXx8ZXBjLWphdi5jb20KIS18 +fGV2ZXJkYXJrLmluZm8KIS18fGV2aGVhZC5jb20KIS1GCiEtfHxmYWNpbGVsb2dp +bi5jb20KIS18fCouZmF0ZHVjay5vcmcKIS18fGJsb2cuZmRjbi5vcmcKIS18fGZm +dG9nby5jb20KIS18fGZsaWdodHNpbXRhbGsuY29tCiEtfHxtY2xlZS5mb29sbWUu +bmV0CiEtfHx3d3cuZnJpZW5kZGVjay5jb20KIS18fGZyaW5nZXNwb2lsZXJzLmNv +bQohLXx8ZnJpbmdldGVsZXZpc2lvbi5jb20KIS18fGZ1bnBlYS5jb20KIS1HCiEt +fHxibG9nLmdhdGVpbi5vcmcKIS18fGZlZWRzLmdhd2tlci5jb20KIS18fGdlZWt0 +YW5nLmNvbQohLXx8Z2VvaG90LnVzCiEtfHxnZXRhcm91bmQuY29tCiEtfHxnbWVy +Lm5ldAohLXx8d3d3Lmdtb3RlLm9yZwohLXx8YmxvZy5nbzJ3ZWIyMC5uZXQKIS18 +fGdvb2dsZS1tZWxhbmdlLmNvbQohLXx8ZmFtZS5nb256b2xhYnMub3JnCiEtfHxn +b3ZlY24ub3JnCiEtfHxncXVldWVzLmNvbQohLXx8Z3JhcGh5Y2FsYy5jb20KIS18 +fGJsb2cuZ3Jvd2xmb3J3aW5kb3dzLmNvbQohLUgKIS18fGhjbS5jb20udHcKIS18 +fGJsb2cuaGVhZGl1cy5jb20KIS18fGhvZ2JheXNvZnR3YXJlLmNvbQohLXx8Ymxv +Zy5ob3RvdC5vcmcKIS18fGZlZWRzLmhvd3N0dWZmd29ya3MuY29tCiEtfHxodWhh +aXRhaS5jb20KIS18fGJsb2cuaHVtYW5yaWdodHNmaXJzdC5vcmcKIS1JCiEtfHxz +aXRlLmljdS1wcm9qZWN0Lm9yZwohLXx8aWdvcndhcmUuY29tCiEtfHxpaGFzMTMz +N2NvZGUuY29tCiEtfHxpbmtub3V2ZWF1LmNvbQohLXx8aW5vdGUudHcKIS18fGly +b25oZWxtZXQuY29tCiEtfHxpd2Z3Y2YuY29tCiEtSgohLXx8YmxvZy5qYW5nbXQu +Y29tCiEtfHxibG9nLmpheWZpZWxkcy5jb20KIS18fGJsb2cuam9pbnQubmV0CiEt +fHxibG9nLmpzcXVhcmVkamF2YXNjcmlwdC5jb20KIS18fGJsb2cuanRid29ybGQu +Y29tCiEtSwohLXx8a2F0aHlzY2h3YWxiZS5jb20KIS18fHRvbWF0b3Zwbi5rZWl0 +aG1veWVyLmNvbQohLXx8d3d3LmtlaXRobW95ZXIuY29tCiEtfHxrZW5kYWx2YW5k +eWtlLmNvbQohLXx8YmxvZy5rZW5nYW8udHcKIS18fGxvZy5rZXNvLmNuCiEtfHx3 +d3cua2hhbmFjYWRlbXkub3JnCnx8d3d3LmtsaXAubWUKIS18fHVzYmxvYWRlcmd4 +LmtvdXJlaW8ubmV0CiEtfHxibG9nLmtvd2FsY3p5ay5pbmZvCiEtTAohLXx8bGFi +eXJpbnRoMi5jb20KIS18fGxhcnNnZW9yZ2UuY29tCiEtfHxibG9nLmxhc3RwYXNz +LmNvbQohLXx8ZG9jcy5sYXRleGxhYi5vcmcKIS18fGxlYW5lc3NheXMuY29tCiEt +fHxibG9nLmxpZGFvYmluZy5pbmZvCiEtfHxsb2cubGlnaHRvcnkubmV0CiEtfHxm +ZWVkcy5saW1pLm5ldAohLXx8d3d3LmxpdGVhcHBsaWNhdGlvbnMuY29tCiEtfHxi +bG9nLmxpdWthbmd4dS5pbmZvCiEtfHx0d2l0dGVyLmxpdWthbmd4dS5pbmZvCiEt +fHxvYXNpc25ld3Nyb29tLmxpdmU0ZXZlci51cwohLXx8d3d3LmxvY2tlcmdub21l +LmNvbQohLXx8bG9jcWwuY29tCkBAfHxzaXRlLmxvY3FsLmNvbQohLXx8ZmVlZHMu +bG9pY2xlbWV1ci5jb20KIS18fGJsb2cubG91aXNncmF5LmNvbQohLU0KIS18fG1h +ZGVieXNvZmEuY29tCiEtfHxtYWRlbW9pc2VsbGVyb2JvdC5jb20KIS18fG1hc2Ft +aXhlcy5jb20KIS18fHd3dy5tZXRhbXVzZS5uZXQKIS18fGJsb2cubWV0YXNwbG9p +dC5jb20KIS18fG1pbGF6aS5jb20KIS18fHd3dy5taW5pd2VhdGhlci5jb20KIS18 +fHR3aXR0ZXIubWlzc2l1LmNvbQohLXx8cGx1cmt0b3AtYnV0dG9uLm1tZGF5cy5j +b20KIS18fGZlZWRzLm1vYmlsZXJlYWQuY29tCiEtfHx3d3cubW9kZXJuaXpyLmNv +bQohLXx8d3d3Lm1vZGsuaXQKIS18fG15dHdpc2hpcnQuY29tCiEtTgohLXx8Ymxv +Zy5uZXRmbGl4LmNvbQohLXx8YmxvZy5uaWhpbG9naWMuZGsKIS18fG50bGsub3Jn +CiEtfHxudnF1YW4ub3JnCiEtfHxub2dvb2RhdGNvZGluZy5jb20KIS18fGJsb2cu +bm90ZG90Lm5ldAohLXx8d3d3Lm5vdGlmeS5pbwohLU8KIS18fGJsb2cub2J2aW91 +cy5jb20KIS18fG9uZWJpZ2ZsdWtlLmNvbQohLXx8b3ZlcnN0aW11bGF0ZS5jb20K +IS1QCiEtfHxwY2dlZWtibG9nLmNvbQohLXx8ZmVlZHMucGRmY2htLm5ldAohLXx8 +ZmVlZHMucGVvcGxlLmNvbQohLXx8YmxvZy5wZXJzaXN0ZW50LmluZm8KIS18fGNo +cm9tZS5wbGFudHN2c3pvbWJpZXMuY29tCiEtfHxwb3J0YWJsZXNvZnQub3JnLnJ1 +CiEtfHxwcmFzYW5uYXRlY2gubmV0CiEtfHx0YWxrLm5ld3MucHRzLm9yZy50dwoh +LXx8cHl0aG9uLWV4Y2VsLm9yZwohLVEKIS1SCiEtfHxyLWNoYXJ0LmNvbQohLXx8 +cmFtZXNoc3VicmFtYW5pYW4ub3JnCiEtfHxyYXBpZC5wawohLXx8YmxvZy5yZW5h +bnNlLmNvbQohLXx8cm9iZXJ0bWFvLmNvbQohLXx8d3d3LnJvbWVvLWZveHRyb3Qu +Y29tCiEtUwohLXx8c2FsbWl5dWNrLmNvbQohLXx8c2Ftc2FsLmNvbQohLXx8Ymxv +Zy5zZWVtaW5nbGVlLmNvbQohLXx8YmxvZy5zZmxvdy5jb20KIS18fGJsb2cuc2ln +ZnBlLmNvbQohLXx8c2ltcGxldGV4dC53cwohLXx8d3d3LnNrdWxwdC5vcmcKIS18 +fHJzcy5zbGFzaGRvdC5vcmcKIS18fHNuaXBwZXRzYXBwLmNvbQohLXx8dy5zbnMu +bHkKIS18fHd3dy5zb2NpYWxubW9iaWxlLmNvbQohLXx8d3d3LnNvY2lhbHdob2lz +LmNvbQohLXx8c3Bpcml0amIub3JnCiEtfHxzc2Jvb2suY29tCiEtfHxzc2hmb3J3 +YXJkaW5nLmNvbQohLXx8c3RhdGlvbmVyaWEuY29tCnx8c3RlcGhhbmllcmVkLmNv +bQohLXx8c3Vuamlkb25nLm5ldAohLXx8c3luaXVtc29mdHdhcmUuY29tCkBAfHxk +b3dubG9hZC5zeW5pdW1zb2Z0d2FyZS5jb20KIS1UCiEtfHx0YWd4ZWRvLmNvbQoh +LXx8YmxvZy50YXRvZWJhLm9yZwohLXx8d3d3LnRlY2hmb2IuY29tCiEtfHx0ZWFj +aHBhcmVudHN0ZWNoLm9yZwohLXx8dGhlOHBlbi5jb20KIS18fHRoZWlwaG9uZXdp +a2kuY29tCiEtfHxibG9nLnRoZXNpbGVudG51bWJlci5tZQohLXx8dGhlc3BvbnR5 +LmNvbQohLXx8dGhldWx0cmFsaW54LmNvbQohLXx8YmxvZy50aGluay1hc3luYy5j +b20KIS18fHRvcm5hZG93ZWIub3JnCiEtfHx0cmFuc3BhcmVudHVwdGltZS5jb20K +IS18fHRyaWFuZ3VsYXRpb25ibG9nLmNvbQohLXx8YmxvZy50c3VuYW5ldC5uZXQK +IS18fGVuLnR1eGVyby5jb20KIS18fHR3YXp6dXAuY29tCiEtfHx0d2VldHN3ZWxs +LmNvbQohLXx8dHdpYmVzLmNvbQohLXx8YXJ0LnR3Z2cub3JnCiEtfHx0d2l2ZXJ0 +LmNvbQohLVUKfGh0dHA6Ly91YjAuY2MKIS18fGpvbm55LnVidW50dS10dy5uZXQK +IS18fGJsb2cudW1vbmtleS5uZXQKIS1WCiEtfHx0cC52YmFwLmNvbS5hdQohLXx8 +d3d3LnZpcnR1b3Vzcm9tLmNvbQohLXx8YmxvZy52aXNpYm90ZWNoLmNvbQohLVcK +IS18fHdhdmVwcm90b2NvbC5vcmcKIS18fHd3dy53YXZlc2FuZGJveC5jb20KIS18 +fHdlYmZlZS5vcmcucnUKIS18fGJsb2cud2VibXByb2plY3Qub3JnCiEtfHx3ZWJ1 +cGQ4Lm9yZwohLXx8d3d3LndoYXRicm93c2VyLm9yZwohLXx8d3d3LndoZXJlZG95 +b3Vnby5uZXQKIS18fHdpbGxoYWlucy5jb20KIS18fGZlZWRzLndpcmVkLmNvbQoh +LXx8d2lzZW1hcHBpbmcub3JnCndvenkuaW4KIS18fHdvenkuaW4vCiEtfHxibG9n +Lnd1bmRlcmNvdW50ZXIuY29tCiEtWAohLXx8eGRlbHRhLm9yZwohLXx8eGlhb2dh +b3ppLm9yZwohLXx8eGlsb3UudXMKIS18fHh6eS5vcmcucnUKIS1ZCiEtfHx5b29w +ZXIuYmUKIS18fHRzb25nLnl1bnhpLm5ldAohLVoKCmdvc3BlbGhlcmFsZC5jb20K +fHxnb3NwZWxoZXJhbGQuY29tCnxodHRwOi8vaGsuZ3JhZGNvbm5lY3Rpb24uY29t +LwpncmVhdGZpcmUub3JnCnx8Z3JlYXRmaXJlLm9yZwpncmVhdGZpcmV3YWxsb2Zj +aGluYS5vcmcKfHxndHYub3JnCnx8Z3R2MS5vcmcKLmd1LWNodS1zdW0ub3JnCnxo +dHRwOi8vZ3UtY2h1LXN1bS5vcmcKLmd1YWd1YXNzLmNvbQp8aHR0cDovL2d1YWd1 +YXNzLmNvbQouZ3VhbmdtaW5nLmNvbS5teQpndWlzaGFuLm9yZwp8fGd1aXNoYW4u +b3JnCi5ndW1yb2FkLmNvbQp8fGd1bXJvYWQuY29tCnx8Z3Vuc2FtZXJpY2EuY29t +Cmd1cnVvbmxpbmUuaGsKfGh0dHA6Ly9ndmxpYi5jb20KLmd5YWx3YXJpbnBvY2hl +LmNvbQouZ3lhdHNvc3R1ZGlvLmNvbQoKIS0tLS0tLS0tLS0tLS0tLS0tLS0tSEgt +LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCnx8aGVyb21pbmVycy5jb20KfHxoaW5l +dC5uZXQKfHxoaW5kdXN0YW50aW1lcy5jb20KfHxoYW5pbWUxLm1lCnx8aGFsa3R2 +LmNvbS50cgp8fGhhaXdhaWthbi5jb20KfHxob21lLnNheG8KfHxob3kudHYKLmg1 +MjguY29tCi5oNWRtLmNvbQouaDVnYWxnYW1lLm1lCnx8aC1jaGluYS5vcmcKLmgt +bW9lLmNvbQp8aHR0cDovL2gtbW9lLmNvbQpoMW4xY2hpbmEub3JnCi5oYWNrZW4u +Y2MvYmJzCi5oYWNrZXIub3JnCnx8aGFja21kLmlvCnx8aGFja3RoYXRwaG9uZS5u +ZXQKaGFobG8uY29tCnx8aGFpamlhby5jb20KfHxoYWtrYXR2Lm9yZy50dwouaGFu +ZGNyYWZ0ZWRzb2Z0d2FyZS5vcmcKfGh0dHA6Ly9iYnMuaGFubWluenUub3JnLwou +aGFvLm5ld3MvbmV3cwp8aHR0cDovL2FlLmhhbzEyMy5jb20KfGh0dHA6Ly9hci5o +YW8xMjMuY29tCnxodHRwOi8vYnIuaGFvMTIzLmNvbQp8aHR0cDovL2VuLmhhbzEy +My5jb20KfGh0dHA6Ly9pZC5oYW8xMjMuY29tCnxodHRwOi8vanAuaGFvMTIzLmNv +bQp8aHR0cDovL21hLmhhbzEyMy5jb20KfGh0dHA6Ly9teC5oYW8xMjMuY29tCnxo +dHRwOi8vc2EuaGFvMTIzLmNvbQp8aHR0cDovL3RoLmhhbzEyMy5jb20KfGh0dHA6 +Ly90dy5oYW8xMjMuY29tCnxodHRwOi8vdm4uaGFvMTIzLmNvbQp8aHR0cDovL2hr +LmhhbzEyM2ltZy5jb20KfGh0dHA6Ly9sZC5oYW8xMjNpbWcuY29tCi5oYXByb3h5 +Lm9yZwp8fGhhcmRzZXh0dWJlLmNvbQp8fGIuaGF0ZW5hLm5lLmpwCmhhdmU4LmNv +bQpAQHx8aGF5Z28uY29tCi5oY2xpcHMuY29tCnx8aGR0dmIubmV0Ci5oZHpvZy5j +b20KfGh0dHA6Ly9oZHpvZy5jb20KfHxvcmRucy5oZS5uZXQKfHxoZWFydHlpdC5j +b20KLmhlYXZ5LXIuY29tCi5oZWMuc3UKfGh0dHA6Ly9oZWMuc3UKLmhlY2FpdG91 +Lm5ldAp8fGhlY2FpdG91Lm5ldAouaGVjaGFqaS5jb20KfHxoZWNoYWppLmNvbQp8 +fGhlZWFjdC5lZHUudHcKLmhlZ3JlLWFydC5jb20KfGh0dHA6Ly9oZWdyZS1hcnQu +Y29tCnx8Y2RuLmhlbGl4c3R1ZGlvcy5uZXQKfHxoZWxsb2FuZHJvaWQuY29tCnx8 +aGVsbG9xdWVlci5jb20KLmhlbnRhaS50bwouaGVsbG91ay5vcmcvZm9ydW0vbG9m +aXZlcnNpb24KLmhlbHBlYWNocGVvcGxlLmNvbQp8fGhlbHBlYWNocGVvcGxlLmNv +bQp8fGhlbHBzdGVyLmRlCi5oZWxwemh1bGluZy5vcmcKaGVudGFpdHViZS50dgou +aGVudGFpdmlkZW93b3JsZC5jb20KCiEjIyMjIyMjIyMjIy0tSGVyb2t1LS0jIyMj +IyMjIyMjCiEtLXx8Z2V0Y2xvdWRhcHAuY29tCiEtLXx8Y2wubHkKIS0tQEB8fGYu +Y2wubHkKIS0tRUMyIEROUyBQb2lzb25lZAp8fGlkLmhlcm9rdS5jb20KfHxoZXJv +a3VhcHAuY29tCgp8fGhlcWluZ2xpYW4ubmV0Cnx8aGVyaXRhZ2Uub3JnCi5oZXhp +ZXNoZS5jb20KfHxoZXhpZXNoZS5jb20KfHxoZXhpZXNoZS54eXoKIS0tR29vZ2xl +IGVtcGxveWVlIHdpdGhpbiBHb29nbGUgSVAKfHxoZXh4ZWgubmV0Cnx8aGV5dWVk +aS5jb20KLmhleXpvLmNvbQouaGdzZWF2LmNvbQouaGhkY2Izb2ZmaWNlLm9yZwou +aGh0aGVzYWt5YXRyaXppbi5vcmcKaGktb24ub3JnLnR3Cnx8aGljY2VhcnMuY29t +CmhpZGRlbi1hZHZlbnQub3JnCnx8aGlkZGVuLWFkdmVudC5vcmcKaGlkZWNsb3Vk +LmNvbS9ibG9nLzIwMDgvMDcvMjkvZnVjay1iZWlqaW5nLW9seW1waWNzLmh0bWwK +fHxoaWRlLm1lCi5oaWRlaXB2cG4uY29tCnx8aGlkZWlwdnBuLmNvbQouaGlkZW1h +bi5uZXQKfHxoaWRlbWFuLm5ldApoaWRlbWUubmwKfHxoaWRlbXkubmFtZQouaGlk +ZW15YXNzLmNvbQp8fGhpZGVteWFzcy5jb20KaGlkZW15Y29tcC5jb20KfHxoaWRl +bXljb21wLmNvbQouaGlnZncuY29tCmhpZ2hwZWFrc3B1cmVlYXJ0aC5jb20KfHxo +aWdocm9ja21lZGlhLmNvbQp8fGhpaXRjaC5jb20KfHxoaWtpbmdnZncub3JnCi5o +aWxpdmUudHYKLmhpbWFsYXlhbi1mb3VuZGF0aW9uLm9yZwp8fGhpbWFsYXlhbi1m +b3VuZGF0aW9uLm9yZwpoaW1hbGF5YW5nbGFjaWVyLmNvbQouaGltZW1peC5jb20K +fHxoaW1lbWl4LmNvbQouaGl0b21pLmxhCnxodHRwOi8vaGl0b21pLmxhCi5oaXdp +ZmkuY29tCkBAfHxoaXdpZmkuY29tCmhpemJ1dHRhaHJpci5vcmcKaGl6Yi11dC10 +YWhyaXIuaW5mbwpoaXpiLXV0LXRhaHJpci5vcmcKLmhqY2x1Yi5pbmZvCi5oay1w +dWIuY29tL2ZvcnVtCnxodHRwOi8vaGstcHViLmNvbQouaGswMS5jb20KfHxoazAx +LmNvbQp8fGhrYWNnLmNvbQp8fGhrYWNnLm5ldAouaGthdHZuZXdzLmNvbQpoa2Jj +Lm5ldAouaGtiZi5vcmcKLmhrYm9va2NpdHkuY29tCnx8aGtib29rY2l0eS5jb20K +fHxoa2Nocm9uaWNsZXMuY29tCi5oa2NodXJjaC5vcmcKaGtjaS5vcmcuaGsKLmhr +Y21pLmVkdQp8fGhrY25ld3MuY29tCnx8aGtjb2MuY29tCmhrZGF5Lm5ldAouaGtk +YWlseW5ld3MuY29tLmhrL2NoaW5hLnBocAp8fGhrZGMudXMKaGtkZi5vcmcKLmhr +ZWouY29tCi5oa2VwYy5jb20vZm9ydW0vdmlld3RocmVhZC5waHA/dGlkPTExNTMz +MjIKfHxoa2V0LmNvbQp8fGhrZmFhLmNvbQpoa2Zyb250Lm9yZwptLmhrZ2FsZGVu +LmNvbQp8aHR0cHM6Ly9tLmhrZ2FsZGVuLmNvbQp8fGhrZ3Bhby5jb20KLmhraGVh +ZGxpbmUuY29tKmJsb2cKLmhraGVhZGxpbmUuY29tL2luc3RhbnRuZXdzCmhraGto +ay5jb20KaGtocmMub3JnLmhrCmhramMuY29tCi5oa2pwLm9yZwouaGtsZnQuY29t +Ci5oa2x0cy5vcmcuaGsKfHxoa2x0cy5vcmcuaGsKfHxoa21hcC5saXZlCnx8aGtv +cGVudHYuY29tCnx8aGtwZWFudXQuY29tCmhrcHR1Lm9yZwouaGtyZXBvcnRlci5j +b20KfHxoa3JlcG9ydGVyLmNvbQouaG12LmNvLmpwLwpobmpoai5jb20KfHxobmpo +ai5jb20KLmhubnR1YmUuY29tCnx8aG9qZW1hY2F1LmNvbS5tbwp8fGhvbGEuY29t +Cnx8aG9sYS5vcmcKaG9seXNwaXJpdHNwZWFrcy5vcmcKfHxob2x5c3Bpcml0c3Bl +YWtzLm9yZwouaG9tZXBlcnZlcnNpb24uY29tCnxodHRwOi8vaG9tZXNlcnZlcnNo +b3cuY29tCnxodHRwOi8vb2xkLmhvbmV5bmV0Lm9yZy9zY2Fucy9zY2FuMzEvc3Vi +L2RvdWdfZXJpYy9zcGFtX3RyYW5zbGF0aW9uLmh0bWwKLmhvbmdrb25nZnAuY29t +Cnx8aG9uZ2tvbmdmcC5jb20KaG9uZ21laW1laS5jb20KfHxob25nemhpLmxpCnx8 +aG9udmVuLnh5egouaG9vdHN1aXRlLmNvbQp8fGhvb3RzdWl0ZS5jb20KfHxob292 +ZXIub3JnCi5ob3B0by5vcmcKLmhvcm55Z2FtZXIuY29tCi5ob3JueXRyaXAuY29t +CnxodHRwOi8vaG9ybnl0cmlwLmNvbQp8fGhvcnJvcnBvcm4uY29tCnx8aG9zdGxv +Yy5jb20KfHxob3RhaXIuY29tCi5ob3Rhdi50dgouaG90ZWxzLmNuCmhvdGZyb2cu +Y29tLnR3CmhvdGdvby5jb20KaG90cG90LmhrCi5ob3RzaGFtZS5jb20KfHxob3Rz +cG90c2hpZWxkLmNvbQp8fGhvdHRnLmNvbQouaG90dnBuLmNvbQp8fGhvdHZwbi5j +b20KfHxob3d0b2ZvcmdlLmNvbQp8fGhveHguY29tCnx8aHBqYXYuY29tCi5ocWNk +cC5vcmcKfHxocWNkcC5vcmcKfHxocWphcGFuZXNlc2V4LmNvbQpocW1vdmllcy5j +b20KLmhyY2NoaW5hLm9yZwouaHJlYS5vcmcKLmhyaWNoaW5hLm9yZwp8fGhyaWNo +aW5hLm9yZwp8fGhybnR0Lm9yZwouaHJ0c2VhLmNvbQouaHJ3Lm9yZwp8fGhydy5v +cmcKaHJ3ZWIub3JnCnx8aHNleC5tZW4KfHxoc2pwLm5ldAp8fGhzc2VsaXRlLmNv +bQp8fGhzdC5uZXQudHcKLmhzdGVybi5uZXQKLmhzdHQubmV0Ci5odGtvdS5uZXQK +fHxodGtvdS5uZXQKLmh1YWdsYWQuY29tCnx8aHVhZ2xhZC5jb20KLmh1YW5naHVh +Z2FuZy5vcmcKfHxodWFuZ2h1YWdhbmcub3JnCi5odWFuZ3lpeXUuY29tCi5odWFy +ZW4udXMKfHxodWFyZW4udXMKLmh1YXJlbjR1cy5jb20KLmh1YXNoYW5nbmV3cy5j +b20KfGh0dHA6Ly9odWFzaGFuZ25ld3MuY29tCmJicy5odWFzaW5nLm9yZwpodWF4 +aWFiYW8ub3JnCmh1YXhpbi5waAp8fGh1YXl1d29ybGQub3JnCnx8aHVmZmluZ3Rv +bnBvc3QuY29tCnx8aHVmZnBvc3QuY29tCnx8aHVnZ2luZ2ZhY2UuY28KfHxodWdv +cm95LmV1Cnx8aHVoYWl0YWkuY29tCnx8aHVoYW1oaXJlLmNvbQouaHVoYW5nZmVp +LmNvbQp8fGh1aGFuZ2ZlaS5jb20KLmh1bGtzaGFyZS5jb20KfHxodW1hbnBhcnR5 +Lm1lCnx8aHVtYW5yaWdodHNwcmVzc2F3YXJkcy5vcmcKfHxodW5nLXlhLmNvbQp8 +fGh1cGluZy5uZXQKaHVyZ29rYmF5cmFrLmNvbQouaHVycml5ZXQuY29tLnRyCi5o +dXQyLnJ1Cnx8aHV0aWFueWkubmV0Cmh1dG9uZzkubmV0Cmh1eWFuZGV4LmNvbQou +aHdhZHphbi50dwp8fGh3YXl1ZS5vcmcudHcKfHxoeHdrLm9yZwpoeHdxLm9yZwp8 +fGh5cGVycmF0ZS5jb20KfHxoeXBvdGhlcy5pcwplYm9vay5oeXJlYWQuY29tLnR3 +Cnx8ZWJvb2suaHlyZWFkLmNvbS50dwoKIS0tLS0tLS0tLS0tLS0tLS0tLS0tSUkt +LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCnx8aXBpZnkub3JnCkBAfHwqLmlwaWZ5 +Lm9yZwp8fGl0aWdlci5jb20KfHxpdGNoLmlvCnx8aW5mdXJhLmlvCnx8cHJlc2lk +ZW50LmlyCnx8Z292LmlyCnx8aXJuYS5pcgp8fGFydmFuc3RvcmFnZS5pcgp8fGly +YW5nb3YuaXIKfHxpbmRpYS5jb20KfHxpbmRpYXRvZGF5LmluCnx8aW52aWRpby51 +cwp8fGltcHJvZC53b3Jrcwp8fGlsbGF3YXJyYW1lcmN1cnkuY29tLmF1Cnx8aW1h +Z28taW1hZ2VzLmNvbQp8fGkycDIuZGUKfHxpODE4aGsuY29tCi5pLWNhYmxlLmNv +bQouaS1wYXJ0LmNvbS50dwouaWFtdG9wb25lLmNvbQppYXNrLmNhCnx8aWFzay5j +YQouaWF2MTkuY29tCnx8aWF2aWFuLm5ldAppYmlibGlvLm9yZy9wdWIvcGFja2Fn +ZXMvY2NpYwppYnJvcy5vcmcKLmlidnBuLmNvbQp8fGlidnBuLmNvbQppY2Ftcy5j +b20KfHxpY2Vkcml2ZS5uZXQKLmljaWoub3JnCnx8aWNpai5vcmcKfHxpY2wtZmku +b3JnCi5pY29jby5jb20KfHxpY29jby5jb20KCiEtLTM4LjEwMy4xNjUuNTAKfHxm +dXJiby5vcmcKIS0tfHxpY29uZmFjdG9yeS5jb20KCnx8aWNvbnBhcGVyLm9yZwoh +LS0gR29vZ2xlIFBhZ2VzCnx8aWN1LXByb2plY3Qub3JnCncuaWRhaXdhbi5jb20v +Zm9ydW0KaWRlbW9jcmFjeS5hc2lhCi5pZGVudGkuY2EKfHxpZGVudGkuY2EKfHxp +ZGlvbWNvbm5lY3Rpb24uY29tCnxodHRwOi8vd3d3LmlkbGNveW90ZS5jb20KfHxp +ZG9wZS5zZQouaWRvdWdhLmNvbQouaWR2LnR3Ci5pZWQyay5uZXQKLmllbmVyZ3kx +LmNvbQp8fGlmdC50dAouaWZjc3Mub3JnCnx8aWZjc3Mub3JnCmlmamMub3JnCi5p +ZnQudHQKfGh0dHA6Ly9pZnQudHQKfHxpZnJlZXdhcmVzLmNvbQp8fGlnY2QubmV0 +Ci5pZ2Z3Lm5ldAp8fGlnZncubmV0Ci5pZ21nLmRlCi5pZ290bWFpbC5jb20udHcK +fHxpZ3ZpdGEuY29tCi5paGFvLm9yZy9kejUKfHxpaWNucy5jb20KLmlrc3Rhci5j +b20KfHxpbGhhbXRvaHRpaW5zdGl0dXRlLm9yZwp8fGlsbHVzaW9uZmFjdG9yeS5j +b20KfHxpbG92ZTgwLmJlCnx8aW04OC50dwp8fGltZ2NoaWxpLm5ldAouaW1hZ2Vh +Yi5jb20KLmltYWdlZmFwLmNvbQp8fGltYWdlZmFwLmNvbQp8fGltYWdlZmxlYS5j +b20KfHxpbWFnZWdsYXNzLm9yZwp8fGltYWdlc2hhY2sudXMKfHxpbWFnZXZlbnVl +LmNvbQp8fGltYWdlemlsbGEubmV0Ci5pbWIub3JnCnxodHRwOi8vaW1iLm9yZwoK +IS0tSU1EQgp8aHR0cDovL3d3dy5pbWRiLmNvbS9uYW1lL25tMDQ4MjczMAouaW1k +Yi5jb20vdGl0bGUvdHQwODE5MzU0Ci5pbWRiLmNvbS90aXRsZS90dDE1NDAwNjgK +LmltZGIuY29tL3RpdGxlL3R0NDkwODY0NAoKLmltZy5seQp8fGltZy5seQp8fGlt +Z2FzZC5jb20KLmltZ3VyLmNvbQp8fGltZ3VyLmNvbQouaW1rZXYuY29tCnx8aW1r +ZXYuY29tCi5pbWxpdmUuY29tCi5pbW1vcmFsLmpwCmltcGFjdC5vcmcuYXUKaW45 +OS5vcmcKaW4tZGlzZ3Vpc2UuY29tCi5pbmNhcGRucy5uZXQKLmluY2xvYWsuY29t +Cnx8aW5jbG9hay5jb20KfHxpbmNyZWRpYm94LmZyCnx8aW5kZXBlbmRlbnQuY28u +dWsKfHxpbmRpYWJsb29tcy5jb20KfHxpbmRpYW5kZWZlbnNlbmV3cy5pbgp8fGlu +ZGlhbmFycmF0aXZlLmNvbQp8fHRpbWVzb2ZpbmRpYS5pbmRpYXRpbWVzLmNvbQou +aW5kaWVtZXJjaC5jb20KfHxpbmRpZW1lcmNoLmNvbQp8fGluZm8tZ3JhZi5mcgp3 +ZWJzaXRlLmluZm9ybWVyLmNvbQp8fGluaGVyaXQubGl2ZQp8fGluaXRpYXRpdmVz +Zm9yY2hpbmEub3JnCnx8aW5rYnVubnkubmV0Cnx8aW5rdWkuY29tCnx8aW5tZWRp +YWhrLm5ldAp8fGlubWVkaWFoay5uZXQKfHxpbm9yZWFkZXIuY29tCnx8aW5vdGUu +dHcKfHxpbnNlY2FtLm9yZwp8aHR0cDovL2luc2VjYW0ub3JnCnx8aW5zaWRlLmNv +bS50dwp8fGluc2lkZXZvYS5jb20KfHxpbnN0aXR1dC10aWJldGFpbi5vcmcKfHxp +bnRlcmFjdGl2ZWJyb2tlcnMuY29tCnx8aW50ZXJuZXQub3JnCmludGVybmV0ZGVm +ZW5zZWxlYWd1ZS5vcmcKfHxpbnRlcm5ldGZyZWVkb20ub3JnCiEtLXx8aW50ZXJw +b2wuaW50Cnx8aW50ZXJuZXRwb3BjdWx0dXJlLmNvbQouaW50aGVuYW1lb2Zjb25m +dWNpdXNtb3ZpZS5jb20KfHxpbnRoZW5hbWVvZmNvbmZ1Y2l1c21vdmllLmNvbQpp +bnhpYW4uY29tCnx8aW54aWFuLmNvbQohLS18fGlwY2Yub3JnLnR3Cnx8aXBkZWZl +bnNlZm9ydW0uY29tCnx8aXBmaXJlLm9yZwp8fGlwaG9uZTRob25na29uZy5jb20K +fHxpcGhvbmV0YWl3YW4ub3JnCnx8aXBob25peC5mcgp8fGlwaWN0dXJlLnJ1Ci5p +cGpldGFibGUubmV0Cnx8aXBqZXRhYmxlLm5ldAouaXBvYmFyLmNvbS9yZWFkLnBo +cD8KaXBvb2NrLmNvbS9pbWcKLmlwb3J0YWwubWUKfGh0dHA6Ly9pcG9ydGFsLm1l +Cnx8aXBwb3R2LmNvbQouaXByZWRhdG9yLnNlCnx8aXByZWRhdG9yLnNlCi5pcHR2 +LmNvbS50dwp8fGlwdHZiaW4uY29tCnx8aXB2YW5pc2guY29tCmlyZWRtYWlsLm9y +ZwpjaGluZXNlLmlyaWIuaXIKfHxpcm9ucHl0aG9uLm5ldAouaXJvbnNvY2tldC5j +b20KfHxpcm9uc29ja2V0LmNvbQouaXMuZ2QKfHxpc2hyLmNoCi5pc2xhaGhhYmVy +Lm5ldAouaXNsYW0ub3JnLmhrCnxodHRwOi8vaXNsYW0ub3JnLmhrCi5pc2xhbWF3 +YXJlbmVzcy5uZXQvQXNpYS9DaGluYQouaXNsYW1ob3VzZS5jb20KfHxpc2xhbWhv +dXNlLmNvbQouaXNsYW1pY2l0eS5jb20KLmlzbGFtaWNwbHVyYWxpc20ub3JnCi5p +c2xhbXRvZGF5Lm5ldAouaXNhYWNtYW8uY29tCnx8aXNhYWNtYW8uY29tCnx8aXNn +cmVhdC5vcmcKfHxpc21hZWxhbi5jb20KLmlzbWFsbHRpdHMuY29tCnx8aXNtcHJv +ZmVzc2lvbmFsLm5ldAppc29odW50LmNvbQp8fGlzcmFib3guY29tCi5pc3N1dS5j +b20KfHxpc3N1dS5jb20KLmlzdGFycy5jby5uegpvdmVyc2VhLmlzdGFyc2hpbmUu +Y29tCnx8b3ZlcnNlYS5pc3RhcnNoaW5lLmNvbQouaXN0b2NrcGhvdG8uY29tCmlz +dW5hZmZhaXJzLmNvbQppc3VudHYuY29tCnx8aXN1cHBvcnR1eWdodXJzLm9yZwp8 +fGl0YWxpYXRpYmV0Lm9yZwp8fGl0ZW1maXguY29tCml0aGVscC5pdGhvbWUuY29t +LnR3Cnx8aXRzaGlkZGVuLmNvbQouaXRza3kuaXQKLml0d2VldC5uZXQKfGh0dHA6 +Ly9pdHdlZXQubmV0Ci5pdTQ1LmNvbQouaXVocmRmLm9yZwp8fGl1aHJkZi5vcmcK +Lml1a3NreS5jb20KLml2YWN5LmNvbQp8fGl2YWN5LmNvbQp8fGl2b25ibG9nLmNv +bQouaXZwbi5uZXQKfHxpdnBuLm5ldAp8fGl3YXJhLnR2Cnx8aXhxdWljay5jb20K +Lml4eHguY29tCi5peW91cG9ydC5jb20KfHxpeW91cG9ydC5jb20KfHxpeW91cG9y +dC5vcmcKLml6YW9iYW8udXMKLml6bGVzLm5ldAouaXpsZXNlbS5vcmcKCiEtLS0t +LS0tLS0tLS0tLS0tLS0tLUpKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQp8fGp1 +c3RteXNvY2tzY24uY29tCnx8anVzdG15c29ja3MubmV0Cnx8amF2MzIxLmNvbQp8 +fGphdmRiLmNvbQp8fGppZmFuZ2dlLmNvbQp8fGoubXAKfHxqYWJsZS50dgp8fGJs +b2cuamFja2ppYS5jb20KamFtYWF0Lm9yZwp8fGphbWVzdG93bi5vcmcKfHxqYW15 +YW5nbm9yYnUuY29tCnx8amFuLmFpCnx8amFwYW4td2hvcmVzLmNvbQp8fGphcGFu +aGR2LmNvbQouamF2LmNvbQouamF2MTAxLmNvbQouamF2NjgudHYKLmphdmFraWJh +Lm9yZwp8fGphdmFraWJhLm9yZwouamF2YnVzLmNvbQp8fGphdmJ1cy5jb20KfHxq +YXZmaW5kZXIuYWkKfHxqYXZmb3IubWUKLmphdmhkLmNvbQouamF2aGlwLmNvbQou +amF2bW9iaWxlLm5ldAp8fGphdm1vYmlsZS5uZXQKLmphdm1vby5jb20KLmphdnNl +ZW4uY29tCnx8amF2c2Vlbi5jb20KamJ0YWxrcy5jYwpqYnRhbGtzLmNvbQpqYnRh +bGtzLm15Ci5qZHdzeS5jb20KamVhbnlpbS5jb20KfHxqZ29vZGllcy5jb20KLmpp +YW5nd2VpcGluZy5jb20KfHxqaWFuZ3dlaXBpbmcuY29tCnx8amlhb3lvdTguY29t +Cnx8amljaGFuZ3RqLmNvbQouamllaHVhLmN6Cnx8aGsuamllcGFuZy5jb20KfHx0 +dy5qaWVwYW5nLmNvbQpqaWVzaGliYW9iYW8uY29tCi5qaWdnbGVnaWZzLmNvbQo1 +NmN1bjA0LmppZ3N5LmNvbQpkYW9kdTE0LmppZ3N5LmNvbQpzcGVjeGluemwuamln +c3kuY29tCndsY25ldy5qaWdzeS5jb20KLmppaGFkb2xvZ3kubmV0CnxodHRwOi8v +amloYWRvbG9neS5uZXQKLmppbmdzaW0ub3JnCnpoYW8uamluaGFpLmRlCmppbmdw +aW4ub3JnCnx8amluZ3Bpbi5vcmcKamlucGlhbndhbmcuY29tCnx8amlucml6aGl5 +aS5uZXdzCnx8aml0b3VjaC5jb20KampnaXJscy5jb20KLmprYi5jYwp8aHR0cDov +L2prYi5jYwpqa2ZvcnVtLm5ldAp8fGptYS5nby5qcAp8fGptc2MuaGt1LmhrCi5q +bXNjdWx0LmNvbQp8aHR0cDovL2ptc2N1bHQuY29tCnx8am9hY2hpbXMub3JnCi5z +dW53aW5pc20uam9pbmJicy5uZXQKfHxqb2luY2x1YmhvdXNlLmNvbQp8fGpvcm5h +bGRhY2lkYWRlb25saW5lLmNvbS5icgouam91cm5hbGNocmV0aWVuLm5ldAp8fGpv +dXJuYWxvZmRlbW9jcmFjeS5vcmcKLmpveW1paWh1Yi5jb20KLmpveW91cnNlbGYu +Y29tCmpwb3Bmb3J1bS5uZXQKfHxqc2RlbGl2ci5uZXQKfHxmaWRkbGUuanNoZWxs +Lm5ldAohLS1Eb2FtaW4gcGFya2luZwouanVodWFyZW4uY29tCnx8anVsaWVyZXlj +LmNvbQp8fGp1bmF1emEuY29tCi5qdW5lNGNvbW1lbW9yYXRpb24ub3JnCnx8YmJz +Lmp1bmdsb2JhbC5uZXQKLmp1b2FhLmNvbQp8aHR0cDovL2p1b2FhLmNvbQpqdXN0 +ZnJlZXZwbi5jb20KfHxqdXN0aG9zdC5ydQpqdXN0cGFzdGUuaXQKfHxqdXN0bXlz +b2NrczEubmV0Cmp1c3R0cmlzdGFuLmNvbQpqdXppeXVlLmNvbQp8fGp1eml5dWUu +Y29tCnx8andtdXNpYy5vcmcKQEB8fG11c2ljLmp3bXVzaWMub3JnCnx8Y2RuLmp3 +cGxheWVyLmNvbQouanl4Zi5uZXQKCiEtLS0tLS0tLS0tLS0tLS0tLS0tLUtLLS0t +LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQp8fGtpbmdrb25nLmNvbS50dwp8fGthbmFs +ZC5jb20udHIKfHxrcGt1YW5nLm9yZwp8fGthLXdhaS5jb20KfHxrYWRva2F3YS5j +by5qcAoua2FneXUub3JnCnx8a2FneXUub3JnLnphCi5rYWd5dW1vbmxhbS5vcmcK +LmthZ3l1bmV3cy5jb20uaGsKLmthZ3l1b2ZmaWNlLm9yZwp8fGthZ3l1b2ZmaWNl +Lm9yZwp8fGthZ3l1b2ZmaWNlLm9yZy50dwoua2FpeXVhbi5kZQoua2FrYW8uY29t +Cnx8a2FrYW8uY29tCi5rYW5rYW4udG9kYXkKLmthbm5ld3lvcmsuY29tCnx8a2Fu +bmV3eW9yay5jb20KLmthbnNoaWZhbmcuY29tCnx8a2Fuc2hpZmFuZy5jb20KfHxr +YW50aWUub3JnCmthbnpob25nZ3VvLmNvbQprYW56aG9uZ2d1by5ldQoua2FvdGlj +LmNvbQp8fGthb3RpYy5jb20KfHxrYXJheW91LmNvbQoua2FybWFwYS5vcmcKLmth +cm1hcGEtdGVhY2hpbmdzLm9yZwp8fGthd2FzZS5jb20KLmtiYS10eC5vcmcKLmtj +b29sb25saW5lLmNvbQoua2VicnVtLmNvbQp8fGtlYnJ1bS5jb20KLmtlY2hhcmEu +Y29tCi5rZWVwYW5kc2hhcmUuY29tL3Zpc2l0L3Zpc2l0X3BhZ2UucGhwP2k9Njg4 +MTU0CiEtLXx8a2VlcHZpZC5jb20KLmtlZXptb3ZpZXMuY29tCi5rZW5lbmdiYS5j +b20KfHxrZW5lbmdiYS5jb20KLmtlcGFyZC5jb20KfHxrZXBhcmQuY29tCndpa2ku +a2Vzby5jbi9Ib21lCnx8a2V5Y2RuLmNvbQoua2hhYmRoYS5vcmcKfHxraWNoaWt1 +LWRvdWppbmtvLmNvbQoua2lrLmNvbQp8fGtpay5jb20KLmtpbmRsZXJlbi5jb20K +fGh0dHA6Ly9raW5kbGVyZW4uY29tCnxodHRwOi8vd3d3LmtpbmRsZXJlbi5jb20K +Lmtpbmdkb21zYWx2YXRpb24ub3JnCnx8a2luZ2RvbXNhbHZhdGlvbi5vcmcKa2lu +Z2hvc3QuY29tCiEtLS5raW5nc3RvbmUuY29tLnR3L2Jvb2svCnx8a2luZ3N0b25l +LmNvbS50dwoua2luay5jb20KLmtpbm9rdW5peWEuY29tCnx8a2lub2t1bml5YS5j +b20Ka2lsbHdhbGwuY29tCnx8a2lsbHdhbGwuY29tCnx8a2luZGxlNHJzcy5jb20K +fHxraW5tZW4udHJhdmVsCi5raXIuanAKLmtpc3NiYmFvLmNuCnxodHRwOi8va2l3 +aS5regp8fGtrLXdoeXMuY28uanAKIS0tfHxrbXQub3JnLnR3Ci5rbXVoLm9yZy50 +dwoua25vd2xlZGdlcnVzaC5jb20va3IvZW5jeWNsb3BlZGlhCnx8a25vd3lvdXJt +ZW1lLmNvbQoua29iby5jb20KfHxrb2JvLmNvbQoua29ib2Jvb2tzLmNvbQp8fGtv +Ym9ib29rcy5jb20KfHxrb2Rpbmdlbi5jb20KQEB8fHd3dy5rb2Rpbmdlbi5jb20K +fHxrb21wb3plci5uZXQKLmtvbmFjaGFuLmNvbQp8fGtvbmFjaGFuLmNvbQoua29u +ZS5jb20KfHxrb29sc29sdXRpb25zLmNvbQoua29vcm5rLmNvbQp8fGtvb3Juay5j +b20KfHxrb3Jhbm1hbmRhcmluLmNvbQoua29yZW5hbjIuY29tCnx8a3Flcy5uZXQK +fGh0dHA6Ly9nb2pldC5rcnRjby5jb20udHcKLmtzZGwub3JnCi5rc25ld3MuY29t +LnR3Cnx8a3R6aGsuY29tCnx8a3VhaWNoZWRhby5jbwoua3VpLm5hbWUvZXZlbnQK +fHxrdWt1a3UudWsKa3VuLmltCi5rdXJhc2hzdWx0YW4uY29tCnx8a3VydG11bmdl +ci5jb20Ka3Vzb2NpdHkuY29tCnx8a3djZy5jYQoua3dvbmd3YWguY29tLm15Cnx8 +a3dvbmd3YWguY29tLm15Ci5reHN3LmxpZmUKfHxreHN3LmxpZmUKLmt5b2Z1bi5j +b20Ka3lvaGsubmV0Cnx8a3phb2Jhby5jb20KLmt6ZW5nLmluZm8KfHxremVuZy5p +bmZvCgohLS0tLS0tLS0tLS0tLS0tLS0tLS1MTC0tLS0tLS0tLS0tLS0tLS0tLS0t +LS0tLS0KfHxsdWNreW1vYmlsZS5jYQp8fGx1ZGVwcmVzcy5jb20KfHxsaW5ndWFs +ZW8uY29tCnx8bGRwbGF5ZXIudHcKfHxsZHBsYXllci5uZXQKfHxsdG4uY29tLnR3 +Cnx8bGl0ZW5ld3MuaGsKfHx3d3cubG9yZW56ZXR0aS5jb20uYnIKfHxsaW5rdHIu +ZWUKbGEtZm9ydW0ub3JnCmxhZGJyb2tlcy5jb20KfHxsYWJpZW5uYWxlLm9yZwou +bGFncmFuZXBvY2EuY29tCnx8bGFncmFuZXBvY2EuY29tCnx8bGFsYS5pbQoubGFs +dWxhbHUuY29tCi5sYW1hLmNvbS50dwp8fGxhbWEuY29tLnR3Ci5sYW1heWVzaGUu +Y29tCnxodHRwOi8vbGFtYXllc2hlLmNvbQoubGFtbmlhLmNvLnVrCnx8bGFtbmlh +LmNvLnVrCmxhbXJpbS5jb20KfHxsYW5kb2Zob3BlLnR2Ci5sYW50ZXJuY24uY24K +fGh0dHA6Ly9sYW50ZXJuY24uY24KLmxhbnRvc2ZvdW5kYXRpb24ub3JnCi5sYW9k +LmNuCnxodHRwOi8vbGFvZC5jbgpsYW9nYWkub3JnCnx8bGFvZ2FpLm9yZwp8fGxh +b2dhaXJlc2VhcmNoLm9yZwpsYW9taXUuY29tCi5sYW95YW5nLmluZm8KfGh0dHA6 +Ly9sYW95YW5nLmluZm8KLmxhcWluZ2Rhbi5uZXQKfHxsYXFpbmdkYW4ubmV0Cnx8 +bGFyc2dlb3JnZS5jb20KLmxhc3Rjb21iYXQuY29tCnxodHRwOi8vbGFzdGNvbWJh +dC5jb20KfHxsYXN0Zm0uZXMKbGF0ZWxpbmVuZXdzLmNvbQp8fGxhdXNhbi5oawp8 +fGxlLXZwbi5jb20KLmxlYWZ5dnBuLm5ldAp8fGxlYWZ5dnBuLm5ldAp8fGxlZGdl +ci5jb20KbGVlYW8uY29tLmNuL2Jicy9mb3J1bS5waHAKIS0tfHxsZWVjaGV1a3lh +bi5vcmcKbGVmb3JhLmNvbQp8fGxlZnQyMS5oawoubGVnYWxwb3Juby5jb20KLmxl +Z3NqYXBhbi5jb20KbGVpc3VyZWNhZmUuY2EKfHxsZW1hdGluLmNoCi5sZW1vbmRl +LmZyCnx8bGVud2hpdGUuY29tCmJsb2cubGVzdGVyODUwLmluZm8KfHxsZXNvaXIu +YmUKLmxldG91LmNvbQpsZXRzY29ycC5uZXQKfHxsZXRzY29ycC5uZXQKITY5LjE2 +LjE3NS40Mgp8fGNkbi5hc3NldHMubGZwY29udGVudC5jb20KLmxoYWthci5vcmcK +fGh0dHA6Ly9saGFrYXIub3JnCi5saGFzb2NpYWx3b3JrLm9yZwoubGlhbmd5b3Uu +bmV0Cnx8bGlhbmd5b3UubmV0Ci5saWFueXVlLm5ldAp8fGxpYW93YW5neGl6YW5n +Lm5ldAoubGlhb3dhbmd4aXphbmcubmV0Cnx8bGliZXJhbC5vcmcuaGsKfHxsaWJl +cnR5c2N1bHB0dXJlcGFyay5jb20KfHxsaWJlcnR5dGltZXMuY29tLnR3Cnx8bGli +cmVkZC5pdAp8fGxpZ2h0ZW4ub3JnLnR3Cnx8bGlnaHRub3ZlbC5jbgp8fGxpbGFv +c2hpYnVzaGluaWxhb3NoaS5jb20KbGltaWFvLm5ldApsaW5rdXN3ZWxsLmNvbQph +Yml0bm8ubGlucGllLmNvbS91c2UtaXB2Ni10by1mdWNrLWdmdwp8fGxpbmUubWUK +fHxsaW5lLWFwcHMuY29tCi5saW5nbGluZ2ZhLmNvbQp8fGxpbmd2b2RpY3MuY29t +Ci5saW5rLW8tcmFtYS5jb20KfGh0dHA6Ly9saW5rLW8tcmFtYS5jb20KfHxsaW5r +ZWRpbi5jb20KLmxpbmtpZGVvLmNvbQp8fGxpbnV4Lm9yZy5oawpsaW51eHRveS5v +cmcvYXJjaGl2ZXMvaW5zdGFsbGluZy13ZXN0LWNoYW1iZXItb24tdWJ1bnR1Ci5s +aW9uc3JvYXIuY29tCi5saXB1bWFuLmNvbQp8fGxpcXVpZHZwbi5jb20KfHxncmVh +dGZpcmUudXM3Lmxpc3QtbWFuYWdlLmNvbQp8fGxpc3Rlbm5vdGVzLmNvbQp8fGxp +c3RlbnRveW91dHViZS5jb20KbGlzdG9yaW91cy5jb20KLmxpdS14aWFvYm8ub3Jn +Ci5saXVoYW55dS5jb20KLmxpdXhpYW9iby5uZXQKfHxsaXV4aWFvYm8ubmV0Cmxp +dXhpYW90b25nLmNvbQp8fGxpdXhpYW90b25nLmNvbQoubGl2ZWRvb3IuanAKLmxp +dmVsZWFrLmNvbQp8fGxpdmVsZWFrLmNvbQp8fGxpdmVtaW50LmNvbQpsaXZlc3Ry +ZWFtLmNvbQp8fGxpdmVzdHJlYW0uY29tCnx8bGl2aW5nc3RyZWFtLmNvbQp8fGxp +dmV2aWRlby5jb20KLmxpdmV2aWRlby5jb20KbGl6aGl6aHVhbmdiaS5jb20KbGtj +bi5uZXQKfHxjaGF0Lmxtc3lzLm9yZwoubG9hZC50bwoubG9ic2FuZ3dhbmd5YWwu +Y29tCi5sb2NhbGRvbWFpbi53cwp8fGxvY2FsZG9tYWluLndzCmxvY2FscHJlc3No +ay5jb20KfHxsb2NrZXN0ZWsuY29tCnNlY3VyZS5sb2dtZWluLmNvbQp8fHNlY3Vy +ZS5sb2dtZWluLmNvbQp8fGxvZ29zLmNvbS5oawoubG9uZG9uY2hpbmVzZS5jYQou +bG9uZ2hhaXIuaGsKbG9uZ211c2ljLmNvbQp8fGxvbmd0ZXJtbHkubmV0Cnx8bG9v +a3BpYy5jb20KLmxvb2t0b3JvbnRvLmNvbQp8aHR0cDovL2xvb2t0b3JvbnRvLmNv +bQoubG90c2F3YWhvdXNlLm9yZy90aWJldGFuLW1hc3RlcnMvZm91cnRlZW50aC1k +YWxhaS1sYW1hCi5sb3R1c2xpZ2h0Lm9yZy50dwpoa3JlcG9ydGVyLmxvdmVkLmhr +Ci5scmlwLm9yZwp8fGxyaXAub3JnCi5sc2Qub3JnLmhrCnx8bHNkLm9yZy5oawps +c2ZvcnVtLm5ldAoubHNtLm9yZwp8fGxzbS5vcmcKLmxzbWNoaW5lc2Uub3JnCnx8 +bHNtY2hpbmVzZS5vcmcKLmxzbWtvcmVhbi5vcmcKfHxsc21rb3JlYW4ub3JnCi5s +c21yYWRpby5jb20vcmFkX2FyY2hpdmVzCi5sc213ZWJjYXN0LmNvbQoubHRuLmNv +bS50dwp8fGx0bi5jb20udHcKfHxsdWNreWRlc2lnbmVyLnNwYWNlCi5sdWtlNTQu +Y29tCi5sdWtlNTQub3JnCi5sdXBtLm9yZwp8fGx1cG0ub3JnCnx8bHVzaHN0b3Jp +ZXMuY29tCmx1eGViYy5jb20KbHZoYWkub3JnCnx8bHZoYWkub3JnCnx8bHZ2Mi5j +b20KLmx5ZmhrLm5ldAp8aHR0cDovL2x5ZmhrLm5ldAp8fGx6anNjcmlwdC5jb20K +Lmx6bXRuZXdzLm9yZwp8fGx6bXRuZXdzLm9yZwoKIS0tLS0tLS0tLS0tLS0tLS0t +LS0tTU0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCnx8bWN1c2VyY29udGVudC5j +b20KfHxtZXRhbWFzay5pbwp8fG1pc3Nhdi53cwp8fG5ld3MubXQuY28ua3IKfHxt +dXNpeG1hdGNoLmNvbQp8fG1lcmdlcnNhbmRpbnF1aXNpdGlvbnMuY29tCnx8bS5t +b2VnaXJsLm9yZwp8fG15anMudHcKfHxtZXJjYXJpLmNvbQp8fG1lcmNhcmkuanAK +fHxtaXJyb3IueHl6Cnx8bXl3aWZlLmNjCnx8Yy5taS5jb20KfHxtaXNzYXYuY29t +Cnx8bWFkb3UuY2x1Ygp8fG1haGpvbmdzb3VsLmNvbQp8fG1hbmdhYnouY29tCmh0 +dHA6Ly8qLm0tdGVhbS5jYwohLS1tLXRlYW0uY2MvZm9ydW0KLm1hY3JvdnBuLmNv +bQp8fG1hZC1hci5jaAp8fG1hZHJhdS5jb20KfHxtYWR0aHVtYnMuY29tCm1haGFi +b2RoaS5vcmcKbXkubWFpbC5ydQoubWFpcGx1cy5jb20KfGh0dHA6Ly9tYWlwbHVz +LmNvbQoubWFpemhvbmcub3JnCm1ha2thaG5ld3NwYXBlci5jb20KLm1hbWluZ3po +ZS5jb20KfHxtYW5nbWFuZy5ydW4KbWFuaWN1cjRpay5ydQp8fG1hbnl2b2ljZXMu +bmV3cwoubWFwbGV3LmNvbQp8aHR0cDovL21hcGxldy5jb20KfHxtYXJjLmluZm8K +bWFyZ3Vlcml0ZS5zdQptYXNrZWRpcC5jb20KLm1haWlvLm5ldAoubWFpbC1hcmNo +aXZlLmNvbQoubWFsYXlzaWFraW5pLmNvbQp8fG1ha2VteW1vb2QuY29tCi5tYW5j +aHVrdW8ubmV0Ci5tYW5pYXNoLmNvbQp8aHR0cDovL21hbmlhc2guY29tCi5tYW5z +aW9uLmNvbQoubWFuc2lvbnBva2VyLmNvbQohLS18fG1hcmluZXMubWlsCiEtLW1h +cmttYWlsLm9yZyptZXNzYWdlCnx8bWFydGF1LmNvbQp8aHR0cDovL2Jsb2cubWFy +dGlub2VpLmNvbQoubWFydHNhbmdrYWd5dW9mZmljaWFsLm9yZwp8aHR0cDovL21h +cnRzYW5na2FneXVvZmZpY2lhbC5vcmcKbWFydXRhLmJlL2ZvcmdldAoubWFyeGlz +dC5jb20KfHxtYXJ4aXN0Lm5ldAoubWFyeGlzdHMub3JnL2NoaW5lc2UKIS0tfHxt +YXNoYWJsZS5jb20KfHxtYXRhaW5qYS5jb20KfHxtYXRyaXgub3JnCnx8bWF0dGVy +cy50b3duCm1heWltYXlpLmNvbQoubWF4aW5nLmpwCi5tY2FmLmVlCnxodHRwOi8v +bWNhZi5lZQp8fG1jYWRmb3J1bXMuY29tCm1jZm9nLmNvbQptY3JlYXNpdGUuY29t +Ci5tZC10Lm9yZwp8fG1kLXQub3JnCnx8bWVhbnN5cy5jb20KLm1lZGlhLm9yZy5o +awoubWVkaWFjaGluZXNlLmNvbQp8fG1lZGlhY2hpbmVzZS5jb20KLm1lZGlhZmly +ZS5jb20vPwoubWVkaWFmaXJlLmNvbS9kb3dubG9hZAoubWVkaWFmcmVha2NpdHku +Y29tCnx8bWVkaWFmcmVha2NpdHkuY29tCi5tZWRpdW0uY29tCnx8bWVkaXVtLmNv +bQoubWVldGF2LmNvbQp8fG1lZXR1cC5jb20KbWVmZWVkaWEuY29tCmppaGFkaW50 +ZWwubWVmb3J1bS5vcmcKfHxtZWdhLmNvLm56Cnx8bWVnYS5pbwp8fG1lZ2EubnoK +fHxtZWdhbG9kb24uanAKfHxtZWdhcHJveHkuY29tCnx8bWVndXJpbmVsdWthLmNv +bQp8fG1laXpob25nLmJsb2cKfHxtZWl6aG9uZy5yZXBvcnQKLm1lbHRvZGF5LmNv +bQoubWVtZWhrLmNvbQp8fG1lbWVoay5jb20KfHxtZW1lcy50dwoubWVtcmkub3Jn +Ci5tZW1yaWp0dG0ub3JnCnx8bWVyY2RuLm5ldAoubWVyY3lwcm9waGV0Lm9yZwp8 +fG1lcmN5cHJvcGhldC5vcmcKLm1lcmlkaWFuLXRydXN0Lm9yZwp8fG1lcmlkaWFu +LXRydXN0Lm9yZwoubWVyaXBldC5jb20KfHxtZXJpcGV0LmNvbQp8fG1lcml0LXRp +bWVzLmNvbS50dwoubWVzb3R3LmNvbS9iYnMKfHx3aWtpLm1ldGFjdWJleC5vbmUK +fHxtZXRhZmlsdGVyLmNvbQp8fG1ldGVvcnNob3dlcnNvbmxpbmUuY29tCnx8bWV0 +cm8udGFpcGVpCi5tZXRyb2hrLmNvbS5oay8/Y21kPWRldGFpbCZjYXRlZ29yeUlE +PTIKfHxtZXRyb2xpZmUuY2EKLm1ldHJvcmFkaW8uY29tLmhrCnx8bWV0cm9yYWRp +by5jb20uaGsKfHxtZXdlLmNvbQp8fG1nb29uLmNvbQp8fG1nc3RhZ2UuY29tCnx8 +bWg0dS5vcmcKbWhyYWRpby5vcmcKfHxiYnMubWlrb2Nvbi5jb20KfHxtaWNyb3Zw +bi5jb20KbWlkZGxlLXdheS5uZXQKLm1paHIuY29tCnx8bWlodWEub3JnCnx8bWlr +YW5hbmkubWUKIS0tSVAKfHxtaWtlc29sdHlzLmNvbQoubWlscGgubmV0CnxodHRw +Oi8vbWlscGgubmV0Ci5taWxzdXJwcy5jb20KbWltaWFpLm5ldAoubWltaXZpcC5j +b20KLm1pbmRyb2xsaW5nLm9yZwp8aHR0cDovL21pbmRyb2xsaW5nLm9yZwp8fG1p +bmdkZW1lZGlhLm9yZwoubWluZ2h1aS5vci5rcgp8aHR0cDovL21pbmdodWkub3Iu +a3IKbWluZ2h1aS5vcmcKfHxtaW5naHVpLm9yZwptaW5naHVpLXNjaG9vbC5vcmcK +Lm1pbmdqaW5nbGlzaGkuY29tCnx8bWluZ2ppbmdsaXNoaS5jb20KbWluZ2ppbmdu +ZXdzLmNvbQp8fG1pbmdqaW5ndGltZXMuY29tCi5taW5ncGFvLmNvbQp8fG1pbmdw +YW8uY29tCi5taW5ncGFvY2FuYWRhLmNvbQoubWluZ3Bhb21vbnRobHkuY29tCnxo +dHRwOi8vbWluZ3Bhb21vbnRobHkuY29tCm1pbmdwYW9uZXdzLmNvbQoubWluZ3Bh +b255LmNvbQoubWluZ3Bhb3NmLmNvbQoubWluZ3Bhb3Rvci5jb20KLm1pbmdwYW92 +YW4uY29tCi5taW5nc2hlbmdiYW8uY29tCi5taW5oaHVlLm5ldAoubWluaXN0cnli +b29rcy5vcmcKbWluemh1emhvbmdndW8ub3JnCnx8bWlyb2d1aWRlLmNvbQptaXJy +b3Jib29rcy5jb20KfHxtaXJyb3JtZWRpYS5tZwoubWlzdC52aXAKfHx0aGVjZW50 +ZXIubWl0LmVkdQp8fHNjcmF0Y2gubWl0LmVkdQoubWl0YmJzLmNvbQp8fG1pdGJi +cy5jb20KLm1peGVyby5jb20KfHxtaXhlcm8uY29tCnx8bWl4aS5qcAptaXhwb2Qu +Y29tCi5taXh4LmNvbQp8fG1peHguY29tCnx8bWl6em1vbmEuY29tCnx8bWxjLmFp +Ci5tbGNvb2wuY29tCnx8bWx6cy53b3JrCi5tbS1jZy5jb20KfHxtbWFheHguY29t +Ci5tbW1jYS5jb20KbW5ld3N0di5jb20KfHxtb2JhdGVrLm5ldAoubW9iaWxlMDEu +Y29tCnx8bW9iaWxlMDEuY29tCnx8bW9iaWxld2F5cy5kZQoubW9ieXBpY3R1cmUu +Y29tCnxodHRwOi8vbW9ieS50bwp8fG1vZC5pbwp8fG1vZGVybmNoaW5hc3R1ZGll +cy5vcmcKfHxtb2Vlcm9saWJyYXJ5LmNvbQp8fG1vZXNoYXJlLmNjCi5tb2Zvcy5j +b20KfHxtb2cuY29tCnx8bW9odS5yb2Nrcwptb2xpaHVhLm9yZwp8fG1vbW9zaG9w +LmNvbS50dwp8fG1vbmRleC5vcmcKfHxtb25leS1saW5rLmNvbS50dwp8aHR0cDov +L3d3dy5tb25sYW1pdC5vcmcKfHxtb29uLmZtCi5tb29uYmJzLmNvbQp8fG1vb25i +YnMuY29tCnx8bW9wdHQudHcKfHxtb25leWRqLmNvbQp8fG1vbmljYS5pbQp8fG1v +bml0b3JjaGluYS5vcmcKfHxtb25vY2xvdWQubWUKYmJzLm1vcmJlbGwuY29tCnx8 +bW9ybmluZ3N1bi5vcmcKLm1vdGhlcmxlc3MuY29tCnxodHRwOi8vbW90aGVybGVz +cy5jb20KbW90b3I0aWsucnUKLm1vdXNlYnJlYWtlci5jb20KIS0tfHxtb3ZhYmxl +dHlwZS5jb20KLm1vdmVtZW50cy5vcmcKfHxtb3ZlbWVudHMub3JnCnx8bW92aWVm +YXAuY29tCnx8d3d3Lm1venR3Lm9yZwoubXAzYnVzY2Fkb3IuY29tCnx8bXBldHRp +cy5jb20KLm1wZmluYW5jZS5jb20KfHxtcGZpbmFuY2UuY29tCi5tcGluZXdzLmNv +bQp8fG1waW5ld3MuY29tCm1wb25saW5lLmhrCm1ydHdlZXQuY29tCnx8bXJ0d2Vl +dC5jb20KbmV3cy5tc24uY29tLnR3Cm1zZ3VhbmNoYS5jb20KLm1zd2UxLm9yZwp8 +aHR0cDovL21zd2UxLm9yZwp8fG10aHJ1Zi5jb20KfHxtdWJpLmNvbQptdWNob3N1 +Y2tvLmNvbQp8fG11bHRpcGx5LmNvbQptdWx0aXByb3h5Lm9yZwptdWx0aXVwbG9h +ZC5jb20KLm11bGx2YWQubmV0Cnx8bXVsbHZhZC5uZXQKLm11bW15c2dvbGQuY29t +Ci5tdXNpY2FkZS5uZXQKLm11c2xpbXZpZGVvLmNvbQp8fG11emkuY29tCnx8bXV6 +aS5uZXQKfHxteDk4MS5jb20KLm15LWZvcm1vc2EuY29tCi5teS1wcm94eS5jb20K +Lm15LXByaXZhdGUtbmV0d29yay5jby51awp8fG15LXByaXZhdGUtbmV0d29yay5j +by51awoubXlhY3RpbWVzLmNvbS9hY3RpbWVzCi5teWF1ZGlvY2FzdC5jb20KfHxt +eWF1ZGlvY2FzdC5jb20KLm15YXYuY29tLnR3L2JicwoubXliYnMudXMKLm15Y2Ex +NjguY29tCi5teWNhbmFkYW5vdy5jb20KfHxiYnMubXljaGF0LnRvCi5teWNoaW5h +bmV0LmNvbQoubXljaGluYW5ld3MuY29tCnx8bXljaGluYW5ld3MuY29tCi5teWNo +aW5lc2UubmV3cwp8fG15Y25uZXdzLmNvbQp8fG15a29taWNhLm9yZwpteWNvdWxk +LmNvbS9kaXNjdXoKLm15ZWFzeXR2LmNvbQp8fG15ZWNsaXBzZWlkZS5jb20KLm15 +ZnJlZWNhbXMuY29tCi5teWZyZWVwYXlzaXRlLmNvbQoubXlmcmVzaG5ldC5jb20K +Lm15aXBoaWRlLmNvbQp8fG15aXBoaWRlLmNvbQpmb3J1bS5teW1hamkuY29tCnx8 +bXltb2UubW9lCnx8bXlwYXJhZ2xpZGluZy5jb20KfHxteXBvcGVzY3UuY29tCi5t +eXJlYWRpbmdtYW5nYS5pbmZvCm15c2luYWJsb2cuY29tCi5teXNwYWNlLmNvbQoh +LS0uYmxvZ3MubXlzcGFjZS5jb20KIS0tfHxibG9ncy5teXNwYWNlLmNvbQohLS12 +aWRzLm15c3BhY2UuY29tL2luZGV4LmNmbT9mdXNlYWN0aW9uPXZpZHMuCiEtLXZp +ZXdtb3JlcGljcy5teXNwYWNlLmNvbQp8fG15c3BhY2VjZG4uY29tCi5teXRhbGti +b3guY29tCi5teXRpemkuY29tCgohLS0tLS0tLS0tLS0tLS0tLS0tLS1OTi0tLS0t +LS0tLS0tLS0tLS0tLS0tLS0tLS0KfHxuYXZlci5jb20KfHxtYXZlbi5uZW9mb3Jn +ZWQubmV0Cnx8bmZ0c3RvcmFnZS5saW5rCnx8bmV3aW5kaWFuZXhwcmVzcy5jb20K +fHxuZXdzMTguY29tCnx8YmJzLm5haXhpLm5ldAp8fG5pa2tlLmhvdGNvb2wudHcK +fHxuaWtrZS1rci5jb20KfHxuaWtrZS1qcC5jb20KfHxuaWtrZS1lbi5jb20KfHxu +ZXRsaWZ5LmFwcAp8fG5pZ2h0c3dhdGNoLnRvcAp8fG5ieXkudHYKfHxuZXd0aHVo +b2xlLmNvbQp8fG5hYWNvYWxpdGlvbi5vcmcKfHxuYWl0aWsubmV0Ci5uYWtpZG8u +Y29tCnx8bmFraWRvLmNvbQoubmFrdXouY29tL2Jicwp8fG5hbGFuZGFib2RoaS5v +cmcKfHxuYWxhbmRhd2VzdC5vcmcKLm5hbWd5YWwub3JnCm5hbWd5YWxtb25hc3Rl +cnkub3JnCi5uYW55YW5nLmNvbQp8fG5hbnlhbmcuY29tCi5uYW55YW5ncG9zdC5j +b20KfHxuYW55YW5ncG9zdC5jb20KLm5hbnphby5jb20KIS0tLm5hbnphby5jb20v +c2MvY2hpbmEvMjAyMjMKIS0tLm5hbnphby5jb20vc2MvaGstbWFjYXUtdHcKLm5h +b2wuY2EKLm5hb2wuY2MKdWlnaHVyLm5hcm9kLnJ1Ci5uYXQubW9lCnx8bmF0Lm1v +ZQpjeWJlcmdob3N0Lm5hdGFkby5jb20KfHxuYXRpb25hbC1sb3R0ZXJ5LmNvLnVr +Cnx8bmF0aW9uYWxhd2FrZW5pbmcub3JnCnx8bmF0aW9uYWxpbnRlcmVzdC5vcmcK +bmV3cy5uYXRpb25hbGdlb2dyYXBoaWMuY29tL25ld3MvMjAxNC8wNi8xNDA2MDMt +dGlhbmFubWVuLXNxdWFyZQp8fG5hdGlvbmFscmV2aWV3LmNvbQoubmF0aW9uc29u +bGluZS5vcmcvb25ld29ybGQvdGliZXQKfHxsaW5lLm5hdmVyLmpwCnx8bmF2eWZh +bWlseS5uYXZ5Lm1pbAp8fG5hdnlyZXNlcnZlLm5hdnkubWlsCnx8bmtvLm5hdnku +bWlsCnx8dXNuby5uYXZ5Lm1pbApuYXdlZWtseXRpbWVzLmNvbQp8fG5iY25ld3Mu +Y29tCi5uYnR2cG4uY29tCnxodHRwOi8vbmJ0dnBuLmNvbQpuY2N3YXRjaC5vcmcu +dHcKLm5jaC5jb20udHcKLm5jbi5vcmcKfHxuY2hyZC5vcmcKfHxuY24ub3JnCnx8 +ZXRvb2xzLm5jb2wuY29tCi5uZGUuZGUKfHxuZGkub3JnCi5uZHIuZGUKLm5lZC5v +cmcKfHxuZWtvc2xvdmFraWEubmV0Cnx8bmVvd2luLm5ldAp8fG5ldGFsZXJ0Lm1l +CiEtLWJic25ldy5uZXRiaWcuY29tCi5uZXRiaXJkcy5jb20KbmV0Y29sb255LmNv +bQpib2xpbi5uZXRmaXJtcy5jb20KfHxuZXRmbGF2LmNvbQp8fG5ldG1lLmNjCnx8 +bmV0c2FyYW5nLmNvbQpuZXRzbmVhay5jb20KLm5ldHdvcms1NC5jb20KbmV0d29y +a2VkYmxvZ3MuY29tCi5uZXR3b3JrdHVubmVsLm5ldApuZXctM2x1bmNoLm5ldAou +bmV3LWFraWJhLmNvbQoubmV3OTYuY2EKLm5ld2NlbnR1cnltYy5jb20KfGh0dHA6 +Ly9uZXdjZW50dXJ5bWMuY29tCm5ld2NlbnR1cnluZXdzLmNvbQp8fG5ld2NoZW4u +Y29tCi5uZXdjaGVuLmNvbQoubmV3Z3JvdW5kcy5jb20KfHxuZXdoaWdobGFuZHZp +c2lvbi5jb20KbmV3aXBub3cuY29tCi5uZXdsYW5kbWFnYXppbmUuY29tLmF1Cnx8 +bmV3bWl0YmJzLmNvbQoubmV3bmV3cy5jYQp8fG5ld3MxLmtyCm5ld3MxMDAuY29t +LnR3Cm5ld3NjaGluYWNvbW1lbnQub3JnCi5uZXdzYW5jYWkuY29tCnx8bmV3c2Fu +Y2FpLmNvbQp8fG5ld3NibHVyLmNvbQoubmV3c2RldG94LmNhCi5uZXdzZGguY29t +Cnx8bmV3c21heC5jb20KfHxuZXdzdGFtYWdvLmNvbQp8fG5ld3N0YXBhLm9yZwp8 +fG5ld3N0YXRlc21hbi5jb20KbmV3c3Rhcm5ldC5jb20KfHxuZXdzd2Vlay5jb20K +Lm5ld3RhaXdhbi5jb20udHcKbmV3dGFsay50dwp8fG5ld3RhbGsudHcKfHxuZXd5 +b3JrZXIuY29tCm5ld3lvcmt0aW1lcy5jb20KfHxuZXhvbi5jb20KLm5leHQxMS5j +by5qcAp8fG5leHRkaWdpdGFsLmNvbS5oawoubmV4dG1hZy5jb20udHcKCiEtLWhr +Ki5uZXh0bWVkaWEuY29tCiEtLXR3Ki5uZXh0bWVkaWEuY29tCiEtLXN0YXRpYyou +bmV4dG1lZGlhLmNvbQoubmV4dG1lZGlhLmNvbQoKfHxuZXh0b24tbmV0LmpwCnx8 +bmV4dHR2LmNvbS50dwoubmZqdHlkLmNvbQp8fGNvLm5nLm1pbAp8fG5nYS5taWwK +bmdlbnNpcy5jb20KLm5oZW50YWkubmV0CnxodHRwOi8vbmhlbnRhaS5uZXQKLm5o +ay1vbmRlbWFuZC5qcAp8fG5pY292aWRlby5qcApuaW5lY29tbWVudGFyaWVzLmNv +bQoubmluamFjbG9hay5jb20KfHxuaW5qYXByb3h5Lm5pbmphCm5pbnRlbmRpdW0u +Y29tCnRhaXdhbnllcy5uaW5nLmNvbQp1c21ndGNnLm5pbmcuY29tL2ZvcnVtCnx8 +bml1c25ld3MuY29tCnx8bmphY3RiLm9yZwp8fG5sZnJlZXZwbi5jb20KfHxubXNs +LndlYnNpdGUKfHxubmV3cy5ldQoKIS0tbm8taXAuY29tI05PSVAKLmRkbnMubmV0 +Lwp8fGdvdGRucy5jaAoubm8taXAub3JnCi5vcGVuZG4ueHl6Ci5zZXJ2ZWh0dHAu +Y29tCnN5dGVzLm5ldAouemFwdG8ub3JnCnxodHRwOi8vZHludXBkYXRlLm5vLWlw +LmNvbS8KCnx8bm9iZWwuc2UKIS0tLm5vYmVscHJpemUub3JnCiEtLXxodHRwOi8v +bm9iZWxwcml6ZS5vcmcKbm9iZWxwcml6ZS5vcmcvbm9iZWxfcHJpemVzL3BlYWNl +L2xhdXJlYXRlcy8xOTg5Cm5vYmVscHJpemUub3JnL25vYmVsX3ByaXplcy9wZWFj +ZS9sYXVyZWF0ZXMvMjAxMAp8fG5vZGVzZWVrLmNvbQp8fG5va29naXJpLm9yZwp8 +fG5va29sYS5jb20Kbm9vZGxldnBuLmNvbQoubm9yYnVsaW5na2Eub3JnCm5vcmR2 +cG4uY29tCnx8bm9yZHZwbi5jb20KfHxub3MubmwKfHxub3RlcGFkLXBsdXMtcGx1 +cy5vcmcKfHxub3cuY29tCnx8bm93bmV3cy5jb20KLm5vd3RvcnJlbnRzLmNvbQp8 +fG5wYS5nby5qcAoubnBudC5tZQp8aHR0cDovL25wbnQubWUKLm5yYWRpby5tZQp8 +aHR0cDovL25yYWRpby5tZQoubnJrLm5vCnx8bnJrLm5vCi5udGQudHYKfHxudGQu +dHYKLm50ZHR2LmNvbQp8fG50ZHR2LmNvbQp8fG50ZHR2LmNvbS50dwoubnRkdHYu +Y28ua3IKbnRkdHYuY2EKbnRkdHYub3JnCm50ZHR2LnJ1Cm50ZHR2bGEuY29tCi5u +dHJmdW4uY29tCnx8Y2JzLm50dS5lZHUudHcKfHxtZWRpYS5udS5ubAoubnViaWxl +cy5uZXQKfHxudWV4cG8uY29tCi5udWtpc3RyZWFtLmNvbQp8fG51cmdvLXNvZnR3 +YXJlLmNvbQp8fG51dGFrdS5uZXQKfHxudXRzdnBuLndvcmsKLm51dmlkLmNvbQp8 +fG52ZHN0LmNvbQoubnZxdWFuLm9yZwoubnZ0b25nemhpc2hlbmcub3JnCnxodHRw +Oi8vbnZ0b25nemhpc2hlbmcub3JnCi5ud3RjYS5vcmcKfGh0dHA6Ly9ueWFhLmV1 +Cnx8bnlhYS5zaQp8fG55Ym9va3MuY29tCm55bG9uLWFuZ2VsLmNvbQpueWxvbnN0 +b2NraW5nc29ubGluZS5jb20KfHxueXBvc3QuY29tCiEtLW55c2luZ3Rhby5jb20K +Lm56Y2hpbmVzZS5jb20KCiEtLS0tLS0tLS0tLS0tLS0tLS0tLU9PLS0tLS0tLS0t +LS0tLS0tLS0tLS0tLS0tLQp8fG9vamouZGUKfHxvbmV2cHMuY29tCnx8b25lZHJp +dmUuY29tCnx8b2xlbGl2ZS5jb20KfHxvYW5uLmNvbQpvYnNlcnZlY2hpbmEubmV0 +Ci5vYnV0dS5jb20Kb2Nhc3Byby5jb20Kb2NjdXB5dGlhbmFubWVuLmNvbQoub2Ny +ZWFtcGllcy5jb20KfHxvY3RvYmVyLXJldmlldy5vcmcKfHxvZHlzZWUuY29tCnx8 +b2ZmaWNlb2Z0aWJldC5jb20KfGh0dHA6Ly9vZmlsZS5vcmcKfHxvZ2FvZ2Eub3Jn +CnR3dHIyc3JjLm9nYW9nYS5vcmcKLm9nYXRlLm9yZwp8fG9nYXRlLm9yZwp3d3cy +Lm9oY2hyLm9yZy9lbmdsaXNoL2JvZGllcy9jYXQvZG9jcy9uZ29zL0lJX0NoaW5h +XzQxLnBkZgp8fG9obXlyc3MuY29tCi5vaWtvcy5jb20udHcvdjQKLm9pa3R2LmNv +bQoub2sucnUKfHxvay5ydQoub2theWZyZWVkb20uY29tCnx8b2theWZyZWVkb20u +Y29tCnx8b2trLnR3Cnx8b2xldm9kLmNvbQp8fG9sdW1wby5jb20KLm9seW1waWN3 +YXRjaC5vcmcKfHxvbWN0Lm9yZwpvbWdpbGkuY29tCnx8b21uaXRhbGsuY29tCnx8 +b21uaXRhbGsub3JnCnx8b21ueS5mbQp8fG9uLmNjCnx8b25lZHJpdmUubGl2ZS5j +b20KfHxvbmlvbi5jaXR5Cnx8b25pb24ubHkKLm9ubGluZWNoYS5jb20KfHxvbmxp +bmV5b3V0dWJlLmNvbQp8fG9ubHlnYXl2aWRlby5jb20KLm9ubHl0d2VldHMuY29t +CnxodHRwOi8vb25seXR3ZWV0cy5jb20Kb25tb29uLm5ldApvbm1vb24uY29tCi5v +bnRoZWh1bnQuY29tCnxodHRwOi8vb250aGVodW50LmNvbQpvcGVuLmNvbS5oawpv +cGVuZGVtb2NyYWN5Lm5ldAp8fG9wZW5kZW1vY3JhY3kubmV0Cm9wZW5pZC5uZXQK +fHxvcGVuaWQubmV0Ci5vcGVubGVha3Mub3JnCnx8b3BlbmxlYWtzLm9yZwp8fG9w +ZW5zdHJlZXRtYXAub3JnCnx8b3BlbnRlY2guZnVuZApvcGVudnBuLm5ldAp8fG9w +ZW52cG4ubmV0Cnx8b3BlbndlYnN0ZXIuY29tCi5vcGVud3J0Lm9yZy5jbgpAQHx8 +b3BlbndydC5vcmcuY24KbXkub3BlcmEuY29tL2RhaGVtYQoub3B1cy1nYW1pbmcu +Y29tCnxodHRwOi8vb3B1cy1nYW1pbmcuY29tCi5vcmdhbmNhcmUub3JnLnR3Cm9y +Z2FuaGFydmVzdGludmVzdGlnYXRpb24ubmV0Ci5vcmdhc20uY29tCi5vcmdmcmVl +LmNvbQp8fG9yaWNvbi5jby5qcAp8fG9yaWVudC1kb2xsLmNvbQpvcmllbnRhbGRh +aWx5LmNvbS5teQp8fG9yaWVudGFsZGFpbHkuY29tLm15CiEtLW9yaWVudGFsZGFp +bHkub24uY2MKfHxvcm4uanAKfHxvc2Zvb3JhLmNvbQp8fG90dG8uZGUKfHxvdXJk +ZWFyYW15LmNvbQpvdXJzb2dvLmNvbQoub3Vyc3RlcHMuY29tLmF1Cnx8b3Vyc3Rl +cHMuY29tLmF1Ci5vdXJzd2ViLm5ldAp8fG91cnR2LmhrCnhpbnFpbWVuZy5vdmVy +LWJsb2cuY29tCnx8b3ZlcmNhc3QuZm0KfHxvdmVyZGFpbHkub3JnCnx8b3ZlcnBs +YXkubmV0CnNoYXJlLm92aS5jb20vbWVkaWEKfHxvdnBuLmNvbQp8aHR0cDovL293 +bC5saQp8aHR0cDovL2h0Lmx5CnxodHRwOi8vaHRsLmxpCnxodHRwOi8vbWFzaC50 +bwp3d3cub3dpbmQuY29tCnx8b3dsdGFpbC5jb20KfHxveGZvcmRzY2hvbGFyc2hp +cC5jb20KfGh0dHA6Ly93d3cub3hpZC5pdApveWF4LmNvbQpveWdoYW4uY29tL3dw +cwoub3pjaGluZXNlLmNvbS9iYnMKfHxvdy5seQoub3p2b2ljZS5vcmcKfHxvenZv +aWNlLm9yZwoub3p4dy5jb20KLm96eW95by5jb20KCiEtLS0tLS0tLS0tLS0tLS0t +LS0tLVBQLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQp8fHBld3Jlc2VhcmNoLm9y +Zwp8fHByaXZhY3lndWlkZXMub3JnCnx8cGFuY2FrZXN3YXAuZmluYW5jZQp8fGlt +Zy5waWNnby5uZXQKfHxwb3JubWF0ZS5jb20KfHxwdXJlZG5zLm9yZwp8fHBvbHlt +YXJrZXQuY29tCnx8cGFuZGFmYW4ucHViCnx8cHJveHouY29tCnx8cG90YXRzby5j +b20KfHxwZW5kcml2ZWxpbnV4LmNvbQp8fHBhaW1vbi5tb2UKfHxwaG90b25tZWRp +YS5uZXQKfHxwb2ludHMtbWVkaWEuY29tCnx8cGt1YW52aWwuY29tCnx8cGFjaG9z +dGluZy5jb20KLnBhY2lmaWNwb2tlci5jb20KLnBhY2tldGl4Lm5ldAp8fHBhY29w +YWNvbWFtYS5jb20KLnBhZG1hbmV0LmNvbQp8fHBhZ2UubGluawpwYWdlMnJzcy5j +b20KLnBhbGFjZW1vb24uY29tCmZvcnVtLnBhbG1pc2xpZmUuY29tCnx8ZXJpdmVy +c29mdC5jb20KcGFsam9ycHVibGljYXRpb25zLmNvbQoucGFsdGFsay5jb20KIS0t +fHxwYW5nY2kubmV0Cnx8cGFuZGFwb3cuY28KLnBhbmRhcG93Lm5ldAoucGFuZGF2 +cG4tanAuY29tCnx8cGFuZGF2cG4tanAuY29tCnx8cGFuZGF2cG5wcm8uY29tCnx8 +cGFvLXBhby5uZXQKcGFwZXIubGkKcGFwZXJiLnVzCi5wYXJhZGlzZWhpbGwuY2MK +LnBhcmFkaXNlcG9rZXIuY29tCnx8cGFybGVyLmNvbQp8fHBhcnNldmlkZW8uY29t +Ci5wYXJ0eWNhc2luby5jb20KLnBhcnR5cG9rZXIuY29tCi5wYXNzaW9uLmNvbQp8 +fHBhc3Npb24uY29tCi5wYXNzaW9udGltZXMuaGsKcGFzdGViaW4uY29tCi5wYXN0 +aWUub3JnCnx8cGFzdGllLm9yZwp8fGJsb2cucGF0aHRvc2hhcmVwb2ludC5jb20K +fHxwYXRyZW9uLmNvbQp8fHBhdHJlb251c2VyY29udGVudC5jb20KfHxwYXdvby5u +ZXQKfHxwYnMub3JnCgohLS1QYndpa2kKcGJ3aWtpLmNvbQp8fHBid29ya3MuY29t +Cnx8ZGV2ZWxvcGVycy5ib3gubmV0Cnx8d2lraS5vYXV0aC5uZXQKfHx3aWtpLnBo +b25lZ2FwLmNvbQp8fHdpa2kuanF1ZXJ5dWkuY29tCgp8fHBieGVzLmNvbQp8fHBi +eGVzLm9yZwpwY2R2ZC5jb20udHcKfHxwY2dhbWVzdG9ycmVudHMuY29tCi5wY2hv +bWUuY29tLnR3Cnx8cGNpai5vcmcKLnBjc3RvcmUuY29tLnR3Cnx8cGN0Lm9yZy50 +dwpwZGV0YWlscy5jb20KfHxwZHByb3h5LmNvbQp8fHBlYWNlLmNhCnBlYWNlZmly +ZS5vcmcKLnBlZWFzaWFuLmNvbQp8fHBlaW5nLm5ldAoucGVraW5nZHVjay5vcmcK +fHxwZWtpbmdkdWNrLm9yZwoucGVtdWxpaGFuLm9yLmlkCnxodHRwOi8vcGVtdWxp +aGFuLm9yLmlkCnx8cGVuLmlvCnBlbmNoaW5lc2UuY29tCnx8YmxvZy5wZW50YWxv +Z2ljLm5ldAoucGVudGhvdXNlLmNvbQp8fHBlbnRveS5oawoucGVvcGxlYm9va2Nh +ZmUuY29tCi5wZW9wbGVuZXdzLnR3Cnx8cGVvcGxlbmV3cy50dwoucGVvcG8ub3Jn +Cnx8cGVvcG8ub3JnCi5wZXJjeS5pbgoucGVyZmVjdGdpcmxzLm5ldAp8fHBlcmZl +Y3QtcHJpdmFjeS5jb20KfHxwZXJwbGV4aXR5LmFpCi5wZXJzZWN1dGlvbmJsb2cu +Y29tCi5wZXJzaWFua2l0dHkuY29tCnBoYXBsdWFuLm9yZwoucGhheXVsLmNvbQp8 +fHBoYXl1bC5jb20KcGhpbGJvcmdlcy5jb20KfHxwaG5jZG4uY29tCnx8cGhvdG9k +aGFybWEubmV0Cnx8cGhvdG9mb2N1cy5jb20KfHxwaWNhY29taWNjbi5jb20KLnBp +Y2lkYWUubmV0Cnx8aW1nKi5waWN0dXJlZGlwLmNvbQpwaWN0dXJlc29jaWFsLmNv +bQp8fHBpY3VraS5jb20KfHxwaWdhdi5jb20KfHxwaW4tY29uZy5jb20KLnBpbjYu +Y29tCnx8cGluNi5jb20KLnBpbmcuZm0KfHxwaW5nLmZtCnx8cGluaW1nLmNvbQou +cGlua3JvZC5jb20KfHxwaW5veS1uLmNvbQp8fHBpbnRlcmVzdC4qCkBAfHxwaW50 +ZXJlc3QuY24KLnBpcGlpLnR2CnBpcmFhdHRpbGFodGkub3JnCi5waXJpbmcuY29t +Cnx8cGl4ZWxkcmFpbi5jb20KfHxwaXhlbHFpLmNvbQp8fGNzcy5waXhuZXQuaW4K +fHxwaXhuZXQubmV0Ci5waXhuZXQubmV0Ci5way5jb20KfHxwa3FqaWFzdS5jb20K +fHxwbGFjZW1peC5jb20KIS0tLnBsYW5ldHN1enkub3JnCnx8cGxheS1hc2lhLmNv +bQp8fHBsYXlib3kuY29tCi5wbGF5Ym95cGx1cy5jb20KfHxwbGF5Ym95cGx1cy5j +b20KfHxwbGF5ZXIuZm0KLnBsYXlubzEuY29tCnx8cGxheW5vMS5jb20KfHxwbGF5 +cGNlc29yLmNvbQp8fHBsZXh2cG4ucHJvCnBsbS5vcmcuaGsKcGx1bmRlci5jb20K +LnBsdXJrLmNvbQp8fHBsdXJrLmNvbQoucGx1czI4LmNvbQoucGx1c2JiLmNvbQou +cG1hdGVodW50ZXIuY29tCnx8cG1hdGVodW50ZXIuY29tCi5wbWF0ZXMuY29tCnx8 +cG8yYi5jb20KcG9iaWVyYW15LnRvcAohLS18fHBvY29vLm9yZwp8fHBvZGJlYW4u +Y29tCnx8cG9kaWN0aW9uYXJ5LmNvbQp8fHBvZS5jb20KLnBva2Vyc3RhcnMuY29t +Cnx8cG9rZXJzdGFycy5jb20KfHxwb2tlcnN0YXJzLm5ldAp8fHpoLnBva2Vyc3Ry +YXRlZ3kuY29tCnx8cG9saXRpY2FsY2hpbmEub3JnCi5wb2xpdGlzY2FsZXMubmV0 +Cnx8cG9sb25pZXguY29tCnx8cG9seW1lcmhrLmNvbQoucG9wby50dwohLS18fHBv +cHVsYXJwYWdlcy5uZXQKfHxwb3B2b3RlLmhrCnx8cG9weGkuY2xpY2sKLnBvcHlh +cmQuY29tCnx8cG9weWFyZC5vcmcKLnBvcm4uY29tCi5wb3JuMi5jb20KLnBvcm41 +LmNvbQoucG9ybmJhc2Uub3JnCi5wb3JuZXJicm9zLmNvbQp8fHBvcm5oZC5jb20K +LnBvcm5ob3N0LmNvbQoucG9ybmh1Yi5jb20KfHxwb3JuaHViLmNvbQoucG9ybmh1 +YmRldXRzY2gubmV0CnxodHRwOi8vcG9ybmh1YmRldXRzY2gubmV0Ci5wb3Jub3hv +LmNvbQoucG9ybnJhcGlkc2hhcmUuY29tCnx8cG9ybnJhcGlkc2hhcmUuY29tCi5w +b3Juc2hhcmluZy5jb20KfGh0dHA6Ly9wb3Juc2hhcmluZy5jb20KLnBvcm5zb2Nr +ZXQuY29tCnx8cG9ybnN0YXJieWZhY2UuY29tCi5wb3Juc3RhcmNsdWIuY29tCnx8 +cG9ybnN0YXJjbHViLmNvbQoucG9ybnR1YmUuY29tCi5wb3JudHViZW5ld3MuY29t +Ci5wb3JudHZibG9nLmNvbQp8fHBvcm50dmJsb2cuY29tCi5wb3JudmlzaXQuY29t +Ci5wb3J0YWJsZXZwbi5ubAp8fHBvc2tvdGFuZXdzLmNvbQoucG9zdDAxLmNvbQou +cG9zdDc2LmNvbQp8fHBvc3Q3Ni5jb20KLnBvc3Q4NTIuY29tCnx8cG9zdDg1Mi5j +b20KcG9zdGFkdWx0LmNvbQp8fHBvdHZwbi5jb20KfHxwb3VycXVvaS50dwp8fHBv +d2VyY3guY29tCi5wb3dlcnBob3RvLm9yZwp8fHd3dy5wb3dlcnBvaW50bmluamEu +Y29tCnx8cHB5LnNoCnx8cHJlc2lkZW50bGVlLnR3Cnx8Y2RuLnByaW50ZnJpZW5k +bHkuY29tCi5wcml0dW5sLmNvbQpwcm92cG5hY2NvdW50cy5jb20KfHxwcm92cG5h +Y2NvdW50cy5jb20KLnByb3hmcmVlLmNvbQp8fHByb3hmcmVlLmNvbQpwcm94eWFu +b25pbW8uZXMKLnByb3h5bmV0d29yay5vcmcudWsKfHxwcm94eW5ldHdvcmsub3Jn +LnVrCi5wdHR2YW4ub3JnCnx8cHVidS5jb20udHcKfHxwdWZmaW5icm93c2VyLmNv +bQp8fHB1cmVpbnNpZ2h0Lm9yZwoucHV0dHkub3JnCnx8cHV0dHkub3JnCgohLS0t +LS0tLS0tLS0tLVBvc3Rlcm91cy0tLS0tCnx8Y2FsZWJlbHN0b24uY29tCnx8Ymxv +Zy5maXp6aWsuY29tCnx8bmYuaWQuYXUKfHxzb2dyYWR5Lm1lCnx8dmF0bi5vcmcK +fHx2ZW50dXJlc3dlbGwuY29tCnx8d2hlcmVpc3dlcm5lci5jb20KCi5wb3dlci5j +b20KfHxwb3dlci5jb20KcG93ZXJhcHBsZS5jb20KfHxwb3dlcmFwcGxlLmNvbQp8 +fHByYXlmb3JjaGluYS5uZXQKfHxwcmNsZWFkZXIub3JnCnx8cHJlc2VudGF0aW9u +emVuLmNvbQp8fHByZXN0aWdlLWF2LmNvbQoucHJpc29uZXJhbGVydC5jb20KfHxw +cml0dW5sLmNvbQp8fHByaXZhY3lib3guZGUKfHxwcml2YXRlLmNvbQp8fHByaXZh +dGVpbnRlcm5ldGFjY2Vzcy5jb20KcHJpdmF0ZXBhc3RlLmNvbQp8fHByaXZhdGVw +YXN0ZS5jb20KcHJpdmF0ZXR1bm5lbC5jb20KfHxwcml2YXRldHVubmVsLmNvbQp8 +fHByaXZhdGV2cG4uY29tCnx8cHJpdm94eS5vcmcKfHxwcm9jb3B5dGlwcy5jb20K +fHxwcm9qZWN0LXN5bmRpY2F0ZS5vcmcKfHxwcm90b24ubWUKcHJvdmlkZW9jb2Fs +aXRpb24uY29tCnx8cHJvc2liZW4uZGUKcHJveGlmaWVyLmNvbQp8fHByb3hvbWl0 +cm9uLmluZm8KLnByb3hwbi5jb20KfHxwcm94cG4uY29tCnByb3h5cm9hZC5jb20K +LnByb3h5dHVubmVsLm5ldAp8fHBzaHZwbi5jb20KfHxwc2lwaG9uLmNhCi5wc2lw +aG9uMy5jb20KfHxwc2lwaG9uMy5jb20KLnBzaXBob250b2RheS5jb20KfHxwc3Rh +dGljLm5ldAp8fHB0LmltCi5wdHQuY2MKfHxwdHQuY2MKfHxwdHRnYW1lLmNvbQou +cHVmZnN0b3JlLmNvbQp8fG1haW4tZWNucGFwZXItZWNvbm9taXN0LmNvbnRlbnQu +cHVncGlnLmNvbQp8fHB1bGxmb2xpby5jb20KLnB1bnl1LmNvbS9wdW55Cnx8cHVy +ZWNvbmNlcHRzLm5ldAp8fHB1cmVpbnNpZ2h0Lm9yZwp8fHB1cmVwZGYuY29tCnx8 +cHVyZXZwbi5jb20KLnB1cnBsZWxvdHVzLm9yZwoucHVyc3Vlc3Rhci5jb20KfHxw +dXJzdWVzdGFyLmNvbQoucHVzc3lzcGFjZS5jb20KLnB1dGlob21lLm9yZwoucHV0 +bG9ja2VyLmNvbS9maWxlCnB3bmVkLmNvbQp8fHB4aW1nLm5ldApweXRob24uY29t +Ci5weXRob24uY29tLnR3Cnx8cHl0aG9uLmNvbS50dwpweXRob25oYWNrZXJzLmNv +bS9wCnNzLnB5dGhvbmljLmxpZmUKCiEtLS0tLS0tLS0tLS0tLS0tLS0tLVFRLS0t +LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQp8aHR0cDovL3FtcDQuY29tCnx8cWlhbm1v +LnR3Cnx8cWJpdHRvcnJlbnQub3JnCnx8cWdpcmwuY29tLnR3Cnx8cWlhbmJhaS50 +dwp8fHFpYW5kYW8udG9kYXkKfHxxaWFuZ2xpZS5jb20KfHxxaWFuZ3dhaWthbi5j +b20KLnFpLWdvbmcubWUKfHxxaS1nb25nLm1lCiEtLSM5MjEKfHxxaWFuZ3lvdS5v +cmcKLnFpZGlhbi5jYQp8fHFpd2VuLmx1CnFpeGlhbmdsdS5jbgoucWtzaGFyZS5j +b20KcW9vcy5jb20KfHxxb29zLmNvbQp8fGVma3NvZnQuY29tCnx8cXN0YXR1cy5j +b20KfHxxdHJhYy5ldQp8fHF1aXRjY3Aub3JnCi5xdWl0Y2NwLm9yZwoucXVvcmEu +Y29tL0NoaW5hcy1GdXR1cmUKLnF1cmFuLmNvbQp8aHR0cDovL3F1cmFuLmNvbQou +cXVyYW5leHBsb3Jlci5jb20KcXVzaTgubmV0Cm5lbWVzaXMyLnF4Lm5ldC9wYWdl +cy9NeUVuVHVubmVsCnF4YmJzLm9yZwoKIS0tLS0tLS0tLS0tLS0tLS0tLS0tUlIt +LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCnx8cmFkbWluLXZwbi5jb20KfHxydWxl +MzR2aWRlby5jb20KfHxyMTBzLmpwCnx8cmFrdXRlbi5jby5qcAp8fHIwLnJ1Cnx8 +cmFkaW8tY2FuYWRhLmNhCnx8cmFkaW8tZW4tbGlnbmUuZnIKfHxyYWVsLm9yZwpy +YWRpY2FscGFydHkub3JnCnx8cmFkaW8uZ2FyZGVuCnx8cmFkaW9hdXN0cmFsaWEu +bmV0LmF1Ci5yYWRpb2hpbGlnaHQubmV0Cnx8cmFkaW9oaWxpZ2h0Lm5ldAp8fHJh +ZGlvbGluZS5jbwpvcG1sLnJhZGlvdGltZS5jb20KfHxyYWRpb3ZhdGljYW5hLm9y +Zwp8fHJhZGlvdm5jci5jb20KfHxyYWdnZWRiYW5uZXIuY29tCnx8cmFpZGNhbGwu +Y29tLnR3Ci5yYWluYm93cGxhbi5vcmcvYmJzCnxodHRwczovL3JhaW5kcm9wLmlv +LwoucmFpem9qaS5vci5qcAp8aHR0cDovL3JhaXpvamkub3IuanAKcmFuZ3plbi5u +ZXQKcmFuZ3plbi5vcmcKfGh0dHA6Ly9ibG9nLnJhbnhpYW5nLmNvbS8KLnJhcGJ1 +bGwubmV0CiEtLXxodHRwOi8vcmFwaWRnYXRvci5uZXQvCnx8cmFwaWRtb3ZpZXou +Y29tCnJhcGlkdnBuLmNvbQp8fHJhcGlkdnBuLmNvbQp8fHJhcmJncHJ4Lm9yZwp8 +fHJhdGlvbmFsd2lraS5vcmcKfHxyYXdnaXQuY29tCnx8cmF3Z2l0aHViLmNvbQp8 +fHJjaW5ldC5jYQp8fHJlYWJibGUuY29tCi5yZWFkMTAwLmNvbQoucmVhZGluZ3Rp +bWVzLmNvbS50dwp8fHJlYWRpbmd0aW1lcy5jb20udHcKfHxyZWFkbW9vLmNvbQou +cmVhZHlkb3duLmNvbQp8aHR0cDovL3JlYWR5ZG93bi5jb20KfHxyZWFsY291cmFn +ZS5vcmcKLnJlYWxpdHlraW5ncy5jb20KfHxyZWFsaXR5a2luZ3MuY29tCi5yZWFs +cmFwdGFsay5jb20KLnJlYWxzZXhwYXNzLmNvbQp8fHJlYXNvbi5jb20KLnJlY29y +ZGhpc3Rvcnkub3JnCi5yZWNvdmVyeS5vcmcudHcKfGh0dHA6Ly9vbmxpbmUucmVj +b3Zlcnl2ZXJzaW9uLm9yZwp8fHJlY292ZXJ5dmVyc2lvbi5jb20udHcKfHxyZWQt +bGFuZy5vcmcKfHxyZWRidWJibGUuY29tCi5yZWRjaGluYWNuLm5ldAp8fHJlZGNo +aW5hY24ubmV0CnJlZGNoaW5hY24ub3JnCnJlZHR1YmUuY29tCnJlZmVyZXIudXMK +fHxyZWZlcmVyLnVzCnx8cmVmbGVjdGl2ZWNvZGUuY29tCnx8YmxvZy5yZWltdS5u +ZXQKcmVsYXhiYnMuY29tCi5yZWxheS5jb20udHcKLnJlbGVhc2VpbnRlcm5hdGlv +bmFsLm9yZwp8fHJlbGlnaW9ubmV3cy5jb20KcmVubWluYmFvLmNvbQp8fHJlbm1p +bmJhby5jb20KLnJlbnl1cmVucXVhbi5vcmcKfHxyZW55dXJlbnF1YW4ub3JnCnxo +dHRwOi8vY2VydGlmaWNhdGUucmV2b2NhdGlvbmNoZWNrLmNvbQp8fHJlc2lsaW8u +Y29tCi5yZXV0ZXJzLmNvbQp8fHJldXRlcnMuY29tCnx8cmV1dGVyc21lZGlhLm5l +dAoucmV2bGVmdC5jb20KfHxyZXNpc3RjaGluYS5vcmcKcmV0d2VldGlzdC5jb20K +fHxyZXR3ZWV0cmFuay5jb20KIS0tY29ubmVjdGVkY2hpbmEucmV1dGVycy5jb20K +IS0tfGh0dHA6Ly93d3cucmV1dGVycy5jb20vbmV3cy92aWRlbwpyZXZ2ZXIuY29t +Ci5yZmEub3JnCnx8cmZhLm9yZwoucmZhY2hpbmEuY29tCi5yZmFtb2JpbGUub3Jn +CnJmYXdlYi5vcmcKfHxyZmVybC5vcmcKLnJmaS5mcgp8fHJmaS5mcgp8fHJmaS5t +eQohLS0ucmhjbG91ZC5jb20KIS0tRWRnZWNhc3QKLnJpZ3BhLm9yZwoucmlsZXln +dWlkZS5jb20KfHxyaWt1Lm1lCi5yaXRvdWtpLmpwCnx8cml0dGVyLnZnCi5ybHds +dy5jb20KfHxybHdsdy5jb20KfHxybWJsLndzCi5ybWpkdy5jb20KLnJvYWRzaG93 +LmhrCi5yb2JvZm9yZXguY29tCnx8cm9idXN0bmVzc2lza2V5LmNvbQohLS18fHJv +Yy10YWl3YW4ub3JnCnx8cm9ja2V0LmNoYXQKfHxyb2NrZXQtaW5jLm5ldAp8aHR0 +cDovL3d3dzIucm9ja2V0YmJzLmNvbS8xMS9iYnMuY2dpP2lkPTVtdXMKfGh0dHA6 +Ly93d3cyLnJvY2tldGJicy5jb20vMTEvYmJzLmNnaT9pZD1mcmVlbWdsCiEtLXx8 +cm9jbXAub3JnCnx8cm9qby5jb20KfHxyb25qb25lc3dyaXRlci5jb20KfHxyb2xm +b3VuZGF0aW9uLm9yZwp8fHJvbGlhLm5ldAp8fHJvbHNvY2lldHkub3JnCi5yb29k +by5jb20KLnJvc2VjaGluYS5uZXQKfHxyb3UudmlkZW8KLnJzZi5vcmcKfHxyc2Yu +b3JnCi5yc2YtY2hpbmVzZS5vcmcKfHxyc2YtY2hpbmVzZS5vcmcKfHxyc3NodWIu +YXBwCnx8cGhvc3BoYXRpb24xMy5yc3NpbmcuY29tCi5yc3NtZW1lLmNvbQp8fHJz +c21lbWUuY29tCnx8cnRhbGFiZWwub3JnCi5ydGhrLmhrCnx8cnRoay5oawoucnRo +ay5vcmcuaGsKfHxydGhrLm9yZy5oawoucnRpLm9yZy50dwp8fHJ0aS5vcmcudHcK +fHxydGkudHcKLnJ1YW55aWZlbmcuY29tL2Jsb2cqc29tZV93YXlzX3RvX2JyZWFr +X3RoZV9ncmVhdF9maXJld2FsbApydWtvci5vcmcKfHxydWxlMzQueHh4Cnx8cnVt +YmxlLmNvbQoucnVuYnR4LmNvbQoucnVzaGJlZS5jb20KfHxydXN2cG4uY29tCi5y +dXRlbi5jb20udHcKfHxydXRlbi5jb20udHcKfHxydXRyYWNrZXIubmV0Cnx8cnV0 +cmFja2VyLm9yZwpydXR1YmUucnUKLnJ4aGoubmV0CnxodHRwOi8vcnhoai5uZXQK +CiEtLS0tLS0tLS0tLS0tLS0tLS0tLVNTLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t +LQp8fHNpbmEuY29tLmhrCnx8c3dhcHNwYWNlLmNvCnx8c3RvcnJ5LnR2Cnx8c3Rh +bmRhcmQuY28udWsKfHxzYWdlcm5ldC5vcmcKfHxzaW1wbGV4LmNoYXQKfHxzb3Vu +ZG9uLmZtCnx8c3NydG9vbC5jb20KfHxzc3JzaGFyZS51cwp8fHNlY3VyZS5zaGFk +b3dzb2Nrcy5udQp8fHN5bmFwc2Uub3JnCnx8c291dGgtcGx1cy5uZXQKfHxzaWx2 +ZXJnYXRlYmFuay5jb20KfHxzaGFyZS12aWRlb3Muc2UKfHxzc3JzaGFyZS51cwp8 +fGNkbi5zdGF0aWNhbGx5LmlvCnx8c2xpZGVzLmNvbQp8fHN1bm8uY29tCnx8c3lk +bmV5LmJpbmcuY29tCnx8c2VodWF0YW5nLm9yZwp8fHNpbmdsZWxvZ2luLnNlCnx8 +c3Vuby5haQp8fHN5b3NldHUuY29tCi5zMXMxczEuY29tCnx8cy1jdXRlLmNvbQou +cy1kcmFnb24ub3JnCnxodHRwOi8vd3d3LnM0bWluaWFyY2hpdmUuY29tCmNkbjEu +bHAuc2Fib29tLmNvbQp8fHNhY2tzLmNvbQpzYWNvbS5oawp8fHNhY29tLmhrCnx8 +c2FkcGFuZGEudXMKfHxzYWZlY2hhdC5jb20KfHxzYWZlZ3VhcmRkZWZlbmRlcnMu +Y29tCi5zYWZlcnZwbi5jb20KfHxzYWZlcnZwbi5jb20KLnNhaW50eWN1bHR1cmUu +Y29tCnxodHRwOi8vc2FpbnR5Y3VsdHVyZS5jb20KfHxzYWt1cmFsaXZlLmNvbQou +c2FreWEub3JnCi5zYWx2YXRpb24ub3JnLmhrCnx8c2FsdmF0aW9uLm9yZy5oawou +c2FtYWlyLnJ1L3Byb3h5L3R5cGUtMDEKLnNhbWJob3RhLm9yZwp8fGNuLnNhbmRz +Y290YWljZW50cmFsLmNvbQp8fHNhbmtha3Vjb21wbGV4LmNvbQp8fHNhbmtlaS5j +b20KfHxzYW5taW4uY29tLnR3CnNhcGlrYWNodS5uZXQKc2F2ZW1lZGlhLmNvbQp8 +fHNhdmV0aGVzb3VuZHMuaW5mbwouc2F2ZXRpYmV0LmRlCnx8c2F2ZXRpYmV0LmRl +CnNhdmV0aWJldC5mcgpzYXZldGliZXQubmwKLnNhdmV0aWJldC5vcmcKfHxzYXZl +dGliZXQub3JnCnNhdmV0aWJldC5ydQouc2F2ZXRpYmV0c3RvcmUub3JnCnx8c2F2 +ZXRpYmV0c3RvcmUub3JnCnx8c2F2ZXVpZ2h1ci5vcmcKc2F2ZXZpZC5jb20KLnNi +bWUubWUKfGh0dHA6Ly9zYm1lLm1lCi5zYnMuY29tLmF1L3lvdXJsYW5ndWFnZQou +c2Nhc2luby5jb20KfGh0dHA6Ly93d3cuc2NpZW5jZW1hZy5vcmcvY29udGVudC8z +NDQvNjE4Ny85NTMKLnNjaWVuY2VuZXRzLmNvbQouc2NtcC5jb20KfHxzY21wLmNv +bQouc2NtcGNoaW5lc2UuY29tCnx8c2NyYW1ibGUuaW8KfHxzY3JpYmQuY29tCnx8 +c2NyaXB0c3BvdC5jb20KfHxzZWFyY2guY29tCi5zZWFyY2h0cnV0aC5jb20KfHxz +ZWFyeC5tZQp8fHNlYXR0bGVmZGMuY29tCi5zZWNyZXRjaGluYS5jb20KfHxzZWNy +ZXRjaGluYS5jb20KfHxzZWNyZXRnYXJkZW4ubm8KLnNlY3JldHNsaW5lLmJpegp8 +fHNlY3JldHNsaW5lLmJpegp8fHNlY3VyZXNlcnZlcmNkbi5uZXQKfHxzZWN1cmV0 +dW5uZWwuY29tCnNlY3VyaXR5aW5hYm94Lm9yZwp8aHR0cHM6Ly9zZWN1cml0eWlu +YWJveC5vcmcKLnNlY3VyaXR5a2lzcy5jb20KfHxzZWN1cml0eWtpc3MuY29tCnx8 +c2VlZDQubWUKfHxuZXdzLnNlZWh1YS5jb20Kc2Vlc21pYy5jb20KfHxzZWV2cG4u +Y29tCnx8c2Vlem9uZS5uZXQKfHxzZWh1YXRhbmcubmV0CnNlamllLmNvbQouc2Vu +ZHNwYWNlLmNvbQp8fHNlbnNvcnRvd2VyLmNvbQpzZXNhd2UubmV0Cnx8c2VzYXdl +Lm5ldAp8fHNldGh3a2xlaW4ubmV0Cnx8c2V0bi5jb20KLnNldHR2LmNvbS50dwou +c2V2ZW5sb2FkLmNvbQp8fHNldmVubG9hZC5jb20KLnNleC5jb20KfHxzZXguY29t +Cnx8c2V4My5jb20KfHxzZXg4LmNjCi5zZXhhbmRzdWJtaXNzaW9uLmNvbQouc2V4 +Ym90LmNvbQouc2V4aHUuY29tCnNleGluc2V4Lm5ldAp8fHNleGluc2V4Lm5ldAou +c2V4dHZ4LmNvbQoKIS0tSVAgb2YgU2V4SW5TZXgKNjcuMjIwLjkxLjE1CjY3LjIy +MC45MS4xOAo2Ny4yMjAuOTEuMjMKCnxodHRwOi8vKi5zZi5uZXQKLnNmaWxleWR5 +LmNvbQp8fHNmc2hpYmFvLmNvbQouc2Z0aW5kaWEub3JnCi5zZnR1ay5vcmcKfHxz +ZnR1ay5vcmcKfHxzaGFkZXlvdXZwbi5jb20Kc2hhZG93Lm1hCi5zaGFkb3dza3ku +eHl6Ci5zaGFkb3dzb2Nrcy5hc2lhCnx8d3d3LnNoYWRvd3NvY2tzLmNvbQouc2hh +ZG93c29ja3MuY29tCnx8c2hhZG93c29ja3MuY29tLmhrCi5zaGFkb3dzb2Nrcy5v +cmcKfHxzaGFkb3dzb2Nrcy5vcmcKfGh0dHA6Ly9jbi5zaGFmYXFuYS5jb20KfHxz +aGFoaXQuYml6Ci5zaGFtYmFsYXBvc3QuY29tCnNoYXBlc2VydmljZXMuY29tCi5z +aGFyZWJlZS5jb20KfHxzaGFyZWNvb2wub3JnCiEtLXx8c2hhcmtkb2xwaGluLmNv +bQouc2hhcnBkYWlseS5oawouc2hhcnBkYWlseS50dwouc2hhdC10aWJldC5jb20K +c2hlaWt5ZXJtYW1pLmNvbQouc2hlbGxmaXJlLmRlCnx8c2hlbGxmaXJlLmRlCnNo +ZW55dW4uY29tCnNoZW55dW5wZXJmb3JtaW5nYXJ0cy5vcmcKfHxzaGVueXVucGVy +Zm9ybWluZ2FydHMub3JnCnx8c2hlbnl1bnNob3AuY29tCnNoZW56aG91ZmlsbS5j +b20KfHxzaGVuemhvdWZpbG0uY29tCnx8c2hlbnpob3V6aGVuZ2Rhby5vcmcKLnNo +aWF0di5uZXQKLnNoaWNoZW5nLm9yZwpzaGlwY2Ftb3VmbGFnZS5jb20KLnNoaXJl +eWlzaHVuamlhbi5jb20KLnNoaXRhb3R2Lm9yZwp8fHNoaXhpYW8ub3JnCnx8c2hp +emhhby5vcmcKc2hpemhhby5vcmcKc2hrc3ByLm1vYmkvZGFicgp8fHNob2Rhbmhx +LmNvbQp8fHNob29zaHRpbWUuY29tCi5zaG9wMjAwMC5jb20udHcKfHxzaG9wZWUu +dHcKLnNob3BwaW5nLmNvbQouc2hvd2hhb3R1LmNvbQouc2hvd3RpbWUuanAKfHxz +aG93d2UudHcKLnNodXR0ZXJzdG9jay5jb20KfHxzaHV0dGVyc3RvY2suY29tCi5z +aHdjaHVyY2gub3JnCnx8c2h3Y2h1cmNoLm9yZwouc2h3Y2h1cmNoMy5jb20KfGh0 +dHA6Ly9zaHdjaHVyY2gzLmNvbQouc2lkZGhhcnRoYXNpbnRlbnQub3JnCnx8c2lk +ZWxpbmVzbmV3cy5jb20KLnNpZGVsaW5lc3Nwb3J0c2VhdGVyeS5jb20KfHxzaWdu +YWwub3JnCi5zaWppaHVpc3VvLmNsdWIKLnNpamlodWlzdW8uY29tCi5zaWxrYm9v +ay5jb20KfHxzaW1ib2xvc3R3aXR0ZXIuY29tCnNpbXBsZWNkLm9yZwp8fHNpbXBs +ZWNkLm9yZwp8fHNpbXBsZWNkLm1lCnNpbXBsZXByb2R1Y3Rpdml0eWJsb2cuY29t +CmJicy5zaW5hLmNvbS8KYmJzLnNpbmEuY29tJTJGCmRhaWx5bmV3cy5zaW5hLmNv +bS8KZGFpbHluZXdzLnNpbmEuY29tJTJGCmhvbWUuc2luYS5jb20KbmV3cy5zaW5h +LmNvbS5oawpuZXdzLnNpbmNoZXcuY29tLm15Ci5zaW5jaGV3LmNvbS5teS9ub2Rl +Lwouc2luY2hldy5jb20ubXkvdGF4b25vbXkvdGVybQouc2luZ2Fwb3JlcG9vbHMu +Y29tLnNnCnx8c2luZ2Fwb3JlcG9vbHMuY29tLnNnCi5zaW5nZm9ydGliZXQuY29t +Ci5zaW5ncGFvLmNvbS5oawpzaW5ndGFvLmNvbQp8fHNpbmd0YW8uY29tCm5ld3Mu +c2luZ3Rhby5jYQouc2luZ3Rhb3VzYS5jb20KfHxzaW5ndGFvdXNhLmNvbQohLS18 +fGNkcC5zaW5pY2EuZWR1LnR3CnNpbm8tbW9udGhseS5jb20KfHxzaW5vY2EuY29t +Cnx8c2lub2Nhc3QuY29tCnNpbm9jaXNtLmNvbQpzaW5vbW9udHJlYWwuY2EKLnNp +bm9hbnRzLmNvbQp8fHNpbm9hbnRzLmNvbQp8fHNpbm9pbnNpZGVyLmNvbQouc2lu +b3F1ZWJlYy5jb20KLnNpZXJyYWZyaWVuZHNvZnRpYmV0Lm9yZwpzaXMueHh4Cnx8 +c2lzMDAxLmNvbQpzaXMwMDEudXMKLnNpdGUydW5ibG9jay5jb20KLnNpdGVicm8u +dHcKfHxzaXRla3JlYXRvci5jb20KfHxzaXRlbWFwcy5vcmcKfHxza2V0Y2hhcHBz +b3VyY2VzLmNvbQp8fHNraW10dWJlLmNvbQp8fGxhYi5za2subW9lCnx8c2t5YmV0 +LmNvbQp8aHR0cDovL3VzZXJzLnNreW5ldC5iZS9yZXZlcy90aWJldGhvbWUuaHRt +bAouc2t5a2luZy5jb20udHcKYmJzLnNreWtpd2kuY29tCnxodHRwOi8vd3d3LnNr +eXBlLmNvbS9pbnRsLwp8aHR0cDovL3d3dy5za3lwZS5jb20vemgtSGFudAp8fHNr +eXZlZ2FzLmNvbQoueHNreXdhbGtlci5jb20KfHx4c2t5d2Fsa2VyLmNvbQp8fHNr +eXh2cG4uY29tCi5zbGF5dGl6bGUuY29tCi5zbGVhenlkcmVhbS5jb20KfHxzbGVh +enlmb3JrLm9yZwp8fHNsaGVuZy5jb20KfHxzbGlkZXNoYXJlLm5ldApmb3J1bS5z +bGltZS5jb20udHcKLnNsaW5rc2V0LmNvbQp8fHNsaWNrdnBuLmNvbQouc2x1dGxv +YWQuY29tCnx8c21hcnRkbnNwcm94eS5jb20KLnNtYXJ0aGlkZS5jb20KfHxhcHAu +c21hcnRtYWlsY2xvdWQuY29tCnNtY2hib29rcy5jb20KfHxzbWguY29tLmF1CnNt +aHJpYy5vcmcKLnNtaXRoLmVkdS9kYWxhaWxhbWEKfHxzbW4ubmV3cwouc215eHku +b3JnCiEtLVRPRE8tbm8taG9tZXBhZ2UKfHxzbmRjZG4uY29tCnNuZWFrbWUubmV0 +CnNub3dsaW9ucHViLmNvbQp8fHNvY2lhbGJsYWRlLmNvbQouc29ja3MtcHJveHku +bmV0Cnx8c29ja3MtcHJveHkubmV0Ci5zb2Nrc2NhcDY0LmNvbQp8fHNvY2tzbGlz +dC5uZXQKLnNvY3JlYy5vcmcKfGh0dHA6Ly9zb2NyZWMub3JnCi5zb2QuY28uanAK +LnNvZnRldGhlci5vcmcKfHxzb2Z0ZXRoZXIub3JnCi5zb2Z0ZXRoZXItZG93bmxv +YWQuY29tCnx8c29mdGV0aGVyLWRvd25sb2FkLmNvbQp8fGNkbi5zb2Z0bGF5ZXIu +bmV0Cnx8c29nY2x1Yi5jb20Kc29oY3JhZGlvLmNvbQp8fHNvaGNyYWRpby5jb20K +LnNva21pbC5jb20KfHxzb3J0aW5nLWFsZ29yaXRobXMuY29tCnx8c291cC5pbwpA +QHx8c3RhdGljLnNvdXAuaW8KLnNvYmVlcy5jb20KfHxzb2JlZXMuY29tCi5zb2Z0 +ZXRoZXIuY28uanAKfHxzb2Z0d2FyZWJ5Y2h1Y2suY29tCmJsb2cuc29nb28ub3Jn +CnNvaC50dwp8fHNvaC50dwpzb2hmcmFuY2Uub3JnCnx8c29oZnJhbmNlLm9yZwpj +aGluZXNlLnNvaWZpbmQuY29tCnNva2Ftb25saW5lLmNvbQp8fHNvbGFuYS5jb20K +LnNvbGlkYXJpdGV0aWJldC5vcmcKLnNvbGlkZmlsZXMuY29tCnx8c29tZWUuY29t +Ci5zb25namlhbmp1bi5jb20KfHxzb25namlhbmp1bi5jb20KLnNvbmlkb2RlbGFl +c3BlcmFuemEub3JnCi5zb3BjYXN0LmNvbQouc29wY2FzdC5vcmcKfHxuYWtlZHNl +Y3VyaXR5LnNvcGhvcy5jb20KfHxzb3Mub3JnCnx8c29zYWQuZnVuCmJicy5zb3Ut +dG9uZy5vcmcKLnNvdWJvcnkuY29tCnxodHRwOi8vc291Ym9yeS5jb20KLnNvdWwt +cGx1cy5uZXQKLnNvdWxjYWxpYnVyaGVudGFpLm5ldAp8fHNvdWxjYWxpYnVyaGVu +dGFpLm5ldAp8fHNvdW5kY2xvdWQuY29tCiEtLXxodHRwczovL3NvdW5kY2xvdWQu +Y29tL3B1bmtnb2QKLnNvdW5kb2Zob3BlLmtyCnNvdW5kb2Zob3BlLm9yZwp8fHNv +dW5kb2Zob3BlLm9yZwohLS0uc291cmNlZm9yZ2UubmV0CiEtfGh0dHA6Ly9zb3Vy +Y2Vmb3JnZS5uZXQKfGh0dHA6Ly9zb3VyY2Vmb3JnZS5uZXQvcCovc2hhZG93c29j +a3NndWkvCi5zb3VyY2V3YWRpby5jb20KfHxzb3V0aC1wbHVzLm9yZwp8fHNvdXRo +bW9uZ29saWEub3JnCnx8c291dGhuZXdzLmNvbS50dwp8fHNvd2Vycy5vcmcuaGsK +fHxzcGFua2JhbmcuY29tCi5zcGFua2luZ3R1YmUuY29tCi5zcGFua3dpcmUuY29t +Cnx8c3BhdGlhbC5pbwp8fHNwYi5jb20KfHxzcGVha2VyZGVjay5jb20KfHxzcGVl +ZGNhdC5tZQp8fHNwZWVkaWZ5LmNvbQp8fHNwZW5jZXJ0aXBwaW5nLmNvbQp8fHNw +ZW5kZWUuY29tCnx8c3BpY2V2cG4uY29tCi5zcGlkZXJvYWsuY29tCnx8c3BpZGVy +b2FrLmNvbQouc3Bpa2UuY29tCi5zcG90Zmx1eC5jb20KfHxzcG90Zmx1eC5jb20K +fHxzcHJlYWtlci5jb20KLnNwcmluZzR1LmluZm8KfHxzcHJpbmc0dS5pbmZvCnx8 +c3ByaW5nd29vZC5tZQp8fHNwcm91dGNvcmUuY29tCnx8c3F1aXJyZWx2cG4uY29t +Ci5zcy1saW5rLmNvbQp8fHNzLWxpbmsuY29tCi5zc2dsb2JhbC5jby93cAp8aHR0 +cDovL3NzZ2xvYmFsLmNvCi5zc2dsb2JhbC5tZQouc3Nyc2hhcmUuY29tCnx8c3Ny +c2hhcmUuY29tCiEtLXxodHRwOi8vY2RuLnNzdGF0aWMubmV0Lwp8fHNzdG0ubW9l +Cnx8c3N0bWx0Lm1vZQpzc3RtbHQubmV0Cnx8c3N0bWx0Lm5ldAp8aHR0cDovL3N0 +YWNrb3ZlcmZsb3cuY29tL3VzZXJzLzg5NTI0NQp8fHN0YW5kdXBmb3J0aWJldC5v +cmcKfHxzdGFuZHdpdGhoay5vcmcKc3RhbmZvcmQuZWR1L2dyb3VwL2ZhbHVuCi5z +dGFyZmlzaGZ4LmNvbQouc3RhcnAycC5jb20KfHxzdGFycDJwLmNvbQouc3RhcnRw +YWdlLmNvbQp8fHN0YXJ0cGFnZS5jb20KLnN0YXJ0dXBsaXZpbmdjaGluYS5jb20K +fGh0dHA6Ly9zdGFydHVwbGl2aW5nY2hpbmEuY29tCnx8c3RhdGljLWVjb25vbWlz +dC5jb20KfHxzdGJveS5uZXQKfHxzdGMuY29tLnNhCnx8c3RlZWwtc3Rvcm0uY29t +Ci5zdGVnYW5vcy5jb20KfHxzdGVnYW5vcy5jb20KLnN0ZWdhbm9zLm5ldAouc3Rl +cGNoaW5hLmNvbQohLS18fHN0ZXBtYW5pYS5jb20KaGQuc3RoZWFkbGluZS5jb20v +bmV3cy9yZWFsdGltZQpzdGhvby5jb20KfHxzdGhvby5jb20KLnN0aWNrYW0uY29t +CnN0aWNrZXJhY3Rpb24uY29tL3Nlc2F3ZQouc3RpbGVwcm9qZWN0LmNvbQp8fHN0 +aXRjaGVyLmNvbQouc3RvLmNjCi5zdG9wb3JnYW5oYXJ2ZXN0aW5nLm9yZwp8fHN0 +b3JhZ2VuZXdzbGV0dGVyLmNvbQouc3Rvcm0ubWcKfHxzdG9ybS5tZwouc3RvcHRp +YmV0Y3Jpc2lzLm5ldAp8fHN0b3B0aWJldGNyaXNpcy5uZXQKfHxzdG9yai5pbwou +c3Rvcm1tZWRpYWdyb3VwLmNvbQp8fHN0b3dlYm95ZC5jb20KfHxzdHJhaXRzdGlt +ZXMuY29tCnN0cmFuYWJnLmNvbQp8fHN0cmFwbGVzc2RpbGRvLmNvbQp8fHN0cmVh +bWFibGUuY29tCnx8c3RyZWFtYXRlLmNvbQp8fHN0cmVhbWluZ3RoZS5uZXQKc3Ry +ZWVtYS5jb20vdHYvTlREVFZfQ2hpbmVzZQpjbi5zdHJlZXR2b2ljZS5jb20vYXJ0 +aWNsZQpjbi5zdHJlZXR2b2ljZS5jb20vZGlhcnkKdHcuc3RyZWV0dm9pY2UuY29t +Ci5zdHJpa2luZ2x5LmNvbQp8fHN0cm9uZ3Zwbi5jb20KLnN0cm9uZ3dpbmRwcmVz +cy5jb20KfHxzdHVkZW50c2ZvcmFmcmVldGliZXQub3JnCnx8c3R1bWJsZXVwb24u +Y29tCnN0dXBpZHZpZGVvcy5jb20KfHxzdWJzdGFjay5jb20KfHxzdWJoZC50dgou +c3VjY2Vzc2ZuLmNvbQpwYW5hbWFwYXBlcnMuc3VlZGRldXRzY2hlLmRlCi5zdWdh +cnN5bmMuY29tCnx8c3VnYXJzeW5jLmNvbQouc3Vnb2Jicy5jb20KfHxzdWd1bWly +dTE4LmNvbQp8fHN1aXNzbC5jb20Kc3VtbWlmeS5jb20KLnN1bXJhbmRvLmNvbQp8 +fHN1bXJhbmRvLmNvbQpzdW4xOTExLmNvbQp8fHN1bmRheWd1YXJkaWFubGl2ZS5j +b20KLnN1bnBvcm5vLmNvbQp8fHN1bm1lZGlhLmNhCnx8c3VucG9ybm8uY29tCi5z +dW5za3lmb3J1bS5jb20KLnN1bnRhLmNvbS50dwouc3VudnBuLm5ldAouc3VwZXJm +cmVldnBuLmNvbQouc3VwZXJ2cG4ubmV0Cnx8c3VwZXJ2cG4ubmV0Ci5zdXBlcnpv +b2kuY29tCnxodHRwOi8vc3VwZXJ6b29pLmNvbQouc3VwcGlnLm5ldAouc3VwcmVt +ZW1hc3RlcnR2LmNvbQp8aHR0cDovL3N1cHJlbWVtYXN0ZXJ0di5jb20KLnN1cmZl +YXN5LmNvbQp8fHN1cmZlYXN5LmNvbQouc3VyZmVhc3kuY29tLmF1CnxodHRwOi8v +c3VyZmVhc3kuY29tLmF1Cnx8c3VyZnNoYXJrLmNvbQp8fHN1cnJlbmRlcmF0MjAu +bmV0Ci5zdnNmeC5jb20KLnN3aXNzaW5mby5jaAp8fHN3aXNzaW5mby5jaAouc3dp +c3N2cG4ubmV0Cnx8c3dpc3N2cG4ubmV0CnN3aXRjaHZwbi5uZXQKfHxzd2l0Y2h2 +cG4ubmV0Ci5zeWRuZXl0b2RheS5jb20KfHxzeWRuZXl0b2RheS5jb20KLnN5bGZv +dW5kYXRpb24ub3JnCnx8c3lsZm91bmRhdGlvbi5vcmcKfHxzeW5jYmFjay5jb20K +c3lzcmVzY2NkLm9yZwouc3l0ZXMubmV0CmJsb2cuc3l4ODYuY29tLzIwMDkvMDkv +cHVmZgouc3piYnMubmV0Ci5zemV0b3dhaC5vcmcuaGsKCiEtLS0tLS0tLS0tLS0t +LS0tLS0tLVRULS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQp8fHRhbGthdG9uZS5j +b20KfHx0YW5rcy5nZwp8fHRoZWhhbnNpbmRpYS5jb20KfHxydG0udG50LWVhLmNv +bQp8fHRlbGxhcGFydC5jb20KfHx0aHJlYWRzLmNvbQp8fHRnLW1lLmNvbQp8fHR3 +a2FuLmNvbQp8fHR1bmVpbi5zdHJlYW1ndXlzMS5jb20KfHx0b3UudHYKfHx0aW55 +dXJsLmNvbQp8fHRleHRub3cuY29tCnx8dGV4dG5vdy5tZQp8fHRva2VuLmltCnx8 +dG9rZW5sb24uaW0KfHx0YXJkaWdyYWRlLmlvCnx8dG9ycmVudGdhbGF4eS50bwp8 +fHRvbXAzLmNjCnx8dHVrYWFuaS5vcmcKfHx0aGV0YXRva2VuLm9yZwp8fHR5cGVz +ZXQuaW8KfHx0aGVjaGFzZXJuZXdzLmNvLnVrCnx8aG9sZS50aHUubW9uc3Rlcgp8 +fHRodWhvbGUuY29tCnx8dC1nLmNvbQoudDM1LmNvbQoudDY2eS5jb20KfHx0NjZ5 +LmNvbQp8fGVzZy50OTF5LmNvbQoudGFhLXVzYS5vcmcKfGh0dHA6Ly90YWEtdXNh +Lm9yZwoudGFhemUudHcKfHx0YWF6ZS50dwp8aHR0cDovL3d3dy50YWJsZXNnZW5l +cmF0b3IuY29tLwp0YWJ0dGVyLmpwCi50YWNvbmV0LmNvbS50dwp8fHRhZWRwLm9y +Zy50dwoudGFmbS5vcmcKdGFnd2Fsay5jb20KfHx0YWd3YWxrLmNvbQp0YWhyLm9y +Zy50dwoudGFpcGVpc29jaWV0eS5vcmcKfHx0YWlwZWlzb2NpZXR5Lm9yZwp8fHRh +aXBlaXRpbWVzLmNvbQp8fHRhaXNvdW5kcy5jb20KLnRhaXdhbmJpYmxlLmNvbQou +dGFpd2FuZGFpbHkubmV0Cnx8dGFpd2FuZGFpbHkubmV0Ci50YWl3YW5kYy5vcmcK +IS0tfHx0YWl3YW5lbWJhc3N5Lm9yZwp8fHRhaXdhbmhvdC5uZXQKLnRhaXdhbmp1 +c3RpY2UuY29tCnRhaXdhbmtpc3MuY29tCnRhaXdhbm5hdGlvbi5jb20KdGFpd2Fu +bmF0aW9uLmNvbS50dwp8fHRhaXdhbm5jZi5vcmcudHcKfHx0YWl3YW5uZXdzLmNv +bS50dwp8aHR0cDovL3d3dy50YWl3YW5vbmxpbmUuY2MvCiEtLXx8dGFpd2FudG9k +YXkudHcKdGFpd2FudHAubmV0Cnx8dGFpd2FudHQub3JnLnR3CnRhaXdhbnVzLm5l +dAoudGFsazg1My5jb20KLnRhbGtib3hhcHAuY29tCnx8dGFsa2JveGFwcC5jb20K +LnRhbGtjYy5jb20KfHx0YWxrY2MuY29tCi50YWxrb25seS5uZXQKfHx0YWxrb25s +eS5uZXQKfHx0YW5jLm9yZwoudGFuZ3Jlbi51cwoudGFvaXNtLm5ldAp8aHR0cDov +L3Rhb2lzbS5uZXQKLnRhcGF0YWxrLmNvbQp8fHRhcGF0YWxrLmNvbQpibG9nLnRh +cmFnYW5hLmNvbQp8fHRhdXAubmV0Ci50YXdlZXQuY29tCnx8dGF3ZWV0LmNvbQou +dGJjb2xsZWdlLm9yZwp8fHRiY29sbGVnZS5vcmcKLnRiaS5vcmcuaGsKLnRianl0 +Lm9yZwoudGJyYy5vcmcKdGJzLXJhaW5ib3cub3JnCi50YnNlYy5vcmcKfHx0YnNl +Yy5vcmcKdGJza2tpbmFiYWx1LnBhZ2UudGwKLnRic24ub3JnCnx8dGJzbi5vcmcK +LnRic3NlYXR0bGUub3JnCi50YnNzcWgub3JnCnxodHRwOi8vdGJzc3FoLm9yZwp0 +YnN3ZC5vcmcKLnRidGVtcGxlLm9yZy51awoudGJ0aG91c3Rvbi5vcmcKLnRjY3dv +bmxpbmUub3JnCi50Y2V3Zi5vcmcKdGNocmQub3JnCnRjbnluai5vcmcKfHx0Y3Bz +cGVlZC5jbwoudGNzb2ZiYy5vcmcKLnRkbS5jb20ubW8KdGVhbWFtZXJpY2FueS5j +b20KfHx0ZWNoc3BvdC5jb20KIS0tT1ZICnx8dGVjaHZpei5uZXQKfHx0ZWNrLmlu +Ci50ZWVuaWVmdWNrLm5ldAp0ZWVuc2luYXNpYS5jb20KfHx0ZWhyYW50aW1lcy5j +b20KLnRlbGVjb21zcGFjZS5jb20KfHx0ZWxlZ3JhcGguY28udWsKLnRlbmFjeS5j +b20KfHx0ZW5vci5jb20KfHx0ZW56aW5wYWxtby5jb20KLnRldy5vcmcKfHx0ZXcu +b3JnCnx8dGZjLXRhaXdhbi5vcmcudHcKfHx0ZmlmbHZlLmNvbQoudGhhaWNuLmNv +bQp8fHRoZWF0bGFudGljLmNvbQp8fHRoZWF0cnVtLWJlbGxpLmNvbQp8fGNuLnRo +ZWF1c3RyYWxpYW4uY29tLmF1CnRoZWJsZW1pc2guY29tCnx8dGhlYmNvbXBsZXgu +Y29tCnx8dGhlYmxhemUuY29tCi50aGVib2JzLmNvbQp8fHRoZWJvYnMuY29tCi50 +aGVjaGluYWJlYXQub3JnCnx8dGhlY2hpbmFjb2xsZWN0aW9uLm9yZwp8aHR0cDov +L3d3dy50aGVjaGluYXN0b3J5Lm9yZy95ZWFyYm9va3MveWVhcmJvb2stMjAxMi8K +fHx0aGVjb252ZXJzYXRpb24uY29tCi50aGVkYWxhaWxhbWFtb3ZpZS5jb20KfGh0 +dHA6Ly90aGVkYWxhaWxhbWFtb3ZpZS5jb20KfHx0aGVkaXBsb21hdC5jb20KfHx0 +aGVkdy51cwp8fHRoZWVwb2NodGltZXMuY29tCiEtLXx8dGhlZnJlZWxhbmQuY2x1 +Ygp8fHRoZWd1YXJkaWFuLmNvbQp8fHRoZWdheS5jb20KfGh0dHA6Ly90aGVnaW9p +dGluaG9jLnZuLwoudGhlZ2x5LmNvbQp8fHRoZWhpbmR1LmNvbQp8fHRoZWh1bi5u +ZXQKLnRoZWluaXRpdW0uY29tCnx8dGhlaW5pdGl1bS5jb20KLnRoZW5ld3NsZW5z +LmNvbQp8fHRoZW5ld3NsZW5zLmNvbQoudGhlcGlyYXRlYmF5Lm9yZwp8fHRoZXBp +cmF0ZWJheS5vcmcKIS0tfHx0aGVwaXJhdGViYXkuc2UKLnRoZXBvcm5kdWRlLmNv +bQp8fHRoZXBvcm5kdWRlLmNvbQp8fHRoZXBvcnRhbHdpa2kuY29tCnx8dGhlcHJp +bnQuaW4KfHx0aHJlYWRyZWFkZXJhcHAuY29tCnRoZXJvY2submV0Lm56Cnx8dGhl +c2F0dXJkYXlwYXBlci5jb20uYXUKfHx0aGVzdGFuZG5ld3MuY29tCnRoZXRpYmV0 +Y2VudGVyLm9yZwp0aGV0aWJldGNvbm5lY3Rpb24ub3JnCi50aGV0aWJldG11c2V1 +bS5vcmcKLnRoZXRpYmV0cG9zdC5jb20KfHx0aGV0aWJldHBvc3QuY29tCnRoZXRy +b3Rza3ltb3ZpZS5jb20KfHx0aGV0dmRiLmNvbQp8fHRoZXdnby5vcmcKfHx0aGV3 +aXJlY2hpbmEuY29tCi50aGV5bmMuY29tCnxodHRwOi8vdGhleW5jLmNvbQoudGhp +bmtpbmd0YWl3YW4uY29tCnx8dGhpbmtpbmd0YWl3YW4uY29tCnx8dGhpcmRtaWxs +Lm9yZwp8fHRoaXNhdi5jb20KLnRobGliLm9yZwp8fHRob21hc2Jlcm5oYXJkLm9y +ZwoudGhvbmdkcmVhbXMuY29tCnx8dGhyb3VnaG5pZ2h0c2ZpcmUuY29tCi50aHVt +YnppbGxhLmNvbQp8fHRoeXdvcmRzLmNvbQp0aWFuYW5tZW5tb3RoZXIub3JnCi50 +aWFuYW5tZW5kdWl6aGkuY29tCnx8dGlhbmFubWVuZHVpemhpLmNvbQp8fHRpYW5h +bm1lbnVuaXYuY29tCnx8dGlhbmFubWVudW5pdi5uZXQKfHx0aWFuZGl4aW5nLm9y +ZwoudGlhbmh1YXl1YW4uY29tCi50aWFubGF3b2ZmaWNlLmNvbQp8fHRpYW50aS5p +bwp0aWFudGlib29rcy5vcmcKfHx0aWFudGlib29rcy5vcmcKdGlhbnlhbnRvbmcu +b3JnLmNuCi50aWFuemh1Lm9yZwoudGliZXQuYXQKdGliZXQuY2EKLnRpYmV0LmNv +bQp8fHRpYmV0LmNvbQp0aWJldC5mcgoudGliZXQubmV0Cnx8dGliZXQubmV0Cnx8 +dGliZXQubnUKLnRpYmV0Lm9yZwp8fHRpYmV0Lm9yZwp8fHRpYmV0Lm9yZy50dwp8 +fHRpYmV0LnRvCi50aWJldC1lbnZveS5ldQp8fHRpYmV0LWVudm95LmV1Ci50aWJl +dC1mb3VuZGF0aW9uLm9yZwoudGliZXQtaG91c2UtdHJ1c3QuY28udWsKfHx0aWJl +dC1pbml0aWF0aXZlLmRlCi50aWJldC1tdW5pY2guZGUKLnRpYmV0M3JkcG9sZS5v +cmcKfGh0dHA6Ly90aWJldDNyZHBvbGUub3JnCnRpYmV0YWN0aW9uLm5ldAp8fHRp +YmV0YWN0aW9uLm5ldAoudGliZXRhaWQub3JnCnRpYmV0YWxrLmNvbQoudGliZXRh +bi5mcgp0aWJldGFuLWFsbGlhbmNlLm9yZwoudGliZXRhbmFydHMub3JnCi50aWJl +dGFuYnVkZGhpc3RpbnN0aXR1dGUub3JnCnx8dGliZXRhbmJ1ZGRoaXN0aW5zdGl0 +dXRlLm9yZwp8fHRpYmV0YW5jb21tdW5pdHkub3JnCnx8dGliZXRhbmVudHJlcHJl +bmV1cnMub3JnCnx8dGliZXRhbmhlYWx0aC5vcmcKLnRpYmV0YW5qb3VybmFsLmNv +bQoudGliZXRhbmxhbmd1YWdlLm9yZwoudGliZXRhbmxpYmVyYXRpb24ub3JnCnx8 +dGliZXRhbmxpYmVyYXRpb24ub3JnCi50aWJldGNvbGxlY3Rpb24uY29tCi50aWJl +dGFuYWlkcHJvamVjdC5vcmcKLnRpYmV0YW5jb21tdW5pdHl1ay5uZXQKfGh0dHA6 +Ly90aWJldGFuY29tbXVuaXR5dWsubmV0CnRpYmV0YW5jdWx0dXJlLm9yZwp0aWJl +dGFuZmVtaW5pc3Rjb2xsZWN0aXZlLm9yZwoudGliZXRhbnBhaW50aW5ncy5jb20K +LnRpYmV0YW5waG90b3Byb2plY3QuY29tCi50aWJldGFucG9saXRpY2FscmV2aWV3 +Lm9yZwoudGliZXRhbnJldmlldy5uZXQKfGh0dHA6Ly90aWJldGFuc3BvcnRzLm9y +ZwoudGliZXRhbndvbWVuLm9yZwp8aHR0cDovL3RpYmV0YW53b21lbi5vcmcKLnRp +YmV0YW55b3V0aC5vcmcKLnRpYmV0YW55b3V0aGNvbmdyZXNzLm9yZwp8fHRpYmV0 +YW55b3V0aGNvbmdyZXNzLm9yZwoudGliZXRjaGFyaXR5LmRrCnRpYmV0Y2hhcml0 +eS5pbgoudGliZXRjaGlsZC5vcmcKLnRpYmV0Y2l0eS5jb20KfHx0aWJldGNvcnBz +Lm9yZwp8fHRpYmV0ZXhwcmVzcy5uZXQKfHx0aWJldGZvY3VzLmNvbQp8fHRpYmV0 +ZnVuZC5vcmcKLnRpYmV0Z2VybWFueS5jb20KfHx0aWJldGdlcm1hbnkuZGUKLnRp +YmV0aGF1cy5jb20KLnRpYmV0aGVyaXRhZ2VmdW5kLm9yZwp8fHRpYmV0aG91c2Uu +anAKfHx0aWJldGhvdXNlLm9yZwp8fHRpYmV0aG91c2UudXMKLnRpYmV0aW5mb25l +dC5uZXQKLnRpYmV0anVzdGljZS5vcmcKLnRpYmV0a29taXRlLmRrCnx8dGliZXRt +dXNldW0ub3JnCnx8dGliZXRuZXR3b3JrLm9yZwp8fHRpYmV0b2ZmaWNlLmNoCnRp +YmV0b2ZmaWNlLmV1Cnx8dGliZXRvZmZpY2Uub3JnCnx8dGliZXRvbmxpbmUuY29t +Cnx8dGliZXRvZmZpY2UuY29tLmF1Cnx8dGliZXRvbmxpbmUudHYKfHx0aWJldG9y +YWxoaXN0b3J5Lm9yZwp8fHRpYmV0cG9saWN5LmV1Cnx8dGliZXRyZWxpZWZmdW5k +LmNvLnVrCnx8dGliZXRzb2NpZXR5LmNvbQp8fHRpYmV0c3VuLmNvbQp8fHRpYmV0 +c3VwcG9ydGdyb3VwLm9yZwp8fHRpYmV0c3dpc3MuY2gKfHx0aWJldHRlbGVncmFw +aC5jb20KfHx0aWJldHRpbWVzLm5ldAp8fHRpYmV0dHJ1dGguY29tCnx8dGliZXR3 +cml0ZXMub3JnCi50aWNrZXQuY29tLnR3Ci50aWdlcnZwbi5jb20KfHx0aWdlcnZw +bi5jb20KLnRpbWRpci5jb20KfGh0dHA6Ly90aW1kaXIuY29tCi50aW1lLmNvbQp8 +aHR0cDovL3RpbWUuY29tCiEtLS50aW1lLmNvbS90aW1lL3RpbWUxMDAvbGVhZGVy +cy9wcm9maWxlL3JlYmVsCiEtLS50aW1lLmNvbS90aW1lL3NwZWNpYWxzL3BhY2th +Z2VzL2FydGljbGUvMCwyODgwNAohLS0udGltZS5jb20vdGltZS9tYWdhemluZQp8 +fHRpbWVzbm93bmV3cy5jb20KLnRpbXNhaC5jb20KfHx0aW10YWxlcy5jb20KfHxi +bG9nLnRpbmV5LmNvbQp8fHRpbmd0YWxrLm1lCi50aW55LmNjCnx8dGlueS5jYwp8 +fHRpbnljaGF0LmNvbQp8fHRpbnlwYXN0ZS5jb20KfHx0aXBhcy5uZXQKLnRpc3Rv +cnkuY29tCnx8dGtjcy1jb2xsaW5zLmNvbQoudG1hZ2F6aW5lLmNvbQp8fHRtYWdh +emluZS5jb20KfGh0dHA6Ly90bWkubWUKLnRtcHAub3JnCnxodHRwOi8vdG1wcC5v +cmcKLnRuYWZsaXguY29tCnx8dG5hZmxpeC5jb20KLnRucC5vcmcKfGh0dHA6Ly90 +bnAub3JnCi50by1wb3Juby5jb20KfHx0by1wb3Juby5jb20KfHx0b2dldHRlci5j +b20KLnRva3lvLTI0Ny5jb20KLnRva3lvLWhvdC5jb20KfHx0b2t5by1wb3JuLXR1 +YmUuY29tCnx8dG9reW9jbi5jb20KdHcudG9tb25ld3MubmV0Ci50b25naWwub3Iu +a3IKdG9ueXlhbi5uZXQKdG9vbmVsLm5ldAp0b3A4MS53cwoudG9wbmV3cy5pbgou +dG9wcG9ybnNpdGVzLmNvbQp8aHR0cDovL3RvcHBvcm5zaXRlcy5jb20KfHx0b3B0 +b29uLm5ldAoudG9yZ3VhcmQubmV0Cnx8dG9yZ3VhcmQubmV0Cnx8dG9wLnR2Ci50 +b3BzaGFyZXdhcmUuY29tCi50b3BzeS5jb20KfHx0b3BzeS5jb20KfHx0b3B0aXAu +Y2EKdG9yYS50bwoudG9yY24uY29tCnx8dG9ybG9jay5jb20KLnRvcnByb2plY3Qu +b3JnCnx8dG9ycHJvamVjdC5vcmcKfHx0b3JyZW50a2l0dHkudHYKdG9ycmVudHBy +aXZhY3kuY29tCnx8dG9ycmVudHByaXZhY3kuY29tCnxodHRwOi8vdG9ycmVudHBy +b2plY3Quc2UKfHx0b3JyZW50eS5vcmcKfHx0b3J0b2lzZXN2bi5uZXQKfHx0b3J2 +cG4uY29tCnx8dG90YWx2cG4uY29tCi50b3V0aWFvYWJjLmNvbQp0b3duZ2Fpbi5j +b20KdG95cGFyay5pbgp0b3l0cmFjdG9yc2hvdy5jb20KLnRwYXJlbnRzLm9yZwou +dHBpLm9yZy50dwp8fHRwaS5vcmcudHcKfHx0cmFkaW5ndmlldy5jb20KfHx0cmFu +c3BhcmVuY3kub3JnCnx8dHJlZW1hbGwuY29tLnR3CnRyZW5kc21hcC5jb20KfHx0 +cmVuZHNtYXAuY29tCi50cmltb25kaS5kZS9TRExFCi50cm91dy5ubAp8fHRyb3V3 +Lm5sCi50cnQubmV0LnRyCnx8dHJ0Lm5ldC50cgp0cnRjLmNvbS50dwoudHJ1ZWJ1 +ZGRoYS1tZC5vcmcKfHx0cnVlYnVkZGhhLW1kLm9yZwp0cnVseWVyZ29ub21pYy5j +b20KfHx0cnV0aHNvY2lhbC5jb20KLnRydXZlby5jb20KLnRzY3R2Lm5ldAoudHNl +bXR1bGt1LmNvbQp0c3F1YXJlLnR2Ci50c3Uub3JnLnR3CnRzdW5hZ2FydW1vbi5j +b20KIS0tfGh0dHA6Ly93d3cudHN1cnUtYmlyZC5uZXQvCnx8dHQxMDY5LmNvbQou +dHR0YW4uY29tCnx8dHR0YW4uY29tCnx8dHR2LmNvbS50dwp0dTg5NjQuY29tCi50 +dWJhaG9saWMuY29tCi50dWJlLmNvbQp0dWJlOC5jb20KfHx0dWJlOC5jb20KLnR1 +YmU5MTEuY29tCnx8dHViZTkxMS5jb20KLnR1YmVjdXAuY29tCi50dWJlZ2Fscy5j +b20KLnR1YmVpc2xhbS5jb20KfGh0dHA6Ly90dWJlaXNsYW0uY29tCi50dWJlc3Rh +Y2suY29tCnx8dHViZXdvbGYuY29tCi50dWliZWl0dS5uZXQKLnR1aWRhbmcub3Jn +Cnx8dHVpZGFuZy5vcmcKLnR1aWRhbmcuc2UKLnR1bXV0YW56aS5jb20KfGh0dHA6 +Ly90dW11dGFuemkuY29tCnx8dHVtdmlldy5jb20KLnR1bmVpbi5jb20KfGh0dHA6 +Ly90dW5laW4uY29tCnx8dHVubmVsYmVhci5jb20KfHx0dW5uZWxibGljay5uZXQK +LnR1bm5lbHIuY29tCnx8dHVubmVsci5jb20KfHx0dW5zYWZlLmNvbQp0dWl0d2l0 +LmNvbQoudHVyYW5zYW0ub3JnCi50dXJib2JpdC5uZXQKfHx0dXJib2JpdC5uZXQK +LnR1cmJvaGlkZS5jb20KfHx0dXJib2hpZGUuY29tCnx8dHVya2lzdGFudGltZXMu +Y29tCi50dXNoeWNhc2guY29tCnxodHRwOi8vdHVzaHljYXNoLmNvbQoudHV2cG4u +Y29tCnx8dHV2cG4uY29tCnxodHRwOi8vdHV6YWlqaWRpLmNvbQp8aHR0cDovLyou +dHV6YWlqaWRpLmNvbQoudHcwMS5vcmcKfGh0dHA6Ly90dzAxLm9yZwp8fHVzZS50 +eXBla2l0Lm5ldAoKIS0tLVR1bWJsci0tLQoudHVtYmxyLmNvbQp8fHR1bWJsci5j +b20KIS0tQEB8fGFzc2V0cy50dW1ibHIuY29tCiEtLUBAfHxkYXRhLnR1bWJsci5j +b20KIS0tQEB8fG1lZGlhLnR1bWJsci5jb20KIS0tQEB8fHN0YXRpYy50dW1ibHIu +Y29tCiEtLUBAfHx3d3cudHVtYmxyLmNvbQp8fGxlY2xvdWQubmV0Cnx8c2x1dG1v +b25iZWFtLmNvbQp8aHR0cDovL2Jsb2cuc295bGVudC5jb20KCi50di5jb20KfGh0 +dHA6Ly90di5jb20KdHZhbnRzLmNvbQp8fGZvcnVtLnR2Yi5jb20KfHxpbmV3cy1h +cGkudHZiLmNvbQpuZXdzLnR2YnMuY29tLnR3Ci50dmJveG5vdy5jb20KfHx0dmJv +eG5vdy5jb20KdHZpZGVyLmNvbQoudHZtb3N0LmNvbS5oawoudHZwbGF5dmlkZW9z +LmNvbQp8fHR2dW5ldHdvcmtzLmNvbQoudHctYmxvZy5jb20KfGh0dHBzOi8vdHct +YmxvZy5jb20KLnR3LW5wby5vcmcKLnR3YWl0dGVyLmNvbQp0d2FwcGVya2VlcGVy +LmNvbQp8fHR3YXBwZXJrZWVwZXIuY29tCnx8dHdhdWQuaW8KLnR3YXVkLmlvCi50 +d2F2aS5jb20KdHdiYnMub3JnCnx8dHdibG9nZ2VyLmNvbQp0d2VlcG1hZy5jb20K +LnR3ZWVwbWwub3JnCnx8dHdlZXBtbC5vcmcKLnR3ZWV0YmFja3VwLmNvbQp8fHR3 +ZWV0YmFja3VwLmNvbQp0d2VldGJvYXJkLmNvbQp8fHR3ZWV0Ym9hcmQuY29tCi50 +d2VldGNzLmNvbQp8aHR0cDovL3R3ZWV0Y3MuY29tCnxodHRwOi8vZGVjay5seQoh +LS0gT3BlcmF0aW9uIGRpc2NvbnRpbnVlZAohLS18fHR3ZWV0ZS5uZXQKIS0tbS50 +d2VldGUubmV0Cnx8dHdlZXRlZHRpbWVzLmNvbQohLS0gT3BlcmF0aW9uIGRpc2Nv +bnRpbnVlZAohLS10d2VldG1lbWUuY29tCnR3ZWV0cGhvdG8uY29tCnx8dHdlZXRw +aG90by5jb20KdHdlZXRyZWUuY29tCnx8dHdlZXRyZWUuY29tCi50d2VldHR1bm5l +bC5jb20KfHx0d2VldHR1bm5lbC5jb20KfHx0d2VldHdhbGx5LmNvbQp0d2VldHlt +YWlsLmNvbQp8fHR3ZWx2ZS50b2RheQoudHdlZXoubmV0CnxodHRwOi8vdHdlZXou +bmV0Cnx8dHdmdHAub3JnCnx8dHdncmVhdGRhaWx5LmNvbQp0d2liYXNlLmNvbQou +dHdpYmJsZS5kZQp8fHR3aWJibGUuZGUKdHdpYmJvbi5jb20KfHx0d2licy5jb20K +LnR3aWNvdW50cnkub3JnCnxodHRwOi8vdHdpY291bnRyeS5vcmcKdHdpY3N5LmNv +bQoudHdpZW5kcy5jb20KfGh0dHA6Ly90d2llbmRzLmNvbQoudHdpZmFuLmNvbQp8 +aHR0cDovL3R3aWZhbi5jb20KdHdpZmZvLmNvbQp8fHR3aWZmby5jb20KLnR3aWxp +Z2h0c2V4LmNvbQp0d2lsb2cub3JnCnR3aW1ib3cuY29tCnR3aXBwbGUuanAKfHx0 +d2lwcGxlLmpwCnx8dHdpcC5tZQp0d2lzaG9ydC5jb20KfHx0d2lzaG9ydC5jb20K +fHx0d2lzdGVyLm5ldC5jbwp0d2lzdGVybm93LmNvbQp0d2lzdG9yeS5uZXQKfHx0 +d2lnZ2l0Lm9yZwp0d2l0Z29vLmNvbQp0d2l0aXEuY29tCnx8dHdpdGlxLmNvbQou +dHdpdGxvbmdlci5jb20KfHx0d2l0bG9uZ2VyLmNvbQp8aHR0cDovL3RsLmdkLwp0 +d2l0bWFuaWEuY29tCnR3aXRvYXN0ZXIuY29tCnx8dHdpdG9hc3Rlci5jb20KfHx0 +d2l0b25tc24uY29tCiEtLVNhbWUgSVAKLnR3aXRzdGF0LmNvbQp8fHR3aXRzdGF0 +LmNvbQp8fHR3ZWVwZ3VpZGUuY29tCnxodHRwOi8vdHd0LnRsCnR3aXR0Ym90Lm5l +dAp8fGFkcy10d2l0dGVyLmNvbQp8fHR3dHRyLmNvbQp8fHR3aXR0ZXI0ai5vcmcK +LnR3aXR0ZXJjb3VudGVyLmNvbQp8fHR3aXR0ZXJjb3VudGVyLmNvbQp0d2l0dGVy +ZmVlZC5jb20KLnR3aXR0ZXJnYWRnZXQuY29tCnx8dHdpdHRlcmdhZGdldC5jb20K +LnR3aXR0ZXJrci5jb20KfHx0d2l0dGVya3IuY29tCnx8dHdpdHRlcm1haWwuY29t +Cnx8dHdpdHRlcnJpZmljLmNvbQp0d2l0dGVydGltLmVzCnx8dHdpdHRlcnRpbS5l +cwp0d2l0dGhhdC5jb20KfHx0d2l0dHVyay5jb20KLnR3aXR0dXJseS5jb20KfHx0 +d2l0dHVybHkuY29tCi50d2l0emFwLmNvbQp0d2l5aWEuY29tCi50d3Rrci5jb20K +fGh0dHA6Ly90d3Rrci5jb20KLnR3bm9ydGgub3JnLnR3Cnx8dHdyZXBvcnRlci5v +cmcKdHdza3lwZS5jb20KdHd0cmxhbmQuY29tCnR3dXJsLm5sCi50eHh4LmNvbQou +dHljb29sLmNvbQp8fHR5Y29vbC5jb20KCiEtLXR5cGVwYWQKfHx0eXBlcGFkLmNv +bQpAQHx8d3d3LnR5cGVwYWQuY29tCkBAfHxzdGF0aWMudHlwZXBhZC5jb20KfHxi +bG9nLmV4cG9mdXR1cmVzLmNvbQp8fGNvbnRlc3RzLnR3aWxpby5jb20KIS1sYXdw +cm9mZXNzb3JzLnR5cGVwYWQuY29tL2NoaW5hX2xhd19wcm9mCnx8dHlwb3JhLmlv +CgohLS0tLS0tLS0tLS0tLS0tLS0tLS1VVS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t +LS0KfHx1ZG9tYWluLmhrCnx8dXBiaXQuY29tCnx8ZGVtby51bmxvY2stbXVzaWMu +ZGV2Ci51OXVuLmNvbQp8fHU5dW4uY29tCi51YmRkbnMub3JnCnxodHRwOi8vdWJk +ZG5zLm9yZwp8fHViZXJwcm94eS5uZXQKLnVjLWphcGFuLm9yZwp8fHVjLWphcGFu +Lm9yZwouc3JjZi51Y2FtLm9yZy9zYWxvbi8KfGh0dHA6Ly9jaGluYS51Y2FuZXdz +LmNvbS8KfGh0dHA6Ly9odW0qLnVjaGljYWdvLmVkdS9mYWN1bHR5L3l3YW5nL2hp +c3RvcnkKfHx1ZGVyem8uaXQKLnVkbi5jb20KfHx1ZG4uY29tCnx8dWRuLmNvbS50 +dwp1ZG5ia2suY29tL2Jicwp8fHVmb3JhZGlvLmNvbS50dwp1ZnJlZXZwbi5jb20K +LnVnby5jb20KIS0tZ2hzCnx8dWhkd2FsbHBhcGVycy5vcmcKfHx1aHJwLm9yZwou +dWlnaHVyLm5sCnx8dWlnaHVyLm5sCnVpZ2h1cmJpei5uZXQKLnVsaWtlLm5ldAp1 +a2NkcC5jby51awp8fHVsdHJhc3VyZi51cwp8fHVsdHJhdnBuLmNvbQp8fHVsdHJh +dnBuLmZyCnVsdHJheHMuY29tCnVtaWNoLmVkdS9+ZmFsdW4KfHx1bmJsb2NrLmNu +LmNvbQoudW5ibG9ja2VyLnl0CnVuYmxvY2stdXMuY29tCnx8dW5ibG9jay11cy5j +b20KLnVuYmxvY2tkbW0uY29tCnxodHRwOi8vdW5ibG9ja2RtbS5jb20KfHx1bmJs +b2Nrc2l0LmVzCnVuY3ljbG9tZWRpYS5vcmcKLnVuY3ljbG9wZWRpYS5oay93aWtp +CnxodHRwOi8vdW5jeWNsb3BlZGlhLmhrCiEtLXVuY3ljbG9wZWRpYS5pbmZvCnxo +dHRwOi8vdW5jeWNsb3BlZGlhLnR3CnVuZGVyd29vZGFtbW8uY29tCnx8dW5kZXJ3 +b29kYW1tby5jb20KfHx1bmhvbHlrbmlnaHQuY29tCi51bmkuY2MKfHxjbGRyLnVu +aWNvZGUub3JnCi51bmlmaWNhdGlvbi5uZXQKLnVuaWZpY2F0aW9uLm9yZy50dwp8 +fHVuaXJ1bGUuY2xvdWQKLnVuaXgxMDAuY29tCnx8dW5rbm93bnNwYWNlLm9yZwou +dW5vZGVkb3MuY29tCnVucG8ub3JnCnx8dW5zdGFibGUuaWN1Cnx8dW53aXJlLmhr +Cnx8dW9jbi5vcmcKdG9yLnVwZGF0ZXN0YXIuY29tCnx8dXBnaHNiYy5jb20KLnVw +aG9sZGp1c3RpY2Uub3JnCnVwbG9hZGVkLm5ldC9maWxlCnxodHRwOi8vdXBsb2Fk +ZWQubmV0L2ZpbGUKfGh0dHA6Ly91cGxvYWRlZC50by9maWxlCi51cGxvYWRzdGF0 +aW9uLmNvbS9maWxlCi51cG1lZGlhLm1nCnx8dXBtZWRpYS5tZwoudXBvcm5pYS5j +b20KfGh0dHA6Ly91cG9ybmlhLmNvbQp8fHVwcm94eS5vcmcKfHx1cHRvZG93bi5j +b20KLnVwd2lsbC5vcmcKdXI3cy5jb20KfHx1cmJhbmRpY3Rpb25hcnkuY29tCnx8 +dXJiYW5zdXJ2aXZhbC5jb20KbXlzaGFyZS51cmwuY29tLnR3Lwp8fHVybGJvcmcu +Y29tCnx8dXJscGFyc2VyLmNvbQp1cy50bwp8fHVzYWNuLmNvbQoudXNhaXAuZXUK +fHx1c2FpcC5ldQp8fHVzY25wbS5vcmcKfHx1c2NhcmRmb3J1bS5jb20KfHx1c21h +LmVkdQoudXNvY2N0bi5jb20KfHx1c3RpYmV0Y29tbWl0dGVlLm9yZwoudXN0cmVh +bS50dgp8fHVzdHJlYW0udHYKdXN1cy5jYwoudXRvcGlhbnBhbC5jb20KfHx1dG9w +aWFucGFsLmNvbQp8fHV1amlhc3UuY29tCi51dnd4eXoueHl6Cnx8dXZ3eHl6Lnh5 +egoudXdhbnRzLmNvbQp8fHV3YW50cy5jb20KLnV3YW50cy5uZXQKdXlnaHVyLmNv +LnVrCnx8dXlnaHVyLWoub3JnCnx8dXlnaHVyYWEub3JnCnx8dXlnaHVyYW1lcmlj +YW4ub3JnCnx8dXlnaHVyYml6Lm9yZwp8fHV5Z2h1cmNvbmdyZXNzLm9yZwp8fHV5 +Z2h1cnBlbi5vcmcKfHx1eWdodXJzdHVkaWVzLm9yZwp8fHV5Z2h1cnRyaWJ1bmFs +LmNvbQp1eWd1ci5vcmcKfGh0dHA6Ly91eW1hYXJpcC5jb20vCgohLS0tLS0tLS0t +LS0tLS0tLS0tLS1WVi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KfHx2aWxhbmV0 +Lm1lCnx8dmV3YXMubmV0Cnx8djIuaGVscAp8fHZvY2Fyb28uY29tCnx8dmVybi5j +Ywp8fHYyZmx5Lm9yZwoudjJyYXkuY29tCnx8djJyYXkuY29tCnx8djJyYXljbi5j +b20KfHx2YWxldXJzYWN0dWVsbGVzLmNvbQoudmFuMDAxLmNvbQoudmFuNjk4LmNv +bQoudmFuZW11LmNuCi52YW5pbGxhLWpwLmNvbQoudmFucGVvcGxlLmNvbQp8fHZh +bnNreS5jb20KfHx2YXRpY2FubmV3cy52YQp8fHZjZi1vbmxpbmUub3JnCnx8dmNm +YnVpbGRlci5vcmcKLnZlZ2FzcmVkLmNvbQoudmVsa2FlcG9jaGEuc2sKLnZlbmJi +cy5jb20KLnZlbmNoaW5hLmNvbQoudmVuZXRpYW5tYWNhby5jb20KfHx2ZW5ldGlh +bm1hY2FvLmNvbQp2ZW9oLmNvbQp8fHZlcmNlbC5hcHAKbXlzaXRlLnZlcml6b24u +bmV0CnZlcm1vbnR0aWJldC5vcmcKfHx2ZXJ5YnMuY29tCi52ZnQuY29tLnR3Ci52 +aWJlci5jb20KfHx2aWJlci5jb20KLnZpY2EuaW5mbwoudmljdGltc29mY29tbXVu +aXNtLm9yZwp8fHZpY3RpbXNvZmNvbW11bmlzbS5vcmcKfHx2aWQubWUKfHx2aWRi +bGUuY29tCnZpZGVvYmFtLmNvbQp8fHZpZGVvYmFtLmNvbQoudmlkZW9kZXRlY3Rp +dmUuY29tCi52aWRlb21lZ2EudHYKfHx2aWRlb21lZ2EudHYKLnZpZGVvbW8uY29t +CnZpZGVvcGVkaWF3b3JsZC5jb20KLnZpZGVvcHJlc3MuY29tCi52aWRpbmZvLm9y +Zy92aWRlbwp2aWV0ZGFpa3luZ3V5ZW4uY29tCi52aWpheWF0ZW1wbGUub3JnCnx8 +dmlsYXZwbi5jb20KdmltZW8uY29tCnx8dmltZW8uY29tCnx8dmltcGVyYXRvci5v +cmcKfHx2aW5jbmQuY29tCnx8dmlubmlldi5jb20KfGh0dHA6Ly93d3cubGliLnZp +cmdpbmlhLmVkdS9hcmVhLXN0dWRpZXMvVGliZXQvdGliZXQuaHRtbAoudmlydHVh +bHJlYWxwb3JuLmNvbQp8fHZpcnR1YWxyZWFscG9ybi5jb20KdmlzaWJsZXR3ZWV0 +cy5jb20KfHx2aXUuY29tCi52aXZhaGVudGFpNHUubmV0CgohLS1hcGV4IG5vdCBi +bG9ja2VkLCBhZGRpbmcgdG8gcmVkdWNlIGNvbXBsZXhpdHkKfHx2aXZhbGRpLmNv +bQoKLnZpdmF0dWJlLmNvbQoudml2dGhvbWFzLmNvbQp8fHZpdnRob21hcy5jb20K +LnZqYXYuY29tCnx8dmphdi5jb20KLnZqbWVkaWEuY29tLmhrCi52bGxjcy5vcmcK +fGh0dHA6Ly92bGxjcy5vcmcKfHx2bWl4Y29yZS5jb20KfHx2bmV0LmxpbmsKLnZv +Y2F0aXYuY29tCnZvY24udHYKfHx2b2N1cy5jYwp8fHZvaWNldHRhbmsub3JnCi52 +b3Qub3JnCnx8dm90Lm9yZwoudm92bzIwMDAuY29tCnxodHRwOi8vdm92bzIwMDAu +Y29tCi52b3hlci5jb20KfHx2b3hlci5jb20KLnZveS5jb20KfHx2cG4uYWMKfHx2 +cG4ubmV0Ci52cG40YWxsLmNvbQp8fHZwbjRhbGwuY29tCi52cG5hY2NvdW50Lm9y +Zwp8aHR0cDovL3ZwbmFjY291bnQub3JnCi52cG5hY2NvdW50cy5jb20KfHx2cG5h +Y2NvdW50cy5jb20KLnZwbmNvbXBhcmlzb24ub3JnCi52cG5jdXAuY29tCnx8dnBu +Y3VwLmNvbQp2cG5ib29rLmNvbQoudnBuY291cG9ucy5jb20KfGh0dHA6Ly92cG5j +b3Vwb25zLmNvbQoudnBuZGFkYS5jb20KfHx2cG5kYWRhLmNvbQoudnBuZmFuLmNv +bQp2cG5maXJlLmNvbQoudnBuZm9yZ2FtZS5uZXQKfHx2cG5mb3JnYW1lLm5ldAp8 +fHZwbmdhdGUuanAKLnZwbmdhdGUubmV0Cnx8dnBuZ2F0ZS5uZXQKLnZwbmdyYXRp +cy5uZXQKdnBuaHEuY29tCnx8dnBuaHViLmNvbQoudnBubWFzdGVyLmNvbQp8fHZw +bm1hc3Rlci5jb20KLnZwbm1lbnRvci5jb20KfHx2cG5tZW50b3IuY29tCi52cG5p +bmphLm5ldAp8fHZwbmluamEubmV0Ci52cG5pbnRvdWNoLmNvbQp2cG5qYWNrLmNv +bQp8fHZwbmphY2suY29tCi52cG5waWNrLmNvbQp8fHZwbnBpY2suY29tCnx8dnBu +cG9wLmNvbQp8fHZwbnByb25ldC5jb20KfHx2cG5wcm94eW1hc3Rlci5jb20KLnZw +bnJlYWN0b3IuY29tCnx8dnBucmVhY3Rvci5jb20KfHx2cG5yZXZpZXd6LmNvbQou +dnBuc2VjdXJlLm1lCnx8dnBuc2VjdXJlLm1lCi52cG5zaGF6YW0uY29tCnx8dnBu +c2hhemFtLmNvbQoudnBuc2hpZWxkYXBwLmNvbQp8fHZwbnNoaWVsZGFwcC5jb20K +LnZwbnNwLmNvbQoudnBudHJhZmZpYy5jb20KLnZwbnR1bm5lbC5jb20KfHx2cG50 +dW5uZWwuY29tCi52cG51ay5pbmZvCnx8dnBudWsuaW5mbwp8fHZwbnVubGltaXRl +ZGFwcC5jb20KLnZwbnZpcC5jb20KfHx2cG52aXAuY29tCi52cG53b3JsZHdpZGUu +Y29tCi52cG9ybi5jb20KfHx2cG9ybi5jb20KLnZwc2VyLm5ldApAQHx8dnBzZXIu +bmV0CnZyYWllc2FnZXNzZS5uZXQKfHx2cmNoYXQuY29tCi52cm10ci5jb20KfHx2 +cnBvcm4uY29tCnx8dnR1bm5lbC5jb20KfHx2dWt1LmNjCgohLS0tLS0tLS0tLS0t +LS0tLS0tLS1XVy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KfHx3eHcubW9lCnx8 +d3h3LmNhdAp8fHdhbGxldGNvbm5lY3QuY29tCnxodHRwczovL3czcy5saW5rL2lw +ZnMKfHx3b3JrMmljdS5vcmcKfHx3aWtpbGVzcy5mdW5hbWkudGVjaApsaXN0cy53 +My5vcmcvYXJjaGl2ZXMvcHVibGljCnx8d2FmZmxlMTk5OS5jb20KLndhaGFzLmNv +bQp3YWlrZXVuZy5vcmcvcGhwX3dpbmQKfHx3YWluYW8ubWUKfHx3YWxsbWFtYS5j +b20KfHx3YWxscGFwZXJjYXNhLmNvbQoud2FsbHByb3h5LmNvbQpAQHx8d2FsbHBy +b3h5LmNvbS5jbgp8fHdhbGxzdHR2LmNvbQp8fHdhbHRlcm1hcnRpbi5jb20KfHx3 +YWx0ZXJtYXJ0aW4ub3JnCnx8d3d3Lndhbi1wcmVzcy5vcmcKfHx3YW5kZXJpbmdo +b3JzZS5uZXQKfHx3YW5nYWZ1Lm5ldAp8fHdhbmdqaW5iby5vcmcKLndhbmdqaW5i +by5vcmcKd2FuZ2xpeGlvbmcuY29tCi53YW5nby5vcmcKfHx3YW5nby5vcmcKd2Fu +Z3J1b3NodWkubmV0Cnx8d2FudC1kYWlseS5jb20Kd2FwZWRpYS5tb2JpL3poc2lt +cAp8fHdhcnJvb20ub3JnCnx8d2FzZWxwcm8uY29tCnx8d2F0Y2hpbmVzZS5jb20K +fHx3YXRjaG91dC50dwoud2F0dHBhZC5jb20KfHx3YXR0cGFkLmNvbQoud2F0Y2g4 +eC5jb20KfHx3YXRjaG15Z2YubmV0Cnx8d2F2LnR2Cnx8d2F5YmlnLmNvbQp8fHdk +LmJpYmxlCi53ZGY1LmNvbQp8fHdlYWx0aC5jb20udHcKLndlYXJlaGFpcnkuY29t +Ci53ZWFybi5jb20KfHx3ZWFybi5jb20KfGh0dHA6Ly9oa2NvYy53ZWF0aGVyLmNv +bS5oawp8fGh1ZGF0b3JpcS53ZWIuaWQKfHx3ZWIycHJvamVjdC5uZXQKd2ViYmFu +Zy5uZXQKLndlYmV2YWRlci5vcmcKLndlYmZyZWVyLmNvbQp3ZWJsYWd1LmNvbQou +d2ViamIub3JnCi53ZWJydXNoLm5ldAp3ZWJzLXR2Lm5ldAoud2Vic2l0ZXB1bHNl +LmNvbS9oZWxwL3Rlc3R0b29scy5jaGluYS10ZXN0CnxodHRwOi8vd3d3LndlYnNu +YXByLmNvbQoud2Vid2FycGVyLm5ldAp8aHR0cDovL3dlYndhcnBlci5uZXQKd2Vi +d29ya2VyZGFpbHkuY29tCnx8d2VjaGF0bGF3c3VpdC5jb20KfHx3ZWZpZ2h0Y2Vu +c29yc2hpcC5vcmcKLndlZm9uZy5jb20Kd2VpYm9sZWFrLmNvbQoud2VpaHVvLm9y +Zwp8fHdlaWppbmdzaGVuZy5vcmcKLndlaW1pbmcuaW5mbwp8fHdlaW1pbmcuaW5m +bwp3ZWlxdWFud2FuZy5vcmcKfGh0dHA6Ly93ZWlzdW8ud3MKLndlbG92ZWNvY2su +Y29tCnx8d2VsdC5kZQoud2VtaWdyYXRlLm9yZwp8aHR0cDovL3dlbWlncmF0ZS5v +cmcKd2VuZ2V3YW5nLmNvbQp8fHdlbmdld2FuZy5vcmcKLndlbnh1ZWNpdHkuY29t +Cnx8d2VueHVlY2l0eS5jb20KLndlbnl1bmNoYW8uY29tCnx8d2VueXVuY2hhby5j +b20KLndlc3RjYS5jb20KfHx3ZXN0Y2EuY29tCnx8d2VzdGVybndvbHZlcy5jb20K +Lndlc3RraXQubmV0Cnx8d2VzdHBvaW50LmVkdQoud2VzdGVybnNodWdkZW5zb2Np +ZXR5Lm9yZwp3ZXRwdXNzeWdhbWVzLmNvbQoud2V0cGxhY2UuY29tCnx8d2V6b25l +Lm5ldAoud2ZvcnVtLmNvbQp8fHdmb3J1bS5jb20vCi53aGF0YmxvY2tlZC5jb20K +fHx3aGF0YmxvY2tlZC5jb20KfHx3aGVlbG9ja3NsYXRpbi5jb20KLndoaXBwZWRh +c3MuY29tCiEtLXxodHRwOi8vd2hvLmlzLwoud2hvZXIubmV0Cnx8d2hvZXIubmV0 +Cndob3RhbGtpbmcuY29tCndoeWxvdmVyLmNvbQp8fHdoeXgub3JnCnx8d2lraWxl +YWtzLmNoCnx8d2lraWxlYWtzLmNvbQp8fHdpa2lsZWFrcy5kZQp8fHdpa2lsZWFr +cy5ldQp8fHdpa2lsZWFrcy5sdQoud2lraWxlYWtzLm9yZwp8fHdpa2lsZWFrcy5v +cmcKfHx3aWtpbGVha3MucGwKLndpa2lsZWFrcy1mb3J1bS5jb20KfHx3aWxzb25j +ZW50ZXIub3JnCi53aWxsaWFtaGlsbC5jb20KfHxjb2xsYXRlcmFsbXVyZGVyLmNv +bQp8fGNvbGxhdGVyYWxtdXJkZXIub3JnCndpa2lsaXZyZXMuaW5mby93aWtpLyVF +OSU5QiVCNiVFNSU4NSVBQiVFNSVBRSVBQSVFNyVBQiVBMAp8fHdpa2ltYXBpYS5v +cmcKLndpa2l3YW5kLmNvbQp8fHdpa2l3YW5kLmNvbQp8fGNhc2luby53aWxsaWFt +aGlsbC5jb20KfHxzcG9ydHMud2lsbGlhbWhpbGwuY29tCnx8dmVnYXMud2lsbGlh +bWhpbGwuY29tCnx8d2lsbHcubmV0Ci53aW5kc2NyaWJlLmNvbQp8fHdpbmRzY3Jp +YmUuY29tCnx8d2luZ3kuc2l0ZQoud2lubmluZzExLmNvbQp8fHdpb25ld3MuY29t +Cnx8d2lyZWRieXRlcy5jb20KfHx3aXJlZHBlbi5jb20KfHx3aXJlZ3VhcmQuY29t +CiEtLXx8d2lyZXNoYXJrLm9yZwoud2lzZG9tcHVicy5vcmcKLndpc2V2aWQuY29t +Cnx8d2lzZXZpZC5jb20KfHx3aGlzcGVyc3lzdGVtcy5vcmcKLndpdG5lc3NsZWV0 +ZWFjaGluZy5jb20KfHx3aXRvcGlhLm5ldAoud2piay5vcmcKfHx3amJrLm9yZwp8 +fHdtZmxhYnMub3JnCnx8d24uY29tCnx8d25hY2cuY29tCnx8d25hY2cub3JnCnx8 +d28udGMKfHx3b2VzZXIuY29tCnx8d29rYXIub3JnCnx8d29sZmF4LmNvbQp8fHdv +bWJvLmFpCnx8d29vbHlzcy5jb20KfHx3b29waWUuanAKfHx3b29waWUudHYKfHx3 +b3JrYXRydW5hLmNvbQp8fHdvcmtlcmVtcG93ZXJtZW50Lm9yZwoud29ybGRjYXQu +b3JnCndvcmxkam91cm5hbC5jb20KLndvcmxkdnBuLm5ldAp8fHdvcmxkdnBuLm5l +dAoKfHx2aWRlb3ByZXNzLmNvbQoud29yZHByZXNzLmNvbQp8aHR0cDovLyoud29y +ZHByZXNzLmNvbQp8fGNoZW5zaGFuMjAwNDIwMDUud29yZHByZXNzLmNvbQp8fGNo +aW5hdmlldy53b3JkcHJlc3MuY29tCnx8Y25iYm5ld3Mud29yZHByZXNzLmNvbQp8 +fGZyZWVkb21pbmZvbmV0d2ViLndvcmRwcmVzcy5jb20KfHxoa2E4OTY0LndvcmRw +cmVzcy5jb20KfHxoa2FuZXdzLndvcmRwcmVzcy5jb20KfHxocXNibmV0LndvcmRw +cmVzcy5jb20KfHxocXNib25saW5lLndvcmRwcmVzcy5jb20KfHxpbnZlc3RpZ2F0 +aW5nLndvcmRwcmVzcy5jb20KfHxqb2JuZXdlcmEud29yZHByZXNzLmNvbQp8fG1h +dHRoZXdkZ3JlZW4ud29yZHByZXNzLmNvbQp8fG1pbmdodWl5dy53b3JkcHJlc3Mu +Y29tCnx8d28zdHR0LndvcmRwcmVzcy5jb20KfHxzdWppYXR1bi53b3JkcHJlc3Mu +Y29tCnx8eGlqaWUud29yZHByZXNzLmNvbQp8fGlmcmVlY2hpbmEud29yZHByZXNz +LmNvbQp8fHdwLmNvbQoKIS18fHdvcm1zY3VscHRvci5jb20KLndvdy5jb20KfHx3 +b3dwb3JuLmNvbQp8fHdvd2dpcmxzLmNvbQoud293cmsuY29tCi53b3lhb2xpYW4u +b3JnCnxodHRwOi8vd295YW9saWFuLm9yZwoud3BvZm9ydW0uY29tCnx8d3BvZm9y +dW0uY29tCndyY2hpbmEub3JnCndyZXRjaC5jYwp8fHdyaXRlc29uaWMuY29tCi53 +c2ouY29tCnx8d3NqLmNvbQoud3NqLm5ldAp8fHdzai5uZXQKLnd0Ym4ub3JnCi53 +dGZwZW9wbGUuY29tCnd1ZXJrYWl4aS5jb20KfHx3dWZhZmFuZ3dlbi5jb20KfHx3 +dWZpLm9yZy50dwp3dWppZS5uZXQKd3VqaWVsaXVsYW4uY29tCnx8d3VqaWVsaXVs +YW4uY29tCnx8d3V3LnJlZAoud3dpdHYuY29tCnx8d3dpdHYuY29tCnd6eWJveS5p +bS9wb3N0LzE2MAoKIS0tLS0tLS0tLS0tLS0tLS0tLS0tWFgtLS0tLS0tLS0tLS0t +LS0tLS0tLS0tLS0tCnx8d3d3LnhpY29ucy5vcmcKfHx4LmFpCnx8eHQuY29tCnx8 +eHQucHViCnx8eC5jbwoueC1iZXJyeS5jb20KfHx4LWJlcnJ5LmNvbQp8fHgtYXJ0 +LmNvbQp8fHgtd2FsbC5vcmcKfHx4M2d1aWRlLmNvbQp4YW5nYS5jb20KfHx4YmFi +ZS5jb20KLnhib29rY24uY29tCnx8eGJvb2tjbi5jb20KfHx4Y2FmZS5pbgp8fHhj +aXR5LmpwCi54Y3JpdGljLmNvbQp8fHhlcm90aWNhLmNvbQpkZXN0aW55LnhmaWxl +cy50by91YmJ0aHJlYWRzCnx8eGZ4c3NyLm1lCi54Z215ZC5jb20KfHx4Z215ZC5j +b20KeGhhbXN0ZXIuY29tCnx8eGhhbXN0ZXIuY29tCi54aWFuYmEubmV0Ci54aWFu +amlhbi50dwp8aHR0cDovL3hpYW5qaWFuLnR3Ci54aWFvYmFpd3UuY29tCi54aWFv +Y2h1bmNuanAuY29tCi54aWFvaGV4aWUuY29tCnx8eGlhb2xhbi5tZQp8fHhpYW9t +YS5vcmcKfHx4aWFvaGV4aWUuY29tCnx8eGlheGlhb3FpYW5nLm5ldAp4aWV6aHVh +LmNvbQoueGlodWEuZXMKZm9ydW0ueGluYmFvLmRlL2ZvcnVtCi54aW5nLmNvbQp8 +aHR0cDovL3hpbmcuY29tCnx8eGluamlhbmdwb2xpY2VmaWxlcy5vcmcKLnhpbm1p +YW8uY29tLmhrCnx8eGlubWlhby5jb20uaGsKeGluc2hlbmcubmV0CnhpbnNoaWp1 +ZS5jb20KLnhpb25ncGlhbi5jb20KLnhpdXJlbi5vcmcKeGl6YW5nLXpoaXllLm9y +Zwp4anAuY2MKfHx4anAuY2MKfHx4anRyYXZlbGd1aWRlLmNvbQp8fHhtbC10cmFp +bmluZy1ndWlkZS5jb20KeG1vdmllcy5jb20KfHx4bnh4LmNvbQohLS18fHhueHgt +Y2RuLmNvbQp4cGRvLm5ldAp8fHhwdWQub3JnCi54cmVudGR2ZC5jb20KfHx4dHVi +ZS5jb20KfHx4dWNoYW8ub3JnCnh1Y2hhby5uZXQKfHx4dWNoYW8ubmV0Cnh2aWRl +by5jYwoueHZpZGVvcy5jb20KfHx4dmlkZW9zLmNvbQp8fHh2aWRlb3MtY2RuLmNv +bQp8fHh2aWRlb3MuZXMKfHx4dmJlbGluay5jb20KfHx4dmlubGluay5jb20KfHx4 +c2Rlbi5pbmZvCi54eGJieC5jb20KLnh4bG1vdmllcy5jb20KfHx4eHguY29tCi54 +eHgueHh4CnxodHRwOi8veHh4Lnh4eAoueHh4ZnVja21vbS5jb20KfHx4eHh4LmNv +bS5hdQoueHh4eW1vdmllcy5jb20KfGh0dHA6Ly94eHh5bW92aWVzLmNvbQp4eXMu +b3JnCnh5c2Jsb2dzLm9yZwoKIS0tLS0tLS0tLS0tLS0tLS0tLS0tWVktLS0tLS0t +LS0tLS0tLS0tLS0tLS0tLS0tCnx8eWFuZ3poaS5vcmcKfHxzdG9yYWdlLnlhbmRl +eC5uZXQKfHx5Mm1hdGUuY29tCnx8eWFkaS5zawp8fHlha2J1dHRlcmJsdWVzLmNv +bQp8fHlhbS5jb20KfHx5YW0ub3JnLnR3Cnx8eWFuZGUucmUKfHxkaXNrLnlhbmRl +eC5jb20KfHxkaXNrLnlhbmRleC5ydQoueWFuZ2hlbmdqdW4uY29tCi55YXNuaS5j +by51awp8fHlhc25pLmNvLnVrCnx8eWFzdWt1bmkub3IuanAKLnlheWFiYXkuY29t +L2ZvcnVtCnx8bmV3cy55Y29tYmluYXRvci5jb20KLnlkeS5jb20KLnllYWh0ZWVu +dHViZS5jb20KfHx5ZWFodGVlbnR1YmUuY29tCnx8eWVjbC5uZXQKfHx5ZWVsb3Uu +Y29tCnx8eWVleWkuY29tCnllZ2xlLm5ldAp8fHllZ2xlLm5ldAoueWVzLnh4eAp8 +fHllczEyMy5jb20udHcKfHx5ZXNhc2lhLmNvbQp8fHllc2FzaWEuY29tLmhrCi55 +ZXMtbmV3cy5jb20KfGh0dHA6Ly95ZXMtbmV3cy5jb20KLnllc3Bvcm5wbGVhc2Uu +Y29tCnx8eWVzcG9ybnBsZWFzZS5jb20KfGh0dHA6Ly95ZXllY2x1Yi5jb20KIS0t +eWZyb2cuY29tCnx8eWhjdy5uZXQKLnlpYmFkYS5jb20KfHx5aWJhb2NoaW5hLmNv +bQoueWlkaW8uY29tCnx8eWlkaW8uY29tCnx8eWlnZW5pLmNvbQp5aWx1YmJzLmNv +bQp8fHMueWltZy5jb20KLnlpcHViLmNvbQp8fHlpcHViLmNvbQp5aW5sZWkub3Jn +L210Ci55aXpoaWhvbmd4aW5nLmNvbQp8fHlpemhpaG9uZ3hpbmcuY29tCi55b2J0 +LmNvbQoueW9idC50dgp8fHlvYnQudHYKLnlvZ2ljaGVuLm9yZwp8fHlvZ2ljaGVu +Lm9yZwoueW9sYXNpdGUuY29tCi55b21pdXJpLmNvLmpwCnlvbmcuaHUKLnlvcmti +YnMuY2EKfHx5b3UuY29tCnx8eW91eHUuaW5mbwoueW91aml6ei5jb20KfHx5b3Vq +aXp6LmNvbQoueW91bWFrZXIuY29tCnx8eW91bWFrZXIuY29tCi55b3VuZ3Bvcm52 +aWRlb3MuY29tCnlvdW5nc3BpcmF0aW9uLmhrCi55b3VwYWkub3JnCnx8eW91cGFp +Lm9yZwoueW91ci1mcmVlZG9tLm5ldAp8fHlvdXJlcGVhdC5jb20KLnlvdXNlbmRp +dC5jb20KfHx5b3VzZW5kaXQuY29tCi55b3V0aG5ldHJhZGlvLm9yZy90bWl0L2Zv +cnVtCmJsb2cueW91dGh3YW50LmNvbS50dwptZS55b3V0aHdhbnQuY29tLnR3CnNo +YXJlLnlvdXRod2FudC5jb20udHcKdG9waWMueW91dGh3YW50LmNvbS50dwoueW91 +cG9ybi5jb20KfHx5b3Vwb3JuLmNvbQoueW91cG9ybmdheS5jb20KfHx5b3Vwb3Ju +Z2F5LmNvbQoueW91cmxpc3Rlbi5jb20KfHx5b3VybGlzdGVuLmNvbQoueW91cmx1 +c3QuY29tCnx8eW91cmx1c3QuY29tCnlvdXZlcnNpb24uY29tCnx8eW91dmVyc2lv +bi5jb20KeXRodC5uZXQKeXVhbm1pbmcubmV0Ci55dWFuemhlbmd0YW5nLm9yZwou +eXVsZ2h1bi5jb20KfHx5dWxnaHVuLmNvbQp8fHl1bmNoYW8ubmV0Cnx8eXVub21p +LnRva3lvCi55dXZ1dHUuY29tCnx8eXZlc2dlbGV5bi5jb20KLnl3cHcuY29tL2Zv +cnVtcy9oaXN0b3J5L3Bvc3QvQTAvcDAvaHRtbC8yMjcKeXg1MS5uZXQKLnl5aWku +b3JnCnx8eXlpaS5vcmcKfHx5eWpseW1iLnh5egp8fHl5c3ViLm5ldAoueXp6ay5j +b20KfHx5enprLmNvbQoKIS0tLS0tLS0tLS0tLS0tLS0tLS0tWlotLS0tLS0tLS0t +LS0tLS0tLS0tLS0tLS0tCnx8ei1saWJyYXJ5LnNrCnx8ei1saWIuZm0KfHx6LWxp +Yi5nZAp8fHotbGliLmdsCnx8ei1saWIuZm8KfHx6b2RnYW1lLnh5egp8fHpob25n +emlkaS5jb20KfHx6b29xbGUuY29tCnx8ei1saWIuaW8KfHx6LWxpYi5vcmcKemFj +ZWJvb2suY29tCi56YWxtb3MuY29tCnx8emFsbW9zLmNvbQp8fHphb2Jhby5jb20u +c2cKfHx6ZG5ldC5jb20udHcKLnplbGxvLmNvbQp8fHplbGxvLmNvbQouemVuZ2pp +bnlhbi5vcmcKLnplbm1hdGUuY29tCnx8emVubWF0ZS5jb20KfHx6ZW5tYXRlLmNv +bS5ydQp8fHplcm9oZWRnZS5jb20KfHx6ZXJvbmV0LmlvCiEtLXd3dy56ZnJlZXQu +Y29tL3Bvc3QvdXNlanVtcC1icm93bnMuaHRtbAouemZyZWV0LmNvbQouemhhbmdi +b2xpLm5ldAp8fHpoYW5ndGlhbmxpYW5nLmNvbQp8fHpoYW5sdmUub3JnCnpoZW5n +aHVpLm9yZwouemhlbmdqaWFuLm9yZwp8fHpoZW5namlhbi5vcmcKemhlbmd3dW5l +dC5vcmcKfGh0dHA6Ly96aGVueGlhbmcuYml6Cnpob25nZ3VvLmNhCnxodHRwOi8v +emhvbmdndW9yZW5xdWFuLm9yZwp6aG9uZ2d1b3Rlc2UubmV0Cnx8emhvbmdndW90 +ZXNlLm5ldAouemhvdXNodWd1YW5nLmNvbQouemh1YW54aW5nLmNuCnx8emh1YXRp +ZWJhLmNvbQp6aHVpY2hhZ3Vvamkub3JnCnx8emh1aWNoYWd1b2ppLm9yZwp8fHpp +Lm1lZGlhCnxodHRwOi8vYm9vay56aTUubWUKLnppZGR1LmNvbS9kb3dubG9hZAp8 +fHppbGxpb25rLmNvbQouemluaW8uY29tCnx8emluaW8uY29tCi56aXBvcm4uY29t +Ci56aXBweXNoYXJlLmNvbQpyZWFsZm9ydW0uemtpei5jb20KIS0tfHx6bGliLm5l +dAp8fHptZWRpYS5jb20udHcKfHx6bXcuY24KLnpvZGdhbWUudXMKem9tb2JvLm5l +dAouem9uYWV1cm9wYS5jb20KfHx6b25hZXVyb3BhLmNvbQp8fHpvbmdoZXhpbndl +bi5jb20KfHx6b29ndnBuLmNvbQp8fHpvb3Rvb2wuY29tCi56b296bGUubmV0Cnx8 +em9waGFyLm5ldAp3cml0ZXIuem9oby5jb20KfHx6b3Jyb3Zwbi5jb20KfHx6cG4u +aW0KfHx6c3BlZWRlci5tZQouenNyaGFvLmNvbQouenVvLmxhCnx8enVvLmxhCnx8 +enVvYmlhby5tZQouenVvbGEuY29tCnx8enVvbGEuY29tCnx8enZlcmVmZi5jb20K +fHx6eXhlbC5jb20KLnp6Y2FydG9vbi5jb20KISMjIyMjIyMjIyMjIyMjR2VuZXJh +bCBMaXN0IEVuZCMjIyMjIyMjIyMjIyMjIyMjCgohIyMjIyMjIyMjIyNTdXBwbGVt +ZW50YWwgTGlzdCBTdGFydCMjIyMjIyMjIyMjIyMKISMjIyMjIyMjIyMjIyNTdXBw +bGVtZW50YWwgTGlzdCBFbmQjIyMjIyMjIyMjIyMjCgohIyMjIyMjIyMjIyMjIyMj +I1doaXRlbGlzdCBTdGFydCMjIyMjIyMjIyMjIyMjIyMKQEB8fHd3dy5ldHRvZGF5 +Lm5ldAoKQEB8fGFsaXl1bi5jb20KQEB8fGJhaWR1LmNvbQpAQHx8Y2hpbmFzby5j +b20KQEB8fGNoaW5hei5jb20KQEB8aHR0cDovL25yY2guY3VsdHVyZS50dy8KQEB8 +fGkucGtpLmdvb2cKIS0tLVNvbWUgYXJlIHBvd2VyZWQgYnkgR3VYaWFuZyAoQkdQ +KSwgcGxlYXNlIGNvbW1lbnQgb2ZmIGlmCiEtLS15b3UgZW5jb3VudGVyIGNvbm5l +Y3Rpdml0eSBpc3N1ZXMuCkBAfHxhZHNlcnZpY2UuZ29vZ2xlLmNvbQohLS1JU1Ag +Y2FjaGUgd29ya3Mgc29tZXRpbWVzLCB2ZXJpZmllZCBhdCBkcnBlbmcgKyBnZWh1 +YS4KQEB8fGRsLmdvb2dsZS5jb20KIS0tQEB8fGtoLmdvb2dsZS5jb20KIS0tQEB8 +fGtobS5nb29nbGUuY29tCiEtLUBAfHxraG0wLmdvb2dsZS5jb20KIS0tQEB8fGto +bTEuZ29vZ2xlLmNvbQohLS1AQHx8a2htMi5nb29nbGUuY29tCiEtLUBAfHxraG0z +Lmdvb2dsZS5jb20KIS0tQEB8fGtobWRiLmdvb2dsZS5jb20KQEB8fHRvb2xzLmdv +b2dsZS5jb20KQEB8fGNsaWVudHNlcnZpY2VzLmdvb2dsZWFwaXMuY29tCkBAfHxm +b250cy5nb29nbGVhcGlzLmNvbQohLS1AQHx8a2htLmdvb2dsZWFwaXMuY29tCiEt +LUBAfHxraG0wLmdvb2dsZWFwaXMuY29tCiEtLUBAfHxraG0xLmdvb2dsZWFwaXMu +Y29tCiEtLUBAfHxraG0yLmdvb2dsZWFwaXMuY29tCiEtLUBAfHxraG0zLmdvb2ds +ZWFwaXMuY29tCiEtLUBAfHxraG1kYi5nb29nbGVhcGlzLmNvbQpAQHx8dXBkYXRl +Lmdvb2dsZWFwaXMuY29tCkBAfHxzYWZlYnJvd3NpbmcuZ29vZ2xlYXBpcy5jb20K +QEB8fGNvbm5lY3Rpdml0eWNoZWNrLmdzdGF0aWMuY29tCkBAfHxjc2kuZ3N0YXRp +Yy5jb20KQEB8fGZvbnRzLmdzdGF0aWMuY29tCkBAfHxzc2wuZ3N0YXRpYy5jb20K +QEB8fGhhb3NvdS5jb20KQEB8fGlwLmNuCkBAfHxqaWtlLmNvbQpAQHx8dHJhbnNs +YXRlLmdvb2dsZS5jbgpAQHxodHRwOi8vd3d3Lmdvb2dsZS5jbi9tYXBzCkBAfHxo +dHRwMi5nb2xhbmcub3JnCkBAfHxnb3YuY24KQEB8fG9jc3AucGtpLmdvb2cKQEB8 +fHFxLmNvbQpAQHx8c2luYS5jbgpAQHx8c2luYS5jb20uY24KQEB8fHNvZ291LmNv +bQpAQHx8c28uY29tCkBAfHxzb3NvLmNvbQpAQHx8dWx1YWkuY29tLmNuCkBAfHx3 +ZWliby5jb20KQEB8fHlhaG9vLmNuCkBAfHx5b3VkYW8uY29tCkBAfHx6aG9uZ3Nv +dS5jb20KQEB8aHR0cDovL2ltZS5iYWlkdS5qcAohIyMjIyMjIyMjIyMjIyMjI1do +aXRlbGlzdCBFbmQjIyMjIyMjIyMjIyMjIyMjIyMKIS0tLS0tLS0tLS0tLS0tLS0t +LS0tLUVPRi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCg== diff --git a/data/gfwlist.txt b/data/gfwlist.txt new file mode 100644 index 0000000..0023aa8 --- /dev/null +++ b/data/gfwlist.txt @@ -0,0 +1,7552 @@ +[AutoProxy 0.2.9] +! Checksum: AX5stTgpvx842DA6LdtKAw +! Expires: 6h +! Title: GFWList4LL +! GFWList with EVERYTHING included +! Last Modified: Sat, 13 Sep 2025 04:13:45 +0000 +! +! HomePage: https://github.com/gfwlist/gfwlist +! License: https://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt +! +! GFWList is unlikely to fully comprise the real +! rules being deployed inside GFW system. We try +! our best to keep the list up to date. Please +! contact us regarding URL submission / removal, +! or suggestion / enhancement at issue tracker: +! https://github.com/gfwlist/gfwlist/issues/. + +!---------403/451/503/520 & URL Redirects--------- +||blogjav.net +||zoominfo.com +||ptwxz.com +||miuipolska.pl +||piaotia.com +||wunderground.com +||500px.com +||500px.org +!--ehentai +|http://85.17.73.31/ +!--||adorama.com +||afreecatv.com +||agnesb.fr +||airitilibrary.com +||abematv.akamaized.net +||linear-abematv.akamaized.net +||vod-abematv.akamaized.net +||akiba-web.com +||altrec.com +||amazonvideo.com +||angela-merkel.de +||angola.org +||anthropic.com +||apartmentratings.com +||apartments.com +||arena.taipei +||assets.bwbx.io +||assimp.org +||athenaeizou.com +||bankmobilevibe.com +||banorte.com +||beeg.com +||global.bing.com +||booktopia.com.au +||boysmaster.com +||bynet.co.il +||byrut.org +||carfax.com +.casinobellini.com +||casinobellini.com +||centauro.com.br +||chobit.cc +||ciciai.com +||cici.com +||claude.ai +||clearsurance.com +||cnbeta.com.tw +||counter.social +||costco.com +||coze.com +||crossfire.co.kr +||crunchyroll.com +||d2pass.com +||darpa.mil +||dawangidc.com +||deezer.com +||desipro.de +||discord.com +||discord.gg +||discordapp.com +||discordapp.net +||dish.com +|http://img.dlsite.jp/ +||dm530.net +||dmhy.org +||dmm.co.jp +|http://www.dmm.com/netgame +||dnvod.tv +||dubox.com +||dvdpac.com +||eesti.ee +||esurance.com +.expekt.com +||expekt.com +.extmatrix.com +||extmatrix.com +||fakku.net +||fastpic.ru +||filesor.com +||financetwitter.com +||flipboard.com +||flitto.com +||fnac.be +||fnac.com +||funkyimg.com +||fxnetworks.com +||g-area.org +||gettyimages.* +@@||gettyimages.com +@@||gettyimages.cn +||getuploader.com +||ghidra-sre.org +!--|https://github.com/programthink/zhao +!--|https://raw.githubusercontent.com/programthink/zhao +||glass8.eu +||glype.com +||go141.com +||hautelook.com +||hautelookcdn.com +||wego.here.com +||grok.com +||hmoegirl.com +||hmvdigital.ca +||hmvdigital.com +||homedepot.com +||hoovers.com +||hulu.com +||huluim.com +|http://secure.hustler.com +|http://hustlercash.com +|http://www.hustlercash.com +||hybrid-analysis.com +||cdn*.i-scmp.com +||ilbe.com +||ilovelongtoes.com +|http://imgmega.com/*.gif.html +|http://imgmega.com/*.jpg.html +|http://imgmega.com/*.jpeg.html +|http://imgmega.com/*.png.html +||imlive.co +||javhub.net +||javhuge.com +.javlibrary.com +||javlibrary.com +||jcpenney.com +||jims.net +||tv.jtbc.joins.com +||jukujo-club.com +||juliepost.com +||kawaiikawaii.jp +||kendatire.com +||khatrimaza.org +||kkbox.com +||leisurepro.com +||lifemiles.com +||lih.kg +||longtoes.com +||lovetvshow.com +||lpsg.com +||lrfz.com +|http://www.m-sport.co.uk +||macgamestore.com +||madonna-av.com +||mandiant.com +||mangafox.com +||mangafox.me +||manta.com +||matome-plus.com +||matome-plus.net +||mattwilcox.net +||metarthunter.com +||mfxmedia.com +||miraheze.org +||mojim.com +||kb.monitorware.com +||monster.com +||moodyz.com +||moonbingo.com +||mos.ru +||addons.mozilla.org/*-*/firefox/addon/ublock-origin/* +||addons.mozilla.org/firefox/downloads/file/*/ublock_origin-*.xpi +||msha.gov +||www.msn.com +||muzu.tv +||mvg.jp +.mybet.com +||mybet.com +||mypikpak.com +||nationwide.com +|http://www.nbc.com/live +||neo-miracle.com +||netflix.com +||netflix.net +||nflximg.com +||nflximg.net +||nflxext.com +||nflxso.net +||nflxvideo.net +||nic.gov +|http://mo.nightlife141.com +||purpose.nike.com +||noxinfluencer.com +@@||cn.noxinfluencer.com +||nordstrom.com +||nordstromimage.com +||nordstromrack.com +||nottinghampost.com +||npsboost.com +||ntdtv.cz +||nusatrip.com +||nuuvem.com +||bbs.nyinfor.com +||olehdtv.com +||omni7.jp +||onapp.com +!--We are confused as well +||ontrac.com +@@|http://blog.ontrac.com +||openai.com +||pandora.com +.pandora.tv +||parkansky.com +||phmsociety.org +|http://*.pimg.tw/ +||podcast.co +||popai.pro +||primevideo.com +||proyectoclubes.com +||pure18.com +||pytorch.org +||qq.co.za +||r18.com +|http://radiko.jp +||ramcity.com.au +||rateyourmusic.com +||rd.com +|https://riseup.net +||sadistic-v.com +||isc.sans.edu +|http://cdn*.search.xxx/ +||shiksha.com +||slacker.com +||sm-miracle.com +||soylentnews.org +||spotify.com +||spreadshirt.es +||springboardplatform.com +||sprite.org +@@|http://store.sprite.org +||superpages.com +||swagbucks.com +||switch1.jp +||tapanwap.com +||gsp.target.com +||login.target.com +!--@@||intl.target.com +||rcam.target.com +||technews.tw +||terabox.com +||thinkgeek.com +||thebodyshop-usa.com +||tma.co.jp +||tracfone.com +||tryheart.jp +||turntable.fm +||twerkingbutt.com +||ulop.net +||uukanshu.com +||vegasred.com +||vevo.com +||vip-enterprise.com +|http://viu.tv/ch/ +|http://viu.tv/encore/ +||vmpsoft.com +||wanz-factory.com +||ssl.webpack.de +||weebly.com +||wheretowatch.com +||wingamestore.com +||wizcrafts.net +||wowhead.com +||vod.wwe.com +||xfinity.com +||xiaomi.eu +||youwin.com +||ytn.co.kr +||zamimg.com +||zattoo.com +||zim.vn +||zozotown.com + +!##############General List Start############### +!-------------------Coin Pool------------------- +||c3pool.com +||unmineable.com +||666pool.cn +||antpool.com +||crazypool.org +||cruxpool.com +||miningpoolhub.com +||huobipool.com +||poolbinance.com +||hiveon.net +||sparkpool.com +||flypool.org +||nanopool.org +||xnpool.com +||beepool.com +||zhizhu.top +||spiderpool.com +||uupool.cn +||flexpool.io +||beepool.org +||dpool.top +||okpool.me +||binancezh.cc +||btc.com +||r-pool.net +||w-pool.com + +!-------------------Pure IP--------------------- +14.102.250.18 +14.102.250.19 +50.7.31.230:8898 +174.142.105.153 +69.65.19.160 + +!----------------------IDN---------------------- +||xn--11xs86f.icu +||xn--4gq171p.com +||xn--czq75pvv1aj5c.org +||xn--i2ru8q2qg.com +||xn--noss43i.com +||xn--oiq.cc +||xn--p8j9a0d9c9a.xn--q9jyb4c +||xn--9pr62r24a.com +@@/^https?:\/\/(?=.*?(2x3|ni5|j5o))[a-z0-9.-]+\.xn--ngstr-lra8j\.com$ +||xn--ngstr-lra8j.com + +!-----------------DNS Poisoning----------------- +!---Amazon--- +!-||cdn-images.mailchimp.com +||abebooks.com +|https://*.s3.amazonaws.com + +||9cache.com +||9gag.com +||agro.hk +||share.america.gov +||apkmirror.com +||arte.tv +||artstation.com +||bangdream.space +||behance.net +||bird.so +||bitterwinter.org +||bnn.co +||businessinsider.com +||bwgyhw.com +||castbox.fm +||clyp.it +||cmcn.org +||cmx.im +||dailyview.tw +||daum.net +||depositphotos.com +||disconnect.me +||documentingreality.com +||doubibackup.com +||encyclopedia.com +||fangeqiang.com +||fanqiangdang.com +||feedx.net +||flyzy2005.com +||foreignpolicy.com +||free-ss.site +||freehongkong.org +||blog.fuckgfw233.org +||g0v.social +||globalvoices.org +||glorystar.me +||goregrish.com +||hanime.tv +||hbo.com +||spaces.hightail.com +||hkgalden.com +||hkgolden.com +||hudson.org +||ipfs.io +||japantimes.co.jp +||jiji.com +||jintian.net +||jinx.com +||joinmastodon.org +||liangzhichuanmei.com +||lighti.me +||lightyearvpn.com +||lihkg.com +||line-scdn.net +||i.lithium.com +||cloud.mail.ru +||cdn-images.mailchimp.com +||mastodon.cloud +||mastodon.host +||mastodon.social +||mastodon.xyz +||matters.news +||me.me +||metart.com +||mohu.club +||msa-it.org +||goo.ne.jp +||nikkei.com +||nitter.cc +||nitter.net +||niu.moe +||now.com +||openvpn.org +||onejav.com +||paste.ee +||my.pcloud.com +||picacomic.com +||pincong.rocks +||pixiv.net +||pixiv.org +||pixivsketch.net +||potato.im +||premproxy.com +||prism-break.org +||proton.me +||protonvpn.com +||api.pureapk.com +||quora.com +||quoracdn.net +||qz.com +||cdn.seatguru.com +||redd.it +||redditspace.com +||reddit.com +||reddithelp.com +.redditlist.com +|http://redditlist.com +||redditmedia.com +||redditstatic.com +!--defunct +||rixcloud.com +||rixcloud.us +||rsdlmonitor.com +||shadowsocks.be +||tn1.shemalez.com +||tn2.shemalez.com +||tn3.shemalez.com +||static.shemalez.com +||six-degrees.io +||softfamous.com +||sosreader.com +||sspanel.net +||supchina.com +||teddysun.com +||textnow.me +||tineye.com +||top10vpn.com +||tubepornclassic.com +||uku.im +||unseen.is +||cn.uptodown.com +||uraban.me +||vrsmash.com +||vultryhw.com +||scache.vzw.com +||scache1.vzw.com +||scache2.vzw.com +||ss7.vzw.com +||ssr.tools +||steemit.com +||taiwanjustice.net +||tinc-vpn.org +||u15.info +||washingtonpost.com +||wenzhao.ca +||whatsonweibo.com +||wire.com +||xm.com +||xuehua.us +||yes-news.com +||yigeni.com +||you-get.org +||zzcloud.me + +!---Digital Currency Exchange(CRYPTO)--- +||aex.com +||allcoin.com +||adcex.com +||bcex.ca +||bibox.com +||big.one +||bigone.com +||binance.com +||bit-z.com +||bitz.ai +||bitbay.net +||bitcoinworld.com +||bitfinex.com +||bithumb.com +||bitmex.com +||bnbstatic.com +||btc98.com +||btcbank.bank +||btctrade.im +||bybit.com +||c2cx.com +||chaoex.com +||cobinhood.com +||coinbase.com +||coinbene.com +||coinex.com +!--|https://www.coinexchange.io/ +||coingecko.com +||coingi.com +||coinmarketcap.com +||coinrail.co.kr +||cointiger.com +||cointobe.com +||coinut.com +||discoins.com +||dragonex.io +||ebtcbank.com +||etherdelta.com +||ethermine.org +||etherscan.io +||exmo.com +||exrates.me +||f2pool.com +||fatbtc.com +||ftx.com +||gate.io +||gatecoin.com +||hbg.com +||hitbtc.com +||hotcoin.com +||huobi.co +||huobi.com +||huobi.me +!--||huobi.li +||huobi.pro +||huobi.sc +||huobipro.com +||bx.in.th +||jex.com +||kex.com +||kraken.com +||kspcoin.com +||kucoin.com +||lbank.info +||liquiditytp.com +||livecoin.net +||localbitcoins.com +||mercatox.com +||oanda.com +||obyte.org +||oex.com +||okex.com +||okx.com +||opensea.io +||otcbtc.com +||paxful.com +||poolin.com +||simpleswap.io +||solv.finance +||topbtc.com +||tronscan.org +||xbtce.com +||yobit.net +||zb.com + +!----------------Frauds & Scams----------------- +!!---Content Farm(fake 500 error)--- +||read01.com +||kknews.cc + +china-mmm.jp.net +.lsxszzg.com +.china-mmm.net +||china-mmm.net + +!---------------------Groups-------------------- +!!---Masterdon--- +||bgme.me +||o3o.ca +||go5.dev +||me.ns.ci +||moresci.sale +||social.edu.ci +||mstdn.social +||douchi.space +||slashine.onl +||social.datalabour.com +||mastodon.online + +!!---Afraid FreeDNS--- +.allowed.org +.now.im + +!!---Amazon--- +||payments-jp.amazon.com +||amazon.co.jp +||s3-ap-*.amazonaws.com +||s3.eu-central-1.amazonaws.com +||s3-eu-central-1.amazonaws.com +||s3.us-east-1.amazonaws.com +||s3-ap-northeast-2.amazonaws.com +||s3.ap-northeast-2.amazonaws.com +||s3-ap-northeast-1.amazonaws.com +||s3-ap-southeast-1.amazonaws.com +||s3-ap-southeast-2.amazonaws.com + +!!---AOL--- +video.aol.ca/video-detail +video.aol.co.uk/video-detail +video.aol.com +||video.aol.com +||search.aol.com +www.aolnews.com + +!!---AvMoo--- +.avmo.pw +!--|http://avmo.pw +.avmoo.com +|http://avmoo.com +.avmoo.net +|http://avmoo.net +||avmoo.pw +.javmoo.xyz +|http://javmoo.xyz +.javtag.com +|http://javtag.com +.javzoo.com +|http://javzoo.com +.tellme.pw + +!!---BBC--- +!--.bbc.co.uk/blogs +!--.bbc.co.uk/chinese +!--.bbc.co.uk/news/world-asia-china +!--.bbc.co.uk/tv +!--.bbc.co.uk/zhongwen +!--.bbc.com/ukchina +!--.bbc.com/zhongwen +!--.bbc.com%2Fzhongwen +!--news.bbc.co.uk/onthisday*newsid_2496000/2496277 +!--newsforums.bbc.co.uk +.bbc.com +||bbc.com +.bbc.co.uk +||bbc.co.uk +||bbci.co.uk +.bbcchinese.com +||bbcchinese.com +|http://bbc.in + +!!---Bloomberg--- +.bloomberg.cn +||bloomberg.cn +.bloomberg.com +||bloomberg.com +bloomberg.de +||bloomberg.de +||bloombergview.com +.businessweek.com + +!!---ChangeIP--- +.1dumb.com +.25u.com +.2waky.com +.3-a.net +.4dq.com +.4mydomain.com +.4pu.com +.acmetoy.com +.almostmy.com +.americanunfinished.com +.authorizeddns.net +.authorizeddns.org +.bigmoney.biz +.changeip.name +.changeip.net +.changeip.org +.cleansite.biz +.cleansite.info +.cleansite.us +.compress.to +.ddns.info +.ddns.me.uk +.ddns.mobi +.ddns.ms +.ddns.name +.ddns.us +.dns-dns.com +.dns-stuff.com +.dns04.com +.dns05.com +.dns1.us +.dns2.us +.dnset.com +.dnsrd.com +.dsmtp.com +.dumb1.com +.dynamic-dns.net +.dynamicdns.biz +.dynamicdns.co.uk +.dynamicdns.me.uk +.dynamicdns.org.uk +.dyndns.pro +.dynssl.com +.epac.to +.esmtp.biz +.ezua.com +.faqserv.com +.fartit.com +.freeddns.com +.freetcp.com +.freewww.info +.ftp1.biz +.ftpserver.biz +.gettrials.com +.got-game.org +.gr8domain.biz +.gr8name.biz +.https443.net +.https443.org +.ikwb.com +.instanthq.com +.iownyour.org +.isasecret.com +.itemdb.com +.itsaol.com +.jetos.com +.jkub.com +.jungleheart.com +.justdied.com +.lflink.com +.lflinkup.com +.lflinkup.net +.lflinkup.org +.longmusic.com +.mefound.com +.moneyhome.biz +.mrbasic.com +.mrbonus.com +.mrface.com +.mrslove.com +.my03.com +.mydad.info +.myddns.com +.myftp.info +.mylftv.com +.mymom.info +.mynetav.net +.mynetav.org +.mynumber.org +.mypicture.info +.mypop3.net +.mypop3.org +.mysecondarydns.com +.mywww.biz +.myz.info +.ns01.biz +.ns01.info +.ns01.us +.ns02.biz +.ns02.info +.ns02.us +.ns1.name +.ns2.name +.ns3.name +.ocry.com +.onedumb.com +.onmypc.biz +.onmypc.info +.onmypc.net +.onmypc.org +.organiccrap.com +.otzo.com +.ourhobby.com +.pcanywhere.net +.port25.biz +.proxydns.com +.qhigh.com +.qpoe.com +.rebatesrule.net +.sellclassics.com +.sendsmtp.com +.serveuser.com +.serveusers.com +.sexidude.com +.squirly.info +.ssl443.org +.toh.info +.toythieves.com +.trickip.net +.vizvaz.com +.wikaba.com +.www1.biz +.wwwhost.biz +@@|http://xx.wwwhost.biz +.x24hr.com +.xxuz.com +.xxxy.info +.ygto.com +.youdontcare.com +.yourtrap.com +.zyns.com +.zzux.com + +!!--Cloudflare-- +!--||pages.dev +||workers.dev +||one.one.one.one +||cloudflare-dns.com + +!!---DtDNS--- +!###https://www.dtdns.com/dtsite/faq +.3d-game.com +.4irc.com +.b0ne.com +.chatnook.com +.darktech.org +.deaftone.com +.effers.com +.etowns.net +.etowns.org +.flnet.org +.gotgeeks.com +.scieron.com +.slyip.com +.slyip.net +.suroot.com + +!!---DynDNS--- +!###https://help.dyn.com/list-of-dyn-dns-pro-remote-access-domain-names/ +.blogdns.org +.dyndns.org +.dyndns-ip.com +.dyndns-pics.com +.from-sd.com +.from-pr.com +.is-a-hunter.com + +!!---Dynu--- +.dynu.com +||dynu.com +.dynu.net +.freeddns.org + +!!---Facebook--- +||accountkit.com +||cdninstagram.com +||f8.com +.facebook.com +||facebook.com +!--/^https?:\/\/[^\/]+facebook\.com/ +@@||v6.facebook.com +||facebook.de +||facebook.design +||connect.facebook.net +||facebook.hu +||facebook.in +||facebook.nl +||facebook.se +||facebookmail.com +||fb.com +||fb.me +||fb.watch +||fbcdn.net +||fbsbx.com +||fbaddins.com +||fbworkmail.com +.instagram.com +||instagram.com +||m.me +||messenger.com +||meta.com +||oculus.com +||oculuscdn.com +||rocksdb.org +@@||ip6.static.sl-reverse.com +||parse.com +||thefacebook.com +||threads.net +||whatsapp.com +||whatsapp.net + +!!---Fandom--- +||auntology.fandom.com +||hongkong.fandom.com + +!!---FTChinese--- +.ftchinese.com +||ftchinese.com + +!!---Google--- +||gle +||google +||doc.new +||form.new +||forms.new +||sheet.new +||sheets.new +||spreadsheet.new +||site.new +||sites.new +||website.new +||slides.new +||deck.new +||presentation.new +||googleapis.com +!###https://www.google.com/supported_domains### +!...GFWList doesn't intend to support typosquatting... +||1e100.net +||466453.com +||abc.xyz +||admob.com +||adsense.com +||advertisercommunity.com +||agoogleaday.com +||ampproject.org +@@|https://www.ampproject.org +@@|https://cdn.ampproject.org +||android.com +@@||ci.android.com +||androidify.com +||androidtv.com +||api.ai +.appspot.com +||appspot.com +||autodraw.com +||blogblog.com +blogspot.com +/^https?:\/\/[^\/]+blogspot\.(.*)/ +.blogspot.hk +.blogspot.jp +.blogspot.tw +||business.page +!--||capitalg.com +||certificate-transparency.org +||chrome.com +||chromecast.com +||chromeexperiments.com +||chromestatus.com +||chromium.org +||cloudfunctions.net +||crbug.com +||creativelab5.com +||crrev.com +||data-vocabulary.org +||debug.com +||deepmind.com +||deja.com +||digisfera.com +||docker.com +||docs.new +||duck.com +||feedburner.com +||firebaseio.com +||g.co +||gcr.io +||get.app +||get.dev +||get.how +||get.page +||getmdl.io +||getoutline.org +||ggpht.com +||gmail.com +||gmodules.com +||godoc.org +||golang.org +||goo.gl +||goo.gle +.google.ae +.google.as +.google.am +.google.at +.google.az +.google.ba +.google.be +.google.bg +.google.ca +.google.cd +.google.ci +.google.co.id +.google.co.jp +.google.co.kr +.google.co.ma +.google.co.uk +.google.com +.google.de +||google.dev +.google.dj +.google.dk +.google.es +.google.fi +.google.fm +.google.fr +.google.gg +.google.gl +.google.gr +.google.ie +.google.is +.google.it +.google.jo +.google.kz +.google.lv +.google.mn +.google.ms +.google.nl +.google.nu +.google.no +.google.ro +.google.ru +.google.rw +.google.sc +.google.sh +.google.sk +.google.sm +.google.sn +.google.tk +.google.tm +.google.to +.google.tt +.google.vu +.google.ws +/^https?:\/\/([^\/]+\.)*google\.(ac|ad|ae|af|ai|al|am|as|at|az|ba|be|bf|bg|bi|bj|bs|bt|by|ca|cat|cd|cf|cg|ch|ci|cl|cm|co.ao|co.bw|co.ck|co.cr|co.id|co.il|co.in|co.jp|co.ke|co.kr|co.ls|co.ma|com|com.af|com.ag|com.ai|com.ar|com.au|com.bd|com.bh|com.bn|com.bo|com.br|com.bz|com.co|com.cu|com.cy|com.do|com.ec|com.eg|com.et|com.fj|com.gh|com.gi|com.gt|com.hk|com.jm|com.kh|com.kw|com.lb|com.ly|com.mm|com.mt|com.mx|com.my|com.na|com.nf|com.ng|com.ni|com.np|com.om|com.pa|com.pe|com.pg|com.ph|com.pk|com.pr|com.py|com.qa|com.sa|com.sb|com.sg|com.sl|com.sv|com.tj|com.tr|com.tw|com.ua|com.uy|com.vc|com.vn|co.mz|co.nz|co.th|co.tz|co.ug|co.uk|co.uz|co.ve|co.vi|co.za|co.zm|co.zw|cv|cz|de|dj|dk|dm|dz|ee|es|eu|fi|fm|fr|ga|ge|gg|gl|gm|gp|gr|gy|hk|hn|hr|ht|hu|ie|im|iq|is|it|it.ao|je|jo|kg|ki|kz|la|li|lk|lt|lu|lv|md|me|mg|mk|ml|mn|ms|mu|mv|mw|mx|ne|nl|no|nr|nu|org|pl|pn|ps|pt|ro|rs|ru|rw|sc|se|sh|si|sk|sm|sn|so|sr|st|td|tg|tk|tl|tm|tn|to|tt|us|vg|vn|vu|ws)\/.*/ +!--||google-analytics.com +!--||googleadservices.com +||googleapps.com +||googleartproject.com +||googleblog.com +||googlebot.com +!--||googlecapital.com +||googlechinawebmaster.com +||googlecode.com +||googlecommerce.com +||googledomains.com +||googlearth.com +||googleearth.com +||googledrive.com +||googlefiber.net +||googlegroups.com +||googlehosted.com +||googleideas.com +||googleinsidesearch.com +||googlemail.com +||googlemashups.com +||googlepagecreator.com +||googleplay.com +||googleplus.com +||googlescholar.com +||googlesource.com +!--||googlesyndication.com +!--||googletagmanager.com +!--||googletagservices.com +||googleusercontent.com +.googlevideo.com +||googlevideo.com +||googleweblight.com +||googlezip.net +||gstatic.com +!--||gv.com +||gvt1.com +@@||redirector.gvt1.com +||gvt3.com +||gwtproject.org +||html5rocks.com +||iam.soy +||igoogle.com +||itasoftware.com +||like.com +||madewithcode.com +||material.io +||on2.com +||panoramio.com +||picasaweb.com +||pki.goog +||plus.codes +||polymer-project.org +||questvisual.com +||admin.recaptcha.net +||api.recaptcha.net +||api-secure.recaptcha.net +||api-verify.recaptcha.net +||redhotlabs.com +||savethedate.foo +||schema.org +||shattered.io +|http://sipml5.org/ +||sheets.new +||slides.new +||snapseed.com +||synergyse.com +||teachparentstech.org +||tensorflow.org +||tfhub.dev +||thinkwithgoogle.com +||tiltbrush.com +||translate.goog +||ua5v.com +||urchin.com +||usercontent.goog +!--||www.google +||waveprotocol.org +||waymo.com +||web.dev +||webmproject.org +||webpkgcache.com +||webrtc.org +||whatbrowser.org +||whats.new +||widevine.com +||withgoogle.com +||withyoutube.com +||x.company +||xn--ngstr-lra8j.com +||youtu.be +.youtube.com +||youtube.com +||youtube-nocookie.com +||youtubeeducation.com +||youtubegaming.com +||youtubekids.com +||yt.be +||ytimg.com +||zynamics.com + +!!---KickASS--- +!--OFFICIAL URL list at: https://kastatus.com + +!!---Microsoft--- +!--@@||bing.com +||copilot.microsoft.com + +!!---NaughtyAmerica--- +||naughtyamerica.com + +!!---NYTimes--- +!--||d1f1eryiqyjs0r.cloudfront.net +!--||d3lar09xbwlsge.cloudfront.net +!--||d3q1qj9jzsu8nw.cloudfront.net +!--||dc8xl0ndzn2cb.cloudfront.net +!--||a1.nyt.com +!--||int.nyt.com +!--||s1.nyt.com +static01.nyt.com +!--||static01.nyt.com +!--||typeface.nyt.com +||nyt.com +nytchina.com +nytcn.me +||nytcn.me +||nytco.com +|http://nyti.ms/ +.nytimes.com +||nytimes.com +||nytimg.com +cn.nytstyle.com +||nytstyle.com + +!!---Steam--- +.steamcommunity.com +||steamcommunity.com +!--steamcommunity.com/profiles/76561198062771609 +!--steamcommunity.com/groups/LibetTibet +!--steamcommunity.com/groups/zhonggong +!--steamcommunity.com/id/CJT_Jackton +||store.steampowered.com +||api.steampowered.com +||steamstatic.com +!!---Telegram--- +!!!---Domain--- +||tx.me +||tg.dev +||telega.one +||cdn-telegram.org +||comments.app +||graph.org +||legra.ph +||quiz.directory +||t.me +||updates.tdesktop.com +||telegram.dog +||telegram.me +||telegram.org +||telegram.space +||telegramdownload.com +||telegra.ph +||telesco.pe +!!!---IP--- + +!!---Tiktok--- +||tiktok.com +||tiktokv.com +||tiktokv.us +||tiktokcdn-us.com +||tiktokcdn.com +||tiktokcdn-eu.com + +!!---Twitch--- +||jtvnw.net +||ttvnw.net +||twitch.tv +||twitchcdn.net + +!!---Twitter/X--- +||periscope.tv +.pscp.tv +||pscp.tv +.t.co +||t.co +.tweetdeck.com +||tweetdeck.com +||twimg.com +.twitpic.com +||twitpic.com +.twitter.com +||twitter.com +||twitter.jp +||vine.co +||x.com + +!!---Taiwan--- +||moj.gov.tw +||gov.taipei +.gov.tw +|https://aiss.anws.gov.tw +||archives.gov.tw +||tacc.cwb.gov.tw +||data.gov.tw +||exam.gov.tw +||ey.gov.tw +||fa.gov.tw +||fda.gov.tw +||hpa.gov.tw +||immigration.gov.tw +||itaiwan.gov.tw +||judicial.gov.tw +||li.taipei +||ly.gov.tw +||mjib.gov.tw +||moeaic.gov.tw +||mofa.gov.tw +||mol.gov.tw +||mvdis.gov.tw +||nat.gov.tw +||nhi.gov.tw +||npa.gov.tw +||nsc.gov.tw +||ntbk.gov.tw +||ntbna.gov.tw +||ntbt.gov.tw +||pcc.gov.tw +||stat.gov.tw +||taipei.gov.tw +||taiwanjobs.gov.tw +||thb.gov.tw +||tipo.gov.tw +||wda.gov.tw + +||teco-hk.org +||teco-mo.org + +@@||aftygh.gov.tw +@@||aide.gov.tw +@@||tpde.aide.gov.tw +@@||arte.gov.tw +@@||chukuang.gov.tw +@@||cwb.gov.tw +@@||cycab.gov.tw +@@||dbnsa.gov.tw +@@||df.gov.tw +@@||eastcoast-nsa.gov.tw +@@||erv-nsa.gov.tw +@@||grb.gov.tw +@@||gysd.nyc.gov.tw +@@||hchcc.gov.tw +@@||hsinchu-cc.gov.tw +@@||iner.gov.tw +@@||klsio.gov.tw +@@||kmseh.gov.tw +@@||lungtanhr.gov.tw +@@||maolin-nsa.gov.tw +@@||matsu-news.gov.tw +@@||matsu-nsa.gov.tw +@@||matsucc.gov.tw +@@||moe.gov.tw +@@||nankan.gov.tw +@@||ncree.gov.tw +@@||cromotc.nat.gov.tw +@@||tax.nat.gov.tw +@@||necoast-nsa.gov.tw +@@||ner.gov.tw +@@||nmmba.gov.tw +@@||nmp.gov.tw +@@||nmvttc.gov.tw +@@||northguan-nsa.gov.tw +||npm.gov.tw +@@||nstm.gov.tw +@@||ntdmh.gov.tw +@@||ntl.gov.tw +@@||ntsec.gov.tw +@@||ntuh.gov.tw +@@||nvri.gov.tw +@@||penghu-nsa.gov.tw +@@||post.gov.tw +@@||siraya-nsa.gov.tw +@@||stdtime.gov.tw +@@||sunmoonlake.gov.tw +@@||taitung-house.gov.tw +@@||taoyuan.gov.tw +@@||tphcc.gov.tw +@@||trimt-nsa.gov.tw +@@||vghtpe.gov.tw +@@||vghks.gov.tw +@@||vghtc.gov.tw +@@||wanfang.gov.tw +@@||yatsen.gov.tw +@@||yda.gov.tw + +!--@@||4pppc.gov.tw +!--@@||921.gov.tw +!--@@||dmtip.gov.tw +!--@@||etraining.gov.tw +!--@@||gsn-cert.nat.gov.tw +!--@@||nici.nat.gov.tw +!--@@||hcc.gov.tw +!--@@||hengchuen.gov.tw +!--@@||khcc.gov.tw +!--@@||khms.gov.tw +!--@@||kk.gov.tw +!--@@||klccab.gov.tw +!--@@||klra.gov.tw +!--@@||nmh.gov.tw +!--@@||nmtl.gov.tw +!--@@||pabp.gov.tw +!--@@||pet.gov.tw +!--@@||tchb.gov.tw +!--@@||tcsac.gov.tw +!--@@||tncsec.gov.tw +||kinmen.org.tw + +!!---USA--- +||americorps.gov +||dma.mil +||jpl.nasa.gov +||pds.nasa.gov +||pacom.mil +||soc.mil +||solarsystem.nasa.gov +iipdigital.usembassy.gov +||uscg.mil +||usfk.mil +|http://tarr.uspto.gov/ +||tsdr.uspto.gov + +!!---V2EX--- +||v2ex.com +!--.v2ex.com +!--Included in above rule: dns.v2ex.com +!--@@|http://v2ex.com +!--@@|http://cdn.v2ex.com +!--@@|http://cn.v2ex.com +!--@@|http://hk.v2ex.com +!--@@|http://i.v2ex.com +!--@@|http://lax.v2ex.com +!--@@|http://neue.v2ex.com +!--@@|http://pagespeed.v2ex.com +!--@@|http://static.v2ex.com +!--@@|http://workspace.v2ex.com +!--@@|http://www.v2ex.com + +!!---VOA--- +||voacambodia.com +.voachineseblog.com +||voachineseblog.com +.voacantonese.com +||voacantonese.com +voachinese.com +||voachinese.com +voagd.com +||voaindonesia.com +.voanews.com +||voanews.com +voatibetan.com +||voatibetan.com +.voatibetanenglish.com +||voatibetanenglish.com + +!!---Wikia--- +||zh.ecdm.wikia.com +||evchk.wikia.com +fq.wikia.com +zh.pttpedia.wikia.com/wiki/%E7%BF%92%E5%8C%85%E5%AD%90%E4%B9%8B%E4%BA%82 +cn.uncyclopedia.wikia.com +zh.uncyclopedia.wikia.com + +!-------------Wikipedia Related------------- +!!Emergency need only(IP/Port block usage)!! +!------0------ +||mediawiki.org +!------1------ +||wikidata.org +!------2------ +||wikimedia.org +!------3------ +||wikibooks.org +!------4------ +||wikiversity.org +!------5------ +||wikisource.org +!------6------ +||zh.wikiquote.org +!------7------ +||wikinews.org +!------8------ +||wikivoyage.org +!------9------ +||wiktionary.org +!----Main----- +||wikipedia.org +||wmfusercontent.org + +!!---Yahoo--- +||shopping.yahoo.co.jp +||auctions.yahoo.co.jp +||search.yahoo.co.jp +||yahoo.com.tw +||yahoo.com.hk +||yahoo.com + +!------------------Numerics--------------------- +||ipfs.4everland.io +||91dasai.com +||i.111666.best +||1lib.sk +||2047.one +||69shuba.cx +||2049bbs.xyz +||611study.com +||18comic.org +||000webhost.com +.030buy.com +.0rz.tw +|http://0rz.tw +1-apple.com.tw +||1-apple.com.tw +.1000giri.net +||1000giri.net +||10beasts.net +.10conditionsoflove.com +||10musume.com +123rf.com +.12bet.com +||12bet.com +.12vpn.com +.12vpn.net +||12vpn.com +||12vpn.net +||1337x.to +.138.com +141hongkong.com/forum +||141jj.com +.141tube.com +||1688.com.au +.173ng.com +||173ng.com +.177pic.info +.17t17p.com +||18board.com +18onlygirls.com +.18p2p.com +.18virginsex.com +zhao.1984.city +||zhao.1984.city +1984bbs.com +||1984bbs.com +!--||1984blog.com +.1991way.com +||1991way.com +.1eew.com +.1mobile.com +||1point3acres.com +||1pondo.tv +.2-hand.info +.2000fun.com/bbs +||2008xianzhang.info +||2021hkcharter.com +||2047.name +21andy.com/blog +21sextury.com +.228.net.tw +||233abc.com +||24hrs.ca +2lipstube.com +.2shared.com +30boxes.com +.315lz.com +||32red.com +||36rain.com +.3a5a.com +3arabtv.com +.3boys2girls.com +.3proxy.ru +.3ren.ca +.3tui.net +||404museum.com +||4bluestones.biz +.4chan.com +!--||4chan.org +.4everproxy.com +||4everproxy.com +||4rbtv.com +||4shared.com +taiwannation.50webs.com +||51.ca +||51jav.org +.51luoben.com +||51luoben.com +||5278.cc +.5299.tv +5i01.com +.5isotoi5.org +.5maodang.com +||611study.icu +||63i.com +.64museum.org +64tianwang.com +64wiki.com +.66.ca +666kb.com +||6do.news +||6do.world +.6park.com +||6park.com +||6parkbbs.com +||6parker.com +||6parknews.com +||7capture.com +.7cow.com +!--||7-zip.org +.8-d.com +|http://8-d.com +.85cc.us +|http://85cc.us +.881903.com/page/zh-tw/ +||881903.com +.888.com +.888poker.com +89.64.charter.constitutionalism.solutions +89-64.org +||89-64.org +||8964museum.com +.8news.com.tw +.8z1.net +||8z1.net +||91porn.com +||91porny.com +||91vps.club +.92ccav.com +.991.com +|http://991.com +.99btgc01.com +||99btgc01.com +.99cn.info +|http://99cn.info +||9bis.com +||9bis.net +||9news.com.au + +!--------------------AA------------------------- +||amuletmc.com +||abplive.com +||cdn.arstechnica.net +||aomedia.org +||aljazeera.com +||akinator.com +||annas-archive.org +||av01.tv +||acg.rip +||annas-archive.se +||a-normal-day.com +a5.com.ru +|http://aamacau.com +!--|http://cdn*.abc.com/ +.abc.com +.abc.net.au +||abc.net.au +.abchinese.com +||abebooks.co.uk +.ablwang.com +.aboluowang.com +||aboluowang.com +||about.me +.abs.edu +||acast.com +.accim.org +.aceros-de-hispania.com +.acevpn.com +||acevpn.com +.acg18.me +|http://acg18.me +||acgbox.org +||acgkj.com +||acgnx.se +.acmedia365.com +.acnw.com.au +actfortibet.org +actimes.com.au +activpn.com +||activpn.com +||aculo.us +||addictedtocoffee.de +||addyoutube.com +.adelaidebbs.com/bbs +.adpl.org.hk +|http://adpl.org.hk +.adult-sex-games.com +||adult-sex-games.com +adultfriendfinder.com +||advanscene.com +||advertfan.com +.ae.org +||aei.org +||aenhancers.com +||af.mil +.afantibbs.com +|http://afantibbs.com +||afr.com +||aiosearch.com +.aiph.net +||aiph.net +.airasia.com +||airconsole.com +|http://download.aircrack-ng.org +.airvpn.org +||airvpn.org +.aisex.com +||ait.org.tw +aiweiwei.com +.aiweiweiblog.com +||aiweiweiblog.com +||www.ajsands.com + +!!---Akamai--- +a248.e.akamai.net +||a248.e.akamai.net + +rfalive1.akacast.akamaistream.net +voa-11.akacast.akamaistream.net + +|https://fbcdn*.akamaihd.net/ +!--||fbexternal-a.akamaihd.net +!--||fbstatic-a.akamaihd.net +!--|https://igcdn*.akamaihd.net +rthklive2-lh.akamaihd.net + +.akademiye.org/ug +|http://akademiye.org/ug +||akiba-online.com +||akow.org +.al-islam.com +||alabout.com +.alanhou.com +|http://alanhou.com +.alarab.qa +||alasbarricadas.org +||alforattv.net +.alhayat.com +.alicejapan.co.jp +aliengu.com +||alive.bar +||alkasir.com +||all4mom.org +||allconnected.co +.alldrawnsex.com +||alldrawnsex.com +||allfinegirls.com +.allgirlmassage.com +allgirlsallowed.org +.allgravure.com +alliance.org.hk +.allinfa.com +||allinfa.com +.alljackpotscasino.com +||allmovie.com +.alphaporno.com +||alternate-tools.com +alternativeto.net/software +alvinalexander.com +alwaysdata.com +||alwaysdata.com +||alwaysdata.net +.alwaysvpn.com +||alwaysvpn.com +||am730.com.hk +ameblo.jp +||ameblo.jp +www1.american.edu/ted/ice/tibet +||americangreencard.com +||amiblockedornot.com +.amigobbs.net +.amitabhafoundation.us +|http://amitabhafoundation.us +.amnesty.org +||amnesty.org +||amnesty.org.hk +.amnesty.tw +.amnestyusa.org +||amnestyusa.org +.amtb-taipei.org +.andygod.com +|http://andygod.com +annatam.com/chinese +||anchor.fm +||anchorfree.com +!--GHS +||ancsconf.org +||andfaraway.net +||android-x86.org +||androidapksfree.com +angelfire.com/hi/hayashi +||angularjs.org +animecrazy.net +aniscartujo.com +||aniscartujo.com +||anobii.com +||anonfiles.com +.anonymitynetwork.com +.anonymizer.com +.anonymouse.org +||anonymouse.org +anontext.com +.anpopo.com +.answering-islam.org +|http://www.antd.org +||anthonycalzadilla.com +antichristendom.com +.antiwave.net +|http://antiwave.net +.anyporn.com +.anysex.com +|http://anysex.com +.ao3.org +||ao3.org +||aobo.com.au +.aofriend.com +|http://aofriend.com +.aojiao.org +||aomiwang.com +||apat1989.org +.apetube.com +||apiary.io +.apigee.com +||apigee.com +||apk.support +||apkcombo.com +.apkmonk.com/app +||apkmonk.com +||apkplz.com +||apkpure.com +||apkpure.net +||appadvice.com +!--||appannie.com +||appbrain.com +.appdownloader.net/Android +.appledaily.com +||appledaily.com +appledaily.com.tw +||appledaily.com.tw +.appshopper.com +|http://appshopper.com +||appsocks.net +||appsto.re +.aptoide.com +||aptoide.com +||archives.gov +.archive.fo +||archive.fo +||archive.vn +||archive.is +||archive.is +||archive.li +||archive.li +||archive.md +||archive.org +||archive.ph +||archive.today +||archiveofourown.com +||archiveofourown.org +.arctosia.com +||arctosia.com +||areca-backup.org +.arethusa.su +||arethusa.su +||arlingtoncemetery.mil +.art4tibet1998.org +artofpeacefoundation.org +artsy.net +||asacp.org +asdfg.jp/dabr +asg.to +.asia-gaming.com +.asiaharvest.org +||asiaharvest.org +||asianage.com +||asianews.it +||asiansexdiary.com +||asiaone.com +.asiatgp.com +||ask.com +||askstudent.com +.askynz.net +||askynz.net +||aspi.org.au +||aspistrategist.org.au +||assembla.com +||astrill.com +||atc.org.au +.atchinese.com +|http://atchinese.com +atgfw.org +.atlanta168.com +||atlanta168.com +.atnext.com +||atnext.com +||audacy.com +ice.audionow.com +.av.com +||av.movie +.av-e-body.com +avaaz.org +||avaaz.org +!--||avast.com +.avcool.com +.avdb.in +||avdb.in +.avdb.tv +||avdb.tv +.avfantasy.com +||avg.com +.avgle.com +||avgle.com +||avidemux.org +||avoision.com +.avyahoo.com +||axios.com +||axureformac.com +azerimix.com +||azirevpn.com +!--boxun.azurewebsites.net doesn't exist. +boxun*.azurewebsites.net +||boxun*.azurewebsites.net + +!--------------------BB------------------------- +||bt4gprx.com +||bt4g.org +||betterhash.net +||binance.org +||bitget.com +||blackmagicdesign.com +||bearteach.com +||btbtt.me +||btbtt.co +||btbit.net +||betaclouds.net +||blocktempo.com +||blockcast.it +||www.bing.com +||bangumi.moe +||b-ok.cc +forum.baby-kingdom.com +||babylonbee.com +babynet.com.hk +backchina.com +||backchina.com +.backpackers.com.tw/forum +backtotiananmen.com +||bad.news +.badiucao.com +||badiucao.com +.badjojo.com +badoo.com +|http://*2.bahamut.com.tw +||baidu.jp +.baijie.org +||baijie.org +||bailandaily.com +||baixing.me +||baizhi.org +.banana-vpn.com +||banana-vpn.com +||band.us +||bandcamp.com +.bandwagonhost.com +||bandwagonhost.com +.bangbrosnetwork.com +.bangchen.net +|http://bangchen.net +||bangkokpost.com +||bangyoulater.com +bannedbook.org +||bannedbook.org +.bannednews.org +.baramangaonline.com +|http://baramangaonline.com +.barenakedislam.com +||barnabu.co.uk +||barton.de +.bastillepost.com +||bastillepost.com +bayvoice.net +||bayvoice.net +||bbchat.tv +||bb-chat.tv +.bbg.gov +.bbkz.com/forum +.bbnradio.org +bbs-tw.com +.bbsdigest.com/thread +bbsland.com +.bbsmo.com +.bbsone.com +bbtoystore.com +.bcc.com.tw/board +.bcchinese.net +.bcmorning.com +bdsmvideos.net +.beaconevents.com +.bebo.com +||bebo.com +.beevpn.com +||beevpn.com +.behindkink.com +||beijing1989.com +||beijing2022.art +beijingspring.com +||beijingspring.com +.belamionline.com +.bell.wiki +|http://bell.wiki +bemywife.cc +beric.me +||berlinerbericht.de +.berlintwitterwall.com +||berlintwitterwall.com +.berm.co.nz +.bestgore.com +.bestpornstardb.com +||bestvpn.com +||bestvpnanalysis.com +||bestvpnforchina.net +||bestvpnserver.com +||bestvpnservice.com +||bestvpnusa.com +||bet365.com +.betfair.com +||betternet.co +.bettervpn.com +||bettervpn.com +.bettween.com +||bettween.com +||betvictor.com +.bewww.net +.beyondfirewall.com +||bfnn.org +||bfsh.hk +.bgvpn.com +||bgvpn.com +.bianlei.com +@@||bianlei.com +biantailajiao.com +||biblesforamerica.org +||vpl.bibliocommons.com +||biedian.me +bigfools.com +||bigjapanesesex.com +.bignews.org +||bignews.org +.bigsound.org +||bild.de +.biliworld.com +|http://biliworld.com +|http://billypan.com/wiki +.binux.me +ai.binwang.me/couplet +.bit.do +|http://bit.do +.bit.ly +|http://bit.ly +!--||bitbucket.org +||bitchute.com +||bitcointalk.org +.bitshare.com +||bitshare.com +bitsnoop.com +.bitvise.com +||bitvise.com +bizhat.com +||bl-doujinsouko.com +.bjnewlife.org +.bjs.org +bjzc.org +||bjzc.org +||blacked.com +.blacklogic.com +.blackvpn.com +||blackvpn.com +blewpass.com +.blinkx.com +||blinkx.com +blinw.com +.blip.tv +||blip.tv +||blockcast.it +.blockcn.com +||blockcn.com +||blockedbyhk.com +||blockless.com +||blog.de +.blog.jp +|http://blog.jp +@@||jpush.cn +.blogcatalog.com +||blogcatalog.com +||blogcity.me +.blogger.com +||blogger.com +blogimg.jp +.bloglines.com +||bloglines.com +||bloglovin.com +rconversation.blogs.com +.blogtd.org +|http://blogtd.org +||bloodshed.net +||bootstrapcdn.com +||bloomfortune.com +blueangellive.com +||blubrry.com +||bmdru.com +||bnext.com.tw +||bnrmetal.com +boardreader.com/thread +||boardreader.com +.bod.asia +||bod.asia +.bodog88.com +.bolehvpn.net +||bolehvpn.net +bonbonme.com +.bonfoundation.org +.bongacams.com +||boobstagram.com +||book.com.tw +||bookdepository.com +bookepub.com +||books.com.tw +||bookwalker.com.tw +||borgenmagazine.com +||botanwang.com +.bot.nu +.bowenpress.com +||bowenpress.com +||app.box.com +dl.box.net +||dl.box.net +.boxpn.com +||boxpn.com +boxun.com +||boxun.com +.boxun.tv +||boxun.tv +.boxunclub.com +boyangu.com +.boyfriendtv.com +.boysfood.com +||br.st +.brainyquote.com/quotes/authors/d/dalai_lama +||braumeister.org +||brave.com +.bravotube.net +||bravotube.net +.brazzers.com +||brazzers.com +||breached.to +.break.com +||break.com +breakgfw.com +||breakgfw.com +breaking911.com +.breakingtweets.com +||breakingtweets.com +||breakwall.net +briian.com/6511/freegate +||brill.com +brizzly.com +||brizzly.com +broadbook.com +.broadpressinc.com +||broadpressinc.com +bbs.brockbbs.com +||brookings.edu +brucewang.net +.brutaltgp.com +||brutaltgp.com +||bsky.app +||bsky.network +||bsky.social +||bt95.com +.btaia.com +.btbtav.com +||btdig.com +||btdigg.org +||btguard.com +.btku.me +||btku.me +||btku.org +.btspread.com +.btsynckeys.com +.budaedu.org +||budaedu.org +.buddhanet.com.tw/zfrop/tibet +||buffered.com +||bullguard.com +.bullog.org +||bullog.org +.bullogger.com +||bullogger.com +||bumingbai.net +||bunbunhk.com +.busayari.com +|http://busayari.com +||business-humanrights.org +.businessinsider.com/bing-could-be-censoring-search-results-2014 +.businessinsider.com/china-banks-preparing-for-debt-implosion-2014 +.businessinsider.com/hong-kong-activists-defy-police-tear-gas-as-protests-continue-overnight-2014 +.businessinsider.com/internet-outages-reported-in-north-korea-2014 +.businessinsider.com/iphone-6-is-approved-for-sale-in-china-2014 +.businessinsider.com/nfl-announcers-surface-tablets-2014 +.businessinsider.com/panama-papers +.businessinsider.com/umbrella-man-hong-kong-2014 +|http://www.businessinsider.com.au/* +.businesstoday.com.tw +||businesstoday.com.tw +.busu.org/news +|http://busu.org/news +busytrade.com +.buzzhand.com +.buzzhand.net +.buzzorange.com +||buzzorange.com +||buzzsprout.com +||bvpn.com +||bwh1.net +||bypasscensorship.org + +!--------------------CC------------------------- +||covenantswatch.org.tw +||cpu-monkey.com +||coffeemanga.to +||ctinews.com +||cachefly.com +||cachefly.net +||cutout.pro +||cixiaoya.club +||campaign-archive.com +||chinauncensored.tv +||catbox.moe +||crosswall.org +||clipconverter.cc +||zh-hans.cfsh99.com +||colacloud.net +||ci-en.jp +||c-span.org +.c-spanvideo.org +||c-spanvideo.org +||c-est-simple.com +.c100tibet.org +||cableav.tv +||cablegatesearch.net +.cachinese.com +.cacnw.com +|http://cacnw.com +.cactusvpn.com +||cactusvpn.com +.cafepress.com +.cahr.org.tw +.calameo.com/books +||calendarz.com +.calgarychinese.ca +.calgarychinese.com +.calgarychinese.net +.cam4.com +.cam4.jp +.cam4.sg +.camfrog.com +||camfrog.com +||campaignforuyghurs.org +||cams.com +.cams.org.sg +canadameet.com +.canalporno.com +|http://bbs.cantonese.asia/ +!--http://www.cantonese.asia/action-bbs.html +.canyu.org +||canyu.org +.caobian.info +||caobian.info +caochangqing.com +||caochangqing.com +.cap.org.hk +||cap.org.hk +||caoporn.us +.carabinasypistolas.com +cardinalkungfoundation.org +||posts.careerengine.us +carmotorshow.com +||carrd.co +.cartoonmovement.com +||cartoonmovement.com +.casadeltibetbcn.org +.casatibet.org.mx +|http://casatibet.org.mx +.cari.com.my +||cari.com.my +||caribbeancom.com +||carousell.com.hk +.casinoking.com +.casinoriva.com +||catch22.net +.catchgod.com +|http://catchgod.com +.catholic.org.hk +||catholic.org.hk +catholic.org.tw +||catholic.org.tw +.cathvoice.org.tw +||cato.org +||cattt.com +||caus.com +.cbc.ca +||cbc.ca +.cbsnews.com/video +.cbtc.org.hk +||southpark.cc.com +!-.ccc.de +!-||ccc.de +||cccat.cc +||cccat.co +||ccfd.org.tw +.cchere.com +||cchere.com +.ccim.org +.cclife.ca +cclife.org +||cclife.org +cclifefl.org +||cclifefl.org +.ccthere.com +||ccthere.com +||ccthere.net +.cctmweb.net +.cctongbao.com/article/2078732 +ccue.ca +ccue.com +.ccvoice.ca +.ccw.org.tw +.cgdepot.org +|http://cgdepot.org +||cdbook.org +.cdef.org +||cdef.org +||cdig.info +cdjp.org +||cdjp.org +!--.cdn-apple.com +!--||cdn-apple.com +.cdnews.com.tw +cdp1989.org +cdp1998.org +||cdp1998.org +cdp2006.org +||cdp2006.org +||cdpeu.org +||cdpuk.co.uk +||cdpweb.org +||cdpweb.org +||cdpwu.org +||cdw.com +||cecc.gov +||cellulo.info +||cenews.eu +||centerforhumanreprod.com +||centralnation.com +.centurys.net +|http://centurys.net +.cfhks.org.hk +.cfos.de +||cfr.org +.cftfc.com +.cgst.edu +.change.org +||change.org +.changp.com +||changp.com +||channelnewsasia.com +||chanworld.org +||chaos.social +||character.ai +||chatgpt.com +.chaturbate.com +||chaturbate.com +.chuang-yen.org +||checkgfw.com +||chengmingmag.com +||chenguangcheng.com +||chenpokong.com +||chenpokongvip.com +||cherrysave.com +||chhongbi.org +||china-week.com +||china101.com +||china18.org +||china21.com +||china21.org +||china5000.us +||chinaaffairs.org +||chinaaid.us +||chinaaid.org +||chinaaid.net +||chinachange.org +||chinachannel.hk +||chinademocrats.org +||chinadialogue.net +||chinadigitaltimes.net +||chinaelections.org +||chinafile.com +||chinafreepress.org +.chinagate.com +chinagfw.org +||chinagfw.org +.chinagonet.com +.chinahorizon.org +||chinahorizon.org +.chinahush.com +.chinainperspective.com +chinalaborwatch.org +chinalawtranslate.com +.chinapost.com.tw/taiwan/national/national-news +chinalawandpolicy.com +.chinamule.com +||chinamule.com +chinamz.org +.chinanewscenter.com +|https://chinanewscenter.com +.chinapress.com.my +||chinapress.com.my +.china-review.com.ua +|http://china-review.com.ua +.chinarightsia.org +chinasmile.net/forums +chinasocialdemocraticparty.com +||chinasocialdemocraticparty.com +chinasoul.org +||chinasoul.org +.chinasucks.net +||chinatopsex.com +.chinatown.com.au +chinaway.org +.chinaworker.info +||chinaworker.info +chinayouth.org.hk +chinese-leaders.org +||chinese-memorial.org +.chinesedaily.com +||chinesedailynews.com +.chinesedemocracy.com +||chinesedemocracy.com +||chinesegay.org +.chinesen.de +||chinesen.de +||chinesenews.net.au +.chinesepen.org +||chineseradioseattle.com +||chineseupress.com +.chingcheong.com +||chingcheong.com +.chinman.net +|http://chinman.net +chithu.org +||cnnews.chosun.com +.chrdnet.com +|http://chrdnet.com +.christianfreedom.org +||christianfreedom.org +christianstudy.com +||christianstudy.com +christusrex.org/www1/sdc +.chubold.com +chubun.com +||christiantimes.org.hk +.chrlawyers.hk +||chrlawyers.hk +.churchinhongkong.org/b5/index.php +|http://churchinhongkong.org/b5/index.php +.chushigangdrug.ch +.cienen.com +.cineastentreff.de +.cipfg.org +||cirosantilli.com +.citizencn.com +||citizencn.com +||citizenlab.ca +||citizenlab.org +.citizenlab.org +citizensradio.org +.city365.ca +|http://city365.ca +city9x.com +||citypopulation.de +.citytalk.tw/event +.civicparty.hk +||civicparty.hk +civilhrfront.org +||civilhrfront.org +.civiliangunner.com +.civilmedia.tw +||civilmedia.tw +||civitai.com +.ck101.com +||ck101.com +.clarionproject.org/news/islamic-state-isis-isil-propaganda +||classicalguitarblog.net +.clb.org.hk +clearharmony.net +clearwisdom.net +||clinica-tibet.ru +.clipfish.de +||app.cloudcone.com +||cloudflare-ipfs.com +||club1069.com +||clubhouseapi.com +||cmegroup.com +||cmi.org.tw +|http://www.cmoinc.org +cmp.hku.hk +||cmule.com +||cms.gov +|http://vpn.cmu.edu +|http://vpn.sv.cmu.edu +.cn6.eu +.cna.com.tw +||cna.com.tw +.cnabc.com +.cnd.org +||cnd.org +download.cnet.com +.cnex.org.cn +.cnineu.com +.cnn.com/video +.cnpolitics.org +||cnpolitics.org +.cn-proxy.com +|http://cn-proxy.com +.cnproxy.com +news.cnyes.com +||coat.co.jp +||cochina.org +||codeshare.io +||codeskulptor.org +||cofacts.tw +||conoha.jp +|http://tosh.comedycentral.com +comefromchina.com +||comefromchina.com +.comic-mega.me +commandarms.com +||commentshk.com +.communistcrimes.org +||communistcrimes.org +||communitychoicecu.com +||comparitech.com +||compileheart.com +||conoha.jp +.contactmagazine.net +.convio.net +||cool18.com +.coolaler.com +||coolaler.com +coolder.com +||coolder.com +||coolloud.org.tw +.coolncute.com +||coolstuffinc.com +corumcollege.com +.cos-moe.com +|http://cos-moe.com +.cosplayjav.pl +|http://cosplayjav.pl +.cotweet.com +||cotweet.com +.coursehero.com +||coursehero.com +cpj.org +||cpj.org +.cq99.us +|http://cq99.us +crackle.com +||crackle.com +.crazys.cc +.crazyshit.com +||crazyshit.com +||crchina.org +crd-net.org +creaders.net +||creaders.net +.creadersnet.com +||cristyli.com +||croxyproxy.com +.crocotube.com +|http://crocotube.com +.crossvpn.net +||crossvpn.net +||crucial.com +||blog.cryptographyengineering.com +csdparty.com +||csdparty.com +||csis.org +||csmonitor.com +||csuchen.de +||csw.org.uk +||ct.org.tw +.ctao.org +||ctitv.com.tw +||ctowc.org +||cts.com.tw +||ctwant.com +|http://library.usc.cuhk.edu.hk/ +|http://mjlsh.usc.cuhk.edu.hk/ +.cuhkacs.org/~benng +.cuiweiping.net +||cuiweiping.net +||culture.tw +.cumlouder.com +||cumlouder.com +||curvefish.com +||cusp.hk +.cutscenes.net +||cutscenes.net +.cw.com.tw +||cw.com.tw +|http://forum.cyberctm.com +cyberghostvpn.com +||cyberghostvpn.com +||cynscribe.com +||ifan.cz.cc +||mike.cz.cc +||nic.cz.cc + +!--------------------DD------------------------- +||deno.dev +||docs.deno.com +||doom9.org +||dweb.link +||docker.io +||disneyplus.com +||ddex.io +||d.cash +||doubiyunbackup.com +||cloud.dify.ai +.d-fukyu.com +|http://d-fukyu.com +.d100.net +||d100.net +.d2bay.com +|http://d2bay.com +.dabr.co.uk +||dabr.co.uk +dabr.eu +dabr.mobi +||dabr.mobi +||dabr.me +dadazim.com +||dadazim.com +.dadi360.com +.dafabet.com +dafagood.com +dafahao.com +.dafoh.org +.daftporn.com +.dagelijksestandaard.nl +.daidostup.ru +|http://daidostup.ru +||dailymail.co.uk +.dailymotion.com +||dailymotion.com +||dailysabah.com +.dajiyuan.com +||dajiyuan.de +dajiyuan.eu +dalailama.com +.dalailama.mn +|http://dalailama.mn +.dalailama.ru +||dalailama.ru +dalailama80.org +.dalailama-archives.org +.dalailamacenter.org +|http://dalailamacenter.org +dalailamafellows.org +.dalailamafilm.com +.dalailamafoundation.org +.dalailamahindi.com +.dalailamainaustralia.org +.dalailamajapanese.com +.dalailamaprotesters.info +.dalailamaquotes.org +.dalailamatrust.org +.dalailamavisit.org.nz +.dalailamaworld.com +||dalailamaworld.com +dalianmeng.org +||dalianmeng.org +.daliulian.org +||daliulian.org +.danke4china.net +||danke4china.net +daolan.net +||darrenliuwei.com +||dashlane.com +||daum.net +.david-kilgour.com +|http://david-kilgour.com +daxa.cn +||daxa.cn +.daylife.com/topic/dalai_lama +||db.tt +||dbgjd.com +||dcard.tw +dcmilitary.com +||ddc.com.tw +||deadhouse.org +||deadline.com +||deepai.org +||decodet.co + +!--Origin:cdn-i30$_ +!--Exception: Homepage access without rst +!--Keyword is $_ +.definebabe.com + +||delcamp.net +delicious.com/GFWbookmark +.democrats.org +||democrats.org +.demosisto.hk +||demosisto.hk +||desc.se +||dessci.com +.destroy-china.jp +||deutsche-welle.de +||deviantart.com +||deviantart.net +||devio.us +||devpn.com +||devv.ai +dfn.org +dharmakara.net +.dharamsalanet.com +.diaoyuislands.org +||diaoyuislands.org +.difangwenge.org +|http://digiland.tw/ +.diigo.com +||diigo.com +.dipity.com +||directcreative.com +!--||discogs.com +!--@@||cdn.discogs.com +.discuss.com.hk +||discuss.com.hk +.discuss4u.com +||disp.cc +.disqus.com +||disqus.com +.dit-inc.us +||dit-inc.us +||diyin.org +.dizhidizhi.com +||dizhuzhishang.com +djangosnippets.org +||dl-laby.jp +||dlive.tv +||dlsite.com +||dlyoutube.com +||dmc.nico +||dmcdn.net +.dnscrypt.org +||dnscrypt.org +||dns2go.com +||dnssec.net +doctorvoice.org + +!--DogFartNetwork +.dogfartnetwork.com/tour +gloryhole.com + +.dojin.com +||dolc.de +||dolf.org.hk +.domain.club.tw +.domaintoday.com.au +chinese.donga.com +dongtaiwang.com +||dongtaiwang.com +.dongtaiwang.net +||dongtaiwang.net +.dongyangjing.com +||danbooru.donmai.us +.dontfilter.us +||doosho.com +||doourbest.org +.dorjeshugden.com +.dotplane.com +||dotplane.com +||dotsub.com +.dotvpn.com +||dotvpn.com +.doub.io +||doub.io +||doublethinklab.org +||dougscripts.com +||doujincafe.com +|https://bartender.dowjones.com +dphk.org +dpp.org.tw +||dpp.org.tw +||dpr.info +||dragonsprings.org +!--||draw.io +.dreamamateurs.com +.drepung.org +||drgan.net +||dropbooks.tv +||dropbox.com +||dropboxapi.com +||dropboxusercontent.com +.drtuber.com +.dscn.info +|http://dscn.info +.dstk.dk +|http://dstk.dk +||dtiblog.com +||dtic.mil +.duckduckgo.com +||duckduckgo.com +.duckload.com/download +||duckmylife.com +.duga.jp +|http://duga.jp +.duihua.org +||duihua.org +||duihuahrjournal.org +duping.net +||duplicati.com +dupola.com +dupola.net +.dushi.ca +||duyaoss.com +||dvorak.org +.dw.com +||dw.com +||dw.de +.dw-world.com +||dw-world.com +.dw-world.de +|http://dw-world.de +www.dwheeler.com +dwnews.com +||dwnews.com +dwnews.net +||dwnews.net +xys.dxiong.com +||dynawebinc.com +||dysfz.cc +.dzze.com + +!--------------------EE------------------------- +||e621.net +||edx-cdn.org +||everipedia.org +||epochtimes.com.tw +||etherscan.com +||elconfidencial.com +||e-classical.com.tw +||e-gold.com +.e-gold.com +.e-hentai.org +||e-hentai.org +.e-hentaidb.com +|http://e-hentaidb.com +e-info.org.tw +.e-zone.com.hk/discuz +|http://e-zone.com.hk/discuz +.e123.hk +||e123.hk +.earlytibet.com +|http://earlytibet.com +.earthcam.com +.earthvpn.com +||earthvpn.com +||eastasiaforum.org +.easternlightning.org +.eastturkestan.com +|http://www.eastturkistan.net/ +.eastturkistan-gov.org +.eastturkistancc.org +.eastturkistangovernmentinexile.us +||eastturkistangovernmentinexile.us +.easyca.ca +.easypic.com +||fnc.ebc.net.tw +||news.ebc.net.tw +.ebony-beauty.com +ebookbrowse.com +ebookee.com +||ecfa.org.tw +||ecimg.tw +ecministry.net +.economist.com +bbs.ecstart.com +edgecastcdn.net +||edgecastcdn.net +/twimg\.edgesuite\.net\/\/?appledaily/ +edicypages.com +.edmontonchina.cn +.edmontonservice.com +edoors.com +.edubridge.com +||edubridge.com +.edupro.org +||eevpn.com +efcc.org.hk +.efukt.com +|http://efukt.com +||eic-av.com +||eireinikotaerukai.com +.eisbb.com +.eksisozluk.com +||eksisozluk.com +electionsmeter.com +||elgoog.im +.elpais.com +||elpais.com +.eltondisney.com +.emaga.com/info/3407 +emilylau.org.hk +.emanna.com/chineseTraditional +.empfil.com +.emule-ed2k.com +|http://emule-ed2k.com +.emulefans.com +|http://emulefans.com +.emuparadise.me +.enanyang.my +!--.enanyang.my/news/20170502/%E7%BE%8E%E5%9B%BD%E4%B9%8B%E9%9F%B3%E5%A4%A7%E5%9C%B0%E9%9C%87%E3%80%8A%E8%8B%B9%E6%9E%9C%E3%80%8B%E7%8B%AC%E5%AE%B6 +||encrypt.me +||enewstree.com +.enfal.de +||chinese.engadget.com +englishforeveryone.org +||englishfromengland.co.uk +englishpen.org +.enlighten.org.tw +||entermap.com +.episcopalchurch.org +.epochhk.com +||epochhk.com +epochtimes-bg.com +||epochtimes-bg.com +epochtimes-romania.com +||epochtimes-romania.com +epochtimes.co.il +||epochtimes.co.il +epochtimes.co.kr +||epochtimes.co.kr +epochtimes.com +||epochtimes.com +.epochtimes.cz +||epochtimes.de +||epochtimes.fr +||epochtimes.it +||epochtimes.jp +||epochtimes.ru +||epochtimes.se +||epochtimestr.com +.epochweek.com +||epochweek.com +||epochweekly.com +||eporner.com +.equinenow.com +erabaru.net +.eracom.com.tw +.eraysoft.com.tr +.erepublik.com +.erights.net +||erights.net +||ernestmandel.org +||erodaizensyu.com +||erodoujinlog.com +||erodoujinworld.com +||eromanga-kingdom.com +||eromangadouzin.com +.eromon.net +|http://eromon.net +.eroprofile.com +.eroticsaloon.net +.eslite.com +||eslite.com +.etaa.org.au +.etadult.com +etaiwannews.com +||etizer.org +||etokki.com +||etsy.com +.ettoday.net +etvonline.hk +.eucasino.com +.eulam.com +.eurekavpt.com +||eurekavpt.com +.euronews.com +||euronews.com +eeas.europa.eu/delegations/china/press_corner/all_news/news/2015/20150716_zh +eeas.europa.eu/statements-eeas/2015/151022 +||apps.evozi.com +||evschool.net +||exblog.jp +@@||www.exblog.jp +.exchristian.hk +||exchristian.hk +|http://blog.excite.co.jp +||exhentai.org +||exmormon.org +||expatshield.com +.expecthim.com +||expecthim.com +experts-univers.com +||exploader.net +.expressvpn.com +||expressvpn.com +.extremetube.com +eyevio.jp +||eyevio.jp +.eyny.com +||eyny.com +.ezpeer.com + +!--------------------FF------------------------- +||feedly.com +||fuckccp.xyz +||fuckccp.com +||furrybar.com +||forbes.com +||financialexpress.com +||fast.com +||factchecklab.org +||ft.com +||fuchsia.dev +||freess.org +||fril.jp +||free.com.tw +||froth.zone +||fanbox.cc +||free.bg +||f-droid.org +||facebookquotes4u.com +.faceless.me +||faceless.me +|http://facesoftibetanselfimmolators.info +||facesofnyfw.com +||factpedia.org +.faith100.org +|http://faith100.org + +!--Enhancement: +!--http://faithfuleye.com.detail.website/ +!--http://faithfuleye.com.ipaddress.com/ +.faithfuleye.com + +||faiththedog.info +.fakku.net +||fallenark.com +.falsefire.com +||falsefire.com +falun-co.org +falunart.org +||falunasia.info +|http://falunau.org +.falunaz.net +falundafa.org +falundafa-dc.org +||falundafa-florida.org +||falundafa-nc.org +||falundafa-pa.net +falun-ny.net +||falundafaindia.org +falundafamuseum.org +.falungong.club +.falungong.de +falungong.org.uk +||falunhr.org +faluninfo.de +faluninfo.net +.falunpilipinas.net +familyfed.org +.fangeming.com +||fanglizhi.info +||fangong.org +fangongheike.com +||fanhaolou.com +.fanqiang.tk +fanqianghou.com +||fanqianghou.com +.fanqiangzhe.com +||fanqiangzhe.com +||fantv.hk +fapdu.com +faproxy.com +!--.farxian.com +.fawanghuihui.org +||famunion.com +.fan-qiang.com +fangeming.com +.fanhaodang.com +||fanqiang.network +||fanswong.com +.fanyue.info +.farwestchina.com + +!--Fastly +en.favotter.net +!--||rnw.global.ssl.fastly.net +.global.ssl.fastly.net +||freetls.fastly.net +nytimes.map.fastly.net +||nytimes.map.fastly.net +||fast.wistia.com + +||fastestvpn.com +||fastssh.com +||faststone.org +favstar.fm +||favstar.fm +faydao.com/weblog +||faz.net +.fc2.com +.fc2china.com +.fc2cn.com +||fc2cn.com +fc2blog.net +|http://uygur.fc2web.com/ +.fdc64.de +.fdc64.org +.fdc89.jp +!--feedbooks.mobi +||feeder.co +||feelssh.com +feer.com +|http://feitianacademy.org +.feitian-california.org +||feixiaohao.com +||feministteacher.com +.fengzhenghu.com +||fengzhenghu.com +.fengzhenghu.net +||fengzhenghu.net +.fevernet.com +|http://ff.im +fffff.at +fflick.com +.ffvpn.com +fgmtv.net +.fgmtv.org +.fhreports.net +|http://fhreports.net +.figprayer.com +||figprayer.com +.fileflyer.com +||fileflyer.com +|http://feeds.fileforum.com +.fileserve.com/file +fillthesquare.org +filmingfortibet.org +.filthdump.com +.finchvpn.com +||finchvpn.com +!--findbook.tw +findmespot.com +||findyoutube.com +||findyoutube.net +.fingerdaily.com +.firearmsworld.net +|http://firearmsworld.net +||relay.firefox.com +||fireofliberty.info +||fireofliberty.org +.firetweet.io +||firetweet.io +||open.firstory.me +||firstpost.com +||firstrade.com +||fish.audio +!--||flagfox.net +.flagsonline.it +fleshbot.com +.fleursdeslettres.com +|http://fleursdeslettres.com +||flgjustice.org + +!--||farm6.staticflickr.com +!--.flickr.com/photos/46231077@N06 +!--.flickr.com/groups/aiweiwei +!--.flickr.com/photos/digitalboy100 +!--.flickr.com/photos/fzhenghu +!--.flickr.com/photos/lonelyfox +!--flickr.com/photos/vanvan/529925157 +!--.flickr.com/photos/winterkanal +!--.flickr.com/photos/zola +||flickr.com +||staticflickr.com + +flickrhivemind.net +.flickriver.com +.fling.com +||flipkart.com +||flog.tw +||flowhongkong.net +.flyvpn.com +||flyvpn.com +|http://cn.fmnnow.com +blog.foolsmountain.com +.forum4hk.com +fangong.forums-free.com +pioneer-worker.forums-free.com +!--foursquare.com +!--|http://4sq.com +|https://ss*.4sqi.net +video.foxbusiness.com +|http://foxgay.com +||fringenetwork.com +||flecheinthepeche.fr +.fochk.org +||fochk.org +||focustaiwan.tw +.focusvpn.com +||fofg.org +.fooooo.com +||fooooo.com +||foreignaffairs.com +||fountmedia.io +||fourthinternational.org +||foxsub.com +foxtang.com +.fpmt.org +|http://fpmt.org +.fpmt.tw +.fpmt-osel.org +||fpmtmexico.org +||fqrouter.com +||frank2019.me +||franklc.com +.freakshare.com +|http://freakshare.com +free-gate.org +.free-hada-now.org +free-proxy.cz +.free.fr/adsl +kineox.free.fr +tibetlibre.free.fr +||freebrowser.org +.freechal.com +.freedomhouse.org +||freedomhouse.org +.freedomsherald.org +||freedomsherald.org +||freegao.com +freeilhamtohti.org +||freekazakhs.org +.freelotto.com +||freelotto.com +freeman2.com +.freeopenvpn.com +freemoren.com +freemorenews.com +freemuse.org/archives/789 +freenet-china.org +freenewscn.com +cn.freeones.com +.freeoz.org/bbs +||freeoz.org +||freessh.us +||freebeacon.com +.freechina.news +||freechinaweibo.com +.freedomcollection.org/interviews/rebiya_kadeer +.freeforums.org +||freenetproject.org +.freeoz.org +.freetibet.net +||freetibet.org +.freetibetanheroes.org +|http://freetibetanheroes.org +||freetribe.me +.freeviewmovies.com +.freevpn.me +|http://freevpn.me +||freewallpaper4.me +.freewebs.com +.freewechat.com +||freewechat.com +freeweibo.com +||freeweibo.com +.freexinwen.com +||freezhihu.org +||friendfeed.com +||friends-of-tibet.org +.friendsoftibet.org +||friendsoftibet.org +freechina.net +|http://www.zensur.freerk.com/ +freevpn.nl +freeyellow.com +hk.frienddy.com/hk +|http://adult.friendfinder.com/ +.fring.com +||fring.com +.fromchinatousa.net +||frommel.net +.frontlinedefenders.org +||frontlinedefenders.org +.frootvpn.com +||frootvpn.com +||fscked.org +.fsurf.com +.ftv.com.tw +||ftv.com.tw +||ftvnews.com.tw +fucd.com +fuckgfw.org +.fulione.com +|https://fulione.com +||fullerconsideration.com +||fullservicegame.com +.funf.tw +funp.com +.fuq.com +.furhhdl.org +||furinkan.com +.futurechinaforum.org +||futuremessage.org +.fux.com +.fuyindiantai.org +.fuyu.org.tw +||fw.cm +.fxcm-chinese.com +||fxcm-chinese.com + +!--------------------GG------------------------- +||gitlab.net +|http://gmp4.com +||getsession.org +||gdaily.org +||gfwatch.org +||go-to-zlibrary.se +||gitbook.io +.g6hentai.com +|http://g6hentai.com +||g-queen.com +||gab.com +||gabocorp.com +.gaeproxy.com +.gaforum.org +.gagaoolala.com +||gagaoolala.com +.galaxymacau.com +||galenwu.com +.galstars.net +||game735.com +gamebase.com.tw +gamejolt.com +|http://wiki.gamerp.jp +||gamer.com.tw +.gamer.com.tw +.gamez.com.tw +||gamez.com.tw +.gamousa.com +.gaoming.net +||gaoming.net +ganges.com +||ganjing.com +||ganjingworld.com +.gaopi.net +|http://gaopi.net +gardennetworks.com +||gardennetworks.org +!--IP of Garden Network +72.52.81.22 +||gartlive.com +||gather.com +.gatherproxy.com +.gaybubble.com +.gaycn.net +.gayhub.com +||gaymap.cc +.gaymenring.com +.gaytube.com +!--||gaytube.com +||images-gaytube.com +.gaywatch.com +|http://gaywatch.com +.gazotube.com +||gazotube.com +||gcc.org.hk +||gclubs.com +||gcmasia.com +.gcpnews.com +|http://gcpnews.com +gdzf.org +||geek-art.net +geekerhome.com/2010/03/xixiang-project-cross-gfw +.gekikame.com +|http://gekikame.com +.gelbooru.com +|http://gelbooru.com +||generated.photos +||genius.com +!--||genuitec.com +.geocities.co.jp +.geocities.com/SiliconValley/Circuit/5683/download.html +hk.geocities.com +geocities.jp +||geph.io +.gerefoundation.org +||getastrill.com +.getchu.com +.getcloak.com +||getcloak.com +||getfoxyproxy.org +||getgom.com +.geti2p.net +||geti2p.net +getiton.com +.getjetso.com/forum +.getlantern.org +||getlantern.org +||getmalus.com +.getsocialscope.com +||getsync.com +||gettr.com +gfbv.de +.gfsale.com +||gfsale.com +.gfw.press +||gfw.press +||gfw.report +.ggssl.com +||ggssl.com +!--||ghost.org +.ghostpath.com +||ghostpath.com +||ghut.org +.giantessnight.com +|http://giantessnight.com +.gifree.com +||giga-web.jp +tw.gigacircle.com +gigporno.ru +||girlbanker.com +.git.io +||git.io +|http://softwaredownload.gitbooks.io +||raw.githack.com + +!---GitHub--- +||github.blog +||github.com +||githubcopilot.com +!--github.com/getlantern +!--|https://gist.github.com +!--http://cthlo.github.io/hktv +!--hahaxixi.github.io +!--|https://hahaxixi.github.io +!--||haoel.github.io +!--|http://onionhacker.github.io +!--||rg3.github.io +!--||sikaozhe1997.github.io +!--||sodatea.github.io +!--||terminus2049.github.io +!--||toutyrater.github.io +!--wsgzao.github.io +!--|https://wsgzao.github.io +.github.io +||github.io +||githubusercontent.com +||githubassets.com + +.gizlen.net +||gizlen.net +.gjczz.com +||gjczz.com +||glarity.app +||globaljihad.net +globalmediaoutreach.com +globalmuseumoncommunism.org +||globalrescue.net +.globaltm.org +.globalvoicesonline.org +||globalvoicesonline.org +||globalvpn.net +.glock.com +gluckman.com/DalaiLama +||gmgard.com +|http://www.gmiddle.com +|http://www.gmiddle.net +.gmll.org +||suche.gmx.net +||gnci.org.hk +||gnews.org +||goagent.biz +||godaddy.com +godfootsteps.org +||godfootsteps.org +godsdirectcontact.co.uk +.godsdirectcontact.org +godsdirectcontact.org.tw +.godsimmediatecontact.com +||gofundme.com +||gohappy.com.tw +.gokbayrak.com +.goldbet.com +||goldbetsports.com +||golden-ages.org +||goldeneyevault.com +.goldenfrog.com +||goldenfrog.com +.goldstep.net +||goldwave.com +||gongm.in +blog.goo.ne.jp/duck-tail_2009 +good.news +.gooday.xyz +||gooday.xyz +||goodhope.school +||goodnewsnetwork.org +.goodreads.com +||goodreads.com +.goodreaders.com +||goodreaders.com +.goodtv.com.tw +.goodtv.tv +||goofind.com +.gopetition.com +||gopetition.com +||goreforum.com +||gotquestions.org +.gotrusted.com +||gotrusted.com +||gotw.ca +||grammaly.com +grandtrial.org +.graphis.ne.jp +||graphis.ne.jp +||graphql.org +||gravatar.com +greatfirewall.biz +.greatfirewallofchina.org +||greatfirewallofchina.org +.greenparty.org.tw +||greenpeace.org +.greenreadings.com/forum +||greasyfork.org +greatroc.org +greatzhonghua.org +.greenpeace.com.tw +.greenvpn.net +||greenvpn.net +.greenvpn.org +||grindr.com +||ground.news +gs-discuss.com +||gsearch.media +||gtricks.com +guancha.org +.guardster.com +.gun-world.net +gunsandammo.com +||gutteruncensored.com +||gvm.com.tw +||gwins.org +.gzm.tv +||gzone-anime.info + +!-------------GHS----- +!-||feeds.cbsnews.com +!-||www.chinesealbumart.com +||clementine-player.org +!-||clemesha.org +!-||www.cloudgirlfriend.com +!-||cocoawithlove.com +!-||blog.controlspace.org +!-D +!-||www.dailygyan.com +!-||dailytodo.org +!-||blog.danmarner.com +!-||github.danmarner.com +!-||design-seeds.com +!-||designers-artists.com +!-||mail.diyang.org +!-||blog.doughellmann.com +!-||downforeveryoneorjustme.com +!-||droidsecurity.com +!-||www.dropmocks.com +!-||dumblittleman.com +!-E +echofon.com +!-||echofon.com +!-||epc-jav.com +!-||everdark.info +!-||evhead.com +!-F +!-||facilelogin.com +!-||*.fatduck.org +!-||blog.fdcn.org +!-||fftogo.com +!-||flightsimtalk.com +!-||mclee.foolme.net +!-||www.frienddeck.com +!-||fringespoilers.com +!-||fringetelevision.com +!-||funpea.com +!-G +!-||blog.gatein.org +!-||feeds.gawker.com +!-||geektang.com +!-||geohot.us +!-||getaround.com +!-||gmer.net +!-||www.gmote.org +!-||blog.go2web20.net +!-||google-melange.com +!-||fame.gonzolabs.org +!-||govecn.org +!-||gqueues.com +!-||graphycalc.com +!-||blog.growlforwindows.com +!-H +!-||hcm.com.tw +!-||blog.headius.com +!-||hogbaysoftware.com +!-||blog.hotot.org +!-||feeds.howstuffworks.com +!-||huhaitai.com +!-||blog.humanrightsfirst.org +!-I +!-||site.icu-project.org +!-||igorware.com +!-||ihas1337code.com +!-||inknouveau.com +!-||inote.tw +!-||ironhelmet.com +!-||iwfwcf.com +!-J +!-||blog.jangmt.com +!-||blog.jayfields.com +!-||blog.joint.net +!-||blog.jsquaredjavascript.com +!-||blog.jtbworld.com +!-K +!-||kathyschwalbe.com +!-||tomatovpn.keithmoyer.com +!-||www.keithmoyer.com +!-||kendalvandyke.com +!-||blog.kengao.tw +!-||log.keso.cn +!-||www.khanacademy.org +||www.klip.me +!-||usbloadergx.koureio.net +!-||blog.kowalczyk.info +!-L +!-||labyrinth2.com +!-||larsgeorge.com +!-||blog.lastpass.com +!-||docs.latexlab.org +!-||leanessays.com +!-||blog.lidaobing.info +!-||log.lightory.net +!-||feeds.limi.net +!-||www.liteapplications.com +!-||blog.liukangxu.info +!-||twitter.liukangxu.info +!-||oasisnewsroom.live4ever.us +!-||www.lockergnome.com +!-||locql.com +@@||site.locql.com +!-||feeds.loiclemeur.com +!-||blog.louisgray.com +!-M +!-||madebysofa.com +!-||mademoisellerobot.com +!-||masamixes.com +!-||www.metamuse.net +!-||blog.metasploit.com +!-||milazi.com +!-||www.miniweather.com +!-||twitter.missiu.com +!-||plurktop-button.mmdays.com +!-||feeds.mobileread.com +!-||www.modernizr.com +!-||www.modk.it +!-||mytwishirt.com +!-N +!-||blog.netflix.com +!-||blog.nihilogic.dk +!-||ntlk.org +!-||nvquan.org +!-||nogoodatcoding.com +!-||blog.notdot.net +!-||www.notify.io +!-O +!-||blog.obvious.com +!-||onebigfluke.com +!-||overstimulate.com +!-P +!-||pcgeekblog.com +!-||feeds.pdfchm.net +!-||feeds.people.com +!-||blog.persistent.info +!-||chrome.plantsvszombies.com +!-||portablesoft.org.ru +!-||prasannatech.net +!-||talk.news.pts.org.tw +!-||python-excel.org +!-Q +!-R +!-||r-chart.com +!-||rameshsubramanian.org +!-||rapid.pk +!-||blog.renanse.com +!-||robertmao.com +!-||www.romeo-foxtrot.com +!-S +!-||salmiyuck.com +!-||samsal.com +!-||blog.seeminglee.com +!-||blog.sflow.com +!-||blog.sigfpe.com +!-||simpletext.ws +!-||www.skulpt.org +!-||rss.slashdot.org +!-||snippetsapp.com +!-||w.sns.ly +!-||www.socialnmobile.com +!-||www.socialwhois.com +!-||spiritjb.org +!-||ssbook.com +!-||sshforwarding.com +!-||stationeria.com +||stephaniered.com +!-||sunjidong.net +!-||syniumsoftware.com +@@||download.syniumsoftware.com +!-T +!-||tagxedo.com +!-||blog.tatoeba.org +!-||www.techfob.com +!-||teachparentstech.org +!-||the8pen.com +!-||theiphonewiki.com +!-||blog.thesilentnumber.me +!-||thesponty.com +!-||theultralinx.com +!-||blog.think-async.com +!-||tornadoweb.org +!-||transparentuptime.com +!-||triangulationblog.com +!-||blog.tsunanet.net +!-||en.tuxero.com +!-||twazzup.com +!-||tweetswell.com +!-||twibes.com +!-||art.twgg.org +!-||twivert.com +!-U +|http://ub0.cc +!-||jonny.ubuntu-tw.net +!-||blog.umonkey.net +!-V +!-||tp.vbap.com.au +!-||www.virtuousrom.com +!-||blog.visibotech.com +!-W +!-||waveprotocol.org +!-||www.wavesandbox.com +!-||webfee.org.ru +!-||blog.webmproject.org +!-||webupd8.org +!-||www.whatbrowser.org +!-||www.wheredoyougo.net +!-||willhains.com +!-||feeds.wired.com +!-||wisemapping.org +wozy.in +!-||wozy.in/ +!-||blog.wundercounter.com +!-X +!-||xdelta.org +!-||xiaogaozi.org +!-||xilou.us +!-||xzy.org.ru +!-Y +!-||yooper.be +!-||tsong.yunxi.net +!-Z + +gospelherald.com +||gospelherald.com +|http://hk.gradconnection.com/ +greatfire.org +||greatfire.org +greatfirewallofchina.org +||gtv.org +||gtv1.org +.gu-chu-sum.org +|http://gu-chu-sum.org +.guaguass.com +|http://guaguass.com +.guangming.com.my +guishan.org +||guishan.org +.gumroad.com +||gumroad.com +||gunsamerica.com +guruonline.hk +|http://gvlib.com +.gyalwarinpoche.com +.gyatsostudio.com + +!--------------------HH------------------------- +||herominers.com +||hinet.net +||hindustantimes.com +||hanime1.me +||halktv.com.tr +||haiwaikan.com +||home.saxo +||hoy.tv +.h528.com +.h5dm.com +.h5galgame.me +||h-china.org +.h-moe.com +|http://h-moe.com +h1n1china.org +.hacken.cc/bbs +.hacker.org +||hackmd.io +||hackthatphone.net +hahlo.com +||haijiao.com +||hakkatv.org.tw +.handcraftedsoftware.org +|http://bbs.hanminzu.org/ +.hao.news/news +|http://ae.hao123.com +|http://ar.hao123.com +|http://br.hao123.com +|http://en.hao123.com +|http://id.hao123.com +|http://jp.hao123.com +|http://ma.hao123.com +|http://mx.hao123.com +|http://sa.hao123.com +|http://th.hao123.com +|http://tw.hao123.com +|http://vn.hao123.com +|http://hk.hao123img.com +|http://ld.hao123img.com +.haproxy.org +||hardsextube.com +||b.hatena.ne.jp +have8.com +@@||haygo.com +.hclips.com +||hdtvb.net +.hdzog.com +|http://hdzog.com +||ordns.he.net +||heartyit.com +.heavy-r.com +.hec.su +|http://hec.su +.hecaitou.net +||hecaitou.net +.hechaji.com +||hechaji.com +||heeact.edu.tw +.hegre-art.com +|http://hegre-art.com +||cdn.helixstudios.net +||helloandroid.com +||helloqueer.com +.hentai.to +.hellouk.org/forum/lofiversion +.helpeachpeople.com +||helpeachpeople.com +||helpster.de +.helpzhuling.org +hentaitube.tv +.hentaivideoworld.com + +!###########--Heroku--########## +!--||getcloudapp.com +!--||cl.ly +!--@@||f.cl.ly +!--EC2 DNS Poisoned +||id.heroku.com +||herokuapp.com + +||heqinglian.net +||heritage.org +.hexieshe.com +||hexieshe.com +||hexieshe.xyz +!--Google employee within Google IP +||hexxeh.net +||heyuedi.com +.heyzo.com +.hgseav.com +.hhdcb3office.org +.hhthesakyatrizin.org +hi-on.org.tw +||hiccears.com +hidden-advent.org +||hidden-advent.org +hidecloud.com/blog/2008/07/29/fuck-beijing-olympics.html +||hide.me +.hideipvpn.com +||hideipvpn.com +.hideman.net +||hideman.net +hideme.nl +||hidemy.name +.hidemyass.com +||hidemyass.com +hidemycomp.com +||hidemycomp.com +.higfw.com +highpeakspureearth.com +||highrockmedia.com +||hiitch.com +||hikinggfw.org +.hilive.tv +.himalayan-foundation.org +||himalayan-foundation.org +himalayanglacier.com +.himemix.com +||himemix.com +.hitomi.la +|http://hitomi.la +.hiwifi.com +@@||hiwifi.com +hizbuttahrir.org +hizb-ut-tahrir.info +hizb-ut-tahrir.org +.hjclub.info +.hk-pub.com/forum +|http://hk-pub.com +.hk01.com +||hk01.com +||hkacg.com +||hkacg.net +.hkatvnews.com +hkbc.net +.hkbf.org +.hkbookcity.com +||hkbookcity.com +||hkchronicles.com +.hkchurch.org +hkci.org.hk +.hkcmi.edu +||hkcnews.com +||hkcoc.com +hkday.net +.hkdailynews.com.hk/china.php +||hkdc.us +hkdf.org +.hkej.com +.hkepc.com/forum/viewthread.php?tid=1153322 +||hket.com +||hkfaa.com +hkfront.org +m.hkgalden.com +|https://m.hkgalden.com +||hkgpao.com +.hkheadline.com*blog +.hkheadline.com/instantnews +hkhkhk.com +hkhrc.org.hk +hkjc.com +.hkjp.org +.hklft.com +.hklts.org.hk +||hklts.org.hk +||hkmap.live +||hkopentv.com +||hkpeanut.com +hkptu.org +.hkreporter.com +||hkreporter.com +.hmv.co.jp/ +hnjhj.com +||hnjhj.com +.hnntube.com +||hojemacau.com.mo +||hola.com +||hola.org +holyspiritspeaks.org +||holyspiritspeaks.org +.homeperversion.com +|http://homeservershow.com +|http://old.honeynet.org/scans/scan31/sub/doug_eric/spam_translation.html +.hongkongfp.com +||hongkongfp.com +hongmeimei.com +||hongzhi.li +||honven.xyz +.hootsuite.com +||hootsuite.com +||hoover.org +.hopto.org +.hornygamer.com +.hornytrip.com +|http://hornytrip.com +||horrorporn.com +||hostloc.com +||hotair.com +.hotav.tv +.hotels.cn +hotfrog.com.tw +hotgoo.com +hotpot.hk +.hotshame.com +||hotspotshield.com +||hottg.com +.hotvpn.com +||hotvpn.com +||howtoforge.com +||hoxx.com +||hpjav.com +.hqcdp.org +||hqcdp.org +||hqjapanesesex.com +hqmovies.com +.hrcchina.org +.hrea.org +.hrichina.org +||hrichina.org +||hrntt.org +.hrtsea.com +.hrw.org +||hrw.org +hrweb.org +||hsex.men +||hsjp.net +||hsselite.com +||hst.net.tw +.hstern.net +.hstt.net +.htkou.net +||htkou.net +.huaglad.com +||huaglad.com +.huanghuagang.org +||huanghuagang.org +.huangyiyu.com +.huaren.us +||huaren.us +.huaren4us.com +.huashangnews.com +|http://huashangnews.com +bbs.huasing.org +huaxiabao.org +huaxin.ph +||huayuworld.org +||huffingtonpost.com +||huffpost.com +||huggingface.co +||hugoroy.eu +||huhaitai.com +||huhamhire.com +.huhangfei.com +||huhangfei.com +.hulkshare.com +||humanparty.me +||humanrightspressawards.org +||hung-ya.com +||huping.net +hurgokbayrak.com +.hurriyet.com.tr +.hut2.ru +||hutianyi.net +hutong9.net +huyandex.com +.hwadzan.tw +||hwayue.org.tw +||hxwk.org +hxwq.org +||hyperrate.com +||hypothes.is +ebook.hyread.com.tw +||ebook.hyread.com.tw + +!--------------------II------------------------- +||ipify.org +@@||*.ipify.org +||itiger.com +||itch.io +||infura.io +||president.ir +||gov.ir +||irna.ir +||arvanstorage.ir +||irangov.ir +||india.com +||indiatoday.in +||invidio.us +||improd.works +||illawarramercury.com.au +||imago-images.com +||i2p2.de +||i818hk.com +.i-cable.com +.i-part.com.tw +.iamtopone.com +iask.ca +||iask.ca +.iav19.com +||iavian.net +ibiblio.org/pub/packages/ccic +ibros.org +.ibvpn.com +||ibvpn.com +icams.com +||icedrive.net +.icij.org +||icij.org +||icl-fi.org +.icoco.com +||icoco.com + +!--38.103.165.50 +||furbo.org +!--||iconfactory.com + +||iconpaper.org +!-- Google Pages +||icu-project.org +w.idaiwan.com/forum +idemocracy.asia +.identi.ca +||identi.ca +||idiomconnection.com +|http://www.idlcoyote.com +||idope.se +.idouga.com +.idv.tw +.ied2k.net +.ienergy1.com +||ift.tt +.ifcss.org +||ifcss.org +ifjc.org +.ift.tt +|http://ift.tt +||ifreewares.com +||igcd.net +.igfw.net +||igfw.net +.igmg.de +.igotmail.com.tw +||igvita.com +.ihao.org/dz5 +||iicns.com +.ikstar.com +||ilhamtohtiinstitute.org +||illusionfactory.com +||ilove80.be +||im88.tw +||imgchili.net +.imageab.com +.imagefap.com +||imagefap.com +||imageflea.com +||imageglass.org +||imageshack.us +||imagevenue.com +||imagezilla.net +.imb.org +|http://imb.org + +!--IMDB +|http://www.imdb.com/name/nm0482730 +.imdb.com/title/tt0819354 +.imdb.com/title/tt1540068 +.imdb.com/title/tt4908644 + +.img.ly +||img.ly +||imgasd.com +.imgur.com +||imgur.com +.imkev.com +||imkev.com +.imlive.com +.immoral.jp +impact.org.au +in99.org +in-disguise.com +.incapdns.net +.incloak.com +||incloak.com +||incredibox.fr +||independent.co.uk +||indiablooms.com +||indiandefensenews.in +||indianarrative.com +||timesofindia.indiatimes.com +.indiemerch.com +||indiemerch.com +||info-graf.fr +website.informer.com +||inherit.live +||initiativesforchina.org +||inkbunny.net +||inkui.com +||inmediahk.net +||inmediahk.net +||inoreader.com +||inote.tw +||insecam.org +|http://insecam.org +||inside.com.tw +||insidevoa.com +||institut-tibetain.org +||interactivebrokers.com +||internet.org +internetdefenseleague.org +||internetfreedom.org +!--||interpol.int +||internetpopculture.com +.inthenameofconfuciusmovie.com +||inthenameofconfuciusmovie.com +inxian.com +||inxian.com +!--||ipcf.org.tw +||ipdefenseforum.com +||ipfire.org +||iphone4hongkong.com +||iphonetaiwan.org +||iphonix.fr +||ipicture.ru +.ipjetable.net +||ipjetable.net +.ipobar.com/read.php? +ipoock.com/img +.iportal.me +|http://iportal.me +||ippotv.com +.ipredator.se +||ipredator.se +.iptv.com.tw +||iptvbin.com +||ipvanish.com +iredmail.org +chinese.irib.ir +||ironpython.net +.ironsocket.com +||ironsocket.com +.is.gd +||ishr.ch +.islahhaber.net +.islam.org.hk +|http://islam.org.hk +.islamawareness.net/Asia/China +.islamhouse.com +||islamhouse.com +.islamicity.com +.islamicpluralism.org +.islamtoday.net +.isaacmao.com +||isaacmao.com +||isgreat.org +||ismaelan.com +.ismalltits.com +||ismprofessional.net +isohunt.com +||israbox.com +.issuu.com +||issuu.com +.istars.co.nz +oversea.istarshine.com +||oversea.istarshine.com +.istockphoto.com +isunaffairs.com +isuntv.com +||isupportuyghurs.org +||italiatibet.org +||itemfix.com +ithelp.ithome.com.tw +||itshidden.com +.itsky.it +.itweet.net +|http://itweet.net +.iu45.com +.iuhrdf.org +||iuhrdf.org +.iuksky.com +.ivacy.com +||ivacy.com +||ivonblog.com +.ivpn.net +||ivpn.net +||iwara.tv +||ixquick.com +.ixxx.com +.iyouport.com +||iyouport.com +||iyouport.org +.izaobao.us +.izles.net +.izlesem.org + +!--------------------JJ------------------------- +||justmysockscn.com +||justmysocks.net +||jav321.com +||javdb.com +||jifangge.com +||j.mp +||jable.tv +||blog.jackjia.com +jamaat.org +||jamestown.org +||jamyangnorbu.com +||jan.ai +||japan-whores.com +||japanhdv.com +.jav.com +.jav101.com +.jav68.tv +.javakiba.org +||javakiba.org +.javbus.com +||javbus.com +||javfinder.ai +||javfor.me +.javhd.com +.javhip.com +.javmobile.net +||javmobile.net +.javmoo.com +.javseen.com +||javseen.com +jbtalks.cc +jbtalks.com +jbtalks.my +.jdwsy.com +jeanyim.com +||jgoodies.com +.jiangweiping.com +||jiangweiping.com +||jiaoyou8.com +||jichangtj.com +.jiehua.cz +||hk.jiepang.com +||tw.jiepang.com +jieshibaobao.com +.jigglegifs.com +56cun04.jigsy.com +daodu14.jigsy.com +specxinzl.jigsy.com +wlcnew.jigsy.com +.jihadology.net +|http://jihadology.net +.jingsim.org +zhao.jinhai.de +jingpin.org +||jingpin.org +jinpianwang.com +||jinrizhiyi.news +||jitouch.com +jjgirls.com +.jkb.cc +|http://jkb.cc +jkforum.net +||jma.go.jp +||jmsc.hku.hk +.jmscult.com +|http://jmscult.com +||joachims.org +.sunwinism.joinbbs.net +||joinclubhouse.com +||jornaldacidadeonline.com.br +.journalchretien.net +||journalofdemocracy.org +.joymiihub.com +.joyourself.com +jpopforum.net +||jsdelivr.net +||fiddle.jshell.net +!--Doamin parking +.juhuaren.com +||juliereyc.com +||junauza.com +.june4commemoration.org +||bbs.junglobal.net +.juoaa.com +|http://juoaa.com +justfreevpn.com +||justhost.ru +justpaste.it +||justmysocks1.net +justtristan.com +juziyue.com +||juziyue.com +||jwmusic.org +@@||music.jwmusic.org +||cdn.jwplayer.com +.jyxf.net + +!--------------------KK------------------------- +||kingkong.com.tw +||kanald.com.tr +||kpkuang.org +||ka-wai.com +||kadokawa.co.jp +.kagyu.org +||kagyu.org.za +.kagyumonlam.org +.kagyunews.com.hk +.kagyuoffice.org +||kagyuoffice.org +||kagyuoffice.org.tw +.kaiyuan.de +.kakao.com +||kakao.com +.kankan.today +.kannewyork.com +||kannewyork.com +.kanshifang.com +||kanshifang.com +||kantie.org +kanzhongguo.com +kanzhongguo.eu +.kaotic.com +||kaotic.com +||karayou.com +.karmapa.org +.karmapa-teachings.org +||kawase.com +.kba-tx.org +.kcoolonline.com +.kebrum.com +||kebrum.com +.kechara.com +.keepandshare.com/visit/visit_page.php?i=688154 +!--||keepvid.com +.keezmovies.com +.kenengba.com +||kenengba.com +.kepard.com +||kepard.com +wiki.keso.cn/Home +||keycdn.com +.khabdha.org +||kichiku-doujinko.com +.kik.com +||kik.com +.kindleren.com +|http://kindleren.com +|http://www.kindleren.com +.kingdomsalvation.org +||kingdomsalvation.org +kinghost.com +!--.kingstone.com.tw/book/ +||kingstone.com.tw +.kink.com +.kinokuniya.com +||kinokuniya.com +killwall.com +||killwall.com +||kindle4rss.com +||kinmen.travel +.kir.jp +.kissbbao.cn +|http://kiwi.kz +||kk-whys.co.jp +!--||kmt.org.tw +.kmuh.org.tw +.knowledgerush.com/kr/encyclopedia +||knowyourmeme.com +.kobo.com +||kobo.com +.kobobooks.com +||kobobooks.com +||kodingen.com +@@||www.kodingen.com +||kompozer.net +.konachan.com +||konachan.com +.kone.com +||koolsolutions.com +.koornk.com +||koornk.com +||koranmandarin.com +.korenan2.com +||kqes.net +|http://gojet.krtco.com.tw +.ksdl.org +.ksnews.com.tw +||ktzhk.com +||kuaichedao.co +.kui.name/event +||kukuku.uk +kun.im +.kurashsultan.com +||kurtmunger.com +kusocity.com +||kwcg.ca +.kwongwah.com.my +||kwongwah.com.my +.kxsw.life +||kxsw.life +.kyofun.com +kyohk.net +||kzaobao.com +.kzeng.info +||kzeng.info + +!--------------------LL------------------------- +||luckymobile.ca +||ludepress.com +||lingualeo.com +||ldplayer.tw +||ldplayer.net +||ltn.com.tw +||litenews.hk +||www.lorenzetti.com.br +||linktr.ee +la-forum.org +ladbrokes.com +||labiennale.org +.lagranepoca.com +||lagranepoca.com +||lala.im +.lalulalu.com +.lama.com.tw +||lama.com.tw +.lamayeshe.com +|http://lamayeshe.com +.lamnia.co.uk +||lamnia.co.uk +lamrim.com +||landofhope.tv +.lanterncn.cn +|http://lanterncn.cn +.lantosfoundation.org +.laod.cn +|http://laod.cn +laogai.org +||laogai.org +||laogairesearch.org +laomiu.com +.laoyang.info +|http://laoyang.info +.laqingdan.net +||laqingdan.net +||larsgeorge.com +.lastcombat.com +|http://lastcombat.com +||lastfm.es +latelinenews.com +||lausan.hk +||le-vpn.com +.leafyvpn.net +||leafyvpn.net +||ledger.com +leeao.com.cn/bbs/forum.php +!--||leecheukyan.org +lefora.com +||left21.hk +.legalporno.com +.legsjapan.com +leisurecafe.ca +||lematin.ch +.lemonde.fr +||lenwhite.com +blog.lester850.info +||lesoir.be +.letou.com +letscorp.net +||letscorp.net +!69.16.175.42 +||cdn.assets.lfpcontent.com +.lhakar.org +|http://lhakar.org +.lhasocialwork.org +.liangyou.net +||liangyou.net +.lianyue.net +||liaowangxizang.net +.liaowangxizang.net +||liberal.org.hk +||libertysculpturepark.com +||libertytimes.com.tw +||libredd.it +||lighten.org.tw +||lightnovel.cn +||lilaoshibushinilaoshi.com +limiao.net +linkuswell.com +abitno.linpie.com/use-ipv6-to-fuck-gfw +||line.me +||line-apps.com +.linglingfa.com +||lingvodics.com +.link-o-rama.com +|http://link-o-rama.com +||linkedin.com +.linkideo.com +||linux.org.hk +linuxtoy.org/archives/installing-west-chamber-on-ubuntu +.lionsroar.com +.lipuman.com +||liquidvpn.com +||greatfire.us7.list-manage.com +||listennotes.com +||listentoyoutube.com +listorious.com +.liu-xiaobo.org +.liuhanyu.com +.liuxiaobo.net +||liuxiaobo.net +liuxiaotong.com +||liuxiaotong.com +.livedoor.jp +.liveleak.com +||liveleak.com +||livemint.com +livestream.com +||livestream.com +||livingstream.com +||livevideo.com +.livevideo.com +lizhizhuangbi.com +lkcn.net +||chat.lmsys.org +.load.to +.lobsangwangyal.com +.localdomain.ws +||localdomain.ws +localpresshk.com +||lockestek.com +secure.logmein.com +||secure.logmein.com +||logos.com.hk +.londonchinese.ca +.longhair.hk +longmusic.com +||longtermly.net +||lookpic.com +.looktoronto.com +|http://looktoronto.com +.lotsawahouse.org/tibetan-masters/fourteenth-dalai-lama +.lotuslight.org.tw +hkreporter.loved.hk +.lrip.org +||lrip.org +.lsd.org.hk +||lsd.org.hk +lsforum.net +.lsm.org +||lsm.org +.lsmchinese.org +||lsmchinese.org +.lsmkorean.org +||lsmkorean.org +.lsmradio.com/rad_archives +.lsmwebcast.com +.ltn.com.tw +||ltn.com.tw +||luckydesigner.space +.luke54.com +.luke54.org +.lupm.org +||lupm.org +||lushstories.com +luxebc.com +lvhai.org +||lvhai.org +||lvv2.com +.lyfhk.net +|http://lyfhk.net +||lzjscript.com +.lzmtnews.org +||lzmtnews.org + +!--------------------MM------------------------- +||mcusercontent.com +||metamask.io +||missav.ws +||news.mt.co.kr +||musixmatch.com +||mergersandinquisitions.com +||m.moegirl.org +||myjs.tw +||mercari.com +||mercari.jp +||mirror.xyz +||mywife.cc +||c.mi.com +||missav.com +||madou.club +||mahjongsoul.com +||mangabz.com +http://*.m-team.cc +!--m-team.cc/forum +.macrovpn.com +||mad-ar.ch +||madrau.com +||madthumbs.com +mahabodhi.org +my.mail.ru +.maiplus.com +|http://maiplus.com +.maizhong.org +makkahnewspaper.com +.mamingzhe.com +||mangmang.run +manicur4ik.ru +||manyvoices.news +.maplew.com +|http://maplew.com +||marc.info +marguerite.su +maskedip.com +.maiio.net +.mail-archive.com +.malaysiakini.com +||makemymood.com +.manchukuo.net +.maniash.com +|http://maniash.com +.mansion.com +.mansionpoker.com +!--||marines.mil +!--markmail.org*message +||martau.com +|http://blog.martinoei.com +.martsangkagyuofficial.org +|http://martsangkagyuofficial.org +maruta.be/forget +.marxist.com +||marxist.net +.marxists.org/chinese +!--||mashable.com +||matainja.com +||matrix.org +||matters.town +mayimayi.com +.maxing.jp +.mcaf.ee +|http://mcaf.ee +||mcadforums.com +mcfog.com +mcreasite.com +.md-t.org +||md-t.org +||meansys.com +.media.org.hk +.mediachinese.com +||mediachinese.com +.mediafire.com/? +.mediafire.com/download +.mediafreakcity.com +||mediafreakcity.com +.medium.com +||medium.com +.meetav.com +||meetup.com +mefeedia.com +jihadintel.meforum.org +||mega.co.nz +||mega.io +||mega.nz +||megalodon.jp +||megaproxy.com +||megurineluka.com +||meizhong.blog +||meizhong.report +.meltoday.com +.memehk.com +||memehk.com +||memes.tw +.memri.org +.memrijttm.org +||mercdn.net +.mercyprophet.org +||mercyprophet.org +.meridian-trust.org +||meridian-trust.org +.meripet.com +||meripet.com +||merit-times.com.tw +.mesotw.com/bbs +||wiki.metacubex.one +||metafilter.com +||meteorshowersonline.com +||metro.taipei +.metrohk.com.hk/?cmd=detail&categoryID=2 +||metrolife.ca +.metroradio.com.hk +||metroradio.com.hk +||mewe.com +||mgoon.com +||mgstage.com +||mh4u.org +mhradio.org +||bbs.mikocon.com +||microvpn.com +middle-way.net +.mihr.com +||mihua.org +||mikanani.me +!--IP +||mikesoltys.com +.milph.net +|http://milph.net +.milsurps.com +mimiai.net +.mimivip.com +.mindrolling.org +|http://mindrolling.org +||mingdemedia.org +.minghui.or.kr +|http://minghui.or.kr +minghui.org +||minghui.org +minghui-school.org +.mingjinglishi.com +||mingjinglishi.com +mingjingnews.com +||mingjingtimes.com +.mingpao.com +||mingpao.com +.mingpaocanada.com +.mingpaomonthly.com +|http://mingpaomonthly.com +mingpaonews.com +.mingpaony.com +.mingpaosf.com +.mingpaotor.com +.mingpaovan.com +.mingshengbao.com +.minhhue.net +.ministrybooks.org +minzhuzhongguo.org +||miroguide.com +mirrorbooks.com +||mirrormedia.mg +.mist.vip +||thecenter.mit.edu +||scratch.mit.edu +.mitbbs.com +||mitbbs.com +.mixero.com +||mixero.com +||mixi.jp +mixpod.com +.mixx.com +||mixx.com +||mizzmona.com +||mlc.ai +.mlcool.com +||mlzs.work +.mm-cg.com +||mmaaxx.com +.mmmca.com +mnewstv.com +||mobatek.net +.mobile01.com +||mobile01.com +||mobileways.de +.mobypicture.com +|http://moby.to +||mod.io +||modernchinastudies.org +||moeerolibrary.com +||moeshare.cc +.mofos.com +||mog.com +||mohu.rocks +molihua.org +||momoshop.com.tw +||mondex.org +||money-link.com.tw +|http://www.monlamit.org +||moon.fm +.moonbbs.com +||moonbbs.com +||moptt.tw +||moneydj.com +||monica.im +||monitorchina.org +||monocloud.me +bbs.morbell.com +||morningsun.org +.motherless.com +|http://motherless.com +motor4ik.ru +.mousebreaker.com +!--||movabletype.com +.movements.org +||movements.org +||moviefap.com +||www.moztw.org +.mp3buscador.com +||mpettis.com +.mpfinance.com +||mpfinance.com +.mpinews.com +||mpinews.com +mponline.hk +mrtweet.com +||mrtweet.com +news.msn.com.tw +msguancha.com +.mswe1.org +|http://mswe1.org +||mthruf.com +||mubi.com +muchosucko.com +||multiply.com +multiproxy.org +multiupload.com +.mullvad.net +||mullvad.net +.mummysgold.com +.musicade.net +.muslimvideo.com +||muzi.com +||muzi.net +||mx981.com +.my-formosa.com +.my-proxy.com +.my-private-network.co.uk +||my-private-network.co.uk +.myactimes.com/actimes +.myaudiocast.com +||myaudiocast.com +.myav.com.tw/bbs +.mybbs.us +.myca168.com +.mycanadanow.com +||bbs.mychat.to +.mychinanet.com +.mychinanews.com +||mychinanews.com +.mychinese.news +||mycnnews.com +||mykomica.org +mycould.com/discuz +.myeasytv.com +||myeclipseide.com +.myfreecams.com +.myfreepaysite.com +.myfreshnet.com +.myiphide.com +||myiphide.com +forum.mymaji.com +||mymoe.moe +||myparagliding.com +||mypopescu.com +.myreadingmanga.info +mysinablog.com +.myspace.com +!--.blogs.myspace.com +!--||blogs.myspace.com +!--vids.myspace.com/index.cfm?fuseaction=vids. +!--viewmorepics.myspace.com +||myspacecdn.com +.mytalkbox.com +.mytizi.com + +!--------------------NN------------------------- +||naver.com +||maven.neoforged.net +||nftstorage.link +||newindianexpress.com +||news18.com +||bbs.naixi.net +||nikke.hotcool.tw +||nikke-kr.com +||nikke-jp.com +||nikke-en.com +||netlify.app +||nightswatch.top +||nbyy.tv +||newthuhole.com +||naacoalition.org +||naitik.net +.nakido.com +||nakido.com +.nakuz.com/bbs +||nalandabodhi.org +||nalandawest.org +.namgyal.org +namgyalmonastery.org +.nanyang.com +||nanyang.com +.nanyangpost.com +||nanyangpost.com +.nanzao.com +!--.nanzao.com/sc/china/20223 +!--.nanzao.com/sc/hk-macau-tw +.naol.ca +.naol.cc +uighur.narod.ru +.nat.moe +||nat.moe +cyberghost.natado.com +||national-lottery.co.uk +||nationalawakening.org +||nationalinterest.org +news.nationalgeographic.com/news/2014/06/140603-tiananmen-square +||nationalreview.com +.nationsonline.org/oneworld/tibet +||line.naver.jp +||navyfamily.navy.mil +||navyreserve.navy.mil +||nko.navy.mil +||usno.navy.mil +naweeklytimes.com +||nbcnews.com +.nbtvpn.com +|http://nbtvpn.com +nccwatch.org.tw +.nch.com.tw +.ncn.org +||nchrd.org +||ncn.org +||etools.ncol.com +.nde.de +||ndi.org +.ndr.de +.ned.org +||nekoslovakia.net +||neowin.net +||netalert.me +!--bbsnew.netbig.com +.netbirds.com +netcolony.com +bolin.netfirms.com +||netflav.com +||netme.cc +||netsarang.com +netsneak.com +.network54.com +networkedblogs.com +.networktunnel.net +new-3lunch.net +.new-akiba.com +.new96.ca +.newcenturymc.com +|http://newcenturymc.com +newcenturynews.com +||newchen.com +.newchen.com +.newgrounds.com +||newhighlandvision.com +newipnow.com +.newlandmagazine.com.au +||newmitbbs.com +.newnews.ca +||news1.kr +news100.com.tw +newschinacomment.org +.newsancai.com +||newsancai.com +||newsblur.com +.newsdetox.ca +.newsdh.com +||newsmax.com +||newstamago.com +||newstapa.org +||newstatesman.com +newstarnet.com +||newsweek.com +.newtaiwan.com.tw +newtalk.tw +||newtalk.tw +||newyorker.com +newyorktimes.com +||nexon.com +.next11.co.jp +||nextdigital.com.hk +.nextmag.com.tw + +!--hk*.nextmedia.com +!--tw*.nextmedia.com +!--static*.nextmedia.com +.nextmedia.com + +||nexton-net.jp +||nexttv.com.tw +.nfjtyd.com +||co.ng.mil +||nga.mil +ngensis.com +.nhentai.net +|http://nhentai.net +.nhk-ondemand.jp +||nicovideo.jp +ninecommentaries.com +.ninjacloak.com +||ninjaproxy.ninja +nintendium.com +taiwanyes.ning.com +usmgtcg.ning.com/forum +||niusnews.com +||njactb.org +||nlfreevpn.com +||nmsl.website +||nnews.eu + +!--no-ip.com#NOIP +.ddns.net/ +||gotdns.ch +.no-ip.org +.opendn.xyz +.servehttp.com +sytes.net +.zapto.org +|http://dynupdate.no-ip.com/ + +||nobel.se +!--.nobelprize.org +!--|http://nobelprize.org +nobelprize.org/nobel_prizes/peace/laureates/1989 +nobelprize.org/nobel_prizes/peace/laureates/2010 +||nodeseek.com +||nokogiri.org +||nokola.com +noodlevpn.com +.norbulingka.org +nordvpn.com +||nordvpn.com +||nos.nl +||notepad-plus-plus.org +||now.com +||nownews.com +.nowtorrents.com +||npa.go.jp +.npnt.me +|http://npnt.me +.nradio.me +|http://nradio.me +.nrk.no +||nrk.no +.ntd.tv +||ntd.tv +.ntdtv.com +||ntdtv.com +||ntdtv.com.tw +.ntdtv.co.kr +ntdtv.ca +ntdtv.org +ntdtv.ru +ntdtvla.com +.ntrfun.com +||cbs.ntu.edu.tw +||media.nu.nl +.nubiles.net +||nuexpo.com +.nukistream.com +||nurgo-software.com +||nutaku.net +||nutsvpn.work +.nuvid.com +||nvdst.com +.nvquan.org +.nvtongzhisheng.org +|http://nvtongzhisheng.org +.nwtca.org +|http://nyaa.eu +||nyaa.si +||nybooks.com +nylon-angel.com +nylonstockingsonline.com +||nypost.com +!--nysingtao.com +.nzchinese.com + +!--------------------OO------------------------- +||oojj.de +||onevps.com +||onedrive.com +||olelive.com +||oann.com +observechina.net +.obutu.com +ocaspro.com +occupytiananmen.com +.ocreampies.com +||october-review.org +||odysee.com +||officeoftibet.com +|http://ofile.org +||ogaoga.org +twtr2src.ogaoga.org +.ogate.org +||ogate.org +www2.ohchr.org/english/bodies/cat/docs/ngos/II_China_41.pdf +||ohmyrss.com +.oikos.com.tw/v4 +.oiktv.com +.ok.ru +||ok.ru +.okayfreedom.com +||okayfreedom.com +||okk.tw +||olevod.com +||olumpo.com +.olympicwatch.org +||omct.org +omgili.com +||omnitalk.com +||omnitalk.org +||omny.fm +||on.cc +||onedrive.live.com +||onion.city +||onion.ly +.onlinecha.com +||onlineyoutube.com +||onlygayvideo.com +.onlytweets.com +|http://onlytweets.com +onmoon.net +onmoon.com +.onthehunt.com +|http://onthehunt.com +open.com.hk +opendemocracy.net +||opendemocracy.net +openid.net +||openid.net +.openleaks.org +||openleaks.org +||openstreetmap.org +||opentech.fund +openvpn.net +||openvpn.net +||openwebster.com +.openwrt.org.cn +@@||openwrt.org.cn +my.opera.com/dahema +.opus-gaming.com +|http://opus-gaming.com +.organcare.org.tw +organharvestinvestigation.net +.orgasm.com +.orgfree.com +||oricon.co.jp +||orient-doll.com +orientaldaily.com.my +||orientaldaily.com.my +!--orientaldaily.on.cc +||orn.jp +||osfoora.com +||otto.de +||ourdearamy.com +oursogo.com +.oursteps.com.au +||oursteps.com.au +.oursweb.net +||ourtv.hk +xinqimeng.over-blog.com +||overcast.fm +||overdaily.org +||overplay.net +share.ovi.com/media +||ovpn.com +|http://owl.li +|http://ht.ly +|http://htl.li +|http://mash.to +www.owind.com +||owltail.com +||oxfordscholarship.com +|http://www.oxid.it +oyax.com +oyghan.com/wps +.ozchinese.com/bbs +||ow.ly +.ozvoice.org +||ozvoice.org +.ozxw.com +.ozyoyo.com + +!--------------------PP------------------------- +||pewresearch.org +||privacyguides.org +||pancakeswap.finance +||img.picgo.net +||pornmate.com +||puredns.org +||polymarket.com +||pandafan.pub +||proxz.com +||potatso.com +||pendrivelinux.com +||paimon.moe +||photonmedia.net +||points-media.com +||pkuanvil.com +||pachosting.com +.pacificpoker.com +.packetix.net +||pacopacomama.com +.padmanet.com +||page.link +page2rss.com +.palacemoon.com +forum.palmislife.com +||eriversoft.com +paljorpublications.com +.paltalk.com +!--||pangci.net +||pandapow.co +.pandapow.net +.pandavpn-jp.com +||pandavpn-jp.com +||pandavpnpro.com +||pao-pao.net +paper.li +paperb.us +.paradisehill.cc +.paradisepoker.com +||parler.com +||parsevideo.com +.partycasino.com +.partypoker.com +.passion.com +||passion.com +.passiontimes.hk +pastebin.com +.pastie.org +||pastie.org +||blog.pathtosharepoint.com +||patreon.com +||patreonusercontent.com +||pawoo.net +||pbs.org + +!--Pbwiki +pbwiki.com +||pbworks.com +||developers.box.net +||wiki.oauth.net +||wiki.phonegap.com +||wiki.jqueryui.com + +||pbxes.com +||pbxes.org +pcdvd.com.tw +||pcgamestorrents.com +.pchome.com.tw +||pcij.org +.pcstore.com.tw +||pct.org.tw +pdetails.com +||pdproxy.com +||peace.ca +peacefire.org +.peeasian.com +||peing.net +.pekingduck.org +||pekingduck.org +.pemulihan.or.id +|http://pemulihan.or.id +||pen.io +penchinese.com +||blog.pentalogic.net +.penthouse.com +||pentoy.hk +.peoplebookcafe.com +.peoplenews.tw +||peoplenews.tw +.peopo.org +||peopo.org +.percy.in +.perfectgirls.net +||perfect-privacy.com +||perplexity.ai +.persecutionblog.com +.persiankitty.com +phapluan.org +.phayul.com +||phayul.com +philborges.com +||phncdn.com +||photodharma.net +||photofocus.com +||picacomiccn.com +.picidae.net +||img*.picturedip.com +picturesocial.com +||picuki.com +||pigav.com +||pin-cong.com +.pin6.com +||pin6.com +.ping.fm +||ping.fm +||pinimg.com +.pinkrod.com +||pinoy-n.com +||pinterest.* +@@||pinterest.cn +.pipii.tv +piraattilahti.org +.piring.com +||pixeldrain.com +||pixelqi.com +||css.pixnet.in +||pixnet.net +.pixnet.net +.pk.com +||pkqjiasu.com +||placemix.com +!--.planetsuzy.org +||play-asia.com +||playboy.com +.playboyplus.com +||playboyplus.com +||player.fm +.playno1.com +||playno1.com +||playpcesor.com +||plexvpn.pro +plm.org.hk +plunder.com +.plurk.com +||plurk.com +.plus28.com +.plusbb.com +.pmatehunter.com +||pmatehunter.com +.pmates.com +||po2b.com +pobieramy.top +!--||pocoo.org +||podbean.com +||podictionary.com +||poe.com +.pokerstars.com +||pokerstars.com +||pokerstars.net +||zh.pokerstrategy.com +||politicalchina.org +.politiscales.net +||poloniex.com +||polymerhk.com +.popo.tw +!--||popularpages.net +||popvote.hk +||popxi.click +.popyard.com +||popyard.org +.porn.com +.porn2.com +.porn5.com +.pornbase.org +.pornerbros.com +||pornhd.com +.pornhost.com +.pornhub.com +||pornhub.com +.pornhubdeutsch.net +|http://pornhubdeutsch.net +.pornoxo.com +.pornrapidshare.com +||pornrapidshare.com +.pornsharing.com +|http://pornsharing.com +.pornsocket.com +||pornstarbyface.com +.pornstarclub.com +||pornstarclub.com +.porntube.com +.porntubenews.com +.porntvblog.com +||porntvblog.com +.pornvisit.com +.portablevpn.nl +||poskotanews.com +.post01.com +.post76.com +||post76.com +.post852.com +||post852.com +postadult.com +||potvpn.com +||pourquoi.tw +||powercx.com +.powerphoto.org +||www.powerpointninja.com +||ppy.sh +||presidentlee.tw +||cdn.printfriendly.com +.pritunl.com +provpnaccounts.com +||provpnaccounts.com +.proxfree.com +||proxfree.com +proxyanonimo.es +.proxynetwork.org.uk +||proxynetwork.org.uk +.pttvan.org +||pubu.com.tw +||puffinbrowser.com +||pureinsight.org +.putty.org +||putty.org + +!-------------Posterous----- +||calebelston.com +||blog.fizzik.com +||nf.id.au +||sogrady.me +||vatn.org +||ventureswell.com +||whereiswerner.com + +.power.com +||power.com +powerapple.com +||powerapple.com +||prayforchina.net +||prcleader.org +||presentationzen.com +||prestige-av.com +.prisoneralert.com +||pritunl.com +||privacybox.de +||private.com +||privateinternetaccess.com +privatepaste.com +||privatepaste.com +privatetunnel.com +||privatetunnel.com +||privatevpn.com +||privoxy.org +||procopytips.com +||project-syndicate.org +||proton.me +provideocoalition.com +||prosiben.de +proxifier.com +||proxomitron.info +.proxpn.com +||proxpn.com +proxyroad.com +.proxytunnel.net +||pshvpn.com +||psiphon.ca +.psiphon3.com +||psiphon3.com +.psiphontoday.com +||pstatic.net +||pt.im +.ptt.cc +||ptt.cc +||pttgame.com +.puffstore.com +||main-ecnpaper-economist.content.pugpig.com +||pullfolio.com +.punyu.com/puny +||pureconcepts.net +||pureinsight.org +||purepdf.com +||purevpn.com +.purplelotus.org +.pursuestar.com +||pursuestar.com +.pussyspace.com +.putihome.org +.putlocker.com/file +pwned.com +||pximg.net +python.com +.python.com.tw +||python.com.tw +pythonhackers.com/p +ss.pythonic.life + +!--------------------QQ------------------------- +|http://qmp4.com +||qianmo.tw +||qbittorrent.org +||qgirl.com.tw +||qianbai.tw +||qiandao.today +||qianglie.com +||qiangwaikan.com +.qi-gong.me +||qi-gong.me +!--#921 +||qiangyou.org +.qidian.ca +||qiwen.lu +qixianglu.cn +.qkshare.com +qoos.com +||qoos.com +||efksoft.com +||qstatus.com +||qtrac.eu +||quitccp.org +.quitccp.org +.quora.com/Chinas-Future +.quran.com +|http://quran.com +.quranexplorer.com +qusi8.net +nemesis2.qx.net/pages/MyEnTunnel +qxbbs.org + +!--------------------RR------------------------- +||radmin-vpn.com +||rule34video.com +||r10s.jp +||rakuten.co.jp +||r0.ru +||radio-canada.ca +||radio-en-ligne.fr +||rael.org +radicalparty.org +||radio.garden +||radioaustralia.net.au +.radiohilight.net +||radiohilight.net +||radioline.co +opml.radiotime.com +||radiovaticana.org +||radiovncr.com +||raggedbanner.com +||raidcall.com.tw +.rainbowplan.org/bbs +|https://raindrop.io/ +.raizoji.or.jp +|http://raizoji.or.jp +rangzen.net +rangzen.org +|http://blog.ranxiang.com/ +.rapbull.net +!--|http://rapidgator.net/ +||rapidmoviez.com +rapidvpn.com +||rapidvpn.com +||rarbgprx.org +||rationalwiki.org +||rawgit.com +||rawgithub.com +||rcinet.ca +||reabble.com +.read100.com +.readingtimes.com.tw +||readingtimes.com.tw +||readmoo.com +.readydown.com +|http://readydown.com +||realcourage.org +.realitykings.com +||realitykings.com +.realraptalk.com +.realsexpass.com +||reason.com +.recordhistory.org +.recovery.org.tw +|http://online.recoveryversion.org +||recoveryversion.com.tw +||red-lang.org +||redbubble.com +.redchinacn.net +||redchinacn.net +redchinacn.org +redtube.com +referer.us +||referer.us +||reflectivecode.com +||blog.reimu.net +relaxbbs.com +.relay.com.tw +.releaseinternational.org +||religionnews.com +renminbao.com +||renminbao.com +.renyurenquan.org +||renyurenquan.org +|http://certificate.revocationcheck.com +||resilio.com +.reuters.com +||reuters.com +||reutersmedia.net +.revleft.com +||resistchina.org +retweetist.com +||retweetrank.com +!--connectedchina.reuters.com +!--|http://www.reuters.com/news/video +revver.com +.rfa.org +||rfa.org +.rfachina.com +.rfamobile.org +rfaweb.org +||rferl.org +.rfi.fr +||rfi.fr +||rfi.my +!--.rhcloud.com +!--Edgecast +.rigpa.org +.rileyguide.com +||riku.me +.ritouki.jp +||ritter.vg +.rlwlw.com +||rlwlw.com +||rmbl.ws +.rmjdw.com +.roadshow.hk +.roboforex.com +||robustnessiskey.com +!--||roc-taiwan.org +||rocket.chat +||rocket-inc.net +|http://www2.rocketbbs.com/11/bbs.cgi?id=5mus +|http://www2.rocketbbs.com/11/bbs.cgi?id=freemgl +!--||rocmp.org +||rojo.com +||ronjoneswriter.com +||rolfoundation.org +||rolia.net +||rolsociety.org +.roodo.com +.rosechina.net +||rou.video +.rsf.org +||rsf.org +.rsf-chinese.org +||rsf-chinese.org +||rsshub.app +||phosphation13.rssing.com +.rssmeme.com +||rssmeme.com +||rtalabel.org +.rthk.hk +||rthk.hk +.rthk.org.hk +||rthk.org.hk +.rti.org.tw +||rti.org.tw +||rti.tw +.ruanyifeng.com/blog*some_ways_to_break_the_great_firewall +rukor.org +||rule34.xxx +||rumble.com +.runbtx.com +.rushbee.com +||rusvpn.com +.ruten.com.tw +||ruten.com.tw +||rutracker.net +||rutracker.org +rutube.ru +.rxhj.net +|http://rxhj.net + +!--------------------SS------------------------- +||sina.com.hk +||swapspace.co +||storry.tv +||standard.co.uk +||sagernet.org +||simplex.chat +||soundon.fm +||ssrtool.com +||ssrshare.us +||secure.shadowsocks.nu +||synapse.org +||south-plus.net +||silvergatebank.com +||share-videos.se +||ssrshare.us +||cdn.statically.io +||slides.com +||suno.com +||sydney.bing.com +||sehuatang.org +||singlelogin.se +||suno.ai +||syosetu.com +.s1s1s1.com +||s-cute.com +.s-dragon.org +|http://www.s4miniarchive.com +cdn1.lp.saboom.com +||sacks.com +sacom.hk +||sacom.hk +||sadpanda.us +||safechat.com +||safeguarddefenders.com +.safervpn.com +||safervpn.com +.saintyculture.com +|http://saintyculture.com +||sakuralive.com +.sakya.org +.salvation.org.hk +||salvation.org.hk +.samair.ru/proxy/type-01 +.sambhota.org +||cn.sandscotaicentral.com +||sankakucomplex.com +||sankei.com +||sanmin.com.tw +sapikachu.net +savemedia.com +||savethesounds.info +.savetibet.de +||savetibet.de +savetibet.fr +savetibet.nl +.savetibet.org +||savetibet.org +savetibet.ru +.savetibetstore.org +||savetibetstore.org +||saveuighur.org +savevid.com +.sbme.me +|http://sbme.me +.sbs.com.au/yourlanguage +.scasino.com +|http://www.sciencemag.org/content/344/6187/953 +.sciencenets.com +.scmp.com +||scmp.com +.scmpchinese.com +||scramble.io +||scribd.com +||scriptspot.com +||search.com +.searchtruth.com +||searx.me +||seattlefdc.com +.secretchina.com +||secretchina.com +||secretgarden.no +.secretsline.biz +||secretsline.biz +||secureservercdn.net +||securetunnel.com +securityinabox.org +|https://securityinabox.org +.securitykiss.com +||securitykiss.com +||seed4.me +||news.seehua.com +seesmic.com +||seevpn.com +||seezone.net +||sehuatang.net +sejie.com +.sendspace.com +||sensortower.com +sesawe.net +||sesawe.net +||sethwklein.net +||setn.com +.settv.com.tw +.sevenload.com +||sevenload.com +.sex.com +||sex.com +||sex3.com +||sex8.cc +.sexandsubmission.com +.sexbot.com +.sexhu.com +sexinsex.net +||sexinsex.net +.sextvx.com + +!--IP of SexInSex +67.220.91.15 +67.220.91.18 +67.220.91.23 + +|http://*.sf.net +.sfileydy.com +||sfshibao.com +.sftindia.org +.sftuk.org +||sftuk.org +||shadeyouvpn.com +shadow.ma +.shadowsky.xyz +.shadowsocks.asia +||www.shadowsocks.com +.shadowsocks.com +||shadowsocks.com.hk +.shadowsocks.org +||shadowsocks.org +|http://cn.shafaqna.com +||shahit.biz +.shambalapost.com +shapeservices.com +.sharebee.com +||sharecool.org +!--||sharkdolphin.com +.sharpdaily.hk +.sharpdaily.tw +.shat-tibet.com +sheikyermami.com +.shellfire.de +||shellfire.de +shenyun.com +shenyunperformingarts.org +||shenyunperformingarts.org +||shenyunshop.com +shenzhoufilm.com +||shenzhoufilm.com +||shenzhouzhengdao.org +.shiatv.net +.shicheng.org +shipcamouflage.com +.shireyishunjian.com +.shitaotv.org +||shixiao.org +||shizhao.org +shizhao.org +shkspr.mobi/dabr +||shodanhq.com +||shooshtime.com +.shop2000.com.tw +||shopee.tw +.shopping.com +.showhaotu.com +.showtime.jp +||showwe.tw +.shutterstock.com +||shutterstock.com +.shwchurch.org +||shwchurch.org +.shwchurch3.com +|http://shwchurch3.com +.siddharthasintent.org +||sidelinesnews.com +.sidelinessportseatery.com +||signal.org +.sijihuisuo.club +.sijihuisuo.com +.silkbook.com +||simbolostwitter.com +simplecd.org +||simplecd.org +||simplecd.me +simpleproductivityblog.com +bbs.sina.com/ +bbs.sina.com%2F +dailynews.sina.com/ +dailynews.sina.com%2F +home.sina.com +news.sina.com.hk +news.sinchew.com.my +.sinchew.com.my/node/ +.sinchew.com.my/taxonomy/term +.singaporepools.com.sg +||singaporepools.com.sg +.singfortibet.com +.singpao.com.hk +singtao.com +||singtao.com +news.singtao.ca +.singtaousa.com +||singtaousa.com +!--||cdp.sinica.edu.tw +sino-monthly.com +||sinoca.com +||sinocast.com +sinocism.com +sinomontreal.ca +.sinoants.com +||sinoants.com +||sinoinsider.com +.sinoquebec.com +.sierrafriendsoftibet.org +sis.xxx +||sis001.com +sis001.us +.site2unblock.com +.sitebro.tw +||sitekreator.com +||sitemaps.org +||sketchappsources.com +||skimtube.com +||lab.skk.moe +||skybet.com +|http://users.skynet.be/reves/tibethome.html +.skyking.com.tw +bbs.skykiwi.com +|http://www.skype.com/intl/ +|http://www.skype.com/zh-Hant +||skyvegas.com +.xskywalker.com +||xskywalker.com +||skyxvpn.com +.slaytizle.com +.sleazydream.com +||sleazyfork.org +||slheng.com +||slideshare.net +forum.slime.com.tw +.slinkset.com +||slickvpn.com +.slutload.com +||smartdnsproxy.com +.smarthide.com +||app.smartmailcloud.com +smchbooks.com +||smh.com.au +smhric.org +.smith.edu/dalailama +||smn.news +.smyxy.org +!--TODO-no-homepage +||sndcdn.com +sneakme.net +snowlionpub.com +||socialblade.com +.socks-proxy.net +||socks-proxy.net +.sockscap64.com +||sockslist.net +.socrec.org +|http://socrec.org +.sod.co.jp +.softether.org +||softether.org +.softether-download.com +||softether-download.com +||cdn.softlayer.net +||sogclub.com +sohcradio.com +||sohcradio.com +.sokmil.com +||sorting-algorithms.com +||soup.io +@@||static.soup.io +.sobees.com +||sobees.com +.softether.co.jp +||softwarebychuck.com +blog.sogoo.org +soh.tw +||soh.tw +sohfrance.org +||sohfrance.org +chinese.soifind.com +sokamonline.com +||solana.com +.solidaritetibet.org +.solidfiles.com +||somee.com +.songjianjun.com +||songjianjun.com +.sonidodelaesperanza.org +.sopcast.com +.sopcast.org +||nakedsecurity.sophos.com +||sos.org +||sosad.fun +bbs.sou-tong.org +.soubory.com +|http://soubory.com +.soul-plus.net +.soulcaliburhentai.net +||soulcaliburhentai.net +||soundcloud.com +!--|https://soundcloud.com/punkgod +.soundofhope.kr +soundofhope.org +||soundofhope.org +!--.sourceforge.net +!-|http://sourceforge.net +|http://sourceforge.net/p*/shadowsocksgui/ +.sourcewadio.com +||south-plus.org +||southmongolia.org +||southnews.com.tw +||sowers.org.hk +||spankbang.com +.spankingtube.com +.spankwire.com +||spatial.io +||spb.com +||speakerdeck.com +||speedcat.me +||speedify.com +||spencertipping.com +||spendee.com +||spicevpn.com +.spideroak.com +||spideroak.com +.spike.com +.spotflux.com +||spotflux.com +||spreaker.com +.spring4u.info +||spring4u.info +||springwood.me +||sproutcore.com +||squirrelvpn.com +.ss-link.com +||ss-link.com +.ssglobal.co/wp +|http://ssglobal.co +.ssglobal.me +.ssrshare.com +||ssrshare.com +!--|http://cdn.sstatic.net/ +||sstm.moe +||sstmlt.moe +sstmlt.net +||sstmlt.net +|http://stackoverflow.com/users/895245 +||standupfortibet.org +||standwithhk.org +stanford.edu/group/falun +.starfishfx.com +.starp2p.com +||starp2p.com +.startpage.com +||startpage.com +.startuplivingchina.com +|http://startuplivingchina.com +||static-economist.com +||stboy.net +||stc.com.sa +||steel-storm.com +.steganos.com +||steganos.com +.steganos.net +.stepchina.com +!--||stepmania.com +hd.stheadline.com/news/realtime +sthoo.com +||sthoo.com +.stickam.com +stickeraction.com/sesawe +.stileproject.com +||stitcher.com +.sto.cc +.stoporganharvesting.org +||storagenewsletter.com +.storm.mg +||storm.mg +.stoptibetcrisis.net +||stoptibetcrisis.net +||storj.io +.stormmediagroup.com +||stoweboyd.com +||straitstimes.com +stranabg.com +||straplessdildo.com +||streamable.com +||streamate.com +||streamingthe.net +streema.com/tv/NTDTV_Chinese +cn.streetvoice.com/article +cn.streetvoice.com/diary +tw.streetvoice.com +.strikingly.com +||strongvpn.com +.strongwindpress.com +||studentsforafreetibet.org +||stumbleupon.com +stupidvideos.com +||substack.com +||subhd.tv +.successfn.com +panamapapers.sueddeutsche.de +.sugarsync.com +||sugarsync.com +.sugobbs.com +||sugumiru18.com +||suissl.com +summify.com +.sumrando.com +||sumrando.com +sun1911.com +||sundayguardianlive.com +.sunporno.com +||sunmedia.ca +||sunporno.com +.sunskyforum.com +.sunta.com.tw +.sunvpn.net +.superfreevpn.com +.supervpn.net +||supervpn.net +.superzooi.com +|http://superzooi.com +.suppig.net +.suprememastertv.com +|http://suprememastertv.com +.surfeasy.com +||surfeasy.com +.surfeasy.com.au +|http://surfeasy.com.au +||surfshark.com +||surrenderat20.net +.svsfx.com +.swissinfo.ch +||swissinfo.ch +.swissvpn.net +||swissvpn.net +switchvpn.net +||switchvpn.net +.sydneytoday.com +||sydneytoday.com +.sylfoundation.org +||sylfoundation.org +||syncback.com +sysresccd.org +.sytes.net +blog.syx86.com/2009/09/puff +.szbbs.net +.szetowah.org.hk + +!--------------------TT------------------------- +||talkatone.com +||tanks.gg +||thehansindia.com +||rtm.tnt-ea.com +||tellapart.com +||threads.com +||tg-me.com +||twkan.com +||tunein.streamguys1.com +||tou.tv +||tinyurl.com +||textnow.com +||textnow.me +||token.im +||tokenlon.im +||tardigrade.io +||torrentgalaxy.to +||tomp3.cc +||tukaani.org +||thetatoken.org +||typeset.io +||thechasernews.co.uk +||hole.thu.monster +||thuhole.com +||t-g.com +.t35.com +.t66y.com +||t66y.com +||esg.t91y.com +.taa-usa.org +|http://taa-usa.org +.taaze.tw +||taaze.tw +|http://www.tablesgenerator.com/ +tabtter.jp +.taconet.com.tw +||taedp.org.tw +.tafm.org +tagwalk.com +||tagwalk.com +tahr.org.tw +.taipeisociety.org +||taipeisociety.org +||taipeitimes.com +||taisounds.com +.taiwanbible.com +.taiwandaily.net +||taiwandaily.net +.taiwandc.org +!--||taiwanembassy.org +||taiwanhot.net +.taiwanjustice.com +taiwankiss.com +taiwannation.com +taiwannation.com.tw +||taiwanncf.org.tw +||taiwannews.com.tw +|http://www.taiwanonline.cc/ +!--||taiwantoday.tw +taiwantp.net +||taiwantt.org.tw +taiwanus.net +.talk853.com +.talkboxapp.com +||talkboxapp.com +.talkcc.com +||talkcc.com +.talkonly.net +||talkonly.net +||tanc.org +.tangren.us +.taoism.net +|http://taoism.net +.tapatalk.com +||tapatalk.com +blog.taragana.com +||taup.net +.taweet.com +||taweet.com +.tbcollege.org +||tbcollege.org +.tbi.org.hk +.tbjyt.org +.tbrc.org +tbs-rainbow.org +.tbsec.org +||tbsec.org +tbskkinabalu.page.tl +.tbsn.org +||tbsn.org +.tbsseattle.org +.tbssqh.org +|http://tbssqh.org +tbswd.org +.tbtemple.org.uk +.tbthouston.org +.tccwonline.org +.tcewf.org +tchrd.org +tcnynj.org +||tcpspeed.co +.tcsofbc.org +.tdm.com.mo +teamamericany.com +||techspot.com +!--OVH +||techviz.net +||teck.in +.teeniefuck.net +teensinasia.com +||tehrantimes.com +.telecomspace.com +||telegraph.co.uk +.tenacy.com +||tenor.com +||tenzinpalmo.com +.tew.org +||tew.org +||tfc-taiwan.org.tw +||tfiflve.com +.thaicn.com +||theatlantic.com +||theatrum-belli.com +||cn.theaustralian.com.au +theblemish.com +||thebcomplex.com +||theblaze.com +.thebobs.com +||thebobs.com +.thechinabeat.org +||thechinacollection.org +|http://www.thechinastory.org/yearbooks/yearbook-2012/ +||theconversation.com +.thedalailamamovie.com +|http://thedalailamamovie.com +||thediplomat.com +||thedw.us +||theepochtimes.com +!--||thefreeland.club +||theguardian.com +||thegay.com +|http://thegioitinhoc.vn/ +.thegly.com +||thehindu.com +||thehun.net +.theinitium.com +||theinitium.com +.thenewslens.com +||thenewslens.com +.thepiratebay.org +||thepiratebay.org +!--||thepiratebay.se +.theporndude.com +||theporndude.com +||theportalwiki.com +||theprint.in +||threadreaderapp.com +therock.net.nz +||thesaturdaypaper.com.au +||thestandnews.com +thetibetcenter.org +thetibetconnection.org +.thetibetmuseum.org +.thetibetpost.com +||thetibetpost.com +thetrotskymovie.com +||thetvdb.com +||thewgo.org +||thewirechina.com +.theync.com +|http://theync.com +.thinkingtaiwan.com +||thinkingtaiwan.com +||thirdmill.org +||thisav.com +.thlib.org +||thomasbernhard.org +.thongdreams.com +||throughnightsfire.com +.thumbzilla.com +||thywords.com +tiananmenmother.org +.tiananmenduizhi.com +||tiananmenduizhi.com +||tiananmenuniv.com +||tiananmenuniv.net +||tiandixing.org +.tianhuayuan.com +.tianlawoffice.com +||tianti.io +tiantibooks.org +||tiantibooks.org +tianyantong.org.cn +.tianzhu.org +.tibet.at +tibet.ca +.tibet.com +||tibet.com +tibet.fr +.tibet.net +||tibet.net +||tibet.nu +.tibet.org +||tibet.org +||tibet.org.tw +||tibet.to +.tibet-envoy.eu +||tibet-envoy.eu +.tibet-foundation.org +.tibet-house-trust.co.uk +||tibet-initiative.de +.tibet-munich.de +.tibet3rdpole.org +|http://tibet3rdpole.org +tibetaction.net +||tibetaction.net +.tibetaid.org +tibetalk.com +.tibetan.fr +tibetan-alliance.org +.tibetanarts.org +.tibetanbuddhistinstitute.org +||tibetanbuddhistinstitute.org +||tibetancommunity.org +||tibetanentrepreneurs.org +||tibetanhealth.org +.tibetanjournal.com +.tibetanlanguage.org +.tibetanliberation.org +||tibetanliberation.org +.tibetcollection.com +.tibetanaidproject.org +.tibetancommunityuk.net +|http://tibetancommunityuk.net +tibetanculture.org +tibetanfeministcollective.org +.tibetanpaintings.com +.tibetanphotoproject.com +.tibetanpoliticalreview.org +.tibetanreview.net +|http://tibetansports.org +.tibetanwomen.org +|http://tibetanwomen.org +.tibetanyouth.org +.tibetanyouthcongress.org +||tibetanyouthcongress.org +.tibetcharity.dk +tibetcharity.in +.tibetchild.org +.tibetcity.com +||tibetcorps.org +||tibetexpress.net +||tibetfocus.com +||tibetfund.org +.tibetgermany.com +||tibetgermany.de +.tibethaus.com +.tibetheritagefund.org +||tibethouse.jp +||tibethouse.org +||tibethouse.us +.tibetinfonet.net +.tibetjustice.org +.tibetkomite.dk +||tibetmuseum.org +||tibetnetwork.org +||tibetoffice.ch +tibetoffice.eu +||tibetoffice.org +||tibetonline.com +||tibetoffice.com.au +||tibetonline.tv +||tibetoralhistory.org +||tibetpolicy.eu +||tibetrelieffund.co.uk +||tibetsociety.com +||tibetsun.com +||tibetsupportgroup.org +||tibetswiss.ch +||tibettelegraph.com +||tibettimes.net +||tibettruth.com +||tibetwrites.org +.ticket.com.tw +.tigervpn.com +||tigervpn.com +.timdir.com +|http://timdir.com +.time.com +|http://time.com +!--.time.com/time/time100/leaders/profile/rebel +!--.time.com/time/specials/packages/article/0,28804 +!--.time.com/time/magazine +||timesnownews.com +.timsah.com +||timtales.com +||blog.tiney.com +||tingtalk.me +.tiny.cc +||tiny.cc +||tinychat.com +||tinypaste.com +||tipas.net +.tistory.com +||tkcs-collins.com +.tmagazine.com +||tmagazine.com +|http://tmi.me +.tmpp.org +|http://tmpp.org +.tnaflix.com +||tnaflix.com +.tnp.org +|http://tnp.org +.to-porno.com +||to-porno.com +||togetter.com +.tokyo-247.com +.tokyo-hot.com +||tokyo-porn-tube.com +||tokyocn.com +tw.tomonews.net +.tongil.or.kr +tonyyan.net +toonel.net +top81.ws +.topnews.in +.toppornsites.com +|http://toppornsites.com +||toptoon.net +.torguard.net +||torguard.net +||top.tv +.topshareware.com +.topsy.com +||topsy.com +||toptip.ca +tora.to +.torcn.com +||torlock.com +.torproject.org +||torproject.org +||torrentkitty.tv +torrentprivacy.com +||torrentprivacy.com +|http://torrentproject.se +||torrenty.org +||tortoisesvn.net +||torvpn.com +||totalvpn.com +.toutiaoabc.com +towngain.com +toypark.in +toytractorshow.com +.tparents.org +.tpi.org.tw +||tpi.org.tw +||tradingview.com +||transparency.org +||treemall.com.tw +trendsmap.com +||trendsmap.com +.trimondi.de/SDLE +.trouw.nl +||trouw.nl +.trt.net.tr +||trt.net.tr +trtc.com.tw +.truebuddha-md.org +||truebuddha-md.org +trulyergonomic.com +||truthsocial.com +.truveo.com +.tsctv.net +.tsemtulku.com +tsquare.tv +.tsu.org.tw +tsunagarumon.com +!--|http://www.tsuru-bird.net/ +||tt1069.com +.tttan.com +||tttan.com +||ttv.com.tw +tu8964.com +.tubaholic.com +.tube.com +tube8.com +||tube8.com +.tube911.com +||tube911.com +.tubecup.com +.tubegals.com +.tubeislam.com +|http://tubeislam.com +.tubestack.com +||tubewolf.com +.tuibeitu.net +.tuidang.org +||tuidang.org +.tuidang.se +.tumutanzi.com +|http://tumutanzi.com +||tumview.com +.tunein.com +|http://tunein.com +||tunnelbear.com +||tunnelblick.net +.tunnelr.com +||tunnelr.com +||tunsafe.com +tuitwit.com +.turansam.org +.turbobit.net +||turbobit.net +.turbohide.com +||turbohide.com +||turkistantimes.com +.tushycash.com +|http://tushycash.com +.tuvpn.com +||tuvpn.com +|http://tuzaijidi.com +|http://*.tuzaijidi.com +.tw01.org +|http://tw01.org +||use.typekit.net + +!---Tumblr--- +.tumblr.com +||tumblr.com +!--@@||assets.tumblr.com +!--@@||data.tumblr.com +!--@@||media.tumblr.com +!--@@||static.tumblr.com +!--@@||www.tumblr.com +||lecloud.net +||slutmoonbeam.com +|http://blog.soylent.com + +.tv.com +|http://tv.com +tvants.com +||forum.tvb.com +||inews-api.tvb.com +news.tvbs.com.tw +.tvboxnow.com +||tvboxnow.com +tvider.com +.tvmost.com.hk +.tvplayvideos.com +||tvunetworks.com +.tw-blog.com +|https://tw-blog.com +.tw-npo.org +.twaitter.com +twapperkeeper.com +||twapperkeeper.com +||twaud.io +.twaud.io +.twavi.com +twbbs.org +||twblogger.com +tweepmag.com +.tweepml.org +||tweepml.org +.tweetbackup.com +||tweetbackup.com +tweetboard.com +||tweetboard.com +.tweetcs.com +|http://tweetcs.com +|http://deck.ly +!-- Operation discontinued +!--||tweete.net +!--m.tweete.net +||tweetedtimes.com +!-- Operation discontinued +!--tweetmeme.com +tweetphoto.com +||tweetphoto.com +tweetree.com +||tweetree.com +.tweettunnel.com +||tweettunnel.com +||tweetwally.com +tweetymail.com +||twelve.today +.tweez.net +|http://tweez.net +||twftp.org +||twgreatdaily.com +twibase.com +.twibble.de +||twibble.de +twibbon.com +||twibs.com +.twicountry.org +|http://twicountry.org +twicsy.com +.twiends.com +|http://twiends.com +.twifan.com +|http://twifan.com +twiffo.com +||twiffo.com +.twilightsex.com +twilog.org +twimbow.com +twipple.jp +||twipple.jp +||twip.me +twishort.com +||twishort.com +||twister.net.co +twisternow.com +twistory.net +||twiggit.org +twitgoo.com +twitiq.com +||twitiq.com +.twitlonger.com +||twitlonger.com +|http://tl.gd/ +twitmania.com +twitoaster.com +||twitoaster.com +||twitonmsn.com +!--Same IP +.twitstat.com +||twitstat.com +||tweepguide.com +|http://twt.tl +twittbot.net +||ads-twitter.com +||twttr.com +||twitter4j.org +.twittercounter.com +||twittercounter.com +twitterfeed.com +.twittergadget.com +||twittergadget.com +.twitterkr.com +||twitterkr.com +||twittermail.com +||twitterrific.com +twittertim.es +||twittertim.es +twitthat.com +||twitturk.com +.twitturly.com +||twitturly.com +.twitzap.com +twiyia.com +.twtkr.com +|http://twtkr.com +.twnorth.org.tw +||twreporter.org +twskype.com +twtrland.com +twurl.nl +.txxx.com +.tycool.com +||tycool.com + +!--typepad +||typepad.com +@@||www.typepad.com +@@||static.typepad.com +||blog.expofutures.com +||contests.twilio.com +!-lawprofessors.typepad.com/china_law_prof +||typora.io + +!--------------------UU------------------------- +||udomain.hk +||upbit.com +||demo.unlock-music.dev +.u9un.com +||u9un.com +.ubddns.org +|http://ubddns.org +||uberproxy.net +.uc-japan.org +||uc-japan.org +.srcf.ucam.org/salon/ +|http://china.ucanews.com/ +|http://hum*.uchicago.edu/faculty/ywang/history +||uderzo.it +.udn.com +||udn.com +||udn.com.tw +udnbkk.com/bbs +||uforadio.com.tw +ufreevpn.com +.ugo.com +!--ghs +||uhdwallpapers.org +||uhrp.org +.uighur.nl +||uighur.nl +uighurbiz.net +.ulike.net +ukcdp.co.uk +||ultrasurf.us +||ultravpn.com +||ultravpn.fr +ultraxs.com +umich.edu/~falun +||unblock.cn.com +.unblocker.yt +unblock-us.com +||unblock-us.com +.unblockdmm.com +|http://unblockdmm.com +||unblocksit.es +uncyclomedia.org +.uncyclopedia.hk/wiki +|http://uncyclopedia.hk +!--uncyclopedia.info +|http://uncyclopedia.tw +underwoodammo.com +||underwoodammo.com +||unholyknight.com +.uni.cc +||cldr.unicode.org +.unification.net +.unification.org.tw +||unirule.cloud +.unix100.com +||unknownspace.org +.unodedos.com +unpo.org +||unstable.icu +||unwire.hk +||uocn.org +tor.updatestar.com +||upghsbc.com +.upholdjustice.org +uploaded.net/file +|http://uploaded.net/file +|http://uploaded.to/file +.uploadstation.com/file +.upmedia.mg +||upmedia.mg +.upornia.com +|http://upornia.com +||uproxy.org +||uptodown.com +.upwill.org +ur7s.com +||urbandictionary.com +||urbansurvival.com +myshare.url.com.tw/ +||urlborg.com +||urlparser.com +us.to +||usacn.com +.usaip.eu +||usaip.eu +||uscnpm.org +||uscardforum.com +||usma.edu +.usocctn.com +||ustibetcommittee.org +.ustream.tv +||ustream.tv +usus.cc +.utopianpal.com +||utopianpal.com +||uujiasu.com +.uvwxyz.xyz +||uvwxyz.xyz +.uwants.com +||uwants.com +.uwants.net +uyghur.co.uk +||uyghur-j.org +||uyghuraa.org +||uyghuramerican.org +||uyghurbiz.org +||uyghurcongress.org +||uyghurpen.org +||uyghurstudies.org +||uyghurtribunal.com +uygur.org +|http://uymaarip.com/ + +!--------------------VV------------------------- +||vilanet.me +||vewas.net +||v2.help +||vocaroo.com +||vern.cc +||v2fly.org +.v2ray.com +||v2ray.com +||v2raycn.com +||valeursactuelles.com +.van001.com +.van698.com +.vanemu.cn +.vanilla-jp.com +.vanpeople.com +||vansky.com +||vaticannews.va +||vcf-online.org +||vcfbuilder.org +.vegasred.com +.velkaepocha.sk +.venbbs.com +.venchina.com +.venetianmacao.com +||venetianmacao.com +veoh.com +||vercel.app +mysite.verizon.net +vermonttibet.org +||verybs.com +.vft.com.tw +.viber.com +||viber.com +.vica.info +.victimsofcommunism.org +||victimsofcommunism.org +||vid.me +||vidble.com +videobam.com +||videobam.com +.videodetective.com +.videomega.tv +||videomega.tv +.videomo.com +videopediaworld.com +.videopress.com +.vidinfo.org/video +vietdaikynguyen.com +.vijayatemple.org +||vilavpn.com +vimeo.com +||vimeo.com +||vimperator.org +||vincnd.com +||vinniev.com +|http://www.lib.virginia.edu/area-studies/Tibet/tibet.html +.virtualrealporn.com +||virtualrealporn.com +visibletweets.com +||viu.com +.vivahentai4u.net + +!--apex not blocked, adding to reduce complexity +||vivaldi.com + +.vivatube.com +.vivthomas.com +||vivthomas.com +.vjav.com +||vjav.com +.vjmedia.com.hk +.vllcs.org +|http://vllcs.org +||vmixcore.com +||vnet.link +.vocativ.com +vocn.tv +||vocus.cc +||voicettank.org +.vot.org +||vot.org +.vovo2000.com +|http://vovo2000.com +.voxer.com +||voxer.com +.voy.com +||vpn.ac +||vpn.net +.vpn4all.com +||vpn4all.com +.vpnaccount.org +|http://vpnaccount.org +.vpnaccounts.com +||vpnaccounts.com +.vpncomparison.org +.vpncup.com +||vpncup.com +vpnbook.com +.vpncoupons.com +|http://vpncoupons.com +.vpndada.com +||vpndada.com +.vpnfan.com +vpnfire.com +.vpnforgame.net +||vpnforgame.net +||vpngate.jp +.vpngate.net +||vpngate.net +.vpngratis.net +vpnhq.com +||vpnhub.com +.vpnmaster.com +||vpnmaster.com +.vpnmentor.com +||vpnmentor.com +.vpninja.net +||vpninja.net +.vpnintouch.com +vpnjack.com +||vpnjack.com +.vpnpick.com +||vpnpick.com +||vpnpop.com +||vpnpronet.com +||vpnproxymaster.com +.vpnreactor.com +||vpnreactor.com +||vpnreviewz.com +.vpnsecure.me +||vpnsecure.me +.vpnshazam.com +||vpnshazam.com +.vpnshieldapp.com +||vpnshieldapp.com +.vpnsp.com +.vpntraffic.com +.vpntunnel.com +||vpntunnel.com +.vpnuk.info +||vpnuk.info +||vpnunlimitedapp.com +.vpnvip.com +||vpnvip.com +.vpnworldwide.com +.vporn.com +||vporn.com +.vpser.net +@@||vpser.net +vraiesagesse.net +||vrchat.com +.vrmtr.com +||vrporn.com +||vtunnel.com +||vuku.cc + +!--------------------WW------------------------- +||wxw.moe +||wxw.cat +||walletconnect.com +|https://w3s.link/ipfs +||work2icu.org +||wikiless.funami.tech +lists.w3.org/archives/public +||waffle1999.com +.wahas.com +waikeung.org/php_wind +||wainao.me +||wallmama.com +||wallpapercasa.com +.wallproxy.com +@@||wallproxy.com.cn +||wallsttv.com +||waltermartin.com +||waltermartin.org +||www.wan-press.org +||wanderinghorse.net +||wangafu.net +||wangjinbo.org +.wangjinbo.org +wanglixiong.com +.wango.org +||wango.org +wangruoshui.net +||want-daily.com +wapedia.mobi/zhsimp +||warroom.org +||waselpro.com +||watchinese.com +||watchout.tw +.wattpad.com +||wattpad.com +.watch8x.com +||watchmygf.net +||wav.tv +||waybig.com +||wd.bible +.wdf5.com +||wealth.com.tw +.wearehairy.com +.wearn.com +||wearn.com +|http://hkcoc.weather.com.hk +||hudatoriq.web.id +||web2project.net +webbang.net +.webevader.org +.webfreer.com +weblagu.com +.webjb.org +.webrush.net +webs-tv.net +.websitepulse.com/help/testtools.china-test +|http://www.websnapr.com +.webwarper.net +|http://webwarper.net +webworkerdaily.com +||wechatlawsuit.com +||wefightcensorship.org +.wefong.com +weiboleak.com +.weihuo.org +||weijingsheng.org +.weiming.info +||weiming.info +weiquanwang.org +|http://weisuo.ws +.welovecock.com +||welt.de +.wemigrate.org +|http://wemigrate.org +wengewang.com +||wengewang.org +.wenxuecity.com +||wenxuecity.com +.wenyunchao.com +||wenyunchao.com +.westca.com +||westca.com +||westernwolves.com +.westkit.net +||westpoint.edu +.westernshugdensociety.org +wetpussygames.com +.wetplace.com +||wezone.net +.wforum.com +||wforum.com/ +.whatblocked.com +||whatblocked.com +||wheelockslatin.com +.whippedass.com +!--|http://who.is/ +.whoer.net +||whoer.net +whotalking.com +whylover.com +||whyx.org +||wikileaks.ch +||wikileaks.com +||wikileaks.de +||wikileaks.eu +||wikileaks.lu +.wikileaks.org +||wikileaks.org +||wikileaks.pl +.wikileaks-forum.com +||wilsoncenter.org +.williamhill.com +||collateralmurder.com +||collateralmurder.org +wikilivres.info/wiki/%E9%9B%B6%E5%85%AB%E5%AE%AA%E7%AB%A0 +||wikimapia.org +.wikiwand.com +||wikiwand.com +||casino.williamhill.com +||sports.williamhill.com +||vegas.williamhill.com +||willw.net +.windscribe.com +||windscribe.com +||wingy.site +.winning11.com +||wionews.com +||wiredbytes.com +||wiredpen.com +||wireguard.com +!--||wireshark.org +.wisdompubs.org +.wisevid.com +||wisevid.com +||whispersystems.org +.witnessleeteaching.com +||witopia.net +.wjbk.org +||wjbk.org +||wmflabs.org +||wn.com +||wnacg.com +||wnacg.org +||wo.tc +||woeser.com +||wokar.org +||wolfax.com +||wombo.ai +||woolyss.com +||woopie.jp +||woopie.tv +||workatruna.com +||workerempowerment.org +.worldcat.org +worldjournal.com +.worldvpn.net +||worldvpn.net + +||videopress.com +.wordpress.com +|http://*.wordpress.com +||chenshan20042005.wordpress.com +||chinaview.wordpress.com +||cnbbnews.wordpress.com +||freedominfonetweb.wordpress.com +||hka8964.wordpress.com +||hkanews.wordpress.com +||hqsbnet.wordpress.com +||hqsbonline.wordpress.com +||investigating.wordpress.com +||jobnewera.wordpress.com +||matthewdgreen.wordpress.com +||minghuiyw.wordpress.com +||wo3ttt.wordpress.com +||sujiatun.wordpress.com +||xijie.wordpress.com +||ifreechina.wordpress.com +||wp.com + +!-||wormsculptor.com +.wow.com +||wowporn.com +||wowgirls.com +.wowrk.com +.woyaolian.org +|http://woyaolian.org +.wpoforum.com +||wpoforum.com +wrchina.org +wretch.cc +||writesonic.com +.wsj.com +||wsj.com +.wsj.net +||wsj.net +.wtbn.org +.wtfpeople.com +wuerkaixi.com +||wufafangwen.com +||wufi.org.tw +wujie.net +wujieliulan.com +||wujieliulan.com +||wuw.red +.wwitv.com +||wwitv.com +wzyboy.im/post/160 + +!--------------------XX------------------------- +||www.xicons.org +||x.ai +||xt.com +||xt.pub +||x.co +.x-berry.com +||x-berry.com +||x-art.com +||x-wall.org +||x3guide.com +xanga.com +||xbabe.com +.xbookcn.com +||xbookcn.com +||xcafe.in +||xcity.jp +.xcritic.com +||xerotica.com +destiny.xfiles.to/ubbthreads +||xfxssr.me +.xgmyd.com +||xgmyd.com +xhamster.com +||xhamster.com +.xianba.net +.xianjian.tw +|http://xianjian.tw +.xiaobaiwu.com +.xiaochuncnjp.com +.xiaohexie.com +||xiaolan.me +||xiaoma.org +||xiaohexie.com +||xiaxiaoqiang.net +xiezhua.com +.xihua.es +forum.xinbao.de/forum +.xing.com +|http://xing.com +||xinjiangpolicefiles.org +.xinmiao.com.hk +||xinmiao.com.hk +xinsheng.net +xinshijue.com +.xiongpian.com +.xiuren.org +xizang-zhiye.org +xjp.cc +||xjp.cc +||xjtravelguide.com +||xml-training-guide.com +xmovies.com +||xnxx.com +!--||xnxx-cdn.com +xpdo.net +||xpud.org +.xrentdvd.com +||xtube.com +||xuchao.org +xuchao.net +||xuchao.net +xvideo.cc +.xvideos.com +||xvideos.com +||xvideos-cdn.com +||xvideos.es +||xvbelink.com +||xvinlink.com +||xsden.info +.xxbbx.com +.xxlmovies.com +||xxx.com +.xxx.xxx +|http://xxx.xxx +.xxxfuckmom.com +||xxxx.com.au +.xxxymovies.com +|http://xxxymovies.com +xys.org +xysblogs.org + +!--------------------YY------------------------- +||yangzhi.org +||storage.yandex.net +||y2mate.com +||yadi.sk +||yakbutterblues.com +||yam.com +||yam.org.tw +||yande.re +||disk.yandex.com +||disk.yandex.ru +.yanghengjun.com +.yasni.co.uk +||yasni.co.uk +||yasukuni.or.jp +.yayabay.com/forum +||news.ycombinator.com +.ydy.com +.yeahteentube.com +||yeahteentube.com +||yecl.net +||yeelou.com +||yeeyi.com +yegle.net +||yegle.net +.yes.xxx +||yes123.com.tw +||yesasia.com +||yesasia.com.hk +.yes-news.com +|http://yes-news.com +.yespornplease.com +||yespornplease.com +|http://yeyeclub.com +!--yfrog.com +||yhcw.net +.yibada.com +||yibaochina.com +.yidio.com +||yidio.com +||yigeni.com +yilubbs.com +||s.yimg.com +.yipub.com +||yipub.com +yinlei.org/mt +.yizhihongxing.com +||yizhihongxing.com +.yobt.com +.yobt.tv +||yobt.tv +.yogichen.org +||yogichen.org +.yolasite.com +.yomiuri.co.jp +yong.hu +.yorkbbs.ca +||you.com +||youxu.info +.youjizz.com +||youjizz.com +.youmaker.com +||youmaker.com +.youngpornvideos.com +youngspiration.hk +.youpai.org +||youpai.org +.your-freedom.net +||yourepeat.com +.yousendit.com +||yousendit.com +.youthnetradio.org/tmit/forum +blog.youthwant.com.tw +me.youthwant.com.tw +share.youthwant.com.tw +topic.youthwant.com.tw +.youporn.com +||youporn.com +.youporngay.com +||youporngay.com +.yourlisten.com +||yourlisten.com +.yourlust.com +||yourlust.com +youversion.com +||youversion.com +ytht.net +yuanming.net +.yuanzhengtang.org +.yulghun.com +||yulghun.com +||yunchao.net +||yunomi.tokyo +.yuvutu.com +||yvesgeleyn.com +.ywpw.com/forums/history/post/A0/p0/html/227 +yx51.net +.yyii.org +||yyii.org +||yyjlymb.xyz +||yysub.net +.yzzk.com +||yzzk.com + +!--------------------ZZ------------------------- +||z-library.sk +||z-lib.fm +||z-lib.gd +||z-lib.gl +||z-lib.fo +||zodgame.xyz +||zhongzidi.com +||zooqle.com +||z-lib.io +||z-lib.org +zacebook.com +.zalmos.com +||zalmos.com +||zaobao.com.sg +||zdnet.com.tw +.zello.com +||zello.com +.zengjinyan.org +.zenmate.com +||zenmate.com +||zenmate.com.ru +||zerohedge.com +||zeronet.io +!--www.zfreet.com/post/usejump-browns.html +.zfreet.com +.zhangboli.net +||zhangtianliang.com +||zhanlve.org +zhenghui.org +.zhengjian.org +||zhengjian.org +zhengwunet.org +|http://zhenxiang.biz +zhongguo.ca +|http://zhongguorenquan.org +zhongguotese.net +||zhongguotese.net +.zhoushuguang.com +.zhuanxing.cn +||zhuatieba.com +zhuichaguoji.org +||zhuichaguoji.org +||zi.media +|http://book.zi5.me +.ziddu.com/download +||zillionk.com +.zinio.com +||zinio.com +.ziporn.com +.zippyshare.com +realforum.zkiz.com +!--||zlib.net +||zmedia.com.tw +||zmw.cn +.zodgame.us +zomobo.net +.zonaeuropa.com +||zonaeuropa.com +||zonghexinwen.com +||zoogvpn.com +||zootool.com +.zoozle.net +||zophar.net +writer.zoho.com +||zorrovpn.com +||zpn.im +||zspeeder.me +.zsrhao.com +.zuo.la +||zuo.la +||zuobiao.me +.zuola.com +||zuola.com +||zvereff.com +||zyxel.com +.zzcartoon.com +!##############General List End################# + +!###########Supplemental List Start############# +!#############Supplemental List End############# + +!################Whitelist Start################ +@@||www.ettoday.net + +@@||aliyun.com +@@||baidu.com +@@||chinaso.com +@@||chinaz.com +@@|http://nrch.culture.tw/ +@@||i.pki.goog +!---Some are powered by GuXiang (BGP), please comment off if +!---you encounter connectivity issues. +@@||adservice.google.com +!--ISP cache works sometimes, verified at drpeng + gehua. +@@||dl.google.com +!--@@||kh.google.com +!--@@||khm.google.com +!--@@||khm0.google.com +!--@@||khm1.google.com +!--@@||khm2.google.com +!--@@||khm3.google.com +!--@@||khmdb.google.com +@@||tools.google.com +@@||clientservices.googleapis.com +@@||fonts.googleapis.com +!--@@||khm.googleapis.com +!--@@||khm0.googleapis.com +!--@@||khm1.googleapis.com +!--@@||khm2.googleapis.com +!--@@||khm3.googleapis.com +!--@@||khmdb.googleapis.com +@@||update.googleapis.com +@@||safebrowsing.googleapis.com +@@||connectivitycheck.gstatic.com +@@||csi.gstatic.com +@@||fonts.gstatic.com +@@||ssl.gstatic.com +@@||haosou.com +@@||ip.cn +@@||jike.com +@@||translate.google.cn +@@|http://www.google.cn/maps +@@||http2.golang.org +@@||gov.cn +@@||ocsp.pki.goog +@@||qq.com +@@||sina.cn +@@||sina.com.cn +@@||sogou.com +@@||so.com +@@||soso.com +@@||uluai.com.cn +@@||weibo.com +@@||yahoo.cn +@@||youdao.com +@@||zhongsou.com +@@|http://ime.baidu.jp +!################Whitelist End################## +!---------------------EOF----------------------- diff --git a/dns-server.service b/dns-server.service new file mode 100644 index 0000000..cc2d872 --- /dev/null +++ b/dns-server.service @@ -0,0 +1,24 @@ +[Unit] +Description=Monitor Agent (Binary Service) +After=network.target +Wants=network.target + +[Service] +Type=forking +User=root +Group=root +ExecStart=/root/dns/start.sh start +ExecStop=/root/dns/start.sh stop +WorkingDirectory=/root/dns +Restart=always +RestartSec=3 +StartLimitInterval=60s +StartLimitBurst=5 +KillSignal=SIGTERM +TimeoutStopSec=10 +PrivateTmp=true +ProtectSystem=strict +NoNewPrivileges=true + +[Install] +WantedBy=multi-user.target diff --git a/dns/cache.go b/dns/cache.go index d82c28d..19c11fd 100644 --- a/dns/cache.go +++ b/dns/cache.go @@ -1,6 +1,10 @@ package dns import ( + "encoding/json" + "io/ioutil" + "math" + "os" "sync" "time" @@ -9,148 +13,406 @@ import ( // DNSCacheItem 表示缓存中的DNS响应项 type DNSCacheItem struct { - Response *dns.Msg // DNS响应消息 - Expiry time.Time // 过期时间 - HasDNSSEC bool // 是否包含DNSSEC记录 + Response *dns.Msg // DNS响应消息 + Expiry time.Time // 过期时间 + HasDNSSEC bool // 是否包含DNSSEC记录 + Size int // 缓存项大小(字节) +} + +// SerializableDNSCacheItem 用于JSON序列化的缓存项结构 +type SerializableDNSCacheItem struct { + ResponseBytes []byte `json:"responseBytes"` // 二进制DNS响应 + Expiry int64 `json:"expiry"` // 过期时间(纳秒) + HasDNSSEC bool `json:"hasDNSSEC"` // 是否包含DNSSEC记录 + Size int `json:"size"` // 缓存项大小(字节) +} + +// SerializableDNSCache 可序列化的缓存结构 +type SerializableDNSCache struct { + Items map[string]*SerializableDNSCacheItem `json:"items"` // 缓存项 + TTL int64 `json:"ttl"` // 默认TTL(纳秒) + MaxSize int `json:"maxSize"` // 最大缓存大小 + CacheMode string `json:"cacheMode"` // 缓存模式 + CacheFilePath string `json:"cacheFilePath"` // 缓存文件路径 } // DNSCache DNS缓存结构 type DNSCache struct { - cache map[string]*DNSCacheItem // 缓存映射表 - mutex sync.RWMutex // 读写锁,保护缓存 - defaultTTL time.Duration // 默认缓存TTL + cache map[string]*LRUNode // 缓存映射表,直接存储链表节点 + mutex sync.RWMutex // 读写锁,保护缓存 + ttl time.Duration // 默认缓存TTL + maxSize int // 最大缓存条目数 + cacheSize int64 // 当前缓存大小(字节) + maxCacheSize int64 // 最大缓存大小(字节) + cacheMode string // 缓存模式 + cacheFilePath string // 缓存文件路径 + saveInterval time.Duration // 保存间隔 + saveMutex sync.Mutex // 保存互斥锁 + maxCacheTTL time.Duration // 最大缓存TTL + minCacheTTL time.Duration // 最小缓存TTL + saveStopCh chan struct{} // 保存循环停止通道 + saveRunning bool // 保存循环是否运行 + saveLoopMutex sync.Mutex // 保护保存循环状态的互斥锁 + // 双向链表头和尾指针,用于LRU淘汰 + head *LRUNode // 头指针,指向最久未使用的节点 + tail *LRUNode // 尾指针,指向最近使用的节点 + // 缓存变化跟踪,用于智能保存 + changeCount int // 缓存变化次数 + lastSaveCacheSize int64 // 上次保存时的缓存大小 + lastSaveItemCount int // 上次保存时的缓存项数量 + lastSaveTime time.Time // 上次保存时间 + minSaveInterval time.Duration // 最小保存间隔,避免过于频繁的保存 +} + +// LRUNode 双向链表节点,用于LRU缓存 +type LRUNode struct { + key string + value *DNSCacheItem + prev *LRUNode + next *LRUNode } // NewDNSCache 创建新的DNS缓存实例 -func NewDNSCache(defaultTTL time.Duration) *DNSCache { +func NewDNSCache(defaultTTL time.Duration, cacheMode string, cacheSizeMB int, cacheFilePath string, saveInterval time.Duration, maxCacheTTL, minCacheTTL time.Duration) *DNSCache { + // 计算最大缓存大小(字节) + maxCacheSize := int64(cacheSizeMB) * 1024 * 1024 + cache := &DNSCache{ - cache: make(map[string]*DNSCacheItem), - defaultTTL: defaultTTL, + cache: make(map[string]*LRUNode), + ttl: defaultTTL, + maxSize: 10000, // 默认最大缓存10000条记录 + cacheSize: 0, + maxCacheSize: maxCacheSize, + cacheMode: cacheMode, + cacheFilePath: cacheFilePath, + saveInterval: saveInterval, + maxCacheTTL: maxCacheTTL, + minCacheTTL: minCacheTTL, + saveStopCh: make(chan struct{}), + saveRunning: false, + head: nil, + tail: nil, + changeCount: 0, + lastSaveCacheSize: 0, + lastSaveItemCount: 0, + lastSaveTime: time.Now(), + minSaveInterval: 30 * time.Second, // 最小保存间隔为30秒,避免过于频繁的保存 + } + + // 加载现有缓存(如果存在) + if cacheMode == "file" { + cache.LoadFromFile() } // 启动缓存清理协程 go cache.startCleanupLoop() + // 启动定期保存协程(如果是文件缓存) + if cacheMode == "file" { + go cache.startSaveLoop() + } + return cache } +// addNodeToTail 将节点添加到链表尾部(表示最近使用) +func (c *DNSCache) addNodeToTail(node *LRUNode) { + if c.tail == nil { + // 链表为空 + c.head = node + c.tail = node + } else { + // 添加到尾部 + node.prev = c.tail + c.tail.next = node + c.tail = node + } +} + +// removeNode 从链表中移除指定节点 +func (c *DNSCache) removeNode(node *LRUNode) { + if node.prev != nil { + node.prev.next = node.next + } else { + // 移除的是头节点 + c.head = node.next + } + + if node.next != nil { + node.next.prev = node.prev + } else { + // 移除的是尾节点 + c.tail = node.prev + } + + // 清空节点的前后指针 + node.prev = nil + node.next = nil +} + +// moveNodeToTail 将节点移动到链表尾部(表示最近使用) +func (c *DNSCache) moveNodeToTail(node *LRUNode) { + // 如果已经是尾节点,不需要移动 + if node == c.tail { + return + } + + // 从链表中移除节点 + c.removeNode(node) + // 重新添加到尾部 + c.addNodeToTail(node) +} + // cacheKey 生成缓存键 func cacheKey(qName string, qType uint16) string { return qName + "|" + dns.TypeToString[qType] } +// calculateItemSize 计算缓存项大小 +func calculateItemSize(item *DNSCacheItem) int { + // 使用更高效的方式估算缓存项大小 + // 避免使用json.Marshal和rr.String(),因为它们在高频调用时会消耗大量CPU资源 + size := 0 + + // 估算Response大小 + if item.Response != nil { + // 粗略估算DNS消息大小 + // 头部大小约12字节 + size += 12 + + // 问题部分 + for _, q := range item.Response.Question { + size += len(q.Name) + 4 // 域名长度 + 类型(2) + 类(2) + } + + // 高效估算资源记录大小,避免调用rr.String() + estimateRRSize := func(rr dns.RR) int { + rrSize := len(rr.Header().Name) + 10 // 域名 + 类型(2) + 类(2) + TTL(4) + 长度(2) + + switch rr.Header().Rrtype { + case dns.TypeA: + rrSize += 4 // IPv4地址 + case dns.TypeAAAA: + rrSize += 16 // IPv6地址 + case dns.TypeCNAME, dns.TypePTR, dns.TypeNS: + // 对于CNAME、PTR、NS记录,需要估算目标域名长度 + if cname, ok := rr.(*dns.CNAME); ok { + rrSize += len(cname.Target) + } else if ptr, ok := rr.(*dns.PTR); ok { + rrSize += len(ptr.Ptr) + } else if ns, ok := rr.(*dns.NS); ok { + rrSize += len(ns.Ns) + } else { + // 默认估算 + rrSize += 30 + } + case dns.TypeMX: + // MX记录:优先级(2) + 目标域名 + rrSize += 2 + 30 // 默认30字节目标域名 + case dns.TypeTXT: + // TXT记录:文本长度 + rrSize += 50 // 默认50字节文本 + case dns.TypeSRV: + // SRV记录:优先级(2) + 权重(2) + 端口(2) + 目标域名 + rrSize += 6 + 30 // 默认30字节目标域名 + case dns.TypeSOA: + // SOA记录:主NS + 管理员邮箱 + 序列号(4) + 刷新时间(4) + 重试时间(4) + 过期时间(4) + 最小TTL(4) + rrSize += 100 // 默认100字节 + default: + // 其他类型记录,使用默认估算 + rrSize += 50 + } + + return rrSize + } + + // 回答部分 + for _, rr := range item.Response.Answer { + size += estimateRRSize(rr) + } + + // 授权部分 + for _, rr := range item.Response.Ns { + size += estimateRRSize(rr) + } + + // 附加部分 + for _, rr := range item.Response.Extra { + if rr.Header().Rrtype == dns.TypeOPT { + // OPT记录大小约为40字节(EDNS0) + size += 40 + } else { + size += estimateRRSize(rr) + } + } + } + + // 其他字段大小 + size += 8 // Expiry + size += 1 // HasDNSSEC + + return size +} + // hasDNSSECRecords 检查响应是否包含DNSSEC记录 func hasDNSSECRecords(response *dns.Msg) bool { - // 检查响应中是否包含DNSSEC相关记录(DNSKEY、RRSIG、DS、NSEC、NSEC3等) + // 直接在循环中检查RR类型,避免创建匿名函数的开销 + + // 检查回答部分 for _, rr := range response.Answer { - if _, ok := rr.(*dns.DNSKEY); ok { - return true - } - if _, ok := rr.(*dns.RRSIG); ok { - return true - } - if _, ok := rr.(*dns.DS); ok { - return true - } - if _, ok := rr.(*dns.NSEC); ok { - return true - } - if _, ok := rr.(*dns.NSEC3); ok { + switch rr.(type) { + case *dns.DNSKEY, *dns.RRSIG, *dns.DS, *dns.NSEC, *dns.NSEC3: return true } } + + // 检查授权部分 for _, rr := range response.Ns { - if _, ok := rr.(*dns.DNSKEY); ok { - return true - } - if _, ok := rr.(*dns.RRSIG); ok { - return true - } - if _, ok := rr.(*dns.DS); ok { - return true - } - if _, ok := rr.(*dns.NSEC); ok { - return true - } - if _, ok := rr.(*dns.NSEC3); ok { + switch rr.(type) { + case *dns.DNSKEY, *dns.RRSIG, *dns.DS, *dns.NSEC, *dns.NSEC3: return true } } + + // 检查附加部分 for _, rr := range response.Extra { - if _, ok := rr.(*dns.DNSKEY); ok { - return true - } - if _, ok := rr.(*dns.RRSIG); ok { - return true - } - if _, ok := rr.(*dns.DS); ok { - return true - } - if _, ok := rr.(*dns.NSEC); ok { - return true - } - if _, ok := rr.(*dns.NSEC3); ok { + switch rr.(type) { + case *dns.DNSKEY, *dns.RRSIG, *dns.DS, *dns.NSEC, *dns.NSEC3: return true } } + return false } // Set 设置缓存项 func (c *DNSCache) Set(qName string, qType uint16, response *dns.Msg, ttl time.Duration) { + // 设置默认TTL if ttl <= 0 { - ttl = c.defaultTTL + ttl = c.ttl + } + + // 应用maxCacheTTL和minCacheTTL约束 + if c.maxCacheTTL > 0 && ttl > c.maxCacheTTL { + ttl = c.maxCacheTTL + } + if c.minCacheTTL > 0 && ttl < c.minCacheTTL { + ttl = c.minCacheTTL } key := cacheKey(qName, qType) item := &DNSCacheItem{ - Response: response.Copy(), // 复制响应以避免外部修改 - Expiry: time.Now().Add(ttl), + Response: response.Copy(), // 复制响应以避免外部修改 + Expiry: time.Now().Add(ttl), HasDNSSEC: hasDNSSECRecords(response), // 检查并设置DNSSEC标志 } + // 计算缓存项大小 + item.Size = calculateItemSize(item) + c.mutex.Lock() - c.cache[key] = item - c.mutex.Unlock() + defer c.mutex.Unlock() + + // 如果条目已存在,先从链表和缓存中移除,并更新缓存大小 + if existingNode, found := c.cache[key]; found { + c.cacheSize -= int64(existingNode.value.Size) + c.removeNode(existingNode) + delete(c.cache, key) + } + + // 创建新的链表节点并添加到尾部 + newNode := &LRUNode{ + key: key, + value: item, + } + c.addNodeToTail(newNode) + c.cache[key] = newNode + c.cacheSize += int64(item.Size) + + // 检查是否超过最大条目数限制,如果超过则移除最久未使用的条目 + if len(c.cache) > c.maxSize { + // 最久未使用的条目是链表的头节点 + if c.head != nil { + c.cacheSize -= int64(c.head.value.Size) + oldestKey := c.head.key + // 从缓存和链表中移除头节点 + delete(c.cache, oldestKey) + c.removeNode(c.head) + } + } + + // 检查是否超过最大缓存大小,如果超过则继续移除最久未使用的条目 + for c.cacheSize > c.maxCacheSize && c.head != nil { + c.cacheSize -= int64(c.head.value.Size) + oldestKey := c.head.key + delete(c.cache, oldestKey) + c.removeNode(c.head) + } + + // 更新缓存变化计数 + c.changeCount++ } // Get 获取缓存项 func (c *DNSCache) Get(qName string, qType uint16) (*dns.Msg, bool) { key := cacheKey(qName, qType) + // 首先使用读锁检查缓存项是否存在和是否过期 c.mutex.RLock() - item, found := c.cache[key] + node, found := c.cache[key] if !found { c.mutex.RUnlock() return nil, false } // 检查是否过期 - if time.Now().After(item.Expiry) { + if time.Now().After(node.value.Expiry) { c.mutex.RUnlock() - // 过期了,删除缓存项(在写锁中) - c.delete(key) + // 需要删除过期条目,使用写锁 + c.mutex.Lock() + // 再次检查,防止在读写锁切换期间被其他协程处理 + if node, stillExists := c.cache[key]; stillExists && time.Now().After(node.value.Expiry) { + delete(c.cache, key) + c.removeNode(node) + } + c.mutex.Unlock() return nil, false } - // 返回缓存的响应副本 - response := item.Response.Copy() + // 返回前释放读锁,避免长时间持有锁 + response := node.value.Response.Copy() c.mutex.RUnlock() + // 标记为最近使用需要修改链表,使用写锁 + c.mutex.Lock() + // 再次检查节点是否存在,防止在读写锁切换期间被删除 + if node, stillExists := c.cache[key]; stillExists { + c.moveNodeToTail(node) + } + c.mutex.Unlock() + return response, true } // delete 删除缓存项 func (c *DNSCache) delete(key string) { c.mutex.Lock() - delete(c.cache, key) - c.mutex.Unlock() + defer c.mutex.Unlock() + + // 从缓存和链表中删除 + if node, found := c.cache[key]; found { + delete(c.cache, key) + c.removeNode(node) + } } // Clear 清空缓存 func (c *DNSCache) Clear() { c.mutex.Lock() - c.cache = make(map[string]*DNSCacheItem) + c.cache = make(map[string]*LRUNode) + // 重置链表指针 + c.head = nil + c.tail = nil c.mutex.Unlock() } @@ -163,24 +425,414 @@ func (c *DNSCache) Size() int { // startCleanupLoop 启动定期清理过期缓存的协程 func (c *DNSCache) startCleanupLoop() { - ticker := time.NewTicker(time.Minute * 5) // 每5分钟清理一次 + // 初始清理间隔为1分钟 + cleanupInterval := time.Minute * 1 + ticker := time.NewTicker(cleanupInterval) defer ticker.Stop() for range ticker.C { - c.cleanupExpired() + cleanupInterval = c.cleanupExpired() + + // 调整下次清理间隔,范围:15秒到5分钟 + if cleanupInterval < 15*time.Second { + cleanupInterval = 15 * time.Second + } else if cleanupInterval > 5*time.Minute { + cleanupInterval = 5 * time.Minute + } + + // 更新清理间隔 + ticker.Reset(cleanupInterval) } } -// cleanupExpired 清理过期的缓存项 -func (c *DNSCache) cleanupExpired() { +// startSaveLoop 启动定期保存缓存的协程 +func (c *DNSCache) startSaveLoop() { + c.saveLoopMutex.Lock() + // 如果已经在运行,直接返回 + if c.saveRunning { + c.saveLoopMutex.Unlock() + return + } + // 重置停止通道 + c.saveStopCh = make(chan struct{}) + c.saveRunning = true + c.saveLoopMutex.Unlock() + + go func() { + ticker := time.NewTicker(c.saveInterval) // 根据配置的间隔保存 + defer ticker.Stop() + + for { + select { + case <-ticker.C: + // 检查缓存模式,如果不是file模式则不保存 + c.mutex.RLock() + mode := c.cacheMode + c.mutex.RUnlock() + if mode == "file" { + c.SaveToFile() + } + case <-c.saveStopCh: + // 停止保存循环 + c.saveLoopMutex.Lock() + c.saveRunning = false + c.saveLoopMutex.Unlock() + return + } + } + }() +} + +// saveCacheToFile 保存缓存到文件的底层实现,不检查缓存模式 +func (c *DNSCache) saveCacheToFile() { + c.saveMutex.Lock() + defer c.saveMutex.Unlock() + + // 智能保存策略 + // 1. 如果缓存变化次数少于10次,跳过保存 + // 2. 如果距离上次保存时间不足最小保存间隔,跳过保存 + c.mutex.RLock() + changeCount := c.changeCount + lastSaveTime := c.lastSaveTime + lastSaveCacheSize := c.lastSaveCacheSize + lastSaveItemCount := c.lastSaveItemCount + currentCacheSize := c.cacheSize + currentItemCount := len(c.cache) + c.mutex.RUnlock() + + // 检查是否需要保存 + if changeCount < 10 { + return + } + if time.Since(lastSaveTime) < c.minSaveInterval { + return + } + if currentItemCount > 0 { + cacheSizeChange := float64(currentCacheSize-lastSaveCacheSize) / float64(lastSaveCacheSize+1) // +1避免除以零 + itemCountChange := float64(currentItemCount-lastSaveItemCount) / float64(lastSaveItemCount+1) // +1避免除以零 + if math.Abs(cacheSizeChange) < 0.1 && math.Abs(itemCountChange) < 0.1 { + return + } + } + + // 开始保存缓存 + c.mutex.RLock() + // 收集有效的缓存项 + validItems := make(map[string]*SerializableDNSCacheItem) + now := time.Now() + + for key, node := range c.cache { + // 只保存未过期的缓存项 + if now.Before(node.value.Expiry) { + // 序列化DNS响应为二进制 + responseBytes, err := node.value.Response.Pack() + if err != nil { + continue // 跳过无法序列化的响应 + } + + // 创建可序列化的缓存项 + validItems[key] = &SerializableDNSCacheItem{ + ResponseBytes: responseBytes, + Expiry: node.value.Expiry.UnixNano(), + HasDNSSEC: node.value.HasDNSSEC, + Size: node.value.Size, + } + } + } + + // 创建可序列化的缓存结构 + serializableCache := &SerializableDNSCache{ + Items: validItems, + TTL: int64(c.ttl), + MaxSize: c.maxSize, + CacheMode: c.cacheMode, + CacheFilePath: c.cacheFilePath, + } + c.mutex.RUnlock() + + // 序列化到JSON + data, err := json.MarshalIndent(serializableCache, "", " ") + if err != nil { + return + } + + // 确保目录存在 + os.MkdirAll(cacheDir(), 0755) + + // 保存到文件 + err = ioutil.WriteFile(c.cacheFilePath, data, 0644) + if err != nil { + return + } + + // 更新保存状态 + c.mutex.Lock() + c.changeCount = 0 + c.lastSaveTime = time.Now() + c.lastSaveCacheSize = currentCacheSize + c.lastSaveItemCount = currentItemCount + c.mutex.Unlock() +} + +// SaveToFile 保存缓存到文件 +func (c *DNSCache) SaveToFile() { + // 检查缓存模式,如果不是file模式,直接返回 + c.mutex.RLock() + mode := c.cacheMode + c.mutex.RUnlock() + if mode != "file" { + return + } + + // 调用底层保存逻辑 + c.saveCacheToFile() +} + +// LoadFromFile 从文件加载缓存 +func (c *DNSCache) LoadFromFile() { + c.mutex.Lock() + defer c.mutex.Unlock() + + // 检查文件是否存在 + if _, err := os.Stat(c.cacheFilePath); os.IsNotExist(err) { + return // 文件不存在,跳过加载 + } + + // 读取文件内容 + data, err := ioutil.ReadFile(c.cacheFilePath) + if err != nil { + return + } + + // 反序列化JSON + var serializableCache SerializableDNSCache + err = json.Unmarshal(data, &serializableCache) + if err != nil { + return + } + + // 加载缓存项 + now := time.Now() + for key, serializableItem := range serializableCache.Items { + // 转换过期时间 + expiry := time.Unix(0, serializableItem.Expiry) + // 只加载未过期的缓存项 + if now.Before(expiry) { + // 反序列化二进制DNS响应 + response := &dns.Msg{} + err := response.Unpack(serializableItem.ResponseBytes) + if err != nil { + continue // 跳过无法反序列化的响应 + } + + // 创建缓存项 + item := &DNSCacheItem{ + Response: response, + Expiry: expiry, + HasDNSSEC: serializableItem.HasDNSSEC, + Size: serializableItem.Size, + } + + // 创建新的链表节点并添加到尾部 + newNode := &LRUNode{ + key: key, + value: item, + } + c.addNodeToTail(newNode) + c.cache[key] = newNode + c.cacheSize += int64(item.Size) + } + } +} + +// cacheDir 返回缓存目录 +func cacheDir() string { + return "data" +} + +// SetMaxCacheTTL 设置最大缓存TTL +func (c *DNSCache) SetMaxCacheTTL(ttl time.Duration) { + c.mutex.Lock() + defer c.mutex.Unlock() + c.maxCacheTTL = ttl +} + +// SetMinCacheTTL 设置最小缓存TTL +func (c *DNSCache) SetMinCacheTTL(ttl time.Duration) { + c.mutex.Lock() + defer c.mutex.Unlock() + c.minCacheTTL = ttl +} + +// SetCacheMode 设置缓存模式 +func (c *DNSCache) SetCacheMode(mode string) { + c.mutex.Lock() + oldMode := c.cacheMode + c.mutex.Unlock() + + // 根据模式变化决定是否启动或停止保存循环 + if oldMode != mode { + if oldMode == "file" { + // 从file模式切换到其他模式,先保存当前缓存到文件 + // 直接调用底层保存逻辑,不检查缓存模式 + c.saveCacheToFile() + } + + c.mutex.Lock() + c.cacheMode = mode + c.mutex.Unlock() + + if mode == "file" { + // 切换到file模式,启动保存循环 + c.startSaveLoop() + } else { + // 切换到非file模式,停止保存循环 + c.saveLoopMutex.Lock() + if c.saveRunning { + close(c.saveStopCh) + c.saveRunning = false + } + c.saveLoopMutex.Unlock() + } + } +} + +// SetMaxCacheSize 设置最大缓存大小 +func (c *DNSCache) SetMaxCacheSize(size int64) { + c.mutex.Lock() + defer c.mutex.Unlock() + c.maxCacheSize = size +} + +// cleanupExpired 清理过期的缓存项,并返回下一次清理间隔的建议值 +func (c *DNSCache) cleanupExpired() time.Duration { now := time.Now() c.mutex.Lock() defer c.mutex.Unlock() - for key, item := range c.cache { - if now.After(item.Expiry) { - delete(c.cache, key) + // 收集所有过期的键 + var expiredKeys []string + totalItems := len(c.cache) + + // 遍历缓存,收集过期项 + for key, node := range c.cache { + if now.After(node.value.Expiry) { + expiredKeys = append(expiredKeys, key) } } + + expiredCount := len(expiredKeys) + + // 智能清理策略 + // 1. 如果过期项比例超过50%,立即清理 + // 2. 如果缓存大小超过最大缓存大小的80%,清理过期项 + // 3. 如果缓存项数量超过最大条目数的80%,清理过期项 + needCleanup := false + if totalItems > 0 { + if float64(expiredCount)/float64(totalItems) > 0.5 { + needCleanup = true + } else if c.cacheSize > c.maxCacheSize*8/10 { + needCleanup = true + } else if totalItems > c.maxSize*8/10 { + needCleanup = true + } + } + + // 如果没有过期项或不需要清理,根据过期项比例返回建议的清理间隔 + if expiredCount == 0 || !needCleanup { + // 计算下一次清理间隔 + var nextInterval time.Duration + if totalItems == 0 { + // 空缓存,下一次清理间隔可以长一些 + nextInterval = 5 * time.Minute + } else { + expireRatio := float64(expiredCount) / float64(totalItems) + // 过期项比例越高,清理间隔越短 + if expireRatio < 0.1 { + nextInterval = 5 * time.Minute + } else if expireRatio < 0.3 { + nextInterval = 2 * time.Minute + } else { + nextInterval = 1 * time.Minute + } + } + return nextInterval + } + + // 删除过期的缓存项 + for _, key := range expiredKeys { + if node, found := c.cache[key]; found { + // 减去缓存项大小 + c.cacheSize -= int64(node.value.Size) + delete(c.cache, key) + c.removeNode(node) + } + } + + // 清理后,如果缓存大小仍然超过最大缓存大小,继续清理最久未使用的项 + if c.cacheSize > c.maxCacheSize { + // 计算需要清理的额外大小 + overflow := c.cacheSize - c.maxCacheSize + cleanedSize := int64(0) + + // 从链表头开始清理(最久未使用的项) + current := c.head + for current != nil && cleanedSize < overflow { + nextNode := current.next + cleanedSize += int64(current.value.Size) + + // 删除节点 + delete(c.cache, current.key) + c.removeNode(current) + + current = nextNode + } + } + + // 清理后,如果缓存项数量仍然超过最大条目数,继续清理最久未使用的项 + if len(c.cache) > c.maxSize { + // 计算需要清理的额外数量 + overflowCount := len(c.cache) - c.maxSize + + // 从链表头开始清理(最久未使用的项) + current := c.head + for i := 0; i < overflowCount && current != nil; i++ { + nextNode := current.next + + // 删除节点 + c.cacheSize -= int64(current.value.Size) + delete(c.cache, current.key) + c.removeNode(current) + + current = nextNode + } + } + + // 清理后,根据剩余过期项比例返回建议的清理间隔 + // 重新计算剩余过期项 + var remainingExpired int + for _, node := range c.cache { + if now.After(node.value.Expiry) { + remainingExpired++ + } + } + + remainingItems := len(c.cache) + var nextInterval time.Duration + if remainingItems == 0 { + nextInterval = 5 * time.Minute + } else { + remainingRatio := float64(remainingExpired) / float64(remainingItems) + // 剩余过期项比例越高,清理间隔越短 + if remainingRatio < 0.1 { + nextInterval = 5 * time.Minute + } else if remainingRatio < 0.3 { + nextInterval = 2 * time.Minute + } else { + nextInterval = 1 * time.Minute + } + } + + return nextInterval } diff --git a/dns/server.go b/dns/server.go index d6374b0..9d2b5dc 100644 --- a/dns/server.go +++ b/dns/server.go @@ -5,17 +5,20 @@ import ( "encoding/json" "fmt" "io/ioutil" + "math" + "math/rand" "net" - "net/http" "os" "path/filepath" "runtime" "sort" "strings" "sync" + "sync/atomic" "time" "dns-server/config" + "dns-server/gfw" "dns-server/logger" "dns-server/shield" @@ -37,7 +40,7 @@ func normalizeDNSServerAddress(address string) string { type BlockedDomain struct { Domain string Count int64 - LastSeen time.Time + LastSeen int64 DNSSEC bool // 是否使用了DNSSEC } @@ -46,14 +49,7 @@ type BlockedDomain struct { type ClientStats struct { IP string Count int64 - LastSeen time.Time -} - -// IPGeolocation IP地理位置信息 -type IPGeolocation struct { - Country string `json:"country"` // 国家 - City string `json:"city"` // 城市 - Expiry time.Time `json:"expiry"` // 缓存过期时间 + LastSeen int64 } // DNSAnswer DNS解析记录 @@ -109,6 +105,8 @@ type Server struct { config *config.DNSConfig shieldConfig *config.ShieldConfig shieldManager *shield.ShieldManager + gfwConfig *config.GFWListConfig + gfwManager *gfw.GFWListManager server *dns.Server tcpServer *dns.Server resolver *dns.Client @@ -131,26 +129,29 @@ type Server struct { queryLogsMutex sync.RWMutex queryLogs []QueryLog // 查询日志列表 maxQueryLogs int // 最大保存日志数量 + logChannel chan QueryLog // 日志处理通道 saveTicker *time.Ticker // 用于定时保存数据 startTime time.Time // 服务器启动时间 saveDone chan struct{} // 用于通知保存协程停止 stopped bool // 服务器是否已经停止 stoppedMutex sync.Mutex // 保护stopped标志的互斥锁 - // IP地理位置缓存 - ipGeolocationCache map[string]*IPGeolocation // IP地址到地理位置的映射 - ipGeolocationCacheMutex sync.RWMutex // 保护IP地理位置缓存的互斥锁 - ipGeolocationCacheTTL time.Duration // 缓存有效期 - // DNS查询缓存 DnsCache *DNSCache // DNS响应缓存 // 域名DNSSEC状态映射表 - domainDNSSECStatus map[string]bool // 域名到DNSSEC状态的映射 + domainDNSSECStatus map[string]bool // 域名到DNSSEC状态的映射 + domainDNSSECStatusMutex sync.RWMutex // 保护域名DNSSEC状态映射的互斥锁 // 上游服务器状态跟踪 serverStats map[string]*ServerStats // 服务器地址到状态的映射 serverStatsMutex sync.RWMutex // 保护服务器状态的互斥锁 + + // DNSSEC专用服务器映射,用于快速查找 + dnssecServerMap map[string]bool // DNSSEC专用服务器地址到布尔值的映射 + + // DNS客户端实例池,用于并行查询 + clientPool sync.Pool // 存储*dns.Client实例 } // Stats DNS服务器统计信息 @@ -172,19 +173,25 @@ type Stats struct { } // NewServer 创建DNS服务器实例 -func NewServer(config *config.DNSConfig, shieldConfig *config.ShieldConfig, shieldManager *shield.ShieldManager) *Server { +func NewServer(config *config.DNSConfig, shieldConfig *config.ShieldConfig, shieldManager *shield.ShieldManager, gfwConfig *config.GFWListConfig, gfwManager *gfw.GFWListManager) *Server { ctx, cancel := context.WithCancel(context.Background()) // 从配置中读取DNS缓存TTL值(分钟) cacheTTL := time.Duration(config.CacheTTL) * time.Minute + // 保存间隔(秒) + saveInterval := time.Duration(config.SaveInterval) * time.Second + // 最大和最小缓存TTL(分钟) + maxCacheTTL := time.Duration(config.MaxCacheTTL) * time.Minute + minCacheTTL := time.Duration(config.MinCacheTTL) * time.Minute server := &Server{ config: config, shieldConfig: shieldConfig, shieldManager: shieldManager, + gfwConfig: gfwConfig, + gfwManager: gfwManager, resolver: &dns.Client{ Net: "udp", - Timeout: time.Duration(config.Timeout) * time.Millisecond, UDPSize: 4096, // 增加UDP缓冲区大小,支持更大的DNSSEC响应 }, ctx: ctx, @@ -213,17 +220,28 @@ func NewServer(config *config.DNSConfig, shieldConfig *config.ShieldConfig, shie monthlyStats: make(map[string]int64), queryLogs: make([]QueryLog, 0, 1000), // 初始化查询日志切片,容量1000 maxQueryLogs: 10000, // 最大保存10000条日志 + logChannel: make(chan QueryLog, 1000), // 日志处理通道,缓冲区大小1000 saveDone: make(chan struct{}), stopped: false, // 初始化为未停止状态 - // IP地理位置缓存初始化 - ipGeolocationCache: make(map[string]*IPGeolocation), - ipGeolocationCacheTTL: 24 * time.Hour, // 缓存有效期24小时 + // DNS查询缓存初始化 - DnsCache: NewDNSCache(cacheTTL), + DnsCache: NewDNSCache(cacheTTL, config.CacheMode, config.CacheSize, config.CacheFilePath, saveInterval, maxCacheTTL, minCacheTTL), // 初始化域名DNSSEC状态映射表 domainDNSSECStatus: make(map[string]bool), // 初始化服务器状态跟踪 serverStats: make(map[string]*ServerStats), + // 初始化DNSSEC专用服务器映射 + dnssecServerMap: make(map[string]bool), + // 初始化DNS客户端实例池 + clientPool: sync.Pool{ + New: func() interface{} { + return &dns.Client{ + Net: "udp", + UDPSize: 4096, + Timeout: 5 * time.Second, // 默认超时时间,会在使用时覆盖 + } + }, + }, } // 加载已保存的统计数据 @@ -270,6 +288,26 @@ func (s *Server) Start() error { // 启动自动保存功能 go s.startAutoSave() + // 更新DNSSEC专用服务器映射 + s.updateDNSSECServerMap() + + // 启动日志处理协程 + go s.processLogs() + + // 启动统计数据定期重置功能(每24小时) + go func() { + ticker := time.NewTicker(24 * time.Hour) + defer ticker.Stop() + for { + select { + case <-ticker.C: + s.resetStats() + case <-s.ctx.Done(): + return + } + } + }() + // 启动UDP服务 go func() { logger.Info(fmt.Sprintf("DNS UDP服务器启动,监听端口: %d", s.config.Port)) @@ -293,6 +331,27 @@ func (s *Server) Start() error { return nil } +// resetStats 重置统计数据 +func (s *Server) resetStats() { + s.statsMutex.Lock() + defer s.statsMutex.Unlock() + + // 只重置累计值,保留配置相关值 + s.stats.TotalResponseTime = 0 + s.stats.AvgResponseTime = 0 + s.stats.Queries = 0 + s.stats.Blocked = 0 + s.stats.Allowed = 0 + s.stats.Errors = 0 + s.stats.DNSSECQueries = 0 + s.stats.DNSSECSuccess = 0 + s.stats.DNSSECFailed = 0 + s.stats.QueryTypes = make(map[string]int64) + s.stats.SourceIPs = make(map[string]bool) + + logger.Info("统计数据已重置") +} + // Stop 停止DNS服务器 func (s *Server) Stop() { // 检查服务器是否已经停止 @@ -326,6 +385,39 @@ func (s *Server) Stop() { func (s *Server) handleDNSRequest(w dns.ResponseWriter, r *dns.Msg) { startTime := time.Now() + // 1. 初始化请求信息 + reqInfo := s.initRequestInfo(w, r) + + // 2. 检查基本请求条件 + if earlyResponse := s.checkRequestConditions(w, r, startTime, reqInfo); earlyResponse { + return + } + + // 3. 检查本地处理规则 + if localHandled := s.handleLocalRules(w, r, startTime, reqInfo); localHandled { + return + } + + // 4. 尝试从缓存获取响应 + if cacheHandled := s.handleCacheResponse(w, r, startTime, reqInfo); cacheHandled { + return + } + + // 5. 转发请求到上游服务器 + s.handleUpstreamRequest(w, r, startTime, reqInfo) +} + +// requestInfo 封装请求相关信息 +type requestInfo struct { + sourceIP string + domain string + queryType string + qType uint16 + queryAttempts []string +} + +// initRequestInfo 初始化请求信息 +func (s *Server) initRequestInfo(w dns.ResponseWriter, r *dns.Msg) *requestInfo { // 获取来源IP sourceIP := w.RemoteAddr().String() // 提取IP地址部分,去掉端口 @@ -341,7 +433,7 @@ func (s *Server) handleDNSRequest(w dns.ResponseWriter, r *dns.Msg) { } } - // 更新来源IP统计 + // 更新来源IP统计和Queries计数器 s.updateStats(func(stats *Stats) { stats.Queries++ stats.LastQuery = time.Now() @@ -368,33 +460,43 @@ func (s *Server) handleDNSRequest(w dns.ResponseWriter, r *dns.Msg) { s.updateStats(func(stats *Stats) { stats.QueryTypes[queryType]++ }) - - // 检查是否是AAAA记录查询且IPv6解析已禁用 - if qType == dns.TypeAAAA && !s.config.EnableIPv6 { - // 返回NXDOMAIN响应(域名不存在) - response := new(dns.Msg) - response.SetReply(r) - response.SetRcode(r, dns.RcodeNameError) - w.WriteMsg(response) - - // 更新统计信息 - responseTime := int64(0) - s.updateStats(func(stats *Stats) { - stats.TotalResponseTime += responseTime - if stats.Queries > 0 { - stats.AvgResponseTime = float64(stats.TotalResponseTime) / float64(stats.Queries) - } - }) - - // 添加查询日志 - s.addQueryLog(sourceIP, domain, queryType, responseTime, "error", "", "", false, false, true, "", "", nil, dns.RcodeNameError) - logger.Debug("IPv6解析已禁用,拒绝AAAA记录查询", "domain", domain) - return - } } logger.Debug("接收到DNS查询", "domain", domain, "type", queryType, "client", w.RemoteAddr()) + return &requestInfo{ + sourceIP: sourceIP, + domain: domain, + queryType: queryType, + qType: qType, + queryAttempts: []string{domain}, + } +} + +// checkRequestConditions 检查请求条件,返回是否需要提前响应 +func (s *Server) checkRequestConditions(w dns.ResponseWriter, r *dns.Msg, startTime time.Time, reqInfo *requestInfo) bool { + // 检查是否是AAAA记录查询且IPv6解析已禁用 + if reqInfo.qType == dns.TypeAAAA && !s.config.EnableIPv6 { + // 返回空的成功响应,而不是NXDOMAIN + response := new(dns.Msg) + response.SetReply(r) + response.SetRcode(r, dns.RcodeSuccess) + w.WriteMsg(response) + + // 更新统计信息 - 视为正常解析 + responseTime := time.Since(startTime).Milliseconds() + s.updateStats(func(stats *Stats) { + stats.Allowed++ + stats.TotalResponseTime += responseTime + stats.AvgResponseTime = calculateAvgResponseTime(stats.TotalResponseTime, stats.Queries) + }) + + // 添加查询日志 + s.addQueryLog(reqInfo.sourceIP, reqInfo.domain, reqInfo.queryType, responseTime, "allowed", "", "", false, false, true, "", "", nil, dns.RcodeSuccess) + logger.Debug("IPv6解析已禁用,返回空的成功响应", "domain", reqInfo.domain) + return true + } + // 只处理递归查询 if r.RecursionDesired == false { response := new(dns.Msg) @@ -403,51 +505,66 @@ func (s *Server) handleDNSRequest(w dns.ResponseWriter, r *dns.Msg) { response.SetRcode(r, dns.RcodeRefused) w.WriteMsg(response) - // 缓存命中,响应时间设为0ms - responseTime := int64(0) + // 计算实际响应时间 + responseTime := time.Since(startTime).Milliseconds() + // 更新统计信息 - 视为错误 s.updateStats(func(stats *Stats) { + stats.Errors++ stats.TotalResponseTime += responseTime - if stats.Queries > 0 { - stats.AvgResponseTime = float64(stats.TotalResponseTime) / float64(stats.Queries) - } + stats.AvgResponseTime = calculateAvgResponseTime(stats.TotalResponseTime, stats.Queries) }) // 添加查询日志 - s.addQueryLog(sourceIP, domain, queryType, responseTime, "error", "", "", false, false, true, "", "", nil, dns.RcodeRefused) - return + s.addQueryLog(reqInfo.sourceIP, reqInfo.domain, reqInfo.queryType, responseTime, "error", "", "", false, false, true, "", "", nil, dns.RcodeRefused) + return true } + return false +} + +// handleLocalRules 处理本地规则(hosts文件、GFWList、屏蔽规则),返回是否已处理 +func (s *Server) handleLocalRules(w dns.ResponseWriter, r *dns.Msg, startTime time.Time, reqInfo *requestInfo) bool { + // 本地规则匹配的响应时间极短,使用固定值1ms + const localResponseTime int64 = 1 + // 检查hosts文件是否有匹配 - if ip, exists := s.shieldManager.GetHostsIP(domain); exists { + if ip, exists := s.shieldManager.GetHostsIP(reqInfo.domain); exists { s.handleHostsResponse(w, r, ip) - // 缓存命中,响应时间设为0ms - responseTime := int64(0) + // 使用固定的短响应时间 s.updateStats(func(stats *Stats) { - stats.TotalResponseTime += responseTime - if stats.Queries > 0 { - stats.AvgResponseTime = float64(stats.TotalResponseTime) / float64(stats.Queries) - } + stats.TotalResponseTime += localResponseTime + stats.AvgResponseTime = calculateAvgResponseTime(stats.TotalResponseTime, stats.Queries) + }) + return true + } + + // 检查是否为GFWList域名(仅当GFWList功能启用时) + if s.gfwConfig.Enabled && s.gfwManager != nil && s.gfwManager.IsMatch(reqInfo.domain) { + s.handleGFWListResponse(w, r, reqInfo.domain) + // 使用固定的短响应时间 + s.updateStats(func(stats *Stats) { + stats.TotalResponseTime += localResponseTime + stats.AvgResponseTime = calculateAvgResponseTime(stats.TotalResponseTime, stats.Queries) }) - // 该方法内部未直接调用addQueryLog,而是在handleDNSRequest中处理 - return + // 添加查询日志 - GFWList域名 + gfwAnswers := []DNSAnswer{} + s.addQueryLog(reqInfo.sourceIP, reqInfo.domain, reqInfo.queryType, localResponseTime, "gfwlist", "", "", false, false, true, "GFWList", "无", gfwAnswers, dns.RcodeSuccess) + return true } // 检查是否被屏蔽 - if s.shieldManager.IsBlocked(domain) { + if s.shieldManager.IsBlocked(reqInfo.domain) { // 获取屏蔽详情 - blockDetails := s.shieldManager.CheckDomainBlockDetails(domain) + blockDetails := s.shieldManager.CheckDomainBlockDetails(reqInfo.domain) blockRule, _ := blockDetails["blockRule"].(string) blockType, _ := blockDetails["blockRuleType"].(string) - s.handleBlockedResponse(w, r, domain) - // 计算响应时间 - responseTime := time.Since(startTime).Milliseconds() + s.handleBlockedResponse(w, r, reqInfo.domain) + // 使用固定的短响应时间 s.updateStats(func(stats *Stats) { - stats.TotalResponseTime += responseTime - if stats.Queries > 0 { - stats.AvgResponseTime = float64(stats.TotalResponseTime) / float64(stats.Queries) - } + stats.TotalResponseTime += localResponseTime + stats.AvgResponseTime = calculateAvgResponseTime(stats.TotalResponseTime, stats.Queries) }) // 添加查询日志 - 被屏蔽域名 @@ -459,17 +576,22 @@ func (s *Server) handleDNSRequest(w dns.ResponseWriter, r *dns.Msg) { } else if blockMethod == "emptyIP" || blockMethod == "customIP" { blockedRcode = dns.RcodeSuccess } - s.addQueryLog(sourceIP, domain, queryType, responseTime, "blocked", blockRule, blockType, false, false, true, "无", "无", blockedAnswers, blockedRcode) - return + s.addQueryLog(reqInfo.sourceIP, reqInfo.domain, reqInfo.queryType, localResponseTime, "blocked", blockRule, blockType, false, false, true, "无", "无", blockedAnswers, blockedRcode) + return true } + return false +} + +// handleCacheResponse 尝试从缓存获取响应,返回是否已处理 +func (s *Server) handleCacheResponse(w dns.ResponseWriter, r *dns.Msg, startTime time.Time, reqInfo *requestInfo) bool { // 检查缓存中是否有响应(优先查找带DNSSEC的缓存项) var cachedResponse *dns.Msg var found bool var cachedDNSSEC bool // 1. 首先检查是否有普通缓存项 - if tempResponse, tempFound := s.DnsCache.Get(r.Question[0].Name, qType); tempFound { + if tempResponse, tempFound := s.DnsCache.Get(r.Question[0].Name, reqInfo.qType); tempFound { cachedResponse = tempResponse found = tempFound cachedDNSSEC = s.hasDNSSECRecords(tempResponse) @@ -483,87 +605,117 @@ func (s *Server) handleDNSRequest(w dns.ResponseWriter, r *dns.Msg) { // 后续可以考虑改进缓存实现,添加DNSSEC状态标记 } - if found { - // 缓存命中,直接返回缓存的响应 - cachedResponseCopy := cachedResponse.Copy() // 创建响应副本避免并发修改问题 - cachedResponseCopy.Id = r.Id // 更新ID以匹配请求 - cachedResponseCopy.Compress = true - - // 如果客户端请求包含EDNS记录,确保响应也包含EDNS - if opt := r.IsEdns0(); opt != nil { - // 检查响应是否已经包含EDNS记录 - if respOpt := cachedResponseCopy.IsEdns0(); respOpt == nil { - // 添加EDNS记录,使用客户端的UDP缓冲区大小 - cachedResponseCopy.SetEdns0(opt.UDPSize(), s.config.EnableDNSSEC) - } else { - // 确保响应的UDP缓冲区大小不超过客户端请求的大小 - if respOpt.UDPSize() > opt.UDPSize() { - // 移除现有的EDNS记录 - for i := range cachedResponseCopy.Extra { - if cachedResponseCopy.Extra[i] == respOpt { - cachedResponseCopy.Extra = append(cachedResponseCopy.Extra[:i], cachedResponseCopy.Extra[i+1:]...) - break - } - } - // 添加新的EDNS记录,使用客户端的UDP缓冲区大小 - cachedResponseCopy.SetEdns0(opt.UDPSize(), s.config.EnableDNSSEC) - } - } - } - - w.WriteMsg(cachedResponseCopy) - - // 计算响应时间 - responseTime := time.Since(startTime).Milliseconds() - s.updateStats(func(stats *Stats) { - stats.TotalResponseTime += responseTime - if stats.Queries > 0 { - stats.AvgResponseTime = float64(stats.TotalResponseTime) / float64(stats.Queries) - } - }) - - // 如果缓存响应包含DNSSEC记录,更新DNSSEC查询计数 - if cachedDNSSEC { - s.updateStats(func(stats *Stats) { - stats.DNSSECQueries++ - // 缓存响应视为DNSSEC成功 - stats.DNSSECSuccess++ - }) - } - - // 从缓存响应中提取解析记录 - cachedAnswers := []DNSAnswer{} - if cachedResponse != nil { - for _, rr := range cachedResponse.Answer { - cachedAnswers = append(cachedAnswers, DNSAnswer{ - Type: dns.TypeToString[rr.Header().Rrtype], - Value: rr.String(), - TTL: rr.Header().Ttl, - }) - } - } - - // 添加查询日志 - 标记为缓存 - // 从缓存响应中获取响应代码 - cacheRcode := dns.RcodeSuccess // 默认成功 - if cachedResponse != nil { - cacheRcode = cachedResponse.Rcode - } - s.addQueryLog(sourceIP, domain, queryType, responseTime, "allowed", "", "", true, cachedDNSSEC, true, "缓存", "无", cachedAnswers, cacheRcode) - logger.Debug("从缓存返回DNS响应", "domain", domain, "type", queryType, "dnssec", cachedDNSSEC) - return + if !found { + return false } + // 缓存命中,直接返回缓存的响应 + cachedResponseCopy := cachedResponse.Copy() // 创建响应副本避免并发修改问题 + cachedResponseCopy.Id = r.Id // 更新ID以匹配请求 + cachedResponseCopy.Compress = true + + // 如果客户端请求包含EDNS记录,确保响应也包含EDNS + if opt := r.IsEdns0(); opt != nil { + // 检查响应是否已经包含EDNS记录 + if respOpt := cachedResponseCopy.IsEdns0(); respOpt == nil { + // 添加EDNS记录,使用客户端的UDP缓冲区大小 + cachedResponseCopy.SetEdns0(opt.UDPSize(), s.config.EnableDNSSEC) + } else { + // 确保响应的UDP缓冲区大小不超过客户端请求的大小 + if respOpt.UDPSize() > opt.UDPSize() { + // 移除现有的EDNS记录 + for i := range cachedResponseCopy.Extra { + if cachedResponseCopy.Extra[i] == respOpt { + cachedResponseCopy.Extra = append(cachedResponseCopy.Extra[:i], cachedResponseCopy.Extra[i+1:]...) + break + } + } + // 添加新的EDNS记录,使用客户端的UDP缓冲区大小 + cachedResponseCopy.SetEdns0(opt.UDPSize(), s.config.EnableDNSSEC) + } + } + } + + // 确保响应的Question部分与客户端请求的Question部分匹配 + cachedResponseCopy.Question = r.Question + + // 修复:如果响应包含记录,确保Rcode为成功 + hasValidRecords := false + + // 检查Answer部分 + if len(cachedResponseCopy.Answer) > 0 { + hasValidRecords = true + } else if len(cachedResponseCopy.Ns) > 0 { + // 检查Ns部分 + hasValidRecords = true + } else if len(cachedResponseCopy.Extra) > 0 { + // 检查Extra部分,排除OPT记录 + for _, rr := range cachedResponseCopy.Extra { + if rr.Header().Rrtype != dns.TypeOPT { + hasValidRecords = true + break + } + } + } + + if hasValidRecords { + cachedResponseCopy.Rcode = dns.RcodeSuccess + } + + w.WriteMsg(cachedResponseCopy) + + // 缓存命中的响应时间应该是极短的,使用固定值1ms而非实际处理时间 + const cacheResponseTime int64 = 1 + + // 缓存命中的响应视为正常解析 + s.updateStats(func(stats *Stats) { + stats.Allowed++ + stats.TotalResponseTime += cacheResponseTime + stats.AvgResponseTime = calculateAvgResponseTime(stats.TotalResponseTime, stats.Queries) + }) + + // 如果缓存响应包含DNSSEC记录,更新DNSSEC查询计数 + if cachedDNSSEC { + s.updateStats(func(stats *Stats) { + stats.DNSSECQueries++ + // 缓存响应视为DNSSEC成功 + stats.DNSSECSuccess++ + }) + } + + // 从缓存响应中提取解析记录 + cachedAnswers := []DNSAnswer{} + if cachedResponse != nil { + for _, rr := range cachedResponse.Answer { + cachedAnswers = append(cachedAnswers, DNSAnswer{ + Type: dns.TypeToString[rr.Header().Rrtype], + Value: rr.String(), + TTL: rr.Header().Ttl, + }) + } + } + + // 添加查询日志 - 标记为缓存 + // 从缓存响应中获取响应代码 + cacheRcode := dns.RcodeSuccess // 默认成功 + if cachedResponse != nil { + cacheRcode = cachedResponse.Rcode + } + s.addQueryLog(reqInfo.sourceIP, reqInfo.domain, reqInfo.queryType, cacheResponseTime, "allowed", "", "", true, cachedDNSSEC, true, "缓存", "无", cachedAnswers, cacheRcode) + logger.Debug("从缓存返回DNS响应", "domain", reqInfo.domain, "type", reqInfo.queryType, "dnssec", cachedDNSSEC) + return true +} + +// handleUpstreamRequest 处理上游请求 +func (s *Server) handleUpstreamRequest(w dns.ResponseWriter, r *dns.Msg, startTime time.Time, reqInfo *requestInfo) { // 缓存未命中,处理DNS请求 var response *dns.Msg var rtt time.Duration - var queryAttempts []string var dnsServer string var dnssecServer string // 直接查询原始域名 - queryAttempts = append(queryAttempts, domain) - response, rtt, dnsServer, dnssecServer = s.forwardDNSRequestWithCache(r, domain) + response, rtt, dnsServer, dnssecServer = s.forwardDNSRequestWithCache(r, reqInfo.domain) if response != nil { // 如果客户端请求包含EDNS记录,确保响应也包含EDNS @@ -588,6 +740,32 @@ func (s *Server) handleDNSRequest(w dns.ResponseWriter, r *dns.Msg) { } } + // 确保响应的Question部分与客户端请求的Question部分匹配 + response.Question = r.Question + + // 修复:如果响应包含记录,确保Rcode为成功 + hasValidRecords := false + + // 检查Answer部分 + if len(response.Answer) > 0 { + hasValidRecords = true + } else if len(response.Ns) > 0 { + // 检查Ns部分 + hasValidRecords = true + } else if len(response.Extra) > 0 { + // 检查Extra部分,排除OPT记录 + for _, rr := range response.Extra { + if rr.Header().Rrtype != dns.TypeOPT { + hasValidRecords = true + break + } + } + } + + if hasValidRecords { + response.Rcode = dns.RcodeSuccess + } + // 写入响应给客户端 w.WriteMsg(response) } @@ -599,13 +777,48 @@ func (s *Server) handleDNSRequest(w dns.ResponseWriter, r *dns.Msg) { responseTime = time.Since(startTime).Milliseconds() } + // 添加合理性检查,避免异常大的响应时间影响统计 + if responseTime > 60000 { // 超过60秒的响应时间视为异常 + responseTime = 60000 + } + + // 更新基本统计 s.updateStats(func(stats *Stats) { stats.TotalResponseTime += responseTime + // 添加防御性编程,确保Queries大于0 if stats.Queries > 0 { - stats.AvgResponseTime = float64(stats.TotalResponseTime) / float64(stats.Queries) + // 平均响应时间 = 总响应时间 / 总解析数量,四舍五入取整 + avg := float64(stats.TotalResponseTime) / float64(stats.Queries) + stats.AvgResponseTime = float64(math.Round(avg)) + // 限制平均响应时间的范围,避免显示异常大的值 + if stats.AvgResponseTime > 60000 { + stats.AvgResponseTime = 60000 + } } }) + // 判断请求结果类型并更新相应统计 + resultType := "allowed" + if response == nil { + // 响应为nil,视为错误 + resultType = "error" + s.updateStats(func(stats *Stats) { + stats.Errors++ + }) + } else if response.Rcode != dns.RcodeSuccess { + // 响应代码不是成功,视为错误 + resultType = "error" + s.updateStats(func(stats *Stats) { + stats.Errors++ + }) + } else { + // 成功响应,视为正常解析 + resultType = "allowed" + s.updateStats(func(stats *Stats) { + stats.Allowed++ + }) + } + // 检查响应是否包含DNSSEC记录并验证结果 responseDNSSEC := false if response != nil { @@ -619,7 +832,7 @@ func (s *Server) handleDNSRequest(w dns.ResponseWriter, r *dns.Msg) { // 更新域名的DNSSEC状态 if responseDNSSEC { - s.updateDomainDNSSECStatus(domain, true) + s.updateDomainDNSSECStatus(reqInfo.domain, true) } } @@ -629,8 +842,22 @@ func (s *Server) handleDNSRequest(w dns.ResponseWriter, r *dns.Msg) { responseCopy := response.Copy() // 设置合理的TTL,不超过默认的30分钟 defaultCacheTTL := 30 * time.Minute - s.DnsCache.Set(r.Question[0].Name, qType, responseCopy, defaultCacheTTL) - logger.Debug("DNS响应已缓存", "domain", domain, "type", queryType, "ttl", defaultCacheTTL, "dnssec", responseDNSSEC) + + // 1. 缓存原始域名的查询结果 + s.DnsCache.Set(r.Question[0].Name, reqInfo.qType, responseCopy, defaultCacheTTL) + logger.Debug("DNS响应已缓存", "domain", reqInfo.domain, "type", reqInfo.queryType, "ttl", defaultCacheTTL, "dnssec", responseDNSSEC) + + // 2. 如果响应包含CNAME记录,同时缓存CNAME指向的域名的查询结果 + for _, rr := range response.Answer { + if cname, ok := rr.(*dns.CNAME); ok { + // 为CNAME指向的域名创建缓存 + cnameQuery := r.Copy() + cnameQuery.Question[0].Name = cname.Target + s.DnsCache.Set(cname.Target, reqInfo.qType, responseCopy, defaultCacheTTL) + logger.Debug("CNAME响应已缓存", "domain", cname.Target, "type", reqInfo.queryType, "ttl", defaultCacheTTL, "dnssec", responseDNSSEC) + break + } + } } // 从响应中提取解析记录 @@ -645,13 +872,13 @@ func (s *Server) handleDNSRequest(w dns.ResponseWriter, r *dns.Msg) { } } - // 添加查询日志 - 标记为实时 // 从响应中获取响应代码 realRcode := dns.RcodeSuccess // 默认成功 if response != nil { realRcode = response.Rcode } - s.addQueryLog(sourceIP, domain, queryType, responseTime, "allowed", "", "", false, responseDNSSEC, true, dnsServer, dnssecServer, responseAnswers, realRcode) + // 添加查询日志 + s.addQueryLog(reqInfo.sourceIP, reqInfo.domain, reqInfo.queryType, responseTime, resultType, "", "", false, responseDNSSEC, true, dnsServer, dnssecServer, responseAnswers, realRcode) } // handleHostsResponse 处理hosts文件匹配的响应 @@ -684,6 +911,39 @@ func (s *Server) handleHostsResponse(w dns.ResponseWriter, r *dns.Msg, ip string } w.WriteMsg(response) + // 本地hosts匹配响应时间极短,使用固定值1ms + const localResponseTime int64 = 1 + s.updateStats(func(stats *Stats) { + stats.Allowed++ + }) +} + +// handleGFWListResponse 处理GFWList域名响应 +func (s *Server) handleGFWListResponse(w dns.ResponseWriter, r *dns.Msg, domain string) { + logger.Info("GFWList域名解析", "domain", domain, "client", w.RemoteAddr(), "ip", s.gfwConfig.IP) + + // 更新解析域名统计 + s.updateResolvedDomainStats(domain) + + response := new(dns.Msg) + response.SetReply(r) + + if len(r.Question) > 0 { + q := r.Question[0] + answer := new(dns.A) + answer.Hdr = dns.RR_Header{ + Name: q.Name, + Rrtype: dns.TypeA, + Class: dns.ClassINET, + Ttl: 300, + } + answer.A = net.ParseIP(s.gfwConfig.IP) + response.Answer = append(response.Answer, answer) + } + + w.WriteMsg(response) + // GFWList域名匹配响应时间极短,使用固定值1ms + const localResponseTime int64 = 1 s.updateStats(func(stats *Stats) { stats.Allowed++ }) @@ -730,7 +990,7 @@ func (s *Server) handleBlockedResponse(w dns.ResponseWriter, r *dns.Msg, domain } case "customIP": // 返回自定义IP响应 - if len(r.Question) > 0 && r.Question[0].Qtype == dns.TypeA && customBlockIP != "" { + if len(r.Question) > 0 && r.Question[0].Qtype == dns.TypeA { answer := new(dns.A) answer.Hdr = dns.RR_Header{ Name: r.Question[0].Name, @@ -738,7 +998,13 @@ func (s *Server) handleBlockedResponse(w dns.ResponseWriter, r *dns.Msg, domain Class: dns.ClassINET, Ttl: 300, } - answer.A = net.ParseIP(customBlockIP) + // 使用自定义屏蔽IP + if customBlockIP != "" { + answer.A = net.ParseIP(customBlockIP) + } else { + // 如果没有配置,使用0.0.0.0 + answer.A = net.ParseIP("0.0.0.0") + } response.Answer = append(response.Answer, answer) } case "NXDOMAIN", "": @@ -749,6 +1015,8 @@ func (s *Server) handleBlockedResponse(w dns.ResponseWriter, r *dns.Msg, domain } w.WriteMsg(response) + // 屏蔽规则匹配响应时间极短,使用固定值1ms + const localResponseTime int64 = 1 s.updateStats(func(stats *Stats) { stats.Blocked++ }) @@ -763,6 +1031,19 @@ type serverResponse struct { error error } +// updateDNSSECServerMap 更新DNSSEC专用服务器映射,用于快速查找 +func (s *Server) updateDNSSECServerMap() { + // 清空现有映射 + for k := range s.dnssecServerMap { + delete(s.dnssecServerMap, k) + } + + // 添加所有DNSSEC专用服务器到映射 + for _, server := range s.config.DNSSECUpstreamDNS { + s.dnssecServerMap[server] = true + } +} + // forwardDNSRequestWithCache 转发DNS请求到上游服务器并返回响应 func (s *Server) forwardDNSRequestWithCache(r *dns.Msg, domain string) (*dns.Msg, time.Duration, string, string) { // 始终支持EDNS @@ -857,45 +1138,51 @@ func (s *Server) forwardDNSRequestWithCache(r *dns.Msg, domain string) (*dns.Msg var usedDNSServer string var usedDNSSECServer string + // 使用配置中的超时时间 + defaultTimeout := time.Duration(s.config.QueryTimeout) * time.Millisecond + // 根据查询模式处理请求 switch s.config.QueryMode { case "parallel": - // 并行请求模式 - 优化版:添加超时处理和快速响应返回 + // 并行请求模式 - 返回第一个成功响应 responses := make(chan serverResponse, len(selectedUpstreamDNS)) var wg sync.WaitGroup - // 超时上下文 - timeoutCtx, cancel := context.WithTimeout(s.ctx, time.Duration(s.config.Timeout)*time.Millisecond) - defer cancel() - // 向所有上游服务器并行发送请求 for _, upstream := range selectedUpstreamDNS { wg.Add(1) go func(server string) { defer wg.Done() - // 发送请求并获取响应,确保服务器地址包含端口号 - response, rtt, err := s.resolver.Exchange(r, normalizeDNSServerAddress(server)) + // 从池中获取客户端实例 + client := s.clientPool.Get().(*dns.Client) + // 设置客户端参数 + client.Net = s.resolver.Net + client.UDPSize = s.resolver.UDPSize + client.Timeout = defaultTimeout - select { - case responses <- serverResponse{response, rtt, server, err}: - // 成功发送响应 - case <-timeoutCtx.Done(): - // 超时,忽略此响应 - logger.Debug("并行请求超时", "server", server, "domain", domain) - return - } + // 发送请求并获取响应,确保服务器地址包含端口号 + response, rtt, err := client.Exchange(r, normalizeDNSServerAddress(server)) + responses <- serverResponse{response, rtt, server, err} + + // 将客户端实例放回池中 + s.clientPool.Put(client) }(upstream) } - // 等待所有请求完成或超时 + // 等待所有请求完成 go func() { wg.Wait() close(responses) }() - // 处理所有响应 - for resp := range responses { + // 处理响应,只返回第一个成功响应 + var lastErrorResponse *dns.Msg + var lastErrorRtt time.Duration + var lastErrorServer string + + for i := 0; i < len(selectedUpstreamDNS); i++ { + resp := <-responses if resp.error == nil && resp.response != nil { // 更新服务器统计信息 s.updateServerStats(resp.server, true, resp.rtt) @@ -903,129 +1190,51 @@ func (s *Server) forwardDNSRequestWithCache(r *dns.Msg, domain string) (*dns.Msg // 检查是否包含DNSSEC记录 containsDNSSEC := s.hasDNSSECRecords(resp.response) - // 如果启用了DNSSEC且响应包含DNSSEC记录,验证DNSSEC签名 - // 但如果域名匹配不验证DNSSEC的模式,则跳过验证 - if s.config.EnableDNSSEC && containsDNSSEC && !noDNSSEC { - // 验证DNSSEC记录 - signatureValid := s.verifyDNSSEC(resp.response) - - // 设置AD标志(Authenticated Data) - resp.response.AuthenticatedData = signatureValid - - if signatureValid { - // 更新DNSSEC验证成功计数 - s.updateStats(func(stats *Stats) { - stats.DNSSECQueries++ - stats.DNSSECSuccess++ - }) - } else { - // 更新DNSSEC验证失败计数 - s.updateStats(func(stats *Stats) { - stats.DNSSECQueries++ - stats.DNSSECFailed++ - }) - } - } else if noDNSSEC { - // 对于不验证DNSSEC的域名,始终设置AD标志为false + // 对于不验证DNSSEC的域名,始终设置AD标志为false + if noDNSSEC { resp.response.AuthenticatedData = false } // 检查当前服务器是否是DNSSEC专用服务器 - for _, dnssecServer := range dnssecServers { - if dnssecServer == resp.server { - usedDNSSECServer = resp.server - break - } + if _, isDNSSECServer := s.dnssecServerMap[resp.server]; isDNSSECServer { + usedDNSSECServer = resp.server } - // 检查当前服务器是否是用户配置的上游DNS服务器 - isUserUpstream := false - for _, userServer := range s.config.UpstreamDNS { - if userServer == resp.server { - isUserUpstream = true - break - } - } - - // 处理响应,优先选择用户配置的主DNS服务器 + // 如果是成功响应,立即返回 if resp.response.Rcode == dns.RcodeSuccess { - // 成功响应,优先使用 - if isUserUpstream { - // 用户配置的主DNS服务器响应,直接设置为最佳响应 - bestResponse = resp.response - bestRtt = resp.rtt - hasBestResponse = true - hasDNSSECResponse = containsDNSSEC - usedDNSServer = resp.server - logger.Debug("使用用户配置的上游服务器响应", "domain", domain, "server", resp.server, "rtt", resp.rtt) - } else if containsDNSSEC { - // 非用户配置服务器,但有DNSSEC记录 - if !hasBestResponse || !isUserUpstream { - // 如果还没有最佳响应,或者当前最佳响应不是用户配置的服务器,则更新 - bestResponse = resp.response - bestRtt = resp.rtt - hasBestResponse = true - hasDNSSECResponse = true - usedDNSServer = resp.server - logger.Debug("找到带DNSSEC的最佳响应", "domain", domain, "server", resp.server, "rtt", resp.rtt) - } - } else { - // 非用户配置服务器,没有DNSSEC记录 - if !hasBestResponse { - // 如果还没有最佳响应,设置为最佳响应 - bestResponse = resp.response - bestRtt = resp.rtt - hasBestResponse = true - usedDNSServer = resp.server - logger.Debug("找到最佳响应", "domain", domain, "server", resp.server, "rtt", resp.rtt) - } - } - } else if resp.response.Rcode == dns.RcodeNameError { - // NXDOMAIN响应 - if !hasBestResponse || bestResponse.Rcode == dns.RcodeNameError { - // 如果还没有最佳响应,或者最佳响应也是NXDOMAIN - if isUserUpstream { - // 用户配置的服务器,直接使用 - bestResponse = resp.response - bestRtt = resp.rtt - hasBestResponse = true - usedDNSServer = resp.server - logger.Debug("使用用户配置的上游服务器NXDOMAIN响应", "domain", domain, "server", resp.server, "rtt", resp.rtt) - } else if !hasBestResponse || resp.rtt < bestRtt { - // 非用户配置服务器,选择更快的响应 - bestResponse = resp.response - bestRtt = resp.rtt - hasBestResponse = true - usedDNSServer = resp.server - logger.Debug("找到NXDOMAIN最佳响应", "domain", domain, "server", resp.server, "rtt", resp.rtt) - } - } - } + // 验证DNSSEC记录(如果需要) + if s.config.EnableDNSSEC && containsDNSSEC && !noDNSSEC { + // 验证DNSSEC记录 + signatureValid := s.verifyDNSSEC(resp.response) + resp.response.AuthenticatedData = signatureValid - // 更新备选响应,确保总有一个可用的响应 - if resp.response != nil { - if !hasBackup { - // 第一次保存备选响应 - backupResponse = resp.response - backupRtt = resp.rtt - hasBackup = true - } else { - // 后续响应,优先保存用户配置的服务器响应作为备选 - if isUserUpstream { - backupResponse = resp.response - backupRtt = resp.rtt + if signatureValid { + // 更新DNSSEC验证成功计数 + s.updateStats(func(stats *Stats) { + stats.DNSSECQueries++ + stats.DNSSECSuccess++ + }) + } else { + // 更新DNSSEC验证失败计数 + s.updateStats(func(stats *Stats) { + stats.DNSSECQueries++ + stats.DNSSECFailed++ + }) } } - } - // 即使响应不是成功或NXDOMAIN,也保存为最佳响应(如果还没有的话) - // 确保总有一个响应返回给客户端 - if !hasBestResponse { bestResponse = resp.response bestRtt = resp.rtt - hasBestResponse = true usedDNSServer = resp.server - logger.Debug("使用非成功响应作为最佳响应", "domain", domain, "server", resp.server, "rtt", resp.rtt, "rcode", resp.response.Rcode) + hasBestResponse = true + hasDNSSECResponse = containsDNSSEC + logger.Debug("返回第一个成功响应", "domain", domain, "server", resp.server, "rtt", resp.rtt) + return bestResponse, bestRtt, usedDNSServer, usedDNSSECServer + } else { + // 保存最后一个错误响应 + lastErrorResponse = resp.response + lastErrorRtt = resp.rtt + lastErrorServer = resp.server } } else { // 更新服务器统计信息(失败) @@ -1033,190 +1242,35 @@ func (s *Server) forwardDNSRequestWithCache(r *dns.Msg, domain string) (*dns.Msg } } - case "loadbalance": - // 负载均衡模式 - 使用加权随机选择算法 - // 1. 尝试所有可用的服务器,直到找到一个能正常工作的 - var triedServers []string - for len(triedServers) < len(selectedUpstreamDNS) { - // 从剩余的服务器中选择一个加权随机服务器 - var availableServers []string - for _, server := range selectedUpstreamDNS { - found := false - for _, tried := range triedServers { - if server == tried { - found = true - break - } - } - if !found { - availableServers = append(availableServers, server) - } - } - - selectedServer := s.selectWeightedRandomServer(availableServers) - if selectedServer == "" { - break - } - - triedServers = append(triedServers, selectedServer) - logger.Debug("在负载均衡模式下选择服务器", "domain", domain, "server", selectedServer, "triedServers", triedServers) - - // 设置超时上下文 - timeoutCtx, cancel := context.WithTimeout(s.ctx, time.Duration(s.config.Timeout)*time.Millisecond) - defer cancel() - - // 使用带超时的方式执行Exchange - resultChan := make(chan struct { - response *dns.Msg - rtt time.Duration - err error - }, 1) - - go func() { - response, rtt, err := s.resolver.Exchange(r, normalizeDNSServerAddress(selectedServer)) - resultChan <- struct { - response *dns.Msg - rtt time.Duration - err error - }{response, rtt, err} - }() - - var response *dns.Msg - var rtt time.Duration - var err error - - select { - case result := <-resultChan: - response, rtt, err = result.response, result.rtt, result.err - case <-timeoutCtx.Done(): - err = timeoutCtx.Err() - } - - if err == nil && response != nil { - // 更新服务器统计信息 - s.updateServerStats(selectedServer, true, rtt) - - // 检查是否包含DNSSEC记录 - containsDNSSEC := s.hasDNSSECRecords(response) - - // 如果启用了DNSSEC且响应包含DNSSEC记录,验证DNSSEC签名 - // 但如果域名匹配不验证DNSSEC的模式,则跳过验证 - if s.config.EnableDNSSEC && containsDNSSEC && !noDNSSEC { - // 验证DNSSEC记录 - signatureValid := s.verifyDNSSEC(response) - - // 设置AD标志(Authenticated Data) - response.AuthenticatedData = signatureValid - - if signatureValid { - // 更新DNSSEC验证成功计数 - s.updateStats(func(stats *Stats) { - stats.DNSSECQueries++ - stats.DNSSECSuccess++ - }) - } else { - // 更新DNSSEC验证失败计数 - s.updateStats(func(stats *Stats) { - stats.DNSSECQueries++ - stats.DNSSECFailed++ - }) - } - } else if noDNSSEC { - // 对于不验证DNSSEC的域名,始终设置AD标志为false - response.AuthenticatedData = false - } - - // 如果响应成功或为NXDOMAIN,根据DNSSEC状态选择最佳响应 - if response.Rcode == dns.RcodeSuccess || response.Rcode == dns.RcodeNameError { - if response.Rcode == dns.RcodeSuccess { - // 优先选择带有DNSSEC记录的响应 - if containsDNSSEC { - bestResponse = response - bestRtt = rtt - hasBestResponse = true - hasDNSSECResponse = true - usedDNSServer = selectedServer - // 如果当前使用的服务器是DNSSEC专用服务器,同时设置usedDNSSECServer - for _, dnssecServer := range dnssecServers { - if dnssecServer == selectedServer { - usedDNSSECServer = selectedServer - break - } - } - logger.Debug("找到带DNSSEC的最佳响应", "domain", domain, "server", selectedServer, "rtt", rtt) - } else { - // 没有带DNSSEC的响应时,保存成功响应 - bestResponse = response - bestRtt = rtt - hasBestResponse = true - usedDNSServer = selectedServer - // 如果当前使用的服务器是DNSSEC专用服务器,同时设置usedDNSSECServer - for _, dnssecServer := range dnssecServers { - if dnssecServer == selectedServer { - usedDNSSECServer = selectedServer - break - } - } - logger.Debug("找到最佳响应", "domain", domain, "server", selectedServer, "rtt", rtt) - } - } else if response.Rcode == dns.RcodeNameError { - // 处理NXDOMAIN响应 - bestResponse = response - bestRtt = rtt - hasBestResponse = true - usedDNSServer = selectedServer - logger.Debug("找到NXDOMAIN响应", "domain", domain, "server", selectedServer, "rtt", rtt) - } - // 保存为备选响应 - if !hasBackup { - backupResponse = response - backupRtt = rtt - hasBackup = true - } - break // 找到有效响应,退出循环 - } - } else { - // 更新服务器统计信息(失败) - s.updateServerStats(selectedServer, false, 0) - logger.Debug("服务器请求失败,尝试下一个", "domain", domain, "server", selectedServer, "error", err) - } + // 如果所有服务器都失败,返回最后一个错误 + if lastErrorResponse != nil { + bestResponse = lastErrorResponse + bestRtt = lastErrorRtt + usedDNSServer = lastErrorServer + hasBestResponse = true + logger.Debug("所有服务器都失败,返回最后一个错误响应", "domain", domain, "server", lastErrorServer) } + return bestResponse, bestRtt, usedDNSServer, usedDNSSECServer + case "fastest-ip": - // 最快的IP地址模式 - 使用TCP连接速度测量选择最快服务器 + // 最快的IP地址模式 - 通过ping测试选择最快服务器,只向一个服务器发送请求 // 1. 选择最快的服务器 fastestServer := s.selectFastestServer(selectedUpstreamDNS) if fastestServer != "" { - // 设置超时上下文 - timeoutCtx, cancel := context.WithTimeout(s.ctx, time.Duration(s.config.Timeout)*time.Millisecond) - defer cancel() + // 从池中获取客户端实例 + client := s.clientPool.Get().(*dns.Client) + // 设置客户端参数 + client.Net = s.resolver.Net + client.UDPSize = s.resolver.UDPSize + client.Timeout = defaultTimeout - // 使用带超时的方式执行Exchange - resultChan := make(chan struct { - response *dns.Msg - rtt time.Duration - err error - }, 1) + // 只向一个服务器发送请求 + response, rtt, err := client.Exchange(r, normalizeDNSServerAddress(fastestServer)) - go func() { - resp, r, e := s.resolver.Exchange(r, normalizeDNSServerAddress(fastestServer)) - resultChan <- struct { - response *dns.Msg - rtt time.Duration - err error - }{resp, r, e} - }() + // 将客户端实例放回池中 + s.clientPool.Put(client) - var response *dns.Msg - var rtt time.Duration - var err error - - select { - case result := <-resultChan: - response, rtt, err = result.response, result.rtt, result.err - case <-timeoutCtx.Done(): - err = timeoutCtx.Err() - } if err == nil && response != nil { // 更新服务器统计信息 s.updateServerStats(fastestServer, true, rtt) @@ -1224,13 +1278,15 @@ func (s *Server) forwardDNSRequestWithCache(r *dns.Msg, domain string) (*dns.Msg // 检查是否包含DNSSEC记录 containsDNSSEC := s.hasDNSSECRecords(response) - // 如果启用了DNSSEC且响应包含DNSSEC记录,验证DNSSEC签名 - // 但如果域名匹配不验证DNSSEC的模式,则跳过验证 + // 对于不验证DNSSEC的域名,始终设置AD标志为false + if noDNSSEC { + response.AuthenticatedData = false + } + + // 验证DNSSEC记录(如果需要) if s.config.EnableDNSSEC && containsDNSSEC && !noDNSSEC { // 验证DNSSEC记录 signatureValid := s.verifyDNSSEC(response) - - // 设置AD标志(Authenticated Data) response.AuthenticatedData = signatureValid if signatureValid { @@ -1246,194 +1302,308 @@ func (s *Server) forwardDNSRequestWithCache(r *dns.Msg, domain string) (*dns.Msg stats.DNSSECFailed++ }) } - } else if noDNSSEC { - // 对于不验证DNSSEC的域名,始终设置AD标志为false - response.AuthenticatedData = false } - // 如果响应成功或为NXDOMAIN,根据DNSSEC状态选择最佳响应 - if response.Rcode == dns.RcodeSuccess || response.Rcode == dns.RcodeNameError { - if response.Rcode == dns.RcodeSuccess { - // 优先选择带有DNSSEC记录的响应 - if containsDNSSEC { - bestResponse = response - bestRtt = rtt - hasBestResponse = true - hasDNSSECResponse = true - usedDNSServer = fastestServer - // 如果当前使用的服务器是DNSSEC专用服务器,同时设置usedDNSSECServer - for _, dnssecServer := range dnssecServers { - if dnssecServer == fastestServer { - usedDNSSECServer = fastestServer - break - } - } - logger.Debug("找到带DNSSEC的最佳响应", "domain", domain, "server", fastestServer, "rtt", rtt) - } else { - // 没有带DNSSEC的响应时,保存成功响应 - bestResponse = response - bestRtt = rtt - hasBestResponse = true - usedDNSServer = fastestServer - // 如果当前使用的服务器是DNSSEC专用服务器,同时设置usedDNSSECServer - for _, dnssecServer := range dnssecServers { - if dnssecServer == fastestServer { - usedDNSSECServer = fastestServer - break - } - } - logger.Debug("找到最佳响应", "domain", domain, "server", fastestServer, "rtt", rtt) + // 检查响应是否包含有效的记录,如果包含,将Rcode设置为成功 + hasValidRecords := false + if len(response.Answer) > 0 { + hasValidRecords = true + } else if len(response.Ns) > 0 { + hasValidRecords = true + } else if len(response.Extra) > 0 { + for _, rr := range response.Extra { + if rr.Header().Rrtype != dns.TypeOPT { + hasValidRecords = true + break } - } else if response.Rcode == dns.RcodeNameError { - // 处理NXDOMAIN响应 - bestResponse = response - bestRtt = rtt - hasBestResponse = true - usedDNSServer = fastestServer - logger.Debug("找到NXDOMAIN响应", "domain", domain, "server", fastestServer, "rtt", rtt) - } - // 保存为备选响应 - if !hasBackup { - backupResponse = response - backupRtt = rtt - hasBackup = true } } + + if hasValidRecords { + response.Rcode = dns.RcodeSuccess + } + + // 设置最佳响应 + bestResponse = response + bestRtt = rtt + hasBestResponse = true + usedDNSServer = fastestServer + if containsDNSSEC { + hasDNSSECResponse = true + } + if _, isDNSSECServer := s.dnssecServerMap[normalizeDNSServerAddress(fastestServer)]; isDNSSECServer { + usedDNSSECServer = fastestServer + } + logger.Debug("使用最快服务器返回响应", "domain", domain, "server", fastestServer, "rtt", rtt) } else { // 更新服务器统计信息(失败) s.updateServerStats(fastestServer, false, 0) + logger.Debug("最快服务器请求失败", "domain", domain, "server", fastestServer, "error", err) } } default: - // 默认使用并行请求模式 - 添加超时处理和快速响应返回 + // 默认使用并行请求模式 - 实现快速返回和超时机制 responses := make(chan serverResponse, len(selectedUpstreamDNS)) + resultChan := make(chan struct { + response *dns.Msg + rtt time.Duration + usedServer string + usedDnssecServer string + }, 1) var wg sync.WaitGroup - // 超时上下文 - timeoutCtx, cancel := context.WithTimeout(s.ctx, time.Duration(s.config.Timeout)*time.Millisecond) - defer cancel() - // 向所有上游服务器并行发送请求 for _, upstream := range selectedUpstreamDNS { wg.Add(1) go func(server string) { defer wg.Done() - // 发送请求并获取响应 - response, rtt, err := s.resolver.Exchange(r, normalizeDNSServerAddress(server)) - - select { - case responses <- serverResponse{response, rtt, server, err}: - // 成功发送响应 - case <-timeoutCtx.Done(): - // 超时,忽略此响应 - logger.Debug("并行请求超时", "server", server, "domain", domain) - return + // 创建带有超时的resolver + client := &dns.Client{ + Net: s.resolver.Net, + UDPSize: s.resolver.UDPSize, + Timeout: defaultTimeout, } + + // 发送请求并获取响应,确保服务器地址包含端口号 + response, rtt, err := client.Exchange(r, normalizeDNSServerAddress(server)) + responses <- serverResponse{response, rtt, server, err} }(upstream) } - // 等待所有请求完成或超时 + // 处理响应的协程 + go func() { + var fastestResponse *dns.Msg + var fastestRtt time.Duration = defaultTimeout + var fastestServer string + var fastestDnssecServer string + var fastestHasDnssec bool + var successResponses []*dns.Msg + var nxdomainResponses []*dns.Msg + + // 等待所有请求完成或超时 + timer := time.NewTimer(defaultTimeout) + defer timer.Stop() + + // 处理所有响应 + for { + select { + case resp, ok := <-responses: + if !ok { + // 所有响应都已处理 + goto doneProcessing + } + + if resp.error == nil && resp.response != nil { + // 更新服务器统计信息 + s.updateServerStats(resp.server, true, resp.rtt) + + // 检查是否包含DNSSEC记录 + containsDNSSEC := s.hasDNSSECRecords(resp.response) + + // 对于不验证DNSSEC的域名,始终设置AD标志为false + if noDNSSEC { + resp.response.AuthenticatedData = false + } + + dnssecServerForResponse := "" + if _, isDNSSECServer := s.dnssecServerMap[normalizeDNSServerAddress(resp.server)]; isDNSSECServer { + dnssecServerForResponse = resp.server + } + + // 如果响应成功或为NXDOMAIN + if resp.response.Rcode == dns.RcodeSuccess || resp.response.Rcode == dns.RcodeNameError { + // 按Rcode分类添加到不同列表 + if resp.response.Rcode == dns.RcodeSuccess { + successResponses = append(successResponses, resp.response) + } else { + nxdomainResponses = append(nxdomainResponses, resp.response) + } + + // 快速返回逻辑:找到第一个有效响应或更快的响应 + if resp.response.Rcode == dns.RcodeSuccess { + // 优先选择带有DNSSEC的响应 + if containsDNSSEC { + // 如果这是第一个DNSSEC响应,或者比当前最快的DNSSEC响应更快 + if !fastestHasDnssec || resp.rtt < fastestRtt { + fastestResponse = resp.response + fastestRtt = resp.rtt + fastestServer = resp.server + fastestDnssecServer = dnssecServerForResponse + fastestHasDnssec = true + + // 只对将要返回的响应进行DNSSEC验证 + if s.config.EnableDNSSEC && containsDNSSEC && !noDNSSEC { + // 验证DNSSEC记录 + signatureValid := s.verifyDNSSEC(fastestResponse) + + // 设置AD标志(Authenticated Data) + fastestResponse.AuthenticatedData = signatureValid + + if signatureValid { + // 更新DNSSEC验证成功计数 + s.updateStats(func(stats *Stats) { + stats.DNSSECQueries++ + stats.DNSSECSuccess++ + }) + } else { + // 更新DNSSEC验证失败计数 + s.updateStats(func(stats *Stats) { + stats.DNSSECQueries++ + stats.DNSSECFailed++ + }) + } + } + + // 发送结果,快速返回 + resultChan <- struct { + response *dns.Msg + rtt time.Duration + usedServer string + usedDnssecServer string + }{fastestResponse, fastestRtt, fastestServer, fastestDnssecServer} + } + } else { + // 非DNSSEC响应,只有在还没有找到DNSSEC响应且当前响应更快时才更新 + if !fastestHasDnssec && resp.rtt < fastestRtt { + fastestResponse = resp.response + fastestRtt = resp.rtt + fastestServer = resp.server + fastestDnssecServer = dnssecServerForResponse + + // 检查是否包含DNSSEC记录 + respContainsDNSSEC := s.hasDNSSECRecords(fastestResponse) + + // 只对将要返回的响应进行DNSSEC验证 + if s.config.EnableDNSSEC && respContainsDNSSEC && !noDNSSEC { + // 验证DNSSEC记录 + signatureValid := s.verifyDNSSEC(fastestResponse) + + // 设置AD标志(Authenticated Data) + fastestResponse.AuthenticatedData = signatureValid + + if signatureValid { + // 更新DNSSEC验证成功计数 + s.updateStats(func(stats *Stats) { + stats.DNSSECQueries++ + stats.DNSSECSuccess++ + }) + } else { + // 更新DNSSEC验证失败计数 + s.updateStats(func(stats *Stats) { + stats.DNSSECQueries++ + stats.DNSSECFailed++ + }) + } + } + + // 发送结果,快速返回 + resultChan <- struct { + response *dns.Msg + rtt time.Duration + usedServer string + usedDnssecServer string + }{fastestResponse, fastestRtt, fastestServer, fastestDnssecServer} + } + } + } else if resp.response.Rcode == dns.RcodeNameError { + // NXDOMAIN响应,只有在还没有找到响应或当前响应更快时才更新 + if !fastestHasDnssec && resp.rtt < fastestRtt { + fastestResponse = resp.response + fastestRtt = resp.rtt + fastestServer = resp.server + fastestDnssecServer = dnssecServerForResponse + + // 检查是否包含DNSSEC记录 + respContainsDNSSEC := s.hasDNSSECRecords(fastestResponse) + + // 只对将要返回的响应进行DNSSEC验证 + if s.config.EnableDNSSEC && respContainsDNSSEC && !noDNSSEC { + // 验证DNSSEC记录 + signatureValid := s.verifyDNSSEC(fastestResponse) + + // 设置AD标志(Authenticated Data) + fastestResponse.AuthenticatedData = signatureValid + + if signatureValid { + // 更新DNSSEC验证成功计数 + s.updateStats(func(stats *Stats) { + stats.DNSSECQueries++ + stats.DNSSECSuccess++ + }) + } else { + // 更新DNSSEC验证失败计数 + s.updateStats(func(stats *Stats) { + stats.DNSSECQueries++ + stats.DNSSECFailed++ + }) + } + } + + // 发送结果,快速返回 + resultChan <- struct { + response *dns.Msg + rtt time.Duration + usedServer string + usedDnssecServer string + }{fastestResponse, fastestRtt, fastestServer, fastestDnssecServer} + } + } + } else { + // 更新备选响应,确保总有一个可用的响应 + if resp.response != nil { + if !hasBackup { + // 第一次保存备选响应 + backupResponse = resp.response + backupRtt = resp.rtt + hasBackup = true + } + } + } + } else { + // 更新服务器统计信息(失败) + s.updateServerStats(resp.server, false, 0) + } + case <-timer.C: + // 超时,停止等待更多响应 + goto doneProcessing + } + } + + doneProcessing: + // 如果还没有发送结果,发送最快的响应 + if fastestResponse != nil { + resultChan <- struct { + response *dns.Msg + rtt time.Duration + usedServer string + usedDnssecServer string + }{fastestResponse, fastestRtt, fastestServer, fastestDnssecServer} + } + close(resultChan) + }() + + // 等待所有请求完成(不阻塞主流程) go func() { wg.Wait() close(responses) }() - // 等待上下文超时,防止泄漏 - go func() { - <-timeoutCtx.Done() - }() - - // 处理所有响应 - for resp := range responses { - if resp.error == nil && resp.response != nil { - - // 检查是否包含DNSSEC记录 - containsDNSSEC := s.hasDNSSECRecords(resp.response) - - // 如果启用了DNSSEC且响应包含DNSSEC记录,验证DNSSEC签名 - // 但如果域名匹配不验证DNSSEC的模式,则跳过验证 - if s.config.EnableDNSSEC && containsDNSSEC && !noDNSSEC { - // 验证DNSSEC记录 - signatureValid := s.verifyDNSSEC(resp.response) - - // 设置AD标志(Authenticated Data) - resp.response.AuthenticatedData = signatureValid - - if signatureValid { - // 更新DNSSEC验证成功计数 - s.updateStats(func(stats *Stats) { - stats.DNSSECQueries++ - stats.DNSSECSuccess++ - }) - } else { - // 更新DNSSEC验证失败计数 - s.updateStats(func(stats *Stats) { - stats.DNSSECQueries++ - stats.DNSSECFailed++ - }) - } - } else if noDNSSEC { - // 对于不验证DNSSEC的域名,始终设置AD标志为false - resp.response.AuthenticatedData = false - } - - // 如果响应成功或为NXDOMAIN,根据DNSSEC状态选择最佳响应 - if resp.response.Rcode == dns.RcodeSuccess || resp.response.Rcode == dns.RcodeNameError { - if resp.response.Rcode == dns.RcodeSuccess { - // 优先选择带有DNSSEC记录的响应 - if containsDNSSEC { - bestResponse = resp.response - bestRtt = resp.rtt - hasBestResponse = true - hasDNSSECResponse = true - usedDNSServer = resp.server - // 如果当前使用的服务器是DNSSEC专用服务器,同时设置usedDNSSECServer - for _, dnssecServer := range dnssecServers { - if dnssecServer == resp.server { - usedDNSSECServer = resp.server - break - } - } - logger.Debug("找到带DNSSEC的最佳响应", "domain", domain, "server", resp.server, "rtt", resp.rtt) - } else if !hasBestResponse { - // 没有带DNSSEC的响应时,保存第一个成功响应 - bestResponse = resp.response - bestRtt = resp.rtt - hasBestResponse = true - usedDNSServer = resp.server - // 如果当前使用的服务器是DNSSEC专用服务器,同时设置usedDNSSECServer - for _, dnssecServer := range dnssecServers { - if dnssecServer == resp.server { - usedDNSSECServer = resp.server - break - } - } - logger.Debug("找到最佳响应", "domain", domain, "server", resp.server, "rtt", resp.rtt) - } - } else if resp.response.Rcode == dns.RcodeNameError { - // 处理NXDOMAIN响应 - // 如果还没有最佳响应,或者最佳响应也是NXDOMAIN,优先选择更快的NXDOMAIN响应 - if !hasBestResponse || bestResponse.Rcode == dns.RcodeNameError { - // 如果还没有最佳响应,或者当前响应更快,更新最佳响应 - if !hasBestResponse || resp.rtt < bestRtt { - bestResponse = resp.response - bestRtt = resp.rtt - hasBestResponse = true - usedDNSServer = resp.server - logger.Debug("找到NXDOMAIN最佳响应", "domain", domain, "server", resp.server, "rtt", resp.rtt) - } - } - } - // 保存为备选响应 - if !hasBackup { - backupResponse = resp.response - backupRtt = resp.rtt - hasBackup = true - } - } - } + // 等待结果或超时 + select { + case result := <-resultChan: + // 快速返回结果 + bestResponse = result.response + bestRtt = result.rtt + usedDNSServer = result.usedServer + usedDNSSECServer = result.usedDnssecServer + hasBestResponse = true + hasDNSSECResponse = s.hasDNSSECRecords(result.response) + logger.Debug("快速返回DNS响应", "domain", domain, "server", result.usedServer, "rtt", result.rtt, "dnssec", hasDNSSECResponse) + case <-time.After(defaultTimeout): + // 超时,使用备选响应 + logger.Debug("并行请求超时", "domain", domain, "timeout", defaultTimeout) } } @@ -1450,10 +1620,6 @@ func (s *Server) forwardDNSRequestWithCache(r *dns.Msg, domain string) (*dns.Msg // 无论查询模式是什么,DNSSEC验证都只使用加权随机选择一个服务器 selectedDnssecServer := s.selectWeightedRandomServer(dnssecServers) if selectedDnssecServer != "" { - // 设置超时上下文 - timeoutCtx, cancel := context.WithTimeout(s.ctx, time.Duration(s.config.Timeout)*time.Millisecond) - defer cancel() - // 使用带超时的方式执行Exchange resultChan := make(chan struct { response *dns.Msg @@ -1462,7 +1628,13 @@ func (s *Server) forwardDNSRequestWithCache(r *dns.Msg, domain string) (*dns.Msg }, 1) go func() { - response, rtt, err := s.resolver.Exchange(r, normalizeDNSServerAddress(selectedDnssecServer)) + // 创建带有超时的resolver + client := &dns.Client{ + Net: s.resolver.Net, + UDPSize: s.resolver.UDPSize, + Timeout: defaultTimeout, + } + response, rtt, err := client.Exchange(r, normalizeDNSServerAddress(selectedDnssecServer)) resultChan <- struct { response *dns.Msg rtt time.Duration @@ -1474,11 +1646,14 @@ func (s *Server) forwardDNSRequestWithCache(r *dns.Msg, domain string) (*dns.Msg var rtt time.Duration var err error + // 使用超时获取结果 select { case result := <-resultChan: response, rtt, err = result.response, result.rtt, result.err - case <-timeoutCtx.Done(): - err = timeoutCtx.Err() + case <-time.After(defaultTimeout): + // 超时,不再等待 + logger.Debug("DNSSEC专用服务器请求超时", "domain", domain, "server", selectedDnssecServer, "timeout", defaultTimeout) + return bestResponse, bestRtt, usedDNSServer, usedDNSSECServer } if err == nil && response != nil { @@ -1548,10 +1723,6 @@ func (s *Server) forwardDNSRequestWithCache(r *dns.Msg, domain string) (*dns.Msg // 选择一个upstreamDNS服务器进行解析(使用加权随机算法) localServer := s.selectWeightedRandomServer(s.config.UpstreamDNS) if localServer != "" { - // 设置超时上下文 - timeoutCtx, cancel := context.WithTimeout(s.ctx, time.Duration(s.config.Timeout)*time.Millisecond) - defer cancel() - // 使用带超时的方式执行Exchange resultChan := make(chan struct { response *dns.Msg @@ -1572,12 +1743,10 @@ func (s *Server) forwardDNSRequestWithCache(r *dns.Msg, domain string) (*dns.Msg var rtt time.Duration var err error - select { - case result := <-resultChan: - localResponse, rtt, err = result.response, result.rtt, result.err - case <-timeoutCtx.Done(): - err = timeoutCtx.Err() - } + // 直接获取结果,不使用上下文超时 + result := <-resultChan + localResponse, rtt, err = result.response, result.rtt, result.err + if err == nil && localResponse != nil { // 更新服务器统计信息 s.updateServerStats(localServer, true, rtt) @@ -1632,6 +1801,81 @@ func (s *Server) forwardDNSRequestWithCache(r *dns.Msg, domain string) (*dns.Msg s.updateDomainDNSSECStatus(domain, false) } + // 检查响应是否包含CNAME记录,需要确保返回完整的解析链 + if bestResponse != nil && bestResponse.Rcode == dns.RcodeSuccess { + // 处理多级CNAME,直到获取到最终的A/AAAA记录 + maxCNAMELevels := 5 // 限制最大CNAME解析级数,防止循环解析 + currentLevel := 0 + + // 循环处理CNAME记录 + for currentLevel < maxCNAMELevels { + // 检查是否包含CNAME记录 + var hasCNAME bool + var cnameTarget string + + // 检查Answer部分,查找CNAME记录 + for _, rr := range bestResponse.Answer { + if cname, ok := rr.(*dns.CNAME); ok { + hasCNAME = true + cnameTarget = cname.Target + } + } + + // 如果不包含CNAME记录,或者已经包含最终的A/AAAA记录,退出循环 + var hasFinalRecord bool + for _, rr := range bestResponse.Answer { + switch rr.Header().Rrtype { + case dns.TypeA, dns.TypeAAAA: + hasFinalRecord = true + break + } + } + + if !hasCNAME || hasFinalRecord { + break // 没有CNAME记录,或者已经有最终记录,退出循环 + } + + // 如果包含CNAME记录但没有最终IP,继续查询 + logger.Debug("响应包含CNAME但没有最终IP,继续查询", "domain", domain, "cname", cnameTarget, "level", currentLevel) + + // 创建新的查询请求,查询CNAME指向的域名 + cnameQuery := r.Copy() + cnameQuery.Question[0].Name = cnameTarget + + // 继续查询CNAME指向的域名 + cnameResponse, _, cnameDnsServer, cnameDnssecServer := s.forwardDNSRequestWithCache(cnameQuery, cnameTarget) + if cnameResponse != nil && cnameResponse.Rcode == dns.RcodeSuccess { + // 合并CNAME响应的Answer部分到主响应 + bestResponse.Answer = append(bestResponse.Answer, cnameResponse.Answer...) + // 合并CNAME响应的Ns部分到主响应 + bestResponse.Ns = append(bestResponse.Ns, cnameResponse.Ns...) + // 合并CNAME响应的Extra部分到主响应,排除OPT记录 + for _, rr := range cnameResponse.Extra { + if rr.Header().Rrtype != dns.TypeOPT { + bestResponse.Extra = append(bestResponse.Extra, rr) + } + } + // 更新使用的DNS服务器信息 + if cnameDnsServer != "" { + usedDNSServer = cnameDnsServer + } + if cnameDnssecServer != "" { + usedDNSSECServer = cnameDnssecServer + } + } else { + // 查询失败,退出循环 + break + } + + // 增加CNAME解析级数 + currentLevel++ + } + + if currentLevel >= maxCNAMELevels { + logger.Warn("CNAME解析级数超过限制,可能存在循环解析", "domain", domain, "maxLevels", maxCNAMELevels) + } + } + s.updateStats(func(stats *Stats) { stats.Allowed++ }) @@ -1671,19 +1915,31 @@ func (s *Server) forwardDNSRequest(w dns.ResponseWriter, r *dns.Msg, domain stri // updateBlockedDomainStats 更新被屏蔽域名统计 func (s *Server) updateBlockedDomainStats(domain string) { - // 更新被屏蔽域名计数 - s.blockedDomainsMutex.Lock() - defer s.blockedDomainsMutex.Unlock() + // 先尝试读锁,检查条目是否存在 + s.blockedDomainsMutex.RLock() + entry, exists := s.blockedDomains[domain] + s.blockedDomainsMutex.RUnlock() - if entry, exists := s.blockedDomains[domain]; exists { - entry.Count++ - entry.LastSeen = time.Now() + if exists { + // 使用原子操作更新计数和时间戳 + atomic.AddInt64(&entry.Count, 1) + atomic.StoreInt64(&entry.LastSeen, time.Now().UnixNano()) } else { - s.blockedDomains[domain] = &BlockedDomain{ - Domain: domain, - Count: 1, - LastSeen: time.Now(), + // 获取写锁,创建新条目 + s.blockedDomainsMutex.Lock() + // 再次检查,避免竞态条件 + if entry, exists := s.blockedDomains[domain]; exists { + atomic.AddInt64(&entry.Count, 1) + atomic.StoreInt64(&entry.LastSeen, time.Now().UnixNano()) + } else { + s.blockedDomains[domain] = &BlockedDomain{ + Domain: domain, + Count: 1, + LastSeen: time.Now().UnixNano(), + DNSSEC: false, + } } + s.blockedDomainsMutex.Unlock() } // 更新统计数据 @@ -1710,86 +1966,62 @@ func (s *Server) updateBlockedDomainStats(domain string) { // updateClientStats 更新客户端统计 func (s *Server) updateClientStats(ip string) { - s.clientStatsMutex.Lock() - defer s.clientStatsMutex.Unlock() + // 先尝试读锁,检查条目是否存在 + s.clientStatsMutex.RLock() + entry, exists := s.clientStats[ip] + s.clientStatsMutex.RUnlock() - if entry, exists := s.clientStats[ip]; exists { - entry.Count++ - entry.LastSeen = time.Now() + if exists { + // 使用原子操作更新计数和时间戳 + atomic.AddInt64(&entry.Count, 1) + atomic.StoreInt64(&entry.LastSeen, time.Now().UnixNano()) } else { - s.clientStats[ip] = &ClientStats{ - IP: ip, - Count: 1, - LastSeen: time.Now(), + // 获取写锁,创建新条目 + s.clientStatsMutex.Lock() + // 再次检查,避免竞态条件 + if entry, exists := s.clientStats[ip]; exists { + atomic.AddInt64(&entry.Count, 1) + atomic.StoreInt64(&entry.LastSeen, time.Now().UnixNano()) + } else { + s.clientStats[ip] = &ClientStats{ + IP: ip, + Count: 1, + LastSeen: time.Now().UnixNano(), + } } + s.clientStatsMutex.Unlock() } } // hasDNSSECRecords 检查响应是否包含DNSSEC记录 func (s *Server) hasDNSSECRecords(response *dns.Msg) bool { - // 检查响应中是否包含DNSSEC相关记录(DNSKEY、RRSIG、DS、NSEC、NSEC3等) - for _, rr := range response.Answer { - if _, ok := rr.(*dns.DNSKEY); ok { - return true - } - if _, ok := rr.(*dns.RRSIG); ok { - return true - } - if _, ok := rr.(*dns.DS); ok { - return true - } - if _, ok := rr.(*dns.NSEC); ok { - return true - } - if _, ok := rr.(*dns.NSEC3); ok { - return true - } - } - for _, rr := range response.Ns { - if _, ok := rr.(*dns.DNSKEY); ok { - return true - } - if _, ok := rr.(*dns.RRSIG); ok { - return true - } - if _, ok := rr.(*dns.DS); ok { - return true - } - if _, ok := rr.(*dns.NSEC); ok { - return true - } - if _, ok := rr.(*dns.NSEC3); ok { - return true - } - } - for _, rr := range response.Extra { - if _, ok := rr.(*dns.DNSKEY); ok { - return true - } - if _, ok := rr.(*dns.RRSIG); ok { - return true - } - if _, ok := rr.(*dns.DS); ok { - return true - } - if _, ok := rr.(*dns.NSEC); ok { - return true - } - if _, ok := rr.(*dns.NSEC3); ok { - return true - } - } - return false + // 直接调用包内的hasDNSSECRecords函数,避免重复代码 + return hasDNSSECRecords(response) } // verifyDNSSEC 验证DNSSEC签名 func (s *Server) verifyDNSSEC(response *dns.Msg) bool { - // 提取DNSKEY和RRSIG记录 + // 提取DNSKEY和RRSIG记录,并按类型和名称组织记录 dnskeys := make(map[uint16]*dns.DNSKEY) // KeyTag -> DNSKEY rrsigs := make([]*dns.RRSIG, 0) + // 按 (名称, 类型) 组织记录集,用于快速查找 + rrSets := make(map[string]map[uint16][]dns.RR) // name -> type -> records - // 从响应中提取所有DNSKEY和RRSIG记录 - for _, rr := range response.Answer { + // 定义处理单个记录的函数 + processRecord := func(rr dns.RR) { + num := rr.Header().Rrtype + name := rr.Header().Name + + // 组织记录集 + if _, exists := rrSets[name]; !exists { + rrSets[name] = make(map[uint16][]dns.RR) + } + if _, exists := rrSets[name][num]; !exists { + rrSets[name][num] = make([]dns.RR, 0) + } + rrSets[name][num] = append(rrSets[name][num], rr) + + // 特别处理DNSKEY和RRSIG if dnskey, ok := rr.(*dns.DNSKEY); ok { tag := dnskey.KeyTag() dnskeys[tag] = dnskey @@ -1797,21 +2029,16 @@ func (s *Server) verifyDNSSEC(response *dns.Msg) bool { rrsigs = append(rrsigs, rrsig) } } + + // 一次遍历所有响应部分,同时完成记录收集和组织 + for _, rr := range response.Answer { + processRecord(rr) + } for _, rr := range response.Ns { - if dnskey, ok := rr.(*dns.DNSKEY); ok { - tag := dnskey.KeyTag() - dnskeys[tag] = dnskey - } else if rrsig, ok := rr.(*dns.RRSIG); ok { - rrsigs = append(rrsigs, rrsig) - } + processRecord(rr) } for _, rr := range response.Extra { - if dnskey, ok := rr.(*dns.DNSKEY); ok { - tag := dnskey.KeyTag() - dnskeys[tag] = dnskey - } else if rrsig, ok := rr.(*dns.RRSIG); ok { - rrsigs = append(rrsigs, rrsig) - } + processRecord(rr) } // 如果没有RRSIG记录,验证失败 @@ -1836,18 +2063,10 @@ func (s *Server) verifyDNSSEC(response *dns.Msg) bool { continue } - // 收集需要验证的记录集 - rrset := make([]dns.RR, 0) - for _, rr := range response.Answer { - if rr.Header().Name == rrsig.Header().Name && rr.Header().Rrtype == rrsig.TypeCovered { - rrset = append(rrset, rr) - } - } - for _, rr := range response.Ns { - if rr.Header().Name == rrsig.Header().Name && rr.Header().Rrtype == rrsig.TypeCovered { - rrset = append(rrset, rr) - } - } + // 快速查找需要验证的记录集 + name := rrsig.Header().Name + typeCovered := rrsig.TypeCovered + rrset := rrSets[name][typeCovered] // 验证签名 if len(rrset) > 0 { @@ -1880,30 +2099,44 @@ func (s *Server) updateDomainDNSSECStatus(domain string, dnssec bool) { s.resolvedDomains[domain] = &BlockedDomain{ Domain: domain, Count: 1, - LastSeen: time.Now(), + LastSeen: time.Now().UnixNano(), DNSSEC: dnssec, } } - // 更新domainDNSSECStatus映射 + // 更新domainDNSSECStatus映射(使用单独的锁) + s.domainDNSSECStatusMutex.Lock() s.domainDNSSECStatus[domain] = dnssec + s.domainDNSSECStatusMutex.Unlock() } // updateResolvedDomainStats 更新解析域名统计 func (s *Server) updateResolvedDomainStats(domain string) { - s.resolvedDomainsMutex.Lock() - defer s.resolvedDomainsMutex.Unlock() + // 先尝试读锁,检查条目是否存在 + s.resolvedDomainsMutex.RLock() + entry, exists := s.resolvedDomains[domain] + s.resolvedDomainsMutex.RUnlock() - if entry, exists := s.resolvedDomains[domain]; exists { - entry.Count++ - entry.LastSeen = time.Now() + if exists { + // 使用原子操作更新计数和时间戳 + atomic.AddInt64(&entry.Count, 1) + atomic.StoreInt64(&entry.LastSeen, time.Now().UnixNano()) } else { - s.resolvedDomains[domain] = &BlockedDomain{ - Domain: domain, - Count: 1, - LastSeen: time.Now(), - DNSSEC: false, + // 获取写锁,创建新条目 + s.resolvedDomainsMutex.Lock() + // 再次检查,避免竞态条件 + if entry, exists := s.resolvedDomains[domain]; exists { + atomic.AddInt64(&entry.Count, 1) + atomic.StoreInt64(&entry.LastSeen, time.Now().UnixNano()) + } else { + s.resolvedDomains[domain] = &BlockedDomain{ + Domain: domain, + Count: 1, + LastSeen: time.Now().UnixNano(), + DNSSEC: false, + } } + s.resolvedDomainsMutex.Unlock() } } @@ -1913,22 +2146,26 @@ func (s *Server) getServerStats(server string) *ServerStats { stats, exists := s.serverStats[server] s.serverStatsMutex.RUnlock() - if !exists { - // 创建新的服务器统计信息 - stats = &ServerStats{ - SuccessCount: 0, - FailureCount: 0, - LastResponse: time.Now(), - ResponseTime: 0, - ConnectionSpeed: 0, - } - - // 加锁更新服务器统计信息 - s.serverStatsMutex.Lock() - s.serverStats[server] = stats - s.serverStatsMutex.Unlock() + if exists { + return stats } + s.serverStatsMutex.Lock() + defer s.serverStatsMutex.Unlock() + + if stats, exists := s.serverStats[server]; exists { + return stats + } + + stats = &ServerStats{ + SuccessCount: 0, + FailureCount: 0, + LastResponse: time.Now(), + ResponseTime: 0, + ConnectionSpeed: 0, + } + + s.serverStats[server] = stats return stats } @@ -1936,27 +2173,32 @@ func (s *Server) getServerStats(server string) *ServerStats { func (s *Server) updateServerStats(server string, success bool, rtt time.Duration) { stats := s.getServerStats(server) - s.serverStatsMutex.Lock() - defer s.serverStatsMutex.Unlock() - - // 更新统计信息 - stats.LastResponse = time.Now() - + // 使用原子操作更新成功和失败计数 if success { - stats.SuccessCount++ + successCount := atomic.AddInt64(&stats.SuccessCount, 1) + + // 只在需要更新平均响应时间时获取锁 + s.serverStatsMutex.Lock() + stats.LastResponse = time.Now() + // 更新平均响应时间(简单移动平均) - // 将所有值转换为纳秒进行计算,然后再转换回Duration - if stats.SuccessCount == 1 { + if successCount == 1 { // 第一次成功,直接使用当前响应时间 stats.ResponseTime = rtt } else { // 使用纳秒进行计算以避免类型不匹配 - prevTotal := stats.ResponseTime.Nanoseconds() * (stats.SuccessCount - 1) + prevTotal := stats.ResponseTime.Nanoseconds() * (successCount - 1) newTotal := prevTotal + rtt.Nanoseconds() - stats.ResponseTime = time.Duration(newTotal / stats.SuccessCount) + stats.ResponseTime = time.Duration(newTotal / successCount) } + s.serverStatsMutex.Unlock() } else { - stats.FailureCount++ + atomic.AddInt64(&stats.FailureCount, 1) + + // 只更新LastResponse时获取锁 + s.serverStatsMutex.Lock() + stats.LastResponse = time.Now() + s.serverStatsMutex.Unlock() } } @@ -1970,80 +2212,81 @@ func (s *Server) selectWeightedRandomServer(servers []string) string { return servers[0] } - // 计算每个服务器的权重 type serverWeight struct { - server string - weight int64 + server string + weight int64 + responseTime time.Duration + successCount int64 + failureCount int64 } var totalWeight int64 - weights := make([]serverWeight, 0, len(servers)) - - // 获取所有服务器的平均响应时间,用于归一化 var totalResponseTime time.Duration - validServers := 0 + var validServers int + var currentWeight int64 - for _, server := range servers { + serversInfo := make([]serverWeight, len(servers)) + + for i, server := range servers { stats := s.getServerStats(server) + + serversInfo[i] = serverWeight{ + server: server, + responseTime: stats.ResponseTime, + successCount: atomic.LoadInt64(&stats.SuccessCount), + failureCount: atomic.LoadInt64(&stats.FailureCount), + } + if stats.ResponseTime > 0 { totalResponseTime += stats.ResponseTime validServers++ } } - // 计算平均响应时间基准值 var avgResponseTime time.Duration if validServers > 0 { avgResponseTime = totalResponseTime / time.Duration(validServers) } else { - avgResponseTime = 1 * time.Second // 默认基准值 + avgResponseTime = 1 * time.Second } - for _, server := range servers { - stats := s.getServerStats(server) + var randomGen = rand.New(rand.NewSource(time.Now().UnixNano())) - // 计算基础权重:成功次数 - 失败次数 * 2(失败权重更高) - // 确保权重至少为1 - baseWeight := stats.SuccessCount - stats.FailureCount*2 + for i := range serversInfo { + baseWeight := serversInfo[i].successCount - serversInfo[i].failureCount*2 if baseWeight < 1 { baseWeight = 1 } - // 计算响应时间调整因子:响应时间越短,因子越高 - // 如果没有响应时间数据,使用默认值1 - var responseFactor float64 = 1.0 - if stats.ResponseTime > 0 { - // 使用平均响应时间作为基准,计算调整因子 - // 响应时间越短,因子越高,最高为2.0,最低为0.5 - responseFactor = float64(avgResponseTime) / float64(stats.ResponseTime) - // 限制调整因子的范围,避免权重波动过大 - if responseFactor > 2.0 { - responseFactor = 2.0 - } else if responseFactor < 0.5 { - responseFactor = 0.5 + var responseFactor int64 = 100 + if serversInfo[i].responseTime > 0 { + if serversInfo[i].responseTime < avgResponseTime { + factor := (avgResponseTime.Nanoseconds() * 200) / serversInfo[i].responseTime.Nanoseconds() + if factor > 200 { + factor = 200 + } + responseFactor = factor + } else { + factor := (avgResponseTime.Nanoseconds() * 200) / serversInfo[i].responseTime.Nanoseconds() + if factor < 50 { + factor = 50 + } + responseFactor = factor } } - // 综合计算最终权重,四舍五入到整数 - finalWeight := int64(float64(baseWeight) * responseFactor) - // 确保最终权重至少为1 + finalWeight := (baseWeight * responseFactor) / 100 if finalWeight < 1 { finalWeight = 1 } - weights = append(weights, serverWeight{server, finalWeight}) + serversInfo[i].weight = finalWeight totalWeight += finalWeight } - // 随机选择一个权重 - random := time.Now().UnixNano() % totalWeight - if random < 0 { - random += totalWeight - } + random := randomGen.Int63n(totalWeight) - // 选择对应的服务器 - var currentWeight int64 - for _, sw := range weights { + for _, sw := range serversInfo { currentWeight += sw.weight if random < currentWeight { return sw.server @@ -2056,28 +2299,22 @@ func (s *Server) selectWeightedRandomServer(servers []string) string { // measureServerSpeed 测量服务器TCP连接速度 func (s *Server) measureServerSpeed(server string) time.Duration { - // 提取服务器地址和端口 addr := server if !strings.Contains(server, ":") { addr = server + ":53" } - // 测量TCP连接时间 startTime := time.Now() conn, err := net.DialTimeout("tcp", addr, 2*time.Second) if err != nil { - // 连接失败,返回最大持续时间 return 2 * time.Second } defer conn.Close() - // 计算连接建立时间 connTime := time.Since(startTime) - // 更新服务器连接速度 stats := s.getServerStats(server) s.serverStatsMutex.Lock() - // 使用指数移动平均更新连接速度 stats.ConnectionSpeed = (stats.ConnectionSpeed*3 + connTime) / 4 s.serverStatsMutex.Unlock() @@ -2137,6 +2374,23 @@ func (s *Server) selectFastestServer(servers []string) string { return fastestServer } +// calculateAvgResponseTime 计算平均响应时间 +func calculateAvgResponseTime(totalResponseTime int64, queries int64) float64 { + if queries <= 0 { + return 0 + } + + avg := float64(totalResponseTime) / float64(queries) + avg = float64(math.Round(avg)) + + // 限制平均响应时间的范围 + if avg > 60000 { + avg = 60000 + } + + return avg +} + // updateStats 更新统计信息 func (s *Server) updateStats(update func(*Stats)) { s.statsMutex.Lock() @@ -2146,14 +2400,10 @@ func (s *Server) updateStats(update func(*Stats)) { // addQueryLog 添加查询日志 func (s *Server) addQueryLog(clientIP, domain, queryType string, responseTime int64, result, blockRule, blockType string, fromCache, dnssec, edns bool, dnsServer, dnssecServer string, answers []DNSAnswer, responseCode int) { - // 获取IP地理位置 - location := s.getIpGeolocation(clientIP) - // 创建日志记录 log := QueryLog{ Timestamp: time.Now(), ClientIP: clientIP, - Location: location, Domain: domain, QueryType: queryType, ResponseTime: responseTime, @@ -2169,16 +2419,13 @@ func (s *Server) addQueryLog(clientIP, domain, queryType string, responseTime in ResponseCode: responseCode, } - // 添加到日志列表 - s.queryLogsMutex.Lock() - defer s.queryLogsMutex.Unlock() - - // 插入到列表开头 - s.queryLogs = append([]QueryLog{log}, s.queryLogs...) - - // 限制日志数量 - if len(s.queryLogs) > s.maxQueryLogs { - s.queryLogs = s.queryLogs[:s.maxQueryLogs] + // 发送到日志处理通道(非阻塞) + select { + case s.logChannel <- log: + // 日志发送成功 + default: + // 通道已满,丢弃日志以避免阻塞请求处理 + logger.Warn("日志通道已满,丢弃一条日志记录") } } @@ -2367,10 +2614,16 @@ func (s *Server) GetTopBlockedDomains(limit int) []BlockedDomain { s.blockedDomainsMutex.RLock() defer s.blockedDomainsMutex.RUnlock() - // 转换为切片 + // 计算30天前的时间戳 + thirtyDaysAgo := time.Now().Add(-30 * 24 * time.Hour).Unix() + + // 转换为切片并过滤最近30天的数据 domains := make([]BlockedDomain, 0, len(s.blockedDomains)) for _, entry := range s.blockedDomains { - domains = append(domains, *entry) + // 只包含最近30天的数据 + if entry.LastSeen >= thirtyDaysAgo { + domains = append(domains, *entry) + } } // 按计数排序 @@ -2390,10 +2643,16 @@ func (s *Server) GetTopResolvedDomains(limit int) []BlockedDomain { s.resolvedDomainsMutex.RLock() defer s.resolvedDomainsMutex.RUnlock() - // 转换为切片 + // 计算30天前的时间戳 + thirtyDaysAgo := time.Now().Add(-30 * 24 * time.Hour).Unix() + + // 转换为切片并过滤最近30天的数据 domains := make([]BlockedDomain, 0, len(s.resolvedDomains)) for _, entry := range s.resolvedDomains { - domains = append(domains, *entry) + // 只包含最近30天的数据 + if entry.LastSeen >= thirtyDaysAgo { + domains = append(domains, *entry) + } } // 按数量排序 @@ -2421,7 +2680,7 @@ func (s *Server) GetRecentBlockedDomains(limit int) []BlockedDomain { // 按时间排序 sort.Slice(domains, func(i, j int) bool { - return domains[i].LastSeen.After(domains[j].LastSeen) + return domains[i].LastSeen > domains[j].LastSeen }) // 返回限制数量 @@ -2542,83 +2801,6 @@ func isPrivateIP(ip string) bool { return false } -// getIpGeolocation 获取IP地址的地理位置信息 -func (s *Server) getIpGeolocation(ip string) string { - // 检查IP是否为本地或内网地址 - if isPrivateIP(ip) { - return "内网 内网" - } - - // 先检查缓存 - s.ipGeolocationCacheMutex.RLock() - geo, exists := s.ipGeolocationCache[ip] - s.ipGeolocationCacheMutex.RUnlock() - - // 如果缓存存在且未过期,直接返回 - if exists && time.Now().Before(geo.Expiry) { - return fmt.Sprintf("%s %s", geo.Country, geo.City) - } - - // 缓存不存在或已过期,从API获取 - geoInfo, err := s.fetchIpGeolocationFromAPI(ip) - if err != nil { - logger.Error("获取IP地理位置失败", "ip", ip, "error", err) - return "未知 未知" - } - - // 保存到缓存 - s.ipGeolocationCacheMutex.Lock() - s.ipGeolocationCache[ip] = &IPGeolocation{ - Country: geoInfo["country"].(string), - City: geoInfo["city"].(string), - Expiry: time.Now().Add(s.ipGeolocationCacheTTL), - } - s.ipGeolocationCacheMutex.Unlock() - - // 返回格式化的地理位置 - return fmt.Sprintf("%s %s", geoInfo["country"].(string), geoInfo["city"].(string)) -} - -// fetchIpGeolocationFromAPI 从第三方API获取IP地理位置信息 -func (s *Server) fetchIpGeolocationFromAPI(ip string) (map[string]interface{}, error) { - // 使用ip-api.com获取IP地理位置信息 - url := fmt.Sprintf("http://ip-api.com/json/%s?fields=country,city", ip) - resp, err := http.Get(url) - if err != nil { - return nil, err - } - defer resp.Body.Close() - - // 读取响应内容 - body, err := ioutil.ReadAll(resp.Body) - if err != nil { - return nil, err - } - - // 解析JSON响应 - var result map[string]interface{} - err = json.Unmarshal(body, &result) - if err != nil { - return nil, err - } - - // 检查API返回状态 - status, ok := result["status"].(string) - if !ok || status != "success" { - return nil, fmt.Errorf("API返回错误状态: %v", result) - } - - // 确保国家和城市字段存在 - if _, ok := result["country"]; !ok { - result["country"] = "未知" - } - if _, ok := result["city"]; !ok { - result["city"] = "未知" - } - - return result, nil -} - // loadStatsData 从文件加载统计数据 func (s *Server) loadStatsData() { // 检查文件是否存在 @@ -2640,8 +2822,36 @@ func (s *Server) loadStatsData() { // 恢复统计数据 s.statsMutex.Lock() if statsData.Stats != nil { - s.stats = statsData.Stats - // 确保使用当前配置中的EnableDNSSEC值,覆盖从文件加载的值 + // 只恢复有效数据,避免破坏统计关系 + s.stats.Queries += statsData.Stats.Queries + s.stats.Blocked += statsData.Stats.Blocked + s.stats.Allowed += statsData.Stats.Allowed + s.stats.Errors += statsData.Stats.Errors + s.stats.TotalResponseTime += statsData.Stats.TotalResponseTime + s.stats.DNSSECQueries += statsData.Stats.DNSSECQueries + s.stats.DNSSECSuccess += statsData.Stats.DNSSECSuccess + s.stats.DNSSECFailed += statsData.Stats.DNSSECFailed + + // 重新计算平均响应时间,确保一致性 + if s.stats.Queries > 0 { + s.stats.AvgResponseTime = float64(s.stats.TotalResponseTime) / float64(s.stats.Queries) + // 限制平均响应时间的范围,避免显示异常大的值 + if s.stats.AvgResponseTime > 60000 { + s.stats.AvgResponseTime = 60000 + } + } + + // 合并查询类型统计 + for k, v := range statsData.Stats.QueryTypes { + s.stats.QueryTypes[k] += v + } + + // 合并来源IP统计 + for ip := range statsData.Stats.SourceIPs { + s.stats.SourceIPs[ip] = true + } + + // 确保使用当前配置中的EnableDNSSEC值 s.stats.DNSSECEnabled = s.config.EnableDNSSEC } s.statsMutex.Unlock() @@ -2734,6 +2944,38 @@ func (s *Server) loadQueryLogs() { logger.Info("查询日志加载成功", "count", len(logs)) } +// processLogs 异步处理日志记录 +func (s *Server) processLogs() { + for { + select { + case logEntry, ok := <-s.logChannel: + if !ok { + // 通道关闭,退出循环 + return + } + + // 加锁保护queryLogs + s.queryLogsMutex.Lock() + + // 如果日志数量超过最大限制,删除最旧的日志 + if len(s.queryLogs) >= s.maxQueryLogs { + // 使用切片操作保留最新的日志,避免复制整个切片 + // 保留最新的s.maxQueryLogs-1条日志,然后添加新日志 + s.queryLogs = s.queryLogs[len(s.queryLogs)-s.maxQueryLogs+1:] + } + // 直接添加新日志 + s.queryLogs = append(s.queryLogs, logEntry) + + // 解锁 + s.queryLogsMutex.Unlock() + + case <-s.ctx.Done(): + // 上下文取消,退出循环 + return + } + } +} + // saveStatsData 保存统计数据到文件 func (s *Server) saveStatsData() { // 获取绝对路径以避免工作目录问题 diff --git a/download.sh b/download.sh deleted file mode 100755 index 9b10210..0000000 --- a/download.sh +++ /dev/null @@ -1,12 +0,0 @@ -#!/bin/sh - -set -e -f -u -x - -# This script syncs companies DB that we bundle with AdGuard Home. The source -# for this database is https://github.com/AdguardTeam/companiesdb. -# -trackers_url='https://raw.githubusercontent.com/AdguardTeam/companiesdb/main/dist/trackers.json' -output='./trackers.json' -readonly trackers_url output - -curl -o "$output" -v "$trackers_url" diff --git a/gfw/manager.go b/gfw/manager.go new file mode 100644 index 0000000..9cfde7f --- /dev/null +++ b/gfw/manager.go @@ -0,0 +1,241 @@ +package gfw + +import ( + "encoding/base64" + "fmt" + "os" + "regexp" + "strings" + "sync" + + "dns-server/config" + "dns-server/logger" +) + +// regexRule 正则规则结构,包含编译后的表达式和原始字符串 +type regexRule struct { + pattern *regexp.Regexp + original string +} + +// GFWListManager GFWList管理器 +type GFWListManager struct { + config *config.GFWListConfig + domainRules map[string]bool + regexRules []regexRule + rulesMutex sync.RWMutex +} + +// NewGFWListManager 创建GFWList管理器实例 +func NewGFWListManager(config *config.GFWListConfig) *GFWListManager { + return &GFWListManager{ + config: config, + domainRules: make(map[string]bool), + regexRules: []regexRule{}, + } +} + +// LoadRules 加载GFWList规则 +func (m *GFWListManager) LoadRules() error { + // 如果GFWList功能未启用,不加载规则 + if !m.config.Enabled { + return nil + } + + m.rulesMutex.Lock() + defer m.rulesMutex.Unlock() + + // 清空现有规则 + m.domainRules = make(map[string]bool) + m.regexRules = []regexRule{} + + if m.config.Content == "" { + return nil // 没有GFWList内容,直接返回 + } + + // 从文件路径读取GFWList内容 + fileContent, err := os.ReadFile(m.config.Content) + if err != nil { + return fmt.Errorf("读取GFWList文件失败: %w", err) + } + + rawContent := string(fileContent) + var ruleContent string + + // 过滤注释行,收集可能的Base64内容 + var base64Content strings.Builder + lines := strings.Split(rawContent, "\n") + for _, line := range lines { + line = strings.TrimSpace(line) + if line == "" || strings.HasPrefix(line, "!") || strings.HasPrefix(line, "[") { + // 跳过注释行和头信息行 + continue + } + base64Content.WriteString(line) + } + + // 尝试Base64解码 + decoded, err := base64.StdEncoding.DecodeString(base64Content.String()) + if err == nil { + // 解码成功,使用解码后的内容 + ruleContent = string(decoded) + logger.Info("GFWList文件为Base64编码,已成功解码") + } else { + // 解码失败,使用原始内容(可能是纯文本格式) + ruleContent = rawContent + logger.Info("GFWList文件为纯文本格式,直接解析") + } + + // 按行解析规则内容 + ruleLines := strings.Split(ruleContent, "\n") + for _, line := range ruleLines { + line = strings.TrimSpace(line) + if line == "" || strings.HasPrefix(line, "!") || strings.HasPrefix(line, "[") { + // 跳过空行、注释行和头信息行 + continue + } + m.parseRule(line) + } + + logger.Info(fmt.Sprintf("GFWList规则加载完成,域名规则: %d, 正则规则: %d", + len(m.domainRules), len(m.regexRules))) + return nil +} + +// parseRule 解析规则行 +func (m *GFWListManager) parseRule(line string) { + // 保存原始规则用于后续使用 + originalLine := line + + // 处理注释 + if strings.HasPrefix(line, "!") || strings.HasPrefix(line, "#") || line == "" { + return + } + + // 移除规则选项部分(暂时不处理规则选项) + if strings.Contains(line, "$") { + parts := strings.SplitN(line, "$", 2) + line = parts[0] + // 规则选项暂时不处理 + } + + // 处理不同类型的规则 + switch { + case strings.HasPrefix(line, "||") && strings.HasSuffix(line, "^"): + // AdGuardHome域名规则格式: ||example.com^ + domain := strings.TrimSuffix(strings.TrimPrefix(line, "||"), "^") + m.addDomainRule(domain, originalLine) + + case strings.HasPrefix(line, "||"): + // 域名片段匹配规则: ||google 匹配任何包含google的域名 + domain := strings.TrimPrefix(line, "||") + // 添加精确域名匹配 + m.addDomainRule(domain, originalLine) + // 同时添加正则表达式规则,匹配任何包含该域名片段的域名 + if re, err := regexp.Compile("(?i).*" + regexp.QuoteMeta(domain) + ".*"); err == nil { + m.addRegexRule(re, originalLine) + } + + case strings.HasPrefix(line, "*"): + // 通配符规则,转换为正则表达式 + pattern := strings.ReplaceAll(line, "*", ".*") + pattern = "^" + pattern + "$" + if re, err := regexp.Compile(pattern); err == nil { + // 保存原始规则字符串 + m.addRegexRule(re, originalLine) + } + + case strings.HasPrefix(line, "/") && strings.HasSuffix(line, "/"): + // 正则表达式匹配规则:/regex/ 格式,不区分大小写 + pattern := strings.TrimPrefix(strings.TrimSuffix(line, "/"), "/") + // 编译为不区分大小写的正则表达式,确保能匹配域名中任意位置 + // 对于像 /domain/ 这样的规则,应该匹配包含 domain 字符串的任何域名 + if re, err := regexp.Compile("(?i).*" + regexp.QuoteMeta(pattern) + ".*"); err == nil { + // 保存原始规则字符串 + m.addRegexRule(re, originalLine) + } + + case strings.HasPrefix(line, "|") && strings.HasSuffix(line, "|"): + // 完整URL匹配规则 + urlPattern := strings.TrimPrefix(strings.TrimSuffix(line, "|"), "|") + // 将URL模式转换为正则表达式 + pattern := "^" + regexp.QuoteMeta(urlPattern) + "$" + if re, err := regexp.Compile(pattern); err == nil { + m.addRegexRule(re, originalLine) + } + + case strings.HasPrefix(line, "|"): + // URL开头匹配规则 + urlPattern := strings.TrimPrefix(line, "|") + pattern := "^" + regexp.QuoteMeta(urlPattern) + if re, err := regexp.Compile(pattern); err == nil { + m.addRegexRule(re, originalLine) + } + + case strings.HasSuffix(line, "|"): + // URL结尾匹配规则 + urlPattern := strings.TrimSuffix(line, "|") + pattern := regexp.QuoteMeta(urlPattern) + "$" + if re, err := regexp.Compile(pattern); err == nil { + m.addRegexRule(re, originalLine) + } + + default: + // 默认作为普通域名规则 + m.addDomainRule(line, originalLine) + } +} + +// addDomainRule 添加域名规则 +func (m *GFWListManager) addDomainRule(domain string, original string) { + m.domainRules[domain] = true +} + +// addRegexRule 添加正则表达式规则 +func (m *GFWListManager) addRegexRule(re *regexp.Regexp, original string) { + rule := regexRule{ + pattern: re, + original: original, + } + m.regexRules = append(m.regexRules, rule) +} + +// IsMatch 检查域名是否匹配GFWList规则 +func (m *GFWListManager) IsMatch(domain string) bool { + m.rulesMutex.RLock() + defer m.rulesMutex.RUnlock() + + // 预处理域名,去除可能的端口号 + if strings.Contains(domain, ":") { + parts := strings.Split(domain, ":") + domain = parts[0] + } + + // 检查精确域名匹配 + if m.domainRules[domain] { + return true + } + + // 检查子域名匹配 + parts := strings.Split(domain, ".") + for i := 0; i < len(parts)-1; i++ { + subdomain := strings.Join(parts[i:], ".") + if m.domainRules[subdomain] { + return true + } + } + + // 检查正则表达式匹配 + for _, re := range m.regexRules { + if re.pattern.MatchString(domain) { + return true + } + } + + return false +} + +// GetGFWListIP 获取GFWList的目标IP地址 +func (m *GFWListManager) GetGFWListIP() string { + return m.config.IP +} diff --git a/http/server.go b/http/server.go index 29833dd..0c03ae6 100644 --- a/http/server.go +++ b/http/server.go @@ -12,6 +12,7 @@ import ( "dns-server/config" "dns-server/dns" + "dns-server/gfw" "dns-server/logger" "dns-server/shield" @@ -24,6 +25,7 @@ type Server struct { config *config.HTTPConfig dnsServer *dns.Server shieldManager *shield.ShieldManager + gfwManager *gfw.GFWListManager server *http.Server // 会话管理相关字段 @@ -39,12 +41,13 @@ type Server struct { } // NewServer 创建HTTP服务器实例 -func NewServer(globalConfig *config.Config, dnsServer *dns.Server, shieldManager *shield.ShieldManager) *Server { +func NewServer(globalConfig *config.Config, dnsServer *dns.Server, shieldManager *shield.ShieldManager, gfwManager *gfw.GFWListManager) *Server { server := &Server{ globalConfig: globalConfig, config: &globalConfig.HTTP, dnsServer: dnsServer, shieldManager: shieldManager, + gfwManager: gfwManager, upgrader: websocket.Upgrader{ ReadBufferSize: 1024, WriteBufferSize: 1024, @@ -430,7 +433,8 @@ func (s *Server) areStatsEqual(stats1, stats2 map[string]interface{}) bool { if dns1["Queries"] != dns2["Queries"] || dns1["Blocked"] != dns2["Blocked"] || dns1["Allowed"] != dns2["Allowed"] || - dns1["Errors"] != dns2["Errors"] { + dns1["Errors"] != dns2["Errors"] || + dns1["AvgResponseTime"] != dns2["AvgResponseTime"] { return false } } @@ -533,7 +537,8 @@ func (s *Server) handleTopBlockedDomains(w http.ResponseWriter, r *http.Request) return } - domains := s.dnsServer.GetTopBlockedDomains(10) + // 返回最近30天的所有域名,设置合理上限50 + domains := s.dnsServer.GetTopBlockedDomains(50) // 转换为前端需要的格式 result := make([]map[string]interface{}, len(domains)) @@ -584,7 +589,7 @@ func (s *Server) handleRecentBlockedDomains(w http.ResponseWriter, r *http.Reque for i, domain := range domains { result[i] = map[string]interface{}{ "domain": domain.Domain, - "time": domain.LastSeen.Format("15:04:05"), + "time": time.Unix(domain.LastSeen, 0).Format("15:04:05"), } } @@ -743,10 +748,10 @@ func (s *Server) handleTopDomains(w http.ResponseWriter, r *http.Request) { return } - // 获取TOP被屏蔽域名 - blockedDomains := s.dnsServer.GetTopBlockedDomains(10) - // 获取TOP已解析域名 - resolvedDomains := s.dnsServer.GetTopResolvedDomains(10) + // 获取TOP被屏蔽域名,返回最近30天的数据,设置合理上限50 + blockedDomains := s.dnsServer.GetTopBlockedDomains(50) + // 获取TOP已解析域名,返回最近30天的数据,设置合理上限50 + resolvedDomains := s.dnsServer.GetTopResolvedDomains(50) // 合并并去重域名统计 domainMap := make(map[string]int64) @@ -777,9 +782,9 @@ func (s *Server) handleTopDomains(w http.ResponseWriter, r *http.Request) { return domainList[i]["count"].(int64) > domainList[j]["count"].(int64) }) - // 返回限制数量 - if len(domainList) > 10 { - domainList = domainList[:10] + // 返回所有合并后的域名,设置合理上限50 + if len(domainList) > 50 { + domainList = domainList[:50] } w.Header().Set("Content-Type", "application/json") @@ -1239,13 +1244,21 @@ func (s *Server) handleConfig(w http.ResponseWriter, r *http.Request) { "blacklists": s.globalConfig.Shield.Blacklists, "updateInterval": s.globalConfig.Shield.UpdateInterval, }, + "GFWList": map[string]interface{}{ + "ip": s.globalConfig.GFWList.IP, + "content": s.globalConfig.GFWList.Content, + }, "DNSServer": map[string]interface{}{ "port": s.globalConfig.DNS.Port, + "QueryMode": s.globalConfig.DNS.QueryMode, "UpstreamServers": s.globalConfig.DNS.UpstreamDNS, "DNSSECUpstreamServers": s.globalConfig.DNS.DNSSECUpstreamDNS, - "timeout": s.globalConfig.DNS.Timeout, "saveInterval": s.globalConfig.DNS.SaveInterval, "enableIPv6": s.globalConfig.DNS.EnableIPv6, + "CacheMode": s.globalConfig.DNS.CacheMode, + "CacheSize": s.globalConfig.DNS.CacheSize, + "MaxCacheTTL": s.globalConfig.DNS.MaxCacheTTL, + "MinCacheTTL": s.globalConfig.DNS.MinCacheTTL, }, "HTTPServer": map[string]interface{}{ "port": s.globalConfig.HTTP.Port, @@ -1258,11 +1271,16 @@ func (s *Server) handleConfig(w http.ResponseWriter, r *http.Request) { var req struct { DNSServer struct { Port int `json:"port"` + QueryMode string `json:"queryMode"` UpstreamServers []string `json:"upstreamServers"` DnssecUpstreamServers []string `json:"dnssecUpstreamServers"` Timeout int `json:"timeout"` SaveInterval int `json:"saveInterval"` EnableIPv6 bool `json:"enableIPv6"` + CacheMode string `json:"cacheMode"` + CacheSize int `json:"cacheSize"` + MaxCacheTTL int `json:"maxCacheTTL"` + MinCacheTTL int `json:"minCacheTTL"` } `json:"dnsserver"` HTTPServer struct { Port int `json:"port"` @@ -1273,6 +1291,10 @@ func (s *Server) handleConfig(w http.ResponseWriter, r *http.Request) { Blacklists []config.BlacklistEntry `json:"blacklists"` UpdateInterval int `json:"updateInterval"` } `json:"shield"` + GFWList struct { + IP string `json:"ip"` + Content string `json:"content"` + } `json:"gfwList"` } if err := json.NewDecoder(r.Body).Decode(&req); err != nil { @@ -1290,13 +1312,27 @@ func (s *Server) handleConfig(w http.ResponseWriter, r *http.Request) { if len(req.DNSServer.DnssecUpstreamServers) > 0 { s.globalConfig.DNS.DNSSECUpstreamDNS = req.DNSServer.DnssecUpstreamServers } - if req.DNSServer.Timeout > 0 { - s.globalConfig.DNS.Timeout = req.DNSServer.Timeout - } if req.DNSServer.SaveInterval > 0 { s.globalConfig.DNS.SaveInterval = req.DNSServer.SaveInterval } s.globalConfig.DNS.EnableIPv6 = req.DNSServer.EnableIPv6 + // 更新查询模式 + if req.DNSServer.QueryMode != "" { + s.globalConfig.DNS.QueryMode = req.DNSServer.QueryMode + } + // 更新缓存配置 + if req.DNSServer.CacheMode != "" { + s.globalConfig.DNS.CacheMode = req.DNSServer.CacheMode + } + if req.DNSServer.CacheSize > 0 { + s.globalConfig.DNS.CacheSize = req.DNSServer.CacheSize + } + if req.DNSServer.MaxCacheTTL > 0 { + s.globalConfig.DNS.MaxCacheTTL = req.DNSServer.MaxCacheTTL + } + if req.DNSServer.MinCacheTTL > 0 { + s.globalConfig.DNS.MinCacheTTL = req.DNSServer.MinCacheTTL + } // 更新HTTP配置 if req.HTTPServer.Port > 0 { @@ -1338,6 +1374,17 @@ func (s *Server) handleConfig(w http.ResponseWriter, r *http.Request) { s.globalConfig.Shield.CustomBlockIP = req.Shield.CustomBlockIP } + // 更新GFWList配置 + s.globalConfig.GFWList.IP = req.GFWList.IP + s.globalConfig.GFWList.Content = req.GFWList.Content + + // 重新加载GFWList规则 + if s.gfwManager != nil { + if err := s.gfwManager.LoadRules(); err != nil { + logger.Error("重新加载GFWList规则失败", "error", err) + } + } + // 更新黑名单配置 if req.Shield.Blacklists != nil { // 验证黑名单配置 @@ -1367,6 +1414,19 @@ func (s *Server) handleConfig(w http.ResponseWriter, r *http.Request) { s.shieldManager.StartAutoUpdate() } + // 更新现有的DNSCache实例配置 + // 最大和最小TTL(秒) + maxCacheTTL := time.Duration(s.globalConfig.DNS.MaxCacheTTL) * time.Second + minCacheTTL := time.Duration(s.globalConfig.DNS.MinCacheTTL) * time.Second + // 最大缓存大小(字节) + maxCacheSize := int64(s.globalConfig.DNS.CacheSize) * 1024 * 1024 + + // 更新缓存配置 + s.dnsServer.DnsCache.SetMaxCacheTTL(maxCacheTTL) + s.dnsServer.DnsCache.SetMinCacheTTL(minCacheTTL) + s.dnsServer.DnsCache.SetCacheMode(s.globalConfig.DNS.CacheMode) + s.dnsServer.DnsCache.SetMaxCacheSize(maxCacheSize) + // 保存配置到文件 if err := saveConfigToFile(s.globalConfig, "./config.json"); err != nil { logger.Error("保存配置到文件失败", "error", err) diff --git a/logger/logger.go b/logger/logger.go index ca2f24d..2c0a223 100644 --- a/logger/logger.go +++ b/logger/logger.go @@ -58,7 +58,7 @@ func InitLogger(logFile, level string, maxSize, maxBackups, maxAge int, _ bool) } // 无论是否指定日志文件,都同时输出到标准输出 -if len(outputTargets) > 0 { + if len(outputTargets) > 0 { outputTargets = append(outputTargets, os.Stdout) } else { // 如果没有指定日志文件,仅使用标准输出 @@ -90,12 +90,12 @@ func Close() { // 执行日志刷新 log.Warn("日志系统已关闭") - + // 确保日志被写入磁盘 if loggerOutput, ok := log.Out.(*os.File); ok { loggerOutput.Sync() } - + initialized = false log = nil } diff --git a/main.go b/main.go index 960a439..e006c02 100644 --- a/main.go +++ b/main.go @@ -22,6 +22,7 @@ import ( "dns-server/config" "dns-server/dns" + "dns-server/gfw" "dns-server/http" "dns-server/logger" "dns-server/shield" @@ -82,6 +83,11 @@ func createDefaultConfig(configFile string) error { "customBlockIP": "", "statsSaveInterval": 60 }, + "gfwList": { + "ip": "127.0.0.1", + "content": "./data/gfwlist.txt", + "enabled": true + }, "log": { "level": "debug", "maxSize": 100, @@ -129,6 +135,13 @@ func createRequiredFiles(cfg *config.Config) error { } } + // 创建GFWList文件 + if _, err := os.Stat("data/gfwlist.txt"); os.IsNotExist(err) { + if err := os.WriteFile("data/gfwlist.txt", []byte("# GFWList规则文件\n# 格式:每行一条规则\n# 例如:www.google.com\n"), 0644); err != nil { + return fmt.Errorf("创建GFWList文件失败: %w", err) + } + } + // 创建统计数据文件 if _, err := os.Stat("data/stats.json"); os.IsNotExist(err) { if err := os.WriteFile("data/stats.json", []byte("{}"), 0644); err != nil { @@ -184,12 +197,18 @@ func main() { // 初始化屏蔽管理系统 shieldManager := shield.NewShieldManager(&cfg.Shield) - if err := shieldManager.LoadRules(); err != nil { - logger.Error("加载屏蔽规则失败", "error", err) + if err := shieldManager.LoadLocalRulesOnly(); err != nil { + logger.Error("加载本地屏蔽规则失败", "error", err) + } + + // 初始化GFWList管理系统 + gfwManager := gfw.NewGFWListManager(&cfg.GFWList) + if err := gfwManager.LoadRules(); err != nil { + logger.Error("加载GFWList规则失败", "error", err) } // 启动DNS服务器 - dnsServer := dns.NewServer(&cfg.DNS, &cfg.Shield, shieldManager) + dnsServer := dns.NewServer(&cfg.DNS, &cfg.Shield, shieldManager, &cfg.GFWList, gfwManager) go func() { if err := dnsServer.Start(); err != nil { logger.Error("DNS服务器启动失败", "error", err) @@ -198,13 +217,23 @@ func main() { }() // 启动HTTP控制台服务器 - httpServer := http.NewServer(cfg, dnsServer, shieldManager) + httpServer := http.NewServer(cfg, dnsServer, shieldManager, gfwManager) go func() { if err := httpServer.Start(); err != nil { logger.Error("HTTP控制台服务器启动失败", "error", err) } }() + // 异步加载远程规则 + go func() { + logger.Info("开始异步加载远程屏蔽规则") + if err := shieldManager.LoadRules(); err != nil { + logger.Error("异步加载远程屏蔽规则失败", "error", err) + } else { + logger.Info("远程屏蔽规则异步加载完成") + } + }() + // 启动定时更新任务 go shieldManager.StartAutoUpdate() diff --git a/package.json b/package.json deleted file mode 100644 index 94d5432..0000000 --- a/package.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "name": "dns-server-console", - "version": "1.0.0", - "description": "DNS服务器Web控制台", - "main": "index.js", - "scripts": { - "test": "echo \"Error: no test specified\" && exit 1" - }, - "dependencies": { - "tailwindcss": "^3.3.3", - "font-awesome": "^4.7.0", - "chart.js": "^4.4.8" - }, - "devDependencies": {}, - "keywords": ["dns", "server", "console", "web"], - "author": "", - "license": "ISC" -} \ No newline at end of file diff --git a/shield/manager.go b/shield/manager.go index 15e82cc..f7752d0 100644 --- a/shield/manager.go +++ b/shield/manager.go @@ -132,6 +132,44 @@ func (m *ShieldManager) LoadRules() error { return nil } +// LoadLocalRulesOnly 只加载本地规则 +func (m *ShieldManager) LoadLocalRulesOnly() error { + m.rulesMutex.Lock() + defer m.rulesMutex.Unlock() + + // 清空现有规则 + m.domainRules = make(map[string]bool) + m.domainExceptions = make(map[string]bool) + m.domainRulesIsLocal = make(map[string]bool) + m.domainExceptionsIsLocal = make(map[string]bool) + m.domainRulesSource = make(map[string]string) + m.domainExceptionsSource = make(map[string]string) + m.domainRulesOriginal = make(map[string]string) + m.domainExceptionsOriginal = make(map[string]string) + m.regexRules = []regexRule{} + m.regexExceptions = []regexRule{} + m.hostsMap = make(map[string]string) + m.localRulesCount = 0 + m.remoteRulesCount = 0 + // 保留计数数据,不随规则重新加载而清空 + + // 加载自定义规则文件 + if err := m.loadLocalRules(); err != nil { + logger.Error("加载自定义规则失败", "error", err) + // 继续执行,不返回错误 + } + + // 加载hosts文件 + if err := m.loadHosts(); err != nil { + logger.Error("加载hosts文件失败", "error", err) + // 继续执行,不返回错误 + } + + logger.Info(fmt.Sprintf("本地规则加载完成,域名规则: %d, 排除规则: %d, 正则规则: %d, hosts规则: %d", + len(m.domainRules), len(m.domainExceptions), len(m.regexRules), len(m.hostsMap))) + return nil +} + // loadLocalRules 加载自定义规则文件 func (m *ShieldManager) loadLocalRules() error { file, err := os.Open("data/rules.txt") @@ -204,21 +242,22 @@ func (m *ShieldManager) fetchRemoteRules(url string) error { // 获取缓存文件路径 cacheFile := m.getCacheFilePath(url) - // 尝试从缓存加载 - hasLoadedFromCache := false + // 检查缓存是否存在且不需要更新 if !m.shouldUpdateCache(cacheFile) { + // 从缓存加载规则 if err := m.loadCachedRules(cacheFile, url); err == nil { logger.Info("从缓存加载远程规则", "url", url) - hasLoadedFromCache = true + return nil // 缓存有效且加载成功,直接返回 } } - // 从远程获取规则 + // 缓存不存在或需要更新,从远程获取规则 resp, err := http.Get(url) if err != nil { - // 如果从远程获取失败,但已经从缓存加载成功,则返回nil - if hasLoadedFromCache { - logger.Warn("远程规则更新失败,使用缓存版本", "url", url, "error", err) + // 如果从远程获取失败,尝试从缓存加载(即使缓存过期) + logger.Warn("远程规则获取失败,尝试使用过期缓存", "url", url, "error", err) + if err := m.loadCachedRules(cacheFile, url); err == nil { + logger.Info("从过期缓存加载远程规则", "url", url) return nil } return err @@ -226,9 +265,10 @@ func (m *ShieldManager) fetchRemoteRules(url string) error { defer resp.Body.Close() if resp.StatusCode != http.StatusOK { - // 如果状态码不正确,但已经从缓存加载成功,则返回nil - if hasLoadedFromCache { - logger.Warn("远程规则更新失败,使用缓存版本", "url", url, "statusCode", resp.StatusCode) + // 如果状态码不正确,尝试从缓存加载(即使缓存过期) + logger.Warn("远程规则获取失败,尝试使用过期缓存", "url", url, "statusCode", resp.StatusCode) + if err := m.loadCachedRules(cacheFile, url); err == nil { + logger.Info("从过期缓存加载远程规则", "url", url) return nil } return fmt.Errorf("远程服务器返回错误状态码: %d", resp.StatusCode) @@ -236,6 +276,12 @@ func (m *ShieldManager) fetchRemoteRules(url string) error { body, err := ioutil.ReadAll(resp.Body) if err != nil { + // 如果读取响应失败,尝试从缓存加载(即使缓存过期) + logger.Warn("远程规则读取失败,尝试使用过期缓存", "url", url, "error", err) + if err := m.loadCachedRules(cacheFile, url); err == nil { + logger.Info("从过期缓存加载远程规则", "url", url) + return nil + } return err } @@ -544,6 +590,7 @@ func (m *ShieldManager) CheckDomainBlockDetails(domain string) map[string]interf "blockRule": "", "blockRuleType": "", "blocksource": "", + "isGFWList": false, "excluded": false, "excludeRule": "", "excludeRuleType": "", @@ -631,6 +678,7 @@ func (m *ShieldManager) CheckDomainBlockDetails(domain string) map[string]interf result["blockRule"] = m.domainRulesOriginal[domain] result["blockRuleType"] = "exact_domain" result["blocksource"] = m.domainRulesSource[domain] + result["isGFWList"] = m.domainRulesSource[domain] == "GFWList" return result } @@ -640,6 +688,7 @@ func (m *ShieldManager) CheckDomainBlockDetails(domain string) map[string]interf result["blockRule"] = m.domainRulesOriginal[domain] result["blockRuleType"] = "exact_domain" result["blocksource"] = m.domainRulesSource[domain] + result["isGFWList"] = m.domainRulesSource[domain] == "GFWList" return result } @@ -654,6 +703,7 @@ func (m *ShieldManager) CheckDomainBlockDetails(domain string) map[string]interf result["blockRule"] = m.domainRulesOriginal[subdomain] result["blockRuleType"] = "subdomain" result["blocksource"] = m.domainRulesSource[subdomain] + result["isGFWList"] = m.domainRulesSource[subdomain] == "GFWList" return result } } @@ -666,6 +716,7 @@ func (m *ShieldManager) CheckDomainBlockDetails(domain string) map[string]interf result["blockRule"] = m.domainRulesOriginal[subdomain] result["blockRuleType"] = "subdomain" result["blocksource"] = m.domainRulesSource[subdomain] + result["isGFWList"] = m.domainRulesSource[subdomain] == "GFWList" return result } } @@ -677,6 +728,7 @@ func (m *ShieldManager) CheckDomainBlockDetails(domain string) map[string]interf result["blockRule"] = re.original result["blockRuleType"] = "regex" result["blocksource"] = re.source + result["isGFWList"] = re.source == "GFWList" return result } } @@ -688,6 +740,7 @@ func (m *ShieldManager) CheckDomainBlockDetails(domain string) map[string]interf result["blockRule"] = re.original result["blockRuleType"] = "regex" result["blocksource"] = re.source + result["isGFWList"] = re.source == "GFWList" return result } } diff --git a/start.sh b/start.sh new file mode 100755 index 0000000..2ae8e52 --- /dev/null +++ b/start.sh @@ -0,0 +1,176 @@ +#!/bin/bash +# 启动/停止/重启脚本 + +# ===================== 配置区 ===================== +# 程序路径 +AGENT_PATH="./dns-server" +# 日志文件路径 +LOG_FILE="./server.log" +# PID文件路径(记录进程ID) +PID_FILE="./server.pid" +# 启动参数(根据实际需求调整) +START_ARGS="" +# 工作目录 +WORK_DIR="." +# ==================== 配置区结束 ==================== + +# 检查程序文件是否存在 +check_agent_exists() { + if [ ! -f "${AGENT_PATH}" ]; then + echo "错误:程序文件 ${AGENT_PATH} 不存在!" + exit 1 + fi + if [ ! -x "${AGENT_PATH}" ]; then + echo "错误:程序文件 ${AGENT_PATH} 没有执行权限,正在尝试添加..." + chmod +x "${AGENT_PATH}" + if [ $? -ne 0 ]; then + echo "错误:添加执行权限失败,请手动执行 chmod +x ${AGENT_PATH}" + exit 1 + fi + fi +} + +# 检查进程是否运行 +check_running() { + if [ -f "${PID_FILE}" ]; then + PID=$(cat "${PID_FILE}") + if ps -p "${PID}" > /dev/null 2>&1; then + return 0 # 运行中 + else + rm -f "${PID_FILE}" # PID文件存在但进程已死,清理PID文件 + fi + fi + return 1 # 未运行 +} + +# 启动程序 +start_agent() { + if check_running; then + echo "✅ dns-server 已在运行(PID: $(cat ${PID_FILE}))" + return 0 + fi + + echo "🚀 正在启动 dns-server(工作目录:${WORK_DIR})..." + + # 新增:检查并切换工作目录 + if [ ! -d "${WORK_DIR}" ]; then + echo "⚠️ 工作目录 ${WORK_DIR} 不存在,正在创建..." + mkdir -p "${WORK_DIR}" + if [ $? -ne 0 ]; then + echo "❌ 创建工作目录 ${WORK_DIR} 失败!" + exit 1 + fi + fi + + # 切换到工作目录(关键:程序将在此目录下运行) + cd "${WORK_DIR}" || { + echo "❌ 切换到工作目录 ${WORK_DIR} 失败!" + exit 1 + } + + # 创建日志目录 + mkdir -p "$(dirname ${LOG_FILE})" + # 后台启动程序(注意:cd仅影响当前子进程,需在同一行执行) + nohup "${AGENT_PATH}" ${START_ARGS} > "${LOG_FILE}" 2>&1 & + AGENT_PID=$! + echo "${AGENT_PID}" > "${PID_FILE}" + + # 等待检查启动状态 + sleep 2 + if check_running; then + echo "✅ dns-server 启动成功(PID: ${AGENT_PID},工作目录:${WORK_DIR})" + echo "日志文件:${LOG_FILE}" + else + echo "❌ dns-server 启动失败!请查看日志:${LOG_FILE}" + rm -f "${PID_FILE}" + exit 1 + fi +} +# 停止程序 +stop_agent() { + if ! check_running; then + echo "ℹ️ dns-server 未运行" + return 0 + fi + + PID=$(cat "${PID_FILE}") + echo "🛑 正在停止 dns-server(PID: ${PID})..." + # 优雅停止(先尝试TERM信号,失败则强制KILL) + kill "${PID}" > /dev/null 2>&1 + sleep 3 + + if ps -p "${PID}" > /dev/null 2>&1; then + echo "⚠️ 优雅停止失败,强制杀死进程..." + kill -9 "${PID}" > /dev/null 2>&1 + sleep 1 + fi + + # 清理PID文件 + rm -f "${PID_FILE}" + echo "✅ dns-server 已停止" +} + +# 查看状态 +status_agent() { + if check_running; then + echo "✅ dns-server 运行中(PID: $(cat ${PID_FILE}))" + else + echo "ℹ️ dns-server 未运行" + fi +} + +# 重启程序 +restart_agent() { + echo "🔄 正在重启 dns-server..." + stop_agent + sleep 2 + start_agent +} + +# 帮助信息 +show_help() { + echo "使用方法:$0 [start|stop|restart|status|help]" + echo " start - 启动 dns-server" + echo " stop - 停止 dns-server" + echo " restart - 重启 dns-server" + echo " status - 查看 dns-server 运行状态" + echo " help - 显示帮助信息" +} + +# 主逻辑 +main() { + # 检查是否为root用户(可选,根据需求调整) + if [ "$(id -u)" -ne 0 ]; then + echo "警告:建议使用root用户运行此脚本(当前用户:$(whoami))" + # exit 1 # 如果强制要求root,取消注释 + fi + + check_agent_exists + + case "$1" in + start) + start_agent + ;; + stop) + stop_agent + ;; + restart) + restart_agent + ;; + status) + status_agent + ;; + help|--help|-h) + show_help + ;; + *) + echo "错误:无效参数 '$1'" + show_help + exit 1 + ;; + esac +} + +# 执行主逻辑 +main "$@" + diff --git a/static/api/index.html b/static/api/index.html index ebb375d..1704aa6 100644 --- a/static/api/index.html +++ b/static/api/index.html @@ -4,13 +4,13 @@ DNS Server API 文档 - +
- - + + \ No newline at end of file diff --git a/static/api/js/index.js b/static/api/js/index.js index 9addc52..65663cd 100644 --- a/static/api/js/index.js +++ b/static/api/js/index.js @@ -4,7 +4,7 @@ "info": { "title": "DNS Server API", "description": "DNS服务器完整API文档,包括统计信息、Shield管理、主机管理等功能。", - "version": "1.2.5", + "version": "2.0.0", "contact": { "name": "DNS Server 支持", "email": "support@dnsserver.com" diff --git a/static/css/font-awesome.min.css b/static/css/font-awesome.min.css new file mode 100644 index 0000000..7a3c2f6 --- /dev/null +++ b/static/css/font-awesome.min.css @@ -0,0 +1,3045 @@ +/*! + * Font Awesome 4.7.0 by @davegandy - http://fontawesome.io - @fontawesome + * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License) + */ +@font-face { + font-family: 'FontAwesome'; + src: url('./webfonts/fontawesome-webfont.eot?v=4.7.0'); + src: url('./webfonts/fontawesome-webfont.eot?#iefix&v=4.7.0') format('embedded-opentype'), url('./webfonts/fontawesome-webfont.woff2?v=4.7.0') format('woff2'), url('./webfonts/fontawesome-webfont.woff?v=4.7.0') format('woff'), url('./webfonts/fontawesome-webfont.ttf?v=4.7.0') format('truetype'), url('./webfonts/fontawesome-webfont.svg?v=4.7.0#fontawesomeregular') format('svg'); + font-weight: normal; + font-style: normal +} + +.fa { + display: inline-block; + font: normal normal normal 14px/1 FontAwesome; + font-size: inherit; + text-rendering: auto; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale +} + +.fa-lg { + font-size: 1.33333333em; + line-height: .75em; + vertical-align: -15% +} + +.fa-2x { + font-size: 2em +} + +.fa-3x { + font-size: 3em +} + +.fa-4x { + font-size: 4em +} + +.fa-5x { + font-size: 5em +} + +.fa-fw { + width: 1.28571429em; + text-align: center +} + +.fa-ul { + padding-left: 0; + margin-left: 2.14285714em; + list-style-type: none +} + +.fa-ul>li { + position: relative +} + +.fa-li { + position: absolute; + left: -2.14285714em; + width: 2.14285714em; + top: .14285714em; + text-align: center +} + +.fa-li.fa-lg { + left: -1.85714286em +} + +.fa-border { + padding: .2em .25em .15em; + border: solid .08em #eee; + border-radius: .1em +} + +.fa-pull-left { + float: left +} + +.fa-pull-right { + float: right +} + +.fa.fa-pull-left { + margin-right: .3em +} + +.fa.fa-pull-right { + margin-left: .3em +} + +.pull-right { + float: right +} + +.pull-left { + float: left +} + +.fa.pull-left { + margin-right: .3em +} + +.fa.pull-right { + margin-left: .3em +} + +.fa-spin { + -webkit-animation: fa-spin 2s infinite linear; + animation: fa-spin 2s infinite linear +} + +.fa-pulse { + -webkit-animation: fa-spin 1s infinite steps(8); + animation: fa-spin 1s infinite steps(8) +} + +@-webkit-keyframes fa-spin { + 0% { + -webkit-transform: rotate(0deg); + transform: rotate(0deg) + } + + 100% { + -webkit-transform: rotate(359deg); + transform: rotate(359deg) + } +} + +@keyframes fa-spin { + 0% { + -webkit-transform: rotate(0deg); + transform: rotate(0deg) + } + + 100% { + -webkit-transform: rotate(359deg); + transform: rotate(359deg) + } +} + +.fa-rotate-90 { + -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=1)"; + -webkit-transform: rotate(90deg); + -ms-transform: rotate(90deg); + transform: rotate(90deg) +} + +.fa-rotate-180 { + -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2)"; + -webkit-transform: rotate(180deg); + -ms-transform: rotate(180deg); + transform: rotate(180deg) +} + +.fa-rotate-270 { + -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=3)"; + -webkit-transform: rotate(270deg); + -ms-transform: rotate(270deg); + transform: rotate(270deg) +} + +.fa-flip-horizontal { + -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)"; + -webkit-transform: scale(-1, 1); + -ms-transform: scale(-1, 1); + transform: scale(-1, 1) +} + +.fa-flip-vertical { + -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)"; + -webkit-transform: scale(1, -1); + -ms-transform: scale(1, -1); + transform: scale(1, -1) +} + +:root .fa-rotate-90, +:root .fa-rotate-180, +:root .fa-rotate-270, +:root .fa-flip-horizontal, +:root .fa-flip-vertical { + filter: none +} + +.fa-stack { + position: relative; + display: inline-block; + width: 2em; + height: 2em; + line-height: 2em; + vertical-align: middle +} + +.fa-stack-1x, +.fa-stack-2x { + position: absolute; + left: 0; + width: 100%; + text-align: center +} + +.fa-stack-1x { + line-height: inherit +} + +.fa-stack-2x { + font-size: 2em +} + +.fa-inverse { + color: #fff +} + +.fa-glass:before { + content: "\f000" +} + +.fa-music:before { + content: "\f001" +} + +.fa-search:before { + content: "\f002" +} + +.fa-envelope-o:before { + content: "\f003" +} + +.fa-heart:before { + content: "\f004" +} + +.fa-star:before { + content: "\f005" +} + +.fa-star-o:before { + content: "\f006" +} + +.fa-user:before { + content: "\f007" +} + +.fa-film:before { + content: "\f008" +} + +.fa-th-large:before { + content: "\f009" +} + +.fa-th:before { + content: "\f00a" +} + +.fa-th-list:before { + content: "\f00b" +} + +.fa-check:before { + content: "\f00c" +} + +.fa-remove:before, +.fa-close:before, +.fa-times:before { + content: "\f00d" +} + +.fa-search-plus:before { + content: "\f00e" +} + +.fa-search-minus:before { + content: "\f010" +} + +.fa-power-off:before { + content: "\f011" +} + +.fa-signal:before { + content: "\f012" +} + +.fa-gear:before, +.fa-cog:before { + content: "\f013" +} + +.fa-trash-o:before { + content: "\f014" +} + +.fa-home:before { + content: "\f015" +} + +.fa-file-o:before { + content: "\f016" +} + +.fa-clock-o:before { + content: "\f017" +} + +.fa-road:before { + content: "\f018" +} + +.fa-download:before { + content: "\f019" +} + +.fa-arrow-circle-o-down:before { + content: "\f01a" +} + +.fa-arrow-circle-o-up:before { + content: "\f01b" +} + +.fa-inbox:before { + content: "\f01c" +} + +.fa-play-circle-o:before { + content: "\f01d" +} + +.fa-rotate-right:before, +.fa-repeat:before { + content: "\f01e" +} + +.fa-refresh:before { + content: "\f021" +} + +.fa-list-alt:before { + content: "\f022" +} + +.fa-lock:before { + content: "\f023" +} + +.fa-flag:before { + content: "\f024" +} + +.fa-headphones:before { + content: "\f025" +} + +.fa-volume-off:before { + content: "\f026" +} + +.fa-volume-down:before { + content: "\f027" +} + +.fa-volume-up:before { + content: "\f028" +} + +.fa-qrcode:before { + content: "\f029" +} + +.fa-barcode:before { + content: "\f02a" +} + +.fa-tag:before { + content: "\f02b" +} + +.fa-tags:before { + content: "\f02c" +} + +.fa-book:before { + content: "\f02d" +} + +.fa-bookmark:before { + content: "\f02e" +} + +.fa-print:before { + content: "\f02f" +} + +.fa-camera:before { + content: "\f030" +} + +.fa-font:before { + content: "\f031" +} + +.fa-bold:before { + content: "\f032" +} + +.fa-italic:before { + content: "\f033" +} + +.fa-text-height:before { + content: "\f034" +} + +.fa-text-width:before { + content: "\f035" +} + +.fa-align-left:before { + content: "\f036" +} + +.fa-align-center:before { + content: "\f037" +} + +.fa-align-right:before { + content: "\f038" +} + +.fa-align-justify:before { + content: "\f039" +} + +.fa-list:before { + content: "\f03a" +} + +.fa-dedent:before, +.fa-outdent:before { + content: "\f03b" +} + +.fa-indent:before { + content: "\f03c" +} + +.fa-video-camera:before { + content: "\f03d" +} + +.fa-photo:before, +.fa-image:before, +.fa-picture-o:before { + content: "\f03e" +} + +.fa-pencil:before { + content: "\f040" +} + +.fa-map-marker:before { + content: "\f041" +} + +.fa-adjust:before { + content: "\f042" +} + +.fa-tint:before { + content: "\f043" +} + +.fa-edit:before, +.fa-pencil-square-o:before { + content: "\f044" +} + +.fa-share-square-o:before { + content: "\f045" +} + +.fa-check-square-o:before { + content: "\f046" +} + +.fa-arrows:before { + content: "\f047" +} + +.fa-step-backward:before { + content: "\f048" +} + +.fa-fast-backward:before { + content: "\f049" +} + +.fa-backward:before { + content: "\f04a" +} + +.fa-play:before { + content: "\f04b" +} + +.fa-pause:before { + content: "\f04c" +} + +.fa-stop:before { + content: "\f04d" +} + +.fa-forward:before { + content: "\f04e" +} + +.fa-fast-forward:before { + content: "\f050" +} + +.fa-step-forward:before { + content: "\f051" +} + +.fa-eject:before { + content: "\f052" +} + +.fa-chevron-left:before { + content: "\f053" +} + +.fa-chevron-right:before { + content: "\f054" +} + +.fa-plus-circle:before { + content: "\f055" +} + +.fa-minus-circle:before { + content: "\f056" +} + +.fa-times-circle:before { + content: "\f057" +} + +.fa-check-circle:before { + content: "\f058" +} + +.fa-question-circle:before { + content: "\f059" +} + +.fa-info-circle:before { + content: "\f05a" +} + +.fa-crosshairs:before { + content: "\f05b" +} + +.fa-times-circle-o:before { + content: "\f05c" +} + +.fa-check-circle-o:before { + content: "\f05d" +} + +.fa-ban:before { + content: "\f05e" +} + +.fa-arrow-left:before { + content: "\f060" +} + +.fa-arrow-right:before { + content: "\f061" +} + +.fa-arrow-up:before { + content: "\f062" +} + +.fa-arrow-down:before { + content: "\f063" +} + +.fa-mail-forward:before, +.fa-share:before { + content: "\f064" +} + +.fa-expand:before { + content: "\f065" +} + +.fa-compress:before { + content: "\f066" +} + +.fa-plus:before { + content: "\f067" +} + +.fa-minus:before { + content: "\f068" +} + +.fa-asterisk:before { + content: "\f069" +} + +.fa-exclamation-circle:before { + content: "\f06a" +} + +.fa-gift:before { + content: "\f06b" +} + +.fa-leaf:before { + content: "\f06c" +} + +.fa-fire:before { + content: "\f06d" +} + +.fa-eye:before { + content: "\f06e" +} + +.fa-eye-slash:before { + content: "\f070" +} + +.fa-warning:before, +.fa-exclamation-triangle:before { + content: "\f071" +} + +.fa-plane:before { + content: "\f072" +} + +.fa-calendar:before { + content: "\f073" +} + +.fa-random:before { + content: "\f074" +} + +.fa-comment:before { + content: "\f075" +} + +.fa-magnet:before { + content: "\f076" +} + +.fa-chevron-up:before { + content: "\f077" +} + +.fa-chevron-down:before { + content: "\f078" +} + +.fa-retweet:before { + content: "\f079" +} + +.fa-shopping-cart:before { + content: "\f07a" +} + +.fa-folder:before { + content: "\f07b" +} + +.fa-folder-open:before { + content: "\f07c" +} + +.fa-arrows-v:before { + content: "\f07d" +} + +.fa-arrows-h:before { + content: "\f07e" +} + +.fa-bar-chart-o:before, +.fa-bar-chart:before { + content: "\f080" +} + +.fa-twitter-square:before { + content: "\f081" +} + +.fa-facebook-square:before { + content: "\f082" +} + +.fa-camera-retro:before { + content: "\f083" +} + +.fa-key:before { + content: "\f084" +} + +.fa-gears:before, +.fa-cogs:before { + content: "\f085" +} + +.fa-comments:before { + content: "\f086" +} + +.fa-thumbs-o-up:before { + content: "\f087" +} + +.fa-thumbs-o-down:before { + content: "\f088" +} + +.fa-star-half:before { + content: "\f089" +} + +.fa-heart-o:before { + content: "\f08a" +} + +.fa-sign-out:before { + content: "\f08b" +} + +.fa-linkedin-square:before { + content: "\f08c" +} + +.fa-thumb-tack:before { + content: "\f08d" +} + +.fa-external-link:before { + content: "\f08e" +} + +.fa-sign-in:before { + content: "\f090" +} + +.fa-trophy:before { + content: "\f091" +} + +.fa-github-square:before { + content: "\f092" +} + +.fa-upload:before { + content: "\f093" +} + +.fa-lemon-o:before { + content: "\f094" +} + +.fa-phone:before { + content: "\f095" +} + +.fa-square-o:before { + content: "\f096" +} + +.fa-bookmark-o:before { + content: "\f097" +} + +.fa-phone-square:before { + content: "\f098" +} + +.fa-twitter:before { + content: "\f099" +} + +.fa-facebook-f:before, +.fa-facebook:before { + content: "\f09a" +} + +.fa-github:before { + content: "\f09b" +} + +.fa-unlock:before { + content: "\f09c" +} + +.fa-credit-card:before { + content: "\f09d" +} + +.fa-feed:before, +.fa-rss:before { + content: "\f09e" +} + +.fa-hdd-o:before { + content: "\f0a0" +} + +.fa-bullhorn:before { + content: "\f0a1" +} + +.fa-bell:before { + content: "\f0f3" +} + +.fa-certificate:before { + content: "\f0a3" +} + +.fa-hand-o-right:before { + content: "\f0a4" +} + +.fa-hand-o-left:before { + content: "\f0a5" +} + +.fa-hand-o-up:before { + content: "\f0a6" +} + +.fa-hand-o-down:before { + content: "\f0a7" +} + +.fa-arrow-circle-left:before { + content: "\f0a8" +} + +.fa-arrow-circle-right:before { + content: "\f0a9" +} + +.fa-arrow-circle-up:before { + content: "\f0aa" +} + +.fa-arrow-circle-down:before { + content: "\f0ab" +} + +.fa-globe:before { + content: "\f0ac" +} + +.fa-wrench:before { + content: "\f0ad" +} + +.fa-tasks:before { + content: "\f0ae" +} + +.fa-filter:before { + content: "\f0b0" +} + +.fa-briefcase:before { + content: "\f0b1" +} + +.fa-arrows-alt:before { + content: "\f0b2" +} + +.fa-group:before, +.fa-users:before { + content: "\f0c0" +} + +.fa-chain:before, +.fa-link:before { + content: "\f0c1" +} + +.fa-cloud:before { + content: "\f0c2" +} + +.fa-flask:before { + content: "\f0c3" +} + +.fa-cut:before, +.fa-scissors:before { + content: "\f0c4" +} + +.fa-copy:before, +.fa-files-o:before { + content: "\f0c5" +} + +.fa-paperclip:before { + content: "\f0c6" +} + +.fa-save:before, +.fa-floppy-o:before { + content: "\f0c7" +} + +.fa-square:before { + content: "\f0c8" +} + +.fa-navicon:before, +.fa-reorder:before, +.fa-bars:before { + content: "\f0c9" +} + +.fa-list-ul:before { + content: "\f0ca" +} + +.fa-list-ol:before { + content: "\f0cb" +} + +.fa-strikethrough:before { + content: "\f0cc" +} + +.fa-underline:before { + content: "\f0cd" +} + +.fa-table:before { + content: "\f0ce" +} + +.fa-magic:before { + content: "\f0d0" +} + +.fa-truck:before { + content: "\f0d1" +} + +.fa-pinterest:before { + content: "\f0d2" +} + +.fa-pinterest-square:before { + content: "\f0d3" +} + +.fa-google-plus-square:before { + content: "\f0d4" +} + +.fa-google-plus:before { + content: "\f0d5" +} + +.fa-money:before { + content: "\f0d6" +} + +.fa-caret-down:before { + content: "\f0d7" +} + +.fa-caret-up:before { + content: "\f0d8" +} + +.fa-caret-left:before { + content: "\f0d9" +} + +.fa-caret-right:before { + content: "\f0da" +} + +.fa-columns:before { + content: "\f0db" +} + +.fa-unsorted:before, +.fa-sort:before { + content: "\f0dc" +} + +.fa-sort-down:before, +.fa-sort-desc:before { + content: "\f0dd" +} + +.fa-sort-up:before, +.fa-sort-asc:before { + content: "\f0de" +} + +.fa-envelope:before { + content: "\f0e0" +} + +.fa-linkedin:before { + content: "\f0e1" +} + +.fa-rotate-left:before, +.fa-undo:before { + content: "\f0e2" +} + +.fa-legal:before, +.fa-gavel:before { + content: "\f0e3" +} + +.fa-dashboard:before, +.fa-tachometer:before { + content: "\f0e4" +} + +.fa-comment-o:before { + content: "\f0e5" +} + +.fa-comments-o:before { + content: "\f0e6" +} + +.fa-flash:before, +.fa-bolt:before { + content: "\f0e7" +} + +.fa-sitemap:before { + content: "\f0e8" +} + +.fa-umbrella:before { + content: "\f0e9" +} + +.fa-paste:before, +.fa-clipboard:before { + content: "\f0ea" +} + +.fa-lightbulb-o:before { + content: "\f0eb" +} + +.fa-exchange:before { + content: "\f0ec" +} + +.fa-cloud-download:before { + content: "\f0ed" +} + +.fa-cloud-upload:before { + content: "\f0ee" +} + +.fa-user-md:before { + content: "\f0f0" +} + +.fa-stethoscope:before { + content: "\f0f1" +} + +.fa-suitcase:before { + content: "\f0f2" +} + +.fa-bell-o:before { + content: "\f0a2" +} + +.fa-coffee:before { + content: "\f0f4" +} + +.fa-cutlery:before { + content: "\f0f5" +} + +.fa-file-text-o:before { + content: "\f0f6" +} + +.fa-building-o:before { + content: "\f0f7" +} + +.fa-hospital-o:before { + content: "\f0f8" +} + +.fa-ambulance:before { + content: "\f0f9" +} + +.fa-medkit:before { + content: "\f0fa" +} + +.fa-fighter-jet:before { + content: "\f0fb" +} + +.fa-beer:before { + content: "\f0fc" +} + +.fa-h-square:before { + content: "\f0fd" +} + +.fa-plus-square:before { + content: "\f0fe" +} + +.fa-angle-double-left:before { + content: "\f100" +} + +.fa-angle-double-right:before { + content: "\f101" +} + +.fa-angle-double-up:before { + content: "\f102" +} + +.fa-angle-double-down:before { + content: "\f103" +} + +.fa-angle-left:before { + content: "\f104" +} + +.fa-angle-right:before { + content: "\f105" +} + +.fa-angle-up:before { + content: "\f106" +} + +.fa-angle-down:before { + content: "\f107" +} + +.fa-desktop:before { + content: "\f108" +} + +.fa-laptop:before { + content: "\f109" +} + +.fa-tablet:before { + content: "\f10a" +} + +.fa-mobile-phone:before, +.fa-mobile:before { + content: "\f10b" +} + +.fa-circle-o:before { + content: "\f10c" +} + +.fa-quote-left:before { + content: "\f10d" +} + +.fa-quote-right:before { + content: "\f10e" +} + +.fa-spinner:before { + content: "\f110" +} + +.fa-circle:before { + content: "\f111" +} + +.fa-mail-reply:before, +.fa-reply:before { + content: "\f112" +} + +.fa-github-alt:before { + content: "\f113" +} + +.fa-folder-o:before { + content: "\f114" +} + +.fa-folder-open-o:before { + content: "\f115" +} + +.fa-smile-o:before { + content: "\f118" +} + +.fa-frown-o:before { + content: "\f119" +} + +.fa-meh-o:before { + content: "\f11a" +} + +.fa-gamepad:before { + content: "\f11b" +} + +.fa-keyboard-o:before { + content: "\f11c" +} + +.fa-flag-o:before { + content: "\f11d" +} + +.fa-flag-checkered:before { + content: "\f11e" +} + +.fa-terminal:before { + content: "\f120" +} + +.fa-code:before { + content: "\f121" +} + +.fa-mail-reply-all:before, +.fa-reply-all:before { + content: "\f122" +} + +.fa-star-half-empty:before, +.fa-star-half-full:before, +.fa-star-half-o:before { + content: "\f123" +} + +.fa-location-arrow:before { + content: "\f124" +} + +.fa-crop:before { + content: "\f125" +} + +.fa-code-fork:before { + content: "\f126" +} + +.fa-unlink:before, +.fa-chain-broken:before { + content: "\f127" +} + +.fa-question:before { + content: "\f128" +} + +.fa-info:before { + content: "\f129" +} + +.fa-exclamation:before { + content: "\f12a" +} + +.fa-superscript:before { + content: "\f12b" +} + +.fa-subscript:before { + content: "\f12c" +} + +.fa-eraser:before { + content: "\f12d" +} + +.fa-puzzle-piece:before { + content: "\f12e" +} + +.fa-microphone:before { + content: "\f130" +} + +.fa-microphone-slash:before { + content: "\f131" +} + +.fa-shield:before { + content: "\f132" +} + +.fa-calendar-o:before { + content: "\f133" +} + +.fa-fire-extinguisher:before { + content: "\f134" +} + +.fa-rocket:before { + content: "\f135" +} + +.fa-maxcdn:before { + content: "\f136" +} + +.fa-chevron-circle-left:before { + content: "\f137" +} + +.fa-chevron-circle-right:before { + content: "\f138" +} + +.fa-chevron-circle-up:before { + content: "\f139" +} + +.fa-chevron-circle-down:before { + content: "\f13a" +} + +.fa-html5:before { + content: "\f13b" +} + +.fa-css3:before { + content: "\f13c" +} + +.fa-anchor:before { + content: "\f13d" +} + +.fa-unlock-alt:before { + content: "\f13e" +} + +.fa-bullseye:before { + content: "\f140" +} + +.fa-ellipsis-h:before { + content: "\f141" +} + +.fa-ellipsis-v:before { + content: "\f142" +} + +.fa-rss-square:before { + content: "\f143" +} + +.fa-play-circle:before { + content: "\f144" +} + +.fa-ticket:before { + content: "\f145" +} + +.fa-minus-square:before { + content: "\f146" +} + +.fa-minus-square-o:before { + content: "\f147" +} + +.fa-level-up:before { + content: "\f148" +} + +.fa-level-down:before { + content: "\f149" +} + +.fa-check-square:before { + content: "\f14a" +} + +.fa-pencil-square:before { + content: "\f14b" +} + +.fa-external-link-square:before { + content: "\f14c" +} + +.fa-share-square:before { + content: "\f14d" +} + +.fa-compass:before { + content: "\f14e" +} + +.fa-toggle-down:before, +.fa-caret-square-o-down:before { + content: "\f150" +} + +.fa-toggle-up:before, +.fa-caret-square-o-up:before { + content: "\f151" +} + +.fa-toggle-right:before, +.fa-caret-square-o-right:before { + content: "\f152" +} + +.fa-euro:before, +.fa-eur:before { + content: "\f153" +} + +.fa-gbp:before { + content: "\f154" +} + +.fa-dollar:before, +.fa-usd:before { + content: "\f155" +} + +.fa-rupee:before, +.fa-inr:before { + content: "\f156" +} + +.fa-cny:before, +.fa-rmb:before, +.fa-yen:before, +.fa-jpy:before { + content: "\f157" +} + +.fa-ruble:before, +.fa-rouble:before, +.fa-rub:before { + content: "\f158" +} + +.fa-won:before, +.fa-krw:before { + content: "\f159" +} + +.fa-bitcoin:before, +.fa-btc:before { + content: "\f15a" +} + +.fa-file:before { + content: "\f15b" +} + +.fa-file-text:before { + content: "\f15c" +} + +.fa-sort-alpha-asc:before { + content: "\f15d" +} + +.fa-sort-alpha-desc:before { + content: "\f15e" +} + +.fa-sort-amount-asc:before { + content: "\f160" +} + +.fa-sort-amount-desc:before { + content: "\f161" +} + +.fa-sort-numeric-asc:before { + content: "\f162" +} + +.fa-sort-numeric-desc:before { + content: "\f163" +} + +.fa-thumbs-up:before { + content: "\f164" +} + +.fa-thumbs-down:before { + content: "\f165" +} + +.fa-youtube-square:before { + content: "\f166" +} + +.fa-youtube:before { + content: "\f167" +} + +.fa-xing:before { + content: "\f168" +} + +.fa-xing-square:before { + content: "\f169" +} + +.fa-youtube-play:before { + content: "\f16a" +} + +.fa-dropbox:before { + content: "\f16b" +} + +.fa-stack-overflow:before { + content: "\f16c" +} + +.fa-instagram:before { + content: "\f16d" +} + +.fa-flickr:before { + content: "\f16e" +} + +.fa-adn:before { + content: "\f170" +} + +.fa-bitbucket:before { + content: "\f171" +} + +.fa-bitbucket-square:before { + content: "\f172" +} + +.fa-tumblr:before { + content: "\f173" +} + +.fa-tumblr-square:before { + content: "\f174" +} + +.fa-long-arrow-down:before { + content: "\f175" +} + +.fa-long-arrow-up:before { + content: "\f176" +} + +.fa-long-arrow-left:before { + content: "\f177" +} + +.fa-long-arrow-right:before { + content: "\f178" +} + +.fa-apple:before { + content: "\f179" +} + +.fa-windows:before { + content: "\f17a" +} + +.fa-android:before { + content: "\f17b" +} + +.fa-linux:before { + content: "\f17c" +} + +.fa-dribbble:before { + content: "\f17d" +} + +.fa-skype:before { + content: "\f17e" +} + +.fa-foursquare:before { + content: "\f180" +} + +.fa-trello:before { + content: "\f181" +} + +.fa-female:before { + content: "\f182" +} + +.fa-male:before { + content: "\f183" +} + +.fa-gittip:before, +.fa-gratipay:before { + content: "\f184" +} + +.fa-sun-o:before { + content: "\f185" +} + +.fa-moon-o:before { + content: "\f186" +} + +.fa-archive:before { + content: "\f187" +} + +.fa-bug:before { + content: "\f188" +} + +.fa-vk:before { + content: "\f189" +} + +.fa-weibo:before { + content: "\f18a" +} + +.fa-renren:before { + content: "\f18b" +} + +.fa-pagelines:before { + content: "\f18c" +} + +.fa-stack-exchange:before { + content: "\f18d" +} + +.fa-arrow-circle-o-right:before { + content: "\f18e" +} + +.fa-arrow-circle-o-left:before { + content: "\f190" +} + +.fa-toggle-left:before, +.fa-caret-square-o-left:before { + content: "\f191" +} + +.fa-dot-circle-o:before { + content: "\f192" +} + +.fa-wheelchair:before { + content: "\f193" +} + +.fa-vimeo-square:before { + content: "\f194" +} + +.fa-turkish-lira:before, +.fa-try:before { + content: "\f195" +} + +.fa-plus-square-o:before { + content: "\f196" +} + +.fa-space-shuttle:before { + content: "\f197" +} + +.fa-slack:before { + content: "\f198" +} + +.fa-envelope-square:before { + content: "\f199" +} + +.fa-wordpress:before { + content: "\f19a" +} + +.fa-openid:before { + content: "\f19b" +} + +.fa-institution:before, +.fa-bank:before, +.fa-university:before { + content: "\f19c" +} + +.fa-mortar-board:before, +.fa-graduation-cap:before { + content: "\f19d" +} + +.fa-yahoo:before { + content: "\f19e" +} + +.fa-google:before { + content: "\f1a0" +} + +.fa-reddit:before { + content: "\f1a1" +} + +.fa-reddit-square:before { + content: "\f1a2" +} + +.fa-stumbleupon-circle:before { + content: "\f1a3" +} + +.fa-stumbleupon:before { + content: "\f1a4" +} + +.fa-delicious:before { + content: "\f1a5" +} + +.fa-digg:before { + content: "\f1a6" +} + +.fa-pied-piper-pp:before { + content: "\f1a7" +} + +.fa-pied-piper-alt:before { + content: "\f1a8" +} + +.fa-drupal:before { + content: "\f1a9" +} + +.fa-joomla:before { + content: "\f1aa" +} + +.fa-language:before { + content: "\f1ab" +} + +.fa-fax:before { + content: "\f1ac" +} + +.fa-building:before { + content: "\f1ad" +} + +.fa-child:before { + content: "\f1ae" +} + +.fa-paw:before { + content: "\f1b0" +} + +.fa-spoon:before { + content: "\f1b1" +} + +.fa-cube:before { + content: "\f1b2" +} + +.fa-cubes:before { + content: "\f1b3" +} + +.fa-behance:before { + content: "\f1b4" +} + +.fa-behance-square:before { + content: "\f1b5" +} + +.fa-steam:before { + content: "\f1b6" +} + +.fa-steam-square:before { + content: "\f1b7" +} + +.fa-recycle:before { + content: "\f1b8" +} + +.fa-automobile:before, +.fa-car:before { + content: "\f1b9" +} + +.fa-cab:before, +.fa-taxi:before { + content: "\f1ba" +} + +.fa-tree:before { + content: "\f1bb" +} + +.fa-spotify:before { + content: "\f1bc" +} + +.fa-deviantart:before { + content: "\f1bd" +} + +.fa-soundcloud:before { + content: "\f1be" +} + +.fa-database:before { + content: "\f1c0" +} + +.fa-file-pdf-o:before { + content: "\f1c1" +} + +.fa-file-word-o:before { + content: "\f1c2" +} + +.fa-file-excel-o:before { + content: "\f1c3" +} + +.fa-file-powerpoint-o:before { + content: "\f1c4" +} + +.fa-file-photo-o:before, +.fa-file-picture-o:before, +.fa-file-image-o:before { + content: "\f1c5" +} + +.fa-file-zip-o:before, +.fa-file-archive-o:before { + content: "\f1c6" +} + +.fa-file-sound-o:before, +.fa-file-audio-o:before { + content: "\f1c7" +} + +.fa-file-movie-o:before, +.fa-file-video-o:before { + content: "\f1c8" +} + +.fa-file-code-o:before { + content: "\f1c9" +} + +.fa-vine:before { + content: "\f1ca" +} + +.fa-codepen:before { + content: "\f1cb" +} + +.fa-jsfiddle:before { + content: "\f1cc" +} + +.fa-life-bouy:before, +.fa-life-buoy:before, +.fa-life-saver:before, +.fa-support:before, +.fa-life-ring:before { + content: "\f1cd" +} + +.fa-circle-o-notch:before { + content: "\f1ce" +} + +.fa-ra:before, +.fa-resistance:before, +.fa-rebel:before { + content: "\f1d0" +} + +.fa-ge:before, +.fa-empire:before { + content: "\f1d1" +} + +.fa-git-square:before { + content: "\f1d2" +} + +.fa-git:before { + content: "\f1d3" +} + +.fa-y-combinator-square:before, +.fa-yc-square:before, +.fa-hacker-news:before { + content: "\f1d4" +} + +.fa-tencent-weibo:before { + content: "\f1d5" +} + +.fa-qq:before { + content: "\f1d6" +} + +.fa-wechat:before, +.fa-weixin:before { + content: "\f1d7" +} + +.fa-send:before, +.fa-paper-plane:before { + content: "\f1d8" +} + +.fa-send-o:before, +.fa-paper-plane-o:before { + content: "\f1d9" +} + +.fa-history:before { + content: "\f1da" +} + +.fa-circle-thin:before { + content: "\f1db" +} + +.fa-header:before { + content: "\f1dc" +} + +.fa-paragraph:before { + content: "\f1dd" +} + +.fa-sliders:before { + content: "\f1de" +} + +.fa-share-alt:before { + content: "\f1e0" +} + +.fa-share-alt-square:before { + content: "\f1e1" +} + +.fa-bomb:before { + content: "\f1e2" +} + +.fa-soccer-ball-o:before, +.fa-futbol-o:before { + content: "\f1e3" +} + +.fa-tty:before { + content: "\f1e4" +} + +.fa-binoculars:before { + content: "\f1e5" +} + +.fa-plug:before { + content: "\f1e6" +} + +.fa-slideshare:before { + content: "\f1e7" +} + +.fa-twitch:before { + content: "\f1e8" +} + +.fa-yelp:before { + content: "\f1e9" +} + +.fa-newspaper-o:before { + content: "\f1ea" +} + +.fa-wifi:before { + content: "\f1eb" +} + +.fa-calculator:before { + content: "\f1ec" +} + +.fa-paypal:before { + content: "\f1ed" +} + +.fa-google-wallet:before { + content: "\f1ee" +} + +.fa-cc-visa:before { + content: "\f1f0" +} + +.fa-cc-mastercard:before { + content: "\f1f1" +} + +.fa-cc-discover:before { + content: "\f1f2" +} + +.fa-cc-amex:before { + content: "\f1f3" +} + +.fa-cc-paypal:before { + content: "\f1f4" +} + +.fa-cc-stripe:before { + content: "\f1f5" +} + +.fa-bell-slash:before { + content: "\f1f6" +} + +.fa-bell-slash-o:before { + content: "\f1f7" +} + +.fa-trash:before { + content: "\f1f8" +} + +.fa-copyright:before { + content: "\f1f9" +} + +.fa-at:before { + content: "\f1fa" +} + +.fa-eyedropper:before { + content: "\f1fb" +} + +.fa-paint-brush:before { + content: "\f1fc" +} + +.fa-birthday-cake:before { + content: "\f1fd" +} + +.fa-area-chart:before { + content: "\f1fe" +} + +.fa-pie-chart:before { + content: "\f200" +} + +.fa-line-chart:before { + content: "\f201" +} + +.fa-lastfm:before { + content: "\f202" +} + +.fa-lastfm-square:before { + content: "\f203" +} + +.fa-toggle-off:before { + content: "\f204" +} + +.fa-toggle-on:before { + content: "\f205" +} + +.fa-bicycle:before { + content: "\f206" +} + +.fa-bus:before { + content: "\f207" +} + +.fa-ioxhost:before { + content: "\f208" +} + +.fa-angellist:before { + content: "\f209" +} + +.fa-cc:before { + content: "\f20a" +} + +.fa-shekel:before, +.fa-sheqel:before, +.fa-ils:before { + content: "\f20b" +} + +.fa-meanpath:before { + content: "\f20c" +} + +.fa-buysellads:before { + content: "\f20d" +} + +.fa-connectdevelop:before { + content: "\f20e" +} + +.fa-dashcube:before { + content: "\f210" +} + +.fa-forumbee:before { + content: "\f211" +} + +.fa-leanpub:before { + content: "\f212" +} + +.fa-sellsy:before { + content: "\f213" +} + +.fa-shirtsinbulk:before { + content: "\f214" +} + +.fa-simplybuilt:before { + content: "\f215" +} + +.fa-skyatlas:before { + content: "\f216" +} + +.fa-cart-plus:before { + content: "\f217" +} + +.fa-cart-arrow-down:before { + content: "\f218" +} + +.fa-diamond:before { + content: "\f219" +} + +.fa-ship:before { + content: "\f21a" +} + +.fa-user-secret:before { + content: "\f21b" +} + +.fa-motorcycle:before { + content: "\f21c" +} + +.fa-street-view:before { + content: "\f21d" +} + +.fa-heartbeat:before { + content: "\f21e" +} + +.fa-venus:before { + content: "\f221" +} + +.fa-mars:before { + content: "\f222" +} + +.fa-mercury:before { + content: "\f223" +} + +.fa-intersex:before, +.fa-transgender:before { + content: "\f224" +} + +.fa-transgender-alt:before { + content: "\f225" +} + +.fa-venus-double:before { + content: "\f226" +} + +.fa-mars-double:before { + content: "\f227" +} + +.fa-venus-mars:before { + content: "\f228" +} + +.fa-mars-stroke:before { + content: "\f229" +} + +.fa-mars-stroke-v:before { + content: "\f22a" +} + +.fa-mars-stroke-h:before { + content: "\f22b" +} + +.fa-neuter:before { + content: "\f22c" +} + +.fa-genderless:before { + content: "\f22d" +} + +.fa-facebook-official:before { + content: "\f230" +} + +.fa-pinterest-p:before { + content: "\f231" +} + +.fa-whatsapp:before { + content: "\f232" +} + +.fa-server:before { + content: "\f233" +} + +.fa-user-plus:before { + content: "\f234" +} + +.fa-user-times:before { + content: "\f235" +} + +.fa-hotel:before, +.fa-bed:before { + content: "\f236" +} + +.fa-viacoin:before { + content: "\f237" +} + +.fa-train:before { + content: "\f238" +} + +.fa-subway:before { + content: "\f239" +} + +.fa-medium:before { + content: "\f23a" +} + +.fa-yc:before, +.fa-y-combinator:before { + content: "\f23b" +} + +.fa-optin-monster:before { + content: "\f23c" +} + +.fa-opencart:before { + content: "\f23d" +} + +.fa-expeditedssl:before { + content: "\f23e" +} + +.fa-battery-4:before, +.fa-battery:before, +.fa-battery-full:before { + content: "\f240" +} + +.fa-battery-3:before, +.fa-battery-three-quarters:before { + content: "\f241" +} + +.fa-battery-2:before, +.fa-battery-half:before { + content: "\f242" +} + +.fa-battery-1:before, +.fa-battery-quarter:before { + content: "\f243" +} + +.fa-battery-0:before, +.fa-battery-empty:before { + content: "\f244" +} + +.fa-mouse-pointer:before { + content: "\f245" +} + +.fa-i-cursor:before { + content: "\f246" +} + +.fa-object-group:before { + content: "\f247" +} + +.fa-object-ungroup:before { + content: "\f248" +} + +.fa-sticky-note:before { + content: "\f249" +} + +.fa-sticky-note-o:before { + content: "\f24a" +} + +.fa-cc-jcb:before { + content: "\f24b" +} + +.fa-cc-diners-club:before { + content: "\f24c" +} + +.fa-clone:before { + content: "\f24d" +} + +.fa-balance-scale:before { + content: "\f24e" +} + +.fa-hourglass-o:before { + content: "\f250" +} + +.fa-hourglass-1:before, +.fa-hourglass-start:before { + content: "\f251" +} + +.fa-hourglass-2:before, +.fa-hourglass-half:before { + content: "\f252" +} + +.fa-hourglass-3:before, +.fa-hourglass-end:before { + content: "\f253" +} + +.fa-hourglass:before { + content: "\f254" +} + +.fa-hand-grab-o:before, +.fa-hand-rock-o:before { + content: "\f255" +} + +.fa-hand-stop-o:before, +.fa-hand-paper-o:before { + content: "\f256" +} + +.fa-hand-scissors-o:before { + content: "\f257" +} + +.fa-hand-lizard-o:before { + content: "\f258" +} + +.fa-hand-spock-o:before { + content: "\f259" +} + +.fa-hand-pointer-o:before { + content: "\f25a" +} + +.fa-hand-peace-o:before { + content: "\f25b" +} + +.fa-trademark:before { + content: "\f25c" +} + +.fa-registered:before { + content: "\f25d" +} + +.fa-creative-commons:before { + content: "\f25e" +} + +.fa-gg:before { + content: "\f260" +} + +.fa-gg-circle:before { + content: "\f261" +} + +.fa-tripadvisor:before { + content: "\f262" +} + +.fa-odnoklassniki:before { + content: "\f263" +} + +.fa-odnoklassniki-square:before { + content: "\f264" +} + +.fa-get-pocket:before { + content: "\f265" +} + +.fa-wikipedia-w:before { + content: "\f266" +} + +.fa-safari:before { + content: "\f267" +} + +.fa-chrome:before { + content: "\f268" +} + +.fa-firefox:before { + content: "\f269" +} + +.fa-opera:before { + content: "\f26a" +} + +.fa-internet-explorer:before { + content: "\f26b" +} + +.fa-tv:before, +.fa-television:before { + content: "\f26c" +} + +.fa-contao:before { + content: "\f26d" +} + +.fa-500px:before { + content: "\f26e" +} + +.fa-amazon:before { + content: "\f270" +} + +.fa-calendar-plus-o:before { + content: "\f271" +} + +.fa-calendar-minus-o:before { + content: "\f272" +} + +.fa-calendar-times-o:before { + content: "\f273" +} + +.fa-calendar-check-o:before { + content: "\f274" +} + +.fa-industry:before { + content: "\f275" +} + +.fa-map-pin:before { + content: "\f276" +} + +.fa-map-signs:before { + content: "\f277" +} + +.fa-map-o:before { + content: "\f278" +} + +.fa-map:before { + content: "\f279" +} + +.fa-commenting:before { + content: "\f27a" +} + +.fa-commenting-o:before { + content: "\f27b" +} + +.fa-houzz:before { + content: "\f27c" +} + +.fa-vimeo:before { + content: "\f27d" +} + +.fa-black-tie:before { + content: "\f27e" +} + +.fa-fonticons:before { + content: "\f280" +} + +.fa-reddit-alien:before { + content: "\f281" +} + +.fa-edge:before { + content: "\f282" +} + +.fa-credit-card-alt:before { + content: "\f283" +} + +.fa-codiepie:before { + content: "\f284" +} + +.fa-modx:before { + content: "\f285" +} + +.fa-fort-awesome:before { + content: "\f286" +} + +.fa-usb:before { + content: "\f287" +} + +.fa-product-hunt:before { + content: "\f288" +} + +.fa-mixcloud:before { + content: "\f289" +} + +.fa-scribd:before { + content: "\f28a" +} + +.fa-pause-circle:before { + content: "\f28b" +} + +.fa-pause-circle-o:before { + content: "\f28c" +} + +.fa-stop-circle:before { + content: "\f28d" +} + +.fa-stop-circle-o:before { + content: "\f28e" +} + +.fa-shopping-bag:before { + content: "\f290" +} + +.fa-shopping-basket:before { + content: "\f291" +} + +.fa-hashtag:before { + content: "\f292" +} + +.fa-bluetooth:before { + content: "\f293" +} + +.fa-bluetooth-b:before { + content: "\f294" +} + +.fa-percent:before { + content: "\f295" +} + +.fa-gitlab:before { + content: "\f296" +} + +.fa-wpbeginner:before { + content: "\f297" +} + +.fa-wpforms:before { + content: "\f298" +} + +.fa-envira:before { + content: "\f299" +} + +.fa-universal-access:before { + content: "\f29a" +} + +.fa-wheelchair-alt:before { + content: "\f29b" +} + +.fa-question-circle-o:before { + content: "\f29c" +} + +.fa-blind:before { + content: "\f29d" +} + +.fa-audio-description:before { + content: "\f29e" +} + +.fa-volume-control-phone:before { + content: "\f2a0" +} + +.fa-braille:before { + content: "\f2a1" +} + +.fa-assistive-listening-systems:before { + content: "\f2a2" +} + +.fa-asl-interpreting:before, +.fa-american-sign-language-interpreting:before { + content: "\f2a3" +} + +.fa-deafness:before, +.fa-hard-of-hearing:before, +.fa-deaf:before { + content: "\f2a4" +} + +.fa-glide:before { + content: "\f2a5" +} + +.fa-glide-g:before { + content: "\f2a6" +} + +.fa-signing:before, +.fa-sign-language:before { + content: "\f2a7" +} + +.fa-low-vision:before { + content: "\f2a8" +} + +.fa-viadeo:before { + content: "\f2a9" +} + +.fa-viadeo-square:before { + content: "\f2aa" +} + +.fa-snapchat:before { + content: "\f2ab" +} + +.fa-snapchat-ghost:before { + content: "\f2ac" +} + +.fa-snapchat-square:before { + content: "\f2ad" +} + +.fa-pied-piper:before { + content: "\f2ae" +} + +.fa-first-order:before { + content: "\f2b0" +} + +.fa-yoast:before { + content: "\f2b1" +} + +.fa-themeisle:before { + content: "\f2b2" +} + +.fa-google-plus-circle:before, +.fa-google-plus-official:before { + content: "\f2b3" +} + +.fa-fa:before, +.fa-font-awesome:before { + content: "\f2b4" +} + +.fa-handshake-o:before { + content: "\f2b5" +} + +.fa-envelope-open:before { + content: "\f2b6" +} + +.fa-envelope-open-o:before { + content: "\f2b7" +} + +.fa-linode:before { + content: "\f2b8" +} + +.fa-address-book:before { + content: "\f2b9" +} + +.fa-address-book-o:before { + content: "\f2ba" +} + +.fa-vcard:before, +.fa-address-card:before { + content: "\f2bb" +} + +.fa-vcard-o:before, +.fa-address-card-o:before { + content: "\f2bc" +} + +.fa-user-circle:before { + content: "\f2bd" +} + +.fa-user-circle-o:before { + content: "\f2be" +} + +.fa-user-o:before { + content: "\f2c0" +} + +.fa-id-badge:before { + content: "\f2c1" +} + +.fa-drivers-license:before, +.fa-id-card:before { + content: "\f2c2" +} + +.fa-drivers-license-o:before, +.fa-id-card-o:before { + content: "\f2c3" +} + +.fa-quora:before { + content: "\f2c4" +} + +.fa-free-code-camp:before { + content: "\f2c5" +} + +.fa-telegram:before { + content: "\f2c6" +} + +.fa-thermometer-4:before, +.fa-thermometer:before, +.fa-thermometer-full:before { + content: "\f2c7" +} + +.fa-thermometer-3:before, +.fa-thermometer-three-quarters:before { + content: "\f2c8" +} + +.fa-thermometer-2:before, +.fa-thermometer-half:before { + content: "\f2c9" +} + +.fa-thermometer-1:before, +.fa-thermometer-quarter:before { + content: "\f2ca" +} + +.fa-thermometer-0:before, +.fa-thermometer-empty:before { + content: "\f2cb" +} + +.fa-shower:before { + content: "\f2cc" +} + +.fa-bathtub:before, +.fa-s15:before, +.fa-bath:before { + content: "\f2cd" +} + +.fa-podcast:before { + content: "\f2ce" +} + +.fa-window-maximize:before { + content: "\f2d0" +} + +.fa-window-minimize:before { + content: "\f2d1" +} + +.fa-window-restore:before { + content: "\f2d2" +} + +.fa-times-rectangle:before, +.fa-window-close:before { + content: "\f2d3" +} + +.fa-times-rectangle-o:before, +.fa-window-close-o:before { + content: "\f2d4" +} + +.fa-bandcamp:before { + content: "\f2d5" +} + +.fa-grav:before { + content: "\f2d6" +} + +.fa-etsy:before { + content: "\f2d7" +} + +.fa-imdb:before { + content: "\f2d8" +} + +.fa-ravelry:before { + content: "\f2d9" +} + +.fa-eercast:before { + content: "\f2da" +} + +.fa-microchip:before { + content: "\f2db" +} + +.fa-snowflake-o:before { + content: "\f2dc" +} + +.fa-superpowers:before { + content: "\f2dd" +} + +.fa-wpexplorer:before { + content: "\f2de" +} + +.fa-meetup:before { + content: "\f2e0" +} + +.sr-only { + position: absolute; + width: 1px; + height: 1px; + padding: 0; + margin: -1px; + overflow: hidden; + clip: rect(0, 0, 0, 0); + border: 0 +} + +.sr-only-focusable:active, +.sr-only-focusable:focus { + position: static; + width: auto; + height: auto; + margin: 0; + overflow: visible; + clip: auto +} \ No newline at end of file diff --git a/static/css/style.css b/static/css/style.css index 1bdb257..abc2edf 100644 --- a/static/css/style.css +++ b/static/css/style.css @@ -569,6 +569,71 @@ header p { -webkit-overflow-scrolling: touch; /* iOS平滑滚动 */ } +/* 列宽调节样式 */ +.resizable-table { + width: 100%; + table-layout: auto; + border-collapse: collapse; + overflow: hidden; +} + +.resizable-table th { + position: relative; + padding: 0.75rem 1rem; + background-color: #f8f9fa; + font-weight: 600; + color: #2c3e50; + border-bottom: 1px solid #e9ecef; + cursor: pointer; + user-select: none; + overflow: hidden; + white-space: nowrap; + text-overflow: ellipsis; + min-width: 50px; +} + +.resizable-table th::after { + content: ''; + position: absolute; + top: 0; + right: 0; + width: 10px; + height: 100%; + cursor: col-resize; + background: transparent; + z-index: 10; + margin-right: -10px; +} + +.resizable-table th:hover::after { + background: rgba(59, 130, 246, 0.3); +} + +.resizable-table th.dragging { + cursor: col-resize; +} + +.resizable-table th.dragging::after { + background: rgba(59, 130, 246, 0.6); +} + +.resizable-table td { + padding: 0.75rem 1rem; + text-align: left; + border-bottom: 1px solid #e9ecef; + word-break: break-word; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; + min-width: 50px; +} + +/* 确保表格容器正确显示 */ +.overflow-x-auto { + overflow-x: auto; + position: relative; +} + /* 最常屏蔽和最常解析域名表格的特殊样式 */ #top-blocked-table, #top-resolved-table { font-size: 0.85rem; @@ -881,7 +946,7 @@ tr:hover { /* 通知组件 */ .notification { position: fixed; - bottom: 20px; + top: 20px; right: 20px; background-color: #3498db; color: white; @@ -889,12 +954,7 @@ tr:hover { border-radius: 4px; box-shadow: 0 5px 15px rgba(0, 0, 0, 0.2); z-index: 1000; - transform: translateX(100%); - transition: transform 0.3s ease; -} - -.notification.show { - transform: translateX(0); + max-width: 90%; } .notification.success { @@ -1076,8 +1136,9 @@ tr:hover { /* 跟踪器浮窗样式 */ .tracker-tooltip { position: absolute; - top: -10px; + top: 50%; left: 100%; + transform: translateY(-50%); margin-left: 10px; background-color: white; border: 1px solid #e2e8f0; @@ -1085,9 +1146,15 @@ tr:hover { box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15); padding: 12px; min-width: 250px; - z-index: 50; + max-width: 350px; + z-index: 9999; font-size: 14px; color: #333; + display: none; + opacity: 0; + transition: opacity 0.2s ease-in-out, visibility 0.2s ease-in-out; + visibility: hidden; + word-wrap: break-word; /* 添加箭头 */ } @@ -1154,4 +1221,75 @@ tr:hover { .tracker-tooltip a:hover { text-decoration: underline; +} + +/* 滚动条样式优化 */ +/* 基础滚动条样式 */ +::-webkit-scrollbar { + width: 8px; + height: 8px; +} + +/* 滚动条轨道 */ +::-webkit-scrollbar-track { + background: rgba(241, 245, 249, 0.5); + border-radius: 4px; +} + +/* 滚动条滑块 */ +::-webkit-scrollbar-thumb { + background: rgba(148, 163, 184, 0.6); + border-radius: 4px; + transition: all 0.3s ease; +} + +/* 滚动条滑块悬停效果 */ +::-webkit-scrollbar-thumb:hover { + background: rgba(100, 116, 139, 0.8); +} + +/* 滚动条角落 */ +::-webkit-scrollbar-corner { + background: rgba(241, 245, 249, 0.5); + border-radius: 4px; +} + +/* 为不同滚动容器添加特定样式 */ +.sidebar::-webkit-scrollbar-thumb { + background: rgba(148, 163, 184, 0.4); +} + +.sidebar::-webkit-scrollbar-thumb:hover { + background: rgba(148, 163, 184, 0.7); +} + +/* 优化表格和卡片中的滚动条 */ +.table-wrapper::-webkit-scrollbar, +.chart-card::-webkit-scrollbar, +.stat-card::-webkit-scrollbar, +#top-blocked-table::-webkit-scrollbar, +#top-resolved-table::-webkit-scrollbar, +#top-clients-table::-webkit-scrollbar { + width: 6px; + height: 6px; +} + +.table-wrapper::-webkit-scrollbar-thumb, +.chart-card::-webkit-scrollbar-thumb, +.stat-card::-webkit-scrollbar-thumb, +#top-blocked-table::-webkit-scrollbar-thumb, +#top-resolved-table::-webkit-scrollbar-thumb, +#top-clients-table::-webkit-scrollbar-thumb { + background: rgba(148, 163, 184, 0.5); +} + +/* Firefox滚动条样式 */ +* { + scrollbar-width: thin; + scrollbar-color: rgba(148, 163, 184, 0.6) rgba(241, 245, 249, 0.5); +} + +/* 优化滚动行为 */ +* { + scroll-behavior: smooth; } \ No newline at end of file diff --git a/static/css/vendor/tailwind.css b/static/css/vendor/tailwind.css new file mode 100644 index 0000000..573c165 --- /dev/null +++ b/static/css/vendor/tailwind.css @@ -0,0 +1,83 @@ +(()=>{var qv=Object.create;var Hi=Object.defineProperty;var $v=Object.getOwnPropertyDescriptor;var Lv=Object.getOwnPropertyNames;var Mv=Object.getPrototypeOf,Nv=Object.prototype.hasOwnProperty;var df=r=>Hi(r,"__esModule",{value:!0});var hf=r=>{if(typeof require!="undefined")return require(r);throw new Error('Dynamic require of "'+r+'" is not supported')};var P=(r,e)=>()=>(r&&(e=r(r=0)),e);var x=(r,e)=>()=>(e||r((e={exports:{}}).exports,e),e.exports),Ge=(r,e)=>{df(r);for(var t in e)Hi(r,t,{get:e[t],enumerable:!0})},Bv=(r,e,t)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of Lv(e))!Nv.call(r,i)&&i!=="default"&&Hi(r,i,{get:()=>e[i],enumerable:!(t=$v(e,i))||t.enumerable});return r},pe=r=>Bv(df(Hi(r!=null?qv(Mv(r)):{},"default",r&&r.__esModule&&"default"in r?{get:()=>r.default,enumerable:!0}:{value:r,enumerable:!0})),r);var m,u=P(()=>{m={platform:"",env:{},versions:{node:"14.17.6"}}});var Fv,be,ft=P(()=>{u();Fv=0,be={readFileSync:r=>self[r]||"",statSync:()=>({mtimeMs:Fv++}),promises:{readFile:r=>Promise.resolve(self[r]||"")}}});var Fs=x((oP,gf)=>{u();"use strict";var mf=class{constructor(e={}){if(!(e.maxSize&&e.maxSize>0))throw new TypeError("`maxSize` must be a number greater than 0");if(typeof e.maxAge=="number"&&e.maxAge===0)throw new TypeError("`maxAge` must be a number greater than 0");this.maxSize=e.maxSize,this.maxAge=e.maxAge||1/0,this.onEviction=e.onEviction,this.cache=new Map,this.oldCache=new Map,this._size=0}_emitEvictions(e){if(typeof this.onEviction=="function")for(let[t,i]of e)this.onEviction(t,i.value)}_deleteIfExpired(e,t){return typeof t.expiry=="number"&&t.expiry<=Date.now()?(typeof this.onEviction=="function"&&this.onEviction(e,t.value),this.delete(e)):!1}_getOrDeleteIfExpired(e,t){if(this._deleteIfExpired(e,t)===!1)return t.value}_getItemValue(e,t){return t.expiry?this._getOrDeleteIfExpired(e,t):t.value}_peek(e,t){let i=t.get(e);return this._getItemValue(e,i)}_set(e,t){this.cache.set(e,t),this._size++,this._size>=this.maxSize&&(this._size=0,this._emitEvictions(this.oldCache),this.oldCache=this.cache,this.cache=new Map)}_moveToRecent(e,t){this.oldCache.delete(e),this._set(e,t)}*_entriesAscending(){for(let e of this.oldCache){let[t,i]=e;this.cache.has(t)||this._deleteIfExpired(t,i)===!1&&(yield e)}for(let e of this.cache){let[t,i]=e;this._deleteIfExpired(t,i)===!1&&(yield e)}}get(e){if(this.cache.has(e)){let t=this.cache.get(e);return this._getItemValue(e,t)}if(this.oldCache.has(e)){let t=this.oldCache.get(e);if(this._deleteIfExpired(e,t)===!1)return this._moveToRecent(e,t),t.value}}set(e,t,{maxAge:i=this.maxAge===1/0?void 0:Date.now()+this.maxAge}={}){this.cache.has(e)?this.cache.set(e,{value:t,maxAge:i}):this._set(e,{value:t,expiry:i})}has(e){return this.cache.has(e)?!this._deleteIfExpired(e,this.cache.get(e)):this.oldCache.has(e)?!this._deleteIfExpired(e,this.oldCache.get(e)):!1}peek(e){if(this.cache.has(e))return this._peek(e,this.cache);if(this.oldCache.has(e))return this._peek(e,this.oldCache)}delete(e){let t=this.cache.delete(e);return t&&this._size--,this.oldCache.delete(e)||t}clear(){this.cache.clear(),this.oldCache.clear(),this._size=0}resize(e){if(!(e&&e>0))throw new TypeError("`maxSize` must be a number greater than 0");let t=[...this._entriesAscending()],i=t.length-e;i<0?(this.cache=new Map(t),this.oldCache=new Map,this._size=t.length):(i>0&&this._emitEvictions(t.slice(0,i)),this.oldCache=new Map(t.slice(i)),this.cache=new Map,this._size=0),this.maxSize=e}*keys(){for(let[e]of this)yield e}*values(){for(let[,e]of this)yield e}*[Symbol.iterator](){for(let e of this.cache){let[t,i]=e;this._deleteIfExpired(t,i)===!1&&(yield[t,i.value])}for(let e of this.oldCache){let[t,i]=e;this.cache.has(t)||this._deleteIfExpired(t,i)===!1&&(yield[t,i.value])}}*entriesDescending(){let e=[...this.cache];for(let t=e.length-1;t>=0;--t){let i=e[t],[n,s]=i;this._deleteIfExpired(n,s)===!1&&(yield[n,s.value])}e=[...this.oldCache];for(let t=e.length-1;t>=0;--t){let i=e[t],[n,s]=i;this.cache.has(n)||this._deleteIfExpired(n,s)===!1&&(yield[n,s.value])}}*entriesAscending(){for(let[e,t]of this._entriesAscending())yield[e,t.value]}get size(){if(!this._size)return this.oldCache.size;let e=0;for(let t of this.oldCache.keys())this.cache.has(t)||e++;return Math.min(this._size+e,this.maxSize)}};gf.exports=mf});var yf,bf=P(()=>{u();yf=r=>r&&r._hash});function Wi(r){return yf(r,{ignoreUnknown:!0})}var wf=P(()=>{u();bf()});function xt(r){if(r=`${r}`,r==="0")return"0";if(/^[+-]?(\d+|\d*\.\d+)(e[+-]?\d+)?(%|\w+)?$/.test(r))return r.replace(/^[+-]?/,t=>t==="-"?"":"-");let e=["var","calc","min","max","clamp"];for(let t of e)if(r.includes(`${t}(`))return`calc(${r} * -1)`}var Gi=P(()=>{u()});var vf,xf=P(()=>{u();vf=["preflight","container","accessibility","pointerEvents","visibility","position","inset","isolation","zIndex","order","gridColumn","gridColumnStart","gridColumnEnd","gridRow","gridRowStart","gridRowEnd","float","clear","margin","boxSizing","lineClamp","display","aspectRatio","size","height","maxHeight","minHeight","width","minWidth","maxWidth","flex","flexShrink","flexGrow","flexBasis","tableLayout","captionSide","borderCollapse","borderSpacing","transformOrigin","translate","rotate","skew","scale","transform","animation","cursor","touchAction","userSelect","resize","scrollSnapType","scrollSnapAlign","scrollSnapStop","scrollMargin","scrollPadding","listStylePosition","listStyleType","listStyleImage","appearance","columns","breakBefore","breakInside","breakAfter","gridAutoColumns","gridAutoFlow","gridAutoRows","gridTemplateColumns","gridTemplateRows","flexDirection","flexWrap","placeContent","placeItems","alignContent","alignItems","justifyContent","justifyItems","gap","space","divideWidth","divideStyle","divideColor","divideOpacity","placeSelf","alignSelf","justifySelf","overflow","overscrollBehavior","scrollBehavior","textOverflow","hyphens","whitespace","textWrap","wordBreak","borderRadius","borderWidth","borderStyle","borderColor","borderOpacity","backgroundColor","backgroundOpacity","backgroundImage","gradientColorStops","boxDecorationBreak","backgroundSize","backgroundAttachment","backgroundClip","backgroundPosition","backgroundRepeat","backgroundOrigin","fill","stroke","strokeWidth","objectFit","objectPosition","padding","textAlign","textIndent","verticalAlign","fontFamily","fontSize","fontWeight","textTransform","fontStyle","fontVariantNumeric","lineHeight","letterSpacing","textColor","textOpacity","textDecoration","textDecorationColor","textDecorationStyle","textDecorationThickness","textUnderlineOffset","fontSmoothing","placeholderColor","placeholderOpacity","caretColor","accentColor","opacity","backgroundBlendMode","mixBlendMode","boxShadow","boxShadowColor","outlineStyle","outlineWidth","outlineOffset","outlineColor","ringWidth","ringColor","ringOpacity","ringOffsetWidth","ringOffsetColor","blur","brightness","contrast","dropShadow","grayscale","hueRotate","invert","saturate","sepia","filter","backdropBlur","backdropBrightness","backdropContrast","backdropGrayscale","backdropHueRotate","backdropInvert","backdropOpacity","backdropSaturate","backdropSepia","backdropFilter","transitionProperty","transitionDelay","transitionDuration","transitionTimingFunction","willChange","contain","content","forcedColorAdjust"]});function kf(r,e){return r===void 0?e:Array.isArray(r)?r:[...new Set(e.filter(i=>r!==!1&&r[i]!==!1).concat(Object.keys(r).filter(i=>r[i]!==!1)))]}var Sf=P(()=>{u()});var Af={};Ge(Af,{default:()=>Qe});var Qe,Qi=P(()=>{u();Qe=new Proxy({},{get:()=>String})});function js(r,e,t){typeof m!="undefined"&&m.env.JEST_WORKER_ID||t&&Cf.has(t)||(t&&Cf.add(t),console.warn(""),e.forEach(i=>console.warn(r,"-",i)))}function zs(r){return Qe.dim(r)}var Cf,G,Be=P(()=>{u();Qi();Cf=new Set;G={info(r,e){js(Qe.bold(Qe.cyan("info")),...Array.isArray(r)?[r]:[e,r])},warn(r,e){["content-problems"].includes(r)||js(Qe.bold(Qe.yellow("warn")),...Array.isArray(r)?[r]:[e,r])},risk(r,e){js(Qe.bold(Qe.magenta("risk")),...Array.isArray(r)?[r]:[e,r])}}});var _f={};Ge(_f,{default:()=>Us});function qr({version:r,from:e,to:t}){G.warn(`${e}-color-renamed`,[`As of Tailwind CSS ${r}, \`${e}\` has been renamed to \`${t}\`.`,"Update your configuration file to silence this warning."])}var Us,Vs=P(()=>{u();Be();Us={inherit:"inherit",current:"currentColor",transparent:"transparent",black:"#000",white:"#fff",slate:{50:"#f8fafc",100:"#f1f5f9",200:"#e2e8f0",300:"#cbd5e1",400:"#94a3b8",500:"#64748b",600:"#475569",700:"#334155",800:"#1e293b",900:"#0f172a",950:"#020617"},gray:{50:"#f9fafb",100:"#f3f4f6",200:"#e5e7eb",300:"#d1d5db",400:"#9ca3af",500:"#6b7280",600:"#4b5563",700:"#374151",800:"#1f2937",900:"#111827",950:"#030712"},zinc:{50:"#fafafa",100:"#f4f4f5",200:"#e4e4e7",300:"#d4d4d8",400:"#a1a1aa",500:"#71717a",600:"#52525b",700:"#3f3f46",800:"#27272a",900:"#18181b",950:"#09090b"},neutral:{50:"#fafafa",100:"#f5f5f5",200:"#e5e5e5",300:"#d4d4d4",400:"#a3a3a3",500:"#737373",600:"#525252",700:"#404040",800:"#262626",900:"#171717",950:"#0a0a0a"},stone:{50:"#fafaf9",100:"#f5f5f4",200:"#e7e5e4",300:"#d6d3d1",400:"#a8a29e",500:"#78716c",600:"#57534e",700:"#44403c",800:"#292524",900:"#1c1917",950:"#0c0a09"},red:{50:"#fef2f2",100:"#fee2e2",200:"#fecaca",300:"#fca5a5",400:"#f87171",500:"#ef4444",600:"#dc2626",700:"#b91c1c",800:"#991b1b",900:"#7f1d1d",950:"#450a0a"},orange:{50:"#fff7ed",100:"#ffedd5",200:"#fed7aa",300:"#fdba74",400:"#fb923c",500:"#f97316",600:"#ea580c",700:"#c2410c",800:"#9a3412",900:"#7c2d12",950:"#431407"},amber:{50:"#fffbeb",100:"#fef3c7",200:"#fde68a",300:"#fcd34d",400:"#fbbf24",500:"#f59e0b",600:"#d97706",700:"#b45309",800:"#92400e",900:"#78350f",950:"#451a03"},yellow:{50:"#fefce8",100:"#fef9c3",200:"#fef08a",300:"#fde047",400:"#facc15",500:"#eab308",600:"#ca8a04",700:"#a16207",800:"#854d0e",900:"#713f12",950:"#422006"},lime:{50:"#f7fee7",100:"#ecfccb",200:"#d9f99d",300:"#bef264",400:"#a3e635",500:"#84cc16",600:"#65a30d",700:"#4d7c0f",800:"#3f6212",900:"#365314",950:"#1a2e05"},green:{50:"#f0fdf4",100:"#dcfce7",200:"#bbf7d0",300:"#86efac",400:"#4ade80",500:"#22c55e",600:"#16a34a",700:"#15803d",800:"#166534",900:"#14532d",950:"#052e16"},emerald:{50:"#ecfdf5",100:"#d1fae5",200:"#a7f3d0",300:"#6ee7b7",400:"#34d399",500:"#10b981",600:"#059669",700:"#047857",800:"#065f46",900:"#064e3b",950:"#022c22"},teal:{50:"#f0fdfa",100:"#ccfbf1",200:"#99f6e4",300:"#5eead4",400:"#2dd4bf",500:"#14b8a6",600:"#0d9488",700:"#0f766e",800:"#115e59",900:"#134e4a",950:"#042f2e"},cyan:{50:"#ecfeff",100:"#cffafe",200:"#a5f3fc",300:"#67e8f9",400:"#22d3ee",500:"#06b6d4",600:"#0891b2",700:"#0e7490",800:"#155e75",900:"#164e63",950:"#083344"},sky:{50:"#f0f9ff",100:"#e0f2fe",200:"#bae6fd",300:"#7dd3fc",400:"#38bdf8",500:"#0ea5e9",600:"#0284c7",700:"#0369a1",800:"#075985",900:"#0c4a6e",950:"#082f49"},blue:{50:"#eff6ff",100:"#dbeafe",200:"#bfdbfe",300:"#93c5fd",400:"#60a5fa",500:"#3b82f6",600:"#2563eb",700:"#1d4ed8",800:"#1e40af",900:"#1e3a8a",950:"#172554"},indigo:{50:"#eef2ff",100:"#e0e7ff",200:"#c7d2fe",300:"#a5b4fc",400:"#818cf8",500:"#6366f1",600:"#4f46e5",700:"#4338ca",800:"#3730a3",900:"#312e81",950:"#1e1b4b"},violet:{50:"#f5f3ff",100:"#ede9fe",200:"#ddd6fe",300:"#c4b5fd",400:"#a78bfa",500:"#8b5cf6",600:"#7c3aed",700:"#6d28d9",800:"#5b21b6",900:"#4c1d95",950:"#2e1065"},purple:{50:"#faf5ff",100:"#f3e8ff",200:"#e9d5ff",300:"#d8b4fe",400:"#c084fc",500:"#a855f7",600:"#9333ea",700:"#7e22ce",800:"#6b21a8",900:"#581c87",950:"#3b0764"},fuchsia:{50:"#fdf4ff",100:"#fae8ff",200:"#f5d0fe",300:"#f0abfc",400:"#e879f9",500:"#d946ef",600:"#c026d3",700:"#a21caf",800:"#86198f",900:"#701a75",950:"#4a044e"},pink:{50:"#fdf2f8",100:"#fce7f3",200:"#fbcfe8",300:"#f9a8d4",400:"#f472b6",500:"#ec4899",600:"#db2777",700:"#be185d",800:"#9d174d",900:"#831843",950:"#500724"},rose:{50:"#fff1f2",100:"#ffe4e6",200:"#fecdd3",300:"#fda4af",400:"#fb7185",500:"#f43f5e",600:"#e11d48",700:"#be123c",800:"#9f1239",900:"#881337",950:"#4c0519"},get lightBlue(){return qr({version:"v2.2",from:"lightBlue",to:"sky"}),this.sky},get warmGray(){return qr({version:"v3.0",from:"warmGray",to:"stone"}),this.stone},get trueGray(){return qr({version:"v3.0",from:"trueGray",to:"neutral"}),this.neutral},get coolGray(){return qr({version:"v3.0",from:"coolGray",to:"gray"}),this.gray},get blueGray(){return qr({version:"v3.0",from:"blueGray",to:"slate"}),this.slate}}});function Hs(r,...e){for(let t of e){for(let i in t)r?.hasOwnProperty?.(i)||(r[i]=t[i]);for(let i of Object.getOwnPropertySymbols(t))r?.hasOwnProperty?.(i)||(r[i]=t[i])}return r}var Ef=P(()=>{u()});function kt(r){if(Array.isArray(r))return r;let e=r.split("[").length-1,t=r.split("]").length-1;if(e!==t)throw new Error(`Path is invalid. Has unbalanced brackets: ${r}`);return r.split(/\.(?![^\[]*\])|[\[\]]/g).filter(Boolean)}var Yi=P(()=>{u()});function we(r,e){return Ki.future.includes(e)?r.future==="all"||(r?.future?.[e]??Of[e]??!1):Ki.experimental.includes(e)?r.experimental==="all"||(r?.experimental?.[e]??Of[e]??!1):!1}function Tf(r){return r.experimental==="all"?Ki.experimental:Object.keys(r?.experimental??{}).filter(e=>Ki.experimental.includes(e)&&r.experimental[e])}function Rf(r){if(m.env.JEST_WORKER_ID===void 0&&Tf(r).length>0){let e=Tf(r).map(t=>Qe.yellow(t)).join(", ");G.warn("experimental-flags-enabled",[`You have enabled experimental features: ${e}`,"Experimental features in Tailwind CSS are not covered by semver, may introduce breaking changes, and can change at any time."])}}var Of,Ki,ct=P(()=>{u();Qi();Be();Of={optimizeUniversalDefaults:!1,generalizedModifiers:!0,disableColorOpacityUtilitiesByDefault:!1,relativeContentPathsByDefault:!1},Ki={future:["hoverOnlyWhenSupported","respectDefaultRingColorOpacity","disableColorOpacityUtilitiesByDefault","relativeContentPathsByDefault"],experimental:["optimizeUniversalDefaults","generalizedModifiers"]}});function Pf(r){(()=>{if(r.purge||!r.content||!Array.isArray(r.content)&&!(typeof r.content=="object"&&r.content!==null))return!1;if(Array.isArray(r.content))return r.content.every(t=>typeof t=="string"?!0:!(typeof t?.raw!="string"||t?.extension&&typeof t?.extension!="string"));if(typeof r.content=="object"&&r.content!==null){if(Object.keys(r.content).some(t=>!["files","relative","extract","transform"].includes(t)))return!1;if(Array.isArray(r.content.files)){if(!r.content.files.every(t=>typeof t=="string"?!0:!(typeof t?.raw!="string"||t?.extension&&typeof t?.extension!="string")))return!1;if(typeof r.content.extract=="object"){for(let t of Object.values(r.content.extract))if(typeof t!="function")return!1}else if(!(r.content.extract===void 0||typeof r.content.extract=="function"))return!1;if(typeof r.content.transform=="object"){for(let t of Object.values(r.content.transform))if(typeof t!="function")return!1}else if(!(r.content.transform===void 0||typeof r.content.transform=="function"))return!1;if(typeof r.content.relative!="boolean"&&typeof r.content.relative!="undefined")return!1}return!0}return!1})()||G.warn("purge-deprecation",["The `purge`/`content` options have changed in Tailwind CSS v3.0.","Update your configuration file to eliminate this warning.","https://tailwindcss.com/docs/upgrade-guide#configure-content-sources"]),r.safelist=(()=>{let{content:t,purge:i,safelist:n}=r;return Array.isArray(n)?n:Array.isArray(t?.safelist)?t.safelist:Array.isArray(i?.safelist)?i.safelist:Array.isArray(i?.options?.safelist)?i.options.safelist:[]})(),r.blocklist=(()=>{let{blocklist:t}=r;if(Array.isArray(t)){if(t.every(i=>typeof i=="string"))return t;G.warn("blocklist-invalid",["The `blocklist` option must be an array of strings.","https://tailwindcss.com/docs/content-configuration#discarding-classes"])}return[]})(),typeof r.prefix=="function"?(G.warn("prefix-function",["As of Tailwind CSS v3.0, `prefix` cannot be a function.","Update `prefix` in your configuration to be a string to eliminate this warning.","https://tailwindcss.com/docs/upgrade-guide#prefix-cannot-be-a-function"]),r.prefix=""):r.prefix=r.prefix??"",r.content={relative:(()=>{let{content:t}=r;return t?.relative?t.relative:we(r,"relativeContentPathsByDefault")})(),files:(()=>{let{content:t,purge:i}=r;return Array.isArray(i)?i:Array.isArray(i?.content)?i.content:Array.isArray(t)?t:Array.isArray(t?.content)?t.content:Array.isArray(t?.files)?t.files:[]})(),extract:(()=>{let t=(()=>r.purge?.extract?r.purge.extract:r.content?.extract?r.content.extract:r.purge?.extract?.DEFAULT?r.purge.extract.DEFAULT:r.content?.extract?.DEFAULT?r.content.extract.DEFAULT:r.purge?.options?.extractors?r.purge.options.extractors:r.content?.options?.extractors?r.content.options.extractors:{})(),i={},n=(()=>{if(r.purge?.options?.defaultExtractor)return r.purge.options.defaultExtractor;if(r.content?.options?.defaultExtractor)return r.content.options.defaultExtractor})();if(n!==void 0&&(i.DEFAULT=n),typeof t=="function")i.DEFAULT=t;else if(Array.isArray(t))for(let{extensions:s,extractor:a}of t??[])for(let o of s)i[o]=a;else typeof t=="object"&&t!==null&&Object.assign(i,t);return i})(),transform:(()=>{let t=(()=>r.purge?.transform?r.purge.transform:r.content?.transform?r.content.transform:r.purge?.transform?.DEFAULT?r.purge.transform.DEFAULT:r.content?.transform?.DEFAULT?r.content.transform.DEFAULT:{})(),i={};return typeof t=="function"?i.DEFAULT=t:typeof t=="object"&&t!==null&&Object.assign(i,t),i})()};for(let t of r.content.files)if(typeof t=="string"&&/{([^,]*?)}/g.test(t)){G.warn("invalid-glob-braces",[`The glob pattern ${zs(t)} in your Tailwind CSS configuration is invalid.`,`Update it to ${zs(t.replace(/{([^,]*?)}/g,"$1"))} to silence this warning.`]);break}return r}var If=P(()=>{u();ct();Be()});function ke(r){if(Object.prototype.toString.call(r)!=="[object Object]")return!1;let e=Object.getPrototypeOf(r);return e===null||Object.getPrototypeOf(e)===null}var Kt=P(()=>{u()});function St(r){return Array.isArray(r)?r.map(e=>St(e)):typeof r=="object"&&r!==null?Object.fromEntries(Object.entries(r).map(([e,t])=>[e,St(t)])):r}var Xi=P(()=>{u()});function jt(r){return r.replace(/\\,/g,"\\2c ")}var Zi=P(()=>{u()});var Ws,Df=P(()=>{u();Ws={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]}});function $r(r,{loose:e=!1}={}){if(typeof r!="string")return null;if(r=r.trim(),r==="transparent")return{mode:"rgb",color:["0","0","0"],alpha:"0"};if(r in Ws)return{mode:"rgb",color:Ws[r].map(s=>s.toString())};let t=r.replace(zv,(s,a,o,l,c)=>["#",a,a,o,o,l,l,c?c+c:""].join("")).match(jv);if(t!==null)return{mode:"rgb",color:[parseInt(t[1],16),parseInt(t[2],16),parseInt(t[3],16)].map(s=>s.toString()),alpha:t[4]?(parseInt(t[4],16)/255).toString():void 0};let i=r.match(Uv)??r.match(Vv);if(i===null)return null;let n=[i[2],i[3],i[4]].filter(Boolean).map(s=>s.toString());return n.length===2&&n[0].startsWith("var(")?{mode:i[1],color:[n[0]],alpha:n[1]}:!e&&n.length!==3||n.length<3&&!n.some(s=>/^var\(.*?\)$/.test(s))?null:{mode:i[1],color:n,alpha:i[5]?.toString?.()}}function Gs({mode:r,color:e,alpha:t}){let i=t!==void 0;return r==="rgba"||r==="hsla"?`${r}(${e.join(", ")}${i?`, ${t}`:""})`:`${r}(${e.join(" ")}${i?` / ${t}`:""})`}var jv,zv,At,Ji,qf,Ct,Uv,Vv,Qs=P(()=>{u();Df();jv=/^#([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})?$/i,zv=/^#([a-f\d])([a-f\d])([a-f\d])([a-f\d])?$/i,At=/(?:\d+|\d*\.\d+)%?/,Ji=/(?:\s*,\s*|\s+)/,qf=/\s*[,/]\s*/,Ct=/var\(--(?:[^ )]*?)(?:,(?:[^ )]*?|var\(--[^ )]*?\)))?\)/,Uv=new RegExp(`^(rgba?)\\(\\s*(${At.source}|${Ct.source})(?:${Ji.source}(${At.source}|${Ct.source}))?(?:${Ji.source}(${At.source}|${Ct.source}))?(?:${qf.source}(${At.source}|${Ct.source}))?\\s*\\)$`),Vv=new RegExp(`^(hsla?)\\(\\s*((?:${At.source})(?:deg|rad|grad|turn)?|${Ct.source})(?:${Ji.source}(${At.source}|${Ct.source}))?(?:${Ji.source}(${At.source}|${Ct.source}))?(?:${qf.source}(${At.source}|${Ct.source}))?\\s*\\)$`)});function Je(r,e,t){if(typeof r=="function")return r({opacityValue:e});let i=$r(r,{loose:!0});return i===null?t:Gs({...i,alpha:e})}function Ae({color:r,property:e,variable:t}){let i=[].concat(e);if(typeof r=="function")return{[t]:"1",...Object.fromEntries(i.map(s=>[s,r({opacityVariable:t,opacityValue:`var(${t}, 1)`})]))};let n=$r(r);return n===null?Object.fromEntries(i.map(s=>[s,r])):n.alpha!==void 0?Object.fromEntries(i.map(s=>[s,r])):{[t]:"1",...Object.fromEntries(i.map(s=>[s,Gs({...n,alpha:`var(${t}, 1)`})]))}}var Lr=P(()=>{u();Qs()});function ve(r,e){let t=[],i=[],n=0,s=!1;for(let a=0;a{u()});function en(r){return ve(r,",").map(t=>{let i=t.trim(),n={raw:i},s=i.split(Wv),a=new Set;for(let o of s)$f.lastIndex=0,!a.has("KEYWORD")&&Hv.has(o)?(n.keyword=o,a.add("KEYWORD")):$f.test(o)?a.has("X")?a.has("Y")?a.has("BLUR")?a.has("SPREAD")||(n.spread=o,a.add("SPREAD")):(n.blur=o,a.add("BLUR")):(n.y=o,a.add("Y")):(n.x=o,a.add("X")):n.color?(n.unknown||(n.unknown=[]),n.unknown.push(o)):n.color=o;return n.valid=n.x!==void 0&&n.y!==void 0,n})}function Lf(r){return r.map(e=>e.valid?[e.keyword,e.x,e.y,e.blur,e.spread,e.color].filter(Boolean).join(" "):e.raw).join(", ")}var Hv,Wv,$f,Ys=P(()=>{u();zt();Hv=new Set(["inset","inherit","initial","revert","unset"]),Wv=/\ +(?![^(]*\))/g,$f=/^-?(\d+|\.\d+)(.*?)$/g});function Ks(r){return Gv.some(e=>new RegExp(`^${e}\\(.*\\)`).test(r))}function K(r,e=null,t=!0){let i=e&&Qv.has(e.property);return r.startsWith("--")&&!i?`var(${r})`:r.includes("url(")?r.split(/(url\(.*?\))/g).filter(Boolean).map(n=>/^url\(.*?\)$/.test(n)?n:K(n,e,!1)).join(""):(r=r.replace(/([^\\])_+/g,(n,s)=>s+" ".repeat(n.length-1)).replace(/^_/g," ").replace(/\\_/g,"_"),t&&(r=r.trim()),r=Yv(r),r)}function Ye(r){return r.includes("=")&&(r=r.replace(/(=.*)/g,(e,t)=>{if(t[1]==="'"||t[1]==='"')return t;if(t.length>2){let i=t[t.length-1];if(t[t.length-2]===" "&&(i==="i"||i==="I"||i==="s"||i==="S"))return`="${t.slice(1,-2)}" ${t[t.length-1]}`}return`="${t.slice(1)}"`})),r}function Yv(r){let e=["theme"],t=["min-content","max-content","fit-content","safe-area-inset-top","safe-area-inset-right","safe-area-inset-bottom","safe-area-inset-left","titlebar-area-x","titlebar-area-y","titlebar-area-width","titlebar-area-height","keyboard-inset-top","keyboard-inset-right","keyboard-inset-bottom","keyboard-inset-left","keyboard-inset-width","keyboard-inset-height","radial-gradient","linear-gradient","conic-gradient","repeating-radial-gradient","repeating-linear-gradient","repeating-conic-gradient","anchor-size"];return r.replace(/(calc|min|max|clamp)\(.+\)/g,i=>{let n="";function s(){let a=n.trimEnd();return a[a.length-1]}for(let a=0;ai[a+p]===d)},l=function(f){let d=1/0;for(let h of f){let b=i.indexOf(h,a);b!==-1&&bo(f))){let f=t.find(d=>o(d));n+=f,a+=f.length-1}else e.some(f=>o(f))?n+=l([")"]):o("[")?n+=l(["]"]):["+","-","*","/"].includes(c)&&!["(","+","-","*","/",","].includes(s())?n+=` ${c} `:n+=c}return n.replace(/\s+/g," ")})}function Xs(r){return r.startsWith("url(")}function Zs(r){return!isNaN(Number(r))||Ks(r)}function Mr(r){return r.endsWith("%")&&Zs(r.slice(0,-1))||Ks(r)}function Nr(r){return r==="0"||new RegExp(`^[+-]?[0-9]*.?[0-9]+(?:[eE][+-]?[0-9]+)?${Xv}$`).test(r)||Ks(r)}function Mf(r){return Zv.has(r)}function Nf(r){let e=en(K(r));for(let t of e)if(!t.valid)return!1;return!0}function Bf(r){let e=0;return ve(r,"_").every(i=>(i=K(i),i.startsWith("var(")?!0:$r(i,{loose:!0})!==null?(e++,!0):!1))?e>0:!1}function Ff(r){let e=0;return ve(r,",").every(i=>(i=K(i),i.startsWith("var(")?!0:Xs(i)||ex(i)||["element(","image(","cross-fade(","image-set("].some(n=>i.startsWith(n))?(e++,!0):!1))?e>0:!1}function ex(r){r=K(r);for(let e of Jv)if(r.startsWith(`${e}(`))return!0;return!1}function jf(r){let e=0;return ve(r,"_").every(i=>(i=K(i),i.startsWith("var(")?!0:tx.has(i)||Nr(i)||Mr(i)?(e++,!0):!1))?e>0:!1}function zf(r){let e=0;return ve(r,",").every(i=>(i=K(i),i.startsWith("var(")?!0:i.includes(" ")&&!/(['"])([^"']+)\1/g.test(i)||/^\d/g.test(i)?!1:(e++,!0)))?e>0:!1}function Uf(r){return rx.has(r)}function Vf(r){return ix.has(r)}function Hf(r){return nx.has(r)}var Gv,Qv,Kv,Xv,Zv,Jv,tx,rx,ix,nx,Br=P(()=>{u();Qs();Ys();zt();Gv=["min","max","clamp","calc"];Qv=new Set(["scroll-timeline-name","timeline-scope","view-timeline-name","font-palette","anchor-name","anchor-scope","position-anchor","position-try-options","scroll-timeline","animation-timeline","view-timeline","position-try"]);Kv=["cm","mm","Q","in","pc","pt","px","em","ex","ch","rem","lh","rlh","vw","vh","vmin","vmax","vb","vi","svw","svh","lvw","lvh","dvw","dvh","cqw","cqh","cqi","cqb","cqmin","cqmax"],Xv=`(?:${Kv.join("|")})`;Zv=new Set(["thin","medium","thick"]);Jv=new Set(["conic-gradient","linear-gradient","radial-gradient","repeating-conic-gradient","repeating-linear-gradient","repeating-radial-gradient"]);tx=new Set(["center","top","right","bottom","left"]);rx=new Set(["serif","sans-serif","monospace","cursive","fantasy","system-ui","ui-serif","ui-sans-serif","ui-monospace","ui-rounded","math","emoji","fangsong"]);ix=new Set(["xx-small","x-small","small","medium","large","x-large","xx-large","xxx-large"]);nx=new Set(["larger","smaller"])});function Wf(r){let e=["cover","contain"];return ve(r,",").every(t=>{let i=ve(t,"_").filter(Boolean);return i.length===1&&e.includes(i[0])?!0:i.length!==1&&i.length!==2?!1:i.every(n=>Nr(n)||Mr(n)||n==="auto")})}var Gf=P(()=>{u();Br();zt()});function Qf(r,e){r.walkClasses(t=>{t.value=e(t.value),t.raws&&t.raws.value&&(t.raws.value=jt(t.raws.value))})}function Yf(r,e){if(!_t(r))return;let t=r.slice(1,-1);if(!!e(t))return K(t)}function sx(r,e={},t){let i=e[r];if(i!==void 0)return xt(i);if(_t(r)){let n=Yf(r,t);return n===void 0?void 0:xt(n)}}function tn(r,e={},{validate:t=()=>!0}={}){let i=e.values?.[r];return i!==void 0?i:e.supportsNegativeValues&&r.startsWith("-")?sx(r.slice(1),e.values,t):Yf(r,t)}function _t(r){return r.startsWith("[")&&r.endsWith("]")}function Kf(r){let e=r.lastIndexOf("/"),t=r.lastIndexOf("[",e),i=r.indexOf("]",e);return r[e-1]==="]"||r[e+1]==="["||t!==-1&&i!==-1&&t")){let e=r;return({opacityValue:t=1})=>e.replace(//g,t)}return r}function Xf(r){return K(r.slice(1,-1))}function ax(r,e={},{tailwindConfig:t={}}={}){if(e.values?.[r]!==void 0)return Xt(e.values?.[r]);let[i,n]=Kf(r);if(n!==void 0){let s=e.values?.[i]??(_t(i)?i.slice(1,-1):void 0);return s===void 0?void 0:(s=Xt(s),_t(n)?Je(s,Xf(n)):t.theme?.opacity?.[n]===void 0?void 0:Je(s,t.theme.opacity[n]))}return tn(r,e,{validate:Bf})}function ox(r,e={}){return e.values?.[r]}function qe(r){return(e,t)=>tn(e,t,{validate:r})}function lx(r,e){let t=r.indexOf(e);return t===-1?[void 0,r]:[r.slice(0,t),r.slice(t+1)]}function ea(r,e,t,i){if(t.values&&e in t.values)for(let{type:s}of r??[]){let a=Js[s](e,t,{tailwindConfig:i});if(a!==void 0)return[a,s,null]}if(_t(e)){let s=e.slice(1,-1),[a,o]=lx(s,":");if(!/^[\w-_]+$/g.test(a))o=s;else if(a!==void 0&&!Zf.includes(a))return[];if(o.length>0&&Zf.includes(a))return[tn(`[${o}]`,t),a,null]}let n=ta(r,e,t,i);for(let s of n)return s;return[]}function*ta(r,e,t,i){let n=we(i,"generalizedModifiers"),[s,a]=Kf(e);if(n&&t.modifiers!=null&&(t.modifiers==="any"||typeof t.modifiers=="object"&&(a&&_t(a)||a in t.modifiers))||(s=e,a=void 0),a!==void 0&&s===""&&(s="DEFAULT"),a!==void 0&&typeof t.modifiers=="object"){let l=t.modifiers?.[a]??null;l!==null?a=l:_t(a)&&(a=Xf(a))}for(let{type:l}of r??[]){let c=Js[l](s,t,{tailwindConfig:i});c!==void 0&&(yield[c,l,a??null])}}var Js,Zf,Fr=P(()=>{u();Zi();Lr();Br();Gi();Gf();ct();Js={any:tn,color:ax,url:qe(Xs),image:qe(Ff),length:qe(Nr),percentage:qe(Mr),position:qe(jf),lookup:ox,"generic-name":qe(Uf),"family-name":qe(zf),number:qe(Zs),"line-width":qe(Mf),"absolute-size":qe(Vf),"relative-size":qe(Hf),shadow:qe(Nf),size:qe(Wf)},Zf=Object.keys(Js)});function X(r){return typeof r=="function"?r({}):r}var ra=P(()=>{u()});function Zt(r){return typeof r=="function"}function jr(r,...e){let t=e.pop();for(let i of e)for(let n in i){let s=t(r[n],i[n]);s===void 0?ke(r[n])&&ke(i[n])?r[n]=jr({},r[n],i[n],t):r[n]=i[n]:r[n]=s}return r}function ux(r,...e){return Zt(r)?r(...e):r}function fx(r){return r.reduce((e,{extend:t})=>jr(e,t,(i,n)=>i===void 0?[n]:Array.isArray(i)?[n,...i]:[n,i]),{})}function cx(r){return{...r.reduce((e,t)=>Hs(e,t),{}),extend:fx(r)}}function Jf(r,e){if(Array.isArray(r)&&ke(r[0]))return r.concat(e);if(Array.isArray(e)&&ke(e[0])&&ke(r))return[r,...e];if(Array.isArray(e))return e}function px({extend:r,...e}){return jr(e,r,(t,i)=>!Zt(t)&&!i.some(Zt)?jr({},t,...i,Jf):(n,s)=>jr({},...[t,...i].map(a=>ux(a,n,s)),Jf))}function*dx(r){let e=kt(r);if(e.length===0||(yield e,Array.isArray(r)))return;let t=/^(.*?)\s*\/\s*([^/]+)$/,i=r.match(t);if(i!==null){let[,n,s]=i,a=kt(n);a.alpha=s,yield a}}function hx(r){let e=(t,i)=>{for(let n of dx(t)){let s=0,a=r;for(;a!=null&&s(t[i]=Zt(r[i])?r[i](e,ia):r[i],t),{})}function ec(r){let e=[];return r.forEach(t=>{e=[...e,t];let i=t?.plugins??[];i.length!==0&&i.forEach(n=>{n.__isOptionsFunction&&(n=n()),e=[...e,...ec([n?.config??{}])]})}),e}function mx(r){return[...r].reduceRight((t,i)=>Zt(i)?i({corePlugins:t}):kf(i,t),vf)}function gx(r){return[...r].reduceRight((t,i)=>[...t,...i],[])}function na(r){let e=[...ec(r),{prefix:"",important:!1,separator:":"}];return Pf(Hs({theme:hx(px(cx(e.map(t=>t?.theme??{})))),corePlugins:mx(e.map(t=>t.corePlugins)),plugins:gx(r.map(t=>t?.plugins??[]))},...e))}var ia,tc=P(()=>{u();Gi();xf();Sf();Vs();Ef();Yi();If();Kt();Xi();Fr();Lr();ra();ia={colors:Us,negative(r){return Object.keys(r).filter(e=>r[e]!=="0").reduce((e,t)=>{let i=xt(r[t]);return i!==void 0&&(e[`-${t}`]=i),e},{})},breakpoints(r){return Object.keys(r).filter(e=>typeof r[e]=="string").reduce((e,t)=>({...e,[`screen-${t}`]:r[t]}),{})}}});var rn=x((f3,rc)=>{u();rc.exports={content:[],presets:[],darkMode:"media",theme:{accentColor:({theme:r})=>({...r("colors"),auto:"auto"}),animation:{none:"none",spin:"spin 1s linear infinite",ping:"ping 1s cubic-bezier(0, 0, 0.2, 1) infinite",pulse:"pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite",bounce:"bounce 1s infinite"},aria:{busy:'busy="true"',checked:'checked="true"',disabled:'disabled="true"',expanded:'expanded="true"',hidden:'hidden="true"',pressed:'pressed="true"',readonly:'readonly="true"',required:'required="true"',selected:'selected="true"'},aspectRatio:{auto:"auto",square:"1 / 1",video:"16 / 9"},backdropBlur:({theme:r})=>r("blur"),backdropBrightness:({theme:r})=>r("brightness"),backdropContrast:({theme:r})=>r("contrast"),backdropGrayscale:({theme:r})=>r("grayscale"),backdropHueRotate:({theme:r})=>r("hueRotate"),backdropInvert:({theme:r})=>r("invert"),backdropOpacity:({theme:r})=>r("opacity"),backdropSaturate:({theme:r})=>r("saturate"),backdropSepia:({theme:r})=>r("sepia"),backgroundColor:({theme:r})=>r("colors"),backgroundImage:{none:"none","gradient-to-t":"linear-gradient(to top, var(--tw-gradient-stops))","gradient-to-tr":"linear-gradient(to top right, var(--tw-gradient-stops))","gradient-to-r":"linear-gradient(to right, var(--tw-gradient-stops))","gradient-to-br":"linear-gradient(to bottom right, var(--tw-gradient-stops))","gradient-to-b":"linear-gradient(to bottom, var(--tw-gradient-stops))","gradient-to-bl":"linear-gradient(to bottom left, var(--tw-gradient-stops))","gradient-to-l":"linear-gradient(to left, var(--tw-gradient-stops))","gradient-to-tl":"linear-gradient(to top left, var(--tw-gradient-stops))"},backgroundOpacity:({theme:r})=>r("opacity"),backgroundPosition:{bottom:"bottom",center:"center",left:"left","left-bottom":"left bottom","left-top":"left top",right:"right","right-bottom":"right bottom","right-top":"right top",top:"top"},backgroundSize:{auto:"auto",cover:"cover",contain:"contain"},blur:{0:"0",none:"",sm:"4px",DEFAULT:"8px",md:"12px",lg:"16px",xl:"24px","2xl":"40px","3xl":"64px"},borderColor:({theme:r})=>({...r("colors"),DEFAULT:r("colors.gray.200","currentColor")}),borderOpacity:({theme:r})=>r("opacity"),borderRadius:{none:"0px",sm:"0.125rem",DEFAULT:"0.25rem",md:"0.375rem",lg:"0.5rem",xl:"0.75rem","2xl":"1rem","3xl":"1.5rem",full:"9999px"},borderSpacing:({theme:r})=>({...r("spacing")}),borderWidth:{DEFAULT:"1px",0:"0px",2:"2px",4:"4px",8:"8px"},boxShadow:{sm:"0 1px 2px 0 rgb(0 0 0 / 0.05)",DEFAULT:"0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1)",md:"0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1)",lg:"0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1)",xl:"0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1)","2xl":"0 25px 50px -12px rgb(0 0 0 / 0.25)",inner:"inset 0 2px 4px 0 rgb(0 0 0 / 0.05)",none:"none"},boxShadowColor:({theme:r})=>r("colors"),brightness:{0:"0",50:".5",75:".75",90:".9",95:".95",100:"1",105:"1.05",110:"1.1",125:"1.25",150:"1.5",200:"2"},caretColor:({theme:r})=>r("colors"),colors:({colors:r})=>({inherit:r.inherit,current:r.current,transparent:r.transparent,black:r.black,white:r.white,slate:r.slate,gray:r.gray,zinc:r.zinc,neutral:r.neutral,stone:r.stone,red:r.red,orange:r.orange,amber:r.amber,yellow:r.yellow,lime:r.lime,green:r.green,emerald:r.emerald,teal:r.teal,cyan:r.cyan,sky:r.sky,blue:r.blue,indigo:r.indigo,violet:r.violet,purple:r.purple,fuchsia:r.fuchsia,pink:r.pink,rose:r.rose}),columns:{auto:"auto",1:"1",2:"2",3:"3",4:"4",5:"5",6:"6",7:"7",8:"8",9:"9",10:"10",11:"11",12:"12","3xs":"16rem","2xs":"18rem",xs:"20rem",sm:"24rem",md:"28rem",lg:"32rem",xl:"36rem","2xl":"42rem","3xl":"48rem","4xl":"56rem","5xl":"64rem","6xl":"72rem","7xl":"80rem"},container:{},content:{none:"none"},contrast:{0:"0",50:".5",75:".75",100:"1",125:"1.25",150:"1.5",200:"2"},cursor:{auto:"auto",default:"default",pointer:"pointer",wait:"wait",text:"text",move:"move",help:"help","not-allowed":"not-allowed",none:"none","context-menu":"context-menu",progress:"progress",cell:"cell",crosshair:"crosshair","vertical-text":"vertical-text",alias:"alias",copy:"copy","no-drop":"no-drop",grab:"grab",grabbing:"grabbing","all-scroll":"all-scroll","col-resize":"col-resize","row-resize":"row-resize","n-resize":"n-resize","e-resize":"e-resize","s-resize":"s-resize","w-resize":"w-resize","ne-resize":"ne-resize","nw-resize":"nw-resize","se-resize":"se-resize","sw-resize":"sw-resize","ew-resize":"ew-resize","ns-resize":"ns-resize","nesw-resize":"nesw-resize","nwse-resize":"nwse-resize","zoom-in":"zoom-in","zoom-out":"zoom-out"},divideColor:({theme:r})=>r("borderColor"),divideOpacity:({theme:r})=>r("borderOpacity"),divideWidth:({theme:r})=>r("borderWidth"),dropShadow:{sm:"0 1px 1px rgb(0 0 0 / 0.05)",DEFAULT:["0 1px 2px rgb(0 0 0 / 0.1)","0 1px 1px rgb(0 0 0 / 0.06)"],md:["0 4px 3px rgb(0 0 0 / 0.07)","0 2px 2px rgb(0 0 0 / 0.06)"],lg:["0 10px 8px rgb(0 0 0 / 0.04)","0 4px 3px rgb(0 0 0 / 0.1)"],xl:["0 20px 13px rgb(0 0 0 / 0.03)","0 8px 5px rgb(0 0 0 / 0.08)"],"2xl":"0 25px 25px rgb(0 0 0 / 0.15)",none:"0 0 #0000"},fill:({theme:r})=>({none:"none",...r("colors")}),flex:{1:"1 1 0%",auto:"1 1 auto",initial:"0 1 auto",none:"none"},flexBasis:({theme:r})=>({auto:"auto",...r("spacing"),"1/2":"50%","1/3":"33.333333%","2/3":"66.666667%","1/4":"25%","2/4":"50%","3/4":"75%","1/5":"20%","2/5":"40%","3/5":"60%","4/5":"80%","1/6":"16.666667%","2/6":"33.333333%","3/6":"50%","4/6":"66.666667%","5/6":"83.333333%","1/12":"8.333333%","2/12":"16.666667%","3/12":"25%","4/12":"33.333333%","5/12":"41.666667%","6/12":"50%","7/12":"58.333333%","8/12":"66.666667%","9/12":"75%","10/12":"83.333333%","11/12":"91.666667%",full:"100%"}),flexGrow:{0:"0",DEFAULT:"1"},flexShrink:{0:"0",DEFAULT:"1"},fontFamily:{sans:["ui-sans-serif","system-ui","sans-serif",'"Apple Color Emoji"','"Segoe UI Emoji"','"Segoe UI Symbol"','"Noto Color Emoji"'],serif:["ui-serif","Georgia","Cambria",'"Times New Roman"',"Times","serif"],mono:["ui-monospace","SFMono-Regular","Menlo","Monaco","Consolas",'"Liberation Mono"','"Courier New"',"monospace"]},fontSize:{xs:["0.75rem",{lineHeight:"1rem"}],sm:["0.875rem",{lineHeight:"1.25rem"}],base:["1rem",{lineHeight:"1.5rem"}],lg:["1.125rem",{lineHeight:"1.75rem"}],xl:["1.25rem",{lineHeight:"1.75rem"}],"2xl":["1.5rem",{lineHeight:"2rem"}],"3xl":["1.875rem",{lineHeight:"2.25rem"}],"4xl":["2.25rem",{lineHeight:"2.5rem"}],"5xl":["3rem",{lineHeight:"1"}],"6xl":["3.75rem",{lineHeight:"1"}],"7xl":["4.5rem",{lineHeight:"1"}],"8xl":["6rem",{lineHeight:"1"}],"9xl":["8rem",{lineHeight:"1"}]},fontWeight:{thin:"100",extralight:"200",light:"300",normal:"400",medium:"500",semibold:"600",bold:"700",extrabold:"800",black:"900"},gap:({theme:r})=>r("spacing"),gradientColorStops:({theme:r})=>r("colors"),gradientColorStopPositions:{"0%":"0%","5%":"5%","10%":"10%","15%":"15%","20%":"20%","25%":"25%","30%":"30%","35%":"35%","40%":"40%","45%":"45%","50%":"50%","55%":"55%","60%":"60%","65%":"65%","70%":"70%","75%":"75%","80%":"80%","85%":"85%","90%":"90%","95%":"95%","100%":"100%"},grayscale:{0:"0",DEFAULT:"100%"},gridAutoColumns:{auto:"auto",min:"min-content",max:"max-content",fr:"minmax(0, 1fr)"},gridAutoRows:{auto:"auto",min:"min-content",max:"max-content",fr:"minmax(0, 1fr)"},gridColumn:{auto:"auto","span-1":"span 1 / span 1","span-2":"span 2 / span 2","span-3":"span 3 / span 3","span-4":"span 4 / span 4","span-5":"span 5 / span 5","span-6":"span 6 / span 6","span-7":"span 7 / span 7","span-8":"span 8 / span 8","span-9":"span 9 / span 9","span-10":"span 10 / span 10","span-11":"span 11 / span 11","span-12":"span 12 / span 12","span-full":"1 / -1"},gridColumnEnd:{auto:"auto",1:"1",2:"2",3:"3",4:"4",5:"5",6:"6",7:"7",8:"8",9:"9",10:"10",11:"11",12:"12",13:"13"},gridColumnStart:{auto:"auto",1:"1",2:"2",3:"3",4:"4",5:"5",6:"6",7:"7",8:"8",9:"9",10:"10",11:"11",12:"12",13:"13"},gridRow:{auto:"auto","span-1":"span 1 / span 1","span-2":"span 2 / span 2","span-3":"span 3 / span 3","span-4":"span 4 / span 4","span-5":"span 5 / span 5","span-6":"span 6 / span 6","span-7":"span 7 / span 7","span-8":"span 8 / span 8","span-9":"span 9 / span 9","span-10":"span 10 / span 10","span-11":"span 11 / span 11","span-12":"span 12 / span 12","span-full":"1 / -1"},gridRowEnd:{auto:"auto",1:"1",2:"2",3:"3",4:"4",5:"5",6:"6",7:"7",8:"8",9:"9",10:"10",11:"11",12:"12",13:"13"},gridRowStart:{auto:"auto",1:"1",2:"2",3:"3",4:"4",5:"5",6:"6",7:"7",8:"8",9:"9",10:"10",11:"11",12:"12",13:"13"},gridTemplateColumns:{none:"none",subgrid:"subgrid",1:"repeat(1, minmax(0, 1fr))",2:"repeat(2, minmax(0, 1fr))",3:"repeat(3, minmax(0, 1fr))",4:"repeat(4, minmax(0, 1fr))",5:"repeat(5, minmax(0, 1fr))",6:"repeat(6, minmax(0, 1fr))",7:"repeat(7, minmax(0, 1fr))",8:"repeat(8, minmax(0, 1fr))",9:"repeat(9, minmax(0, 1fr))",10:"repeat(10, minmax(0, 1fr))",11:"repeat(11, minmax(0, 1fr))",12:"repeat(12, minmax(0, 1fr))"},gridTemplateRows:{none:"none",subgrid:"subgrid",1:"repeat(1, minmax(0, 1fr))",2:"repeat(2, minmax(0, 1fr))",3:"repeat(3, minmax(0, 1fr))",4:"repeat(4, minmax(0, 1fr))",5:"repeat(5, minmax(0, 1fr))",6:"repeat(6, minmax(0, 1fr))",7:"repeat(7, minmax(0, 1fr))",8:"repeat(8, minmax(0, 1fr))",9:"repeat(9, minmax(0, 1fr))",10:"repeat(10, minmax(0, 1fr))",11:"repeat(11, minmax(0, 1fr))",12:"repeat(12, minmax(0, 1fr))"},height:({theme:r})=>({auto:"auto",...r("spacing"),"1/2":"50%","1/3":"33.333333%","2/3":"66.666667%","1/4":"25%","2/4":"50%","3/4":"75%","1/5":"20%","2/5":"40%","3/5":"60%","4/5":"80%","1/6":"16.666667%","2/6":"33.333333%","3/6":"50%","4/6":"66.666667%","5/6":"83.333333%",full:"100%",screen:"100vh",svh:"100svh",lvh:"100lvh",dvh:"100dvh",min:"min-content",max:"max-content",fit:"fit-content"}),hueRotate:{0:"0deg",15:"15deg",30:"30deg",60:"60deg",90:"90deg",180:"180deg"},inset:({theme:r})=>({auto:"auto",...r("spacing"),"1/2":"50%","1/3":"33.333333%","2/3":"66.666667%","1/4":"25%","2/4":"50%","3/4":"75%",full:"100%"}),invert:{0:"0",DEFAULT:"100%"},keyframes:{spin:{to:{transform:"rotate(360deg)"}},ping:{"75%, 100%":{transform:"scale(2)",opacity:"0"}},pulse:{"50%":{opacity:".5"}},bounce:{"0%, 100%":{transform:"translateY(-25%)",animationTimingFunction:"cubic-bezier(0.8,0,1,1)"},"50%":{transform:"none",animationTimingFunction:"cubic-bezier(0,0,0.2,1)"}}},letterSpacing:{tighter:"-0.05em",tight:"-0.025em",normal:"0em",wide:"0.025em",wider:"0.05em",widest:"0.1em"},lineHeight:{none:"1",tight:"1.25",snug:"1.375",normal:"1.5",relaxed:"1.625",loose:"2",3:".75rem",4:"1rem",5:"1.25rem",6:"1.5rem",7:"1.75rem",8:"2rem",9:"2.25rem",10:"2.5rem"},listStyleType:{none:"none",disc:"disc",decimal:"decimal"},listStyleImage:{none:"none"},margin:({theme:r})=>({auto:"auto",...r("spacing")}),lineClamp:{1:"1",2:"2",3:"3",4:"4",5:"5",6:"6"},maxHeight:({theme:r})=>({...r("spacing"),none:"none",full:"100%",screen:"100vh",svh:"100svh",lvh:"100lvh",dvh:"100dvh",min:"min-content",max:"max-content",fit:"fit-content"}),maxWidth:({theme:r,breakpoints:e})=>({...r("spacing"),none:"none",xs:"20rem",sm:"24rem",md:"28rem",lg:"32rem",xl:"36rem","2xl":"42rem","3xl":"48rem","4xl":"56rem","5xl":"64rem","6xl":"72rem","7xl":"80rem",full:"100%",min:"min-content",max:"max-content",fit:"fit-content",prose:"65ch",...e(r("screens"))}),minHeight:({theme:r})=>({...r("spacing"),full:"100%",screen:"100vh",svh:"100svh",lvh:"100lvh",dvh:"100dvh",min:"min-content",max:"max-content",fit:"fit-content"}),minWidth:({theme:r})=>({...r("spacing"),full:"100%",min:"min-content",max:"max-content",fit:"fit-content"}),objectPosition:{bottom:"bottom",center:"center",left:"left","left-bottom":"left bottom","left-top":"left top",right:"right","right-bottom":"right bottom","right-top":"right top",top:"top"},opacity:{0:"0",5:"0.05",10:"0.1",15:"0.15",20:"0.2",25:"0.25",30:"0.3",35:"0.35",40:"0.4",45:"0.45",50:"0.5",55:"0.55",60:"0.6",65:"0.65",70:"0.7",75:"0.75",80:"0.8",85:"0.85",90:"0.9",95:"0.95",100:"1"},order:{first:"-9999",last:"9999",none:"0",1:"1",2:"2",3:"3",4:"4",5:"5",6:"6",7:"7",8:"8",9:"9",10:"10",11:"11",12:"12"},outlineColor:({theme:r})=>r("colors"),outlineOffset:{0:"0px",1:"1px",2:"2px",4:"4px",8:"8px"},outlineWidth:{0:"0px",1:"1px",2:"2px",4:"4px",8:"8px"},padding:({theme:r})=>r("spacing"),placeholderColor:({theme:r})=>r("colors"),placeholderOpacity:({theme:r})=>r("opacity"),ringColor:({theme:r})=>({DEFAULT:r("colors.blue.500","#3b82f6"),...r("colors")}),ringOffsetColor:({theme:r})=>r("colors"),ringOffsetWidth:{0:"0px",1:"1px",2:"2px",4:"4px",8:"8px"},ringOpacity:({theme:r})=>({DEFAULT:"0.5",...r("opacity")}),ringWidth:{DEFAULT:"3px",0:"0px",1:"1px",2:"2px",4:"4px",8:"8px"},rotate:{0:"0deg",1:"1deg",2:"2deg",3:"3deg",6:"6deg",12:"12deg",45:"45deg",90:"90deg",180:"180deg"},saturate:{0:"0",50:".5",100:"1",150:"1.5",200:"2"},scale:{0:"0",50:".5",75:".75",90:".9",95:".95",100:"1",105:"1.05",110:"1.1",125:"1.25",150:"1.5"},screens:{sm:"640px",md:"768px",lg:"1024px",xl:"1280px","2xl":"1536px"},scrollMargin:({theme:r})=>({...r("spacing")}),scrollPadding:({theme:r})=>r("spacing"),sepia:{0:"0",DEFAULT:"100%"},skew:{0:"0deg",1:"1deg",2:"2deg",3:"3deg",6:"6deg",12:"12deg"},space:({theme:r})=>({...r("spacing")}),spacing:{px:"1px",0:"0px",.5:"0.125rem",1:"0.25rem",1.5:"0.375rem",2:"0.5rem",2.5:"0.625rem",3:"0.75rem",3.5:"0.875rem",4:"1rem",5:"1.25rem",6:"1.5rem",7:"1.75rem",8:"2rem",9:"2.25rem",10:"2.5rem",11:"2.75rem",12:"3rem",14:"3.5rem",16:"4rem",20:"5rem",24:"6rem",28:"7rem",32:"8rem",36:"9rem",40:"10rem",44:"11rem",48:"12rem",52:"13rem",56:"14rem",60:"15rem",64:"16rem",72:"18rem",80:"20rem",96:"24rem"},stroke:({theme:r})=>({none:"none",...r("colors")}),strokeWidth:{0:"0",1:"1",2:"2"},supports:{},data:{},textColor:({theme:r})=>r("colors"),textDecorationColor:({theme:r})=>r("colors"),textDecorationThickness:{auto:"auto","from-font":"from-font",0:"0px",1:"1px",2:"2px",4:"4px",8:"8px"},textIndent:({theme:r})=>({...r("spacing")}),textOpacity:({theme:r})=>r("opacity"),textUnderlineOffset:{auto:"auto",0:"0px",1:"1px",2:"2px",4:"4px",8:"8px"},transformOrigin:{center:"center",top:"top","top-right":"top right",right:"right","bottom-right":"bottom right",bottom:"bottom","bottom-left":"bottom left",left:"left","top-left":"top left"},transitionDelay:{0:"0s",75:"75ms",100:"100ms",150:"150ms",200:"200ms",300:"300ms",500:"500ms",700:"700ms",1e3:"1000ms"},transitionDuration:{DEFAULT:"150ms",0:"0s",75:"75ms",100:"100ms",150:"150ms",200:"200ms",300:"300ms",500:"500ms",700:"700ms",1e3:"1000ms"},transitionProperty:{none:"none",all:"all",DEFAULT:"color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter",colors:"color, background-color, border-color, text-decoration-color, fill, stroke",opacity:"opacity",shadow:"box-shadow",transform:"transform"},transitionTimingFunction:{DEFAULT:"cubic-bezier(0.4, 0, 0.2, 1)",linear:"linear",in:"cubic-bezier(0.4, 0, 1, 1)",out:"cubic-bezier(0, 0, 0.2, 1)","in-out":"cubic-bezier(0.4, 0, 0.2, 1)"},translate:({theme:r})=>({...r("spacing"),"1/2":"50%","1/3":"33.333333%","2/3":"66.666667%","1/4":"25%","2/4":"50%","3/4":"75%",full:"100%"}),size:({theme:r})=>({auto:"auto",...r("spacing"),"1/2":"50%","1/3":"33.333333%","2/3":"66.666667%","1/4":"25%","2/4":"50%","3/4":"75%","1/5":"20%","2/5":"40%","3/5":"60%","4/5":"80%","1/6":"16.666667%","2/6":"33.333333%","3/6":"50%","4/6":"66.666667%","5/6":"83.333333%","1/12":"8.333333%","2/12":"16.666667%","3/12":"25%","4/12":"33.333333%","5/12":"41.666667%","6/12":"50%","7/12":"58.333333%","8/12":"66.666667%","9/12":"75%","10/12":"83.333333%","11/12":"91.666667%",full:"100%",min:"min-content",max:"max-content",fit:"fit-content"}),width:({theme:r})=>({auto:"auto",...r("spacing"),"1/2":"50%","1/3":"33.333333%","2/3":"66.666667%","1/4":"25%","2/4":"50%","3/4":"75%","1/5":"20%","2/5":"40%","3/5":"60%","4/5":"80%","1/6":"16.666667%","2/6":"33.333333%","3/6":"50%","4/6":"66.666667%","5/6":"83.333333%","1/12":"8.333333%","2/12":"16.666667%","3/12":"25%","4/12":"33.333333%","5/12":"41.666667%","6/12":"50%","7/12":"58.333333%","8/12":"66.666667%","9/12":"75%","10/12":"83.333333%","11/12":"91.666667%",full:"100%",screen:"100vw",svw:"100svw",lvw:"100lvw",dvw:"100dvw",min:"min-content",max:"max-content",fit:"fit-content"}),willChange:{auto:"auto",scroll:"scroll-position",contents:"contents",transform:"transform"},zIndex:{auto:"auto",0:"0",10:"10",20:"20",30:"30",40:"40",50:"50"}},plugins:[]}});function nn(r){let e=(r?.presets??[ic.default]).slice().reverse().flatMap(n=>nn(n instanceof Function?n():n)),t={respectDefaultRingColorOpacity:{theme:{ringColor:({theme:n})=>({DEFAULT:"#3b82f67f",...n("colors")})}},disableColorOpacityUtilitiesByDefault:{corePlugins:{backgroundOpacity:!1,borderOpacity:!1,divideOpacity:!1,placeholderOpacity:!1,ringOpacity:!1,textOpacity:!1}}},i=Object.keys(t).filter(n=>we(r,n)).map(n=>t[n]);return[r,...i,...e]}var ic,nc=P(()=>{u();ic=pe(rn());ct()});var sc={};Ge(sc,{default:()=>zr});function zr(...r){let[,...e]=nn(r[0]);return na([...r,...e])}var sa=P(()=>{u();tc();nc()});var Ur={};Ge(Ur,{default:()=>me});var me,et=P(()=>{u();me={resolve:r=>r,extname:r=>"."+r.split(".").pop()}});function sn(r){return typeof r=="object"&&r!==null}function bx(r){return Object.keys(r).length===0}function ac(r){return typeof r=="string"||r instanceof String}function aa(r){return sn(r)&&r.config===void 0&&!bx(r)?null:sn(r)&&r.config!==void 0&&ac(r.config)?me.resolve(r.config):sn(r)&&r.config!==void 0&&sn(r.config)?null:ac(r)?me.resolve(r):wx()}function wx(){for(let r of yx)try{let e=me.resolve(r);return be.accessSync(e),e}catch(e){}return null}var yx,oc=P(()=>{u();ft();et();yx=["./tailwind.config.js","./tailwind.config.cjs","./tailwind.config.mjs","./tailwind.config.ts","./tailwind.config.cts","./tailwind.config.mts"]});var lc={};Ge(lc,{default:()=>oa});var oa,la=P(()=>{u();oa={parse:r=>({href:r})}});var ua=x(()=>{u()});var an=x((v3,cc)=>{u();"use strict";var uc=(Qi(),Af),fc=ua(),Jt=class extends Error{constructor(e,t,i,n,s,a){super(e);this.name="CssSyntaxError",this.reason=e,s&&(this.file=s),n&&(this.source=n),a&&(this.plugin=a),typeof t!="undefined"&&typeof i!="undefined"&&(typeof t=="number"?(this.line=t,this.column=i):(this.line=t.line,this.column=t.column,this.endLine=i.line,this.endColumn=i.column)),this.setMessage(),Error.captureStackTrace&&Error.captureStackTrace(this,Jt)}setMessage(){this.message=this.plugin?this.plugin+": ":"",this.message+=this.file?this.file:"",typeof this.line!="undefined"&&(this.message+=":"+this.line+":"+this.column),this.message+=": "+this.reason}showSourceCode(e){if(!this.source)return"";let t=this.source;e==null&&(e=uc.isColorSupported);let i=f=>f,n=f=>f,s=f=>f;if(e){let{bold:f,gray:d,red:p}=uc.createColors(!0);n=h=>f(p(h)),i=h=>d(h),fc&&(s=h=>fc(h))}let a=t.split(/\r?\n/),o=Math.max(this.line-3,0),l=Math.min(this.line+2,a.length),c=String(l).length;return a.slice(o,l).map((f,d)=>{let p=o+1+d,h=" "+(" "+p).slice(-c)+" | ";if(p===this.line){if(f.length>160){let v=20,y=Math.max(0,this.column-v),w=Math.max(this.column+v,this.endColumn+v),k=f.slice(y,w),S=i(h.replace(/\d/g," "))+f.slice(0,Math.min(this.column-1,v-1)).replace(/[^\t]/g," ");return n(">")+i(h)+s(k)+` + `+S+n("^")}let b=i(h.replace(/\d/g," "))+f.slice(0,this.column-1).replace(/[^\t]/g," ");return n(">")+i(h)+s(f)+` + `+b+n("^")}return" "+i(h)+s(f)}).join(` +`)}toString(){let e=this.showSourceCode();return e&&(e=` + +`+e+` +`),this.name+": "+this.message+e}};cc.exports=Jt;Jt.default=Jt});var fa=x((x3,dc)=>{u();"use strict";var pc={after:` +`,beforeClose:` +`,beforeComment:` +`,beforeDecl:` +`,beforeOpen:" ",beforeRule:` +`,colon:": ",commentLeft:" ",commentRight:" ",emptyBody:"",indent:" ",semicolon:!1};function vx(r){return r[0].toUpperCase()+r.slice(1)}var on=class{constructor(e){this.builder=e}atrule(e,t){let i="@"+e.name,n=e.params?this.rawValue(e,"params"):"";if(typeof e.raws.afterName!="undefined"?i+=e.raws.afterName:n&&(i+=" "),e.nodes)this.block(e,i+n);else{let s=(e.raws.between||"")+(t?";":"");this.builder(i+n+s,e)}}beforeAfter(e,t){let i;e.type==="decl"?i=this.raw(e,null,"beforeDecl"):e.type==="comment"?i=this.raw(e,null,"beforeComment"):t==="before"?i=this.raw(e,null,"beforeRule"):i=this.raw(e,null,"beforeClose");let n=e.parent,s=0;for(;n&&n.type!=="root";)s+=1,n=n.parent;if(i.includes(` +`)){let a=this.raw(e,null,"indent");if(a.length)for(let o=0;o0&&e.nodes[t].type==="comment";)t-=1;let i=this.raw(e,"semicolon");for(let n=0;n{if(n=l.raws[t],typeof n!="undefined")return!1})}return typeof n=="undefined"&&(n=pc[i]),a.rawCache[i]=n,n}rawBeforeClose(e){let t;return e.walk(i=>{if(i.nodes&&i.nodes.length>0&&typeof i.raws.after!="undefined")return t=i.raws.after,t.includes(` +`)&&(t=t.replace(/[^\n]+$/,"")),!1}),t&&(t=t.replace(/\S/g,"")),t}rawBeforeComment(e,t){let i;return e.walkComments(n=>{if(typeof n.raws.before!="undefined")return i=n.raws.before,i.includes(` +`)&&(i=i.replace(/[^\n]+$/,"")),!1}),typeof i=="undefined"?i=this.raw(t,null,"beforeDecl"):i&&(i=i.replace(/\S/g,"")),i}rawBeforeDecl(e,t){let i;return e.walkDecls(n=>{if(typeof n.raws.before!="undefined")return i=n.raws.before,i.includes(` +`)&&(i=i.replace(/[^\n]+$/,"")),!1}),typeof i=="undefined"?i=this.raw(t,null,"beforeRule"):i&&(i=i.replace(/\S/g,"")),i}rawBeforeOpen(e){let t;return e.walk(i=>{if(i.type!=="decl"&&(t=i.raws.between,typeof t!="undefined"))return!1}),t}rawBeforeRule(e){let t;return e.walk(i=>{if(i.nodes&&(i.parent!==e||e.first!==i)&&typeof i.raws.before!="undefined")return t=i.raws.before,t.includes(` +`)&&(t=t.replace(/[^\n]+$/,"")),!1}),t&&(t=t.replace(/\S/g,"")),t}rawColon(e){let t;return e.walkDecls(i=>{if(typeof i.raws.between!="undefined")return t=i.raws.between.replace(/[^\s:]/g,""),!1}),t}rawEmptyBody(e){let t;return e.walk(i=>{if(i.nodes&&i.nodes.length===0&&(t=i.raws.after,typeof t!="undefined"))return!1}),t}rawIndent(e){if(e.raws.indent)return e.raws.indent;let t;return e.walk(i=>{let n=i.parent;if(n&&n!==e&&n.parent&&n.parent===e&&typeof i.raws.before!="undefined"){let s=i.raws.before.split(` +`);return t=s[s.length-1],t=t.replace(/\S/g,""),!1}}),t}rawSemicolon(e){let t;return e.walk(i=>{if(i.nodes&&i.nodes.length&&i.last.type==="decl"&&(t=i.raws.semicolon,typeof t!="undefined"))return!1}),t}rawValue(e,t){let i=e[t],n=e.raws[t];return n&&n.value===i?n.raw:i}root(e){this.body(e),e.raws.after&&this.builder(e.raws.after)}rule(e){this.block(e,this.rawValue(e,"selector")),e.raws.ownSemicolon&&this.builder(e.raws.ownSemicolon,e,"end")}stringify(e,t){if(!this[e.type])throw new Error("Unknown AST node type "+e.type+". Maybe you need to change PostCSS stringifier.");this[e.type](e,t)}};dc.exports=on;on.default=on});var Vr=x((k3,hc)=>{u();"use strict";var xx=fa();function ca(r,e){new xx(e).stringify(r)}hc.exports=ca;ca.default=ca});var ln=x((S3,pa)=>{u();"use strict";pa.exports.isClean=Symbol("isClean");pa.exports.my=Symbol("my")});var Gr=x((A3,mc)=>{u();"use strict";var kx=an(),Sx=fa(),Ax=Vr(),{isClean:Hr,my:Cx}=ln();function da(r,e){let t=new r.constructor;for(let i in r){if(!Object.prototype.hasOwnProperty.call(r,i)||i==="proxyCache")continue;let n=r[i],s=typeof n;i==="parent"&&s==="object"?e&&(t[i]=e):i==="source"?t[i]=n:Array.isArray(n)?t[i]=n.map(a=>da(a,t)):(s==="object"&&n!==null&&(n=da(n)),t[i]=n)}return t}function Wr(r,e){if(e&&typeof e.offset!="undefined")return e.offset;let t=1,i=1,n=0;for(let s=0;se.root().toProxy():e[t]},set(e,t,i){return e[t]===i||(e[t]=i,(t==="prop"||t==="value"||t==="name"||t==="params"||t==="important"||t==="text")&&e.markDirty()),!0}}}markClean(){this[Hr]=!0}markDirty(){if(this[Hr]){this[Hr]=!1;let e=this;for(;e=e.parent;)e[Hr]=!1}}next(){if(!this.parent)return;let e=this.parent.index(this);return this.parent.nodes[e+1]}positionBy(e){let t=this.source.start;if(e.index)t=this.positionInside(e.index);else if(e.word){let n=this.source.input.css.slice(Wr(this.source.input.css,this.source.start),Wr(this.source.input.css,this.source.end)).indexOf(e.word);n!==-1&&(t=this.positionInside(n))}return t}positionInside(e){let t=this.source.start.column,i=this.source.start.line,n=Wr(this.source.input.css,this.source.start),s=n+e;for(let a=n;atypeof l=="object"&&l.toJSON?l.toJSON(null,t):l);else if(typeof o=="object"&&o.toJSON)i[a]=o.toJSON(null,t);else if(a==="source"){let l=t.get(o.input);l==null&&(l=s,t.set(o.input,s),s++),i[a]={end:o.end,inputId:l,start:o.start}}else i[a]=o}return n&&(i.inputs=[...t.keys()].map(a=>a.toJSON())),i}toProxy(){return this.proxyCache||(this.proxyCache=new Proxy(this,this.getProxyProcessor())),this.proxyCache}toString(e=Ax){e.stringify&&(e=e.stringify);let t="";return e(this,i=>{t+=i}),t}warn(e,t,i){let n={node:this};for(let s in i)n[s]=i[s];return e.warn(t,n)}get proxyOf(){return this}};mc.exports=un;un.default=un});var Qr=x((C3,gc)=>{u();"use strict";var _x=Gr(),fn=class extends _x{constructor(e){super(e);this.type="comment"}};gc.exports=fn;fn.default=fn});var Yr=x((_3,yc)=>{u();"use strict";var Ex=Gr(),cn=class extends Ex{constructor(e){e&&typeof e.value!="undefined"&&typeof e.value!="string"&&(e={...e,value:String(e.value)});super(e);this.type="decl"}get variable(){return this.prop.startsWith("--")||this.prop[0]==="$"}};yc.exports=cn;cn.default=cn});var Et=x((E3,_c)=>{u();"use strict";var bc=Qr(),wc=Yr(),Ox=Gr(),{isClean:vc,my:xc}=ln(),ha,kc,Sc,ma;function Ac(r){return r.map(e=>(e.nodes&&(e.nodes=Ac(e.nodes)),delete e.source,e))}function Cc(r){if(r[vc]=!1,r.proxyOf.nodes)for(let e of r.proxyOf.nodes)Cc(e)}var Fe=class extends Ox{append(...e){for(let t of e){let i=this.normalize(t,this.last);for(let n of i)this.proxyOf.nodes.push(n)}return this.markDirty(),this}cleanRaws(e){if(super.cleanRaws(e),this.nodes)for(let t of this.nodes)t.cleanRaws(e)}each(e){if(!this.proxyOf.nodes)return;let t=this.getIterator(),i,n;for(;this.indexes[t]e[t](...i.map(n=>typeof n=="function"?(s,a)=>n(s.toProxy(),a):n)):t==="every"||t==="some"?i=>e[t]((n,...s)=>i(n.toProxy(),...s)):t==="root"?()=>e.root().toProxy():t==="nodes"?e.nodes.map(i=>i.toProxy()):t==="first"||t==="last"?e[t].toProxy():e[t]:e[t]},set(e,t,i){return e[t]===i||(e[t]=i,(t==="name"||t==="params"||t==="selector")&&e.markDirty()),!0}}}index(e){return typeof e=="number"?e:(e.proxyOf&&(e=e.proxyOf),this.proxyOf.nodes.indexOf(e))}insertAfter(e,t){let i=this.index(e),n=this.normalize(t,this.proxyOf.nodes[i]).reverse();i=this.index(e);for(let a of n)this.proxyOf.nodes.splice(i+1,0,a);let s;for(let a in this.indexes)s=this.indexes[a],i(n[xc]||Fe.rebuild(n),n=n.proxyOf,n.parent&&n.parent.removeChild(n),n[vc]&&Cc(n),n.raws||(n.raws={}),typeof n.raws.before=="undefined"&&t&&typeof t.raws.before!="undefined"&&(n.raws.before=t.raws.before.replace(/\S/g,"")),n.parent=this.proxyOf,n))}prepend(...e){e=e.reverse();for(let t of e){let i=this.normalize(t,this.first,"prepend").reverse();for(let n of i)this.proxyOf.nodes.unshift(n);for(let n in this.indexes)this.indexes[n]=this.indexes[n]+i.length}return this.markDirty(),this}push(e){return e.parent=this,this.proxyOf.nodes.push(e),this}removeAll(){for(let e of this.proxyOf.nodes)e.parent=void 0;return this.proxyOf.nodes=[],this.markDirty(),this}removeChild(e){e=this.index(e),this.proxyOf.nodes[e].parent=void 0,this.proxyOf.nodes.splice(e,1);let t;for(let i in this.indexes)t=this.indexes[i],t>=e&&(this.indexes[i]=t-1);return this.markDirty(),this}replaceValues(e,t,i){return i||(i=t,t={}),this.walkDecls(n=>{t.props&&!t.props.includes(n.prop)||t.fast&&!n.value.includes(t.fast)||(n.value=n.value.replace(e,i))}),this.markDirty(),this}some(e){return this.nodes.some(e)}walk(e){return this.each((t,i)=>{let n;try{n=e(t,i)}catch(s){throw t.addToError(s)}return n!==!1&&t.walk&&(n=t.walk(e)),n})}walkAtRules(e,t){return t?e instanceof RegExp?this.walk((i,n)=>{if(i.type==="atrule"&&e.test(i.name))return t(i,n)}):this.walk((i,n)=>{if(i.type==="atrule"&&i.name===e)return t(i,n)}):(t=e,this.walk((i,n)=>{if(i.type==="atrule")return t(i,n)}))}walkComments(e){return this.walk((t,i)=>{if(t.type==="comment")return e(t,i)})}walkDecls(e,t){return t?e instanceof RegExp?this.walk((i,n)=>{if(i.type==="decl"&&e.test(i.prop))return t(i,n)}):this.walk((i,n)=>{if(i.type==="decl"&&i.prop===e)return t(i,n)}):(t=e,this.walk((i,n)=>{if(i.type==="decl")return t(i,n)}))}walkRules(e,t){return t?e instanceof RegExp?this.walk((i,n)=>{if(i.type==="rule"&&e.test(i.selector))return t(i,n)}):this.walk((i,n)=>{if(i.type==="rule"&&i.selector===e)return t(i,n)}):(t=e,this.walk((i,n)=>{if(i.type==="rule")return t(i,n)}))}get first(){if(!!this.proxyOf.nodes)return this.proxyOf.nodes[0]}get last(){if(!!this.proxyOf.nodes)return this.proxyOf.nodes[this.proxyOf.nodes.length-1]}};Fe.registerParse=r=>{kc=r};Fe.registerRule=r=>{ma=r};Fe.registerAtRule=r=>{ha=r};Fe.registerRoot=r=>{Sc=r};_c.exports=Fe;Fe.default=Fe;Fe.rebuild=r=>{r.type==="atrule"?Object.setPrototypeOf(r,ha.prototype):r.type==="rule"?Object.setPrototypeOf(r,ma.prototype):r.type==="decl"?Object.setPrototypeOf(r,wc.prototype):r.type==="comment"?Object.setPrototypeOf(r,bc.prototype):r.type==="root"&&Object.setPrototypeOf(r,Sc.prototype),r[xc]=!0,r.nodes&&r.nodes.forEach(e=>{Fe.rebuild(e)})}});var pn=x((O3,Oc)=>{u();"use strict";var Ec=Et(),Kr=class extends Ec{constructor(e){super(e);this.type="atrule"}append(...e){return this.proxyOf.nodes||(this.nodes=[]),super.append(...e)}prepend(...e){return this.proxyOf.nodes||(this.nodes=[]),super.prepend(...e)}};Oc.exports=Kr;Kr.default=Kr;Ec.registerAtRule(Kr)});var dn=x((T3,Pc)=>{u();"use strict";var Tx=Et(),Tc,Rc,er=class extends Tx{constructor(e){super({type:"document",...e});this.nodes||(this.nodes=[])}toResult(e={}){return new Tc(new Rc,this,e).stringify()}};er.registerLazyResult=r=>{Tc=r};er.registerProcessor=r=>{Rc=r};Pc.exports=er;er.default=er});var Dc=x((R3,Ic)=>{u();var Rx="useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict",Px=(r,e=21)=>(t=e)=>{let i="",n=t;for(;n--;)i+=r[Math.random()*r.length|0];return i},Ix=(r=21)=>{let e="",t=r;for(;t--;)e+=Rx[Math.random()*64|0];return e};Ic.exports={nanoid:Ix,customAlphabet:Px}});var qc=x(()=>{u()});var ga=x((D3,$c)=>{u();$c.exports={}});var mn=x((q3,Bc)=>{u();"use strict";var{nanoid:Dx}=Dc(),{isAbsolute:ya,resolve:ba}=(et(),Ur),{SourceMapConsumer:qx,SourceMapGenerator:$x}=qc(),{fileURLToPath:Lc,pathToFileURL:hn}=(la(),lc),Mc=an(),Lx=ga(),wa=ua(),va=Symbol("fromOffsetCache"),Mx=Boolean(qx&&$x),Nc=Boolean(ba&&ya),Xr=class{constructor(e,t={}){if(e===null||typeof e=="undefined"||typeof e=="object"&&!e.toString)throw new Error(`PostCSS received ${e} instead of CSS string`);if(this.css=e.toString(),this.css[0]==="\uFEFF"||this.css[0]==="\uFFFE"?(this.hasBOM=!0,this.css=this.css.slice(1)):this.hasBOM=!1,t.from&&(!Nc||/^\w+:\/\//.test(t.from)||ya(t.from)?this.file=t.from:this.file=ba(t.from)),Nc&&Mx){let i=new Lx(this.css,t);if(i.text){this.map=i;let n=i.consumer().file;!this.file&&n&&(this.file=this.mapResolve(n))}}this.file||(this.id=""),this.map&&(this.map.file=this.from)}error(e,t,i,n={}){let s,a,o;if(t&&typeof t=="object"){let c=t,f=i;if(typeof c.offset=="number"){let d=this.fromOffset(c.offset);t=d.line,i=d.col}else t=c.line,i=c.column;if(typeof f.offset=="number"){let d=this.fromOffset(f.offset);a=d.line,s=d.col}else a=f.line,s=f.column}else if(!i){let c=this.fromOffset(t);t=c.line,i=c.col}let l=this.origin(t,i,a,s);return l?o=new Mc(e,l.endLine===void 0?l.line:{column:l.column,line:l.line},l.endLine===void 0?l.column:{column:l.endColumn,line:l.endLine},l.source,l.file,n.plugin):o=new Mc(e,a===void 0?t:{column:i,line:t},a===void 0?i:{column:s,line:a},this.css,this.file,n.plugin),o.input={column:i,endColumn:s,endLine:a,line:t,source:this.css},this.file&&(hn&&(o.input.url=hn(this.file).toString()),o.input.file=this.file),o}fromOffset(e){let t,i;if(this[va])i=this[va];else{let s=this.css.split(` +`);i=new Array(s.length);let a=0;for(let o=0,l=s.length;o=t)n=i.length-1;else{let s=i.length-2,a;for(;n>1),e=i[a+1])n=a+1;else{n=a;break}}return{col:e-i[n]+1,line:n+1}}mapResolve(e){return/^\w+:\/\//.test(e)?e:ba(this.map.consumer().sourceRoot||this.map.root||".",e)}origin(e,t,i,n){if(!this.map)return!1;let s=this.map.consumer(),a=s.originalPositionFor({column:t,line:e});if(!a.source)return!1;let o;typeof i=="number"&&(o=s.originalPositionFor({column:n,line:i}));let l;ya(a.source)?l=hn(a.source):l=new URL(a.source,this.map.consumer().sourceRoot||hn(this.map.mapFile));let c={column:a.column,endColumn:o&&o.column,endLine:o&&o.line,line:a.line,url:l.toString()};if(l.protocol==="file:")if(Lc)c.file=Lc(l);else throw new Error("file: protocol is not available in this PostCSS build");let f=s.sourceContentFor(a.source);return f&&(c.source=f),c}toJSON(){let e={};for(let t of["hasBOM","css","file","id"])this[t]!=null&&(e[t]=this[t]);return this.map&&(e.map={...this.map},e.map.consumerCache&&(e.map.consumerCache=void 0)),e}get from(){return this.file||this.id}};Bc.exports=Xr;Xr.default=Xr;wa&&wa.registerInput&&wa.registerInput(Xr)});var tr=x(($3,Uc)=>{u();"use strict";var Fc=Et(),jc,zc,Ut=class extends Fc{constructor(e){super(e);this.type="root",this.nodes||(this.nodes=[])}normalize(e,t,i){let n=super.normalize(e);if(t){if(i==="prepend")this.nodes.length>1?t.raws.before=this.nodes[1].raws.before:delete t.raws.before;else if(this.first!==t)for(let s of n)s.raws.before=t.raws.before}return n}removeChild(e,t){let i=this.index(e);return!t&&i===0&&this.nodes.length>1&&(this.nodes[1].raws.before=this.nodes[i].raws.before),super.removeChild(e)}toResult(e={}){return new jc(new zc,this,e).stringify()}};Ut.registerLazyResult=r=>{jc=r};Ut.registerProcessor=r=>{zc=r};Uc.exports=Ut;Ut.default=Ut;Fc.registerRoot(Ut)});var xa=x((L3,Vc)=>{u();"use strict";var Zr={comma(r){return Zr.split(r,[","],!0)},space(r){let e=[" ",` +`," "];return Zr.split(r,e)},split(r,e,t){let i=[],n="",s=!1,a=0,o=!1,l="",c=!1;for(let f of r)c?c=!1:f==="\\"?c=!0:o?f===l&&(o=!1):f==='"'||f==="'"?(o=!0,l=f):f==="("?a+=1:f===")"?a>0&&(a-=1):a===0&&e.includes(f)&&(s=!0),s?(n!==""&&i.push(n.trim()),n="",s=!1):n+=f;return(t||n!=="")&&i.push(n.trim()),i}};Vc.exports=Zr;Zr.default=Zr});var gn=x((M3,Wc)=>{u();"use strict";var Hc=Et(),Nx=xa(),Jr=class extends Hc{constructor(e){super(e);this.type="rule",this.nodes||(this.nodes=[])}get selectors(){return Nx.comma(this.selector)}set selectors(e){let t=this.selector?this.selector.match(/,\s*/):null,i=t?t[0]:","+this.raw("between","beforeOpen");this.selector=e.join(i)}};Wc.exports=Jr;Jr.default=Jr;Hc.registerRule(Jr)});var Qc=x((N3,Gc)=>{u();"use strict";var Bx=pn(),Fx=Qr(),jx=Yr(),zx=mn(),Ux=ga(),Vx=tr(),Hx=gn();function ei(r,e){if(Array.isArray(r))return r.map(n=>ei(n));let{inputs:t,...i}=r;if(t){e=[];for(let n of t){let s={...n,__proto__:zx.prototype};s.map&&(s.map={...s.map,__proto__:Ux.prototype}),e.push(s)}}if(i.nodes&&(i.nodes=r.nodes.map(n=>ei(n,e))),i.source){let{inputId:n,...s}=i.source;i.source=s,n!=null&&(i.source.input=e[n])}if(i.type==="root")return new Vx(i);if(i.type==="decl")return new jx(i);if(i.type==="rule")return new Hx(i);if(i.type==="comment")return new Fx(i);if(i.type==="atrule")return new Bx(i);throw new Error("Unknown node type: "+r.type)}Gc.exports=ei;ei.default=ei});var ka=x((B3,Yc)=>{u();Yc.exports=function(r,e){return{generate:()=>{let t="";return r(e,i=>{t+=i}),[t]}}}});var ep=x((F3,Jc)=>{u();"use strict";var Sa="'".charCodeAt(0),Kc='"'.charCodeAt(0),yn="\\".charCodeAt(0),Xc="/".charCodeAt(0),bn=` +`.charCodeAt(0),ti=" ".charCodeAt(0),wn="\f".charCodeAt(0),vn=" ".charCodeAt(0),xn="\r".charCodeAt(0),Wx="[".charCodeAt(0),Gx="]".charCodeAt(0),Qx="(".charCodeAt(0),Yx=")".charCodeAt(0),Kx="{".charCodeAt(0),Xx="}".charCodeAt(0),Zx=";".charCodeAt(0),Jx="*".charCodeAt(0),e1=":".charCodeAt(0),t1="@".charCodeAt(0),kn=/[\t\n\f\r "#'()/;[\\\]{}]/g,Sn=/[\t\n\f\r !"#'():;@[\\\]{}]|\/(?=\*)/g,r1=/.[\r\n"'(/\\]/,Zc=/[\da-f]/i;Jc.exports=function(e,t={}){let i=e.css.valueOf(),n=t.ignoreErrors,s,a,o,l,c,f,d,p,h,b,v=i.length,y=0,w=[],k=[];function S(){return y}function E(R){throw e.error("Unclosed "+R,y)}function T(){return k.length===0&&y>=v}function B(R){if(k.length)return k.pop();if(y>=v)return;let F=R?R.ignoreUnclosed:!1;switch(s=i.charCodeAt(y),s){case bn:case ti:case vn:case xn:case wn:{l=y;do l+=1,s=i.charCodeAt(l);while(s===ti||s===bn||s===vn||s===xn||s===wn);f=["space",i.slice(y,l)],y=l-1;break}case Wx:case Gx:case Kx:case Xx:case e1:case Zx:case Yx:{let Y=String.fromCharCode(s);f=[Y,Y,y];break}case Qx:{if(b=w.length?w.pop()[1]:"",h=i.charCodeAt(y+1),b==="url"&&h!==Sa&&h!==Kc&&h!==ti&&h!==bn&&h!==vn&&h!==wn&&h!==xn){l=y;do{if(d=!1,l=i.indexOf(")",l+1),l===-1)if(n||F){l=y;break}else E("bracket");for(p=l;i.charCodeAt(p-1)===yn;)p-=1,d=!d}while(d);f=["brackets",i.slice(y,l+1),y,l],y=l}else l=i.indexOf(")",y+1),a=i.slice(y,l+1),l===-1||r1.test(a)?f=["(","(",y]:(f=["brackets",a,y,l],y=l);break}case Sa:case Kc:{c=s===Sa?"'":'"',l=y;do{if(d=!1,l=i.indexOf(c,l+1),l===-1)if(n||F){l=y+1;break}else E("string");for(p=l;i.charCodeAt(p-1)===yn;)p-=1,d=!d}while(d);f=["string",i.slice(y,l+1),y,l],y=l;break}case t1:{kn.lastIndex=y+1,kn.test(i),kn.lastIndex===0?l=i.length-1:l=kn.lastIndex-2,f=["at-word",i.slice(y,l+1),y,l],y=l;break}case yn:{for(l=y,o=!0;i.charCodeAt(l+1)===yn;)l+=1,o=!o;if(s=i.charCodeAt(l+1),o&&s!==Xc&&s!==ti&&s!==bn&&s!==vn&&s!==xn&&s!==wn&&(l+=1,Zc.test(i.charAt(l)))){for(;Zc.test(i.charAt(l+1));)l+=1;i.charCodeAt(l+1)===ti&&(l+=1)}f=["word",i.slice(y,l+1),y,l],y=l;break}default:{s===Xc&&i.charCodeAt(y+1)===Jx?(l=i.indexOf("*/",y+2)+1,l===0&&(n||F?l=i.length:E("comment")),f=["comment",i.slice(y,l+1),y,l],y=l):(Sn.lastIndex=y+1,Sn.test(i),Sn.lastIndex===0?l=i.length-1:l=Sn.lastIndex-2,f=["word",i.slice(y,l+1),y,l],w.push(f),y=l);break}}return y++,f}function N(R){k.push(R)}return{back:N,endOfFile:T,nextToken:B,position:S}}});var sp=x((j3,np)=>{u();"use strict";var i1=pn(),n1=Qr(),s1=Yr(),a1=tr(),tp=gn(),o1=ep(),rp={empty:!0,space:!0};function l1(r){for(let e=r.length-1;e>=0;e--){let t=r[e],i=t[3]||t[2];if(i)return i}}var ip=class{constructor(e){this.input=e,this.root=new a1,this.current=this.root,this.spaces="",this.semicolon=!1,this.createTokenizer(),this.root.source={input:e,start:{column:1,line:1,offset:0}}}atrule(e){let t=new i1;t.name=e[1].slice(1),t.name===""&&this.unnamedAtrule(t,e),this.init(t,e[2]);let i,n,s,a=!1,o=!1,l=[],c=[];for(;!this.tokenizer.endOfFile();){if(e=this.tokenizer.nextToken(),i=e[0],i==="("||i==="["?c.push(i==="("?")":"]"):i==="{"&&c.length>0?c.push("}"):i===c[c.length-1]&&c.pop(),c.length===0)if(i===";"){t.source.end=this.getPosition(e[2]),t.source.end.offset++,this.semicolon=!0;break}else if(i==="{"){o=!0;break}else if(i==="}"){if(l.length>0){for(s=l.length-1,n=l[s];n&&n[0]==="space";)n=l[--s];n&&(t.source.end=this.getPosition(n[3]||n[2]),t.source.end.offset++)}this.end(e);break}else l.push(e);else l.push(e);if(this.tokenizer.endOfFile()){a=!0;break}}t.raws.between=this.spacesAndCommentsFromEnd(l),l.length?(t.raws.afterName=this.spacesAndCommentsFromStart(l),this.raw(t,"params",l),a&&(e=l[l.length-1],t.source.end=this.getPosition(e[3]||e[2]),t.source.end.offset++,this.spaces=t.raws.between,t.raws.between="")):(t.raws.afterName="",t.params=""),o&&(t.nodes=[],this.current=t)}checkMissedSemicolon(e){let t=this.colon(e);if(t===!1)return;let i=0,n;for(let s=t-1;s>=0&&(n=e[s],!(n[0]!=="space"&&(i+=1,i===2)));s--);throw this.input.error("Missed semicolon",n[0]==="word"?n[3]+1:n[2])}colon(e){let t=0,i,n,s;for(let[a,o]of e.entries()){if(n=o,s=n[0],s==="("&&(t+=1),s===")"&&(t-=1),t===0&&s===":")if(!i)this.doubleColon(n);else{if(i[0]==="word"&&i[1]==="progid")continue;return a}i=n}return!1}comment(e){let t=new n1;this.init(t,e[2]),t.source.end=this.getPosition(e[3]||e[2]),t.source.end.offset++;let i=e[1].slice(2,-2);if(/^\s*$/.test(i))t.text="",t.raws.left=i,t.raws.right="";else{let n=i.match(/^(\s*)([^]*\S)(\s*)$/);t.text=n[2],t.raws.left=n[1],t.raws.right=n[3]}}createTokenizer(){this.tokenizer=o1(this.input)}decl(e,t){let i=new s1;this.init(i,e[0][2]);let n=e[e.length-1];for(n[0]===";"&&(this.semicolon=!0,e.pop()),i.source.end=this.getPosition(n[3]||n[2]||l1(e)),i.source.end.offset++;e[0][0]!=="word";)e.length===1&&this.unknownWord(e),i.raws.before+=e.shift()[1];for(i.source.start=this.getPosition(e[0][2]),i.prop="";e.length;){let c=e[0][0];if(c===":"||c==="space"||c==="comment")break;i.prop+=e.shift()[1]}i.raws.between="";let s;for(;e.length;)if(s=e.shift(),s[0]===":"){i.raws.between+=s[1];break}else s[0]==="word"&&/\w/.test(s[1])&&this.unknownWord([s]),i.raws.between+=s[1];(i.prop[0]==="_"||i.prop[0]==="*")&&(i.raws.before+=i.prop[0],i.prop=i.prop.slice(1));let a=[],o;for(;e.length&&(o=e[0][0],!(o!=="space"&&o!=="comment"));)a.push(e.shift());this.precheckMissedSemicolon(e);for(let c=e.length-1;c>=0;c--){if(s=e[c],s[1].toLowerCase()==="!important"){i.important=!0;let f=this.stringFrom(e,c);f=this.spacesFromEnd(e)+f,f!==" !important"&&(i.raws.important=f);break}else if(s[1].toLowerCase()==="important"){let f=e.slice(0),d="";for(let p=c;p>0;p--){let h=f[p][0];if(d.trim().startsWith("!")&&h!=="space")break;d=f.pop()[1]+d}d.trim().startsWith("!")&&(i.important=!0,i.raws.important=d,e=f)}if(s[0]!=="space"&&s[0]!=="comment")break}e.some(c=>c[0]!=="space"&&c[0]!=="comment")&&(i.raws.between+=a.map(c=>c[1]).join(""),a=[]),this.raw(i,"value",a.concat(e),t),i.value.includes(":")&&!t&&this.checkMissedSemicolon(e)}doubleColon(e){throw this.input.error("Double colon",{offset:e[2]},{offset:e[2]+e[1].length})}emptyRule(e){let t=new tp;this.init(t,e[2]),t.selector="",t.raws.between="",this.current=t}end(e){this.current.nodes&&this.current.nodes.length&&(this.current.raws.semicolon=this.semicolon),this.semicolon=!1,this.current.raws.after=(this.current.raws.after||"")+this.spaces,this.spaces="",this.current.parent?(this.current.source.end=this.getPosition(e[2]),this.current.source.end.offset++,this.current=this.current.parent):this.unexpectedClose(e)}endFile(){this.current.parent&&this.unclosedBlock(),this.current.nodes&&this.current.nodes.length&&(this.current.raws.semicolon=this.semicolon),this.current.raws.after=(this.current.raws.after||"")+this.spaces,this.root.source.end=this.getPosition(this.tokenizer.position())}freeSemicolon(e){if(this.spaces+=e[1],this.current.nodes){let t=this.current.nodes[this.current.nodes.length-1];t&&t.type==="rule"&&!t.raws.ownSemicolon&&(t.raws.ownSemicolon=this.spaces,this.spaces="")}}getPosition(e){let t=this.input.fromOffset(e);return{column:t.col,line:t.line,offset:e}}init(e,t){this.current.push(e),e.source={input:this.input,start:this.getPosition(t)},e.raws.before=this.spaces,this.spaces="",e.type!=="comment"&&(this.semicolon=!1)}other(e){let t=!1,i=null,n=!1,s=null,a=[],o=e[1].startsWith("--"),l=[],c=e;for(;c;){if(i=c[0],l.push(c),i==="("||i==="[")s||(s=c),a.push(i==="("?")":"]");else if(o&&n&&i==="{")s||(s=c),a.push("}");else if(a.length===0)if(i===";")if(n){this.decl(l,o);return}else break;else if(i==="{"){this.rule(l);return}else if(i==="}"){this.tokenizer.back(l.pop()),t=!0;break}else i===":"&&(n=!0);else i===a[a.length-1]&&(a.pop(),a.length===0&&(s=null));c=this.tokenizer.nextToken()}if(this.tokenizer.endOfFile()&&(t=!0),a.length>0&&this.unclosedBracket(s),t&&n){if(!o)for(;l.length&&(c=l[l.length-1][0],!(c!=="space"&&c!=="comment"));)this.tokenizer.back(l.pop());this.decl(l,o)}else this.unknownWord(l)}parse(){let e;for(;!this.tokenizer.endOfFile();)switch(e=this.tokenizer.nextToken(),e[0]){case"space":this.spaces+=e[1];break;case";":this.freeSemicolon(e);break;case"}":this.end(e);break;case"comment":this.comment(e);break;case"at-word":this.atrule(e);break;case"{":this.emptyRule(e);break;default:this.other(e);break}this.endFile()}precheckMissedSemicolon(){}raw(e,t,i,n){let s,a,o=i.length,l="",c=!0,f,d;for(let p=0;ph+b[1],"");e.raws[t]={raw:p,value:l}}e[t]=l}rule(e){e.pop();let t=new tp;this.init(t,e[0][2]),t.raws.between=this.spacesAndCommentsFromEnd(e),this.raw(t,"selector",e),this.current=t}spacesAndCommentsFromEnd(e){let t,i="";for(;e.length&&(t=e[e.length-1][0],!(t!=="space"&&t!=="comment"));)i=e.pop()[1]+i;return i}spacesAndCommentsFromStart(e){let t,i="";for(;e.length&&(t=e[0][0],!(t!=="space"&&t!=="comment"));)i+=e.shift()[1];return i}spacesFromEnd(e){let t,i="";for(;e.length&&(t=e[e.length-1][0],t==="space");)i=e.pop()[1]+i;return i}stringFrom(e,t){let i="";for(let n=t;n{u();"use strict";var u1=Et(),f1=mn(),c1=sp();function An(r,e){let t=new f1(r,e),i=new c1(t);try{i.parse()}catch(n){throw n}return i.root}ap.exports=An;An.default=An;u1.registerParse(An)});var Aa=x((U3,op)=>{u();"use strict";var _n=class{constructor(e,t={}){if(this.type="warning",this.text=e,t.node&&t.node.source){let i=t.node.rangeBy(t);this.line=i.start.line,this.column=i.start.column,this.endLine=i.end.line,this.endColumn=i.end.column}for(let i in t)this[i]=t[i]}toString(){return this.node?this.node.error(this.text,{index:this.index,plugin:this.plugin,word:this.word}).message:this.plugin?this.plugin+": "+this.text:this.text}};op.exports=_n;_n.default=_n});var On=x((V3,lp)=>{u();"use strict";var p1=Aa(),En=class{constructor(e,t,i){this.processor=e,this.messages=[],this.root=t,this.opts=i,this.css=void 0,this.map=void 0}toString(){return this.css}warn(e,t={}){t.plugin||this.lastPlugin&&this.lastPlugin.postcssPlugin&&(t.plugin=this.lastPlugin.postcssPlugin);let i=new p1(e,t);return this.messages.push(i),i}warnings(){return this.messages.filter(e=>e.type==="warning")}get content(){return this.css}};lp.exports=En;En.default=En});var Ca=x((H3,fp)=>{u();"use strict";var up={};fp.exports=function(e){up[e]||(up[e]=!0,typeof console!="undefined"&&console.warn&&console.warn(e))}});var Oa=x((G3,hp)=>{u();"use strict";var d1=Et(),h1=dn(),m1=ka(),g1=Cn(),cp=On(),y1=tr(),b1=Vr(),{isClean:tt,my:w1}=ln(),W3=Ca(),v1={atrule:"AtRule",comment:"Comment",decl:"Declaration",document:"Document",root:"Root",rule:"Rule"},x1={AtRule:!0,AtRuleExit:!0,Comment:!0,CommentExit:!0,Declaration:!0,DeclarationExit:!0,Document:!0,DocumentExit:!0,Once:!0,OnceExit:!0,postcssPlugin:!0,prepare:!0,Root:!0,RootExit:!0,Rule:!0,RuleExit:!0},k1={Once:!0,postcssPlugin:!0,prepare:!0},rr=0;function ri(r){return typeof r=="object"&&typeof r.then=="function"}function pp(r){let e=!1,t=v1[r.type];return r.type==="decl"?e=r.prop.toLowerCase():r.type==="atrule"&&(e=r.name.toLowerCase()),e&&r.append?[t,t+"-"+e,rr,t+"Exit",t+"Exit-"+e]:e?[t,t+"-"+e,t+"Exit",t+"Exit-"+e]:r.append?[t,rr,t+"Exit"]:[t,t+"Exit"]}function dp(r){let e;return r.type==="document"?e=["Document",rr,"DocumentExit"]:r.type==="root"?e=["Root",rr,"RootExit"]:e=pp(r),{eventIndex:0,events:e,iterator:0,node:r,visitorIndex:0,visitors:[]}}function _a(r){return r[tt]=!1,r.nodes&&r.nodes.forEach(e=>_a(e)),r}var Ea={},pt=class{constructor(e,t,i){this.stringified=!1,this.processed=!1;let n;if(typeof t=="object"&&t!==null&&(t.type==="root"||t.type==="document"))n=_a(t);else if(t instanceof pt||t instanceof cp)n=_a(t.root),t.map&&(typeof i.map=="undefined"&&(i.map={}),i.map.inline||(i.map.inline=!1),i.map.prev=t.map);else{let s=g1;i.syntax&&(s=i.syntax.parse),i.parser&&(s=i.parser),s.parse&&(s=s.parse);try{n=s(t,i)}catch(a){this.processed=!0,this.error=a}n&&!n[w1]&&d1.rebuild(n)}this.result=new cp(e,n,i),this.helpers={...Ea,postcss:Ea,result:this.result},this.plugins=this.processor.plugins.map(s=>typeof s=="object"&&s.prepare?{...s,...s.prepare(this.result)}:s)}async(){return this.error?Promise.reject(this.error):this.processed?Promise.resolve(this.result):(this.processing||(this.processing=this.runAsync()),this.processing)}catch(e){return this.async().catch(e)}finally(e){return this.async().then(e,e)}getAsyncError(){throw new Error("Use process(css).then(cb) to work with async plugins")}handleError(e,t){let i=this.result.lastPlugin;try{t&&t.addToError(e),this.error=e,e.name==="CssSyntaxError"&&!e.plugin?(e.plugin=i.postcssPlugin,e.setMessage()):i.postcssVersion}catch(n){console&&console.error&&console.error(n)}return e}prepareVisitors(){this.listeners={};let e=(t,i,n)=>{this.listeners[i]||(this.listeners[i]=[]),this.listeners[i].push([t,n])};for(let t of this.plugins)if(typeof t=="object")for(let i in t){if(!x1[i]&&/^[A-Z]/.test(i))throw new Error(`Unknown event ${i} in ${t.postcssPlugin}. Try to update PostCSS (${this.processor.version} now).`);if(!k1[i])if(typeof t[i]=="object")for(let n in t[i])n==="*"?e(t,i,t[i][n]):e(t,i+"-"+n.toLowerCase(),t[i][n]);else typeof t[i]=="function"&&e(t,i,t[i])}this.hasListener=Object.keys(this.listeners).length>0}async runAsync(){this.plugin=0;for(let e=0;e0;){let i=this.visitTick(t);if(ri(i))try{await i}catch(n){let s=t[t.length-1].node;throw this.handleError(n,s)}}}if(this.listeners.OnceExit)for(let[t,i]of this.listeners.OnceExit){this.result.lastPlugin=t;try{if(e.type==="document"){let n=e.nodes.map(s=>i(s,this.helpers));await Promise.all(n)}else await i(e,this.helpers)}catch(n){throw this.handleError(n)}}}return this.processed=!0,this.stringify()}runOnRoot(e){this.result.lastPlugin=e;try{if(typeof e=="object"&&e.Once){if(this.result.root.type==="document"){let t=this.result.root.nodes.map(i=>e.Once(i,this.helpers));return ri(t[0])?Promise.all(t):t}return e.Once(this.result.root,this.helpers)}else if(typeof e=="function")return e(this.result.root,this.result)}catch(t){throw this.handleError(t)}}stringify(){if(this.error)throw this.error;if(this.stringified)return this.result;this.stringified=!0,this.sync();let e=this.result.opts,t=b1;e.syntax&&(t=e.syntax.stringify),e.stringifier&&(t=e.stringifier),t.stringify&&(t=t.stringify);let n=new m1(t,this.result.root,this.result.opts).generate();return this.result.css=n[0],this.result.map=n[1],this.result}sync(){if(this.error)throw this.error;if(this.processed)return this.result;if(this.processed=!0,this.processing)throw this.getAsyncError();for(let e of this.plugins){let t=this.runOnRoot(e);if(ri(t))throw this.getAsyncError()}if(this.prepareVisitors(),this.hasListener){let e=this.result.root;for(;!e[tt];)e[tt]=!0,this.walkSync(e);if(this.listeners.OnceExit)if(e.type==="document")for(let t of e.nodes)this.visitSync(this.listeners.OnceExit,t);else this.visitSync(this.listeners.OnceExit,e)}return this.result}then(e,t){return this.async().then(e,t)}toString(){return this.css}visitSync(e,t){for(let[i,n]of e){this.result.lastPlugin=i;let s;try{s=n(t,this.helpers)}catch(a){throw this.handleError(a,t.proxyOf)}if(t.type!=="root"&&t.type!=="document"&&!t.parent)return!0;if(ri(s))throw this.getAsyncError()}}visitTick(e){let t=e[e.length-1],{node:i,visitors:n}=t;if(i.type!=="root"&&i.type!=="document"&&!i.parent){e.pop();return}if(n.length>0&&t.visitorIndex{n[tt]||this.walkSync(n)});else{let n=this.listeners[i];if(n&&this.visitSync(n,e.toProxy()))return}}warnings(){return this.sync().warnings()}get content(){return this.stringify().content}get css(){return this.stringify().css}get map(){return this.stringify().map}get messages(){return this.sync().messages}get opts(){return this.result.opts}get processor(){return this.result.processor}get root(){return this.sync().root}get[Symbol.toStringTag](){return"LazyResult"}};pt.registerPostcss=r=>{Ea=r};hp.exports=pt;pt.default=pt;y1.registerLazyResult(pt);h1.registerLazyResult(pt)});var gp=x((Y3,mp)=>{u();"use strict";var S1=ka(),A1=Cn(),C1=On(),_1=Vr(),Q3=Ca(),Tn=class{constructor(e,t,i){t=t.toString(),this.stringified=!1,this._processor=e,this._css=t,this._opts=i,this._map=void 0;let n,s=_1;this.result=new C1(this._processor,n,this._opts),this.result.css=t;let a=this;Object.defineProperty(this.result,"root",{get(){return a.root}});let o=new S1(s,n,this._opts,t);if(o.isMap()){let[l,c]=o.generate();l&&(this.result.css=l),c&&(this.result.map=c)}else o.clearAnnotation(),this.result.css=o.css}async(){return this.error?Promise.reject(this.error):Promise.resolve(this.result)}catch(e){return this.async().catch(e)}finally(e){return this.async().then(e,e)}sync(){if(this.error)throw this.error;return this.result}then(e,t){return this.async().then(e,t)}toString(){return this._css}warnings(){return[]}get content(){return this.result.css}get css(){return this.result.css}get map(){return this.result.map}get messages(){return[]}get opts(){return this.result.opts}get processor(){return this.result.processor}get root(){if(this._root)return this._root;let e,t=A1;try{e=t(this._css,this._opts)}catch(i){this.error=i}if(this.error)throw this.error;return this._root=e,e}get[Symbol.toStringTag](){return"NoWorkResult"}};mp.exports=Tn;Tn.default=Tn});var bp=x((K3,yp)=>{u();"use strict";var E1=dn(),O1=Oa(),T1=gp(),R1=tr(),ir=class{constructor(e=[]){this.version="8.4.49",this.plugins=this.normalize(e)}normalize(e){let t=[];for(let i of e)if(i.postcss===!0?i=i():i.postcss&&(i=i.postcss),typeof i=="object"&&Array.isArray(i.plugins))t=t.concat(i.plugins);else if(typeof i=="object"&&i.postcssPlugin)t.push(i);else if(typeof i=="function")t.push(i);else if(!(typeof i=="object"&&(i.parse||i.stringify)))throw new Error(i+" is not a PostCSS plugin");return t}process(e,t={}){return!this.plugins.length&&!t.parser&&!t.stringifier&&!t.syntax?new T1(this,e,t):new O1(this,e,t)}use(e){return this.plugins=this.plugins.concat(this.normalize([e])),this}};yp.exports=ir;ir.default=ir;R1.registerProcessor(ir);E1.registerProcessor(ir)});var $e=x((X3,Cp)=>{u();"use strict";var wp=pn(),vp=Qr(),P1=Et(),I1=an(),xp=Yr(),kp=dn(),D1=Qc(),q1=mn(),$1=Oa(),L1=xa(),M1=Gr(),N1=Cn(),Ta=bp(),B1=On(),Sp=tr(),Ap=gn(),F1=Vr(),j1=Aa();function J(...r){return r.length===1&&Array.isArray(r[0])&&(r=r[0]),new Ta(r)}J.plugin=function(e,t){let i=!1;function n(...a){console&&console.warn&&!i&&(i=!0,console.warn(e+`: postcss.plugin was deprecated. Migration guide: +https://evilmartians.com/chronicles/postcss-8-plugin-migration`),m.env.LANG&&m.env.LANG.startsWith("cn")&&console.warn(e+`: \u91CC\u9762 postcss.plugin \u88AB\u5F03\u7528. \u8FC1\u79FB\u6307\u5357: +https://www.w3ctech.com/topic/2226`));let o=t(...a);return o.postcssPlugin=e,o.postcssVersion=new Ta().version,o}let s;return Object.defineProperty(n,"postcss",{get(){return s||(s=n()),s}}),n.process=function(a,o,l){return J([n(l)]).process(a,o)},n};J.stringify=F1;J.parse=N1;J.fromJSON=D1;J.list=L1;J.comment=r=>new vp(r);J.atRule=r=>new wp(r);J.decl=r=>new xp(r);J.rule=r=>new Ap(r);J.root=r=>new Sp(r);J.document=r=>new kp(r);J.CssSyntaxError=I1;J.Declaration=xp;J.Container=P1;J.Processor=Ta;J.Document=kp;J.Comment=vp;J.Warning=j1;J.AtRule=wp;J.Result=B1;J.Input=q1;J.Rule=Ap;J.Root=Sp;J.Node=M1;$1.registerPostcss(J);Cp.exports=J;J.default=J});var re,ee,Z3,J3,eI,tI,rI,iI,nI,sI,aI,oI,lI,uI,fI,cI,pI,dI,hI,mI,gI,yI,bI,wI,vI,xI,Ot=P(()=>{u();re=pe($e()),ee=re.default,Z3=re.default.stringify,J3=re.default.fromJSON,eI=re.default.plugin,tI=re.default.parse,rI=re.default.list,iI=re.default.document,nI=re.default.comment,sI=re.default.atRule,aI=re.default.rule,oI=re.default.decl,lI=re.default.root,uI=re.default.CssSyntaxError,fI=re.default.Declaration,cI=re.default.Container,pI=re.default.Processor,dI=re.default.Document,hI=re.default.Comment,mI=re.default.Warning,gI=re.default.AtRule,yI=re.default.Result,bI=re.default.Input,wI=re.default.Rule,vI=re.default.Root,xI=re.default.Node});var Ra=x((SI,_p)=>{u();_p.exports=function(r,e,t,i,n){for(e=e.split?e.split("."):e,i=0;i{u();"use strict";Rn.__esModule=!0;Rn.default=V1;function z1(r){for(var e=r.toLowerCase(),t="",i=!1,n=0;n<6&&e[n]!==void 0;n++){var s=e.charCodeAt(n),a=s>=97&&s<=102||s>=48&&s<=57;if(i=s===32,!a)break;t+=e[n]}if(t.length!==0){var o=parseInt(t,16),l=o>=55296&&o<=57343;return l||o===0||o>1114111?["\uFFFD",t.length+(i?1:0)]:[String.fromCodePoint(o),t.length+(i?1:0)]}}var U1=/\\/;function V1(r){var e=U1.test(r);if(!e)return r;for(var t="",i=0;i{u();"use strict";In.__esModule=!0;In.default=H1;function H1(r){for(var e=arguments.length,t=new Array(e>1?e-1:0),i=1;i0;){var n=t.shift();if(!r[n])return;r=r[n]}return r}Op.exports=In.default});var Pp=x((Dn,Rp)=>{u();"use strict";Dn.__esModule=!0;Dn.default=W1;function W1(r){for(var e=arguments.length,t=new Array(e>1?e-1:0),i=1;i0;){var n=t.shift();r[n]||(r[n]={}),r=r[n]}}Rp.exports=Dn.default});var Dp=x((qn,Ip)=>{u();"use strict";qn.__esModule=!0;qn.default=G1;function G1(r){for(var e="",t=r.indexOf("/*"),i=0;t>=0;){e=e+r.slice(i,t);var n=r.indexOf("*/",t+2);if(n<0)return e;i=n+2,t=r.indexOf("/*",i)}return e=e+r.slice(i),e}Ip.exports=qn.default});var ii=x(rt=>{u();"use strict";rt.__esModule=!0;rt.unesc=rt.stripComments=rt.getProp=rt.ensureObject=void 0;var Q1=$n(Pn());rt.unesc=Q1.default;var Y1=$n(Tp());rt.getProp=Y1.default;var K1=$n(Pp());rt.ensureObject=K1.default;var X1=$n(Dp());rt.stripComments=X1.default;function $n(r){return r&&r.__esModule?r:{default:r}}});var dt=x((ni,Lp)=>{u();"use strict";ni.__esModule=!0;ni.default=void 0;var qp=ii();function $p(r,e){for(var t=0;ti||this.source.end.linen||this.source.end.line===i&&this.source.end.column{u();"use strict";ie.__esModule=!0;ie.UNIVERSAL=ie.TAG=ie.STRING=ie.SELECTOR=ie.ROOT=ie.PSEUDO=ie.NESTING=ie.ID=ie.COMMENT=ie.COMBINATOR=ie.CLASS=ie.ATTRIBUTE=void 0;var tk="tag";ie.TAG=tk;var rk="string";ie.STRING=rk;var ik="selector";ie.SELECTOR=ik;var nk="root";ie.ROOT=nk;var sk="pseudo";ie.PSEUDO=sk;var ak="nesting";ie.NESTING=ak;var ok="id";ie.ID=ok;var lk="comment";ie.COMMENT=lk;var uk="combinator";ie.COMBINATOR=uk;var fk="class";ie.CLASS=fk;var ck="attribute";ie.ATTRIBUTE=ck;var pk="universal";ie.UNIVERSAL=pk});var Ln=x((si,Fp)=>{u();"use strict";si.__esModule=!0;si.default=void 0;var dk=mk(dt()),ht=hk(Se());function Mp(r){if(typeof WeakMap!="function")return null;var e=new WeakMap,t=new WeakMap;return(Mp=function(n){return n?t:e})(r)}function hk(r,e){if(!e&&r&&r.__esModule)return r;if(r===null||typeof r!="object"&&typeof r!="function")return{default:r};var t=Mp(e);if(t&&t.has(r))return t.get(r);var i={},n=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var s in r)if(s!=="default"&&Object.prototype.hasOwnProperty.call(r,s)){var a=n?Object.getOwnPropertyDescriptor(r,s):null;a&&(a.get||a.set)?Object.defineProperty(i,s,a):i[s]=r[s]}return i.default=r,t&&t.set(r,i),i}function mk(r){return r&&r.__esModule?r:{default:r}}function gk(r,e){var t=typeof Symbol!="undefined"&&r[Symbol.iterator]||r["@@iterator"];if(t)return(t=t.call(r)).next.bind(t);if(Array.isArray(r)||(t=yk(r))||e&&r&&typeof r.length=="number"){t&&(r=t);var i=0;return function(){return i>=r.length?{done:!0}:{done:!1,value:r[i++]}}}throw new TypeError(`Invalid attempt to iterate non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function yk(r,e){if(!!r){if(typeof r=="string")return Np(r,e);var t=Object.prototype.toString.call(r).slice(8,-1);if(t==="Object"&&r.constructor&&(t=r.constructor.name),t==="Map"||t==="Set")return Array.from(r);if(t==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t))return Np(r,e)}}function Np(r,e){(e==null||e>r.length)&&(e=r.length);for(var t=0,i=new Array(e);t=n&&(this.indexes[a]=s-1);return this},t.removeAll=function(){for(var n=gk(this.nodes),s;!(s=n()).done;){var a=s.value;a.parent=void 0}return this.nodes=[],this},t.empty=function(){return this.removeAll()},t.insertAfter=function(n,s){s.parent=this;var a=this.index(n);this.nodes.splice(a+1,0,s),s.parent=this;var o;for(var l in this.indexes)o=this.indexes[l],a<=o&&(this.indexes[l]=o+1);return this},t.insertBefore=function(n,s){s.parent=this;var a=this.index(n);this.nodes.splice(a,0,s),s.parent=this;var o;for(var l in this.indexes)o=this.indexes[l],o<=a&&(this.indexes[l]=o+1);return this},t._findChildAtPosition=function(n,s){var a=void 0;return this.each(function(o){if(o.atPosition){var l=o.atPosition(n,s);if(l)return a=l,!1}else if(o.isAtPosition(n,s))return a=o,!1}),a},t.atPosition=function(n,s){if(this.isAtPosition(n,s))return this._findChildAtPosition(n,s)||this},t._inferEndPosition=function(){this.last&&this.last.source&&this.last.source.end&&(this.source=this.source||{},this.source.end=this.source.end||{},Object.assign(this.source.end,this.last.source.end))},t.each=function(n){this.lastEach||(this.lastEach=0),this.indexes||(this.indexes={}),this.lastEach++;var s=this.lastEach;if(this.indexes[s]=0,!!this.length){for(var a,o;this.indexes[s]{u();"use strict";ai.__esModule=!0;ai.default=void 0;var xk=Sk(Ln()),kk=Se();function Sk(r){return r&&r.__esModule?r:{default:r}}function jp(r,e){for(var t=0;t{u();"use strict";oi.__esModule=!0;oi.default=void 0;var Ek=Tk(Ln()),Ok=Se();function Tk(r){return r&&r.__esModule?r:{default:r}}function Rk(r,e){r.prototype=Object.create(e.prototype),r.prototype.constructor=r,qa(r,e)}function qa(r,e){return qa=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(i,n){return i.__proto__=n,i},qa(r,e)}var Pk=function(r){Rk(e,r);function e(t){var i;return i=r.call(this,t)||this,i.type=Ok.SELECTOR,i}return e}(Ek.default);oi.default=Pk;Up.exports=oi.default});var Mn=x((_I,Vp)=>{u();"use strict";var Ik={},Dk=Ik.hasOwnProperty,qk=function(e,t){if(!e)return t;var i={};for(var n in t)i[n]=Dk.call(e,n)?e[n]:t[n];return i},$k=/[ -,\.\/:-@\[-\^`\{-~]/,Lk=/[ -,\.\/:-@\[\]\^`\{-~]/,Mk=/(^|\\+)?(\\[A-F0-9]{1,6})\x20(?![a-fA-F0-9\x20])/g,La=function r(e,t){t=qk(t,r.options),t.quotes!="single"&&t.quotes!="double"&&(t.quotes="single");for(var i=t.quotes=="double"?'"':"'",n=t.isIdentifier,s=e.charAt(0),a="",o=0,l=e.length;o126){if(f>=55296&&f<=56319&&o{u();"use strict";li.__esModule=!0;li.default=void 0;var Nk=Hp(Mn()),Bk=ii(),Fk=Hp(dt()),jk=Se();function Hp(r){return r&&r.__esModule?r:{default:r}}function Wp(r,e){for(var t=0;t{u();"use strict";ui.__esModule=!0;ui.default=void 0;var Hk=Gk(dt()),Wk=Se();function Gk(r){return r&&r.__esModule?r:{default:r}}function Qk(r,e){r.prototype=Object.create(e.prototype),r.prototype.constructor=r,Ba(r,e)}function Ba(r,e){return Ba=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(i,n){return i.__proto__=n,i},Ba(r,e)}var Yk=function(r){Qk(e,r);function e(t){var i;return i=r.call(this,t)||this,i.type=Wk.COMMENT,i}return e}(Hk.default);ui.default=Yk;Qp.exports=ui.default});var za=x((fi,Yp)=>{u();"use strict";fi.__esModule=!0;fi.default=void 0;var Kk=Zk(dt()),Xk=Se();function Zk(r){return r&&r.__esModule?r:{default:r}}function Jk(r,e){r.prototype=Object.create(e.prototype),r.prototype.constructor=r,ja(r,e)}function ja(r,e){return ja=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(i,n){return i.__proto__=n,i},ja(r,e)}var eS=function(r){Jk(e,r);function e(i){var n;return n=r.call(this,i)||this,n.type=Xk.ID,n}var t=e.prototype;return t.valueToString=function(){return"#"+r.prototype.valueToString.call(this)},e}(Kk.default);fi.default=eS;Yp.exports=fi.default});var Nn=x((ci,Zp)=>{u();"use strict";ci.__esModule=!0;ci.default=void 0;var tS=Kp(Mn()),rS=ii(),iS=Kp(dt());function Kp(r){return r&&r.__esModule?r:{default:r}}function Xp(r,e){for(var t=0;t{u();"use strict";pi.__esModule=!0;pi.default=void 0;var oS=uS(Nn()),lS=Se();function uS(r){return r&&r.__esModule?r:{default:r}}function fS(r,e){r.prototype=Object.create(e.prototype),r.prototype.constructor=r,Va(r,e)}function Va(r,e){return Va=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(i,n){return i.__proto__=n,i},Va(r,e)}var cS=function(r){fS(e,r);function e(t){var i;return i=r.call(this,t)||this,i.type=lS.TAG,i}return e}(oS.default);pi.default=cS;Jp.exports=pi.default});var Ga=x((di,ed)=>{u();"use strict";di.__esModule=!0;di.default=void 0;var pS=hS(dt()),dS=Se();function hS(r){return r&&r.__esModule?r:{default:r}}function mS(r,e){r.prototype=Object.create(e.prototype),r.prototype.constructor=r,Wa(r,e)}function Wa(r,e){return Wa=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(i,n){return i.__proto__=n,i},Wa(r,e)}var gS=function(r){mS(e,r);function e(t){var i;return i=r.call(this,t)||this,i.type=dS.STRING,i}return e}(pS.default);di.default=gS;ed.exports=di.default});var Ya=x((hi,td)=>{u();"use strict";hi.__esModule=!0;hi.default=void 0;var yS=wS(Ln()),bS=Se();function wS(r){return r&&r.__esModule?r:{default:r}}function vS(r,e){r.prototype=Object.create(e.prototype),r.prototype.constructor=r,Qa(r,e)}function Qa(r,e){return Qa=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(i,n){return i.__proto__=n,i},Qa(r,e)}var xS=function(r){vS(e,r);function e(i){var n;return n=r.call(this,i)||this,n.type=bS.PSEUDO,n}var t=e.prototype;return t.toString=function(){var n=this.length?"("+this.map(String).join(",")+")":"";return[this.rawSpaceBefore,this.stringifyProperty("value"),n,this.rawSpaceAfter].join("")},e}(yS.default);hi.default=xS;td.exports=hi.default});var Bn={};Ge(Bn,{deprecate:()=>kS});function kS(r){return r}var Fn=P(()=>{u()});var id=x((EI,rd)=>{u();rd.exports=(Fn(),Bn).deprecate});var to=x(yi=>{u();"use strict";yi.__esModule=!0;yi.default=void 0;yi.unescapeValue=Ja;var mi=Xa(Mn()),SS=Xa(Pn()),AS=Xa(Nn()),CS=Se(),Ka;function Xa(r){return r&&r.__esModule?r:{default:r}}function nd(r,e){for(var t=0;t0&&!n.quoted&&o.before.length===0&&!(n.spaces.value&&n.spaces.value.after)&&(o.before=" "),sd(a,o)}))),s.push("]"),s.push(this.rawSpaceAfter),s.join("")},_S(e,[{key:"quoted",get:function(){var n=this.quoteMark;return n==="'"||n==='"'},set:function(n){RS()}},{key:"quoteMark",get:function(){return this._quoteMark},set:function(n){if(!this._constructed){this._quoteMark=n;return}this._quoteMark!==n&&(this._quoteMark=n,this._syncRawValue())}},{key:"qualifiedAttribute",get:function(){return this.qualifiedName(this.raws.attribute||this.attribute)}},{key:"insensitiveFlag",get:function(){return this.insensitive?"i":""}},{key:"value",get:function(){return this._value},set:function(n){if(this._constructed){var s=Ja(n),a=s.deprecatedUsage,o=s.unescaped,l=s.quoteMark;if(a&&TS(),o===this._value&&l===this._quoteMark)return;this._value=o,this._quoteMark=l,this._syncRawValue()}else this._value=n}},{key:"insensitive",get:function(){return this._insensitive},set:function(n){n||(this._insensitive=!1,this.raws&&(this.raws.insensitiveFlag==="I"||this.raws.insensitiveFlag==="i")&&(this.raws.insensitiveFlag=void 0)),this._insensitive=n}},{key:"attribute",get:function(){return this._attribute},set:function(n){this._handleEscapes("attribute",n),this._attribute=n}}]),e}(AS.default);yi.default=jn;jn.NO_QUOTE=null;jn.SINGLE_QUOTE="'";jn.DOUBLE_QUOTE='"';var eo=(Ka={"'":{quotes:"single",wrap:!0},'"':{quotes:"double",wrap:!0}},Ka[null]={isIdentifier:!0},Ka);function sd(r,e){return""+e.before+r+e.after}});var io=x((bi,ad)=>{u();"use strict";bi.__esModule=!0;bi.default=void 0;var DS=$S(Nn()),qS=Se();function $S(r){return r&&r.__esModule?r:{default:r}}function LS(r,e){r.prototype=Object.create(e.prototype),r.prototype.constructor=r,ro(r,e)}function ro(r,e){return ro=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(i,n){return i.__proto__=n,i},ro(r,e)}var MS=function(r){LS(e,r);function e(t){var i;return i=r.call(this,t)||this,i.type=qS.UNIVERSAL,i.value="*",i}return e}(DS.default);bi.default=MS;ad.exports=bi.default});var so=x((wi,od)=>{u();"use strict";wi.__esModule=!0;wi.default=void 0;var NS=FS(dt()),BS=Se();function FS(r){return r&&r.__esModule?r:{default:r}}function jS(r,e){r.prototype=Object.create(e.prototype),r.prototype.constructor=r,no(r,e)}function no(r,e){return no=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(i,n){return i.__proto__=n,i},no(r,e)}var zS=function(r){jS(e,r);function e(t){var i;return i=r.call(this,t)||this,i.type=BS.COMBINATOR,i}return e}(NS.default);wi.default=zS;od.exports=wi.default});var oo=x((vi,ld)=>{u();"use strict";vi.__esModule=!0;vi.default=void 0;var US=HS(dt()),VS=Se();function HS(r){return r&&r.__esModule?r:{default:r}}function WS(r,e){r.prototype=Object.create(e.prototype),r.prototype.constructor=r,ao(r,e)}function ao(r,e){return ao=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(i,n){return i.__proto__=n,i},ao(r,e)}var GS=function(r){WS(e,r);function e(t){var i;return i=r.call(this,t)||this,i.type=VS.NESTING,i.value="&",i}return e}(US.default);vi.default=GS;ld.exports=vi.default});var fd=x((zn,ud)=>{u();"use strict";zn.__esModule=!0;zn.default=QS;function QS(r){return r.sort(function(e,t){return e-t})}ud.exports=zn.default});var lo=x(M=>{u();"use strict";M.__esModule=!0;M.word=M.tilde=M.tab=M.str=M.space=M.slash=M.singleQuote=M.semicolon=M.plus=M.pipe=M.openSquare=M.openParenthesis=M.newline=M.greaterThan=M.feed=M.equals=M.doubleQuote=M.dollar=M.cr=M.comment=M.comma=M.combinator=M.colon=M.closeSquare=M.closeParenthesis=M.caret=M.bang=M.backslash=M.at=M.asterisk=M.ampersand=void 0;var YS=38;M.ampersand=YS;var KS=42;M.asterisk=KS;var XS=64;M.at=XS;var ZS=44;M.comma=ZS;var JS=58;M.colon=JS;var eA=59;M.semicolon=eA;var tA=40;M.openParenthesis=tA;var rA=41;M.closeParenthesis=rA;var iA=91;M.openSquare=iA;var nA=93;M.closeSquare=nA;var sA=36;M.dollar=sA;var aA=126;M.tilde=aA;var oA=94;M.caret=oA;var lA=43;M.plus=lA;var uA=61;M.equals=uA;var fA=124;M.pipe=fA;var cA=62;M.greaterThan=cA;var pA=32;M.space=pA;var cd=39;M.singleQuote=cd;var dA=34;M.doubleQuote=dA;var hA=47;M.slash=hA;var mA=33;M.bang=mA;var gA=92;M.backslash=gA;var yA=13;M.cr=yA;var bA=12;M.feed=bA;var wA=10;M.newline=wA;var vA=9;M.tab=vA;var xA=cd;M.str=xA;var kA=-1;M.comment=kA;var SA=-2;M.word=SA;var AA=-3;M.combinator=AA});var hd=x(xi=>{u();"use strict";xi.__esModule=!0;xi.FIELDS=void 0;xi.default=PA;var D=CA(lo()),nr,te;function pd(r){if(typeof WeakMap!="function")return null;var e=new WeakMap,t=new WeakMap;return(pd=function(n){return n?t:e})(r)}function CA(r,e){if(!e&&r&&r.__esModule)return r;if(r===null||typeof r!="object"&&typeof r!="function")return{default:r};var t=pd(e);if(t&&t.has(r))return t.get(r);var i={},n=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var s in r)if(s!=="default"&&Object.prototype.hasOwnProperty.call(r,s)){var a=n?Object.getOwnPropertyDescriptor(r,s):null;a&&(a.get||a.set)?Object.defineProperty(i,s,a):i[s]=r[s]}return i.default=r,t&&t.set(r,i),i}var _A=(nr={},nr[D.tab]=!0,nr[D.newline]=!0,nr[D.cr]=!0,nr[D.feed]=!0,nr),EA=(te={},te[D.space]=!0,te[D.tab]=!0,te[D.newline]=!0,te[D.cr]=!0,te[D.feed]=!0,te[D.ampersand]=!0,te[D.asterisk]=!0,te[D.bang]=!0,te[D.comma]=!0,te[D.colon]=!0,te[D.semicolon]=!0,te[D.openParenthesis]=!0,te[D.closeParenthesis]=!0,te[D.openSquare]=!0,te[D.closeSquare]=!0,te[D.singleQuote]=!0,te[D.doubleQuote]=!0,te[D.plus]=!0,te[D.pipe]=!0,te[D.tilde]=!0,te[D.greaterThan]=!0,te[D.equals]=!0,te[D.dollar]=!0,te[D.caret]=!0,te[D.slash]=!0,te),uo={},dd="0123456789abcdefABCDEF";for(Un=0;Un0?(k=a+v,S=w-y[v].length):(k=a,S=s),T=D.comment,a=k,p=k,d=w-S):c===D.slash?(w=o,T=c,p=a,d=o-s,l=w+1):(w=OA(t,o),T=D.word,p=a,d=w-s),l=w+1;break}e.push([T,a,o-s,p,d,o,l]),S&&(s=S,S=null),o=l}return e}});var kd=x((ki,xd)=>{u();"use strict";ki.__esModule=!0;ki.default=void 0;var IA=je(Da()),fo=je($a()),DA=je(Na()),md=je(Fa()),qA=je(za()),$A=je(Ha()),co=je(Ga()),LA=je(Ya()),gd=Vn(to()),MA=je(io()),po=je(so()),NA=je(oo()),BA=je(fd()),O=Vn(hd()),q=Vn(lo()),FA=Vn(Se()),ue=ii(),Vt,ho;function yd(r){if(typeof WeakMap!="function")return null;var e=new WeakMap,t=new WeakMap;return(yd=function(n){return n?t:e})(r)}function Vn(r,e){if(!e&&r&&r.__esModule)return r;if(r===null||typeof r!="object"&&typeof r!="function")return{default:r};var t=yd(e);if(t&&t.has(r))return t.get(r);var i={},n=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var s in r)if(s!=="default"&&Object.prototype.hasOwnProperty.call(r,s)){var a=n?Object.getOwnPropertyDescriptor(r,s):null;a&&(a.get||a.set)?Object.defineProperty(i,s,a):i[s]=r[s]}return i.default=r,t&&t.set(r,i),i}function je(r){return r&&r.__esModule?r:{default:r}}function bd(r,e){for(var t=0;t0){var a=this.current.last;if(a){var o=this.convertWhitespaceNodesToSpace(s),l=o.space,c=o.rawSpace;c!==void 0&&(a.rawSpaceAfter+=c),a.spaces.after+=l}else s.forEach(function(T){return i.newNode(T)})}return}var f=this.currToken,d=void 0;n>this.position&&(d=this.parseWhitespaceEquivalentTokens(n));var p;if(this.isNamedCombinator()?p=this.namedCombinator():this.currToken[O.FIELDS.TYPE]===q.combinator?(p=new po.default({value:this.content(),source:sr(this.currToken),sourceIndex:this.currToken[O.FIELDS.START_POS]}),this.position++):mo[this.currToken[O.FIELDS.TYPE]]||d||this.unexpected(),p){if(d){var h=this.convertWhitespaceNodesToSpace(d),b=h.space,v=h.rawSpace;p.spaces.before=b,p.rawSpaceBefore=v}}else{var y=this.convertWhitespaceNodesToSpace(d,!0),w=y.space,k=y.rawSpace;k||(k=w);var S={},E={spaces:{}};w.endsWith(" ")&&k.endsWith(" ")?(S.before=w.slice(0,w.length-1),E.spaces.before=k.slice(0,k.length-1)):w.startsWith(" ")&&k.startsWith(" ")?(S.after=w.slice(1),E.spaces.after=k.slice(1)):E.value=k,p=new po.default({value:" ",source:go(f,this.tokens[this.position-1]),sourceIndex:f[O.FIELDS.START_POS],spaces:S,raws:E})}return this.currToken&&this.currToken[O.FIELDS.TYPE]===q.space&&(p.spaces.after=this.optionalSpace(this.content()),this.position++),this.newNode(p)},e.comma=function(){if(this.position===this.tokens.length-1){this.root.trailingComma=!0,this.position++;return}this.current._inferEndPosition();var i=new fo.default({source:{start:wd(this.tokens[this.position+1])},sourceIndex:this.tokens[this.position+1][O.FIELDS.START_POS]});this.current.parent.append(i),this.current=i,this.position++},e.comment=function(){var i=this.currToken;this.newNode(new md.default({value:this.content(),source:sr(i),sourceIndex:i[O.FIELDS.START_POS]})),this.position++},e.error=function(i,n){throw this.root.error(i,n)},e.missingBackslash=function(){return this.error("Expected a backslash preceding the semicolon.",{index:this.currToken[O.FIELDS.START_POS]})},e.missingParenthesis=function(){return this.expected("opening parenthesis",this.currToken[O.FIELDS.START_POS])},e.missingSquareBracket=function(){return this.expected("opening square bracket",this.currToken[O.FIELDS.START_POS])},e.unexpected=function(){return this.error("Unexpected '"+this.content()+"'. Escaping special characters with \\ may help.",this.currToken[O.FIELDS.START_POS])},e.unexpectedPipe=function(){return this.error("Unexpected '|'.",this.currToken[O.FIELDS.START_POS])},e.namespace=function(){var i=this.prevToken&&this.content(this.prevToken)||!0;if(this.nextToken[O.FIELDS.TYPE]===q.word)return this.position++,this.word(i);if(this.nextToken[O.FIELDS.TYPE]===q.asterisk)return this.position++,this.universal(i);this.unexpectedPipe()},e.nesting=function(){if(this.nextToken){var i=this.content(this.nextToken);if(i==="|"){this.position++;return}}var n=this.currToken;this.newNode(new NA.default({value:this.content(),source:sr(n),sourceIndex:n[O.FIELDS.START_POS]})),this.position++},e.parentheses=function(){var i=this.current.last,n=1;if(this.position++,i&&i.type===FA.PSEUDO){var s=new fo.default({source:{start:wd(this.tokens[this.position])},sourceIndex:this.tokens[this.position][O.FIELDS.START_POS]}),a=this.current;for(i.append(s),this.current=s;this.position1&&i.nextToken&&i.nextToken[O.FIELDS.TYPE]===q.openParenthesis&&i.error("Misplaced parenthesis.",{index:i.nextToken[O.FIELDS.START_POS]})});else return this.expected(["pseudo-class","pseudo-element"],this.currToken[O.FIELDS.START_POS])},e.space=function(){var i=this.content();this.position===0||this.prevToken[O.FIELDS.TYPE]===q.comma||this.prevToken[O.FIELDS.TYPE]===q.openParenthesis||this.current.nodes.every(function(n){return n.type==="comment"})?(this.spaces=this.optionalSpace(i),this.position++):this.position===this.tokens.length-1||this.nextToken[O.FIELDS.TYPE]===q.comma||this.nextToken[O.FIELDS.TYPE]===q.closeParenthesis?(this.current.last.spaces.after=this.optionalSpace(i),this.position++):this.combinator()},e.string=function(){var i=this.currToken;this.newNode(new co.default({value:this.content(),source:sr(i),sourceIndex:i[O.FIELDS.START_POS]})),this.position++},e.universal=function(i){var n=this.nextToken;if(n&&this.content(n)==="|")return this.position++,this.namespace();var s=this.currToken;this.newNode(new MA.default({value:this.content(),source:sr(s),sourceIndex:s[O.FIELDS.START_POS]}),i),this.position++},e.splitWord=function(i,n){for(var s=this,a=this.nextToken,o=this.content();a&&~[q.dollar,q.caret,q.equals,q.word].indexOf(a[O.FIELDS.TYPE]);){this.position++;var l=this.content();if(o+=l,l.lastIndexOf("\\")===l.length-1){var c=this.nextToken;c&&c[O.FIELDS.TYPE]===q.space&&(o+=this.requiredSpace(this.content(c)),this.position++)}a=this.nextToken}var f=yo(o,".").filter(function(b){var v=o[b-1]==="\\",y=/^\d+\.\d+%$/.test(o);return!v&&!y}),d=yo(o,"#").filter(function(b){return o[b-1]!=="\\"}),p=yo(o,"#{");p.length&&(d=d.filter(function(b){return!~p.indexOf(b)}));var h=(0,BA.default)(UA([0].concat(f,d)));h.forEach(function(b,v){var y=h[v+1]||o.length,w=o.slice(b,y);if(v===0&&n)return n.call(s,w,h.length);var k,S=s.currToken,E=S[O.FIELDS.START_POS]+h[v],T=Ht(S[1],S[2]+b,S[3],S[2]+(y-1));if(~f.indexOf(b)){var B={value:w.slice(1),source:T,sourceIndex:E};k=new DA.default(ar(B,"value"))}else if(~d.indexOf(b)){var N={value:w.slice(1),source:T,sourceIndex:E};k=new qA.default(ar(N,"value"))}else{var R={value:w,source:T,sourceIndex:E};ar(R,"value"),k=new $A.default(R)}s.newNode(k,i),i=null}),this.position++},e.word=function(i){var n=this.nextToken;return n&&this.content(n)==="|"?(this.position++,this.namespace()):this.splitWord(i)},e.loop=function(){for(;this.position{u();"use strict";Si.__esModule=!0;Si.default=void 0;var HA=WA(kd());function WA(r){return r&&r.__esModule?r:{default:r}}var GA=function(){function r(t,i){this.func=t||function(){},this.funcRes=null,this.options=i}var e=r.prototype;return e._shouldUpdateSelector=function(i,n){n===void 0&&(n={});var s=Object.assign({},this.options,n);return s.updateSelector===!1?!1:typeof i!="string"},e._isLossy=function(i){i===void 0&&(i={});var n=Object.assign({},this.options,i);return n.lossless===!1},e._root=function(i,n){n===void 0&&(n={});var s=new HA.default(i,this._parseOptions(n));return s.root},e._parseOptions=function(i){return{lossy:this._isLossy(i)}},e._run=function(i,n){var s=this;return n===void 0&&(n={}),new Promise(function(a,o){try{var l=s._root(i,n);Promise.resolve(s.func(l)).then(function(c){var f=void 0;return s._shouldUpdateSelector(i,n)&&(f=l.toString(),i.selector=f),{transform:c,root:l,string:f}}).then(a,o)}catch(c){o(c);return}})},e._runSync=function(i,n){n===void 0&&(n={});var s=this._root(i,n),a=this.func(s);if(a&&typeof a.then=="function")throw new Error("Selector processor returned a promise to a synchronous call.");var o=void 0;return n.updateSelector&&typeof i!="string"&&(o=s.toString(),i.selector=o),{transform:a,root:s,string:o}},e.ast=function(i,n){return this._run(i,n).then(function(s){return s.root})},e.astSync=function(i,n){return this._runSync(i,n).root},e.transform=function(i,n){return this._run(i,n).then(function(s){return s.transform})},e.transformSync=function(i,n){return this._runSync(i,n).transform},e.process=function(i,n){return this._run(i,n).then(function(s){return s.string||s.root.toString()})},e.processSync=function(i,n){var s=this._runSync(i,n);return s.string||s.root.toString()},r}();Si.default=GA;Sd.exports=Si.default});var Cd=x(ne=>{u();"use strict";ne.__esModule=!0;ne.universal=ne.tag=ne.string=ne.selector=ne.root=ne.pseudo=ne.nesting=ne.id=ne.comment=ne.combinator=ne.className=ne.attribute=void 0;var QA=ze(to()),YA=ze(Na()),KA=ze(so()),XA=ze(Fa()),ZA=ze(za()),JA=ze(oo()),eC=ze(Ya()),tC=ze(Da()),rC=ze($a()),iC=ze(Ga()),nC=ze(Ha()),sC=ze(io());function ze(r){return r&&r.__esModule?r:{default:r}}var aC=function(e){return new QA.default(e)};ne.attribute=aC;var oC=function(e){return new YA.default(e)};ne.className=oC;var lC=function(e){return new KA.default(e)};ne.combinator=lC;var uC=function(e){return new XA.default(e)};ne.comment=uC;var fC=function(e){return new ZA.default(e)};ne.id=fC;var cC=function(e){return new JA.default(e)};ne.nesting=cC;var pC=function(e){return new eC.default(e)};ne.pseudo=pC;var dC=function(e){return new tC.default(e)};ne.root=dC;var hC=function(e){return new rC.default(e)};ne.selector=hC;var mC=function(e){return new iC.default(e)};ne.string=mC;var gC=function(e){return new nC.default(e)};ne.tag=gC;var yC=function(e){return new sC.default(e)};ne.universal=yC});var Td=x(Z=>{u();"use strict";Z.__esModule=!0;Z.isComment=Z.isCombinator=Z.isClassName=Z.isAttribute=void 0;Z.isContainer=TC;Z.isIdentifier=void 0;Z.isNamespace=RC;Z.isNesting=void 0;Z.isNode=bo;Z.isPseudo=void 0;Z.isPseudoClass=OC;Z.isPseudoElement=Od;Z.isUniversal=Z.isTag=Z.isString=Z.isSelector=Z.isRoot=void 0;var fe=Se(),Oe,bC=(Oe={},Oe[fe.ATTRIBUTE]=!0,Oe[fe.CLASS]=!0,Oe[fe.COMBINATOR]=!0,Oe[fe.COMMENT]=!0,Oe[fe.ID]=!0,Oe[fe.NESTING]=!0,Oe[fe.PSEUDO]=!0,Oe[fe.ROOT]=!0,Oe[fe.SELECTOR]=!0,Oe[fe.STRING]=!0,Oe[fe.TAG]=!0,Oe[fe.UNIVERSAL]=!0,Oe);function bo(r){return typeof r=="object"&&bC[r.type]}function Ue(r,e){return bo(e)&&e.type===r}var _d=Ue.bind(null,fe.ATTRIBUTE);Z.isAttribute=_d;var wC=Ue.bind(null,fe.CLASS);Z.isClassName=wC;var vC=Ue.bind(null,fe.COMBINATOR);Z.isCombinator=vC;var xC=Ue.bind(null,fe.COMMENT);Z.isComment=xC;var kC=Ue.bind(null,fe.ID);Z.isIdentifier=kC;var SC=Ue.bind(null,fe.NESTING);Z.isNesting=SC;var wo=Ue.bind(null,fe.PSEUDO);Z.isPseudo=wo;var AC=Ue.bind(null,fe.ROOT);Z.isRoot=AC;var CC=Ue.bind(null,fe.SELECTOR);Z.isSelector=CC;var _C=Ue.bind(null,fe.STRING);Z.isString=_C;var Ed=Ue.bind(null,fe.TAG);Z.isTag=Ed;var EC=Ue.bind(null,fe.UNIVERSAL);Z.isUniversal=EC;function Od(r){return wo(r)&&r.value&&(r.value.startsWith("::")||r.value.toLowerCase()===":before"||r.value.toLowerCase()===":after"||r.value.toLowerCase()===":first-letter"||r.value.toLowerCase()===":first-line")}function OC(r){return wo(r)&&!Od(r)}function TC(r){return!!(bo(r)&&r.walk)}function RC(r){return _d(r)||Ed(r)}});var Rd=x(Ke=>{u();"use strict";Ke.__esModule=!0;var vo=Se();Object.keys(vo).forEach(function(r){r==="default"||r==="__esModule"||r in Ke&&Ke[r]===vo[r]||(Ke[r]=vo[r])});var xo=Cd();Object.keys(xo).forEach(function(r){r==="default"||r==="__esModule"||r in Ke&&Ke[r]===xo[r]||(Ke[r]=xo[r])});var ko=Td();Object.keys(ko).forEach(function(r){r==="default"||r==="__esModule"||r in Ke&&Ke[r]===ko[r]||(Ke[r]=ko[r])})});var it=x((Ai,Id)=>{u();"use strict";Ai.__esModule=!0;Ai.default=void 0;var PC=qC(Ad()),IC=DC(Rd());function Pd(r){if(typeof WeakMap!="function")return null;var e=new WeakMap,t=new WeakMap;return(Pd=function(n){return n?t:e})(r)}function DC(r,e){if(!e&&r&&r.__esModule)return r;if(r===null||typeof r!="object"&&typeof r!="function")return{default:r};var t=Pd(e);if(t&&t.has(r))return t.get(r);var i={},n=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var s in r)if(s!=="default"&&Object.prototype.hasOwnProperty.call(r,s)){var a=n?Object.getOwnPropertyDescriptor(r,s):null;a&&(a.get||a.set)?Object.defineProperty(i,s,a):i[s]=r[s]}return i.default=r,t&&t.set(r,i),i}function qC(r){return r&&r.__esModule?r:{default:r}}var So=function(e){return new PC.default(e)};Object.assign(So,IC);delete So.__esModule;var $C=So;Ai.default=$C;Id.exports=Ai.default});function mt(r){return["fontSize","outline"].includes(r)?e=>(typeof e=="function"&&(e=e({})),Array.isArray(e)&&(e=e[0]),e):r==="fontFamily"?e=>{typeof e=="function"&&(e=e({}));let t=Array.isArray(e)&&ke(e[1])?e[0]:e;return Array.isArray(t)?t.join(", "):t}:["boxShadow","transitionProperty","transitionDuration","transitionDelay","transitionTimingFunction","backgroundImage","backgroundSize","backgroundColor","cursor","animation"].includes(r)?e=>(typeof e=="function"&&(e=e({})),Array.isArray(e)&&(e=e.join(", ")),e):["gridTemplateColumns","gridTemplateRows","objectPosition"].includes(r)?e=>(typeof e=="function"&&(e=e({})),typeof e=="string"&&(e=ee.list.comma(e).join(" ")),e):(e,t={})=>(typeof e=="function"&&(e=e(t)),e)}var Ci=P(()=>{u();Ot();Kt()});var Bd=x((MI,Oo)=>{u();var{AtRule:LC,Rule:Dd}=$e(),qd=it();function Ao(r,e){let t;try{qd(i=>{t=i}).processSync(r)}catch(i){throw r.includes(":")?e?e.error("Missed semicolon"):i:e?e.error(i.message):i}return t.at(0)}function $d(r,e){let t=!1;return r.each(i=>{if(i.type==="nesting"){let n=e.clone({});i.value!=="&"?i.replaceWith(Ao(i.value.replace("&",n.toString()))):i.replaceWith(n),t=!0}else"nodes"in i&&i.nodes&&$d(i,e)&&(t=!0)}),t}function Ld(r,e){let t=[];return r.selectors.forEach(i=>{let n=Ao(i,r);e.selectors.forEach(s=>{if(!s)return;let a=Ao(s,e);$d(a,n)||(a.prepend(qd.combinator({value:" "})),a.prepend(n.clone({}))),t.push(a.toString())})}),t}function Hn(r,e){let t=r.prev();for(e.after(r);t&&t.type==="comment";){let i=t.prev();e.after(t),t=i}return r}function MC(r){return function e(t,i,n,s=n){let a=[];if(i.each(o=>{o.type==="rule"&&n?s&&(o.selectors=Ld(t,o)):o.type==="atrule"&&o.nodes?r[o.name]?e(t,o,s):i[_o]!==!1&&a.push(o):a.push(o)}),n&&a.length){let o=t.clone({nodes:[]});for(let l of a)o.append(l);i.prepend(o)}}}function Co(r,e,t){let i=new Dd({nodes:[],selector:r});return i.append(e),t.after(i),i}function Md(r,e){let t={};for(let i of r)t[i]=!0;if(e)for(let i of e)t[i.replace(/^@/,"")]=!0;return t}function NC(r){r=r.trim();let e=r.match(/^\((.*)\)$/);if(!e)return{selector:r,type:"basic"};let t=e[1].match(/^(with(?:out)?):(.+)$/);if(t){let i=t[1]==="with",n=Object.fromEntries(t[2].trim().split(/\s+/).map(a=>[a,!0]));if(i&&n.all)return{type:"noop"};let s=a=>!!n[a];return n.all?s=()=>!0:i&&(s=a=>a==="all"?!1:!n[a]),{escapes:s,type:"withrules"}}return{type:"unknown"}}function BC(r){let e=[],t=r.parent;for(;t&&t instanceof LC;)e.push(t),t=t.parent;return e}function FC(r){let e=r[Nd];if(!e)r.after(r.nodes);else{let t=r.nodes,i,n=-1,s,a,o,l=BC(r);if(l.forEach((c,f)=>{if(e(c.name))i=c,n=f,a=o;else{let d=o;o=c.clone({nodes:[]}),d&&o.append(d),s=s||o}}),i?a?(s.append(t),i.after(a)):i.after(t):r.after(t),r.next()&&i){let c;l.slice(0,n+1).forEach((f,d,p)=>{let h=c;c=f.clone({nodes:[]}),h&&c.append(h);let b=[],y=(p[d-1]||r).next();for(;y;)b.push(y),y=y.next();c.append(b)}),c&&(a||t[t.length-1]).after(c)}}r.remove()}var _o=Symbol("rootRuleMergeSel"),Nd=Symbol("rootRuleEscapes");function jC(r){let{params:e}=r,{escapes:t,selector:i,type:n}=NC(e);if(n==="unknown")throw r.error(`Unknown @${r.name} parameter ${JSON.stringify(e)}`);if(n==="basic"&&i){let s=new Dd({nodes:r.nodes,selector:i});r.removeAll(),r.append(s)}r[Nd]=t,r[_o]=t?!t("all"):n==="noop"}var Eo=Symbol("hasRootRule");Oo.exports=(r={})=>{let e=Md(["media","supports","layer","container","starting-style"],r.bubble),t=MC(e),i=Md(["document","font-face","keyframes","-webkit-keyframes","-moz-keyframes"],r.unwrap),n=(r.rootRuleName||"at-root").replace(/^@/,""),s=r.preserveEmpty;return{Once(a){a.walkAtRules(n,o=>{jC(o),a[Eo]=!0})},postcssPlugin:"postcss-nested",RootExit(a){a[Eo]&&(a.walkAtRules(n,FC),a[Eo]=!1)},Rule(a){let o=!1,l=a,c=!1,f=[];a.each(d=>{d.type==="rule"?(f.length&&(l=Co(a.selector,f,l),f=[]),c=!0,o=!0,d.selectors=Ld(a,d),l=Hn(d,l)):d.type==="atrule"?(f.length&&(l=Co(a.selector,f,l),f=[]),d.name===n?(o=!0,t(a,d,!0,d[_o]),l=Hn(d,l)):e[d.name]?(c=!0,o=!0,t(a,d,!0),l=Hn(d,l)):i[d.name]?(c=!0,o=!0,t(a,d,!1),l=Hn(d,l)):c&&f.push(d)):d.type==="decl"&&c&&f.push(d)}),f.length&&(l=Co(a.selector,f,l)),o&&s!==!0&&(a.raws.semicolon=!0,a.nodes.length===0&&a.remove())}}};Oo.exports.postcss=!0});var Ud=x((NI,zd)=>{u();"use strict";var Fd=/-(\w|$)/g,jd=(r,e)=>e.toUpperCase(),zC=r=>(r=r.toLowerCase(),r==="float"?"cssFloat":r.startsWith("-ms-")?r.substr(1).replace(Fd,jd):r.replace(Fd,jd));zd.exports=zC});var Po=x((BI,Vd)=>{u();var UC=Ud(),VC={boxFlex:!0,boxFlexGroup:!0,columnCount:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,strokeDashoffset:!0,strokeOpacity:!0,strokeWidth:!0};function To(r){return typeof r.nodes=="undefined"?!0:Ro(r)}function Ro(r){let e,t={};return r.each(i=>{if(i.type==="atrule")e="@"+i.name,i.params&&(e+=" "+i.params),typeof t[e]=="undefined"?t[e]=To(i):Array.isArray(t[e])?t[e].push(To(i)):t[e]=[t[e],To(i)];else if(i.type==="rule"){let n=Ro(i);if(t[i.selector])for(let s in n)t[i.selector][s]=n[s];else t[i.selector]=n}else if(i.type==="decl"){i.prop[0]==="-"&&i.prop[1]==="-"||i.parent&&i.parent.selector===":export"?e=i.prop:e=UC(i.prop);let n=i.value;!isNaN(i.value)&&VC[e]&&(n=parseFloat(i.value)),i.important&&(n+=" !important"),typeof t[e]=="undefined"?t[e]=n:Array.isArray(t[e])?t[e].push(n):t[e]=[t[e],n]}}),t}Vd.exports=Ro});var Wn=x((FI,Qd)=>{u();var _i=$e(),Hd=/\s*!important\s*$/i,HC={"box-flex":!0,"box-flex-group":!0,"column-count":!0,flex:!0,"flex-grow":!0,"flex-positive":!0,"flex-shrink":!0,"flex-negative":!0,"font-weight":!0,"line-clamp":!0,"line-height":!0,opacity:!0,order:!0,orphans:!0,"tab-size":!0,widows:!0,"z-index":!0,zoom:!0,"fill-opacity":!0,"stroke-dashoffset":!0,"stroke-opacity":!0,"stroke-width":!0};function WC(r){return r.replace(/([A-Z])/g,"-$1").replace(/^ms-/,"-ms-").toLowerCase()}function Wd(r,e,t){t===!1||t===null||(e.startsWith("--")||(e=WC(e)),typeof t=="number"&&(t===0||HC[e]?t=t.toString():t+="px"),e==="css-float"&&(e="float"),Hd.test(t)?(t=t.replace(Hd,""),r.push(_i.decl({prop:e,value:t,important:!0}))):r.push(_i.decl({prop:e,value:t})))}function Gd(r,e,t){let i=_i.atRule({name:e[1],params:e[3]||""});typeof t=="object"&&(i.nodes=[],Io(t,i)),r.push(i)}function Io(r,e){let t,i,n;for(t in r)if(i=r[t],!(i===null||typeof i=="undefined"))if(t[0]==="@"){let s=t.match(/@(\S+)(\s+([\W\w]*)\s*)?/);if(Array.isArray(i))for(let a of i)Gd(e,s,a);else Gd(e,s,i)}else if(Array.isArray(i))for(let s of i)Wd(e,t,s);else typeof i=="object"?(n=_i.rule({selector:t}),Io(i,n),e.push(n)):Wd(e,t,i)}Qd.exports=function(r){let e=_i.root();return Io(r,e),e}});var Do=x((jI,Yd)=>{u();var GC=Po();Yd.exports=function(e){return console&&console.warn&&e.warnings().forEach(t=>{let i=t.plugin||"PostCSS";console.warn(i+": "+t.text)}),GC(e.root)}});var Xd=x((zI,Kd)=>{u();var QC=$e(),YC=Do(),KC=Wn();Kd.exports=function(e){let t=QC(e);return async i=>{let n=await t.process(i,{parser:KC,from:void 0});return YC(n)}}});var Jd=x((UI,Zd)=>{u();var XC=$e(),ZC=Do(),JC=Wn();Zd.exports=function(r){let e=XC(r);return t=>{let i=e.process(t,{parser:JC,from:void 0});return ZC(i)}}});var th=x((VI,eh)=>{u();var e_=Po(),t_=Wn(),r_=Xd(),i_=Jd();eh.exports={objectify:e_,parse:t_,async:r_,sync:i_}});var or,rh,HI,WI,GI,QI,ih=P(()=>{u();or=pe(th()),rh=or.default,HI=or.default.objectify,WI=or.default.parse,GI=or.default.async,QI=or.default.sync});function lr(r){return Array.isArray(r)?r.flatMap(e=>ee([(0,nh.default)({bubble:["screen"]})]).process(e,{parser:rh}).root.nodes):lr([r])}var nh,qo=P(()=>{u();Ot();nh=pe(Bd());ih()});function ur(r,e,t=!1){if(r==="")return e;let i=typeof e=="string"?(0,sh.default)().astSync(e):e;return i.walkClasses(n=>{let s=n.value,a=t&&s.startsWith("-");n.value=a?`-${r}${s.slice(1)}`:`${r}${s}`}),typeof e=="string"?i.toString():i}var sh,Gn=P(()=>{u();sh=pe(it())});function Te(r){let e=ah.default.className();return e.value=r,jt(e?.raws?.value??e.value)}var ah,fr=P(()=>{u();ah=pe(it());Zi()});function $o(r){return jt(`.${Te(r)}`)}function Qn(r,e){return $o(Ei(r,e))}function Ei(r,e){return e==="DEFAULT"?r:e==="-"||e==="-DEFAULT"?`-${r}`:e.startsWith("-")?`-${r}${e}`:e.startsWith("/")?`${r}${e}`:`${r}-${e}`}var Lo=P(()=>{u();fr();Zi()});function L(r,e=[[r,[r]]],{filterDefault:t=!1,...i}={}){let n=mt(r);return function({matchUtilities:s,theme:a}){for(let o of e){let l=Array.isArray(o[0])?o:[o];s(l.reduce((c,[f,d])=>Object.assign(c,{[f]:p=>d.reduce((h,b)=>Array.isArray(b)?Object.assign(h,{[b[0]]:b[1]}):Object.assign(h,{[b]:n(p)}),{})}),{}),{...i,values:t?Object.fromEntries(Object.entries(a(r)??{}).filter(([c])=>c!=="DEFAULT")):a(r)})}}}var oh=P(()=>{u();Ci()});function Tt(r){return r=Array.isArray(r)?r:[r],r.map(e=>{let t=e.values.map(i=>i.raw!==void 0?i.raw:[i.min&&`(min-width: ${i.min})`,i.max&&`(max-width: ${i.max})`].filter(Boolean).join(" and "));return e.not?`not all and ${t}`:t}).join(", ")}var Yn=P(()=>{u()});function Mo(r){return r.split(f_).map(t=>{let i=t.trim(),n={value:i},s=i.split(c_),a=new Set;for(let o of s)!a.has("DIRECTIONS")&&n_.has(o)?(n.direction=o,a.add("DIRECTIONS")):!a.has("PLAY_STATES")&&s_.has(o)?(n.playState=o,a.add("PLAY_STATES")):!a.has("FILL_MODES")&&a_.has(o)?(n.fillMode=o,a.add("FILL_MODES")):!a.has("ITERATION_COUNTS")&&(o_.has(o)||p_.test(o))?(n.iterationCount=o,a.add("ITERATION_COUNTS")):!a.has("TIMING_FUNCTION")&&l_.has(o)||!a.has("TIMING_FUNCTION")&&u_.some(l=>o.startsWith(`${l}(`))?(n.timingFunction=o,a.add("TIMING_FUNCTION")):!a.has("DURATION")&&lh.test(o)?(n.duration=o,a.add("DURATION")):!a.has("DELAY")&&lh.test(o)?(n.delay=o,a.add("DELAY")):a.has("NAME")?(n.unknown||(n.unknown=[]),n.unknown.push(o)):(n.name=o,a.add("NAME"));return n})}var n_,s_,a_,o_,l_,u_,f_,c_,lh,p_,uh=P(()=>{u();n_=new Set(["normal","reverse","alternate","alternate-reverse"]),s_=new Set(["running","paused"]),a_=new Set(["none","forwards","backwards","both"]),o_=new Set(["infinite"]),l_=new Set(["linear","ease","ease-in","ease-out","ease-in-out","step-start","step-end"]),u_=["cubic-bezier","steps"],f_=/\,(?![^(]*\))/g,c_=/\ +(?![^(]*\))/g,lh=/^(-?[\d.]+m?s)$/,p_=/^(\d+)$/});var fh,xe,ch=P(()=>{u();fh=r=>Object.assign({},...Object.entries(r??{}).flatMap(([e,t])=>typeof t=="object"?Object.entries(fh(t)).map(([i,n])=>({[e+(i==="DEFAULT"?"":`-${i}`)]:n})):[{[`${e}`]:t}])),xe=fh});var dh,ph=P(()=>{dh="3.4.17"});function Rt(r,e=!0){return Array.isArray(r)?r.map(t=>{if(e&&Array.isArray(t))throw new Error("The tuple syntax is not supported for `screens`.");if(typeof t=="string")return{name:t.toString(),not:!1,values:[{min:t,max:void 0}]};let[i,n]=t;return i=i.toString(),typeof n=="string"?{name:i,not:!1,values:[{min:n,max:void 0}]}:Array.isArray(n)?{name:i,not:!1,values:n.map(s=>mh(s))}:{name:i,not:!1,values:[mh(n)]}}):Rt(Object.entries(r??{}),!1)}function Kn(r){return r.values.length!==1?{result:!1,reason:"multiple-values"}:r.values[0].raw!==void 0?{result:!1,reason:"raw-values"}:r.values[0].min!==void 0&&r.values[0].max!==void 0?{result:!1,reason:"min-and-max"}:{result:!0,reason:null}}function hh(r,e,t){let i=Xn(e,r),n=Xn(t,r),s=Kn(i),a=Kn(n);if(s.reason==="multiple-values"||a.reason==="multiple-values")throw new Error("Attempted to sort a screen with multiple values. This should never happen. Please open a bug report.");if(s.reason==="raw-values"||a.reason==="raw-values")throw new Error("Attempted to sort a screen with raw values. This should never happen. Please open a bug report.");if(s.reason==="min-and-max"||a.reason==="min-and-max")throw new Error("Attempted to sort a screen with both min and max values. This should never happen. Please open a bug report.");let{min:o,max:l}=i.values[0],{min:c,max:f}=n.values[0];e.not&&([o,l]=[l,o]),t.not&&([c,f]=[f,c]),o=o===void 0?o:parseFloat(o),l=l===void 0?l:parseFloat(l),c=c===void 0?c:parseFloat(c),f=f===void 0?f:parseFloat(f);let[d,p]=r==="min"?[o,c]:[f,l];return d-p}function Xn(r,e){return typeof r=="object"?r:{name:"arbitrary-screen",values:[{[e]:r}]}}function mh({"min-width":r,min:e=r,max:t,raw:i}={}){return{min:e,max:t,raw:i}}var Zn=P(()=>{u()});function Jn(r,e){r.walkDecls(t=>{if(e.includes(t.prop)){t.remove();return}for(let i of e)t.value.includes(`/ var(${i})`)?t.value=t.value.replace(`/ var(${i})`,""):t.value.includes(`/ var(${i}, 1)`)&&(t.value=t.value.replace(`/ var(${i}, 1)`,""))})}var gh=P(()=>{u()});var se,Xe,nt,ge,yh,bh=P(()=>{u();ft();et();Ot();oh();Yn();fr();uh();ch();Lr();ra();Kt();Ci();ph();Be();Zn();Ys();gh();ct();Br();Oi();se={childVariant:({addVariant:r})=>{r("*","& > *")},pseudoElementVariants:({addVariant:r})=>{r("first-letter","&::first-letter"),r("first-line","&::first-line"),r("marker",[({container:e})=>(Jn(e,["--tw-text-opacity"]),"& *::marker"),({container:e})=>(Jn(e,["--tw-text-opacity"]),"&::marker")]),r("selection",["& *::selection","&::selection"]),r("file","&::file-selector-button"),r("placeholder","&::placeholder"),r("backdrop","&::backdrop"),r("before",({container:e})=>(e.walkRules(t=>{let i=!1;t.walkDecls("content",()=>{i=!0}),i||t.prepend(ee.decl({prop:"content",value:"var(--tw-content)"}))}),"&::before")),r("after",({container:e})=>(e.walkRules(t=>{let i=!1;t.walkDecls("content",()=>{i=!0}),i||t.prepend(ee.decl({prop:"content",value:"var(--tw-content)"}))}),"&::after"))},pseudoClassVariants:({addVariant:r,matchVariant:e,config:t,prefix:i})=>{let n=[["first","&:first-child"],["last","&:last-child"],["only","&:only-child"],["odd","&:nth-child(odd)"],["even","&:nth-child(even)"],"first-of-type","last-of-type","only-of-type",["visited",({container:a})=>(Jn(a,["--tw-text-opacity","--tw-border-opacity","--tw-bg-opacity"]),"&:visited")],"target",["open","&[open]"],"default","checked","indeterminate","placeholder-shown","autofill","optional","required","valid","invalid","in-range","out-of-range","read-only","empty","focus-within",["hover",we(t(),"hoverOnlyWhenSupported")?"@media (hover: hover) and (pointer: fine) { &:hover }":"&:hover"],"focus","focus-visible","active","enabled","disabled"].map(a=>Array.isArray(a)?a:[a,`&:${a}`]);for(let[a,o]of n)r(a,l=>typeof o=="function"?o(l):o);let s={group:(a,{modifier:o})=>o?[`:merge(${i(".group")}\\/${Te(o)})`," &"]:[`:merge(${i(".group")})`," &"],peer:(a,{modifier:o})=>o?[`:merge(${i(".peer")}\\/${Te(o)})`," ~ &"]:[`:merge(${i(".peer")})`," ~ &"]};for(let[a,o]of Object.entries(s))e(a,(l="",c)=>{let f=K(typeof l=="function"?l(c):l);f.includes("&")||(f="&"+f);let[d,p]=o("",c),h=null,b=null,v=0;for(let y=0;y{r("ltr",'&:where([dir="ltr"], [dir="ltr"] *)'),r("rtl",'&:where([dir="rtl"], [dir="rtl"] *)')},reducedMotionVariants:({addVariant:r})=>{r("motion-safe","@media (prefers-reduced-motion: no-preference)"),r("motion-reduce","@media (prefers-reduced-motion: reduce)")},darkVariants:({config:r,addVariant:e})=>{let[t,i=".dark"]=[].concat(r("darkMode","media"));if(t===!1&&(t="media",G.warn("darkmode-false",["The `darkMode` option in your Tailwind CSS configuration is set to `false`, which now behaves the same as `media`.","Change `darkMode` to `media` or remove it entirely.","https://tailwindcss.com/docs/upgrade-guide#remove-dark-mode-configuration"])),t==="variant"){let n;if(Array.isArray(i)||typeof i=="function"?n=i:typeof i=="string"&&(n=[i]),Array.isArray(n))for(let s of n)s===".dark"?(t=!1,G.warn("darkmode-variant-without-selector",["When using `variant` for `darkMode`, you must provide a selector.",'Example: `darkMode: ["variant", ".your-selector &"]`'])):s.includes("&")||(t=!1,G.warn("darkmode-variant-without-ampersand",["When using `variant` for `darkMode`, your selector must contain `&`.",'Example `darkMode: ["variant", ".your-selector &"]`']));i=n}t==="selector"?e("dark",`&:where(${i}, ${i} *)`):t==="media"?e("dark","@media (prefers-color-scheme: dark)"):t==="variant"?e("dark",i):t==="class"&&e("dark",`&:is(${i} *)`)},printVariant:({addVariant:r})=>{r("print","@media print")},screenVariants:({theme:r,addVariant:e,matchVariant:t})=>{let i=r("screens")??{},n=Object.values(i).every(w=>typeof w=="string"),s=Rt(r("screens")),a=new Set([]);function o(w){return w.match(/(\D+)$/)?.[1]??"(none)"}function l(w){w!==void 0&&a.add(o(w))}function c(w){return l(w),a.size===1}for(let w of s)for(let k of w.values)l(k.min),l(k.max);let f=a.size<=1;function d(w){return Object.fromEntries(s.filter(k=>Kn(k).result).map(k=>{let{min:S,max:E}=k.values[0];if(w==="min"&&S!==void 0)return k;if(w==="min"&&E!==void 0)return{...k,not:!k.not};if(w==="max"&&E!==void 0)return k;if(w==="max"&&S!==void 0)return{...k,not:!k.not}}).map(k=>[k.name,k]))}function p(w){return(k,S)=>hh(w,k.value,S.value)}let h=p("max"),b=p("min");function v(w){return k=>{if(n)if(f){if(typeof k=="string"&&!c(k))return G.warn("minmax-have-mixed-units",["The `min-*` and `max-*` variants are not supported with a `screens` configuration containing mixed units."]),[]}else return G.warn("mixed-screen-units",["The `min-*` and `max-*` variants are not supported with a `screens` configuration containing mixed units."]),[];else return G.warn("complex-screen-config",["The `min-*` and `max-*` variants are not supported with a `screens` configuration containing objects."]),[];return[`@media ${Tt(Xn(k,w))}`]}}t("max",v("max"),{sort:h,values:n?d("max"):{}});let y="min-screens";for(let w of s)e(w.name,`@media ${Tt(w)}`,{id:y,sort:n&&f?b:void 0,value:w});t("min",v("min"),{id:y,sort:b})},supportsVariants:({matchVariant:r,theme:e})=>{r("supports",(t="")=>{let i=K(t),n=/^\w*\s*\(/.test(i);return i=n?i.replace(/\b(and|or|not)\b/g," $1 "):i,n?`@supports ${i}`:(i.includes(":")||(i=`${i}: var(--tw)`),i.startsWith("(")&&i.endsWith(")")||(i=`(${i})`),`@supports ${i}`)},{values:e("supports")??{}})},hasVariants:({matchVariant:r,prefix:e})=>{r("has",t=>`&:has(${K(t)})`,{values:{},[Pt]:{respectPrefix:!1}}),r("group-has",(t,{modifier:i})=>i?`:merge(${e(".group")}\\/${i}):has(${K(t)}) &`:`:merge(${e(".group")}):has(${K(t)}) &`,{values:{},[Pt]:{respectPrefix:!1}}),r("peer-has",(t,{modifier:i})=>i?`:merge(${e(".peer")}\\/${i}):has(${K(t)}) ~ &`:`:merge(${e(".peer")}):has(${K(t)}) ~ &`,{values:{},[Pt]:{respectPrefix:!1}})},ariaVariants:({matchVariant:r,theme:e})=>{r("aria",t=>`&[aria-${Ye(K(t))}]`,{values:e("aria")??{}}),r("group-aria",(t,{modifier:i})=>i?`:merge(.group\\/${i})[aria-${Ye(K(t))}] &`:`:merge(.group)[aria-${Ye(K(t))}] &`,{values:e("aria")??{}}),r("peer-aria",(t,{modifier:i})=>i?`:merge(.peer\\/${i})[aria-${Ye(K(t))}] ~ &`:`:merge(.peer)[aria-${Ye(K(t))}] ~ &`,{values:e("aria")??{}})},dataVariants:({matchVariant:r,theme:e})=>{r("data",t=>`&[data-${Ye(K(t))}]`,{values:e("data")??{}}),r("group-data",(t,{modifier:i})=>i?`:merge(.group\\/${i})[data-${Ye(K(t))}] &`:`:merge(.group)[data-${Ye(K(t))}] &`,{values:e("data")??{}}),r("peer-data",(t,{modifier:i})=>i?`:merge(.peer\\/${i})[data-${Ye(K(t))}] ~ &`:`:merge(.peer)[data-${Ye(K(t))}] ~ &`,{values:e("data")??{}})},orientationVariants:({addVariant:r})=>{r("portrait","@media (orientation: portrait)"),r("landscape","@media (orientation: landscape)")},prefersContrastVariants:({addVariant:r})=>{r("contrast-more","@media (prefers-contrast: more)"),r("contrast-less","@media (prefers-contrast: less)")},forcedColorsVariants:({addVariant:r})=>{r("forced-colors","@media (forced-colors: active)")}},Xe=["translate(var(--tw-translate-x), var(--tw-translate-y))","rotate(var(--tw-rotate))","skewX(var(--tw-skew-x))","skewY(var(--tw-skew-y))","scaleX(var(--tw-scale-x))","scaleY(var(--tw-scale-y))"].join(" "),nt=["var(--tw-blur)","var(--tw-brightness)","var(--tw-contrast)","var(--tw-grayscale)","var(--tw-hue-rotate)","var(--tw-invert)","var(--tw-saturate)","var(--tw-sepia)","var(--tw-drop-shadow)"].join(" "),ge=["var(--tw-backdrop-blur)","var(--tw-backdrop-brightness)","var(--tw-backdrop-contrast)","var(--tw-backdrop-grayscale)","var(--tw-backdrop-hue-rotate)","var(--tw-backdrop-invert)","var(--tw-backdrop-opacity)","var(--tw-backdrop-saturate)","var(--tw-backdrop-sepia)"].join(" "),yh={preflight:({addBase:r})=>{let e=ee.parse(`*,::after,::before{box-sizing:border-box;border-width:0;border-style:solid;border-color:theme('borderColor.DEFAULT', currentColor)}::after,::before{--tw-content:''}:host,html{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;tab-size:4;font-family:theme('fontFamily.sans', ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:theme('fontFamily.sans[1].fontFeatureSettings', normal);font-variation-settings:theme('fontFamily.sans[1].fontVariationSettings', normal);-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:theme('fontFamily.mono', ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:theme('fontFamily.mono[1].fontFeatureSettings', normal);font-variation-settings:theme('fontFamily.mono[1].fontVariationSettings', normal);font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::placeholder,textarea::placeholder{opacity:1;color:theme('colors.gray.4', #9ca3af)}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}`);r([ee.comment({text:`! tailwindcss v${dh} | MIT License | https://tailwindcss.com`}),...e.nodes])},container:(()=>{function r(t=[]){return t.flatMap(i=>i.values.map(n=>n.min)).filter(i=>i!==void 0)}function e(t,i,n){if(typeof n=="undefined")return[];if(!(typeof n=="object"&&n!==null))return[{screen:"DEFAULT",minWidth:0,padding:n}];let s=[];n.DEFAULT&&s.push({screen:"DEFAULT",minWidth:0,padding:n.DEFAULT});for(let a of t)for(let o of i)for(let{min:l}of o.values)l===a&&s.push({minWidth:a,padding:n[o.name]});return s}return function({addComponents:t,theme:i}){let n=Rt(i("container.screens",i("screens"))),s=r(n),a=e(s,n,i("container.padding")),o=c=>{let f=a.find(d=>d.minWidth===c);return f?{paddingRight:f.padding,paddingLeft:f.padding}:{}},l=Array.from(new Set(s.slice().sort((c,f)=>parseInt(c)-parseInt(f)))).map(c=>({[`@media (min-width: ${c})`]:{".container":{"max-width":c,...o(c)}}}));t([{".container":Object.assign({width:"100%"},i("container.center",!1)?{marginRight:"auto",marginLeft:"auto"}:{},o(0))},...l])}})(),accessibility:({addUtilities:r})=>{r({".sr-only":{position:"absolute",width:"1px",height:"1px",padding:"0",margin:"-1px",overflow:"hidden",clip:"rect(0, 0, 0, 0)",whiteSpace:"nowrap",borderWidth:"0"},".not-sr-only":{position:"static",width:"auto",height:"auto",padding:"0",margin:"0",overflow:"visible",clip:"auto",whiteSpace:"normal"}})},pointerEvents:({addUtilities:r})=>{r({".pointer-events-none":{"pointer-events":"none"},".pointer-events-auto":{"pointer-events":"auto"}})},visibility:({addUtilities:r})=>{r({".visible":{visibility:"visible"},".invisible":{visibility:"hidden"},".collapse":{visibility:"collapse"}})},position:({addUtilities:r})=>{r({".static":{position:"static"},".fixed":{position:"fixed"},".absolute":{position:"absolute"},".relative":{position:"relative"},".sticky":{position:"sticky"}})},inset:L("inset",[["inset",["inset"]],[["inset-x",["left","right"]],["inset-y",["top","bottom"]]],[["start",["inset-inline-start"]],["end",["inset-inline-end"]],["top",["top"]],["right",["right"]],["bottom",["bottom"]],["left",["left"]]]],{supportsNegativeValues:!0}),isolation:({addUtilities:r})=>{r({".isolate":{isolation:"isolate"},".isolation-auto":{isolation:"auto"}})},zIndex:L("zIndex",[["z",["zIndex"]]],{supportsNegativeValues:!0}),order:L("order",void 0,{supportsNegativeValues:!0}),gridColumn:L("gridColumn",[["col",["gridColumn"]]]),gridColumnStart:L("gridColumnStart",[["col-start",["gridColumnStart"]]],{supportsNegativeValues:!0}),gridColumnEnd:L("gridColumnEnd",[["col-end",["gridColumnEnd"]]],{supportsNegativeValues:!0}),gridRow:L("gridRow",[["row",["gridRow"]]]),gridRowStart:L("gridRowStart",[["row-start",["gridRowStart"]]],{supportsNegativeValues:!0}),gridRowEnd:L("gridRowEnd",[["row-end",["gridRowEnd"]]],{supportsNegativeValues:!0}),float:({addUtilities:r})=>{r({".float-start":{float:"inline-start"},".float-end":{float:"inline-end"},".float-right":{float:"right"},".float-left":{float:"left"},".float-none":{float:"none"}})},clear:({addUtilities:r})=>{r({".clear-start":{clear:"inline-start"},".clear-end":{clear:"inline-end"},".clear-left":{clear:"left"},".clear-right":{clear:"right"},".clear-both":{clear:"both"},".clear-none":{clear:"none"}})},margin:L("margin",[["m",["margin"]],[["mx",["margin-left","margin-right"]],["my",["margin-top","margin-bottom"]]],[["ms",["margin-inline-start"]],["me",["margin-inline-end"]],["mt",["margin-top"]],["mr",["margin-right"]],["mb",["margin-bottom"]],["ml",["margin-left"]]]],{supportsNegativeValues:!0}),boxSizing:({addUtilities:r})=>{r({".box-border":{"box-sizing":"border-box"},".box-content":{"box-sizing":"content-box"}})},lineClamp:({matchUtilities:r,addUtilities:e,theme:t})=>{r({"line-clamp":i=>({overflow:"hidden",display:"-webkit-box","-webkit-box-orient":"vertical","-webkit-line-clamp":`${i}`})},{values:t("lineClamp")}),e({".line-clamp-none":{overflow:"visible",display:"block","-webkit-box-orient":"horizontal","-webkit-line-clamp":"none"}})},display:({addUtilities:r})=>{r({".block":{display:"block"},".inline-block":{display:"inline-block"},".inline":{display:"inline"},".flex":{display:"flex"},".inline-flex":{display:"inline-flex"},".table":{display:"table"},".inline-table":{display:"inline-table"},".table-caption":{display:"table-caption"},".table-cell":{display:"table-cell"},".table-column":{display:"table-column"},".table-column-group":{display:"table-column-group"},".table-footer-group":{display:"table-footer-group"},".table-header-group":{display:"table-header-group"},".table-row-group":{display:"table-row-group"},".table-row":{display:"table-row"},".flow-root":{display:"flow-root"},".grid":{display:"grid"},".inline-grid":{display:"inline-grid"},".contents":{display:"contents"},".list-item":{display:"list-item"},".hidden":{display:"none"}})},aspectRatio:L("aspectRatio",[["aspect",["aspect-ratio"]]]),size:L("size",[["size",["width","height"]]]),height:L("height",[["h",["height"]]]),maxHeight:L("maxHeight",[["max-h",["maxHeight"]]]),minHeight:L("minHeight",[["min-h",["minHeight"]]]),width:L("width",[["w",["width"]]]),minWidth:L("minWidth",[["min-w",["minWidth"]]]),maxWidth:L("maxWidth",[["max-w",["maxWidth"]]]),flex:L("flex"),flexShrink:L("flexShrink",[["flex-shrink",["flex-shrink"]],["shrink",["flex-shrink"]]]),flexGrow:L("flexGrow",[["flex-grow",["flex-grow"]],["grow",["flex-grow"]]]),flexBasis:L("flexBasis",[["basis",["flex-basis"]]]),tableLayout:({addUtilities:r})=>{r({".table-auto":{"table-layout":"auto"},".table-fixed":{"table-layout":"fixed"}})},captionSide:({addUtilities:r})=>{r({".caption-top":{"caption-side":"top"},".caption-bottom":{"caption-side":"bottom"}})},borderCollapse:({addUtilities:r})=>{r({".border-collapse":{"border-collapse":"collapse"},".border-separate":{"border-collapse":"separate"}})},borderSpacing:({addDefaults:r,matchUtilities:e,theme:t})=>{r("border-spacing",{"--tw-border-spacing-x":0,"--tw-border-spacing-y":0}),e({"border-spacing":i=>({"--tw-border-spacing-x":i,"--tw-border-spacing-y":i,"@defaults border-spacing":{},"border-spacing":"var(--tw-border-spacing-x) var(--tw-border-spacing-y)"}),"border-spacing-x":i=>({"--tw-border-spacing-x":i,"@defaults border-spacing":{},"border-spacing":"var(--tw-border-spacing-x) var(--tw-border-spacing-y)"}),"border-spacing-y":i=>({"--tw-border-spacing-y":i,"@defaults border-spacing":{},"border-spacing":"var(--tw-border-spacing-x) var(--tw-border-spacing-y)"})},{values:t("borderSpacing")})},transformOrigin:L("transformOrigin",[["origin",["transformOrigin"]]]),translate:L("translate",[[["translate-x",[["@defaults transform",{}],"--tw-translate-x",["transform",Xe]]],["translate-y",[["@defaults transform",{}],"--tw-translate-y",["transform",Xe]]]]],{supportsNegativeValues:!0}),rotate:L("rotate",[["rotate",[["@defaults transform",{}],"--tw-rotate",["transform",Xe]]]],{supportsNegativeValues:!0}),skew:L("skew",[[["skew-x",[["@defaults transform",{}],"--tw-skew-x",["transform",Xe]]],["skew-y",[["@defaults transform",{}],"--tw-skew-y",["transform",Xe]]]]],{supportsNegativeValues:!0}),scale:L("scale",[["scale",[["@defaults transform",{}],"--tw-scale-x","--tw-scale-y",["transform",Xe]]],[["scale-x",[["@defaults transform",{}],"--tw-scale-x",["transform",Xe]]],["scale-y",[["@defaults transform",{}],"--tw-scale-y",["transform",Xe]]]]],{supportsNegativeValues:!0}),transform:({addDefaults:r,addUtilities:e})=>{r("transform",{"--tw-translate-x":"0","--tw-translate-y":"0","--tw-rotate":"0","--tw-skew-x":"0","--tw-skew-y":"0","--tw-scale-x":"1","--tw-scale-y":"1"}),e({".transform":{"@defaults transform":{},transform:Xe},".transform-cpu":{transform:Xe},".transform-gpu":{transform:Xe.replace("translate(var(--tw-translate-x), var(--tw-translate-y))","translate3d(var(--tw-translate-x), var(--tw-translate-y), 0)")},".transform-none":{transform:"none"}})},animation:({matchUtilities:r,theme:e,config:t})=>{let i=s=>Te(t("prefix")+s),n=Object.fromEntries(Object.entries(e("keyframes")??{}).map(([s,a])=>[s,{[`@keyframes ${i(s)}`]:a}]));r({animate:s=>{let a=Mo(s);return[...a.flatMap(o=>n[o.name]),{animation:a.map(({name:o,value:l})=>o===void 0||n[o]===void 0?l:l.replace(o,i(o))).join(", ")}]}},{values:e("animation")})},cursor:L("cursor"),touchAction:({addDefaults:r,addUtilities:e})=>{r("touch-action",{"--tw-pan-x":" ","--tw-pan-y":" ","--tw-pinch-zoom":" "});let t="var(--tw-pan-x) var(--tw-pan-y) var(--tw-pinch-zoom)";e({".touch-auto":{"touch-action":"auto"},".touch-none":{"touch-action":"none"},".touch-pan-x":{"@defaults touch-action":{},"--tw-pan-x":"pan-x","touch-action":t},".touch-pan-left":{"@defaults touch-action":{},"--tw-pan-x":"pan-left","touch-action":t},".touch-pan-right":{"@defaults touch-action":{},"--tw-pan-x":"pan-right","touch-action":t},".touch-pan-y":{"@defaults touch-action":{},"--tw-pan-y":"pan-y","touch-action":t},".touch-pan-up":{"@defaults touch-action":{},"--tw-pan-y":"pan-up","touch-action":t},".touch-pan-down":{"@defaults touch-action":{},"--tw-pan-y":"pan-down","touch-action":t},".touch-pinch-zoom":{"@defaults touch-action":{},"--tw-pinch-zoom":"pinch-zoom","touch-action":t},".touch-manipulation":{"touch-action":"manipulation"}})},userSelect:({addUtilities:r})=>{r({".select-none":{"user-select":"none"},".select-text":{"user-select":"text"},".select-all":{"user-select":"all"},".select-auto":{"user-select":"auto"}})},resize:({addUtilities:r})=>{r({".resize-none":{resize:"none"},".resize-y":{resize:"vertical"},".resize-x":{resize:"horizontal"},".resize":{resize:"both"}})},scrollSnapType:({addDefaults:r,addUtilities:e})=>{r("scroll-snap-type",{"--tw-scroll-snap-strictness":"proximity"}),e({".snap-none":{"scroll-snap-type":"none"},".snap-x":{"@defaults scroll-snap-type":{},"scroll-snap-type":"x var(--tw-scroll-snap-strictness)"},".snap-y":{"@defaults scroll-snap-type":{},"scroll-snap-type":"y var(--tw-scroll-snap-strictness)"},".snap-both":{"@defaults scroll-snap-type":{},"scroll-snap-type":"both var(--tw-scroll-snap-strictness)"},".snap-mandatory":{"--tw-scroll-snap-strictness":"mandatory"},".snap-proximity":{"--tw-scroll-snap-strictness":"proximity"}})},scrollSnapAlign:({addUtilities:r})=>{r({".snap-start":{"scroll-snap-align":"start"},".snap-end":{"scroll-snap-align":"end"},".snap-center":{"scroll-snap-align":"center"},".snap-align-none":{"scroll-snap-align":"none"}})},scrollSnapStop:({addUtilities:r})=>{r({".snap-normal":{"scroll-snap-stop":"normal"},".snap-always":{"scroll-snap-stop":"always"}})},scrollMargin:L("scrollMargin",[["scroll-m",["scroll-margin"]],[["scroll-mx",["scroll-margin-left","scroll-margin-right"]],["scroll-my",["scroll-margin-top","scroll-margin-bottom"]]],[["scroll-ms",["scroll-margin-inline-start"]],["scroll-me",["scroll-margin-inline-end"]],["scroll-mt",["scroll-margin-top"]],["scroll-mr",["scroll-margin-right"]],["scroll-mb",["scroll-margin-bottom"]],["scroll-ml",["scroll-margin-left"]]]],{supportsNegativeValues:!0}),scrollPadding:L("scrollPadding",[["scroll-p",["scroll-padding"]],[["scroll-px",["scroll-padding-left","scroll-padding-right"]],["scroll-py",["scroll-padding-top","scroll-padding-bottom"]]],[["scroll-ps",["scroll-padding-inline-start"]],["scroll-pe",["scroll-padding-inline-end"]],["scroll-pt",["scroll-padding-top"]],["scroll-pr",["scroll-padding-right"]],["scroll-pb",["scroll-padding-bottom"]],["scroll-pl",["scroll-padding-left"]]]]),listStylePosition:({addUtilities:r})=>{r({".list-inside":{"list-style-position":"inside"},".list-outside":{"list-style-position":"outside"}})},listStyleType:L("listStyleType",[["list",["listStyleType"]]]),listStyleImage:L("listStyleImage",[["list-image",["listStyleImage"]]]),appearance:({addUtilities:r})=>{r({".appearance-none":{appearance:"none"},".appearance-auto":{appearance:"auto"}})},columns:L("columns",[["columns",["columns"]]]),breakBefore:({addUtilities:r})=>{r({".break-before-auto":{"break-before":"auto"},".break-before-avoid":{"break-before":"avoid"},".break-before-all":{"break-before":"all"},".break-before-avoid-page":{"break-before":"avoid-page"},".break-before-page":{"break-before":"page"},".break-before-left":{"break-before":"left"},".break-before-right":{"break-before":"right"},".break-before-column":{"break-before":"column"}})},breakInside:({addUtilities:r})=>{r({".break-inside-auto":{"break-inside":"auto"},".break-inside-avoid":{"break-inside":"avoid"},".break-inside-avoid-page":{"break-inside":"avoid-page"},".break-inside-avoid-column":{"break-inside":"avoid-column"}})},breakAfter:({addUtilities:r})=>{r({".break-after-auto":{"break-after":"auto"},".break-after-avoid":{"break-after":"avoid"},".break-after-all":{"break-after":"all"},".break-after-avoid-page":{"break-after":"avoid-page"},".break-after-page":{"break-after":"page"},".break-after-left":{"break-after":"left"},".break-after-right":{"break-after":"right"},".break-after-column":{"break-after":"column"}})},gridAutoColumns:L("gridAutoColumns",[["auto-cols",["gridAutoColumns"]]]),gridAutoFlow:({addUtilities:r})=>{r({".grid-flow-row":{gridAutoFlow:"row"},".grid-flow-col":{gridAutoFlow:"column"},".grid-flow-dense":{gridAutoFlow:"dense"},".grid-flow-row-dense":{gridAutoFlow:"row dense"},".grid-flow-col-dense":{gridAutoFlow:"column dense"}})},gridAutoRows:L("gridAutoRows",[["auto-rows",["gridAutoRows"]]]),gridTemplateColumns:L("gridTemplateColumns",[["grid-cols",["gridTemplateColumns"]]]),gridTemplateRows:L("gridTemplateRows",[["grid-rows",["gridTemplateRows"]]]),flexDirection:({addUtilities:r})=>{r({".flex-row":{"flex-direction":"row"},".flex-row-reverse":{"flex-direction":"row-reverse"},".flex-col":{"flex-direction":"column"},".flex-col-reverse":{"flex-direction":"column-reverse"}})},flexWrap:({addUtilities:r})=>{r({".flex-wrap":{"flex-wrap":"wrap"},".flex-wrap-reverse":{"flex-wrap":"wrap-reverse"},".flex-nowrap":{"flex-wrap":"nowrap"}})},placeContent:({addUtilities:r})=>{r({".place-content-center":{"place-content":"center"},".place-content-start":{"place-content":"start"},".place-content-end":{"place-content":"end"},".place-content-between":{"place-content":"space-between"},".place-content-around":{"place-content":"space-around"},".place-content-evenly":{"place-content":"space-evenly"},".place-content-baseline":{"place-content":"baseline"},".place-content-stretch":{"place-content":"stretch"}})},placeItems:({addUtilities:r})=>{r({".place-items-start":{"place-items":"start"},".place-items-end":{"place-items":"end"},".place-items-center":{"place-items":"center"},".place-items-baseline":{"place-items":"baseline"},".place-items-stretch":{"place-items":"stretch"}})},alignContent:({addUtilities:r})=>{r({".content-normal":{"align-content":"normal"},".content-center":{"align-content":"center"},".content-start":{"align-content":"flex-start"},".content-end":{"align-content":"flex-end"},".content-between":{"align-content":"space-between"},".content-around":{"align-content":"space-around"},".content-evenly":{"align-content":"space-evenly"},".content-baseline":{"align-content":"baseline"},".content-stretch":{"align-content":"stretch"}})},alignItems:({addUtilities:r})=>{r({".items-start":{"align-items":"flex-start"},".items-end":{"align-items":"flex-end"},".items-center":{"align-items":"center"},".items-baseline":{"align-items":"baseline"},".items-stretch":{"align-items":"stretch"}})},justifyContent:({addUtilities:r})=>{r({".justify-normal":{"justify-content":"normal"},".justify-start":{"justify-content":"flex-start"},".justify-end":{"justify-content":"flex-end"},".justify-center":{"justify-content":"center"},".justify-between":{"justify-content":"space-between"},".justify-around":{"justify-content":"space-around"},".justify-evenly":{"justify-content":"space-evenly"},".justify-stretch":{"justify-content":"stretch"}})},justifyItems:({addUtilities:r})=>{r({".justify-items-start":{"justify-items":"start"},".justify-items-end":{"justify-items":"end"},".justify-items-center":{"justify-items":"center"},".justify-items-stretch":{"justify-items":"stretch"}})},gap:L("gap",[["gap",["gap"]],[["gap-x",["columnGap"]],["gap-y",["rowGap"]]]]),space:({matchUtilities:r,addUtilities:e,theme:t})=>{r({"space-x":i=>(i=i==="0"?"0px":i,{"& > :not([hidden]) ~ :not([hidden])":{"--tw-space-x-reverse":"0","margin-right":`calc(${i} * var(--tw-space-x-reverse))`,"margin-left":`calc(${i} * calc(1 - var(--tw-space-x-reverse)))`}}),"space-y":i=>(i=i==="0"?"0px":i,{"& > :not([hidden]) ~ :not([hidden])":{"--tw-space-y-reverse":"0","margin-top":`calc(${i} * calc(1 - var(--tw-space-y-reverse)))`,"margin-bottom":`calc(${i} * var(--tw-space-y-reverse))`}})},{values:t("space"),supportsNegativeValues:!0}),e({".space-y-reverse > :not([hidden]) ~ :not([hidden])":{"--tw-space-y-reverse":"1"},".space-x-reverse > :not([hidden]) ~ :not([hidden])":{"--tw-space-x-reverse":"1"}})},divideWidth:({matchUtilities:r,addUtilities:e,theme:t})=>{r({"divide-x":i=>(i=i==="0"?"0px":i,{"& > :not([hidden]) ~ :not([hidden])":{"@defaults border-width":{},"--tw-divide-x-reverse":"0","border-right-width":`calc(${i} * var(--tw-divide-x-reverse))`,"border-left-width":`calc(${i} * calc(1 - var(--tw-divide-x-reverse)))`}}),"divide-y":i=>(i=i==="0"?"0px":i,{"& > :not([hidden]) ~ :not([hidden])":{"@defaults border-width":{},"--tw-divide-y-reverse":"0","border-top-width":`calc(${i} * calc(1 - var(--tw-divide-y-reverse)))`,"border-bottom-width":`calc(${i} * var(--tw-divide-y-reverse))`}})},{values:t("divideWidth"),type:["line-width","length","any"]}),e({".divide-y-reverse > :not([hidden]) ~ :not([hidden])":{"@defaults border-width":{},"--tw-divide-y-reverse":"1"},".divide-x-reverse > :not([hidden]) ~ :not([hidden])":{"@defaults border-width":{},"--tw-divide-x-reverse":"1"}})},divideStyle:({addUtilities:r})=>{r({".divide-solid > :not([hidden]) ~ :not([hidden])":{"border-style":"solid"},".divide-dashed > :not([hidden]) ~ :not([hidden])":{"border-style":"dashed"},".divide-dotted > :not([hidden]) ~ :not([hidden])":{"border-style":"dotted"},".divide-double > :not([hidden]) ~ :not([hidden])":{"border-style":"double"},".divide-none > :not([hidden]) ~ :not([hidden])":{"border-style":"none"}})},divideColor:({matchUtilities:r,theme:e,corePlugins:t})=>{r({divide:i=>t("divideOpacity")?{["& > :not([hidden]) ~ :not([hidden])"]:Ae({color:i,property:"border-color",variable:"--tw-divide-opacity"})}:{["& > :not([hidden]) ~ :not([hidden])"]:{"border-color":X(i)}}},{values:(({DEFAULT:i,...n})=>n)(xe(e("divideColor"))),type:["color","any"]})},divideOpacity:({matchUtilities:r,theme:e})=>{r({"divide-opacity":t=>({["& > :not([hidden]) ~ :not([hidden])"]:{"--tw-divide-opacity":t}})},{values:e("divideOpacity")})},placeSelf:({addUtilities:r})=>{r({".place-self-auto":{"place-self":"auto"},".place-self-start":{"place-self":"start"},".place-self-end":{"place-self":"end"},".place-self-center":{"place-self":"center"},".place-self-stretch":{"place-self":"stretch"}})},alignSelf:({addUtilities:r})=>{r({".self-auto":{"align-self":"auto"},".self-start":{"align-self":"flex-start"},".self-end":{"align-self":"flex-end"},".self-center":{"align-self":"center"},".self-stretch":{"align-self":"stretch"},".self-baseline":{"align-self":"baseline"}})},justifySelf:({addUtilities:r})=>{r({".justify-self-auto":{"justify-self":"auto"},".justify-self-start":{"justify-self":"start"},".justify-self-end":{"justify-self":"end"},".justify-self-center":{"justify-self":"center"},".justify-self-stretch":{"justify-self":"stretch"}})},overflow:({addUtilities:r})=>{r({".overflow-auto":{overflow:"auto"},".overflow-hidden":{overflow:"hidden"},".overflow-clip":{overflow:"clip"},".overflow-visible":{overflow:"visible"},".overflow-scroll":{overflow:"scroll"},".overflow-x-auto":{"overflow-x":"auto"},".overflow-y-auto":{"overflow-y":"auto"},".overflow-x-hidden":{"overflow-x":"hidden"},".overflow-y-hidden":{"overflow-y":"hidden"},".overflow-x-clip":{"overflow-x":"clip"},".overflow-y-clip":{"overflow-y":"clip"},".overflow-x-visible":{"overflow-x":"visible"},".overflow-y-visible":{"overflow-y":"visible"},".overflow-x-scroll":{"overflow-x":"scroll"},".overflow-y-scroll":{"overflow-y":"scroll"}})},overscrollBehavior:({addUtilities:r})=>{r({".overscroll-auto":{"overscroll-behavior":"auto"},".overscroll-contain":{"overscroll-behavior":"contain"},".overscroll-none":{"overscroll-behavior":"none"},".overscroll-y-auto":{"overscroll-behavior-y":"auto"},".overscroll-y-contain":{"overscroll-behavior-y":"contain"},".overscroll-y-none":{"overscroll-behavior-y":"none"},".overscroll-x-auto":{"overscroll-behavior-x":"auto"},".overscroll-x-contain":{"overscroll-behavior-x":"contain"},".overscroll-x-none":{"overscroll-behavior-x":"none"}})},scrollBehavior:({addUtilities:r})=>{r({".scroll-auto":{"scroll-behavior":"auto"},".scroll-smooth":{"scroll-behavior":"smooth"}})},textOverflow:({addUtilities:r})=>{r({".truncate":{overflow:"hidden","text-overflow":"ellipsis","white-space":"nowrap"},".overflow-ellipsis":{"text-overflow":"ellipsis"},".text-ellipsis":{"text-overflow":"ellipsis"},".text-clip":{"text-overflow":"clip"}})},hyphens:({addUtilities:r})=>{r({".hyphens-none":{hyphens:"none"},".hyphens-manual":{hyphens:"manual"},".hyphens-auto":{hyphens:"auto"}})},whitespace:({addUtilities:r})=>{r({".whitespace-normal":{"white-space":"normal"},".whitespace-nowrap":{"white-space":"nowrap"},".whitespace-pre":{"white-space":"pre"},".whitespace-pre-line":{"white-space":"pre-line"},".whitespace-pre-wrap":{"white-space":"pre-wrap"},".whitespace-break-spaces":{"white-space":"break-spaces"}})},textWrap:({addUtilities:r})=>{r({".text-wrap":{"text-wrap":"wrap"},".text-nowrap":{"text-wrap":"nowrap"},".text-balance":{"text-wrap":"balance"},".text-pretty":{"text-wrap":"pretty"}})},wordBreak:({addUtilities:r})=>{r({".break-normal":{"overflow-wrap":"normal","word-break":"normal"},".break-words":{"overflow-wrap":"break-word"},".break-all":{"word-break":"break-all"},".break-keep":{"word-break":"keep-all"}})},borderRadius:L("borderRadius",[["rounded",["border-radius"]],[["rounded-s",["border-start-start-radius","border-end-start-radius"]],["rounded-e",["border-start-end-radius","border-end-end-radius"]],["rounded-t",["border-top-left-radius","border-top-right-radius"]],["rounded-r",["border-top-right-radius","border-bottom-right-radius"]],["rounded-b",["border-bottom-right-radius","border-bottom-left-radius"]],["rounded-l",["border-top-left-radius","border-bottom-left-radius"]]],[["rounded-ss",["border-start-start-radius"]],["rounded-se",["border-start-end-radius"]],["rounded-ee",["border-end-end-radius"]],["rounded-es",["border-end-start-radius"]],["rounded-tl",["border-top-left-radius"]],["rounded-tr",["border-top-right-radius"]],["rounded-br",["border-bottom-right-radius"]],["rounded-bl",["border-bottom-left-radius"]]]]),borderWidth:L("borderWidth",[["border",[["@defaults border-width",{}],"border-width"]],[["border-x",[["@defaults border-width",{}],"border-left-width","border-right-width"]],["border-y",[["@defaults border-width",{}],"border-top-width","border-bottom-width"]]],[["border-s",[["@defaults border-width",{}],"border-inline-start-width"]],["border-e",[["@defaults border-width",{}],"border-inline-end-width"]],["border-t",[["@defaults border-width",{}],"border-top-width"]],["border-r",[["@defaults border-width",{}],"border-right-width"]],["border-b",[["@defaults border-width",{}],"border-bottom-width"]],["border-l",[["@defaults border-width",{}],"border-left-width"]]]],{type:["line-width","length"]}),borderStyle:({addUtilities:r})=>{r({".border-solid":{"border-style":"solid"},".border-dashed":{"border-style":"dashed"},".border-dotted":{"border-style":"dotted"},".border-double":{"border-style":"double"},".border-hidden":{"border-style":"hidden"},".border-none":{"border-style":"none"}})},borderColor:({matchUtilities:r,theme:e,corePlugins:t})=>{r({border:i=>t("borderOpacity")?Ae({color:i,property:"border-color",variable:"--tw-border-opacity"}):{"border-color":X(i)}},{values:(({DEFAULT:i,...n})=>n)(xe(e("borderColor"))),type:["color","any"]}),r({"border-x":i=>t("borderOpacity")?Ae({color:i,property:["border-left-color","border-right-color"],variable:"--tw-border-opacity"}):{"border-left-color":X(i),"border-right-color":X(i)},"border-y":i=>t("borderOpacity")?Ae({color:i,property:["border-top-color","border-bottom-color"],variable:"--tw-border-opacity"}):{"border-top-color":X(i),"border-bottom-color":X(i)}},{values:(({DEFAULT:i,...n})=>n)(xe(e("borderColor"))),type:["color","any"]}),r({"border-s":i=>t("borderOpacity")?Ae({color:i,property:"border-inline-start-color",variable:"--tw-border-opacity"}):{"border-inline-start-color":X(i)},"border-e":i=>t("borderOpacity")?Ae({color:i,property:"border-inline-end-color",variable:"--tw-border-opacity"}):{"border-inline-end-color":X(i)},"border-t":i=>t("borderOpacity")?Ae({color:i,property:"border-top-color",variable:"--tw-border-opacity"}):{"border-top-color":X(i)},"border-r":i=>t("borderOpacity")?Ae({color:i,property:"border-right-color",variable:"--tw-border-opacity"}):{"border-right-color":X(i)},"border-b":i=>t("borderOpacity")?Ae({color:i,property:"border-bottom-color",variable:"--tw-border-opacity"}):{"border-bottom-color":X(i)},"border-l":i=>t("borderOpacity")?Ae({color:i,property:"border-left-color",variable:"--tw-border-opacity"}):{"border-left-color":X(i)}},{values:(({DEFAULT:i,...n})=>n)(xe(e("borderColor"))),type:["color","any"]})},borderOpacity:L("borderOpacity",[["border-opacity",["--tw-border-opacity"]]]),backgroundColor:({matchUtilities:r,theme:e,corePlugins:t})=>{r({bg:i=>t("backgroundOpacity")?Ae({color:i,property:"background-color",variable:"--tw-bg-opacity"}):{"background-color":X(i)}},{values:xe(e("backgroundColor")),type:["color","any"]})},backgroundOpacity:L("backgroundOpacity",[["bg-opacity",["--tw-bg-opacity"]]]),backgroundImage:L("backgroundImage",[["bg",["background-image"]]],{type:["lookup","image","url"]}),gradientColorStops:(()=>{function r(e){return Je(e,0,"rgb(255 255 255 / 0)")}return function({matchUtilities:e,theme:t,addDefaults:i}){i("gradient-color-stops",{"--tw-gradient-from-position":" ","--tw-gradient-via-position":" ","--tw-gradient-to-position":" "});let n={values:xe(t("gradientColorStops")),type:["color","any"]},s={values:t("gradientColorStopPositions"),type:["length","percentage"]};e({from:a=>{let o=r(a);return{"@defaults gradient-color-stops":{},"--tw-gradient-from":`${X(a)} var(--tw-gradient-from-position)`,"--tw-gradient-to":`${o} var(--tw-gradient-to-position)`,"--tw-gradient-stops":"var(--tw-gradient-from), var(--tw-gradient-to)"}}},n),e({from:a=>({"--tw-gradient-from-position":a})},s),e({via:a=>{let o=r(a);return{"@defaults gradient-color-stops":{},"--tw-gradient-to":`${o} var(--tw-gradient-to-position)`,"--tw-gradient-stops":`var(--tw-gradient-from), ${X(a)} var(--tw-gradient-via-position), var(--tw-gradient-to)`}}},n),e({via:a=>({"--tw-gradient-via-position":a})},s),e({to:a=>({"@defaults gradient-color-stops":{},"--tw-gradient-to":`${X(a)} var(--tw-gradient-to-position)`})},n),e({to:a=>({"--tw-gradient-to-position":a})},s)}})(),boxDecorationBreak:({addUtilities:r})=>{r({".decoration-slice":{"box-decoration-break":"slice"},".decoration-clone":{"box-decoration-break":"clone"},".box-decoration-slice":{"box-decoration-break":"slice"},".box-decoration-clone":{"box-decoration-break":"clone"}})},backgroundSize:L("backgroundSize",[["bg",["background-size"]]],{type:["lookup","length","percentage","size"]}),backgroundAttachment:({addUtilities:r})=>{r({".bg-fixed":{"background-attachment":"fixed"},".bg-local":{"background-attachment":"local"},".bg-scroll":{"background-attachment":"scroll"}})},backgroundClip:({addUtilities:r})=>{r({".bg-clip-border":{"background-clip":"border-box"},".bg-clip-padding":{"background-clip":"padding-box"},".bg-clip-content":{"background-clip":"content-box"},".bg-clip-text":{"background-clip":"text"}})},backgroundPosition:L("backgroundPosition",[["bg",["background-position"]]],{type:["lookup",["position",{preferOnConflict:!0}]]}),backgroundRepeat:({addUtilities:r})=>{r({".bg-repeat":{"background-repeat":"repeat"},".bg-no-repeat":{"background-repeat":"no-repeat"},".bg-repeat-x":{"background-repeat":"repeat-x"},".bg-repeat-y":{"background-repeat":"repeat-y"},".bg-repeat-round":{"background-repeat":"round"},".bg-repeat-space":{"background-repeat":"space"}})},backgroundOrigin:({addUtilities:r})=>{r({".bg-origin-border":{"background-origin":"border-box"},".bg-origin-padding":{"background-origin":"padding-box"},".bg-origin-content":{"background-origin":"content-box"}})},fill:({matchUtilities:r,theme:e})=>{r({fill:t=>({fill:X(t)})},{values:xe(e("fill")),type:["color","any"]})},stroke:({matchUtilities:r,theme:e})=>{r({stroke:t=>({stroke:X(t)})},{values:xe(e("stroke")),type:["color","url","any"]})},strokeWidth:L("strokeWidth",[["stroke",["stroke-width"]]],{type:["length","number","percentage"]}),objectFit:({addUtilities:r})=>{r({".object-contain":{"object-fit":"contain"},".object-cover":{"object-fit":"cover"},".object-fill":{"object-fit":"fill"},".object-none":{"object-fit":"none"},".object-scale-down":{"object-fit":"scale-down"}})},objectPosition:L("objectPosition",[["object",["object-position"]]]),padding:L("padding",[["p",["padding"]],[["px",["padding-left","padding-right"]],["py",["padding-top","padding-bottom"]]],[["ps",["padding-inline-start"]],["pe",["padding-inline-end"]],["pt",["padding-top"]],["pr",["padding-right"]],["pb",["padding-bottom"]],["pl",["padding-left"]]]]),textAlign:({addUtilities:r})=>{r({".text-left":{"text-align":"left"},".text-center":{"text-align":"center"},".text-right":{"text-align":"right"},".text-justify":{"text-align":"justify"},".text-start":{"text-align":"start"},".text-end":{"text-align":"end"}})},textIndent:L("textIndent",[["indent",["text-indent"]]],{supportsNegativeValues:!0}),verticalAlign:({addUtilities:r,matchUtilities:e})=>{r({".align-baseline":{"vertical-align":"baseline"},".align-top":{"vertical-align":"top"},".align-middle":{"vertical-align":"middle"},".align-bottom":{"vertical-align":"bottom"},".align-text-top":{"vertical-align":"text-top"},".align-text-bottom":{"vertical-align":"text-bottom"},".align-sub":{"vertical-align":"sub"},".align-super":{"vertical-align":"super"}}),e({align:t=>({"vertical-align":t})})},fontFamily:({matchUtilities:r,theme:e})=>{r({font:t=>{let[i,n={}]=Array.isArray(t)&&ke(t[1])?t:[t],{fontFeatureSettings:s,fontVariationSettings:a}=n;return{"font-family":Array.isArray(i)?i.join(", "):i,...s===void 0?{}:{"font-feature-settings":s},...a===void 0?{}:{"font-variation-settings":a}}}},{values:e("fontFamily"),type:["lookup","generic-name","family-name"]})},fontSize:({matchUtilities:r,theme:e})=>{r({text:(t,{modifier:i})=>{let[n,s]=Array.isArray(t)?t:[t];if(i)return{"font-size":n,"line-height":i};let{lineHeight:a,letterSpacing:o,fontWeight:l}=ke(s)?s:{lineHeight:s};return{"font-size":n,...a===void 0?{}:{"line-height":a},...o===void 0?{}:{"letter-spacing":o},...l===void 0?{}:{"font-weight":l}}}},{values:e("fontSize"),modifiers:e("lineHeight"),type:["absolute-size","relative-size","length","percentage"]})},fontWeight:L("fontWeight",[["font",["fontWeight"]]],{type:["lookup","number","any"]}),textTransform:({addUtilities:r})=>{r({".uppercase":{"text-transform":"uppercase"},".lowercase":{"text-transform":"lowercase"},".capitalize":{"text-transform":"capitalize"},".normal-case":{"text-transform":"none"}})},fontStyle:({addUtilities:r})=>{r({".italic":{"font-style":"italic"},".not-italic":{"font-style":"normal"}})},fontVariantNumeric:({addDefaults:r,addUtilities:e})=>{let t="var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction)";r("font-variant-numeric",{"--tw-ordinal":" ","--tw-slashed-zero":" ","--tw-numeric-figure":" ","--tw-numeric-spacing":" ","--tw-numeric-fraction":" "}),e({".normal-nums":{"font-variant-numeric":"normal"},".ordinal":{"@defaults font-variant-numeric":{},"--tw-ordinal":"ordinal","font-variant-numeric":t},".slashed-zero":{"@defaults font-variant-numeric":{},"--tw-slashed-zero":"slashed-zero","font-variant-numeric":t},".lining-nums":{"@defaults font-variant-numeric":{},"--tw-numeric-figure":"lining-nums","font-variant-numeric":t},".oldstyle-nums":{"@defaults font-variant-numeric":{},"--tw-numeric-figure":"oldstyle-nums","font-variant-numeric":t},".proportional-nums":{"@defaults font-variant-numeric":{},"--tw-numeric-spacing":"proportional-nums","font-variant-numeric":t},".tabular-nums":{"@defaults font-variant-numeric":{},"--tw-numeric-spacing":"tabular-nums","font-variant-numeric":t},".diagonal-fractions":{"@defaults font-variant-numeric":{},"--tw-numeric-fraction":"diagonal-fractions","font-variant-numeric":t},".stacked-fractions":{"@defaults font-variant-numeric":{},"--tw-numeric-fraction":"stacked-fractions","font-variant-numeric":t}})},lineHeight:L("lineHeight",[["leading",["lineHeight"]]]),letterSpacing:L("letterSpacing",[["tracking",["letterSpacing"]]],{supportsNegativeValues:!0}),textColor:({matchUtilities:r,theme:e,corePlugins:t})=>{r({text:i=>t("textOpacity")?Ae({color:i,property:"color",variable:"--tw-text-opacity"}):{color:X(i)}},{values:xe(e("textColor")),type:["color","any"]})},textOpacity:L("textOpacity",[["text-opacity",["--tw-text-opacity"]]]),textDecoration:({addUtilities:r})=>{r({".underline":{"text-decoration-line":"underline"},".overline":{"text-decoration-line":"overline"},".line-through":{"text-decoration-line":"line-through"},".no-underline":{"text-decoration-line":"none"}})},textDecorationColor:({matchUtilities:r,theme:e})=>{r({decoration:t=>({"text-decoration-color":X(t)})},{values:xe(e("textDecorationColor")),type:["color","any"]})},textDecorationStyle:({addUtilities:r})=>{r({".decoration-solid":{"text-decoration-style":"solid"},".decoration-double":{"text-decoration-style":"double"},".decoration-dotted":{"text-decoration-style":"dotted"},".decoration-dashed":{"text-decoration-style":"dashed"},".decoration-wavy":{"text-decoration-style":"wavy"}})},textDecorationThickness:L("textDecorationThickness",[["decoration",["text-decoration-thickness"]]],{type:["length","percentage"]}),textUnderlineOffset:L("textUnderlineOffset",[["underline-offset",["text-underline-offset"]]],{type:["length","percentage","any"]}),fontSmoothing:({addUtilities:r})=>{r({".antialiased":{"-webkit-font-smoothing":"antialiased","-moz-osx-font-smoothing":"grayscale"},".subpixel-antialiased":{"-webkit-font-smoothing":"auto","-moz-osx-font-smoothing":"auto"}})},placeholderColor:({matchUtilities:r,theme:e,corePlugins:t})=>{r({placeholder:i=>t("placeholderOpacity")?{"&::placeholder":Ae({color:i,property:"color",variable:"--tw-placeholder-opacity"})}:{"&::placeholder":{color:X(i)}}},{values:xe(e("placeholderColor")),type:["color","any"]})},placeholderOpacity:({matchUtilities:r,theme:e})=>{r({"placeholder-opacity":t=>({["&::placeholder"]:{"--tw-placeholder-opacity":t}})},{values:e("placeholderOpacity")})},caretColor:({matchUtilities:r,theme:e})=>{r({caret:t=>({"caret-color":X(t)})},{values:xe(e("caretColor")),type:["color","any"]})},accentColor:({matchUtilities:r,theme:e})=>{r({accent:t=>({"accent-color":X(t)})},{values:xe(e("accentColor")),type:["color","any"]})},opacity:L("opacity",[["opacity",["opacity"]]]),backgroundBlendMode:({addUtilities:r})=>{r({".bg-blend-normal":{"background-blend-mode":"normal"},".bg-blend-multiply":{"background-blend-mode":"multiply"},".bg-blend-screen":{"background-blend-mode":"screen"},".bg-blend-overlay":{"background-blend-mode":"overlay"},".bg-blend-darken":{"background-blend-mode":"darken"},".bg-blend-lighten":{"background-blend-mode":"lighten"},".bg-blend-color-dodge":{"background-blend-mode":"color-dodge"},".bg-blend-color-burn":{"background-blend-mode":"color-burn"},".bg-blend-hard-light":{"background-blend-mode":"hard-light"},".bg-blend-soft-light":{"background-blend-mode":"soft-light"},".bg-blend-difference":{"background-blend-mode":"difference"},".bg-blend-exclusion":{"background-blend-mode":"exclusion"},".bg-blend-hue":{"background-blend-mode":"hue"},".bg-blend-saturation":{"background-blend-mode":"saturation"},".bg-blend-color":{"background-blend-mode":"color"},".bg-blend-luminosity":{"background-blend-mode":"luminosity"}})},mixBlendMode:({addUtilities:r})=>{r({".mix-blend-normal":{"mix-blend-mode":"normal"},".mix-blend-multiply":{"mix-blend-mode":"multiply"},".mix-blend-screen":{"mix-blend-mode":"screen"},".mix-blend-overlay":{"mix-blend-mode":"overlay"},".mix-blend-darken":{"mix-blend-mode":"darken"},".mix-blend-lighten":{"mix-blend-mode":"lighten"},".mix-blend-color-dodge":{"mix-blend-mode":"color-dodge"},".mix-blend-color-burn":{"mix-blend-mode":"color-burn"},".mix-blend-hard-light":{"mix-blend-mode":"hard-light"},".mix-blend-soft-light":{"mix-blend-mode":"soft-light"},".mix-blend-difference":{"mix-blend-mode":"difference"},".mix-blend-exclusion":{"mix-blend-mode":"exclusion"},".mix-blend-hue":{"mix-blend-mode":"hue"},".mix-blend-saturation":{"mix-blend-mode":"saturation"},".mix-blend-color":{"mix-blend-mode":"color"},".mix-blend-luminosity":{"mix-blend-mode":"luminosity"},".mix-blend-plus-darker":{"mix-blend-mode":"plus-darker"},".mix-blend-plus-lighter":{"mix-blend-mode":"plus-lighter"}})},boxShadow:(()=>{let r=mt("boxShadow"),e=["var(--tw-ring-offset-shadow, 0 0 #0000)","var(--tw-ring-shadow, 0 0 #0000)","var(--tw-shadow)"].join(", ");return function({matchUtilities:t,addDefaults:i,theme:n}){i("box-shadow",{"--tw-ring-offset-shadow":"0 0 #0000","--tw-ring-shadow":"0 0 #0000","--tw-shadow":"0 0 #0000","--tw-shadow-colored":"0 0 #0000"}),t({shadow:s=>{s=r(s);let a=en(s);for(let o of a)!o.valid||(o.color="var(--tw-shadow-color)");return{"@defaults box-shadow":{},"--tw-shadow":s==="none"?"0 0 #0000":s,"--tw-shadow-colored":s==="none"?"0 0 #0000":Lf(a),"box-shadow":e}}},{values:n("boxShadow"),type:["shadow"]})}})(),boxShadowColor:({matchUtilities:r,theme:e})=>{r({shadow:t=>({"--tw-shadow-color":X(t),"--tw-shadow":"var(--tw-shadow-colored)"})},{values:xe(e("boxShadowColor")),type:["color","any"]})},outlineStyle:({addUtilities:r})=>{r({".outline-none":{outline:"2px solid transparent","outline-offset":"2px"},".outline":{"outline-style":"solid"},".outline-dashed":{"outline-style":"dashed"},".outline-dotted":{"outline-style":"dotted"},".outline-double":{"outline-style":"double"}})},outlineWidth:L("outlineWidth",[["outline",["outline-width"]]],{type:["length","number","percentage"]}),outlineOffset:L("outlineOffset",[["outline-offset",["outline-offset"]]],{type:["length","number","percentage","any"],supportsNegativeValues:!0}),outlineColor:({matchUtilities:r,theme:e})=>{r({outline:t=>({"outline-color":X(t)})},{values:xe(e("outlineColor")),type:["color","any"]})},ringWidth:({matchUtilities:r,addDefaults:e,addUtilities:t,theme:i,config:n})=>{let s=(()=>{if(we(n(),"respectDefaultRingColorOpacity"))return i("ringColor.DEFAULT");let a=i("ringOpacity.DEFAULT","0.5");return i("ringColor")?.DEFAULT?Je(i("ringColor")?.DEFAULT,a,`rgb(147 197 253 / ${a})`):`rgb(147 197 253 / ${a})`})();e("ring-width",{"--tw-ring-inset":" ","--tw-ring-offset-width":i("ringOffsetWidth.DEFAULT","0px"),"--tw-ring-offset-color":i("ringOffsetColor.DEFAULT","#fff"),"--tw-ring-color":s,"--tw-ring-offset-shadow":"0 0 #0000","--tw-ring-shadow":"0 0 #0000","--tw-shadow":"0 0 #0000","--tw-shadow-colored":"0 0 #0000"}),r({ring:a=>({"@defaults ring-width":{},"--tw-ring-offset-shadow":"var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color)","--tw-ring-shadow":`var(--tw-ring-inset) 0 0 0 calc(${a} + var(--tw-ring-offset-width)) var(--tw-ring-color)`,"box-shadow":["var(--tw-ring-offset-shadow)","var(--tw-ring-shadow)","var(--tw-shadow, 0 0 #0000)"].join(", ")})},{values:i("ringWidth"),type:"length"}),t({".ring-inset":{"@defaults ring-width":{},"--tw-ring-inset":"inset"}})},ringColor:({matchUtilities:r,theme:e,corePlugins:t})=>{r({ring:i=>t("ringOpacity")?Ae({color:i,property:"--tw-ring-color",variable:"--tw-ring-opacity"}):{"--tw-ring-color":X(i)}},{values:Object.fromEntries(Object.entries(xe(e("ringColor"))).filter(([i])=>i!=="DEFAULT")),type:["color","any"]})},ringOpacity:r=>{let{config:e}=r;return L("ringOpacity",[["ring-opacity",["--tw-ring-opacity"]]],{filterDefault:!we(e(),"respectDefaultRingColorOpacity")})(r)},ringOffsetWidth:L("ringOffsetWidth",[["ring-offset",["--tw-ring-offset-width"]]],{type:"length"}),ringOffsetColor:({matchUtilities:r,theme:e})=>{r({"ring-offset":t=>({"--tw-ring-offset-color":X(t)})},{values:xe(e("ringOffsetColor")),type:["color","any"]})},blur:({matchUtilities:r,theme:e})=>{r({blur:t=>({"--tw-blur":t.trim()===""?" ":`blur(${t})`,"@defaults filter":{},filter:nt})},{values:e("blur")})},brightness:({matchUtilities:r,theme:e})=>{r({brightness:t=>({"--tw-brightness":`brightness(${t})`,"@defaults filter":{},filter:nt})},{values:e("brightness")})},contrast:({matchUtilities:r,theme:e})=>{r({contrast:t=>({"--tw-contrast":`contrast(${t})`,"@defaults filter":{},filter:nt})},{values:e("contrast")})},dropShadow:({matchUtilities:r,theme:e})=>{r({"drop-shadow":t=>({"--tw-drop-shadow":Array.isArray(t)?t.map(i=>`drop-shadow(${i})`).join(" "):`drop-shadow(${t})`,"@defaults filter":{},filter:nt})},{values:e("dropShadow")})},grayscale:({matchUtilities:r,theme:e})=>{r({grayscale:t=>({"--tw-grayscale":`grayscale(${t})`,"@defaults filter":{},filter:nt})},{values:e("grayscale")})},hueRotate:({matchUtilities:r,theme:e})=>{r({"hue-rotate":t=>({"--tw-hue-rotate":`hue-rotate(${t})`,"@defaults filter":{},filter:nt})},{values:e("hueRotate"),supportsNegativeValues:!0})},invert:({matchUtilities:r,theme:e})=>{r({invert:t=>({"--tw-invert":`invert(${t})`,"@defaults filter":{},filter:nt})},{values:e("invert")})},saturate:({matchUtilities:r,theme:e})=>{r({saturate:t=>({"--tw-saturate":`saturate(${t})`,"@defaults filter":{},filter:nt})},{values:e("saturate")})},sepia:({matchUtilities:r,theme:e})=>{r({sepia:t=>({"--tw-sepia":`sepia(${t})`,"@defaults filter":{},filter:nt})},{values:e("sepia")})},filter:({addDefaults:r,addUtilities:e})=>{r("filter",{"--tw-blur":" ","--tw-brightness":" ","--tw-contrast":" ","--tw-grayscale":" ","--tw-hue-rotate":" ","--tw-invert":" ","--tw-saturate":" ","--tw-sepia":" ","--tw-drop-shadow":" "}),e({".filter":{"@defaults filter":{},filter:nt},".filter-none":{filter:"none"}})},backdropBlur:({matchUtilities:r,theme:e})=>{r({"backdrop-blur":t=>({"--tw-backdrop-blur":t.trim()===""?" ":`blur(${t})`,"@defaults backdrop-filter":{},"-webkit-backdrop-filter":ge,"backdrop-filter":ge})},{values:e("backdropBlur")})},backdropBrightness:({matchUtilities:r,theme:e})=>{r({"backdrop-brightness":t=>({"--tw-backdrop-brightness":`brightness(${t})`,"@defaults backdrop-filter":{},"-webkit-backdrop-filter":ge,"backdrop-filter":ge})},{values:e("backdropBrightness")})},backdropContrast:({matchUtilities:r,theme:e})=>{r({"backdrop-contrast":t=>({"--tw-backdrop-contrast":`contrast(${t})`,"@defaults backdrop-filter":{},"-webkit-backdrop-filter":ge,"backdrop-filter":ge})},{values:e("backdropContrast")})},backdropGrayscale:({matchUtilities:r,theme:e})=>{r({"backdrop-grayscale":t=>({"--tw-backdrop-grayscale":`grayscale(${t})`,"@defaults backdrop-filter":{},"-webkit-backdrop-filter":ge,"backdrop-filter":ge})},{values:e("backdropGrayscale")})},backdropHueRotate:({matchUtilities:r,theme:e})=>{r({"backdrop-hue-rotate":t=>({"--tw-backdrop-hue-rotate":`hue-rotate(${t})`,"@defaults backdrop-filter":{},"-webkit-backdrop-filter":ge,"backdrop-filter":ge})},{values:e("backdropHueRotate"),supportsNegativeValues:!0})},backdropInvert:({matchUtilities:r,theme:e})=>{r({"backdrop-invert":t=>({"--tw-backdrop-invert":`invert(${t})`,"@defaults backdrop-filter":{},"-webkit-backdrop-filter":ge,"backdrop-filter":ge})},{values:e("backdropInvert")})},backdropOpacity:({matchUtilities:r,theme:e})=>{r({"backdrop-opacity":t=>({"--tw-backdrop-opacity":`opacity(${t})`,"@defaults backdrop-filter":{},"-webkit-backdrop-filter":ge,"backdrop-filter":ge})},{values:e("backdropOpacity")})},backdropSaturate:({matchUtilities:r,theme:e})=>{r({"backdrop-saturate":t=>({"--tw-backdrop-saturate":`saturate(${t})`,"@defaults backdrop-filter":{},"-webkit-backdrop-filter":ge,"backdrop-filter":ge})},{values:e("backdropSaturate")})},backdropSepia:({matchUtilities:r,theme:e})=>{r({"backdrop-sepia":t=>({"--tw-backdrop-sepia":`sepia(${t})`,"@defaults backdrop-filter":{},"-webkit-backdrop-filter":ge,"backdrop-filter":ge})},{values:e("backdropSepia")})},backdropFilter:({addDefaults:r,addUtilities:e})=>{r("backdrop-filter",{"--tw-backdrop-blur":" ","--tw-backdrop-brightness":" ","--tw-backdrop-contrast":" ","--tw-backdrop-grayscale":" ","--tw-backdrop-hue-rotate":" ","--tw-backdrop-invert":" ","--tw-backdrop-opacity":" ","--tw-backdrop-saturate":" ","--tw-backdrop-sepia":" "}),e({".backdrop-filter":{"@defaults backdrop-filter":{},"-webkit-backdrop-filter":ge,"backdrop-filter":ge},".backdrop-filter-none":{"-webkit-backdrop-filter":"none","backdrop-filter":"none"}})},transitionProperty:({matchUtilities:r,theme:e})=>{let t=e("transitionTimingFunction.DEFAULT"),i=e("transitionDuration.DEFAULT");r({transition:n=>({"transition-property":n,...n==="none"?{}:{"transition-timing-function":t,"transition-duration":i}})},{values:e("transitionProperty")})},transitionDelay:L("transitionDelay",[["delay",["transitionDelay"]]]),transitionDuration:L("transitionDuration",[["duration",["transitionDuration"]]],{filterDefault:!0}),transitionTimingFunction:L("transitionTimingFunction",[["ease",["transitionTimingFunction"]]],{filterDefault:!0}),willChange:L("willChange",[["will-change",["will-change"]]]),contain:({addDefaults:r,addUtilities:e})=>{let t="var(--tw-contain-size) var(--tw-contain-layout) var(--tw-contain-paint) var(--tw-contain-style)";r("contain",{"--tw-contain-size":" ","--tw-contain-layout":" ","--tw-contain-paint":" ","--tw-contain-style":" "}),e({".contain-none":{contain:"none"},".contain-content":{contain:"content"},".contain-strict":{contain:"strict"},".contain-size":{"@defaults contain":{},"--tw-contain-size":"size",contain:t},".contain-inline-size":{"@defaults contain":{},"--tw-contain-size":"inline-size",contain:t},".contain-layout":{"@defaults contain":{},"--tw-contain-layout":"layout",contain:t},".contain-paint":{"@defaults contain":{},"--tw-contain-paint":"paint",contain:t},".contain-style":{"@defaults contain":{},"--tw-contain-style":"style",contain:t}})},content:L("content",[["content",["--tw-content",["content","var(--tw-content)"]]]]),forcedColorAdjust:({addUtilities:r})=>{r({".forced-color-adjust-auto":{"forced-color-adjust":"auto"},".forced-color-adjust-none":{"forced-color-adjust":"none"}})}}});function h_(r){if(r===void 0)return!1;if(r==="true"||r==="1")return!0;if(r==="false"||r==="0")return!1;if(r==="*")return!0;let e=r.split(",").map(t=>t.split(":")[0]);return e.includes("-tailwindcss")?!1:!!e.includes("tailwindcss")}var Ze,wh,vh,es,No,gt,Ti,It=P(()=>{u();Ze=typeof m!="undefined"?{NODE_ENV:"production",DEBUG:h_(m.env.DEBUG)}:{NODE_ENV:"production",DEBUG:!1},wh=new Map,vh=new Map,es=new Map,No=new Map,gt=new String("*"),Ti=Symbol("__NONE__")});function cr(r){let e=[],t=!1;for(let i=0;i0)}var xh,kh,m_,Bo=P(()=>{u();xh=new Map([["{","}"],["[","]"],["(",")"]]),kh=new Map(Array.from(xh.entries()).map(([r,e])=>[e,r])),m_=new Set(['"',"'","`"])});function pr(r){let[e]=Sh(r);return e.forEach(([t,i])=>t.removeChild(i)),r.nodes.push(...e.map(([,t])=>t)),r}function Sh(r){let e=[],t=null;for(let i of r.nodes)if(i.type==="combinator")e=e.filter(([,n])=>jo(n).includes("jumpable")),t=null;else if(i.type==="pseudo"){g_(i)?(t=i,e.push([r,i,null])):t&&y_(i,t)?e.push([r,i,t]):t=null;for(let n of i.nodes??[]){let[s,a]=Sh(n);t=a||t,e.push(...s)}}return[e,t]}function Ah(r){return r.value.startsWith("::")||Fo[r.value]!==void 0}function g_(r){return Ah(r)&&jo(r).includes("terminal")}function y_(r,e){return r.type!=="pseudo"||Ah(r)?!1:jo(e).includes("actionable")}function jo(r){return Fo[r.value]??Fo.__default__}var Fo,ts=P(()=>{u();Fo={"::after":["terminal","jumpable"],"::backdrop":["terminal","jumpable"],"::before":["terminal","jumpable"],"::cue":["terminal"],"::cue-region":["terminal"],"::first-letter":["terminal","jumpable"],"::first-line":["terminal","jumpable"],"::grammar-error":["terminal"],"::marker":["terminal","jumpable"],"::part":["terminal","actionable"],"::placeholder":["terminal","jumpable"],"::selection":["terminal","jumpable"],"::slotted":["terminal"],"::spelling-error":["terminal"],"::target-text":["terminal"],"::file-selector-button":["terminal","actionable"],"::deep":["actionable"],"::v-deep":["actionable"],"::ng-deep":["actionable"],":after":["terminal","jumpable"],":before":["terminal","jumpable"],":first-letter":["terminal","jumpable"],":first-line":["terminal","jumpable"],":where":[],":is":[],":has":[],__default__:["terminal","actionable"]}});function dr(r,{context:e,candidate:t}){let i=e?.tailwindConfig.prefix??"",n=r.map(a=>{let o=(0,st.default)().astSync(a.format);return{...a,ast:a.respectPrefix?ur(i,o):o}}),s=st.default.root({nodes:[st.default.selector({nodes:[st.default.className({value:Te(t)})]})]});for(let{ast:a}of n)[s,a]=w_(s,a),a.walkNesting(o=>o.replaceWith(...s.nodes[0].nodes)),s=a;return s}function _h(r){let e=[];for(;r.prev()&&r.prev().type!=="combinator";)r=r.prev();for(;r&&r.type!=="combinator";)e.push(r),r=r.next();return e}function b_(r){return r.sort((e,t)=>e.type==="tag"&&t.type==="class"?-1:e.type==="class"&&t.type==="tag"?1:e.type==="class"&&t.type==="pseudo"&&t.value.startsWith("::")?-1:e.type==="pseudo"&&e.value.startsWith("::")&&t.type==="class"?1:r.index(e)-r.index(t)),r}function Uo(r,e){let t=!1;r.walk(i=>{if(i.type==="class"&&i.value===e)return t=!0,!1}),t||r.remove()}function rs(r,e,{context:t,candidate:i,base:n}){let s=t?.tailwindConfig?.separator??":";n=n??ve(i,s).pop();let a=(0,st.default)().astSync(r);if(a.walkClasses(f=>{f.raws&&f.value.includes(n)&&(f.raws.value=Te((0,Ch.default)(f.raws.value)))}),a.each(f=>Uo(f,n)),a.length===0)return null;let o=Array.isArray(e)?dr(e,{context:t,candidate:i}):e;if(o===null)return a.toString();let l=st.default.comment({value:"/*__simple__*/"}),c=st.default.comment({value:"/*__simple__*/"});return a.walkClasses(f=>{if(f.value!==n)return;let d=f.parent,p=o.nodes[0].nodes;if(d.nodes.length===1){f.replaceWith(...p);return}let h=_h(f);d.insertBefore(h[0],l),d.insertAfter(h[h.length-1],c);for(let v of p)d.insertBefore(h[0],v.clone());f.remove(),h=_h(l);let b=d.index(l);d.nodes.splice(b,h.length,...b_(st.default.selector({nodes:h})).nodes),l.remove(),c.remove()}),a.walkPseudos(f=>{f.value===zo&&f.replaceWith(f.nodes)}),a.each(f=>pr(f)),a.toString()}function w_(r,e){let t=[];return r.walkPseudos(i=>{i.value===zo&&t.push({pseudo:i,value:i.nodes[0].toString()})}),e.walkPseudos(i=>{if(i.value!==zo)return;let n=i.nodes[0].toString(),s=t.find(c=>c.value===n);if(!s)return;let a=[],o=i.next();for(;o&&o.type!=="combinator";)a.push(o),o=o.next();let l=o;s.pseudo.parent.insertAfter(s.pseudo,st.default.selector({nodes:a.map(c=>c.clone())})),i.remove(),a.forEach(c=>c.remove()),l&&l.type==="combinator"&&l.remove()}),[r,e]}var st,Ch,zo,Vo=P(()=>{u();st=pe(it()),Ch=pe(Pn());fr();Gn();ts();zt();zo=":merge"});function is(r,e){let t=(0,Ho.default)().astSync(r);return t.each(i=>{i.nodes.some(s=>s.type==="combinator")&&(i.nodes=[Ho.default.pseudo({value:":is",nodes:[i.clone()]})]),pr(i)}),`${e} ${t.toString()}`}var Ho,Wo=P(()=>{u();Ho=pe(it());ts()});function Go(r){return v_.transformSync(r)}function*x_(r){let e=1/0;for(;e>=0;){let t,i=!1;if(e===1/0&&r.endsWith("]")){let a=r.indexOf("[");r[a-1]==="-"?t=a-1:r[a-1]==="/"?(t=a-1,i=!0):t=-1}else e===1/0&&r.includes("/")?(t=r.lastIndexOf("/"),i=!0):t=r.lastIndexOf("-",e);if(t<0)break;let n=r.slice(0,t),s=r.slice(i?t:t+1);e=t-1,!(n===""||s==="/")&&(yield[n,s])}}function k_(r,e){if(r.length===0||e.tailwindConfig.prefix==="")return r;for(let t of r){let[i]=t;if(i.options.respectPrefix){let n=ee.root({nodes:[t[1].clone()]}),s=t[1].raws.tailwind.classCandidate;n.walkRules(a=>{let o=s.startsWith("-");a.selector=ur(e.tailwindConfig.prefix,a.selector,o)}),t[1]=n.nodes[0]}}return r}function S_(r,e){if(r.length===0)return r;let t=[];function i(n){return n.parent&&n.parent.type==="atrule"&&n.parent.name==="keyframes"}for(let[n,s]of r){let a=ee.root({nodes:[s.clone()]});a.walkRules(o=>{if(i(o))return;let l=(0,ns.default)().astSync(o.selector);l.each(c=>Uo(c,e)),Qf(l,c=>c===e?`!${c}`:c),o.selector=l.toString(),o.walkDecls(c=>c.important=!0)}),t.push([{...n,important:!0},a.nodes[0]])}return t}function A_(r,e,t){if(e.length===0)return e;let i={modifier:null,value:Ti};{let[n,...s]=ve(r,"/");if(s.length>1&&(n=n+"/"+s.slice(0,-1).join("/"),s=s.slice(-1)),s.length&&!t.variantMap.has(r)&&(r=n,i.modifier=s[0],!we(t.tailwindConfig,"generalizedModifiers")))return[]}if(r.endsWith("]")&&!r.startsWith("[")){let n=/(.)(-?)\[(.*)\]/g.exec(r);if(n){let[,s,a,o]=n;if(s==="@"&&a==="-")return[];if(s!=="@"&&a==="")return[];r=r.replace(`${a}[${o}]`,""),i.value=o}}if(Ko(r)&&!t.variantMap.has(r)){let n=t.offsets.recordVariant(r),s=K(r.slice(1,-1)),a=ve(s,",");if(a.length>1)return[];if(!a.every(ls))return[];let o=a.map((l,c)=>[t.offsets.applyParallelOffset(n,c),Ri(l.trim())]);t.variantMap.set(r,o)}if(t.variantMap.has(r)){let n=Ko(r),s=t.variantOptions.get(r)?.[Pt]??{},a=t.variantMap.get(r).slice(),o=[],l=(()=>!(n||s.respectPrefix===!1))();for(let[c,f]of e){if(c.layer==="user")continue;let d=ee.root({nodes:[f.clone()]});for(let[p,h,b]of a){let w=function(){v.raws.neededBackup||(v.raws.neededBackup=!0,v.walkRules(T=>T.raws.originalSelector=T.selector))},k=function(T){return w(),v.each(B=>{B.type==="rule"&&(B.selectors=B.selectors.map(N=>T({get className(){return Go(N)},selector:N})))}),v},v=(b??d).clone(),y=[],S=h({get container(){return w(),v},separator:t.tailwindConfig.separator,modifySelectors:k,wrap(T){let B=v.nodes;v.removeAll(),T.append(B),v.append(T)},format(T){y.push({format:T,respectPrefix:l})},args:i});if(Array.isArray(S)){for(let[T,B]of S.entries())a.push([t.offsets.applyParallelOffset(p,T),B,v.clone()]);continue}if(typeof S=="string"&&y.push({format:S,respectPrefix:l}),S===null)continue;v.raws.neededBackup&&(delete v.raws.neededBackup,v.walkRules(T=>{let B=T.raws.originalSelector;if(!B||(delete T.raws.originalSelector,B===T.selector))return;let N=T.selector,R=(0,ns.default)(F=>{F.walkClasses(Y=>{Y.value=`${r}${t.tailwindConfig.separator}${Y.value}`})}).processSync(B);y.push({format:N.replace(R,"&"),respectPrefix:l}),T.selector=B})),v.nodes[0].raws.tailwind={...v.nodes[0].raws.tailwind,parentLayer:c.layer};let E=[{...c,sort:t.offsets.applyVariantOffset(c.sort,p,Object.assign(i,t.variantOptions.get(r))),collectedFormats:(c.collectedFormats??[]).concat(y)},v.nodes[0]];o.push(E)}}return o}return[]}function Qo(r,e,t={}){return!ke(r)&&!Array.isArray(r)?[[r],t]:Array.isArray(r)?Qo(r[0],e,r[1]):(e.has(r)||e.set(r,lr(r)),[e.get(r),t])}function __(r){return C_.test(r)}function E_(r){if(!r.includes("://"))return!1;try{let e=new URL(r);return e.scheme!==""&&e.host!==""}catch(e){return!1}}function Eh(r){let e=!0;return r.walkDecls(t=>{if(!Oh(t.prop,t.value))return e=!1,!1}),e}function Oh(r,e){if(E_(`${r}:${e}`))return!1;try{return ee.parse(`a{${r}:${e}}`).toResult(),!0}catch(t){return!1}}function O_(r,e){let[,t,i]=r.match(/^\[([a-zA-Z0-9-_]+):(\S+)\]$/)??[];if(i===void 0||!__(t)||!cr(i))return null;let n=K(i,{property:t});return Oh(t,n)?[[{sort:e.offsets.arbitraryProperty(r),layer:"utilities",options:{respectImportant:!0}},()=>({[$o(r)]:{[t]:n}})]]:null}function*T_(r,e){e.candidateRuleMap.has(r)&&(yield[e.candidateRuleMap.get(r),"DEFAULT"]),yield*function*(o){o!==null&&(yield[o,"DEFAULT"])}(O_(r,e));let t=r,i=!1,n=e.tailwindConfig.prefix,s=n.length,a=t.startsWith(n)||t.startsWith(`-${n}`);t[s]==="-"&&a&&(i=!0,t=n+t.slice(s+1)),i&&e.candidateRuleMap.has(t)&&(yield[e.candidateRuleMap.get(t),"-DEFAULT"]);for(let[o,l]of x_(t))e.candidateRuleMap.has(o)&&(yield[e.candidateRuleMap.get(o),i?`-${l}`:l])}function R_(r,e){return r===gt?[gt]:ve(r,e)}function*P_(r,e){for(let t of r)t[1].raws.tailwind={...t[1].raws.tailwind,classCandidate:e,preserveSource:t[0].options?.preserveSource??!1},yield t}function*Yo(r,e){let t=e.tailwindConfig.separator,[i,...n]=R_(r,t).reverse(),s=!1;i.startsWith("!")&&(s=!0,i=i.slice(1));for(let a of T_(i,e)){let o=[],l=new Map,[c,f]=a,d=c.length===1;for(let[p,h]of c){let b=[];if(typeof h=="function")for(let v of[].concat(h(f,{isOnlyPlugin:d}))){let[y,w]=Qo(v,e.postCssNodeCache);for(let k of y)b.push([{...p,options:{...p.options,...w}},k])}else if(f==="DEFAULT"||f==="-DEFAULT"){let v=h,[y,w]=Qo(v,e.postCssNodeCache);for(let k of y)b.push([{...p,options:{...p.options,...w}},k])}if(b.length>0){let v=Array.from(ta(p.options?.types??[],f,p.options??{},e.tailwindConfig)).map(([y,w])=>w);v.length>0&&l.set(b,v),o.push(b)}}if(Ko(f)){if(o.length>1){let b=function(y){return y.length===1?y[0]:y.find(w=>{let k=l.get(w);return w.some(([{options:S},E])=>Eh(E)?S.types.some(({type:T,preferOnConflict:B})=>k.includes(T)&&B):!1)})},[p,h]=o.reduce((y,w)=>(w.some(([{options:S}])=>S.types.some(({type:E})=>E==="any"))?y[0].push(w):y[1].push(w),y),[[],[]]),v=b(h)??b(p);if(v)o=[v];else{let y=o.map(k=>new Set([...l.get(k)??[]]));for(let k of y)for(let S of k){let E=!1;for(let T of y)k!==T&&T.has(S)&&(T.delete(S),E=!0);E&&k.delete(S)}let w=[];for(let[k,S]of y.entries())for(let E of S){let T=o[k].map(([,B])=>B).flat().map(B=>B.toString().split(` +`).slice(1,-1).map(N=>N.trim()).map(N=>` ${N}`).join(` +`)).join(` + +`);w.push(` Use \`${r.replace("[",`[${E}:`)}\` for \`${T.trim()}\``);break}G.warn([`The class \`${r}\` is ambiguous and matches multiple utilities.`,...w,`If this is content and not a class, replace it with \`${r.replace("[","[").replace("]","]")}\` to silence this warning.`]);continue}}o=o.map(p=>p.filter(h=>Eh(h[1])))}o=o.flat(),o=Array.from(P_(o,i)),o=k_(o,e),s&&(o=S_(o,i));for(let p of n)o=A_(p,o,e);for(let p of o)p[1].raws.tailwind={...p[1].raws.tailwind,candidate:r},p=I_(p,{context:e,candidate:r}),p!==null&&(yield p)}}function I_(r,{context:e,candidate:t}){if(!r[0].collectedFormats)return r;let i=!0,n;try{n=dr(r[0].collectedFormats,{context:e,candidate:t})}catch{return null}let s=ee.root({nodes:[r[1].clone()]});return s.walkRules(a=>{if(!ss(a))try{let o=rs(a.selector,n,{candidate:t,context:e});if(o===null){a.remove();return}a.selector=o}catch{return i=!1,!1}}),!i||s.nodes.length===0?null:(r[1]=s.nodes[0],r)}function ss(r){return r.parent&&r.parent.type==="atrule"&&r.parent.name==="keyframes"}function D_(r){if(r===!0)return e=>{ss(e)||e.walkDecls(t=>{t.parent.type==="rule"&&!ss(t.parent)&&(t.important=!0)})};if(typeof r=="string")return e=>{ss(e)||(e.selectors=e.selectors.map(t=>is(t,r)))}}function as(r,e,t=!1){let i=[],n=D_(e.tailwindConfig.important);for(let s of r){if(e.notClassCache.has(s))continue;if(e.candidateRuleCache.has(s)){i=i.concat(Array.from(e.candidateRuleCache.get(s)));continue}let a=Array.from(Yo(s,e));if(a.length===0){e.notClassCache.add(s);continue}e.classCache.set(s,a);let o=e.candidateRuleCache.get(s)??new Set;e.candidateRuleCache.set(s,o);for(let l of a){let[{sort:c,options:f},d]=l;if(f.respectImportant&&n){let h=ee.root({nodes:[d.clone()]});h.walkRules(n),d=h.nodes[0]}let p=[c,t?d.clone():d];o.add(p),e.ruleCache.add(p),i.push(p)}}return i}function Ko(r){return r.startsWith("[")&&r.endsWith("]")}var ns,v_,C_,os=P(()=>{u();Ot();ns=pe(it());qo();Kt();Gn();Fr();Be();It();Vo();Lo();Br();Oi();Bo();zt();ct();Wo();v_=(0,ns.default)(r=>r.first.filter(({type:e})=>e==="class").pop().value);C_=/^[a-z_-]/});var Th,Rh=P(()=>{u();Th={}});function q_(r){try{return Th.createHash("md5").update(r,"utf-8").digest("binary")}catch(e){return""}}function Ph(r,e){let t=e.toString();if(!t.includes("@tailwind"))return!1;let i=No.get(r),n=q_(t),s=i!==n;return No.set(r,n),s}var Ih=P(()=>{u();Rh();It()});function us(r){return(r>0n)-(r<0n)}var Dh=P(()=>{u()});function qh(r,e){let t=0n,i=0n;for(let[n,s]of e)r&n&&(t=t|n,i=i|s);return r&~t|i}var $h=P(()=>{u()});function Lh(r){let e=null;for(let t of r)e=e??t,e=e>t?e:t;return e}function $_(r,e){let t=r.length,i=e.length,n=t{u();Dh();$h();Xo=class{constructor(){this.offsets={defaults:0n,base:0n,components:0n,utilities:0n,variants:0n,user:0n},this.layerPositions={defaults:0n,base:1n,components:2n,utilities:3n,user:4n,variants:5n},this.reservedVariantBits=0n,this.variantOffsets=new Map}create(e){return{layer:e,parentLayer:e,arbitrary:0n,variants:0n,parallelIndex:0n,index:this.offsets[e]++,propertyOffset:0n,property:"",options:[]}}arbitraryProperty(e){return{...this.create("utilities"),arbitrary:1n,property:e}}forVariant(e,t=0){let i=this.variantOffsets.get(e);if(i===void 0)throw new Error(`Cannot find offset for unknown variant ${e}`);return{...this.create("variants"),variants:i<n.startsWith("[")).sort(([n],[s])=>$_(n,s)),t=e.map(([,n])=>n).sort((n,s)=>us(n-s));return e.map(([,n],s)=>[n,t[s]]).filter(([n,s])=>n!==s)}remapArbitraryVariantOffsets(e){let t=this.recalculateVariantOffsets();return t.length===0?e:e.map(i=>{let[n,s]=i;return n={...n,variants:qh(n.variants,t)},[n,s]})}sortArbitraryProperties(e){let t=new Set;for(let[a]of e)a.arbitrary===1n&&t.add(a.property);if(t.size===0)return e;let i=Array.from(t).sort(),n=new Map,s=1n;for(let a of i)n.set(a,s++);return e.map(a=>{let[o,l]=a;return o={...o,propertyOffset:n.get(o.property)??0n},[o,l]})}sort(e){return e=this.remapArbitraryVariantOffsets(e),e=this.sortArbitraryProperties(e),e.sort(([t],[i])=>us(this.compare(t,i)))}}});function tl(r,e){let t=r.tailwindConfig.prefix;return typeof t=="function"?t(e):t+e}function Bh({type:r="any",...e}){let t=[].concat(r);return{...e,types:t.map(i=>Array.isArray(i)?{type:i[0],...i[1]}:{type:i,preferOnConflict:!1})}}function L_(r){let e=[],t="",i=0;for(let n=0;n0&&e.push(t.trim()),e=e.filter(n=>n!==""),e}function M_(r,e,{before:t=[]}={}){if(t=[].concat(t),t.length<=0){r.push(e);return}let i=r.length-1;for(let n of t){let s=r.indexOf(n);s!==-1&&(i=Math.min(i,s))}r.splice(i,0,e)}function Fh(r){return Array.isArray(r)?r.flatMap(e=>!Array.isArray(e)&&!ke(e)?e:lr(e)):Fh([r])}function N_(r,e){return(0,Zo.default)(i=>{let n=[];return e&&e(i),i.walkClasses(s=>{n.push(s.value)}),n}).transformSync(r)}function B_(r){r.walkPseudos(e=>{e.value===":not"&&e.remove()})}function F_(r,e={containsNonOnDemandable:!1},t=0){let i=[],n=[];r.type==="rule"?n.push(...r.selectors):r.type==="atrule"&&r.walkRules(s=>n.push(...s.selectors));for(let s of n){let a=N_(s,B_);a.length===0&&(e.containsNonOnDemandable=!0);for(let o of a)i.push(o)}return t===0?[e.containsNonOnDemandable||i.length===0,i]:i}function fs(r){return Fh(r).flatMap(e=>{let t=new Map,[i,n]=F_(e);return i&&n.unshift(gt),n.map(s=>(t.has(e)||t.set(e,e),[s,t.get(e)]))})}function ls(r){return r.startsWith("@")||r.includes("&")}function Ri(r){r=r.replace(/\n+/g,"").replace(/\s{1,}/g," ").trim();let e=L_(r).map(t=>{if(!t.startsWith("@"))return({format:s})=>s(t);let[,i,n]=/@(\S*)( .+|[({].*)?/g.exec(t);return({wrap:s})=>s(ee.atRule({name:i,params:n?.trim()??""}))}).reverse();return t=>{for(let i of e)i(t)}}function j_(r,e,{variantList:t,variantMap:i,offsets:n,classList:s}){function a(p,h){return p?(0,Nh.default)(r,p,h):r}function o(p){return ur(r.prefix,p)}function l(p,h){return p===gt?gt:h.respectPrefix?e.tailwindConfig.prefix+p:p}function c(p,h,b={}){let v=kt(p),y=a(["theme",...v],h);return mt(v[0])(y,b)}let f=0,d={postcss:ee,prefix:o,e:Te,config:a,theme:c,corePlugins:p=>Array.isArray(r.corePlugins)?r.corePlugins.includes(p):a(["corePlugins",p],!0),variants:()=>[],addBase(p){for(let[h,b]of fs(p)){let v=l(h,{}),y=n.create("base");e.candidateRuleMap.has(v)||e.candidateRuleMap.set(v,[]),e.candidateRuleMap.get(v).push([{sort:y,layer:"base"},b])}},addDefaults(p,h){let b={[`@defaults ${p}`]:h};for(let[v,y]of fs(b)){let w=l(v,{});e.candidateRuleMap.has(w)||e.candidateRuleMap.set(w,[]),e.candidateRuleMap.get(w).push([{sort:n.create("defaults"),layer:"defaults"},y])}},addComponents(p,h){h=Object.assign({},{preserveSource:!1,respectPrefix:!0,respectImportant:!1},Array.isArray(h)?{}:h);for(let[v,y]of fs(p)){let w=l(v,h);s.add(w),e.candidateRuleMap.has(w)||e.candidateRuleMap.set(w,[]),e.candidateRuleMap.get(w).push([{sort:n.create("components"),layer:"components",options:h},y])}},addUtilities(p,h){h=Object.assign({},{preserveSource:!1,respectPrefix:!0,respectImportant:!0},Array.isArray(h)?{}:h);for(let[v,y]of fs(p)){let w=l(v,h);s.add(w),e.candidateRuleMap.has(w)||e.candidateRuleMap.set(w,[]),e.candidateRuleMap.get(w).push([{sort:n.create("utilities"),layer:"utilities",options:h},y])}},matchUtilities:function(p,h){h=Bh({...{respectPrefix:!0,respectImportant:!0,modifiers:!1},...h});let v=n.create("utilities");for(let y in p){let S=function(T,{isOnlyPlugin:B}){let[N,R,F]=ea(h.types,T,h,r);if(N===void 0)return[];if(!h.types.some(({type:U})=>U===R))if(B)G.warn([`Unnecessary typehint \`${R}\` in \`${y}-${T}\`.`,`You can safely update it to \`${y}-${T.replace(R+":","")}\`.`]);else return[];if(!cr(N))return[];let Y={get modifier(){return h.modifiers||G.warn(`modifier-used-without-options-for-${y}`,["Your plugin must set `modifiers: true` in its options to support modifiers."]),F}},_=we(r,"generalizedModifiers");return[].concat(_?k(N,Y):k(N)).filter(Boolean).map(U=>({[Qn(y,T)]:U}))},w=l(y,h),k=p[y];s.add([w,h]);let E=[{sort:v,layer:"utilities",options:h},S];e.candidateRuleMap.has(w)||e.candidateRuleMap.set(w,[]),e.candidateRuleMap.get(w).push(E)}},matchComponents:function(p,h){h=Bh({...{respectPrefix:!0,respectImportant:!1,modifiers:!1},...h});let v=n.create("components");for(let y in p){let S=function(T,{isOnlyPlugin:B}){let[N,R,F]=ea(h.types,T,h,r);if(N===void 0)return[];if(!h.types.some(({type:U})=>U===R))if(B)G.warn([`Unnecessary typehint \`${R}\` in \`${y}-${T}\`.`,`You can safely update it to \`${y}-${T.replace(R+":","")}\`.`]);else return[];if(!cr(N))return[];let Y={get modifier(){return h.modifiers||G.warn(`modifier-used-without-options-for-${y}`,["Your plugin must set `modifiers: true` in its options to support modifiers."]),F}},_=we(r,"generalizedModifiers");return[].concat(_?k(N,Y):k(N)).filter(Boolean).map(U=>({[Qn(y,T)]:U}))},w=l(y,h),k=p[y];s.add([w,h]);let E=[{sort:v,layer:"components",options:h},S];e.candidateRuleMap.has(w)||e.candidateRuleMap.set(w,[]),e.candidateRuleMap.get(w).push(E)}},addVariant(p,h,b={}){h=[].concat(h).map(v=>{if(typeof v!="string")return(y={})=>{let{args:w,modifySelectors:k,container:S,separator:E,wrap:T,format:B}=y,N=v(Object.assign({modifySelectors:k,container:S,separator:E},b.type===Jo.MatchVariant&&{args:w,wrap:T,format:B}));if(typeof N=="string"&&!ls(N))throw new Error(`Your custom variant \`${p}\` has an invalid format string. Make sure it's an at-rule or contains a \`&\` placeholder.`);return Array.isArray(N)?N.filter(R=>typeof R=="string").map(R=>Ri(R)):N&&typeof N=="string"&&Ri(N)(y)};if(!ls(v))throw new Error(`Your custom variant \`${p}\` has an invalid format string. Make sure it's an at-rule or contains a \`&\` placeholder.`);return Ri(v)}),M_(t,p,b),i.set(p,h),e.variantOptions.set(p,b)},matchVariant(p,h,b){let v=b?.id??++f,y=p==="@",w=we(r,"generalizedModifiers");for(let[S,E]of Object.entries(b?.values??{}))S!=="DEFAULT"&&d.addVariant(y?`${p}${S}`:`${p}-${S}`,({args:T,container:B})=>h(E,w?{modifier:T?.modifier,container:B}:{container:B}),{...b,value:E,id:v,type:Jo.MatchVariant,variantInfo:el.Base});let k="DEFAULT"in(b?.values??{});d.addVariant(p,({args:S,container:E})=>S?.value===Ti&&!k?null:h(S?.value===Ti?b.values.DEFAULT:S?.value??(typeof S=="string"?S:""),w?{modifier:S?.modifier,container:E}:{container:E}),{...b,id:v,type:Jo.MatchVariant,variantInfo:el.Dynamic})}};return d}function cs(r){return rl.has(r)||rl.set(r,new Map),rl.get(r)}function jh(r,e){let t=!1,i=new Map;for(let n of r){if(!n)continue;let s=oa.parse(n),a=s.hash?s.href.replace(s.hash,""):s.href;a=s.search?a.replace(s.search,""):a;let o=be.statSync(decodeURIComponent(a),{throwIfNoEntry:!1})?.mtimeMs;!o||((!e.has(n)||o>e.get(n))&&(t=!0),i.set(n,o))}return[t,i]}function zh(r){r.walkAtRules(e=>{["responsive","variants"].includes(e.name)&&(zh(e),e.before(e.nodes),e.remove())})}function z_(r){let e=[];return r.each(t=>{t.type==="atrule"&&["responsive","variants"].includes(t.name)&&(t.name="layer",t.params="utilities")}),r.walkAtRules("layer",t=>{if(zh(t),t.params==="base"){for(let i of t.nodes)e.push(function({addBase:n}){n(i,{respectPrefix:!1})});t.remove()}else if(t.params==="components"){for(let i of t.nodes)e.push(function({addComponents:n}){n(i,{respectPrefix:!1,preserveSource:!0})});t.remove()}else if(t.params==="utilities"){for(let i of t.nodes)e.push(function({addUtilities:n}){n(i,{respectPrefix:!1,preserveSource:!0})});t.remove()}}),e}function U_(r,e){let t=Object.entries({...se,...yh}).map(([l,c])=>r.tailwindConfig.corePlugins.includes(l)?c:null).filter(Boolean),i=r.tailwindConfig.plugins.map(l=>(l.__isOptionsFunction&&(l=l()),typeof l=="function"?l:l.handler)),n=z_(e),s=[se.childVariant,se.pseudoElementVariants,se.pseudoClassVariants,se.hasVariants,se.ariaVariants,se.dataVariants],a=[se.supportsVariants,se.reducedMotionVariants,se.prefersContrastVariants,se.screenVariants,se.orientationVariants,se.directionVariants,se.darkVariants,se.forcedColorsVariants,se.printVariant];return(r.tailwindConfig.darkMode==="class"||Array.isArray(r.tailwindConfig.darkMode)&&r.tailwindConfig.darkMode[0]==="class")&&(a=[se.supportsVariants,se.reducedMotionVariants,se.prefersContrastVariants,se.darkVariants,se.screenVariants,se.orientationVariants,se.directionVariants,se.forcedColorsVariants,se.printVariant]),[...t,...s,...i,...a,...n]}function V_(r,e){let t=[],i=new Map;e.variantMap=i;let n=new Xo;e.offsets=n;let s=new Set,a=j_(e.tailwindConfig,e,{variantList:t,variantMap:i,offsets:n,classList:s});for(let f of r)if(Array.isArray(f))for(let d of f)d(a);else f?.(a);n.recordVariants(t,f=>i.get(f).length);for(let[f,d]of i.entries())e.variantMap.set(f,d.map((p,h)=>[n.forVariant(f,h),p]));let o=(e.tailwindConfig.safelist??[]).filter(Boolean);if(o.length>0){let f=[];for(let d of o){if(typeof d=="string"){e.changedContent.push({content:d,extension:"html"});continue}if(d instanceof RegExp){G.warn("root-regex",["Regular expressions in `safelist` work differently in Tailwind CSS v3.0.","Update your `safelist` configuration to eliminate this warning.","https://tailwindcss.com/docs/content-configuration#safelisting-classes"]);continue}f.push(d)}if(f.length>0){let d=new Map,p=e.tailwindConfig.prefix.length,h=f.some(b=>b.pattern.source.includes("!"));for(let b of s){let v=Array.isArray(b)?(()=>{let[y,w]=b,S=Object.keys(w?.values??{}).map(E=>Ei(y,E));return w?.supportsNegativeValues&&(S=[...S,...S.map(E=>"-"+E)],S=[...S,...S.map(E=>E.slice(0,p)+"-"+E.slice(p))]),w.types.some(({type:E})=>E==="color")&&(S=[...S,...S.flatMap(E=>Object.keys(e.tailwindConfig.theme.opacity).map(T=>`${E}/${T}`))]),h&&w?.respectImportant&&(S=[...S,...S.map(E=>"!"+E)]),S})():[b];for(let y of v)for(let{pattern:w,variants:k=[]}of f)if(w.lastIndex=0,d.has(w)||d.set(w,0),!!w.test(y)){d.set(w,d.get(w)+1),e.changedContent.push({content:y,extension:"html"});for(let S of k)e.changedContent.push({content:S+e.tailwindConfig.separator+y,extension:"html"})}}for(let[b,v]of d.entries())v===0&&G.warn([`The safelist pattern \`${b}\` doesn't match any Tailwind CSS classes.`,"Fix this pattern or remove it from your `safelist` configuration.","https://tailwindcss.com/docs/content-configuration#safelisting-classes"])}}let l=[].concat(e.tailwindConfig.darkMode??"media")[1]??"dark",c=[tl(e,l),tl(e,"group"),tl(e,"peer")];e.getClassOrder=function(d){let p=[...d].sort((y,w)=>y===w?0:y[y,null])),b=as(new Set(p),e,!0);b=e.offsets.sort(b);let v=BigInt(c.length);for(let[,y]of b){let w=y.raws.tailwind.candidate;h.set(w,h.get(w)??v++)}return d.map(y=>{let w=h.get(y)??null,k=c.indexOf(y);return w===null&&k!==-1&&(w=BigInt(k)),[y,w]})},e.getClassList=function(d={}){let p=[];for(let h of s)if(Array.isArray(h)){let[b,v]=h,y=[],w=Object.keys(v?.modifiers??{});v?.types?.some(({type:E})=>E==="color")&&w.push(...Object.keys(e.tailwindConfig.theme.opacity??{}));let k={modifiers:w},S=d.includeMetadata&&w.length>0;for(let[E,T]of Object.entries(v?.values??{})){if(T==null)continue;let B=Ei(b,E);if(p.push(S?[B,k]:B),v?.supportsNegativeValues&&xt(T)){let N=Ei(b,`-${E}`);y.push(S?[N,k]:N)}}p.push(...y)}else p.push(h);return p},e.getVariants=function(){let d=Math.random().toString(36).substring(7).toUpperCase(),p=[];for(let[h,b]of e.variantOptions.entries())b.variantInfo!==el.Base&&p.push({name:h,isArbitrary:b.type===Symbol.for("MATCH_VARIANT"),values:Object.keys(b.values??{}),hasDash:h!=="@",selectors({modifier:v,value:y}={}){let w=`TAILWINDPLACEHOLDER${d}`,k=ee.rule({selector:`.${w}`}),S=ee.root({nodes:[k.clone()]}),E=S.toString(),T=(e.variantMap.get(h)??[]).flatMap(([le,A])=>A),B=[];for(let le of T){let A=[],C={args:{modifier:v,value:b.values?.[y]??y},separator:e.tailwindConfig.separator,modifySelectors(V){return S.each(Ee=>{Ee.type==="rule"&&(Ee.selectors=Ee.selectors.map(Ie=>V({get className(){return Go(Ie)},selector:Ie})))}),S},format(V){A.push(V)},wrap(V){A.push(`@${V.name} ${V.params} { & }`)},container:S},he=le(C);if(A.length>0&&B.push(A),Array.isArray(he))for(let V of he)A=[],V(C),B.push(A)}let N=[],R=S.toString();E!==R&&(S.walkRules(le=>{let A=le.selector,C=(0,Zo.default)(he=>{he.walkClasses(V=>{V.value=`${h}${e.tailwindConfig.separator}${V.value}`})}).processSync(A);N.push(A.replace(C,"&").replace(w,"&"))}),S.walkAtRules(le=>{N.push(`@${le.name} (${le.params}) { & }`)}));let F=!(y in(b.values??{})),Y=b[Pt]??{},_=(()=>!(F||Y.respectPrefix===!1))();B=B.map(le=>le.map(A=>({format:A,respectPrefix:_}))),N=N.map(le=>({format:le,respectPrefix:_}));let Q={candidate:w,context:e},U=B.map(le=>rs(`.${w}`,dr(le,Q),Q).replace(`.${w}`,"&").replace("{ & }","").trim());return N.length>0&&U.push(dr(N,Q).toString().replace(`.${w}`,"&")),U}});return p}}function Uh(r,e){!r.classCache.has(e)||(r.notClassCache.add(e),r.classCache.delete(e),r.applyClassCache.delete(e),r.candidateRuleMap.delete(e),r.candidateRuleCache.delete(e),r.stylesheetCache=null)}function H_(r,e){let t=e.raws.tailwind.candidate;if(!!t){for(let i of r.ruleCache)i[1].raws.tailwind.candidate===t&&r.ruleCache.delete(i);Uh(r,t)}}function il(r,e=[],t=ee.root()){let i={disposables:[],ruleCache:new Set,candidateRuleCache:new Map,classCache:new Map,applyClassCache:new Map,notClassCache:new Set(r.blocklist??[]),postCssNodeCache:new Map,candidateRuleMap:new Map,tailwindConfig:r,changedContent:e,variantMap:new Map,stylesheetCache:null,variantOptions:new Map,markInvalidUtilityCandidate:s=>Uh(i,s),markInvalidUtilityNode:s=>H_(i,s)},n=U_(i,t);return V_(n,i),i}function Vh(r,e,t,i,n,s){let a=e.opts.from,o=i!==null;Ze.DEBUG&&console.log("Source path:",a);let l;if(o&&hr.has(a))l=hr.get(a);else if(Pi.has(n)){let p=Pi.get(n);Dt.get(p).add(a),hr.set(a,p),l=p}let c=Ph(a,r);if(l){let[p,h]=jh([...s],cs(l));if(!p&&!c)return[l,!1,h]}if(hr.has(a)){let p=hr.get(a);if(Dt.has(p)&&(Dt.get(p).delete(a),Dt.get(p).size===0)){Dt.delete(p);for(let[h,b]of Pi)b===p&&Pi.delete(h);for(let h of p.disposables.splice(0))h(p)}}Ze.DEBUG&&console.log("Setting up new context...");let f=il(t,[],r);Object.assign(f,{userConfigPath:i});let[,d]=jh([...s],cs(f));return Pi.set(n,f),hr.set(a,f),Dt.has(f)||Dt.set(f,new Set),Dt.get(f).add(a),[f,!0,d]}var Nh,Zo,Pt,Jo,el,rl,hr,Pi,Dt,Oi=P(()=>{u();ft();la();Ot();Nh=pe(Ra()),Zo=pe(it());Ci();qo();Gn();Kt();fr();Lo();Fr();bh();It();It();Yi();Be();Gi();Bo();os();Ih();Mh();ct();Vo();Pt=Symbol(),Jo={AddVariant:Symbol.for("ADD_VARIANT"),MatchVariant:Symbol.for("MATCH_VARIANT")},el={Base:1<<0,Dynamic:1<<1};rl=new WeakMap;hr=wh,Pi=vh,Dt=es});function nl(r){return r.ignore?[]:r.glob?m.env.ROLLUP_WATCH==="true"?[{type:"dependency",file:r.base}]:[{type:"dir-dependency",dir:r.base,glob:r.glob}]:[{type:"dependency",file:r.base}]}var Hh=P(()=>{u()});function Wh(r,e){return{handler:r,config:e}}var Gh,Qh=P(()=>{u();Wh.withOptions=function(r,e=()=>({})){let t=function(i){return{__options:i,handler:r(i),config:e(i)}};return t.__isOptionsFunction=!0,t.__pluginFunction=r,t.__configFunction=e,t};Gh=Wh});var sl={};Ge(sl,{default:()=>W_});var W_,al=P(()=>{u();Qh();W_=Gh});var Kh=x((z4,Yh)=>{u();var G_=(al(),sl).default,Q_={overflow:"hidden",display:"-webkit-box","-webkit-box-orient":"vertical"},Y_=G_(function({matchUtilities:r,addUtilities:e,theme:t,variants:i}){let n=t("lineClamp");r({"line-clamp":s=>({...Q_,"-webkit-line-clamp":`${s}`})},{values:n}),e([{".line-clamp-none":{"-webkit-line-clamp":"unset"}}],i("lineClamp"))},{theme:{lineClamp:{1:"1",2:"2",3:"3",4:"4",5:"5",6:"6"}},variants:{lineClamp:["responsive"]}});Yh.exports=Y_});function ol(r){r.content.files.length===0&&G.warn("content-problems",["The `content` option in your Tailwind CSS configuration is missing or empty.","Configure your content sources or your generated CSS will be missing styles.","https://tailwindcss.com/docs/content-configuration"]);try{let e=Kh();r.plugins.includes(e)&&(G.warn("line-clamp-in-core",["As of Tailwind CSS v3.3, the `@tailwindcss/line-clamp` plugin is now included by default.","Remove it from the `plugins` array in your configuration to eliminate this warning."]),r.plugins=r.plugins.filter(t=>t!==e))}catch{}return r}var Xh=P(()=>{u();Be()});var Zh,Jh=P(()=>{u();Zh=()=>!1});var ps,em=P(()=>{u();ps={sync:r=>[].concat(r),generateTasks:r=>[{dynamic:!1,base:".",negative:[],positive:[].concat(r),patterns:[].concat(r)}],escapePath:r=>r}});var ll,tm=P(()=>{u();ll=r=>r});var rm,im=P(()=>{u();rm=()=>""});function nm(r){let e=r,t=rm(r);return t!=="."&&(e=r.substr(t.length),e.charAt(0)==="/"&&(e=e.substr(1))),e.substr(0,2)==="./"?e=e.substr(2):e.charAt(0)==="/"&&(e=e.substr(1)),{base:t,glob:e}}var sm=P(()=>{u();im()});var ds=x(Ve=>{u();"use strict";Ve.isInteger=r=>typeof r=="number"?Number.isInteger(r):typeof r=="string"&&r.trim()!==""?Number.isInteger(Number(r)):!1;Ve.find=(r,e)=>r.nodes.find(t=>t.type===e);Ve.exceedsLimit=(r,e,t=1,i)=>i===!1||!Ve.isInteger(r)||!Ve.isInteger(e)?!1:(Number(e)-Number(r))/Number(t)>=i;Ve.escapeNode=(r,e=0,t)=>{let i=r.nodes[e];!i||(t&&i.type===t||i.type==="open"||i.type==="close")&&i.escaped!==!0&&(i.value="\\"+i.value,i.escaped=!0)};Ve.encloseBrace=r=>r.type!=="brace"?!1:r.commas>>0+r.ranges>>0==0?(r.invalid=!0,!0):!1;Ve.isInvalidBrace=r=>r.type!=="brace"?!1:r.invalid===!0||r.dollar?!0:r.commas>>0+r.ranges>>0==0||r.open!==!0||r.close!==!0?(r.invalid=!0,!0):!1;Ve.isOpenOrClose=r=>r.type==="open"||r.type==="close"?!0:r.open===!0||r.close===!0;Ve.reduce=r=>r.reduce((e,t)=>(t.type==="text"&&e.push(t.value),t.type==="range"&&(t.type="text"),e),[]);Ve.flatten=(...r)=>{let e=[],t=i=>{for(let n=0;n{u();"use strict";var am=ds();om.exports=(r,e={})=>{let t=(i,n={})=>{let s=e.escapeInvalid&&am.isInvalidBrace(n),a=i.invalid===!0&&e.escapeInvalid===!0,o="";if(i.value)return(s||a)&&am.isOpenOrClose(i)?"\\"+i.value:i.value;if(i.value)return i.value;if(i.nodes)for(let l of i.nodes)o+=t(l);return o};return t(r)}});var um=x((J4,lm)=>{u();"use strict";lm.exports=function(r){return typeof r=="number"?r-r==0:typeof r=="string"&&r.trim()!==""?Number.isFinite?Number.isFinite(+r):isFinite(+r):!1}});var bm=x((e6,ym)=>{u();"use strict";var fm=um(),Wt=(r,e,t)=>{if(fm(r)===!1)throw new TypeError("toRegexRange: expected the first argument to be a number");if(e===void 0||r===e)return String(r);if(fm(e)===!1)throw new TypeError("toRegexRange: expected the second argument to be a number.");let i={relaxZeros:!0,...t};typeof i.strictZeros=="boolean"&&(i.relaxZeros=i.strictZeros===!1);let n=String(i.relaxZeros),s=String(i.shorthand),a=String(i.capture),o=String(i.wrap),l=r+":"+e+"="+n+s+a+o;if(Wt.cache.hasOwnProperty(l))return Wt.cache[l].result;let c=Math.min(r,e),f=Math.max(r,e);if(Math.abs(c-f)===1){let v=r+"|"+e;return i.capture?`(${v})`:i.wrap===!1?v:`(?:${v})`}let d=gm(r)||gm(e),p={min:r,max:e,a:c,b:f},h=[],b=[];if(d&&(p.isPadded=d,p.maxLen=String(p.max).length),c<0){let v=f<0?Math.abs(f):1;b=cm(v,Math.abs(c),p,i),c=p.a=0}return f>=0&&(h=cm(c,f,p,i)),p.negatives=b,p.positives=h,p.result=K_(b,h,i),i.capture===!0?p.result=`(${p.result})`:i.wrap!==!1&&h.length+b.length>1&&(p.result=`(?:${p.result})`),Wt.cache[l]=p,p.result};function K_(r,e,t){let i=ul(r,e,"-",!1,t)||[],n=ul(e,r,"",!1,t)||[],s=ul(r,e,"-?",!0,t)||[];return i.concat(s).concat(n).join("|")}function X_(r,e){let t=1,i=1,n=dm(r,t),s=new Set([e]);for(;r<=n&&n<=e;)s.add(n),t+=1,n=dm(r,t);for(n=hm(e+1,i)-1;r1&&o.count.pop(),o.count.push(f.count[0]),o.string=o.pattern+mm(o.count),a=c+1;continue}t.isPadded&&(d=rE(c,t,i)),f.string=d+f.pattern+mm(f.count),s.push(f),a=c+1,o=f}return s}function ul(r,e,t,i,n){let s=[];for(let a of r){let{string:o}=a;!i&&!pm(e,"string",o)&&s.push(t+o),i&&pm(e,"string",o)&&s.push(t+o)}return s}function J_(r,e){let t=[];for(let i=0;ie?1:e>r?-1:0}function pm(r,e,t){return r.some(i=>i[e]===t)}function dm(r,e){return Number(String(r).slice(0,-e)+"9".repeat(e))}function hm(r,e){return r-r%Math.pow(10,e)}function mm(r){let[e=0,t=""]=r;return t||e>1?`{${e+(t?","+t:"")}}`:""}function tE(r,e,t){return`[${r}${e-r==1?"":"-"}${e}]`}function gm(r){return/^-?(0+)\d/.test(r)}function rE(r,e,t){if(!e.isPadded)return r;let i=Math.abs(e.maxLen-String(r).length),n=t.relaxZeros!==!1;switch(i){case 0:return"";case 1:return n?"0?":"0";case 2:return n?"0{0,2}":"00";default:return n?`0{0,${i}}`:`0{${i}}`}}Wt.cache={};Wt.clearCache=()=>Wt.cache={};ym.exports=Wt});var pl=x((t6,Cm)=>{u();"use strict";var iE=(Fn(),Bn),wm=bm(),vm=r=>r!==null&&typeof r=="object"&&!Array.isArray(r),nE=r=>e=>r===!0?Number(e):String(e),fl=r=>typeof r=="number"||typeof r=="string"&&r!=="",Ii=r=>Number.isInteger(+r),cl=r=>{let e=`${r}`,t=-1;if(e[0]==="-"&&(e=e.slice(1)),e==="0")return!1;for(;e[++t]==="0";);return t>0},sE=(r,e,t)=>typeof r=="string"||typeof e=="string"?!0:t.stringify===!0,aE=(r,e,t)=>{if(e>0){let i=r[0]==="-"?"-":"";i&&(r=r.slice(1)),r=i+r.padStart(i?e-1:e,"0")}return t===!1?String(r):r},ms=(r,e)=>{let t=r[0]==="-"?"-":"";for(t&&(r=r.slice(1),e--);r.length{r.negatives.sort((o,l)=>ol?1:0),r.positives.sort((o,l)=>ol?1:0);let i=e.capture?"":"?:",n="",s="",a;return r.positives.length&&(n=r.positives.map(o=>ms(String(o),t)).join("|")),r.negatives.length&&(s=`-(${i}${r.negatives.map(o=>ms(String(o),t)).join("|")})`),n&&s?a=`${n}|${s}`:a=n||s,e.wrap?`(${i}${a})`:a},xm=(r,e,t,i)=>{if(t)return wm(r,e,{wrap:!1,...i});let n=String.fromCharCode(r);if(r===e)return n;let s=String.fromCharCode(e);return`[${n}-${s}]`},km=(r,e,t)=>{if(Array.isArray(r)){let i=t.wrap===!0,n=t.capture?"":"?:";return i?`(${n}${r.join("|")})`:r.join("|")}return wm(r,e,t)},Sm=(...r)=>new RangeError("Invalid range arguments: "+iE.inspect(...r)),Am=(r,e,t)=>{if(t.strictRanges===!0)throw Sm([r,e]);return[]},lE=(r,e)=>{if(e.strictRanges===!0)throw new TypeError(`Expected step "${r}" to be a number`);return[]},uE=(r,e,t=1,i={})=>{let n=Number(r),s=Number(e);if(!Number.isInteger(n)||!Number.isInteger(s)){if(i.strictRanges===!0)throw Sm([r,e]);return[]}n===0&&(n=0),s===0&&(s=0);let a=n>s,o=String(r),l=String(e),c=String(t);t=Math.max(Math.abs(t),1);let f=cl(o)||cl(l)||cl(c),d=f?Math.max(o.length,l.length,c.length):0,p=f===!1&&sE(r,e,i)===!1,h=i.transform||nE(p);if(i.toRegex&&t===1)return xm(ms(r,d),ms(e,d),!0,i);let b={negatives:[],positives:[]},v=k=>b[k<0?"negatives":"positives"].push(Math.abs(k)),y=[],w=0;for(;a?n>=s:n<=s;)i.toRegex===!0&&t>1?v(n):y.push(aE(h(n,w),d,p)),n=a?n-t:n+t,w++;return i.toRegex===!0?t>1?oE(b,i,d):km(y,null,{wrap:!1,...i}):y},fE=(r,e,t=1,i={})=>{if(!Ii(r)&&r.length>1||!Ii(e)&&e.length>1)return Am(r,e,i);let n=i.transform||(p=>String.fromCharCode(p)),s=`${r}`.charCodeAt(0),a=`${e}`.charCodeAt(0),o=s>a,l=Math.min(s,a),c=Math.max(s,a);if(i.toRegex&&t===1)return xm(l,c,!1,i);let f=[],d=0;for(;o?s>=a:s<=a;)f.push(n(s,d)),s=o?s-t:s+t,d++;return i.toRegex===!0?km(f,null,{wrap:!1,options:i}):f},gs=(r,e,t,i={})=>{if(e==null&&fl(r))return[r];if(!fl(r)||!fl(e))return Am(r,e,i);if(typeof t=="function")return gs(r,e,1,{transform:t});if(vm(t))return gs(r,e,0,t);let n={...i};return n.capture===!0&&(n.wrap=!0),t=t||n.step||1,Ii(t)?Ii(r)&&Ii(e)?uE(r,e,t,n):fE(r,e,Math.max(Math.abs(t),1),n):t!=null&&!vm(t)?lE(t,n):gs(r,e,1,t)};Cm.exports=gs});var Om=x((r6,Em)=>{u();"use strict";var cE=pl(),_m=ds(),pE=(r,e={})=>{let t=(i,n={})=>{let s=_m.isInvalidBrace(n),a=i.invalid===!0&&e.escapeInvalid===!0,o=s===!0||a===!0,l=e.escapeInvalid===!0?"\\":"",c="";if(i.isOpen===!0)return l+i.value;if(i.isClose===!0)return console.log("node.isClose",l,i.value),l+i.value;if(i.type==="open")return o?l+i.value:"(";if(i.type==="close")return o?l+i.value:")";if(i.type==="comma")return i.prev.type==="comma"?"":o?i.value:"|";if(i.value)return i.value;if(i.nodes&&i.ranges>0){let f=_m.reduce(i.nodes),d=cE(...f,{...e,wrap:!1,toRegex:!0,strictZeros:!0});if(d.length!==0)return f.length>1&&d.length>1?`(${d})`:d}if(i.nodes)for(let f of i.nodes)c+=t(f,i);return c};return t(r)};Em.exports=pE});var Pm=x((i6,Rm)=>{u();"use strict";var dE=pl(),Tm=hs(),mr=ds(),Gt=(r="",e="",t=!1)=>{let i=[];if(r=[].concat(r),e=[].concat(e),!e.length)return r;if(!r.length)return t?mr.flatten(e).map(n=>`{${n}}`):e;for(let n of r)if(Array.isArray(n))for(let s of n)i.push(Gt(s,e,t));else for(let s of e)t===!0&&typeof s=="string"&&(s=`{${s}}`),i.push(Array.isArray(s)?Gt(n,s,t):n+s);return mr.flatten(i)},hE=(r,e={})=>{let t=e.rangeLimit===void 0?1e3:e.rangeLimit,i=(n,s={})=>{n.queue=[];let a=s,o=s.queue;for(;a.type!=="brace"&&a.type!=="root"&&a.parent;)a=a.parent,o=a.queue;if(n.invalid||n.dollar){o.push(Gt(o.pop(),Tm(n,e)));return}if(n.type==="brace"&&n.invalid!==!0&&n.nodes.length===2){o.push(Gt(o.pop(),["{}"]));return}if(n.nodes&&n.ranges>0){let d=mr.reduce(n.nodes);if(mr.exceedsLimit(...d,e.step,t))throw new RangeError("expanded array length exceeds range limit. Use options.rangeLimit to increase or disable the limit.");let p=dE(...d,e);p.length===0&&(p=Tm(n,e)),o.push(Gt(o.pop(),p)),n.nodes=[];return}let l=mr.encloseBrace(n),c=n.queue,f=n;for(;f.type!=="brace"&&f.type!=="root"&&f.parent;)f=f.parent,c=f.queue;for(let d=0;d{u();"use strict";Im.exports={MAX_LENGTH:1e4,CHAR_0:"0",CHAR_9:"9",CHAR_UPPERCASE_A:"A",CHAR_LOWERCASE_A:"a",CHAR_UPPERCASE_Z:"Z",CHAR_LOWERCASE_Z:"z",CHAR_LEFT_PARENTHESES:"(",CHAR_RIGHT_PARENTHESES:")",CHAR_ASTERISK:"*",CHAR_AMPERSAND:"&",CHAR_AT:"@",CHAR_BACKSLASH:"\\",CHAR_BACKTICK:"`",CHAR_CARRIAGE_RETURN:"\r",CHAR_CIRCUMFLEX_ACCENT:"^",CHAR_COLON:":",CHAR_COMMA:",",CHAR_DOLLAR:"$",CHAR_DOT:".",CHAR_DOUBLE_QUOTE:'"',CHAR_EQUAL:"=",CHAR_EXCLAMATION_MARK:"!",CHAR_FORM_FEED:"\f",CHAR_FORWARD_SLASH:"/",CHAR_HASH:"#",CHAR_HYPHEN_MINUS:"-",CHAR_LEFT_ANGLE_BRACKET:"<",CHAR_LEFT_CURLY_BRACE:"{",CHAR_LEFT_SQUARE_BRACKET:"[",CHAR_LINE_FEED:` +`,CHAR_NO_BREAK_SPACE:"\xA0",CHAR_PERCENT:"%",CHAR_PLUS:"+",CHAR_QUESTION_MARK:"?",CHAR_RIGHT_ANGLE_BRACKET:">",CHAR_RIGHT_CURLY_BRACE:"}",CHAR_RIGHT_SQUARE_BRACKET:"]",CHAR_SEMICOLON:";",CHAR_SINGLE_QUOTE:"'",CHAR_SPACE:" ",CHAR_TAB:" ",CHAR_UNDERSCORE:"_",CHAR_VERTICAL_LINE:"|",CHAR_ZERO_WIDTH_NOBREAK_SPACE:"\uFEFF"}});var Nm=x((s6,Mm)=>{u();"use strict";var mE=hs(),{MAX_LENGTH:qm,CHAR_BACKSLASH:dl,CHAR_BACKTICK:gE,CHAR_COMMA:yE,CHAR_DOT:bE,CHAR_LEFT_PARENTHESES:wE,CHAR_RIGHT_PARENTHESES:vE,CHAR_LEFT_CURLY_BRACE:xE,CHAR_RIGHT_CURLY_BRACE:kE,CHAR_LEFT_SQUARE_BRACKET:$m,CHAR_RIGHT_SQUARE_BRACKET:Lm,CHAR_DOUBLE_QUOTE:SE,CHAR_SINGLE_QUOTE:AE,CHAR_NO_BREAK_SPACE:CE,CHAR_ZERO_WIDTH_NOBREAK_SPACE:_E}=Dm(),EE=(r,e={})=>{if(typeof r!="string")throw new TypeError("Expected a string");let t=e||{},i=typeof t.maxLength=="number"?Math.min(qm,t.maxLength):qm;if(r.length>i)throw new SyntaxError(`Input length (${r.length}), exceeds max characters (${i})`);let n={type:"root",input:r,nodes:[]},s=[n],a=n,o=n,l=0,c=r.length,f=0,d=0,p,h=()=>r[f++],b=v=>{if(v.type==="text"&&o.type==="dot"&&(o.type="text"),o&&o.type==="text"&&v.type==="text"){o.value+=v.value;return}return a.nodes.push(v),v.parent=a,v.prev=o,o=v,v};for(b({type:"bos"});f0){if(a.ranges>0){a.ranges=0;let v=a.nodes.shift();a.nodes=[v,{type:"text",value:mE(a)}]}b({type:"comma",value:p}),a.commas++;continue}if(p===bE&&d>0&&a.commas===0){let v=a.nodes;if(d===0||v.length===0){b({type:"text",value:p});continue}if(o.type==="dot"){if(a.range=[],o.value+=p,o.type="range",a.nodes.length!==3&&a.nodes.length!==5){a.invalid=!0,a.ranges=0,o.type="text";continue}a.ranges++,a.args=[];continue}if(o.type==="range"){v.pop();let y=v[v.length-1];y.value+=o.value+p,o=y,a.ranges--;continue}b({type:"dot",value:p});continue}b({type:"text",value:p})}do if(a=s.pop(),a.type!=="root"){a.nodes.forEach(w=>{w.nodes||(w.type==="open"&&(w.isOpen=!0),w.type==="close"&&(w.isClose=!0),w.nodes||(w.type="text"),w.invalid=!0)});let v=s[s.length-1],y=v.nodes.indexOf(a);v.nodes.splice(y,1,...a.nodes)}while(s.length>0);return b({type:"eos"}),n};Mm.exports=EE});var jm=x((a6,Fm)=>{u();"use strict";var Bm=hs(),OE=Om(),TE=Pm(),RE=Nm(),Le=(r,e={})=>{let t=[];if(Array.isArray(r))for(let i of r){let n=Le.create(i,e);Array.isArray(n)?t.push(...n):t.push(n)}else t=[].concat(Le.create(r,e));return e&&e.expand===!0&&e.nodupes===!0&&(t=[...new Set(t)]),t};Le.parse=(r,e={})=>RE(r,e);Le.stringify=(r,e={})=>typeof r=="string"?Bm(Le.parse(r,e),e):Bm(r,e);Le.compile=(r,e={})=>(typeof r=="string"&&(r=Le.parse(r,e)),OE(r,e));Le.expand=(r,e={})=>{typeof r=="string"&&(r=Le.parse(r,e));let t=TE(r,e);return e.noempty===!0&&(t=t.filter(Boolean)),e.nodupes===!0&&(t=[...new Set(t)]),t};Le.create=(r,e={})=>r===""||r.length<3?[r]:e.expand!==!0?Le.compile(r,e):Le.expand(r,e);Fm.exports=Le});var Di=x((o6,Wm)=>{u();"use strict";var PE=(et(),Ur),at="\\\\/",zm=`[^${at}]`,yt="\\.",IE="\\+",DE="\\?",ys="\\/",qE="(?=.)",Um="[^/]",hl=`(?:${ys}|$)`,Vm=`(?:^|${ys})`,ml=`${yt}{1,2}${hl}`,$E=`(?!${yt})`,LE=`(?!${Vm}${ml})`,ME=`(?!${yt}{0,1}${hl})`,NE=`(?!${ml})`,BE=`[^.${ys}]`,FE=`${Um}*?`,Hm={DOT_LITERAL:yt,PLUS_LITERAL:IE,QMARK_LITERAL:DE,SLASH_LITERAL:ys,ONE_CHAR:qE,QMARK:Um,END_ANCHOR:hl,DOTS_SLASH:ml,NO_DOT:$E,NO_DOTS:LE,NO_DOT_SLASH:ME,NO_DOTS_SLASH:NE,QMARK_NO_DOT:BE,STAR:FE,START_ANCHOR:Vm},jE={...Hm,SLASH_LITERAL:`[${at}]`,QMARK:zm,STAR:`${zm}*?`,DOTS_SLASH:`${yt}{1,2}(?:[${at}]|$)`,NO_DOT:`(?!${yt})`,NO_DOTS:`(?!(?:^|[${at}])${yt}{1,2}(?:[${at}]|$))`,NO_DOT_SLASH:`(?!${yt}{0,1}(?:[${at}]|$))`,NO_DOTS_SLASH:`(?!${yt}{1,2}(?:[${at}]|$))`,QMARK_NO_DOT:`[^.${at}]`,START_ANCHOR:`(?:^|[${at}])`,END_ANCHOR:`(?:[${at}]|$)`},zE={alnum:"a-zA-Z0-9",alpha:"a-zA-Z",ascii:"\\x00-\\x7F",blank:" \\t",cntrl:"\\x00-\\x1F\\x7F",digit:"0-9",graph:"\\x21-\\x7E",lower:"a-z",print:"\\x20-\\x7E ",punct:"\\-!\"#$%&'()\\*+,./:;<=>?@[\\]^_`{|}~",space:" \\t\\r\\n\\v\\f",upper:"A-Z",word:"A-Za-z0-9_",xdigit:"A-Fa-f0-9"};Wm.exports={MAX_LENGTH:1024*64,POSIX_REGEX_SOURCE:zE,REGEX_BACKSLASH:/\\(?![*+?^${}(|)[\]])/g,REGEX_NON_SPECIAL_CHARS:/^[^@![\].,$*+?^{}()|\\/]+/,REGEX_SPECIAL_CHARS:/[-*+?.^${}(|)[\]]/,REGEX_SPECIAL_CHARS_BACKREF:/(\\?)((\W)(\3*))/g,REGEX_SPECIAL_CHARS_GLOBAL:/([-*+?.^${}(|)[\]])/g,REGEX_REMOVE_BACKSLASH:/(?:\[.*?[^\\]\]|\\(?=.))/g,REPLACEMENTS:{"***":"*","**/**":"**","**/**/**":"**"},CHAR_0:48,CHAR_9:57,CHAR_UPPERCASE_A:65,CHAR_LOWERCASE_A:97,CHAR_UPPERCASE_Z:90,CHAR_LOWERCASE_Z:122,CHAR_LEFT_PARENTHESES:40,CHAR_RIGHT_PARENTHESES:41,CHAR_ASTERISK:42,CHAR_AMPERSAND:38,CHAR_AT:64,CHAR_BACKWARD_SLASH:92,CHAR_CARRIAGE_RETURN:13,CHAR_CIRCUMFLEX_ACCENT:94,CHAR_COLON:58,CHAR_COMMA:44,CHAR_DOT:46,CHAR_DOUBLE_QUOTE:34,CHAR_EQUAL:61,CHAR_EXCLAMATION_MARK:33,CHAR_FORM_FEED:12,CHAR_FORWARD_SLASH:47,CHAR_GRAVE_ACCENT:96,CHAR_HASH:35,CHAR_HYPHEN_MINUS:45,CHAR_LEFT_ANGLE_BRACKET:60,CHAR_LEFT_CURLY_BRACE:123,CHAR_LEFT_SQUARE_BRACKET:91,CHAR_LINE_FEED:10,CHAR_NO_BREAK_SPACE:160,CHAR_PERCENT:37,CHAR_PLUS:43,CHAR_QUESTION_MARK:63,CHAR_RIGHT_ANGLE_BRACKET:62,CHAR_RIGHT_CURLY_BRACE:125,CHAR_RIGHT_SQUARE_BRACKET:93,CHAR_SEMICOLON:59,CHAR_SINGLE_QUOTE:39,CHAR_SPACE:32,CHAR_TAB:9,CHAR_UNDERSCORE:95,CHAR_VERTICAL_LINE:124,CHAR_ZERO_WIDTH_NOBREAK_SPACE:65279,SEP:PE.sep,extglobChars(r){return{"!":{type:"negate",open:"(?:(?!(?:",close:`))${r.STAR})`},"?":{type:"qmark",open:"(?:",close:")?"},"+":{type:"plus",open:"(?:",close:")+"},"*":{type:"star",open:"(?:",close:")*"},"@":{type:"at",open:"(?:",close:")"}}},globChars(r){return r===!0?jE:Hm}}});var qi=x(Re=>{u();"use strict";var UE=(et(),Ur),VE=m.platform==="win32",{REGEX_BACKSLASH:HE,REGEX_REMOVE_BACKSLASH:WE,REGEX_SPECIAL_CHARS:GE,REGEX_SPECIAL_CHARS_GLOBAL:QE}=Di();Re.isObject=r=>r!==null&&typeof r=="object"&&!Array.isArray(r);Re.hasRegexChars=r=>GE.test(r);Re.isRegexChar=r=>r.length===1&&Re.hasRegexChars(r);Re.escapeRegex=r=>r.replace(QE,"\\$1");Re.toPosixSlashes=r=>r.replace(HE,"/");Re.removeBackslashes=r=>r.replace(WE,e=>e==="\\"?"":e);Re.supportsLookbehinds=()=>{let r=m.version.slice(1).split(".").map(Number);return r.length===3&&r[0]>=9||r[0]===8&&r[1]>=10};Re.isWindows=r=>r&&typeof r.windows=="boolean"?r.windows:VE===!0||UE.sep==="\\";Re.escapeLast=(r,e,t)=>{let i=r.lastIndexOf(e,t);return i===-1?r:r[i-1]==="\\"?Re.escapeLast(r,e,i-1):`${r.slice(0,i)}\\${r.slice(i)}`};Re.removePrefix=(r,e={})=>{let t=r;return t.startsWith("./")&&(t=t.slice(2),e.prefix="./"),t};Re.wrapOutput=(r,e={},t={})=>{let i=t.contains?"":"^",n=t.contains?"":"$",s=`${i}(?:${r})${n}`;return e.negated===!0&&(s=`(?:^(?!${s}).*$)`),s}});var eg=x((u6,Jm)=>{u();"use strict";var Gm=qi(),{CHAR_ASTERISK:gl,CHAR_AT:YE,CHAR_BACKWARD_SLASH:$i,CHAR_COMMA:KE,CHAR_DOT:yl,CHAR_EXCLAMATION_MARK:bl,CHAR_FORWARD_SLASH:Qm,CHAR_LEFT_CURLY_BRACE:wl,CHAR_LEFT_PARENTHESES:vl,CHAR_LEFT_SQUARE_BRACKET:XE,CHAR_PLUS:ZE,CHAR_QUESTION_MARK:Ym,CHAR_RIGHT_CURLY_BRACE:JE,CHAR_RIGHT_PARENTHESES:Km,CHAR_RIGHT_SQUARE_BRACKET:e2}=Di(),Xm=r=>r===Qm||r===$i,Zm=r=>{r.isPrefix!==!0&&(r.depth=r.isGlobstar?1/0:1)},t2=(r,e)=>{let t=e||{},i=r.length-1,n=t.parts===!0||t.scanToEnd===!0,s=[],a=[],o=[],l=r,c=-1,f=0,d=0,p=!1,h=!1,b=!1,v=!1,y=!1,w=!1,k=!1,S=!1,E=!1,T=!1,B=0,N,R,F={value:"",depth:0,isGlob:!1},Y=()=>c>=i,_=()=>l.charCodeAt(c+1),Q=()=>(N=R,l.charCodeAt(++c));for(;c0&&(le=l.slice(0,f),l=l.slice(f),d-=f),U&&b===!0&&d>0?(U=l.slice(0,d),A=l.slice(d)):b===!0?(U="",A=l):U=l,U&&U!==""&&U!=="/"&&U!==l&&Xm(U.charCodeAt(U.length-1))&&(U=U.slice(0,-1)),t.unescape===!0&&(A&&(A=Gm.removeBackslashes(A)),U&&k===!0&&(U=Gm.removeBackslashes(U)));let C={prefix:le,input:r,start:f,base:U,glob:A,isBrace:p,isBracket:h,isGlob:b,isExtglob:v,isGlobstar:y,negated:S,negatedExtglob:E};if(t.tokens===!0&&(C.maxDepth=0,Xm(R)||a.push(F),C.tokens=a),t.parts===!0||t.tokens===!0){let he;for(let V=0;V{u();"use strict";var bs=Di(),Me=qi(),{MAX_LENGTH:ws,POSIX_REGEX_SOURCE:r2,REGEX_NON_SPECIAL_CHARS:i2,REGEX_SPECIAL_CHARS_BACKREF:n2,REPLACEMENTS:tg}=bs,s2=(r,e)=>{if(typeof e.expandRange=="function")return e.expandRange(...r,e);r.sort();let t=`[${r.join("-")}]`;try{new RegExp(t)}catch(i){return r.map(n=>Me.escapeRegex(n)).join("..")}return t},gr=(r,e)=>`Missing ${r}: "${e}" - use "\\\\${e}" to match literal characters`,xl=(r,e)=>{if(typeof r!="string")throw new TypeError("Expected a string");r=tg[r]||r;let t={...e},i=typeof t.maxLength=="number"?Math.min(ws,t.maxLength):ws,n=r.length;if(n>i)throw new SyntaxError(`Input length: ${n}, exceeds maximum allowed length: ${i}`);let s={type:"bos",value:"",output:t.prepend||""},a=[s],o=t.capture?"":"?:",l=Me.isWindows(e),c=bs.globChars(l),f=bs.extglobChars(c),{DOT_LITERAL:d,PLUS_LITERAL:p,SLASH_LITERAL:h,ONE_CHAR:b,DOTS_SLASH:v,NO_DOT:y,NO_DOT_SLASH:w,NO_DOTS_SLASH:k,QMARK:S,QMARK_NO_DOT:E,STAR:T,START_ANCHOR:B}=c,N=$=>`(${o}(?:(?!${B}${$.dot?v:d}).)*?)`,R=t.dot?"":y,F=t.dot?S:E,Y=t.bash===!0?N(t):T;t.capture&&(Y=`(${Y})`),typeof t.noext=="boolean"&&(t.noextglob=t.noext);let _={input:r,index:-1,start:0,dot:t.dot===!0,consumed:"",output:"",prefix:"",backtrack:!1,negated:!1,brackets:0,braces:0,parens:0,quotes:0,globstar:!1,tokens:a};r=Me.removePrefix(r,_),n=r.length;let Q=[],U=[],le=[],A=s,C,he=()=>_.index===n-1,V=_.peek=($=1)=>r[_.index+$],Ee=_.advance=()=>r[++_.index]||"",Ie=()=>r.slice(_.index+1),De=($="",ae=0)=>{_.consumed+=$,_.index+=ae},ji=$=>{_.output+=$.output!=null?$.output:$.value,De($.value)},Iv=()=>{let $=1;for(;V()==="!"&&(V(2)!=="("||V(3)==="?");)Ee(),_.start++,$++;return $%2==0?!1:(_.negated=!0,_.start++,!0)},zi=$=>{_[$]++,le.push($)},Ft=$=>{_[$]--,le.pop()},W=$=>{if(A.type==="globstar"){let ae=_.braces>0&&($.type==="comma"||$.type==="brace"),I=$.extglob===!0||Q.length&&($.type==="pipe"||$.type==="paren");$.type!=="slash"&&$.type!=="paren"&&!ae&&!I&&(_.output=_.output.slice(0,-A.output.length),A.type="star",A.value="*",A.output=Y,_.output+=A.output)}if(Q.length&&$.type!=="paren"&&(Q[Q.length-1].inner+=$.value),($.value||$.output)&&ji($),A&&A.type==="text"&&$.type==="text"){A.value+=$.value,A.output=(A.output||"")+$.value;return}$.prev=A,a.push($),A=$},Ui=($,ae)=>{let I={...f[ae],conditions:1,inner:""};I.prev=A,I.parens=_.parens,I.output=_.output;let H=(t.capture?"(":"")+I.open;zi("parens"),W({type:$,value:ae,output:_.output?"":b}),W({type:"paren",extglob:!0,value:Ee(),output:H}),Q.push(I)},Dv=$=>{let ae=$.close+(t.capture?")":""),I;if($.type==="negate"){let H=Y;if($.inner&&$.inner.length>1&&$.inner.includes("/")&&(H=N(t)),(H!==Y||he()||/^\)+$/.test(Ie()))&&(ae=$.close=`)$))${H}`),$.inner.includes("*")&&(I=Ie())&&/^\.[^\\/.]+$/.test(I)){let ce=xl(I,{...e,fastpaths:!1}).output;ae=$.close=`)${ce})${H})`}$.prev.type==="bos"&&(_.negatedExtglob=!0)}W({type:"paren",extglob:!0,value:C,output:ae}),Ft("parens")};if(t.fastpaths!==!1&&!/(^[*!]|[/()[\]{}"])/.test(r)){let $=!1,ae=r.replace(n2,(I,H,ce,Ce,ye,Bs)=>Ce==="\\"?($=!0,I):Ce==="?"?H?H+Ce+(ye?S.repeat(ye.length):""):Bs===0?F+(ye?S.repeat(ye.length):""):S.repeat(ce.length):Ce==="."?d.repeat(ce.length):Ce==="*"?H?H+Ce+(ye?Y:""):Y:H?I:`\\${I}`);return $===!0&&(t.unescape===!0?ae=ae.replace(/\\/g,""):ae=ae.replace(/\\+/g,I=>I.length%2==0?"\\\\":I?"\\":"")),ae===r&&t.contains===!0?(_.output=r,_):(_.output=Me.wrapOutput(ae,_,e),_)}for(;!he();){if(C=Ee(),C==="\0")continue;if(C==="\\"){let I=V();if(I==="/"&&t.bash!==!0||I==="."||I===";")continue;if(!I){C+="\\",W({type:"text",value:C});continue}let H=/^\\+/.exec(Ie()),ce=0;if(H&&H[0].length>2&&(ce=H[0].length,_.index+=ce,ce%2!=0&&(C+="\\")),t.unescape===!0?C=Ee():C+=Ee(),_.brackets===0){W({type:"text",value:C});continue}}if(_.brackets>0&&(C!=="]"||A.value==="["||A.value==="[^")){if(t.posix!==!1&&C===":"){let I=A.value.slice(1);if(I.includes("[")&&(A.posix=!0,I.includes(":"))){let H=A.value.lastIndexOf("["),ce=A.value.slice(0,H),Ce=A.value.slice(H+2),ye=r2[Ce];if(ye){A.value=ce+ye,_.backtrack=!0,Ee(),!s.output&&a.indexOf(A)===1&&(s.output=b);continue}}}(C==="["&&V()!==":"||C==="-"&&V()==="]")&&(C=`\\${C}`),C==="]"&&(A.value==="["||A.value==="[^")&&(C=`\\${C}`),t.posix===!0&&C==="!"&&A.value==="["&&(C="^"),A.value+=C,ji({value:C});continue}if(_.quotes===1&&C!=='"'){C=Me.escapeRegex(C),A.value+=C,ji({value:C});continue}if(C==='"'){_.quotes=_.quotes===1?0:1,t.keepQuotes===!0&&W({type:"text",value:C});continue}if(C==="("){zi("parens"),W({type:"paren",value:C});continue}if(C===")"){if(_.parens===0&&t.strictBrackets===!0)throw new SyntaxError(gr("opening","("));let I=Q[Q.length-1];if(I&&_.parens===I.parens+1){Dv(Q.pop());continue}W({type:"paren",value:C,output:_.parens?")":"\\)"}),Ft("parens");continue}if(C==="["){if(t.nobracket===!0||!Ie().includes("]")){if(t.nobracket!==!0&&t.strictBrackets===!0)throw new SyntaxError(gr("closing","]"));C=`\\${C}`}else zi("brackets");W({type:"bracket",value:C});continue}if(C==="]"){if(t.nobracket===!0||A&&A.type==="bracket"&&A.value.length===1){W({type:"text",value:C,output:`\\${C}`});continue}if(_.brackets===0){if(t.strictBrackets===!0)throw new SyntaxError(gr("opening","["));W({type:"text",value:C,output:`\\${C}`});continue}Ft("brackets");let I=A.value.slice(1);if(A.posix!==!0&&I[0]==="^"&&!I.includes("/")&&(C=`/${C}`),A.value+=C,ji({value:C}),t.literalBrackets===!1||Me.hasRegexChars(I))continue;let H=Me.escapeRegex(A.value);if(_.output=_.output.slice(0,-A.value.length),t.literalBrackets===!0){_.output+=H,A.value=H;continue}A.value=`(${o}${H}|${A.value})`,_.output+=A.value;continue}if(C==="{"&&t.nobrace!==!0){zi("braces");let I={type:"brace",value:C,output:"(",outputIndex:_.output.length,tokensIndex:_.tokens.length};U.push(I),W(I);continue}if(C==="}"){let I=U[U.length-1];if(t.nobrace===!0||!I){W({type:"text",value:C,output:C});continue}let H=")";if(I.dots===!0){let ce=a.slice(),Ce=[];for(let ye=ce.length-1;ye>=0&&(a.pop(),ce[ye].type!=="brace");ye--)ce[ye].type!=="dots"&&Ce.unshift(ce[ye].value);H=s2(Ce,t),_.backtrack=!0}if(I.comma!==!0&&I.dots!==!0){let ce=_.output.slice(0,I.outputIndex),Ce=_.tokens.slice(I.tokensIndex);I.value=I.output="\\{",C=H="\\}",_.output=ce;for(let ye of Ce)_.output+=ye.output||ye.value}W({type:"brace",value:C,output:H}),Ft("braces"),U.pop();continue}if(C==="|"){Q.length>0&&Q[Q.length-1].conditions++,W({type:"text",value:C});continue}if(C===","){let I=C,H=U[U.length-1];H&&le[le.length-1]==="braces"&&(H.comma=!0,I="|"),W({type:"comma",value:C,output:I});continue}if(C==="/"){if(A.type==="dot"&&_.index===_.start+1){_.start=_.index+1,_.consumed="",_.output="",a.pop(),A=s;continue}W({type:"slash",value:C,output:h});continue}if(C==="."){if(_.braces>0&&A.type==="dot"){A.value==="."&&(A.output=d);let I=U[U.length-1];A.type="dots",A.output+=C,A.value+=C,I.dots=!0;continue}if(_.braces+_.parens===0&&A.type!=="bos"&&A.type!=="slash"){W({type:"text",value:C,output:d});continue}W({type:"dot",value:C,output:d});continue}if(C==="?"){if(!(A&&A.value==="(")&&t.noextglob!==!0&&V()==="("&&V(2)!=="?"){Ui("qmark",C);continue}if(A&&A.type==="paren"){let H=V(),ce=C;if(H==="<"&&!Me.supportsLookbehinds())throw new Error("Node.js v10 or higher is required for regex lookbehinds");(A.value==="("&&!/[!=<:]/.test(H)||H==="<"&&!/<([!=]|\w+>)/.test(Ie()))&&(ce=`\\${C}`),W({type:"text",value:C,output:ce});continue}if(t.dot!==!0&&(A.type==="slash"||A.type==="bos")){W({type:"qmark",value:C,output:E});continue}W({type:"qmark",value:C,output:S});continue}if(C==="!"){if(t.noextglob!==!0&&V()==="("&&(V(2)!=="?"||!/[!=<:]/.test(V(3)))){Ui("negate",C);continue}if(t.nonegate!==!0&&_.index===0){Iv();continue}}if(C==="+"){if(t.noextglob!==!0&&V()==="("&&V(2)!=="?"){Ui("plus",C);continue}if(A&&A.value==="("||t.regex===!1){W({type:"plus",value:C,output:p});continue}if(A&&(A.type==="bracket"||A.type==="paren"||A.type==="brace")||_.parens>0){W({type:"plus",value:C});continue}W({type:"plus",value:p});continue}if(C==="@"){if(t.noextglob!==!0&&V()==="("&&V(2)!=="?"){W({type:"at",extglob:!0,value:C,output:""});continue}W({type:"text",value:C});continue}if(C!=="*"){(C==="$"||C==="^")&&(C=`\\${C}`);let I=i2.exec(Ie());I&&(C+=I[0],_.index+=I[0].length),W({type:"text",value:C});continue}if(A&&(A.type==="globstar"||A.star===!0)){A.type="star",A.star=!0,A.value+=C,A.output=Y,_.backtrack=!0,_.globstar=!0,De(C);continue}let $=Ie();if(t.noextglob!==!0&&/^\([^?]/.test($)){Ui("star",C);continue}if(A.type==="star"){if(t.noglobstar===!0){De(C);continue}let I=A.prev,H=I.prev,ce=I.type==="slash"||I.type==="bos",Ce=H&&(H.type==="star"||H.type==="globstar");if(t.bash===!0&&(!ce||$[0]&&$[0]!=="/")){W({type:"star",value:C,output:""});continue}let ye=_.braces>0&&(I.type==="comma"||I.type==="brace"),Bs=Q.length&&(I.type==="pipe"||I.type==="paren");if(!ce&&I.type!=="paren"&&!ye&&!Bs){W({type:"star",value:C,output:""});continue}for(;$.slice(0,3)==="/**";){let Vi=r[_.index+4];if(Vi&&Vi!=="/")break;$=$.slice(3),De("/**",3)}if(I.type==="bos"&&he()){A.type="globstar",A.value+=C,A.output=N(t),_.output=A.output,_.globstar=!0,De(C);continue}if(I.type==="slash"&&I.prev.type!=="bos"&&!Ce&&he()){_.output=_.output.slice(0,-(I.output+A.output).length),I.output=`(?:${I.output}`,A.type="globstar",A.output=N(t)+(t.strictSlashes?")":"|$)"),A.value+=C,_.globstar=!0,_.output+=I.output+A.output,De(C);continue}if(I.type==="slash"&&I.prev.type!=="bos"&&$[0]==="/"){let Vi=$[1]!==void 0?"|$":"";_.output=_.output.slice(0,-(I.output+A.output).length),I.output=`(?:${I.output}`,A.type="globstar",A.output=`${N(t)}${h}|${h}${Vi})`,A.value+=C,_.output+=I.output+A.output,_.globstar=!0,De(C+Ee()),W({type:"slash",value:"/",output:""});continue}if(I.type==="bos"&&$[0]==="/"){A.type="globstar",A.value+=C,A.output=`(?:^|${h}|${N(t)}${h})`,_.output=A.output,_.globstar=!0,De(C+Ee()),W({type:"slash",value:"/",output:""});continue}_.output=_.output.slice(0,-A.output.length),A.type="globstar",A.output=N(t),A.value+=C,_.output+=A.output,_.globstar=!0,De(C);continue}let ae={type:"star",value:C,output:Y};if(t.bash===!0){ae.output=".*?",(A.type==="bos"||A.type==="slash")&&(ae.output=R+ae.output),W(ae);continue}if(A&&(A.type==="bracket"||A.type==="paren")&&t.regex===!0){ae.output=C,W(ae);continue}(_.index===_.start||A.type==="slash"||A.type==="dot")&&(A.type==="dot"?(_.output+=w,A.output+=w):t.dot===!0?(_.output+=k,A.output+=k):(_.output+=R,A.output+=R),V()!=="*"&&(_.output+=b,A.output+=b)),W(ae)}for(;_.brackets>0;){if(t.strictBrackets===!0)throw new SyntaxError(gr("closing","]"));_.output=Me.escapeLast(_.output,"["),Ft("brackets")}for(;_.parens>0;){if(t.strictBrackets===!0)throw new SyntaxError(gr("closing",")"));_.output=Me.escapeLast(_.output,"("),Ft("parens")}for(;_.braces>0;){if(t.strictBrackets===!0)throw new SyntaxError(gr("closing","}"));_.output=Me.escapeLast(_.output,"{"),Ft("braces")}if(t.strictSlashes!==!0&&(A.type==="star"||A.type==="bracket")&&W({type:"maybe_slash",value:"",output:`${h}?`}),_.backtrack===!0){_.output="";for(let $ of _.tokens)_.output+=$.output!=null?$.output:$.value,$.suffix&&(_.output+=$.suffix)}return _};xl.fastpaths=(r,e)=>{let t={...e},i=typeof t.maxLength=="number"?Math.min(ws,t.maxLength):ws,n=r.length;if(n>i)throw new SyntaxError(`Input length: ${n}, exceeds maximum allowed length: ${i}`);r=tg[r]||r;let s=Me.isWindows(e),{DOT_LITERAL:a,SLASH_LITERAL:o,ONE_CHAR:l,DOTS_SLASH:c,NO_DOT:f,NO_DOTS:d,NO_DOTS_SLASH:p,STAR:h,START_ANCHOR:b}=bs.globChars(s),v=t.dot?d:f,y=t.dot?p:f,w=t.capture?"":"?:",k={negated:!1,prefix:""},S=t.bash===!0?".*?":h;t.capture&&(S=`(${S})`);let E=R=>R.noglobstar===!0?S:`(${w}(?:(?!${b}${R.dot?c:a}).)*?)`,T=R=>{switch(R){case"*":return`${v}${l}${S}`;case".*":return`${a}${l}${S}`;case"*.*":return`${v}${S}${a}${l}${S}`;case"*/*":return`${v}${S}${o}${l}${y}${S}`;case"**":return v+E(t);case"**/*":return`(?:${v}${E(t)}${o})?${y}${l}${S}`;case"**/*.*":return`(?:${v}${E(t)}${o})?${y}${S}${a}${l}${S}`;case"**/.*":return`(?:${v}${E(t)}${o})?${a}${l}${S}`;default:{let F=/^(.*?)\.(\w+)$/.exec(R);if(!F)return;let Y=T(F[1]);return Y?Y+a+F[2]:void 0}}},B=Me.removePrefix(r,k),N=T(B);return N&&t.strictSlashes!==!0&&(N+=`${o}?`),N};rg.exports=xl});var sg=x((c6,ng)=>{u();"use strict";var a2=(et(),Ur),o2=eg(),kl=ig(),Sl=qi(),l2=Di(),u2=r=>r&&typeof r=="object"&&!Array.isArray(r),de=(r,e,t=!1)=>{if(Array.isArray(r)){let f=r.map(p=>de(p,e,t));return p=>{for(let h of f){let b=h(p);if(b)return b}return!1}}let i=u2(r)&&r.tokens&&r.input;if(r===""||typeof r!="string"&&!i)throw new TypeError("Expected pattern to be a non-empty string");let n=e||{},s=Sl.isWindows(e),a=i?de.compileRe(r,e):de.makeRe(r,e,!1,!0),o=a.state;delete a.state;let l=()=>!1;if(n.ignore){let f={...e,ignore:null,onMatch:null,onResult:null};l=de(n.ignore,f,t)}let c=(f,d=!1)=>{let{isMatch:p,match:h,output:b}=de.test(f,a,e,{glob:r,posix:s}),v={glob:r,state:o,regex:a,posix:s,input:f,output:b,match:h,isMatch:p};return typeof n.onResult=="function"&&n.onResult(v),p===!1?(v.isMatch=!1,d?v:!1):l(f)?(typeof n.onIgnore=="function"&&n.onIgnore(v),v.isMatch=!1,d?v:!1):(typeof n.onMatch=="function"&&n.onMatch(v),d?v:!0)};return t&&(c.state=o),c};de.test=(r,e,t,{glob:i,posix:n}={})=>{if(typeof r!="string")throw new TypeError("Expected input to be a string");if(r==="")return{isMatch:!1,output:""};let s=t||{},a=s.format||(n?Sl.toPosixSlashes:null),o=r===i,l=o&&a?a(r):r;return o===!1&&(l=a?a(r):r,o=l===i),(o===!1||s.capture===!0)&&(s.matchBase===!0||s.basename===!0?o=de.matchBase(r,e,t,n):o=e.exec(l)),{isMatch:Boolean(o),match:o,output:l}};de.matchBase=(r,e,t,i=Sl.isWindows(t))=>(e instanceof RegExp?e:de.makeRe(e,t)).test(a2.basename(r));de.isMatch=(r,e,t)=>de(e,t)(r);de.parse=(r,e)=>Array.isArray(r)?r.map(t=>de.parse(t,e)):kl(r,{...e,fastpaths:!1});de.scan=(r,e)=>o2(r,e);de.compileRe=(r,e,t=!1,i=!1)=>{if(t===!0)return r.output;let n=e||{},s=n.contains?"":"^",a=n.contains?"":"$",o=`${s}(?:${r.output})${a}`;r&&r.negated===!0&&(o=`^(?!${o}).*$`);let l=de.toRegex(o,e);return i===!0&&(l.state=r),l};de.makeRe=(r,e={},t=!1,i=!1)=>{if(!r||typeof r!="string")throw new TypeError("Expected a non-empty string");let n={negated:!1,fastpaths:!0};return e.fastpaths!==!1&&(r[0]==="."||r[0]==="*")&&(n.output=kl.fastpaths(r,e)),n.output||(n=kl(r,e)),de.compileRe(n,e,t,i)};de.toRegex=(r,e)=>{try{let t=e||{};return new RegExp(r,t.flags||(t.nocase?"i":""))}catch(t){if(e&&e.debug===!0)throw t;return/$^/}};de.constants=l2;ng.exports=de});var og=x((p6,ag)=>{u();"use strict";ag.exports=sg()});var dg=x((d6,pg)=>{u();"use strict";var lg=(Fn(),Bn),ug=jm(),ot=og(),Al=qi(),fg=r=>r===""||r==="./",cg=r=>{let e=r.indexOf("{");return e>-1&&r.indexOf("}",e)>-1},oe=(r,e,t)=>{e=[].concat(e),r=[].concat(r);let i=new Set,n=new Set,s=new Set,a=0,o=f=>{s.add(f.output),t&&t.onResult&&t.onResult(f)};for(let f=0;f!i.has(f));if(t&&c.length===0){if(t.failglob===!0)throw new Error(`No matches found for "${e.join(", ")}"`);if(t.nonull===!0||t.nullglob===!0)return t.unescape?e.map(f=>f.replace(/\\/g,"")):e}return c};oe.match=oe;oe.matcher=(r,e)=>ot(r,e);oe.isMatch=(r,e,t)=>ot(e,t)(r);oe.any=oe.isMatch;oe.not=(r,e,t={})=>{e=[].concat(e).map(String);let i=new Set,n=[],s=o=>{t.onResult&&t.onResult(o),n.push(o.output)},a=new Set(oe(r,e,{...t,onResult:s}));for(let o of n)a.has(o)||i.add(o);return[...i]};oe.contains=(r,e,t)=>{if(typeof r!="string")throw new TypeError(`Expected a string: "${lg.inspect(r)}"`);if(Array.isArray(e))return e.some(i=>oe.contains(r,i,t));if(typeof e=="string"){if(fg(r)||fg(e))return!1;if(r.includes(e)||r.startsWith("./")&&r.slice(2).includes(e))return!0}return oe.isMatch(r,e,{...t,contains:!0})};oe.matchKeys=(r,e,t)=>{if(!Al.isObject(r))throw new TypeError("Expected the first argument to be an object");let i=oe(Object.keys(r),e,t),n={};for(let s of i)n[s]=r[s];return n};oe.some=(r,e,t)=>{let i=[].concat(r);for(let n of[].concat(e)){let s=ot(String(n),t);if(i.some(a=>s(a)))return!0}return!1};oe.every=(r,e,t)=>{let i=[].concat(r);for(let n of[].concat(e)){let s=ot(String(n),t);if(!i.every(a=>s(a)))return!1}return!0};oe.all=(r,e,t)=>{if(typeof r!="string")throw new TypeError(`Expected a string: "${lg.inspect(r)}"`);return[].concat(e).every(i=>ot(i,t)(r))};oe.capture=(r,e,t)=>{let i=Al.isWindows(t),s=ot.makeRe(String(r),{...t,capture:!0}).exec(i?Al.toPosixSlashes(e):e);if(s)return s.slice(1).map(a=>a===void 0?"":a)};oe.makeRe=(...r)=>ot.makeRe(...r);oe.scan=(...r)=>ot.scan(...r);oe.parse=(r,e)=>{let t=[];for(let i of[].concat(r||[]))for(let n of ug(String(i),e))t.push(ot.parse(n,e));return t};oe.braces=(r,e)=>{if(typeof r!="string")throw new TypeError("Expected a string");return e&&e.nobrace===!0||!cg(r)?[r]:ug(r,e)};oe.braceExpand=(r,e)=>{if(typeof r!="string")throw new TypeError("Expected a string");return oe.braces(r,{...e,expand:!0})};oe.hasBraces=cg;pg.exports=oe});function mg(r,e){let t=e.content.files;t=t.filter(o=>typeof o=="string"),t=t.map(ll);let i=ps.generateTasks(t),n=[],s=[];for(let o of i)n.push(...o.positive.map(l=>gg(l,!1))),s.push(...o.negative.map(l=>gg(l,!0)));let a=[...n,...s];return a=c2(r,a),a=a.flatMap(p2),a=a.map(f2),a}function gg(r,e){let t={original:r,base:r,ignore:e,pattern:r,glob:null};return Zh(r)&&Object.assign(t,nm(r)),t}function f2(r){let e=ll(r.base);return e=ps.escapePath(e),r.pattern=r.glob?`${e}/${r.glob}`:e,r.pattern=r.ignore?`!${r.pattern}`:r.pattern,r}function c2(r,e){let t=[];return r.userConfigPath&&r.tailwindConfig.content.relative&&(t=[me.dirname(r.userConfigPath)]),e.map(i=>(i.base=me.resolve(...t,i.base),i))}function p2(r){let e=[r];try{let t=be.realpathSync(r.base);t!==r.base&&e.push({...r,base:t})}catch{}return e}function yg(r,e,t){let i=r.tailwindConfig.content.files.filter(a=>typeof a.raw=="string").map(({raw:a,extension:o="html"})=>({content:a,extension:o})),[n,s]=h2(e,t);for(let a of n){let o=me.extname(a).slice(1);i.push({file:a,extension:o})}return[i,s]}function d2(r){if(!r.some(s=>s.includes("**")&&!wg.test(s)))return()=>{};let t=[],i=[];for(let s of r){let a=hg.default.matcher(s);wg.test(s)&&i.push(a),t.push(a)}let n=!1;return s=>{if(n||i.some(f=>f(s)))return;let a=t.findIndex(f=>f(s));if(a===-1)return;let o=r[a],l=me.relative(m.cwd(),o);l[0]!=="."&&(l=`./${l}`);let c=bg.find(f=>s.includes(f));c&&(n=!0,G.warn("broad-content-glob-pattern",[`Your \`content\` configuration includes a pattern which looks like it's accidentally matching all of \`${c}\` and can cause serious performance issues.`,`Pattern: \`${l}\``,"See our documentation for recommendations:","https://tailwindcss.com/docs/content-configuration#pattern-recommendations"]))}}function h2(r,e){let t=r.map(o=>o.pattern),i=new Map,n=d2(t),s=new Set;Ze.DEBUG&&console.time("Finding changed files");let a=ps.sync(t,{absolute:!0});for(let o of a){n(o);let l=e.get(o)||-1/0,c=be.statSync(o).mtimeMs;c>l&&(s.add(o),i.set(o,c))}return Ze.DEBUG&&console.timeEnd("Finding changed files"),[s,i]}var hg,bg,wg,vg=P(()=>{u();ft();et();Jh();em();tm();sm();It();Be();hg=pe(dg());bg=["node_modules"],wg=new RegExp(`(${bg.map(r=>String.raw`\b${r}\b`).join("|")})`)});function xg(){}var kg=P(()=>{u()});function b2(r,e){for(let t of e){let i=`${r}${t}`;if(be.existsSync(i)&&be.statSync(i).isFile())return i}for(let t of e){let i=`${r}/index${t}`;if(be.existsSync(i))return i}return null}function*Sg(r,e,t,i=me.extname(r)){let n=b2(me.resolve(e,r),m2.includes(i)?g2:y2);if(n===null||t.has(n))return;t.add(n),yield n,e=me.dirname(n),i=me.extname(n);let s=be.readFileSync(n,"utf-8");for(let a of[...s.matchAll(/import[\s\S]*?['"](.{3,}?)['"]/gi),...s.matchAll(/import[\s\S]*from[\s\S]*?['"](.{3,}?)['"]/gi),...s.matchAll(/require\(['"`](.+)['"`]\)/gi)])!a[1].startsWith(".")||(yield*Sg(a[1],e,t,i))}function Cl(r){return r===null?new Set:new Set(Sg(r,me.dirname(r),new Set))}var m2,g2,y2,Ag=P(()=>{u();ft();et();m2=[".js",".cjs",".mjs"],g2=["",".js",".cjs",".mjs",".ts",".cts",".mts",".jsx",".tsx"],y2=["",".ts",".cts",".mts",".tsx",".js",".cjs",".mjs",".jsx"]});function w2(r,e){if(_l.has(r))return _l.get(r);let t=mg(r,e);return _l.set(r,t).get(r)}function v2(r){let e=aa(r);if(e!==null){let[i,n,s,a]=_g.get(e)||[],o=Cl(e),l=!1,c=new Map;for(let p of o){let h=be.statSync(p).mtimeMs;c.set(p,h),(!a||!a.has(p)||h>a.get(p))&&(l=!0)}if(!l)return[i,e,n,s];for(let p of o)delete hf.cache[p];let f=ol(zr(xg(e))),d=Wi(f);return _g.set(e,[f,d,o,c]),[f,e,d,o]}let t=zr(r?.config??r??{});return t=ol(t),[t,null,Wi(t),[]]}function El(r){return({tailwindDirectives:e,registerDependency:t})=>(i,n)=>{let[s,a,o,l]=v2(r),c=new Set(l);if(e.size>0){c.add(n.opts.from);for(let b of n.messages)b.type==="dependency"&&c.add(b.file)}let[f,,d]=Vh(i,n,s,a,o,c),p=cs(f),h=w2(f,s);if(e.size>0){for(let y of h)for(let w of nl(y))t(w);let[b,v]=yg(f,h,p);for(let y of b)f.changedContent.push(y);for(let[y,w]of v.entries())d.set(y,w)}for(let b of l)t({type:"dependency",file:b});for(let[b,v]of d.entries())p.set(b,v);return f}}var Cg,_g,_l,Eg=P(()=>{u();ft();Cg=pe(Fs());wf();sa();oc();Oi();Hh();Xh();vg();kg();Ag();_g=new Cg.default({maxSize:100}),_l=new WeakMap});function Ol(r){let e=new Set,t=new Set,i=new Set;if(r.walkAtRules(n=>{n.name==="apply"&&i.add(n),n.name==="import"&&(n.params==='"tailwindcss/base"'||n.params==="'tailwindcss/base'"?(n.name="tailwind",n.params="base"):n.params==='"tailwindcss/components"'||n.params==="'tailwindcss/components'"?(n.name="tailwind",n.params="components"):n.params==='"tailwindcss/utilities"'||n.params==="'tailwindcss/utilities'"?(n.name="tailwind",n.params="utilities"):(n.params==='"tailwindcss/screens"'||n.params==="'tailwindcss/screens'"||n.params==='"tailwindcss/variants"'||n.params==="'tailwindcss/variants'")&&(n.name="tailwind",n.params="variants")),n.name==="tailwind"&&(n.params==="screens"&&(n.params="variants"),e.add(n.params)),["layer","responsive","variants"].includes(n.name)&&(["responsive","variants"].includes(n.name)&&G.warn(`${n.name}-at-rule-deprecated`,[`The \`@${n.name}\` directive has been deprecated in Tailwind CSS v3.0.`,"Use `@layer utilities` or `@layer components` instead.","https://tailwindcss.com/docs/upgrade-guide#replace-variants-with-layer"]),t.add(n))}),!e.has("base")||!e.has("components")||!e.has("utilities")){for(let n of t)if(n.name==="layer"&&["base","components","utilities"].includes(n.params)){if(!e.has(n.params))throw n.error(`\`@layer ${n.params}\` is used but no matching \`@tailwind ${n.params}\` directive is present.`)}else if(n.name==="responsive"){if(!e.has("utilities"))throw n.error("`@responsive` is used but `@tailwind utilities` is missing.")}else if(n.name==="variants"&&!e.has("utilities"))throw n.error("`@variants` is used but `@tailwind utilities` is missing.")}return{tailwindDirectives:e,applyDirectives:i}}var Og=P(()=>{u();Be()});function Qt(r,e=void 0,t=void 0){return r.map(i=>{let n=i.clone();return t!==void 0&&(n.raws.tailwind={...n.raws.tailwind,...t}),e!==void 0&&Tg(n,s=>{if(s.raws.tailwind?.preserveSource===!0&&s.source)return!1;s.source=e}),n})}function Tg(r,e){e(r)!==!1&&r.each?.(t=>Tg(t,e))}var Rg=P(()=>{u()});function Tl(r){return r=Array.isArray(r)?r:[r],r=r.map(e=>e instanceof RegExp?e.source:e),r.join("")}function Ne(r){return new RegExp(Tl(r),"g")}function qt(r){return`(?:${r.map(Tl).join("|")})`}function Rl(r){return`(?:${Tl(r)})?`}function Ig(r){return r&&x2.test(r)?r.replace(Pg,"\\$&"):r||""}var Pg,x2,Dg=P(()=>{u();Pg=/[\\^$.*+?()[\]{}|]/g,x2=RegExp(Pg.source)});function qg(r){let e=Array.from(k2(r));return t=>{let i=[];for(let n of e)for(let s of t.match(n)??[])i.push(C2(s));for(let n of i.slice()){let s=ve(n,".");for(let a=0;a=s.length-1){i.push(o);continue}let l=Number(s[a+1]);isNaN(l)?i.push(o):a++}}return i}}function*k2(r){let e=r.tailwindConfig.separator,t=r.tailwindConfig.prefix!==""?Rl(Ne([/-?/,Ig(r.tailwindConfig.prefix)])):"",i=qt([/\[[^\s:'"`]+:[^\s\[\]]+\]/,/\[[^\s:'"`\]]+:[^\s]+?\[[^\s]+\][^\s]+?\]/,Ne([qt([/-?(?:\w+)/,/@(?:\w+)/]),Rl(qt([Ne([qt([/-(?:\w+-)*\['[^\s]+'\]/,/-(?:\w+-)*\["[^\s]+"\]/,/-(?:\w+-)*\[`[^\s]+`\]/,/-(?:\w+-)*\[(?:[^\s\[\]]+\[[^\s\[\]]+\])*[^\s:\[\]]+\]/]),/(?![{([]])/,/(?:\/[^\s'"`\\><$]*)?/]),Ne([qt([/-(?:\w+-)*\['[^\s]+'\]/,/-(?:\w+-)*\["[^\s]+"\]/,/-(?:\w+-)*\[`[^\s]+`\]/,/-(?:\w+-)*\[(?:[^\s\[\]]+\[[^\s\[\]]+\])*[^\s\[\]]+\]/]),/(?![{([]])/,/(?:\/[^\s'"`\\$]*)?/]),/[-\/][^\s'"`\\$={><]*/]))])]),n=[qt([Ne([/@\[[^\s"'`]+\](\/[^\s"'`]+)?/,e]),Ne([/([^\s"'`\[\\]+-)?\[[^\s"'`]+\]\/[\w_-]+/,e]),Ne([/([^\s"'`\[\\]+-)?\[[^\s"'`]+\]/,e]),Ne([/[^\s"'`\[\\]+/,e])]),qt([Ne([/([^\s"'`\[\\]+-)?\[[^\s`]+\]\/[\w_-]+/,e]),Ne([/([^\s"'`\[\\]+-)?\[[^\s`]+\]/,e]),Ne([/[^\s`\[\\]+/,e])])];for(let s of n)yield Ne(["((?=((",s,")+))\\2)?",/!?/,t,i]);yield/[^<>"'`\s.(){}[\]#=%$][^<>"'`\s(){}[\]#=%$]*[^<>"'`\s.(){}[\]#=%:$]/g}function C2(r){if(!r.includes("-["))return r;let e=0,t=[],i=r.matchAll(S2);i=Array.from(i).flatMap(n=>{let[,...s]=n;return s.map((a,o)=>Object.assign([],n,{index:n.index+o,0:a}))});for(let n of i){let s=n[0],a=t[t.length-1];if(s===a?t.pop():(s==="'"||s==='"'||s==="`")&&t.push(s),!a){if(s==="["){e++;continue}else if(s==="]"){e--;continue}if(e<0)return r.substring(0,n.index-1);if(e===0&&!A2.test(s))return r.substring(0,n.index)}}return r}var S2,A2,$g=P(()=>{u();Dg();zt();S2=/([\[\]'"`])([^\[\]'"`])?/g,A2=/[^"'`\s<>\]]+/});function _2(r,e){let t=r.tailwindConfig.content.extract;return t[e]||t.DEFAULT||Mg[e]||Mg.DEFAULT(r)}function E2(r,e){let t=r.content.transform;return t[e]||t.DEFAULT||Ng[e]||Ng.DEFAULT}function O2(r,e,t,i){Li.has(e)||Li.set(e,new Lg.default({maxSize:25e3}));for(let n of r.split(` +`))if(n=n.trim(),!i.has(n))if(i.add(n),Li.get(e).has(n))for(let s of Li.get(e).get(n))t.add(s);else{let s=e(n).filter(o=>o!=="!*"),a=new Set(s);for(let o of a)t.add(o);Li.get(e).set(n,a)}}function T2(r,e){let t=e.offsets.sort(r),i={base:new Set,defaults:new Set,components:new Set,utilities:new Set,variants:new Set};for(let[n,s]of t)i[n.layer].add(s);return i}function Pl(r){return async e=>{let t={base:null,components:null,utilities:null,variants:null};if(e.walkAtRules(y=>{y.name==="tailwind"&&Object.keys(t).includes(y.params)&&(t[y.params]=y)}),Object.values(t).every(y=>y===null))return e;let i=new Set([...r.candidates??[],gt]),n=new Set;bt.DEBUG&&console.time("Reading changed files");let s=[];for(let y of r.changedContent){let w=E2(r.tailwindConfig,y.extension),k=_2(r,y.extension);s.push([y,{transformer:w,extractor:k}])}let a=500;for(let y=0;y{S=k?await be.promises.readFile(k,"utf8"):S,O2(E(S),T,i,n)}))}bt.DEBUG&&console.timeEnd("Reading changed files");let o=r.classCache.size;bt.DEBUG&&console.time("Generate rules"),bt.DEBUG&&console.time("Sorting candidates");let l=new Set([...i].sort((y,w)=>y===w?0:y{let w=y.raws.tailwind?.parentLayer;return w==="components"?t.components!==null:w==="utilities"?t.utilities!==null:!0});t.variants?(t.variants.before(Qt(b,t.variants.source,{layer:"variants"})),t.variants.remove()):b.length>0&&e.append(Qt(b,e.source,{layer:"variants"})),e.source.end=e.source.end??e.source.start;let v=b.some(y=>y.raws.tailwind?.parentLayer==="utilities");t.utilities&&p.size===0&&!v&&G.warn("content-problems",["No utility classes were detected in your source files. If this is unexpected, double-check the `content` option in your Tailwind CSS configuration.","https://tailwindcss.com/docs/content-configuration"]),bt.DEBUG&&(console.log("Potential classes: ",i.size),console.log("Active contexts: ",es.size)),r.changedContent=[],e.walkAtRules("layer",y=>{Object.keys(t).includes(y.params)&&y.remove()})}}var Lg,bt,Mg,Ng,Li,Bg=P(()=>{u();ft();Lg=pe(Fs());It();os();Be();Rg();$g();bt=Ze,Mg={DEFAULT:qg},Ng={DEFAULT:r=>r,svelte:r=>r.replace(/(?:^|\s)class:/g," ")};Li=new WeakMap});function xs(r){let e=new Map;ee.root({nodes:[r.clone()]}).walkRules(s=>{(0,vs.default)(a=>{a.walkClasses(o=>{let l=o.parent.toString(),c=e.get(l);c||e.set(l,c=new Set),c.add(o.value)})}).processSync(s.selector)});let i=Array.from(e.values(),s=>Array.from(s)),n=i.flat();return Object.assign(n,{groups:i})}function Il(r){return R2.astSync(r)}function Fg(r,e){let t=new Set;for(let i of r)t.add(i.split(e).pop());return Array.from(t)}function jg(r,e){let t=r.tailwindConfig.prefix;return typeof t=="function"?t(e):t+e}function*zg(r){for(yield r;r.parent;)yield r.parent,r=r.parent}function P2(r,e={}){let t=r.nodes;r.nodes=[];let i=r.clone(e);return r.nodes=t,i}function I2(r){for(let e of zg(r))if(r!==e){if(e.type==="root")break;r=P2(e,{nodes:[r]})}return r}function D2(r,e){let t=new Map;return r.walkRules(i=>{for(let a of zg(i))if(a.raws.tailwind?.layer!==void 0)return;let n=I2(i),s=e.offsets.create("user");for(let a of xs(i)){let o=t.get(a)||[];t.set(a,o),o.push([{layer:"user",sort:s,important:!1},n])}}),t}function q2(r,e){for(let t of r){if(e.notClassCache.has(t)||e.applyClassCache.has(t))continue;if(e.classCache.has(t)){e.applyClassCache.set(t,e.classCache.get(t).map(([n,s])=>[n,s.clone()]));continue}let i=Array.from(Yo(t,e));if(i.length===0){e.notClassCache.add(t);continue}e.applyClassCache.set(t,i)}return e.applyClassCache}function $2(r){let e=null;return{get:t=>(e=e||r(),e.get(t)),has:t=>(e=e||r(),e.has(t))}}function L2(r){return{get:e=>r.flatMap(t=>t.get(e)||[]),has:e=>r.some(t=>t.has(e))}}function Ug(r){let e=r.split(/[\s\t\n]+/g);return e[e.length-1]==="!important"?[e.slice(0,-1),!0]:[e,!1]}function Vg(r,e,t){let i=new Set,n=[];if(r.walkAtRules("apply",l=>{let[c]=Ug(l.params);for(let f of c)i.add(f);n.push(l)}),n.length===0)return;let s=L2([t,q2(i,e)]);function a(l,c,f){let d=Il(l),p=Il(c),b=Il(`.${Te(f)}`).nodes[0].nodes[0];return d.each(v=>{let y=new Set;p.each(w=>{let k=!1;w=w.clone(),w.walkClasses(S=>{S.value===b.value&&(k||(S.replaceWith(...v.nodes.map(E=>E.clone())),y.add(w),k=!0))})});for(let w of y){let k=[[]];for(let S of w.nodes)S.type==="combinator"?(k.push(S),k.push([])):k[k.length-1].push(S);w.nodes=[];for(let S of k)Array.isArray(S)&&S.sort((E,T)=>E.type==="tag"&&T.type==="class"?-1:E.type==="class"&&T.type==="tag"?1:E.type==="class"&&T.type==="pseudo"&&T.value.startsWith("::")?-1:E.type==="pseudo"&&E.value.startsWith("::")&&T.type==="class"?1:0),w.nodes=w.nodes.concat(S)}v.replaceWith(...y)}),d.toString()}let o=new Map;for(let l of n){let[c]=o.get(l.parent)||[[],l.source];o.set(l.parent,[c,l.source]);let[f,d]=Ug(l.params);if(l.parent.type==="atrule"){if(l.parent.name==="screen"){let p=l.parent.params;throw l.error(`@apply is not supported within nested at-rules like @screen. We suggest you write this as @apply ${f.map(h=>`${p}:${h}`).join(" ")} instead.`)}throw l.error(`@apply is not supported within nested at-rules like @${l.parent.name}. You can fix this by un-nesting @${l.parent.name}.`)}for(let p of f){if([jg(e,"group"),jg(e,"peer")].includes(p))throw l.error(`@apply should not be used with the '${p}' utility`);if(!s.has(p))throw l.error(`The \`${p}\` class does not exist. If \`${p}\` is a custom class, make sure it is defined within a \`@layer\` directive.`);let h=s.get(p);for(let[,b]of h)b.type!=="atrule"&&b.walkRules(()=>{throw l.error([`The \`${p}\` class cannot be used with \`@apply\` because \`@apply\` does not currently support nested CSS.`,"Rewrite the selector without nesting or configure the `tailwindcss/nesting` plugin:","https://tailwindcss.com/docs/using-with-preprocessors#nesting"].join(` +`))});c.push([p,d,h])}}for(let[l,[c,f]]of o){let d=[];for(let[h,b,v]of c){let y=[h,...Fg([h],e.tailwindConfig.separator)];for(let[w,k]of v){let S=xs(l),E=xs(k);if(E=E.groups.filter(R=>R.some(F=>y.includes(F))).flat(),E=E.concat(Fg(E,e.tailwindConfig.separator)),S.some(R=>E.includes(R)))throw k.error(`You cannot \`@apply\` the \`${h}\` utility here because it creates a circular dependency.`);let B=ee.root({nodes:[k.clone()]});B.walk(R=>{R.source=f}),(k.type!=="atrule"||k.type==="atrule"&&k.name!=="keyframes")&&B.walkRules(R=>{if(!xs(R).some(U=>U===h)){R.remove();return}let F=typeof e.tailwindConfig.important=="string"?e.tailwindConfig.important:null,_=l.raws.tailwind!==void 0&&F&&l.selector.indexOf(F)===0?l.selector.slice(F.length):l.selector;_===""&&(_=l.selector),R.selector=a(_,R.selector,h),F&&_!==l.selector&&(R.selector=is(R.selector,F)),R.walkDecls(U=>{U.important=w.important||b});let Q=(0,vs.default)().astSync(R.selector);Q.each(U=>pr(U)),R.selector=Q.toString()}),!!B.nodes[0]&&d.push([w.sort,B.nodes[0]])}}let p=e.offsets.sort(d).map(h=>h[1]);l.after(p)}for(let l of n)l.parent.nodes.length>1?l.remove():l.parent.remove();Vg(r,e,t)}function Dl(r){return e=>{let t=$2(()=>D2(e,r));Vg(e,r,t)}}var vs,R2,Hg=P(()=>{u();Ot();vs=pe(it());os();fr();Wo();ts();R2=(0,vs.default)()});var Wg=x((nq,ks)=>{u();(function(){"use strict";function r(i,n,s){if(!i)return null;r.caseSensitive||(i=i.toLowerCase());var a=r.threshold===null?null:r.threshold*i.length,o=r.thresholdAbsolute,l;a!==null&&o!==null?l=Math.min(a,o):a!==null?l=a:o!==null?l=o:l=null;var c,f,d,p,h,b=n.length;for(h=0;hs)return s+1;var l=[],c,f,d,p,h;for(c=0;c<=o;c++)l[c]=[c];for(f=0;f<=a;f++)l[0][f]=f;for(c=1;c<=o;c++){for(d=e,p=1,c>s&&(p=c-s),h=o+1,h>s+c&&(h=s+c),f=1;f<=a;f++)fh?l[c][f]=s+1:n.charAt(c-1)===i.charAt(f-1)?l[c][f]=l[c-1][f-1]:l[c][f]=Math.min(l[c-1][f-1]+1,Math.min(l[c][f-1]+1,l[c-1][f]+1)),l[c][f]s)return s+1}return l[o][a]}})()});var Qg=x((sq,Gg)=>{u();var ql="(".charCodeAt(0),$l=")".charCodeAt(0),Ss="'".charCodeAt(0),Ll='"'.charCodeAt(0),Ml="\\".charCodeAt(0),yr="/".charCodeAt(0),Nl=",".charCodeAt(0),Bl=":".charCodeAt(0),As="*".charCodeAt(0),M2="u".charCodeAt(0),N2="U".charCodeAt(0),B2="+".charCodeAt(0),F2=/^[a-f0-9?-]+$/i;Gg.exports=function(r){for(var e=[],t=r,i,n,s,a,o,l,c,f,d=0,p=t.charCodeAt(d),h=t.length,b=[{nodes:e}],v=0,y,w="",k="",S="";d{u();Yg.exports=function r(e,t,i){var n,s,a,o;for(n=0,s=e.length;n{u();function Xg(r,e){var t=r.type,i=r.value,n,s;return e&&(s=e(r))!==void 0?s:t==="word"||t==="space"?i:t==="string"?(n=r.quote||"",n+i+(r.unclosed?"":n)):t==="comment"?"/*"+i+(r.unclosed?"":"*/"):t==="div"?(r.before||"")+i+(r.after||""):Array.isArray(r.nodes)?(n=Zg(r.nodes,e),t!=="function"?n:i+"("+(r.before||"")+n+(r.after||"")+(r.unclosed?"":")")):i}function Zg(r,e){var t,i;if(Array.isArray(r)){for(t="",i=r.length-1;~i;i-=1)t=Xg(r[i],e)+t;return t}return Xg(r,e)}Jg.exports=Zg});var ry=x((lq,ty)=>{u();var Cs="-".charCodeAt(0),_s="+".charCodeAt(0),Fl=".".charCodeAt(0),j2="e".charCodeAt(0),z2="E".charCodeAt(0);function U2(r){var e=r.charCodeAt(0),t;if(e===_s||e===Cs){if(t=r.charCodeAt(1),t>=48&&t<=57)return!0;var i=r.charCodeAt(2);return t===Fl&&i>=48&&i<=57}return e===Fl?(t=r.charCodeAt(1),t>=48&&t<=57):e>=48&&e<=57}ty.exports=function(r){var e=0,t=r.length,i,n,s;if(t===0||!U2(r))return!1;for(i=r.charCodeAt(e),(i===_s||i===Cs)&&e++;e57));)e+=1;if(i=r.charCodeAt(e),n=r.charCodeAt(e+1),i===Fl&&n>=48&&n<=57)for(e+=2;e57));)e+=1;if(i=r.charCodeAt(e),n=r.charCodeAt(e+1),s=r.charCodeAt(e+2),(i===j2||i===z2)&&(n>=48&&n<=57||(n===_s||n===Cs)&&s>=48&&s<=57))for(e+=n===_s||n===Cs?3:2;e57));)e+=1;return{number:r.slice(0,e),unit:r.slice(e)}}});var ay=x((uq,sy)=>{u();var V2=Qg(),iy=Kg(),ny=ey();function $t(r){return this instanceof $t?(this.nodes=V2(r),this):new $t(r)}$t.prototype.toString=function(){return Array.isArray(this.nodes)?ny(this.nodes):""};$t.prototype.walk=function(r,e){return iy(this.nodes,r,e),this};$t.unit=ry();$t.walk=iy;$t.stringify=ny;sy.exports=$t});function zl(r){return typeof r=="object"&&r!==null}function H2(r,e){let t=kt(e);do if(t.pop(),(0,Mi.default)(r,t)!==void 0)break;while(t.length);return t.length?t:void 0}function br(r){return typeof r=="string"?r:r.reduce((e,t,i)=>t.includes(".")?`${e}[${t}]`:i===0?t:`${e}.${t}`,"")}function ly(r){return r.map(e=>`'${e}'`).join(", ")}function uy(r){return ly(Object.keys(r))}function Ul(r,e,t,i={}){let n=Array.isArray(e)?br(e):e.replace(/^['"]+|['"]+$/g,""),s=Array.isArray(e)?e:kt(n),a=(0,Mi.default)(r.theme,s,t);if(a===void 0){let l=`'${n}' does not exist in your theme config.`,c=s.slice(0,-1),f=(0,Mi.default)(r.theme,c);if(zl(f)){let d=Object.keys(f).filter(h=>Ul(r,[...c,h]).isValid),p=(0,oy.default)(s[s.length-1],d);p?l+=` Did you mean '${br([...c,p])}'?`:d.length>0&&(l+=` '${br(c)}' has the following valid keys: ${ly(d)}`)}else{let d=H2(r.theme,n);if(d){let p=(0,Mi.default)(r.theme,d);zl(p)?l+=` '${br(d)}' has the following keys: ${uy(p)}`:l+=` '${br(d)}' is not an object.`}else l+=` Your theme has the following top-level keys: ${uy(r.theme)}`}return{isValid:!1,error:l}}if(!(typeof a=="string"||typeof a=="number"||typeof a=="function"||a instanceof String||a instanceof Number||Array.isArray(a))){let l=`'${n}' was found but does not resolve to a string.`;if(zl(a)){let c=Object.keys(a).filter(f=>Ul(r,[...s,f]).isValid);c.length&&(l+=` Did you mean something like '${br([...s,c[0]])}'?`)}return{isValid:!1,error:l}}let[o]=s;return{isValid:!0,value:mt(o)(a,i)}}function W2(r,e,t){e=e.map(n=>fy(r,n,t));let i=[""];for(let n of e)n.type==="div"&&n.value===","?i.push(""):i[i.length-1]+=jl.default.stringify(n);return i}function fy(r,e,t){if(e.type==="function"&&t[e.value]!==void 0){let i=W2(r,e.nodes,t);e.type="word",e.value=t[e.value](r,...i)}return e}function G2(r,e,t){return Object.keys(t).some(n=>e.includes(`${n}(`))?(0,jl.default)(e).walk(n=>{fy(r,n,t)}).toString():e}function*Y2(r){r=r.replace(/^['"]+|['"]+$/g,"");let e=r.match(/^([^\s]+)(?![^\[]*\])(?:\s*\/\s*([^\/\s]+))$/),t;yield[r,void 0],e&&(r=e[1],t=e[2],yield[r,t])}function K2(r,e,t){let i=Array.from(Y2(e)).map(([n,s])=>Object.assign(Ul(r,n,t,{opacityValue:s}),{resolvedPath:n,alpha:s}));return i.find(n=>n.isValid)??i[0]}function cy(r){let e=r.tailwindConfig,t={theme:(i,n,...s)=>{let{isValid:a,value:o,error:l,alpha:c}=K2(e,n,s.length?s:void 0);if(!a){let p=i.parent,h=p?.raws.tailwind?.candidate;if(p&&h!==void 0){r.markInvalidUtilityNode(p),p.remove(),G.warn("invalid-theme-key-in-class",[`The utility \`${h}\` contains an invalid theme value and was not generated.`]);return}throw i.error(l)}let f=Xt(o),d=f!==void 0&&typeof f=="function";return(c!==void 0||d)&&(c===void 0&&(c=1),o=Je(f,c,f)),o},screen:(i,n)=>{n=n.replace(/^['"]+/g,"").replace(/['"]+$/g,"");let a=Rt(e.theme.screens).find(({name:o})=>o===n);if(!a)throw i.error(`The '${n}' screen does not exist in your theme.`);return Tt(a)}};return i=>{i.walk(n=>{let s=Q2[n.type];s!==void 0&&(n[s]=G2(n,n[s],t))})}}var Mi,oy,jl,Q2,py=P(()=>{u();Mi=pe(Ra()),oy=pe(Wg());Ci();jl=pe(ay());Zn();Yn();Yi();Lr();Fr();Be();Q2={atrule:"params",decl:"value"}});function dy({tailwindConfig:{theme:r}}){return function(e){e.walkAtRules("screen",t=>{let i=t.params,s=Rt(r.screens).find(({name:a})=>a===i);if(!s)throw t.error(`No \`${i}\` screen found.`);t.name="media",t.params=Tt(s)})}}var hy=P(()=>{u();Zn();Yn()});function X2(r){let e=r.filter(o=>o.type!=="pseudo"||o.nodes.length>0?!0:o.value.startsWith("::")||[":before",":after",":first-line",":first-letter"].includes(o.value)).reverse(),t=new Set(["tag","class","id","attribute"]),i=e.findIndex(o=>t.has(o.type));if(i===-1)return e.reverse().join("").trim();let n=e[i],s=my[n.type]?my[n.type](n):n;e=e.slice(0,i);let a=e.findIndex(o=>o.type==="combinator"&&o.value===">");return a!==-1&&(e.splice(0,a),e.unshift(Es.default.universal())),[s,...e.reverse()].join("").trim()}function J2(r){return Vl.has(r)||Vl.set(r,Z2.transformSync(r)),Vl.get(r)}function Hl({tailwindConfig:r}){return e=>{let t=new Map,i=new Set;if(e.walkAtRules("defaults",n=>{if(n.nodes&&n.nodes.length>0){i.add(n);return}let s=n.params;t.has(s)||t.set(s,new Set),t.get(s).add(n.parent),n.remove()}),we(r,"optimizeUniversalDefaults"))for(let n of i){let s=new Map,a=t.get(n.params)??[];for(let o of a)for(let l of J2(o.selector)){let c=l.includes(":-")||l.includes("::-")||l.includes(":has")?l:"__DEFAULT__",f=s.get(c)??new Set;s.set(c,f),f.add(l)}if(s.size===0){n.remove();continue}for(let[,o]of s){let l=ee.rule({source:n.source});l.selectors=[...o],l.append(n.nodes.map(c=>c.clone())),n.before(l)}n.remove()}else if(i.size){let n=ee.rule({selectors:["*","::before","::after"]});for(let a of i)n.append(a.nodes),n.parent||a.before(n),n.source||(n.source=a.source),a.remove();let s=n.clone({selectors:["::backdrop"]});n.after(s)}}}var Es,my,Z2,Vl,gy=P(()=>{u();Ot();Es=pe(it());ct();my={id(r){return Es.default.attribute({attribute:"id",operator:"=",value:r.value,quoteMark:'"'})}};Z2=(0,Es.default)(r=>r.map(e=>{let t=e.split(i=>i.type==="combinator"&&i.value===" ").pop();return X2(t)})),Vl=new Map});function Wl(){function r(e){let t=null;e.each(i=>{if(!eO.has(i.type)){t=null;return}if(t===null){t=i;return}let n=yy[i.type];i.type==="atrule"&&i.name==="font-face"?t=i:n.every(s=>(i[s]??"").replace(/\s+/g," ")===(t[s]??"").replace(/\s+/g," "))?(i.nodes&&t.append(i.nodes),i.remove()):t=i}),e.each(i=>{i.type==="atrule"&&r(i)})}return e=>{r(e)}}var yy,eO,by=P(()=>{u();yy={atrule:["name","params"],rule:["selector"]},eO=new Set(Object.keys(yy))});function Gl(){return r=>{r.walkRules(e=>{let t=new Map,i=new Set([]),n=new Map;e.walkDecls(s=>{if(s.parent===e){if(t.has(s.prop)){if(t.get(s.prop).value===s.value){i.add(t.get(s.prop)),t.set(s.prop,s);return}n.has(s.prop)||n.set(s.prop,new Set),n.get(s.prop).add(t.get(s.prop)),n.get(s.prop).add(s)}t.set(s.prop,s)}});for(let s of i)s.remove();for(let s of n.values()){let a=new Map;for(let o of s){let l=rO(o.value);l!==null&&(a.has(l)||a.set(l,new Set),a.get(l).add(o))}for(let o of a.values()){let l=Array.from(o).slice(0,-1);for(let c of l)c.remove()}}})}}function rO(r){let e=/^-?\d*.?\d+([\w%]+)?$/g.exec(r);return e?e[1]??tO:null}var tO,wy=P(()=>{u();tO=Symbol("unitless-number")});function iO(r){if(!r.walkAtRules)return;let e=new Set;if(r.walkAtRules("apply",t=>{e.add(t.parent)}),e.size!==0)for(let t of e){let i=[],n=[];for(let s of t.nodes)s.type==="atrule"&&s.name==="apply"?(n.length>0&&(i.push(n),n=[]),i.push([s])):n.push(s);if(n.length>0&&i.push(n),i.length!==1){for(let s of[...i].reverse()){let a=t.clone({nodes:[]});a.append(s),t.after(a)}t.remove()}}}function Os(){return r=>{iO(r)}}var vy=P(()=>{u()});function Ts(r){return async function(e,t){let{tailwindDirectives:i,applyDirectives:n}=Ol(e);Os()(e,t);let s=r({tailwindDirectives:i,applyDirectives:n,registerDependency(a){t.messages.push({plugin:"tailwindcss",parent:t.opts.from,...a})},createContext(a,o){return il(a,o,e)}})(e,t);if(s.tailwindConfig.separator==="-")throw new Error("The '-' character cannot be used as a custom separator in JIT mode due to parsing ambiguity. Please use another character like '_' instead.");Rf(s.tailwindConfig),await Pl(s)(e,t),Os()(e,t),Dl(s)(e,t),cy(s)(e,t),dy(s)(e,t),Hl(s)(e,t),Wl(s)(e,t),Gl(s)(e,t)}}var xy=P(()=>{u();Og();Bg();Hg();py();hy();gy();by();wy();vy();Oi();ct()});function ky(r,e){let t=null,i=null;return r.walkAtRules("config",n=>{if(i=n.source?.input.file??e.opts.from??null,i===null)throw n.error("The `@config` directive cannot be used without setting `from` in your PostCSS config.");if(t)throw n.error("Only one `@config` directive is allowed per file.");let s=n.params.match(/(['"])(.*?)\1/);if(!s)throw n.error("A path is required when using the `@config` directive.");let a=s[2];if(me.isAbsolute(a))throw n.error("The `@config` directive cannot be used with an absolute path.");if(t=me.resolve(me.dirname(i),a),!be.existsSync(t))throw n.error(`The config file at "${a}" does not exist. Make sure the path is correct and the file exists.`);n.remove()}),t||null}var Sy=P(()=>{u();ft();et()});var Ay=x((Wq,Ql)=>{u();Eg();xy();It();Sy();Ql.exports=function(e){return{postcssPlugin:"tailwindcss",plugins:[Ze.DEBUG&&function(t){return console.log(` +`),console.time("JIT TOTAL"),t},async function(t,i){e=ky(t,i)??e;let n=El(e);if(t.type==="document"){let s=t.nodes.filter(a=>a.type==="root");for(let a of s)a.type==="root"&&await Ts(n)(a,i);return}await Ts(n)(t,i)},Ze.DEBUG&&function(t){return console.timeEnd("JIT TOTAL"),console.log(` +`),t}].filter(Boolean)}};Ql.exports.postcss=!0});var _y=x((Gq,Cy)=>{u();Cy.exports=Ay()});var Yl=x((Qq,Ey)=>{u();Ey.exports=()=>["and_chr 114","and_uc 15.5","chrome 114","chrome 113","chrome 109","edge 114","firefox 114","ios_saf 16.5","ios_saf 16.4","ios_saf 16.3","ios_saf 16.1","opera 99","safari 16.5","samsung 21"]});var Rs={};Ge(Rs,{agents:()=>nO,feature:()=>sO});function sO(){return{status:"cr",title:"CSS Feature Queries",stats:{ie:{"6":"n","7":"n","8":"n","9":"n","10":"n","11":"n","5.5":"n"},edge:{"12":"y","13":"y","14":"y","15":"y","16":"y","17":"y","18":"y","79":"y","80":"y","81":"y","83":"y","84":"y","85":"y","86":"y","87":"y","88":"y","89":"y","90":"y","91":"y","92":"y","93":"y","94":"y","95":"y","96":"y","97":"y","98":"y","99":"y","100":"y","101":"y","102":"y","103":"y","104":"y","105":"y","106":"y","107":"y","108":"y","109":"y","110":"y","111":"y","112":"y","113":"y","114":"y"},firefox:{"2":"n","3":"n","4":"n","5":"n","6":"n","7":"n","8":"n","9":"n","10":"n","11":"n","12":"n","13":"n","14":"n","15":"n","16":"n","17":"n","18":"n","19":"n","20":"n","21":"n","22":"y","23":"y","24":"y","25":"y","26":"y","27":"y","28":"y","29":"y","30":"y","31":"y","32":"y","33":"y","34":"y","35":"y","36":"y","37":"y","38":"y","39":"y","40":"y","41":"y","42":"y","43":"y","44":"y","45":"y","46":"y","47":"y","48":"y","49":"y","50":"y","51":"y","52":"y","53":"y","54":"y","55":"y","56":"y","57":"y","58":"y","59":"y","60":"y","61":"y","62":"y","63":"y","64":"y","65":"y","66":"y","67":"y","68":"y","69":"y","70":"y","71":"y","72":"y","73":"y","74":"y","75":"y","76":"y","77":"y","78":"y","79":"y","80":"y","81":"y","82":"y","83":"y","84":"y","85":"y","86":"y","87":"y","88":"y","89":"y","90":"y","91":"y","92":"y","93":"y","94":"y","95":"y","96":"y","97":"y","98":"y","99":"y","100":"y","101":"y","102":"y","103":"y","104":"y","105":"y","106":"y","107":"y","108":"y","109":"y","110":"y","111":"y","112":"y","113":"y","114":"y","115":"y","116":"y","117":"y","3.5":"n","3.6":"n"},chrome:{"4":"n","5":"n","6":"n","7":"n","8":"n","9":"n","10":"n","11":"n","12":"n","13":"n","14":"n","15":"n","16":"n","17":"n","18":"n","19":"n","20":"n","21":"n","22":"n","23":"n","24":"n","25":"n","26":"n","27":"n","28":"y","29":"y","30":"y","31":"y","32":"y","33":"y","34":"y","35":"y","36":"y","37":"y","38":"y","39":"y","40":"y","41":"y","42":"y","43":"y","44":"y","45":"y","46":"y","47":"y","48":"y","49":"y","50":"y","51":"y","52":"y","53":"y","54":"y","55":"y","56":"y","57":"y","58":"y","59":"y","60":"y","61":"y","62":"y","63":"y","64":"y","65":"y","66":"y","67":"y","68":"y","69":"y","70":"y","71":"y","72":"y","73":"y","74":"y","75":"y","76":"y","77":"y","78":"y","79":"y","80":"y","81":"y","83":"y","84":"y","85":"y","86":"y","87":"y","88":"y","89":"y","90":"y","91":"y","92":"y","93":"y","94":"y","95":"y","96":"y","97":"y","98":"y","99":"y","100":"y","101":"y","102":"y","103":"y","104":"y","105":"y","106":"y","107":"y","108":"y","109":"y","110":"y","111":"y","112":"y","113":"y","114":"y","115":"y","116":"y","117":"y"},safari:{"4":"n","5":"n","6":"n","7":"n","8":"n","9":"y","10":"y","11":"y","12":"y","13":"y","14":"y","15":"y","17":"y","9.1":"y","10.1":"y","11.1":"y","12.1":"y","13.1":"y","14.1":"y","15.1":"y","15.2-15.3":"y","15.4":"y","15.5":"y","15.6":"y","16.0":"y","16.1":"y","16.2":"y","16.3":"y","16.4":"y","16.5":"y","16.6":"y",TP:"y","3.1":"n","3.2":"n","5.1":"n","6.1":"n","7.1":"n"},opera:{"9":"n","11":"n","12":"n","15":"y","16":"y","17":"y","18":"y","19":"y","20":"y","21":"y","22":"y","23":"y","24":"y","25":"y","26":"y","27":"y","28":"y","29":"y","30":"y","31":"y","32":"y","33":"y","34":"y","35":"y","36":"y","37":"y","38":"y","39":"y","40":"y","41":"y","42":"y","43":"y","44":"y","45":"y","46":"y","47":"y","48":"y","49":"y","50":"y","51":"y","52":"y","53":"y","54":"y","55":"y","56":"y","57":"y","58":"y","60":"y","62":"y","63":"y","64":"y","65":"y","66":"y","67":"y","68":"y","69":"y","70":"y","71":"y","72":"y","73":"y","74":"y","75":"y","76":"y","77":"y","78":"y","79":"y","80":"y","81":"y","82":"y","83":"y","84":"y","85":"y","86":"y","87":"y","88":"y","89":"y","90":"y","91":"y","92":"y","93":"y","94":"y","95":"y","96":"y","97":"y","98":"y","99":"y","100":"y","12.1":"y","9.5-9.6":"n","10.0-10.1":"n","10.5":"n","10.6":"n","11.1":"n","11.5":"n","11.6":"n"},ios_saf:{"8":"n","17":"y","9.0-9.2":"y","9.3":"y","10.0-10.2":"y","10.3":"y","11.0-11.2":"y","11.3-11.4":"y","12.0-12.1":"y","12.2-12.5":"y","13.0-13.1":"y","13.2":"y","13.3":"y","13.4-13.7":"y","14.0-14.4":"y","14.5-14.8":"y","15.0-15.1":"y","15.2-15.3":"y","15.4":"y","15.5":"y","15.6":"y","16.0":"y","16.1":"y","16.2":"y","16.3":"y","16.4":"y","16.5":"y","16.6":"y","3.2":"n","4.0-4.1":"n","4.2-4.3":"n","5.0-5.1":"n","6.0-6.1":"n","7.0-7.1":"n","8.1-8.4":"n"},op_mini:{all:"y"},android:{"3":"n","4":"n","114":"y","4.4":"y","4.4.3-4.4.4":"y","2.1":"n","2.2":"n","2.3":"n","4.1":"n","4.2-4.3":"n"},bb:{"7":"n","10":"n"},op_mob:{"10":"n","11":"n","12":"n","73":"y","11.1":"n","11.5":"n","12.1":"n"},and_chr:{"114":"y"},and_ff:{"115":"y"},ie_mob:{"10":"n","11":"n"},and_uc:{"15.5":"y"},samsung:{"4":"y","20":"y","21":"y","5.0-5.4":"y","6.2-6.4":"y","7.2-7.4":"y","8.2":"y","9.2":"y","10.1":"y","11.1-11.2":"y","12.0":"y","13.0":"y","14.0":"y","15.0":"y","16.0":"y","17.0":"y","18.0":"y","19.0":"y"},and_qq:{"13.1":"y"},baidu:{"13.18":"y"},kaios:{"2.5":"y","3.0-3.1":"y"}}}}var nO,Ps=P(()=>{u();nO={ie:{prefix:"ms"},edge:{prefix:"webkit",prefix_exceptions:{"12":"ms","13":"ms","14":"ms","15":"ms","16":"ms","17":"ms","18":"ms"}},firefox:{prefix:"moz"},chrome:{prefix:"webkit"},safari:{prefix:"webkit"},opera:{prefix:"webkit",prefix_exceptions:{"9":"o","11":"o","12":"o","9.5-9.6":"o","10.0-10.1":"o","10.5":"o","10.6":"o","11.1":"o","11.5":"o","11.6":"o","12.1":"o"}},ios_saf:{prefix:"webkit"},op_mini:{prefix:"o"},android:{prefix:"webkit"},bb:{prefix:"webkit"},op_mob:{prefix:"o",prefix_exceptions:{"73":"webkit"}},and_chr:{prefix:"webkit"},and_ff:{prefix:"moz"},ie_mob:{prefix:"ms"},and_uc:{prefix:"webkit",prefix_exceptions:{"15.5":"webkit"}},samsung:{prefix:"webkit"},and_qq:{prefix:"webkit"},baidu:{prefix:"webkit"},kaios:{prefix:"moz"}}});var Oy=x(()=>{u()});var _e=x((Xq,Lt)=>{u();var{list:Kl}=$e();Lt.exports.error=function(r){let e=new Error(r);throw e.autoprefixer=!0,e};Lt.exports.uniq=function(r){return[...new Set(r)]};Lt.exports.removeNote=function(r){return r.includes(" ")?r.split(" ")[0]:r};Lt.exports.escapeRegexp=function(r){return r.replace(/[$()*+-.?[\\\]^{|}]/g,"\\$&")};Lt.exports.regexp=function(r,e=!0){return e&&(r=this.escapeRegexp(r)),new RegExp(`(^|[\\s,(])(${r}($|[\\s(,]))`,"gi")};Lt.exports.editList=function(r,e){let t=Kl.comma(r),i=e(t,[]);if(t===i)return r;let n=r.match(/,\s*/);return n=n?n[0]:", ",i.join(n)};Lt.exports.splitSelector=function(r){return Kl.comma(r).map(e=>Kl.space(e).map(t=>t.split(/(?=\.|#)/g)))}});var Mt=x((Zq,Py)=>{u();var aO=Yl(),Ty=(Ps(),Rs).agents,oO=_e(),Ry=class{static prefixes(){if(this.prefixesCache)return this.prefixesCache;this.prefixesCache=[];for(let e in Ty)this.prefixesCache.push(`-${Ty[e].prefix}-`);return this.prefixesCache=oO.uniq(this.prefixesCache).sort((e,t)=>t.length-e.length),this.prefixesCache}static withPrefix(e){return this.prefixesRegexp||(this.prefixesRegexp=new RegExp(this.prefixes().join("|"))),this.prefixesRegexp.test(e)}constructor(e,t,i,n){this.data=e,this.options=i||{},this.browserslistOpts=n||{},this.selected=this.parse(t)}parse(e){let t={};for(let i in this.browserslistOpts)t[i]=this.browserslistOpts[i];return t.path=this.options.from,aO(e,t)}prefix(e){let[t,i]=e.split(" "),n=this.data[t],s=n.prefix_exceptions&&n.prefix_exceptions[i];return s||(s=n.prefix),`-${s}-`}isSelected(e){return this.selected.includes(e)}};Py.exports=Ry});var Ni=x((Jq,Iy)=>{u();Iy.exports={prefix(r){let e=r.match(/^(-\w+-)/);return e?e[0]:""},unprefixed(r){return r.replace(/^-\w+-/,"")}}});var wr=x((e$,qy)=>{u();var lO=Mt(),Dy=Ni(),uO=_e();function Xl(r,e){let t=new r.constructor;for(let i of Object.keys(r||{})){let n=r[i];i==="parent"&&typeof n=="object"?e&&(t[i]=e):i==="source"||i===null?t[i]=n:Array.isArray(n)?t[i]=n.map(s=>Xl(s,t)):i!=="_autoprefixerPrefix"&&i!=="_autoprefixerValues"&&i!=="proxyCache"&&(typeof n=="object"&&n!==null&&(n=Xl(n,t)),t[i]=n)}return t}var Is=class{static hack(e){return this.hacks||(this.hacks={}),e.names.map(t=>(this.hacks[t]=e,this.hacks[t]))}static load(e,t,i){let n=this.hacks&&this.hacks[e];return n?new n(e,t,i):new this(e,t,i)}static clone(e,t){let i=Xl(e);for(let n in t)i[n]=t[n];return i}constructor(e,t,i){this.prefixes=t,this.name=e,this.all=i}parentPrefix(e){let t;return typeof e._autoprefixerPrefix!="undefined"?t=e._autoprefixerPrefix:e.type==="decl"&&e.prop[0]==="-"?t=Dy.prefix(e.prop):e.type==="root"?t=!1:e.type==="rule"&&e.selector.includes(":-")&&/:(-\w+-)/.test(e.selector)?t=e.selector.match(/:(-\w+-)/)[1]:e.type==="atrule"&&e.name[0]==="-"?t=Dy.prefix(e.name):t=this.parentPrefix(e.parent),lO.prefixes().includes(t)||(t=!1),e._autoprefixerPrefix=t,e._autoprefixerPrefix}process(e,t){if(!this.check(e))return;let i=this.parentPrefix(e),n=this.prefixes.filter(a=>!i||i===uO.removeNote(a)),s=[];for(let a of n)this.add(e,a,s.concat([a]),t)&&s.push(a);return s}clone(e,t){return Is.clone(e,t)}};qy.exports=Is});var j=x((t$,My)=>{u();var fO=wr(),cO=Mt(),$y=_e(),Ly=class extends fO{check(){return!0}prefixed(e,t){return t+e}normalize(e){return e}otherPrefixes(e,t){for(let i of cO.prefixes())if(i!==t&&e.includes(i))return!0;return!1}set(e,t){return e.prop=this.prefixed(e.prop,t),e}needCascade(e){return e._autoprefixerCascade||(e._autoprefixerCascade=this.all.options.cascade!==!1&&e.raw("before").includes(` +`)),e._autoprefixerCascade}maxPrefixed(e,t){if(t._autoprefixerMax)return t._autoprefixerMax;let i=0;for(let n of e)n=$y.removeNote(n),n.length>i&&(i=n.length);return t._autoprefixerMax=i,t._autoprefixerMax}calcBefore(e,t,i=""){let s=this.maxPrefixed(e,t)-$y.removeNote(i).length,a=t.raw("before");return s>0&&(a+=Array(s).fill(" ").join("")),a}restoreBefore(e){let t=e.raw("before").split(` +`),i=t[t.length-1];this.all.group(e).up(n=>{let s=n.raw("before").split(` +`),a=s[s.length-1];a.lengtha.prop===n.prop&&a.value===n.value)))return this.needCascade(e)&&(n.raws.before=this.calcBefore(i,e,t)),e.parent.insertBefore(e,n)}isAlready(e,t){let i=this.all.group(e).up(n=>n.prop===t);return i||(i=this.all.group(e).down(n=>n.prop===t)),i}add(e,t,i,n){let s=this.prefixed(e.prop,t);if(!(this.isAlready(e,s)||this.otherPrefixes(e.value,t)))return this.insert(e,t,i,n)}process(e,t){if(!this.needCascade(e)){super.process(e,t);return}let i=super.process(e,t);!i||!i.length||(this.restoreBefore(e),e.raws.before=this.calcBefore(i,e))}old(e,t){return[this.prefixed(e,t)]}};My.exports=Ly});var By=x((r$,Ny)=>{u();Ny.exports=function r(e){return{mul:t=>new r(e*t),div:t=>new r(e/t),simplify:()=>new r(e),toString:()=>e.toString()}}});var zy=x((i$,jy)=>{u();var pO=By(),dO=wr(),Zl=_e(),hO=/(min|max)-resolution\s*:\s*\d*\.?\d+(dppx|dpcm|dpi|x)/gi,mO=/(min|max)-resolution(\s*:\s*)(\d*\.?\d+)(dppx|dpcm|dpi|x)/i,Fy=class extends dO{prefixName(e,t){return e==="-moz-"?t+"--moz-device-pixel-ratio":e+t+"-device-pixel-ratio"}prefixQuery(e,t,i,n,s){return n=new pO(n),s==="dpi"?n=n.div(96):s==="dpcm"&&(n=n.mul(2.54).div(96)),n=n.simplify(),e==="-o-"&&(n=n.n+"/"+n.d),this.prefixName(e,t)+i+n}clean(e){if(!this.bad){this.bad=[];for(let t of this.prefixes)this.bad.push(this.prefixName(t,"min")),this.bad.push(this.prefixName(t,"max"))}e.params=Zl.editList(e.params,t=>t.filter(i=>this.bad.every(n=>!i.includes(n))))}process(e){let t=this.parentPrefix(e),i=t?[t]:this.prefixes;e.params=Zl.editList(e.params,(n,s)=>{for(let a of n){if(!a.includes("min-resolution")&&!a.includes("max-resolution")){s.push(a);continue}for(let o of i){let l=a.replace(hO,c=>{let f=c.match(mO);return this.prefixQuery(o,f[1],f[2],f[3],f[4])});s.push(l)}s.push(a)}return Zl.uniq(s)})}};jy.exports=Fy});var Vy=x((n$,Uy)=>{u();var Jl="(".charCodeAt(0),eu=")".charCodeAt(0),Ds="'".charCodeAt(0),tu='"'.charCodeAt(0),ru="\\".charCodeAt(0),vr="/".charCodeAt(0),iu=",".charCodeAt(0),nu=":".charCodeAt(0),qs="*".charCodeAt(0),gO="u".charCodeAt(0),yO="U".charCodeAt(0),bO="+".charCodeAt(0),wO=/^[a-f0-9?-]+$/i;Uy.exports=function(r){for(var e=[],t=r,i,n,s,a,o,l,c,f,d=0,p=t.charCodeAt(d),h=t.length,b=[{nodes:e}],v=0,y,w="",k="",S="";d{u();Hy.exports=function r(e,t,i){var n,s,a,o;for(n=0,s=e.length;n{u();function Gy(r,e){var t=r.type,i=r.value,n,s;return e&&(s=e(r))!==void 0?s:t==="word"||t==="space"?i:t==="string"?(n=r.quote||"",n+i+(r.unclosed?"":n)):t==="comment"?"/*"+i+(r.unclosed?"":"*/"):t==="div"?(r.before||"")+i+(r.after||""):Array.isArray(r.nodes)?(n=Qy(r.nodes,e),t!=="function"?n:i+"("+(r.before||"")+n+(r.after||"")+(r.unclosed?"":")")):i}function Qy(r,e){var t,i;if(Array.isArray(r)){for(t="",i=r.length-1;~i;i-=1)t=Gy(r[i],e)+t;return t}return Gy(r,e)}Yy.exports=Qy});var Zy=x((o$,Xy)=>{u();var $s="-".charCodeAt(0),Ls="+".charCodeAt(0),su=".".charCodeAt(0),vO="e".charCodeAt(0),xO="E".charCodeAt(0);function kO(r){var e=r.charCodeAt(0),t;if(e===Ls||e===$s){if(t=r.charCodeAt(1),t>=48&&t<=57)return!0;var i=r.charCodeAt(2);return t===su&&i>=48&&i<=57}return e===su?(t=r.charCodeAt(1),t>=48&&t<=57):e>=48&&e<=57}Xy.exports=function(r){var e=0,t=r.length,i,n,s;if(t===0||!kO(r))return!1;for(i=r.charCodeAt(e),(i===Ls||i===$s)&&e++;e57));)e+=1;if(i=r.charCodeAt(e),n=r.charCodeAt(e+1),i===su&&n>=48&&n<=57)for(e+=2;e57));)e+=1;if(i=r.charCodeAt(e),n=r.charCodeAt(e+1),s=r.charCodeAt(e+2),(i===vO||i===xO)&&(n>=48&&n<=57||(n===Ls||n===$s)&&s>=48&&s<=57))for(e+=n===Ls||n===$s?3:2;e57));)e+=1;return{number:r.slice(0,e),unit:r.slice(e)}}});var Ms=x((l$,tb)=>{u();var SO=Vy(),Jy=Wy(),eb=Ky();function Nt(r){return this instanceof Nt?(this.nodes=SO(r),this):new Nt(r)}Nt.prototype.toString=function(){return Array.isArray(this.nodes)?eb(this.nodes):""};Nt.prototype.walk=function(r,e){return Jy(this.nodes,r,e),this};Nt.unit=Zy();Nt.walk=Jy;Nt.stringify=eb;tb.exports=Nt});var ab=x((u$,sb)=>{u();var{list:AO}=$e(),rb=Ms(),CO=Mt(),ib=Ni(),nb=class{constructor(e){this.props=["transition","transition-property"],this.prefixes=e}add(e,t){let i,n,s=this.prefixes.add[e.prop],a=this.ruleVendorPrefixes(e),o=a||s&&s.prefixes||[],l=this.parse(e.value),c=l.map(h=>this.findProp(h)),f=[];if(c.some(h=>h[0]==="-"))return;for(let h of l){if(n=this.findProp(h),n[0]==="-")continue;let b=this.prefixes.add[n];if(!(!b||!b.prefixes))for(i of b.prefixes){if(a&&!a.some(y=>i.includes(y)))continue;let v=this.prefixes.prefixed(n,i);v!=="-ms-transform"&&!c.includes(v)&&(this.disabled(n,i)||f.push(this.clone(n,v,h)))}}l=l.concat(f);let d=this.stringify(l),p=this.stringify(this.cleanFromUnprefixed(l,"-webkit-"));if(o.includes("-webkit-")&&this.cloneBefore(e,`-webkit-${e.prop}`,p),this.cloneBefore(e,e.prop,p),o.includes("-o-")){let h=this.stringify(this.cleanFromUnprefixed(l,"-o-"));this.cloneBefore(e,`-o-${e.prop}`,h)}for(i of o)if(i!=="-webkit-"&&i!=="-o-"){let h=this.stringify(this.cleanOtherPrefixes(l,i));this.cloneBefore(e,i+e.prop,h)}d!==e.value&&!this.already(e,e.prop,d)&&(this.checkForWarning(t,e),e.cloneBefore(),e.value=d)}findProp(e){let t=e[0].value;if(/^\d/.test(t)){for(let[i,n]of e.entries())if(i!==0&&n.type==="word")return n.value}return t}already(e,t,i){return e.parent.some(n=>n.prop===t&&n.value===i)}cloneBefore(e,t,i){this.already(e,t,i)||e.cloneBefore({prop:t,value:i})}checkForWarning(e,t){if(t.prop!=="transition-property")return;let i=!1,n=!1;t.parent.each(s=>{if(s.type!=="decl"||s.prop.indexOf("transition-")!==0)return;let a=AO.comma(s.value);if(s.prop==="transition-property"){a.forEach(o=>{let l=this.prefixes.add[o];l&&l.prefixes&&l.prefixes.length>0&&(i=!0)});return}return n=n||a.length>1,!1}),i&&n&&t.warn(e,"Replace transition-property to transition, because Autoprefixer could not support any cases of transition-property and other transition-*")}remove(e){let t=this.parse(e.value);t=t.filter(a=>{let o=this.prefixes.remove[this.findProp(a)];return!o||!o.remove});let i=this.stringify(t);if(e.value===i)return;if(t.length===0){e.remove();return}let n=e.parent.some(a=>a.prop===e.prop&&a.value===i),s=e.parent.some(a=>a!==e&&a.prop===e.prop&&a.value.length>i.length);if(n||s){e.remove();return}e.value=i}parse(e){let t=rb(e),i=[],n=[];for(let s of t.nodes)n.push(s),s.type==="div"&&s.value===","&&(i.push(n),n=[]);return i.push(n),i.filter(s=>s.length>0)}stringify(e){if(e.length===0)return"";let t=[];for(let i of e)i[i.length-1].type!=="div"&&i.push(this.div(e)),t=t.concat(i);return t[0].type==="div"&&(t=t.slice(1)),t[t.length-1].type==="div"&&(t=t.slice(0,-2+1||void 0)),rb.stringify({nodes:t})}clone(e,t,i){let n=[],s=!1;for(let a of i)!s&&a.type==="word"&&a.value===e?(n.push({type:"word",value:t}),s=!0):n.push(a);return n}div(e){for(let t of e)for(let i of t)if(i.type==="div"&&i.value===",")return i;return{type:"div",value:",",after:" "}}cleanOtherPrefixes(e,t){return e.filter(i=>{let n=ib.prefix(this.findProp(i));return n===""||n===t})}cleanFromUnprefixed(e,t){let i=e.map(s=>this.findProp(s)).filter(s=>s.slice(0,t.length)===t).map(s=>this.prefixes.unprefixed(s)),n=[];for(let s of e){let a=this.findProp(s),o=ib.prefix(a);!i.includes(a)&&(o===t||o==="")&&n.push(s)}return n}disabled(e,t){let i=["order","justify-content","align-self","align-content"];if(e.includes("flex")||i.includes(e)){if(this.prefixes.options.flexbox===!1)return!0;if(this.prefixes.options.flexbox==="no-2009")return t.includes("2009")}}ruleVendorPrefixes(e){let{parent:t}=e;if(t.type!=="rule")return!1;if(!t.selector.includes(":-"))return!1;let i=CO.prefixes().filter(n=>t.selector.includes(":"+n));return i.length>0?i:!1}};sb.exports=nb});var xr=x((f$,lb)=>{u();var _O=_e(),ob=class{constructor(e,t,i,n){this.unprefixed=e,this.prefixed=t,this.string=i||t,this.regexp=n||_O.regexp(t)}check(e){return e.includes(this.string)?!!e.match(this.regexp):!1}};lb.exports=ob});var He=x((c$,fb)=>{u();var EO=wr(),OO=xr(),TO=Ni(),RO=_e(),ub=class extends EO{static save(e,t){let i=t.prop,n=[];for(let s in t._autoprefixerValues){let a=t._autoprefixerValues[s];if(a===t.value)continue;let o,l=TO.prefix(i);if(l==="-pie-")continue;if(l===s){o=t.value=a,n.push(o);continue}let c=e.prefixed(i,s),f=t.parent;if(!f.every(b=>b.prop!==c)){n.push(o);continue}let d=a.replace(/\s+/," ");if(f.some(b=>b.prop===t.prop&&b.value.replace(/\s+/," ")===d)){n.push(o);continue}let h=this.clone(t,{value:a});o=t.parent.insertBefore(t,h),n.push(o)}return n}check(e){let t=e.value;return t.includes(this.name)?!!t.match(this.regexp()):!1}regexp(){return this.regexpCache||(this.regexpCache=RO.regexp(this.name))}replace(e,t){return e.replace(this.regexp(),`$1${t}$2`)}value(e){return e.raws.value&&e.raws.value.value===e.value?e.raws.value.raw:e.value}add(e,t){e._autoprefixerValues||(e._autoprefixerValues={});let i=e._autoprefixerValues[t]||this.value(e),n;do if(n=i,i=this.replace(i,t),i===!1)return;while(i!==n);e._autoprefixerValues[t]=i}old(e){return new OO(this.name,e+this.name)}};fb.exports=ub});var Bt=x((p$,cb)=>{u();cb.exports={}});var ou=x((d$,hb)=>{u();var pb=Ms(),PO=He(),IO=Bt().insertAreas,DO=/(^|[^-])linear-gradient\(\s*(top|left|right|bottom)/i,qO=/(^|[^-])radial-gradient\(\s*\d+(\w*|%)\s+\d+(\w*|%)\s*,/i,$O=/(!\s*)?autoprefixer:\s*ignore\s+next/i,LO=/(!\s*)?autoprefixer\s*grid:\s*(on|off|(no-)?autoplace)/i,MO=["width","height","min-width","max-width","min-height","max-height","inline-size","min-inline-size","max-inline-size","block-size","min-block-size","max-block-size"];function au(r){return r.parent.some(e=>e.prop==="grid-template"||e.prop==="grid-template-areas")}function NO(r){let e=r.parent.some(i=>i.prop==="grid-template-rows"),t=r.parent.some(i=>i.prop==="grid-template-columns");return e&&t}var db=class{constructor(e){this.prefixes=e}add(e,t){let i=this.prefixes.add["@resolution"],n=this.prefixes.add["@keyframes"],s=this.prefixes.add["@viewport"],a=this.prefixes.add["@supports"];e.walkAtRules(f=>{if(f.name==="keyframes"){if(!this.disabled(f,t))return n&&n.process(f)}else if(f.name==="viewport"){if(!this.disabled(f,t))return s&&s.process(f)}else if(f.name==="supports"){if(this.prefixes.options.supports!==!1&&!this.disabled(f,t))return a.process(f)}else if(f.name==="media"&&f.params.includes("-resolution")&&!this.disabled(f,t))return i&&i.process(f)}),e.walkRules(f=>{if(!this.disabled(f,t))return this.prefixes.add.selectors.map(d=>d.process(f,t))});function o(f){return f.parent.nodes.some(d=>{if(d.type!=="decl")return!1;let p=d.prop==="display"&&/(inline-)?grid/.test(d.value),h=d.prop.startsWith("grid-template"),b=/^grid-([A-z]+-)?gap/.test(d.prop);return p||h||b})}function l(f){return f.parent.some(d=>d.prop==="display"&&/(inline-)?flex/.test(d.value))}let c=this.gridStatus(e,t)&&this.prefixes.add["grid-area"]&&this.prefixes.add["grid-area"].prefixes;return e.walkDecls(f=>{if(this.disabledDecl(f,t))return;let d=f.parent,p=f.prop,h=f.value;if(p==="grid-row-span"){t.warn("grid-row-span is not part of final Grid Layout. Use grid-row.",{node:f});return}else if(p==="grid-column-span"){t.warn("grid-column-span is not part of final Grid Layout. Use grid-column.",{node:f});return}else if(p==="display"&&h==="box"){t.warn("You should write display: flex by final spec instead of display: box",{node:f});return}else if(p==="text-emphasis-position")(h==="under"||h==="over")&&t.warn("You should use 2 values for text-emphasis-position For example, `under left` instead of just `under`.",{node:f});else if(/^(align|justify|place)-(items|content)$/.test(p)&&l(f))(h==="start"||h==="end")&&t.warn(`${h} value has mixed support, consider using flex-${h} instead`,{node:f});else if(p==="text-decoration-skip"&&h==="ink")t.warn("Replace text-decoration-skip: ink to text-decoration-skip-ink: auto, because spec had been changed",{node:f});else{if(c&&this.gridStatus(f,t))if(f.value==="subgrid"&&t.warn("IE does not support subgrid",{node:f}),/^(align|justify|place)-items$/.test(p)&&o(f)){let v=p.replace("-items","-self");t.warn(`IE does not support ${p} on grid containers. Try using ${v} on child elements instead: ${f.parent.selector} > * { ${v}: ${f.value} }`,{node:f})}else if(/^(align|justify|place)-content$/.test(p)&&o(f))t.warn(`IE does not support ${f.prop} on grid containers`,{node:f});else if(p==="display"&&f.value==="contents"){t.warn("Please do not use display: contents; if you have grid setting enabled",{node:f});return}else if(f.prop==="grid-gap"){let v=this.gridStatus(f,t);v==="autoplace"&&!NO(f)&&!au(f)?t.warn("grid-gap only works if grid-template(-areas) is being used or both rows and columns have been declared and cells have not been manually placed inside the explicit grid",{node:f}):(v===!0||v==="no-autoplace")&&!au(f)&&t.warn("grid-gap only works if grid-template(-areas) is being used",{node:f})}else if(p==="grid-auto-columns"){t.warn("grid-auto-columns is not supported by IE",{node:f});return}else if(p==="grid-auto-rows"){t.warn("grid-auto-rows is not supported by IE",{node:f});return}else if(p==="grid-auto-flow"){let v=d.some(w=>w.prop==="grid-template-rows"),y=d.some(w=>w.prop==="grid-template-columns");au(f)?t.warn("grid-auto-flow is not supported by IE",{node:f}):h.includes("dense")?t.warn("grid-auto-flow: dense is not supported by IE",{node:f}):!v&&!y&&t.warn("grid-auto-flow works only if grid-template-rows and grid-template-columns are present in the same rule",{node:f});return}else if(h.includes("auto-fit")){t.warn("auto-fit value is not supported by IE",{node:f,word:"auto-fit"});return}else if(h.includes("auto-fill")){t.warn("auto-fill value is not supported by IE",{node:f,word:"auto-fill"});return}else p.startsWith("grid-template")&&h.includes("[")&&t.warn("Autoprefixer currently does not support line names. Try using grid-template-areas instead.",{node:f,word:"["});if(h.includes("radial-gradient"))if(qO.test(f.value))t.warn("Gradient has outdated direction syntax. New syntax is like `closest-side at 0 0` instead of `0 0, closest-side`.",{node:f});else{let v=pb(h);for(let y of v.nodes)if(y.type==="function"&&y.value==="radial-gradient")for(let w of y.nodes)w.type==="word"&&(w.value==="cover"?t.warn("Gradient has outdated direction syntax. Replace `cover` to `farthest-corner`.",{node:f}):w.value==="contain"&&t.warn("Gradient has outdated direction syntax. Replace `contain` to `closest-side`.",{node:f}))}h.includes("linear-gradient")&&DO.test(h)&&t.warn("Gradient has outdated direction syntax. New syntax is like `to left` instead of `right`.",{node:f})}MO.includes(f.prop)&&(f.value.includes("-fill-available")||(f.value.includes("fill-available")?t.warn("Replace fill-available to stretch, because spec had been changed",{node:f}):f.value.includes("fill")&&pb(h).nodes.some(y=>y.type==="word"&&y.value==="fill")&&t.warn("Replace fill to stretch, because spec had been changed",{node:f})));let b;if(f.prop==="transition"||f.prop==="transition-property")return this.prefixes.transition.add(f,t);if(f.prop==="align-self"){if(this.displayType(f)!=="grid"&&this.prefixes.options.flexbox!==!1&&(b=this.prefixes.add["align-self"],b&&b.prefixes&&b.process(f)),this.gridStatus(f,t)!==!1&&(b=this.prefixes.add["grid-row-align"],b&&b.prefixes))return b.process(f,t)}else if(f.prop==="justify-self"){if(this.gridStatus(f,t)!==!1&&(b=this.prefixes.add["grid-column-align"],b&&b.prefixes))return b.process(f,t)}else if(f.prop==="place-self"){if(b=this.prefixes.add["place-self"],b&&b.prefixes&&this.gridStatus(f,t)!==!1)return b.process(f,t)}else if(b=this.prefixes.add[f.prop],b&&b.prefixes)return b.process(f,t)}),this.gridStatus(e,t)&&IO(e,this.disabled),e.walkDecls(f=>{if(this.disabledValue(f,t))return;let d=this.prefixes.unprefixed(f.prop),p=this.prefixes.values("add",d);if(Array.isArray(p))for(let h of p)h.process&&h.process(f,t);PO.save(this.prefixes,f)})}remove(e,t){let i=this.prefixes.remove["@resolution"];e.walkAtRules((n,s)=>{this.prefixes.remove[`@${n.name}`]?this.disabled(n,t)||n.parent.removeChild(s):n.name==="media"&&n.params.includes("-resolution")&&i&&i.clean(n)});for(let n of this.prefixes.remove.selectors)e.walkRules((s,a)=>{n.check(s)&&(this.disabled(s,t)||s.parent.removeChild(a))});return e.walkDecls((n,s)=>{if(this.disabled(n,t))return;let a=n.parent,o=this.prefixes.unprefixed(n.prop);if((n.prop==="transition"||n.prop==="transition-property")&&this.prefixes.transition.remove(n),this.prefixes.remove[n.prop]&&this.prefixes.remove[n.prop].remove){let l=this.prefixes.group(n).down(c=>this.prefixes.normalize(c.prop)===o);if(o==="flex-flow"&&(l=!0),n.prop==="-webkit-box-orient"){let c={"flex-direction":!0,"flex-flow":!0};if(!n.parent.some(f=>c[f.prop]))return}if(l&&!this.withHackValue(n)){n.raw("before").includes(` +`)&&this.reduceSpaces(n),a.removeChild(s);return}}for(let l of this.prefixes.values("remove",o)){if(!l.check||!l.check(n.value))continue;if(o=l.unprefixed,this.prefixes.group(n).down(f=>f.value.includes(o))){a.removeChild(s);return}}})}withHackValue(e){return e.prop==="-webkit-background-clip"&&e.value==="text"}disabledValue(e,t){return this.gridStatus(e,t)===!1&&e.type==="decl"&&e.prop==="display"&&e.value.includes("grid")||this.prefixes.options.flexbox===!1&&e.type==="decl"&&e.prop==="display"&&e.value.includes("flex")||e.type==="decl"&&e.prop==="content"?!0:this.disabled(e,t)}disabledDecl(e,t){if(this.gridStatus(e,t)===!1&&e.type==="decl"&&(e.prop.includes("grid")||e.prop==="justify-items"))return!0;if(this.prefixes.options.flexbox===!1&&e.type==="decl"){let i=["order","justify-content","align-items","align-content"];if(e.prop.includes("flex")||i.includes(e.prop))return!0}return this.disabled(e,t)}disabled(e,t){if(!e)return!1;if(e._autoprefixerDisabled!==void 0)return e._autoprefixerDisabled;if(e.parent){let n=e.prev();if(n&&n.type==="comment"&&$O.test(n.text))return e._autoprefixerDisabled=!0,e._autoprefixerSelfDisabled=!0,!0}let i=null;if(e.nodes){let n;e.each(s=>{s.type==="comment"&&/(!\s*)?autoprefixer:\s*(off|on)/i.test(s.text)&&(typeof n!="undefined"?t.warn("Second Autoprefixer control comment was ignored. Autoprefixer applies control comment to whole block, not to next rules.",{node:s}):n=/on/i.test(s.text))}),n!==void 0&&(i=!n)}if(!e.nodes||i===null)if(e.parent){let n=this.disabled(e.parent,t);e.parent._autoprefixerSelfDisabled===!0?i=!1:i=n}else i=!1;return e._autoprefixerDisabled=i,i}reduceSpaces(e){let t=!1;if(this.prefixes.group(e).up(()=>(t=!0,!0)),t)return;let i=e.raw("before").split(` +`),n=i[i.length-1].length,s=!1;this.prefixes.group(e).down(a=>{i=a.raw("before").split(` +`);let o=i.length-1;i[o].length>n&&(s===!1&&(s=i[o].length-n),i[o]=i[o].slice(0,-s),a.raws.before=i.join(` +`))})}displayType(e){for(let t of e.parent.nodes)if(t.prop==="display"){if(t.value.includes("flex"))return"flex";if(t.value.includes("grid"))return"grid"}return!1}gridStatus(e,t){if(!e)return!1;if(e._autoprefixerGridStatus!==void 0)return e._autoprefixerGridStatus;let i=null;if(e.nodes){let n;e.each(s=>{if(s.type==="comment"&&LO.test(s.text)){let a=/:\s*autoplace/i.test(s.text),o=/no-autoplace/i.test(s.text);typeof n!="undefined"?t.warn("Second Autoprefixer grid control comment was ignored. Autoprefixer applies control comments to the whole block, not to the next rules.",{node:s}):a?n="autoplace":o?n=!0:n=/on/i.test(s.text)}}),n!==void 0&&(i=n)}if(e.type==="atrule"&&e.name==="supports"){let n=e.params;n.includes("grid")&&n.includes("auto")&&(i=!1)}if(!e.nodes||i===null)if(e.parent){let n=this.gridStatus(e.parent,t);e.parent._autoprefixerSelfDisabled===!0?i=!1:i=n}else typeof this.prefixes.options.grid!="undefined"?i=this.prefixes.options.grid:typeof m.env.AUTOPREFIXER_GRID!="undefined"?m.env.AUTOPREFIXER_GRID==="autoplace"?i="autoplace":i=!0:i=!1;return e._autoprefixerGridStatus=i,i}};hb.exports=db});var gb=x((h$,mb)=>{u();mb.exports={A:{A:{"2":"K E F G A B JC"},B:{"1":"C L M H N D O P Q R S T U V W X Y Z a b c d e f g h i j n o p q r s t u v w x y z I"},C:{"1":"2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB 0B dB 1B eB fB gB hB iB jB kB lB mB nB oB m pB qB rB sB tB P Q R 2B S T U V W X Y Z a b c d e f g h i j n o p q r s t u v w x y z I uB 3B 4B","2":"0 1 KC zB J K E F G A B C L M H N D O k l LC MC"},D:{"1":"8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB 0B dB 1B eB fB gB hB iB jB kB lB mB nB oB m pB qB rB sB tB P Q R S T U V W X Y Z a b c d e f g h i j n o p q r s t u v w x y z I uB 3B 4B","2":"0 1 2 3 4 5 6 7 J K E F G A B C L M H N D O k l"},E:{"1":"G A B C L M H D RC 6B vB wB 7B SC TC 8B 9B xB AC yB BC CC DC EC FC GC UC","2":"0 J K E F NC 5B OC PC QC"},F:{"1":"1 2 3 4 5 6 7 8 9 H N D O k l AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB m pB qB rB sB tB P Q R 2B S T U V W X Y Z a b c d e f g h i j wB","2":"G B C VC WC XC YC vB HC ZC"},G:{"1":"D fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC 8B 9B xB AC yB BC CC DC EC FC GC","2":"F 5B aC IC bC cC dC eC"},H:{"1":"uC"},I:{"1":"I zC 0C","2":"zB J vC wC xC yC IC"},J:{"2":"E A"},K:{"1":"m","2":"A B C vB HC wB"},L:{"1":"I"},M:{"1":"uB"},N:{"2":"A B"},O:{"1":"xB"},P:{"1":"J k l 1C 2C 3C 4C 5C 6B 6C 7C 8C 9C AD yB BD CD DD"},Q:{"1":"7B"},R:{"1":"ED"},S:{"1":"FD GD"}},B:4,C:"CSS Feature Queries"}});var vb=x((m$,wb)=>{u();function yb(r){return r[r.length-1]}var bb={parse(r){let e=[""],t=[e];for(let i of r){if(i==="("){e=[""],yb(t).push(e),t.push(e);continue}if(i===")"){t.pop(),e=yb(t),e.push("");continue}e[e.length-1]+=i}return t[0]},stringify(r){let e="";for(let t of r){if(typeof t=="object"){e+=`(${bb.stringify(t)})`;continue}e+=t}return e}};wb.exports=bb});var Cb=x((g$,Ab)=>{u();var BO=gb(),{feature:FO}=(Ps(),Rs),{parse:jO}=$e(),zO=Mt(),lu=vb(),UO=He(),VO=_e(),xb=FO(BO),kb=[];for(let r in xb.stats){let e=xb.stats[r];for(let t in e){let i=e[t];/y/.test(i)&&kb.push(r+" "+t)}}var Sb=class{constructor(e,t){this.Prefixes=e,this.all=t}prefixer(){if(this.prefixerCache)return this.prefixerCache;let e=this.all.browsers.selected.filter(i=>kb.includes(i)),t=new zO(this.all.browsers.data,e,this.all.options);return this.prefixerCache=new this.Prefixes(this.all.data,t,this.all.options),this.prefixerCache}parse(e){let t=e.split(":"),i=t[0],n=t[1];return n||(n=""),[i.trim(),n.trim()]}virtual(e){let[t,i]=this.parse(e),n=jO("a{}").first;return n.append({prop:t,value:i,raws:{before:""}}),n}prefixed(e){let t=this.virtual(e);if(this.disabled(t.first))return t.nodes;let i={warn:()=>null},n=this.prefixer().add[t.first.prop];n&&n.process&&n.process(t.first,i);for(let s of t.nodes){for(let a of this.prefixer().values("add",t.first.prop))a.process(s);UO.save(this.all,s)}return t.nodes}isNot(e){return typeof e=="string"&&/not\s*/i.test(e)}isOr(e){return typeof e=="string"&&/\s*or\s*/i.test(e)}isProp(e){return typeof e=="object"&&e.length===1&&typeof e[0]=="string"}isHack(e,t){return!new RegExp(`(\\(|\\s)${VO.escapeRegexp(t)}:`).test(e)}toRemove(e,t){let[i,n]=this.parse(e),s=this.all.unprefixed(i),a=this.all.cleaner();if(a.remove[i]&&a.remove[i].remove&&!this.isHack(t,s))return!0;for(let o of a.values("remove",s))if(o.check(n))return!0;return!1}remove(e,t){let i=0;for(;itypeof t!="object"?t:t.length===1&&typeof t[0]=="object"?this.cleanBrackets(t[0]):this.cleanBrackets(t))}convert(e){let t=[""];for(let i of e)t.push([`${i.prop}: ${i.value}`]),t.push(" or ");return t[t.length-1]="",t}normalize(e){if(typeof e!="object")return e;if(e=e.filter(t=>t!==""),typeof e[0]=="string"){let t=e[0].trim();if(t.includes(":")||t==="selector"||t==="not selector")return[lu.stringify(e)]}return e.map(t=>this.normalize(t))}add(e,t){return e.map(i=>{if(this.isProp(i)){let n=this.prefixed(i[0]);return n.length>1?this.convert(n):i}return typeof i=="object"?this.add(i,t):i})}process(e){let t=lu.parse(e.params);t=this.normalize(t),t=this.remove(t,e.params),t=this.add(t,e.params),t=this.cleanBrackets(t),e.params=lu.stringify(t)}disabled(e){if(!this.all.options.grid&&(e.prop==="display"&&e.value.includes("grid")||e.prop.includes("grid")||e.prop==="justify-items"))return!0;if(this.all.options.flexbox===!1){if(e.prop==="display"&&e.value.includes("flex"))return!0;let t=["order","justify-content","align-items","align-content"];if(e.prop.includes("flex")||t.includes(e.prop))return!0}return!1}};Ab.exports=Sb});var Ob=x((y$,Eb)=>{u();var _b=class{constructor(e,t){this.prefix=t,this.prefixed=e.prefixed(this.prefix),this.regexp=e.regexp(this.prefix),this.prefixeds=e.possible().map(i=>[e.prefixed(i),e.regexp(i)]),this.unprefixed=e.name,this.nameRegexp=e.regexp()}isHack(e){let t=e.parent.index(e)+1,i=e.parent.nodes;for(;t{u();var{list:HO}=$e(),WO=Ob(),GO=wr(),QO=Mt(),YO=_e(),Tb=class extends GO{constructor(e,t,i){super(e,t,i);this.regexpCache=new Map}check(e){return e.selector.includes(this.name)?!!e.selector.match(this.regexp()):!1}prefixed(e){return this.name.replace(/^(\W*)/,`$1${e}`)}regexp(e){if(!this.regexpCache.has(e)){let t=e?this.prefixed(e):this.name;this.regexpCache.set(e,new RegExp(`(^|[^:"'=])${YO.escapeRegexp(t)}`,"gi"))}return this.regexpCache.get(e)}possible(){return QO.prefixes()}prefixeds(e){if(e._autoprefixerPrefixeds){if(e._autoprefixerPrefixeds[this.name])return e._autoprefixerPrefixeds}else e._autoprefixerPrefixeds={};let t={};if(e.selector.includes(",")){let n=HO.comma(e.selector).filter(s=>s.includes(this.name));for(let s of this.possible())t[s]=n.map(a=>this.replace(a,s)).join(", ")}else for(let i of this.possible())t[i]=this.replace(e.selector,i);return e._autoprefixerPrefixeds[this.name]=t,e._autoprefixerPrefixeds}already(e,t,i){let n=e.parent.index(e)-1;for(;n>=0;){let s=e.parent.nodes[n];if(s.type!=="rule")return!1;let a=!1;for(let o in t[this.name]){let l=t[this.name][o];if(s.selector===l){if(i===o)return!0;a=!0;break}}if(!a)return!1;n-=1}return!1}replace(e,t){return e.replace(this.regexp(),`$1${this.prefixed(t)}`)}add(e,t){let i=this.prefixeds(e);if(this.already(e,i,t))return;let n=this.clone(e,{selector:i[this.name][t]});e.parent.insertBefore(e,n)}old(e){return new WO(this,e)}};Rb.exports=Tb});var Db=x((w$,Ib)=>{u();var KO=wr(),Pb=class extends KO{add(e,t){let i=t+e.name;if(e.parent.some(a=>a.name===i&&a.params===e.params))return;let s=this.clone(e,{name:i});return e.parent.insertBefore(e,s)}process(e){let t=this.parentPrefix(e);for(let i of this.prefixes)(!t||t===i)&&this.add(e,i)}};Ib.exports=Pb});var $b=x((v$,qb)=>{u();var XO=kr(),uu=class extends XO{prefixed(e){return e==="-webkit-"?":-webkit-full-screen":e==="-moz-"?":-moz-full-screen":`:${e}fullscreen`}};uu.names=[":fullscreen"];qb.exports=uu});var Mb=x((x$,Lb)=>{u();var ZO=kr(),fu=class extends ZO{possible(){return super.possible().concat(["-moz- old","-ms- old"])}prefixed(e){return e==="-webkit-"?"::-webkit-input-placeholder":e==="-ms-"?"::-ms-input-placeholder":e==="-ms- old"?":-ms-input-placeholder":e==="-moz- old"?":-moz-placeholder":`::${e}placeholder`}};fu.names=["::placeholder"];Lb.exports=fu});var Bb=x((k$,Nb)=>{u();var JO=kr(),cu=class extends JO{prefixed(e){return e==="-ms-"?":-ms-input-placeholder":`:${e}placeholder-shown`}};cu.names=[":placeholder-shown"];Nb.exports=cu});var jb=x((S$,Fb)=>{u();var eT=kr(),tT=_e(),pu=class extends eT{constructor(e,t,i){super(e,t,i);this.prefixes&&(this.prefixes=tT.uniq(this.prefixes.map(n=>"-webkit-")))}prefixed(e){return e==="-webkit-"?"::-webkit-file-upload-button":`::${e}file-selector-button`}};pu.names=["::file-selector-button"];Fb.exports=pu});var Pe=x((A$,zb)=>{u();zb.exports=function(r){let e;return r==="-webkit- 2009"||r==="-moz-"?e=2009:r==="-ms-"?e=2012:r==="-webkit-"&&(e="final"),r==="-webkit- 2009"&&(r="-webkit-"),[e,r]}});var Wb=x((C$,Hb)=>{u();var Ub=$e().list,Vb=Pe(),rT=j(),Sr=class extends rT{prefixed(e,t){let i;return[i,t]=Vb(t),i===2009?t+"box-flex":super.prefixed(e,t)}normalize(){return"flex"}set(e,t){let i=Vb(t)[0];if(i===2009)return e.value=Ub.space(e.value)[0],e.value=Sr.oldValues[e.value]||e.value,super.set(e,t);if(i===2012){let n=Ub.space(e.value);n.length===3&&n[2]==="0"&&(e.value=n.slice(0,2).concat("0px").join(" "))}return super.set(e,t)}};Sr.names=["flex","box-flex"];Sr.oldValues={auto:"1",none:"0"};Hb.exports=Sr});var Yb=x((_$,Qb)=>{u();var Gb=Pe(),iT=j(),du=class extends iT{prefixed(e,t){let i;return[i,t]=Gb(t),i===2009?t+"box-ordinal-group":i===2012?t+"flex-order":super.prefixed(e,t)}normalize(){return"order"}set(e,t){return Gb(t)[0]===2009&&/\d/.test(e.value)?(e.value=(parseInt(e.value)+1).toString(),super.set(e,t)):super.set(e,t)}};du.names=["order","flex-order","box-ordinal-group"];Qb.exports=du});var Xb=x((E$,Kb)=>{u();var nT=j(),hu=class extends nT{check(e){let t=e.value;return!t.toLowerCase().includes("alpha(")&&!t.includes("DXImageTransform.Microsoft")&&!t.includes("data:image/svg+xml")}};hu.names=["filter"];Kb.exports=hu});var Jb=x((O$,Zb)=>{u();var sT=j(),mu=class extends sT{insert(e,t,i,n){if(t!=="-ms-")return super.insert(e,t,i);let s=this.clone(e),a=e.prop.replace(/end$/,"start"),o=t+e.prop.replace(/end$/,"span");if(!e.parent.some(l=>l.prop===o)){if(s.prop=o,e.value.includes("span"))s.value=e.value.replace(/span\s/i,"");else{let l;if(e.parent.walkDecls(a,c=>{l=c}),l){let c=Number(e.value)-Number(l.value)+"";s.value=c}else e.warn(n,`Can not prefix ${e.prop} (${a} is not found)`)}e.cloneBefore(s)}}};mu.names=["grid-row-end","grid-column-end"];Zb.exports=mu});var tw=x((T$,ew)=>{u();var aT=j(),gu=class extends aT{check(e){return!e.value.split(/\s+/).some(t=>{let i=t.toLowerCase();return i==="reverse"||i==="alternate-reverse"})}};gu.names=["animation","animation-direction"];ew.exports=gu});var iw=x((R$,rw)=>{u();var oT=Pe(),lT=j(),yu=class extends lT{insert(e,t,i){let n;if([n,t]=oT(t),n!==2009)return super.insert(e,t,i);let s=e.value.split(/\s+/).filter(d=>d!=="wrap"&&d!=="nowrap"&&"wrap-reverse");if(s.length===0||e.parent.some(d=>d.prop===t+"box-orient"||d.prop===t+"box-direction"))return;let o=s[0],l=o.includes("row")?"horizontal":"vertical",c=o.includes("reverse")?"reverse":"normal",f=this.clone(e);return f.prop=t+"box-orient",f.value=l,this.needCascade(e)&&(f.raws.before=this.calcBefore(i,e,t)),e.parent.insertBefore(e,f),f=this.clone(e),f.prop=t+"box-direction",f.value=c,this.needCascade(e)&&(f.raws.before=this.calcBefore(i,e,t)),e.parent.insertBefore(e,f)}};yu.names=["flex-flow","box-direction","box-orient"];rw.exports=yu});var sw=x((P$,nw)=>{u();var uT=Pe(),fT=j(),bu=class extends fT{normalize(){return"flex"}prefixed(e,t){let i;return[i,t]=uT(t),i===2009?t+"box-flex":i===2012?t+"flex-positive":super.prefixed(e,t)}};bu.names=["flex-grow","flex-positive"];nw.exports=bu});var ow=x((I$,aw)=>{u();var cT=Pe(),pT=j(),wu=class extends pT{set(e,t){if(cT(t)[0]!==2009)return super.set(e,t)}};wu.names=["flex-wrap"];aw.exports=wu});var uw=x((D$,lw)=>{u();var dT=j(),Ar=Bt(),vu=class extends dT{insert(e,t,i,n){if(t!=="-ms-")return super.insert(e,t,i);let s=Ar.parse(e),[a,o]=Ar.translate(s,0,2),[l,c]=Ar.translate(s,1,3);[["grid-row",a],["grid-row-span",o],["grid-column",l],["grid-column-span",c]].forEach(([f,d])=>{Ar.insertDecl(e,f,d)}),Ar.warnTemplateSelectorNotFound(e,n),Ar.warnIfGridRowColumnExists(e,n)}};vu.names=["grid-area"];lw.exports=vu});var cw=x((q$,fw)=>{u();var hT=j(),Bi=Bt(),xu=class extends hT{insert(e,t,i){if(t!=="-ms-")return super.insert(e,t,i);if(e.parent.some(a=>a.prop==="-ms-grid-row-align"))return;let[[n,s]]=Bi.parse(e);s?(Bi.insertDecl(e,"grid-row-align",n),Bi.insertDecl(e,"grid-column-align",s)):(Bi.insertDecl(e,"grid-row-align",n),Bi.insertDecl(e,"grid-column-align",n))}};xu.names=["place-self"];fw.exports=xu});var dw=x(($$,pw)=>{u();var mT=j(),ku=class extends mT{check(e){let t=e.value;return!t.includes("/")||t.includes("span")}normalize(e){return e.replace("-start","")}prefixed(e,t){let i=super.prefixed(e,t);return t==="-ms-"&&(i=i.replace("-start","")),i}};ku.names=["grid-row-start","grid-column-start"];pw.exports=ku});var gw=x((L$,mw)=>{u();var hw=Pe(),gT=j(),Cr=class extends gT{check(e){return e.parent&&!e.parent.some(t=>t.prop&&t.prop.startsWith("grid-"))}prefixed(e,t){let i;return[i,t]=hw(t),i===2012?t+"flex-item-align":super.prefixed(e,t)}normalize(){return"align-self"}set(e,t){let i=hw(t)[0];if(i===2012)return e.value=Cr.oldValues[e.value]||e.value,super.set(e,t);if(i==="final")return super.set(e,t)}};Cr.names=["align-self","flex-item-align"];Cr.oldValues={"flex-end":"end","flex-start":"start"};mw.exports=Cr});var bw=x((M$,yw)=>{u();var yT=j(),bT=_e(),Su=class extends yT{constructor(e,t,i){super(e,t,i);this.prefixes&&(this.prefixes=bT.uniq(this.prefixes.map(n=>n==="-ms-"?"-webkit-":n)))}};Su.names=["appearance"];yw.exports=Su});var xw=x((N$,vw)=>{u();var ww=Pe(),wT=j(),Au=class extends wT{normalize(){return"flex-basis"}prefixed(e,t){let i;return[i,t]=ww(t),i===2012?t+"flex-preferred-size":super.prefixed(e,t)}set(e,t){let i;if([i,t]=ww(t),i===2012||i==="final")return super.set(e,t)}};Au.names=["flex-basis","flex-preferred-size"];vw.exports=Au});var Sw=x((B$,kw)=>{u();var vT=j(),Cu=class extends vT{normalize(){return this.name.replace("box-image","border")}prefixed(e,t){let i=super.prefixed(e,t);return t==="-webkit-"&&(i=i.replace("border","box-image")),i}};Cu.names=["mask-border","mask-border-source","mask-border-slice","mask-border-width","mask-border-outset","mask-border-repeat","mask-box-image","mask-box-image-source","mask-box-image-slice","mask-box-image-width","mask-box-image-outset","mask-box-image-repeat"];kw.exports=Cu});var Cw=x((F$,Aw)=>{u();var xT=j(),lt=class extends xT{insert(e,t,i){let n=e.prop==="mask-composite",s;n?s=e.value.split(","):s=e.value.match(lt.regexp)||[],s=s.map(c=>c.trim()).filter(c=>c);let a=s.length,o;if(a&&(o=this.clone(e),o.value=s.map(c=>lt.oldValues[c]||c).join(", "),s.includes("intersect")&&(o.value+=", xor"),o.prop=t+"mask-composite"),n)return a?(this.needCascade(e)&&(o.raws.before=this.calcBefore(i,e,t)),e.parent.insertBefore(e,o)):void 0;let l=this.clone(e);return l.prop=t+l.prop,a&&(l.value=l.value.replace(lt.regexp,"")),this.needCascade(e)&&(l.raws.before=this.calcBefore(i,e,t)),e.parent.insertBefore(e,l),a?(this.needCascade(e)&&(o.raws.before=this.calcBefore(i,e,t)),e.parent.insertBefore(e,o)):e}};lt.names=["mask","mask-composite"];lt.oldValues={add:"source-over",subtract:"source-out",intersect:"source-in",exclude:"xor"};lt.regexp=new RegExp(`\\s+(${Object.keys(lt.oldValues).join("|")})\\b(?!\\))\\s*(?=[,])`,"ig");Aw.exports=lt});var Ow=x((j$,Ew)=>{u();var _w=Pe(),kT=j(),_r=class extends kT{prefixed(e,t){let i;return[i,t]=_w(t),i===2009?t+"box-align":i===2012?t+"flex-align":super.prefixed(e,t)}normalize(){return"align-items"}set(e,t){let i=_w(t)[0];return(i===2009||i===2012)&&(e.value=_r.oldValues[e.value]||e.value),super.set(e,t)}};_r.names=["align-items","flex-align","box-align"];_r.oldValues={"flex-end":"end","flex-start":"start"};Ew.exports=_r});var Rw=x((z$,Tw)=>{u();var ST=j(),_u=class extends ST{set(e,t){return t==="-ms-"&&e.value==="contain"&&(e.value="element"),super.set(e,t)}insert(e,t,i){if(!(e.value==="all"&&t==="-ms-"))return super.insert(e,t,i)}};_u.names=["user-select"];Tw.exports=_u});var Dw=x((U$,Iw)=>{u();var Pw=Pe(),AT=j(),Eu=class extends AT{normalize(){return"flex-shrink"}prefixed(e,t){let i;return[i,t]=Pw(t),i===2012?t+"flex-negative":super.prefixed(e,t)}set(e,t){let i;if([i,t]=Pw(t),i===2012||i==="final")return super.set(e,t)}};Eu.names=["flex-shrink","flex-negative"];Iw.exports=Eu});var $w=x((V$,qw)=>{u();var CT=j(),Ou=class extends CT{prefixed(e,t){return`${t}column-${e}`}normalize(e){return e.includes("inside")?"break-inside":e.includes("before")?"break-before":"break-after"}set(e,t){return(e.prop==="break-inside"&&e.value==="avoid-column"||e.value==="avoid-page")&&(e.value="avoid"),super.set(e,t)}insert(e,t,i){if(e.prop!=="break-inside")return super.insert(e,t,i);if(!(/region/i.test(e.value)||/page/i.test(e.value)))return super.insert(e,t,i)}};Ou.names=["break-inside","page-break-inside","column-break-inside","break-before","page-break-before","column-break-before","break-after","page-break-after","column-break-after"];qw.exports=Ou});var Mw=x((H$,Lw)=>{u();var _T=j(),Tu=class extends _T{prefixed(e,t){return t+"print-color-adjust"}normalize(){return"color-adjust"}};Tu.names=["color-adjust","print-color-adjust"];Lw.exports=Tu});var Bw=x((W$,Nw)=>{u();var ET=j(),Er=class extends ET{insert(e,t,i){if(t==="-ms-"){let n=this.set(this.clone(e),t);this.needCascade(e)&&(n.raws.before=this.calcBefore(i,e,t));let s="ltr";return e.parent.nodes.forEach(a=>{a.prop==="direction"&&(a.value==="rtl"||a.value==="ltr")&&(s=a.value)}),n.value=Er.msValues[s][e.value]||e.value,e.parent.insertBefore(e,n)}return super.insert(e,t,i)}};Er.names=["writing-mode"];Er.msValues={ltr:{"horizontal-tb":"lr-tb","vertical-rl":"tb-rl","vertical-lr":"tb-lr"},rtl:{"horizontal-tb":"rl-tb","vertical-rl":"bt-rl","vertical-lr":"bt-lr"}};Nw.exports=Er});var jw=x((G$,Fw)=>{u();var OT=j(),Ru=class extends OT{set(e,t){return e.value=e.value.replace(/\s+fill(\s)/,"$1"),super.set(e,t)}};Ru.names=["border-image"];Fw.exports=Ru});var Vw=x((Q$,Uw)=>{u();var zw=Pe(),TT=j(),Or=class extends TT{prefixed(e,t){let i;return[i,t]=zw(t),i===2012?t+"flex-line-pack":super.prefixed(e,t)}normalize(){return"align-content"}set(e,t){let i=zw(t)[0];if(i===2012)return e.value=Or.oldValues[e.value]||e.value,super.set(e,t);if(i==="final")return super.set(e,t)}};Or.names=["align-content","flex-line-pack"];Or.oldValues={"flex-end":"end","flex-start":"start","space-between":"justify","space-around":"distribute"};Uw.exports=Or});var Ww=x((Y$,Hw)=>{u();var RT=j(),We=class extends RT{prefixed(e,t){return t==="-moz-"?t+(We.toMozilla[e]||e):super.prefixed(e,t)}normalize(e){return We.toNormal[e]||e}};We.names=["border-radius"];We.toMozilla={};We.toNormal={};for(let r of["top","bottom"])for(let e of["left","right"]){let t=`border-${r}-${e}-radius`,i=`border-radius-${r}${e}`;We.names.push(t),We.names.push(i),We.toMozilla[t]=i,We.toNormal[i]=t}Hw.exports=We});var Qw=x((K$,Gw)=>{u();var PT=j(),Pu=class extends PT{prefixed(e,t){return e.includes("-start")?t+e.replace("-block-start","-before"):t+e.replace("-block-end","-after")}normalize(e){return e.includes("-before")?e.replace("-before","-block-start"):e.replace("-after","-block-end")}};Pu.names=["border-block-start","border-block-end","margin-block-start","margin-block-end","padding-block-start","padding-block-end","border-before","border-after","margin-before","margin-after","padding-before","padding-after"];Gw.exports=Pu});var Kw=x((X$,Yw)=>{u();var IT=j(),{parseTemplate:DT,warnMissedAreas:qT,getGridGap:$T,warnGridGap:LT,inheritGridGap:MT}=Bt(),Iu=class extends IT{insert(e,t,i,n){if(t!=="-ms-")return super.insert(e,t,i);if(e.parent.some(h=>h.prop==="-ms-grid-rows"))return;let s=$T(e),a=MT(e,s),{rows:o,columns:l,areas:c}=DT({decl:e,gap:a||s}),f=Object.keys(c).length>0,d=Boolean(o),p=Boolean(l);return LT({gap:s,hasColumns:p,decl:e,result:n}),qT(c,e,n),(d&&p||f)&&e.cloneBefore({prop:"-ms-grid-rows",value:o,raws:{}}),p&&e.cloneBefore({prop:"-ms-grid-columns",value:l,raws:{}}),e}};Iu.names=["grid-template"];Yw.exports=Iu});var Zw=x((Z$,Xw)=>{u();var NT=j(),Du=class extends NT{prefixed(e,t){return t+e.replace("-inline","")}normalize(e){return e.replace(/(margin|padding|border)-(start|end)/,"$1-inline-$2")}};Du.names=["border-inline-start","border-inline-end","margin-inline-start","margin-inline-end","padding-inline-start","padding-inline-end","border-start","border-end","margin-start","margin-end","padding-start","padding-end"];Xw.exports=Du});var e0=x((J$,Jw)=>{u();var BT=j(),qu=class extends BT{check(e){return!e.value.includes("flex-")&&e.value!=="baseline"}prefixed(e,t){return t+"grid-row-align"}normalize(){return"align-self"}};qu.names=["grid-row-align"];Jw.exports=qu});var r0=x((eL,t0)=>{u();var FT=j(),Tr=class extends FT{keyframeParents(e){let{parent:t}=e;for(;t;){if(t.type==="atrule"&&t.name==="keyframes")return!0;({parent:t}=t)}return!1}contain3d(e){if(e.prop==="transform-origin")return!1;for(let t of Tr.functions3d)if(e.value.includes(`${t}(`))return!0;return!1}set(e,t){return e=super.set(e,t),t==="-ms-"&&(e.value=e.value.replace(/rotatez/gi,"rotate")),e}insert(e,t,i){if(t==="-ms-"){if(!this.contain3d(e)&&!this.keyframeParents(e))return super.insert(e,t,i)}else if(t==="-o-"){if(!this.contain3d(e))return super.insert(e,t,i)}else return super.insert(e,t,i)}};Tr.names=["transform","transform-origin"];Tr.functions3d=["matrix3d","translate3d","translateZ","scale3d","scaleZ","rotate3d","rotateX","rotateY","perspective"];t0.exports=Tr});var s0=x((tL,n0)=>{u();var i0=Pe(),jT=j(),$u=class extends jT{normalize(){return"flex-direction"}insert(e,t,i){let n;if([n,t]=i0(t),n!==2009)return super.insert(e,t,i);if(e.parent.some(f=>f.prop===t+"box-orient"||f.prop===t+"box-direction"))return;let a=e.value,o,l;a==="inherit"||a==="initial"||a==="unset"?(o=a,l=a):(o=a.includes("row")?"horizontal":"vertical",l=a.includes("reverse")?"reverse":"normal");let c=this.clone(e);return c.prop=t+"box-orient",c.value=o,this.needCascade(e)&&(c.raws.before=this.calcBefore(i,e,t)),e.parent.insertBefore(e,c),c=this.clone(e),c.prop=t+"box-direction",c.value=l,this.needCascade(e)&&(c.raws.before=this.calcBefore(i,e,t)),e.parent.insertBefore(e,c)}old(e,t){let i;return[i,t]=i0(t),i===2009?[t+"box-orient",t+"box-direction"]:super.old(e,t)}};$u.names=["flex-direction","box-direction","box-orient"];n0.exports=$u});var o0=x((rL,a0)=>{u();var zT=j(),Lu=class extends zT{check(e){return e.value==="pixelated"}prefixed(e,t){return t==="-ms-"?"-ms-interpolation-mode":super.prefixed(e,t)}set(e,t){return t!=="-ms-"?super.set(e,t):(e.prop="-ms-interpolation-mode",e.value="nearest-neighbor",e)}normalize(){return"image-rendering"}process(e,t){return super.process(e,t)}};Lu.names=["image-rendering","interpolation-mode"];a0.exports=Lu});var u0=x((iL,l0)=>{u();var UT=j(),VT=_e(),Mu=class extends UT{constructor(e,t,i){super(e,t,i);this.prefixes&&(this.prefixes=VT.uniq(this.prefixes.map(n=>n==="-ms-"?"-webkit-":n)))}};Mu.names=["backdrop-filter"];l0.exports=Mu});var c0=x((nL,f0)=>{u();var HT=j(),WT=_e(),Nu=class extends HT{constructor(e,t,i){super(e,t,i);this.prefixes&&(this.prefixes=WT.uniq(this.prefixes.map(n=>n==="-ms-"?"-webkit-":n)))}check(e){return e.value.toLowerCase()==="text"}};Nu.names=["background-clip"];f0.exports=Nu});var d0=x((sL,p0)=>{u();var GT=j(),QT=["none","underline","overline","line-through","blink","inherit","initial","unset"],Bu=class extends GT{check(e){return e.value.split(/\s+/).some(t=>!QT.includes(t))}};Bu.names=["text-decoration"];p0.exports=Bu});var g0=x((aL,m0)=>{u();var h0=Pe(),YT=j(),Rr=class extends YT{prefixed(e,t){let i;return[i,t]=h0(t),i===2009?t+"box-pack":i===2012?t+"flex-pack":super.prefixed(e,t)}normalize(){return"justify-content"}set(e,t){let i=h0(t)[0];if(i===2009||i===2012){let n=Rr.oldValues[e.value]||e.value;if(e.value=n,i!==2009||n!=="distribute")return super.set(e,t)}else if(i==="final")return super.set(e,t)}};Rr.names=["justify-content","flex-pack","box-pack"];Rr.oldValues={"flex-end":"end","flex-start":"start","space-between":"justify","space-around":"distribute"};m0.exports=Rr});var b0=x((oL,y0)=>{u();var KT=j(),Fu=class extends KT{set(e,t){let i=e.value.toLowerCase();return t==="-webkit-"&&!i.includes(" ")&&i!=="contain"&&i!=="cover"&&(e.value=e.value+" "+e.value),super.set(e,t)}};Fu.names=["background-size"];y0.exports=Fu});var v0=x((lL,w0)=>{u();var XT=j(),ju=Bt(),zu=class extends XT{insert(e,t,i){if(t!=="-ms-")return super.insert(e,t,i);let n=ju.parse(e),[s,a]=ju.translate(n,0,1);n[0]&&n[0].includes("span")&&(a=n[0].join("").replace(/\D/g,"")),[[e.prop,s],[`${e.prop}-span`,a]].forEach(([l,c])=>{ju.insertDecl(e,l,c)})}};zu.names=["grid-row","grid-column"];w0.exports=zu});var S0=x((uL,k0)=>{u();var ZT=j(),{prefixTrackProp:x0,prefixTrackValue:JT,autoplaceGridItems:eR,getGridGap:tR,inheritGridGap:rR}=Bt(),iR=ou(),Uu=class extends ZT{prefixed(e,t){return t==="-ms-"?x0({prop:e,prefix:t}):super.prefixed(e,t)}normalize(e){return e.replace(/^grid-(rows|columns)/,"grid-template-$1")}insert(e,t,i,n){if(t!=="-ms-")return super.insert(e,t,i);let{parent:s,prop:a,value:o}=e,l=a.includes("rows"),c=a.includes("columns"),f=s.some(k=>k.prop==="grid-template"||k.prop==="grid-template-areas");if(f&&l)return!1;let d=new iR({options:{}}),p=d.gridStatus(s,n),h=tR(e);h=rR(e,h)||h;let b=l?h.row:h.column;(p==="no-autoplace"||p===!0)&&!f&&(b=null);let v=JT({value:o,gap:b});e.cloneBefore({prop:x0({prop:a,prefix:t}),value:v});let y=s.nodes.find(k=>k.prop==="grid-auto-flow"),w="row";if(y&&!d.disabled(y,n)&&(w=y.value.trim()),p==="autoplace"){let k=s.nodes.find(E=>E.prop==="grid-template-rows");if(!k&&f)return;if(!k&&!f){e.warn(n,"Autoplacement does not work without grid-template-rows property");return}!s.nodes.find(E=>E.prop==="grid-template-columns")&&!f&&e.warn(n,"Autoplacement does not work without grid-template-columns property"),c&&!f&&eR(e,n,h,w)}}};Uu.names=["grid-template-rows","grid-template-columns","grid-rows","grid-columns"];k0.exports=Uu});var C0=x((fL,A0)=>{u();var nR=j(),Vu=class extends nR{check(e){return!e.value.includes("flex-")&&e.value!=="baseline"}prefixed(e,t){return t+"grid-column-align"}normalize(){return"justify-self"}};Vu.names=["grid-column-align"];A0.exports=Vu});var E0=x((cL,_0)=>{u();var sR=j(),Hu=class extends sR{prefixed(e,t){return t+"scroll-chaining"}normalize(){return"overscroll-behavior"}set(e,t){return e.value==="auto"?e.value="chained":(e.value==="none"||e.value==="contain")&&(e.value="none"),super.set(e,t)}};Hu.names=["overscroll-behavior","scroll-chaining"];_0.exports=Hu});var R0=x((pL,T0)=>{u();var aR=j(),{parseGridAreas:oR,warnMissedAreas:lR,prefixTrackProp:uR,prefixTrackValue:O0,getGridGap:fR,warnGridGap:cR,inheritGridGap:pR}=Bt();function dR(r){return r.trim().slice(1,-1).split(/["']\s*["']?/g)}var Wu=class extends aR{insert(e,t,i,n){if(t!=="-ms-")return super.insert(e,t,i);let s=!1,a=!1,o=e.parent,l=fR(e);l=pR(e,l)||l,o.walkDecls(/-ms-grid-rows/,d=>d.remove()),o.walkDecls(/grid-template-(rows|columns)/,d=>{if(d.prop==="grid-template-rows"){a=!0;let{prop:p,value:h}=d;d.cloneBefore({prop:uR({prop:p,prefix:t}),value:O0({value:h,gap:l.row})})}else s=!0});let c=dR(e.value);s&&!a&&l.row&&c.length>1&&e.cloneBefore({prop:"-ms-grid-rows",value:O0({value:`repeat(${c.length}, auto)`,gap:l.row}),raws:{}}),cR({gap:l,hasColumns:s,decl:e,result:n});let f=oR({rows:c,gap:l});return lR(f,e,n),e}};Wu.names=["grid-template-areas"];T0.exports=Wu});var I0=x((dL,P0)=>{u();var hR=j(),Gu=class extends hR{set(e,t){return t==="-webkit-"&&(e.value=e.value.replace(/\s*(right|left)\s*/i,"")),super.set(e,t)}};Gu.names=["text-emphasis-position"];P0.exports=Gu});var q0=x((hL,D0)=>{u();var mR=j(),Qu=class extends mR{set(e,t){return e.prop==="text-decoration-skip-ink"&&e.value==="auto"?(e.prop=t+"text-decoration-skip",e.value="ink",e):super.set(e,t)}};Qu.names=["text-decoration-skip-ink","text-decoration-skip"];D0.exports=Qu});var F0=x((mL,B0)=>{u();"use strict";B0.exports={wrap:$0,limit:L0,validate:M0,test:Yu,curry:gR,name:N0};function $0(r,e,t){var i=e-r;return((t-r)%i+i)%i+r}function L0(r,e,t){return Math.max(r,Math.min(e,t))}function M0(r,e,t,i,n){if(!Yu(r,e,t,i,n))throw new Error(t+" is outside of range ["+r+","+e+")");return t}function Yu(r,e,t,i,n){return!(te||n&&t===e||i&&t===r)}function N0(r,e,t,i){return(t?"(":"[")+r+","+e+(i?")":"]")}function gR(r,e,t,i){var n=N0.bind(null,r,e,t,i);return{wrap:$0.bind(null,r,e),limit:L0.bind(null,r,e),validate:function(s){return M0(r,e,s,t,i)},test:function(s){return Yu(r,e,s,t,i)},toString:n,name:n}}});var U0=x((gL,z0)=>{u();var Ku=Ms(),yR=F0(),bR=xr(),wR=He(),vR=_e(),j0=/top|left|right|bottom/gi,wt=class extends wR{replace(e,t){let i=Ku(e);for(let n of i.nodes)if(n.type==="function"&&n.value===this.name)if(n.nodes=this.newDirection(n.nodes),n.nodes=this.normalize(n.nodes),t==="-webkit- old"){if(!this.oldWebkit(n))return!1}else n.nodes=this.convertDirection(n.nodes),n.value=t+n.value;return i.toString()}replaceFirst(e,...t){return t.map(n=>n===" "?{type:"space",value:n}:{type:"word",value:n}).concat(e.slice(1))}normalizeUnit(e,t){return`${parseFloat(e)/t*360}deg`}normalize(e){if(!e[0])return e;if(/-?\d+(.\d+)?grad/.test(e[0].value))e[0].value=this.normalizeUnit(e[0].value,400);else if(/-?\d+(.\d+)?rad/.test(e[0].value))e[0].value=this.normalizeUnit(e[0].value,2*Math.PI);else if(/-?\d+(.\d+)?turn/.test(e[0].value))e[0].value=this.normalizeUnit(e[0].value,1);else if(e[0].value.includes("deg")){let t=parseFloat(e[0].value);t=yR.wrap(0,360,t),e[0].value=`${t}deg`}return e[0].value==="0deg"?e=this.replaceFirst(e,"to"," ","top"):e[0].value==="90deg"?e=this.replaceFirst(e,"to"," ","right"):e[0].value==="180deg"?e=this.replaceFirst(e,"to"," ","bottom"):e[0].value==="270deg"&&(e=this.replaceFirst(e,"to"," ","left")),e}newDirection(e){if(e[0].value==="to"||(j0.lastIndex=0,!j0.test(e[0].value)))return e;e.unshift({type:"word",value:"to"},{type:"space",value:" "});for(let t=2;t0&&(e[0].value==="to"?this.fixDirection(e):e[0].value.includes("deg")?this.fixAngle(e):this.isRadial(e)&&this.fixRadial(e)),e}fixDirection(e){e.splice(0,2);for(let t of e){if(t.type==="div")break;t.type==="word"&&(t.value=this.revertDirection(t.value))}}fixAngle(e){let t=e[0].value;t=parseFloat(t),t=Math.abs(450-t)%360,t=this.roundFloat(t,3),e[0].value=`${t}deg`}fixRadial(e){let t=[],i=[],n,s,a,o,l;for(o=0;o{u();var xR=xr(),kR=He();function V0(r){return new RegExp(`(^|[\\s,(])(${r}($|[\\s),]))`,"gi")}var Xu=class extends kR{regexp(){return this.regexpCache||(this.regexpCache=V0(this.name)),this.regexpCache}isStretch(){return this.name==="stretch"||this.name==="fill"||this.name==="fill-available"}replace(e,t){return t==="-moz-"&&this.isStretch()?e.replace(this.regexp(),"$1-moz-available$3"):t==="-webkit-"&&this.isStretch()?e.replace(this.regexp(),"$1-webkit-fill-available$3"):super.replace(e,t)}old(e){let t=e+this.name;return this.isStretch()&&(e==="-moz-"?t="-moz-available":e==="-webkit-"&&(t="-webkit-fill-available")),new xR(this.name,t,t,V0(t))}add(e,t){if(!(e.prop.includes("grid")&&t!=="-webkit-"))return super.add(e,t)}};Xu.names=["max-content","min-content","fit-content","fill","fill-available","stretch"];H0.exports=Xu});var Y0=x((bL,Q0)=>{u();var G0=xr(),SR=He(),Zu=class extends SR{replace(e,t){return t==="-webkit-"?e.replace(this.regexp(),"$1-webkit-optimize-contrast"):t==="-moz-"?e.replace(this.regexp(),"$1-moz-crisp-edges"):super.replace(e,t)}old(e){return e==="-webkit-"?new G0(this.name,"-webkit-optimize-contrast"):e==="-moz-"?new G0(this.name,"-moz-crisp-edges"):super.old(e)}};Zu.names=["pixelated"];Q0.exports=Zu});var X0=x((wL,K0)=>{u();var AR=He(),Ju=class extends AR{replace(e,t){let i=super.replace(e,t);return t==="-webkit-"&&(i=i.replace(/("[^"]+"|'[^']+')(\s+\d+\w)/gi,"url($1)$2")),i}};Ju.names=["image-set"];K0.exports=Ju});var J0=x((vL,Z0)=>{u();var CR=$e().list,_R=He(),ef=class extends _R{replace(e,t){return CR.space(e).map(i=>{if(i.slice(0,+this.name.length+1)!==this.name+"(")return i;let n=i.lastIndexOf(")"),s=i.slice(n+1),a=i.slice(this.name.length+1,n);if(t==="-webkit-"){let o=a.match(/\d*.?\d+%?/);o?(a=a.slice(o[0].length).trim(),a+=`, ${o[0]}`):a+=", 0.5"}return t+this.name+"("+a+")"+s}).join(" ")}};ef.names=["cross-fade"];Z0.exports=ef});var tv=x((xL,ev)=>{u();var ER=Pe(),OR=xr(),TR=He(),tf=class extends TR{constructor(e,t){super(e,t);e==="display-flex"&&(this.name="flex")}check(e){return e.prop==="display"&&e.value===this.name}prefixed(e){let t,i;return[t,e]=ER(e),t===2009?this.name==="flex"?i="box":i="inline-box":t===2012?this.name==="flex"?i="flexbox":i="inline-flexbox":t==="final"&&(i=this.name),e+i}replace(e,t){return this.prefixed(t)}old(e){let t=this.prefixed(e);if(!!t)return new OR(this.name,t)}};tf.names=["display-flex","inline-flex"];ev.exports=tf});var iv=x((kL,rv)=>{u();var RR=He(),rf=class extends RR{constructor(e,t){super(e,t);e==="display-grid"&&(this.name="grid")}check(e){return e.prop==="display"&&e.value===this.name}};rf.names=["display-grid","inline-grid"];rv.exports=rf});var sv=x((SL,nv)=>{u();var PR=He(),nf=class extends PR{constructor(e,t){super(e,t);e==="filter-function"&&(this.name="filter")}};nf.names=["filter","filter-function"];nv.exports=nf});var uv=x((AL,lv)=>{u();var av=Ni(),z=j(),ov=zy(),IR=ab(),DR=ou(),qR=Cb(),sf=Mt(),Pr=kr(),$R=Db(),ut=He(),Ir=_e(),LR=$b(),MR=Mb(),NR=Bb(),BR=jb(),FR=Wb(),jR=Yb(),zR=Xb(),UR=Jb(),VR=tw(),HR=iw(),WR=sw(),GR=ow(),QR=uw(),YR=cw(),KR=dw(),XR=gw(),ZR=bw(),JR=xw(),e5=Sw(),t5=Cw(),r5=Ow(),i5=Rw(),n5=Dw(),s5=$w(),a5=Mw(),o5=Bw(),l5=jw(),u5=Vw(),f5=Ww(),c5=Qw(),p5=Kw(),d5=Zw(),h5=e0(),m5=r0(),g5=s0(),y5=o0(),b5=u0(),w5=c0(),v5=d0(),x5=g0(),k5=b0(),S5=v0(),A5=S0(),C5=C0(),_5=E0(),E5=R0(),O5=I0(),T5=q0(),R5=U0(),P5=W0(),I5=Y0(),D5=X0(),q5=J0(),$5=tv(),L5=iv(),M5=sv();Pr.hack(LR);Pr.hack(MR);Pr.hack(NR);Pr.hack(BR);z.hack(FR);z.hack(jR);z.hack(zR);z.hack(UR);z.hack(VR);z.hack(HR);z.hack(WR);z.hack(GR);z.hack(QR);z.hack(YR);z.hack(KR);z.hack(XR);z.hack(ZR);z.hack(JR);z.hack(e5);z.hack(t5);z.hack(r5);z.hack(i5);z.hack(n5);z.hack(s5);z.hack(a5);z.hack(o5);z.hack(l5);z.hack(u5);z.hack(f5);z.hack(c5);z.hack(p5);z.hack(d5);z.hack(h5);z.hack(m5);z.hack(g5);z.hack(y5);z.hack(b5);z.hack(w5);z.hack(v5);z.hack(x5);z.hack(k5);z.hack(S5);z.hack(A5);z.hack(C5);z.hack(_5);z.hack(E5);z.hack(O5);z.hack(T5);ut.hack(R5);ut.hack(P5);ut.hack(I5);ut.hack(D5);ut.hack(q5);ut.hack($5);ut.hack(L5);ut.hack(M5);var af=new Map,Fi=class{constructor(e,t,i={}){this.data=e,this.browsers=t,this.options=i,[this.add,this.remove]=this.preprocess(this.select(this.data)),this.transition=new IR(this),this.processor=new DR(this)}cleaner(){if(this.cleanerCache)return this.cleanerCache;if(this.browsers.selected.length){let e=new sf(this.browsers.data,[]);this.cleanerCache=new Fi(this.data,e,this.options)}else return this;return this.cleanerCache}select(e){let t={add:{},remove:{}};for(let i in e){let n=e[i],s=n.browsers.map(l=>{let c=l.split(" ");return{browser:`${c[0]} ${c[1]}`,note:c[2]}}),a=s.filter(l=>l.note).map(l=>`${this.browsers.prefix(l.browser)} ${l.note}`);a=Ir.uniq(a),s=s.filter(l=>this.browsers.isSelected(l.browser)).map(l=>{let c=this.browsers.prefix(l.browser);return l.note?`${c} ${l.note}`:c}),s=this.sort(Ir.uniq(s)),this.options.flexbox==="no-2009"&&(s=s.filter(l=>!l.includes("2009")));let o=n.browsers.map(l=>this.browsers.prefix(l));n.mistakes&&(o=o.concat(n.mistakes)),o=o.concat(a),o=Ir.uniq(o),s.length?(t.add[i]=s,s.length!s.includes(l)))):t.remove[i]=o}return t}sort(e){return e.sort((t,i)=>{let n=Ir.removeNote(t).length,s=Ir.removeNote(i).length;return n===s?i.length-t.length:s-n})}preprocess(e){let t={selectors:[],"@supports":new qR(Fi,this)};for(let n in e.add){let s=e.add[n];if(n==="@keyframes"||n==="@viewport")t[n]=new $R(n,s,this);else if(n==="@resolution")t[n]=new ov(n,s,this);else if(this.data[n].selector)t.selectors.push(Pr.load(n,s,this));else{let a=this.data[n].props;if(a){let o=ut.load(n,s,this);for(let l of a)t[l]||(t[l]={values:[]}),t[l].values.push(o)}else{let o=t[n]&&t[n].values||[];t[n]=z.load(n,s,this),t[n].values=o}}}let i={selectors:[]};for(let n in e.remove){let s=e.remove[n];if(this.data[n].selector){let a=Pr.load(n,s);for(let o of s)i.selectors.push(a.old(o))}else if(n==="@keyframes"||n==="@viewport")for(let a of s){let o=`@${a}${n.slice(1)}`;i[o]={remove:!0}}else if(n==="@resolution")i[n]=new ov(n,s,this);else{let a=this.data[n].props;if(a){let o=ut.load(n,[],this);for(let l of s){let c=o.old(l);if(c)for(let f of a)i[f]||(i[f]={}),i[f].values||(i[f].values=[]),i[f].values.push(c)}}else for(let o of s){let l=this.decl(n).old(n,o);if(n==="align-self"){let c=t[n]&&t[n].prefixes;if(c){if(o==="-webkit- 2009"&&c.includes("-webkit-"))continue;if(o==="-webkit-"&&c.includes("-webkit- 2009"))continue}}for(let c of l)i[c]||(i[c]={}),i[c].remove=!0}}}return[t,i]}decl(e){return af.has(e)||af.set(e,z.load(e)),af.get(e)}unprefixed(e){let t=this.normalize(av.unprefixed(e));return t==="flex-direction"&&(t="flex-flow"),t}normalize(e){return this.decl(e).normalize(e)}prefixed(e,t){return e=av.unprefixed(e),this.decl(e).prefixed(e,t)}values(e,t){let i=this[e],n=i["*"]&&i["*"].values,s=i[t]&&i[t].values;return n&&s?Ir.uniq(n.concat(s)):n||s||[]}group(e){let t=e.parent,i=t.index(e),{length:n}=t.nodes,s=this.unprefixed(e.prop),a=(o,l)=>{for(i+=o;i>=0&&i{u();fv.exports={"backdrop-filter":{feature:"css-backdrop-filter",browsers:["ios_saf 16.1","ios_saf 16.3","ios_saf 16.4","ios_saf 16.5","safari 16.5"]},element:{props:["background","background-image","border-image","mask","list-style","list-style-image","content","mask-image"],feature:"css-element-function",browsers:["firefox 114"]},"user-select":{mistakes:["-khtml-"],feature:"user-select-none",browsers:["ios_saf 16.1","ios_saf 16.3","ios_saf 16.4","ios_saf 16.5","safari 16.5"]},"background-clip":{feature:"background-clip-text",browsers:["and_chr 114","and_uc 15.5","chrome 109","chrome 113","chrome 114","edge 114","opera 99","samsung 21"]},hyphens:{feature:"css-hyphens",browsers:["ios_saf 16.1","ios_saf 16.3","ios_saf 16.4","ios_saf 16.5","safari 16.5"]},fill:{props:["width","min-width","max-width","height","min-height","max-height","inline-size","min-inline-size","max-inline-size","block-size","min-block-size","max-block-size","grid","grid-template","grid-template-rows","grid-template-columns","grid-auto-columns","grid-auto-rows"],feature:"intrinsic-width",browsers:["and_chr 114","and_uc 15.5","chrome 109","chrome 113","chrome 114","edge 114","opera 99","samsung 21"]},"fill-available":{props:["width","min-width","max-width","height","min-height","max-height","inline-size","min-inline-size","max-inline-size","block-size","min-block-size","max-block-size","grid","grid-template","grid-template-rows","grid-template-columns","grid-auto-columns","grid-auto-rows"],feature:"intrinsic-width",browsers:["and_chr 114","and_uc 15.5","chrome 109","chrome 113","chrome 114","edge 114","opera 99","samsung 21"]},stretch:{props:["width","min-width","max-width","height","min-height","max-height","inline-size","min-inline-size","max-inline-size","block-size","min-block-size","max-block-size","grid","grid-template","grid-template-rows","grid-template-columns","grid-auto-columns","grid-auto-rows"],feature:"intrinsic-width",browsers:["firefox 114"]},"fit-content":{props:["width","min-width","max-width","height","min-height","max-height","inline-size","min-inline-size","max-inline-size","block-size","min-block-size","max-block-size","grid","grid-template","grid-template-rows","grid-template-columns","grid-auto-columns","grid-auto-rows"],feature:"intrinsic-width",browsers:["firefox 114"]},"text-decoration-style":{feature:"text-decoration",browsers:["ios_saf 16.1","ios_saf 16.3","ios_saf 16.4","ios_saf 16.5"]},"text-decoration-color":{feature:"text-decoration",browsers:["ios_saf 16.1","ios_saf 16.3","ios_saf 16.4","ios_saf 16.5"]},"text-decoration-line":{feature:"text-decoration",browsers:["ios_saf 16.1","ios_saf 16.3","ios_saf 16.4","ios_saf 16.5"]},"text-decoration":{feature:"text-decoration",browsers:["ios_saf 16.1","ios_saf 16.3","ios_saf 16.4","ios_saf 16.5"]},"text-decoration-skip":{feature:"text-decoration",browsers:["ios_saf 16.1","ios_saf 16.3","ios_saf 16.4","ios_saf 16.5"]},"text-decoration-skip-ink":{feature:"text-decoration",browsers:["ios_saf 16.1","ios_saf 16.3","ios_saf 16.4","ios_saf 16.5"]},"text-size-adjust":{feature:"text-size-adjust",browsers:["ios_saf 16.1","ios_saf 16.3","ios_saf 16.4","ios_saf 16.5"]},"mask-clip":{feature:"css-masks",browsers:["and_chr 114","and_uc 15.5","chrome 109","chrome 113","chrome 114","edge 114","opera 99","samsung 21"]},"mask-composite":{feature:"css-masks",browsers:["and_chr 114","and_uc 15.5","chrome 109","chrome 113","chrome 114","edge 114","opera 99","samsung 21"]},"mask-image":{feature:"css-masks",browsers:["and_chr 114","and_uc 15.5","chrome 109","chrome 113","chrome 114","edge 114","opera 99","samsung 21"]},"mask-origin":{feature:"css-masks",browsers:["and_chr 114","and_uc 15.5","chrome 109","chrome 113","chrome 114","edge 114","opera 99","samsung 21"]},"mask-repeat":{feature:"css-masks",browsers:["and_chr 114","and_uc 15.5","chrome 109","chrome 113","chrome 114","edge 114","opera 99","samsung 21"]},"mask-border-repeat":{feature:"css-masks",browsers:["and_chr 114","and_uc 15.5","chrome 109","chrome 113","chrome 114","edge 114","opera 99","samsung 21"]},"mask-border-source":{feature:"css-masks",browsers:["and_chr 114","and_uc 15.5","chrome 109","chrome 113","chrome 114","edge 114","opera 99","samsung 21"]},mask:{feature:"css-masks",browsers:["and_chr 114","and_uc 15.5","chrome 109","chrome 113","chrome 114","edge 114","opera 99","samsung 21"]},"mask-position":{feature:"css-masks",browsers:["and_chr 114","and_uc 15.5","chrome 109","chrome 113","chrome 114","edge 114","opera 99","samsung 21"]},"mask-size":{feature:"css-masks",browsers:["and_chr 114","and_uc 15.5","chrome 109","chrome 113","chrome 114","edge 114","opera 99","samsung 21"]},"mask-border":{feature:"css-masks",browsers:["and_chr 114","and_uc 15.5","chrome 109","chrome 113","chrome 114","edge 114","opera 99","samsung 21"]},"mask-border-outset":{feature:"css-masks",browsers:["and_chr 114","and_uc 15.5","chrome 109","chrome 113","chrome 114","edge 114","opera 99","samsung 21"]},"mask-border-width":{feature:"css-masks",browsers:["and_chr 114","and_uc 15.5","chrome 109","chrome 113","chrome 114","edge 114","opera 99","samsung 21"]},"mask-border-slice":{feature:"css-masks",browsers:["and_chr 114","and_uc 15.5","chrome 109","chrome 113","chrome 114","edge 114","opera 99","samsung 21"]},"clip-path":{feature:"css-clip-path",browsers:["samsung 21"]},"box-decoration-break":{feature:"css-boxdecorationbreak",browsers:["and_chr 114","and_uc 15.5","chrome 109","chrome 113","chrome 114","edge 114","ios_saf 16.1","ios_saf 16.3","ios_saf 16.4","ios_saf 16.5","opera 99","safari 16.5","samsung 21"]},appearance:{feature:"css-appearance",browsers:["samsung 21"]},"image-set":{props:["background","background-image","border-image","cursor","mask","mask-image","list-style","list-style-image","content"],feature:"css-image-set",browsers:["and_uc 15.5","chrome 109","samsung 21"]},"cross-fade":{props:["background","background-image","border-image","mask","list-style","list-style-image","content","mask-image"],feature:"css-cross-fade",browsers:["and_chr 114","and_uc 15.5","chrome 109","chrome 113","chrome 114","edge 114","opera 99","samsung 21"]},isolate:{props:["unicode-bidi"],feature:"css-unicode-bidi",browsers:["ios_saf 16.1","ios_saf 16.3","ios_saf 16.4","ios_saf 16.5","safari 16.5"]},"color-adjust":{feature:"css-color-adjust",browsers:["chrome 109","chrome 113","chrome 114","edge 114","opera 99"]}}});var dv=x((_L,pv)=>{u();pv.exports={}});var yv=x((EL,gv)=>{u();var N5=Yl(),{agents:B5}=(Ps(),Rs),of=Oy(),F5=Mt(),j5=uv(),z5=cv(),U5=dv(),hv={browsers:B5,prefixes:z5},mv=` + Replace Autoprefixer \`browsers\` option to Browserslist config. + Use \`browserslist\` key in \`package.json\` or \`.browserslistrc\` file. + + Using \`browsers\` option can cause errors. Browserslist config can + be used for Babel, Autoprefixer, postcss-normalize and other tools. + + If you really need to use option, rename it to \`overrideBrowserslist\`. + + Learn more at: + https://github.com/browserslist/browserslist#readme + https://twitter.com/browserslist + +`;function V5(r){return Object.prototype.toString.apply(r)==="[object Object]"}var lf=new Map;function H5(r,e){e.browsers.selected.length!==0&&(e.add.selectors.length>0||Object.keys(e.add).length>2||r.warn(`Autoprefixer target browsers do not need any prefixes.You do not need Autoprefixer anymore. +Check your Browserslist config to be sure that your targets are set up correctly. + + Learn more at: + https://github.com/postcss/autoprefixer#readme + https://github.com/browserslist/browserslist#readme + +`))}gv.exports=Dr;function Dr(...r){let e;if(r.length===1&&V5(r[0])?(e=r[0],r=void 0):r.length===0||r.length===1&&!r[0]?r=void 0:r.length<=2&&(Array.isArray(r[0])||!r[0])?(e=r[1],r=r[0]):typeof r[r.length-1]=="object"&&(e=r.pop()),e||(e={}),e.browser)throw new Error("Change `browser` option to `overrideBrowserslist` in Autoprefixer");if(e.browserslist)throw new Error("Change `browserslist` option to `overrideBrowserslist` in Autoprefixer");e.overrideBrowserslist?r=e.overrideBrowserslist:e.browsers&&(typeof console!="undefined"&&console.warn&&(of.red?console.warn(of.red(mv.replace(/`[^`]+`/g,n=>of.yellow(n.slice(1,-1))))):console.warn(mv)),r=e.browsers);let t={ignoreUnknownVersions:e.ignoreUnknownVersions,stats:e.stats,env:e.env};function i(n){let s=hv,a=new F5(s.browsers,r,n,t),o=a.selected.join(", ")+JSON.stringify(e);return lf.has(o)||lf.set(o,new j5(s.prefixes,a,e)),lf.get(o)}return{postcssPlugin:"autoprefixer",prepare(n){let s=i({from:n.opts.from,env:e.env});return{OnceExit(a){H5(n,s),e.remove!==!1&&s.processor.remove(a,n),e.add!==!1&&s.processor.add(a,n)}}},info(n){return n=n||{},n.from=n.from||m.cwd(),U5(i(n))},options:e,browsers:r}}Dr.postcss=!0;Dr.data=hv;Dr.defaults=N5.defaults;Dr.info=()=>Dr().info()});var bv={};Ge(bv,{default:()=>W5});var W5,wv=P(()=>{u();W5=[]});var xv={};Ge(xv,{default:()=>G5});var vv,G5,kv=P(()=>{u();Xi();vv=pe(rn()),G5=St(vv.default.theme)});var Av={};Ge(Av,{default:()=>Q5});var Sv,Q5,Cv=P(()=>{u();Xi();Sv=pe(rn()),Q5=St(Sv.default)});u();"use strict";var Y5=vt(_y()),K5=vt($e()),X5=vt(yv()),Z5=vt((wv(),bv)),J5=vt((kv(),xv)),eP=vt((Cv(),Av)),tP=vt((Vs(),_f)),rP=vt((al(),sl)),iP=vt((sa(),sc));function vt(r){return r&&r.__esModule?r:{default:r}}console.warn("cdn.tailwindcss.com should not be used in production. To use Tailwind CSS in production, install it as a PostCSS plugin or use the Tailwind CLI: https://tailwindcss.com/docs/installation");var Ns="tailwind",uf="text/tailwindcss",_v="/template.html",Yt,Ev=!0,Ov=0,ff=new Set,cf,Tv="",Rv=(r=!1)=>({get(e,t){return(!r||t==="config")&&typeof e[t]=="object"&&e[t]!==null?new Proxy(e[t],Rv()):e[t]},set(e,t,i){return e[t]=i,(!r||t==="config")&&pf(!0),!0}});window[Ns]=new Proxy({config:{},defaultTheme:J5.default,defaultConfig:eP.default,colors:tP.default,plugin:rP.default,resolveConfig:iP.default},Rv(!0));function Pv(r){cf.observe(r,{attributes:!0,attributeFilter:["type"],characterData:!0,subtree:!0,childList:!0})}new MutationObserver(async r=>{let e=!1;if(!cf){cf=new MutationObserver(async()=>await pf(!0));for(let t of document.querySelectorAll(`style[type="${uf}"]`))Pv(t)}for(let t of r)for(let i of t.addedNodes)i.nodeType===1&&i.tagName==="STYLE"&&i.getAttribute("type")===uf&&(Pv(i),e=!0);await pf(e)}).observe(document.documentElement,{attributes:!0,attributeFilter:["class"],childList:!0,subtree:!0});async function pf(r=!1){r&&(Ov++,ff.clear());let e="";for(let i of document.querySelectorAll(`style[type="${uf}"]`))e+=i.textContent;let t=new Set;for(let i of document.querySelectorAll("[class]"))for(let n of i.classList)ff.has(n)||t.add(n);if(document.body&&(Ev||t.size>0||e!==Tv||!Yt||!Yt.isConnected)){for(let n of t)ff.add(n);Ev=!1,Tv=e,self[_v]=Array.from(t).join(" ");let{css:i}=await(0,K5.default)([(0,Y5.default)({...window[Ns].config,_hash:Ov,content:{files:[_v],extract:{html:n=>n.split(" ")}},plugins:[...Z5.default,...Array.isArray(window[Ns].config.plugins)?window[Ns].config.plugins:[]]}),(0,X5.default)({remove:!1})]).process(`@tailwind base;@tailwind components;@tailwind utilities;${e}`);(!Yt||!Yt.isConnected)&&(Yt=document.createElement("style"),document.head.append(Yt)),Yt.textContent=i}}})(); +/*! + * fill-range + * + * Copyright (c) 2014-present, Jon Schlinkert. + * Licensed under the MIT License. + */ +/*! + * is-number + * + * Copyright (c) 2014-present, Jon Schlinkert. + * Released under the MIT License. + */ +/*! + * to-regex-range + * + * Copyright (c) 2015-present, Jon Schlinkert. + * Released under the MIT License. + */ +/*! https://mths.be/cssesc v3.0.0 by @mathias */ diff --git a/static/css/webfonts/fontawesome-webfont.eot b/static/css/webfonts/fontawesome-webfont.eot new file mode 100644 index 0000000000000000000000000000000000000000..e9f60ca953f93e35eab4108bd414bc02ddcf3928 GIT binary patch literal 165742 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 G*yFsbY~cLNXLP73aA74Mq6M9f^&YV`isWW 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

5q!RY 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 + + + +Created by FontForge 20120731 at Mon Oct 24 17:37:40 2016 + By ,,, +Copyright Dave Gandy 2016. All rights reserved. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/static/css/webfonts/fontawesome-webfont.woff b/static/css/webfonts/fontawesome-webfont.woff new file mode 100644 index 0000000000000000000000000000000000000000..400014a4b06eee3d0c0d54402a47ab2601b2862b GIT binary patch literal 98024 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 SdSQM28?+M|D(2r_;{O0|uQ74} literal 0 HcmV?d00001 diff --git a/static/css/webfonts/fontawesome-webfont.woff2 b/static/css/webfonts/fontawesome-webfont.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..4d13fc60404b91e398a37200c4a77b645cfd9586 GIT binary patch literal 77160 zcmV(81_!itTT%&fM`8Do zgetlXfhX-f>pHa>CezJ5a+CKJB5E?t-D3Q@I zv;Az_{%F*wqQWVk+*x^)@=9sx>ldws&U_`?fwx|)6i0%hGq@6No|Wjj+Lhc2#LbXI zik@&>S#lthOy5xS4viawbfqcF5t#22r#4c;ULsQqOn&iMQrAORQWXh`G=YxhM*4YN zTfgWxZlU6?d>wP(yNq!jqfNVxB}>Ww7cSen4lE1$g!lMN&~*PN_7ITCO&u%|6=U~^ zD`NV@*N5j%{d4(V*d&F9*Lp4o^=-wV4E$&&XJX#);dbqZ^8pUYCyEa?qdKs=!}D|N zZKGn0G1#bWFe1l-8nC}AR*a~P9;0KUBrGsNR8Um3F%kp&^sGD!?K|!B(qItgwkPpO z4nOg8&Z#<)4^Bj%sQjrANfD$Zj098^i(7$$Vl;{o&HR7r?C&hE&b-&}y`y4mHj%mu zNlfW!ecOyC;56fuZ7e6t7R&P^z1O9)e^Pe=qGENxwk%7Q3&sYU;&zJz+X!u6Ex^F$ zTu6(Z`;JIR{;Knn>IcTcKbV%&ZSxB`P>8MADLLm#sD>oQy@;IWvGh3j=*Qa5&VIQ& z#BvplZofSw5gN50lul%1ZW|#duBPzgJG1nxIGMaB*-obI9wC1%7zRoi%C^%k;Mn?+ z?pUuq3@j1^4v?E3B49cgqW>EY2?-#3jqje^;JgycOCcwp0HG~LNR*rji6bO_n_6Fl zxt$OawF6EyR#iAg$gdotjwKXO)cf75+S~gE2n>cpa0mh<1W_5Hw7c36opP+~qRPFS z?z(HcYuX#9GugKj(K=EQB_0sAfiipahu*36k{xIzyD2!y5%vK1@c|DQ3Q0^$kT!Po zBklXM?*0ZWJJ6;!hoDZHGR|mrw+{{o{_lUy{_6}+Pm!l|BNl}Q;&@bv@2Wy(0-c_O zab6Z9oUWgiKYRW)Vv0%P;3X|rT9E6xVx&Q%6AWJDG0oX-H5vJ?>5A8;PEnm%C;H~y z%@URb{E<@x+!!CGA#@@j24G?{>Gvg*2lVeVHM;^7(Pnl#tDV)(Y|gCiIh;CbXJ$WV za+~#V|9GDufDe2U{2(L>iu$ z&FbBmZ9gV+TlVF2nNyNeYL2HloUh~eKdpS)>J9Pm#Xd(4%myqFVno%qUa9n|Ua803 z8#-)?GmgDZL7HHzH4B_FHnRat`EXP62|?edFIDRb!q%9yytA|?Ib5`-)rNGqg%GbH z-}d(Uw;KH$fouQgEh;fvK+gfZPMGsl{cktu>gD1?zL z`z7_05U{qkjReFC1qI#x+jpODe!iG=?eIufIBbyAS`i6yq~pK;J!P{R?B6jf<_85Y z$&N8sKi05v?h+0-IZ#Z-(g8koZ#f{v7%?Dp!%F^s91LTw|BvSLb7Oj@878i9HK*kSp)6{%ZXlv-PQ)RD zE`x4f_xM$H9{@mn{1`uWwLbR;xgELO9FcMuRbkvnQXmT&j}ZE~*Z9?u0F(1c4Md6G z%ZpLJy?$`%3V_^=J3F{;`T31Z7#Ad=bomK731~(`S)uLTR8OErP908ueHZaDB4D$q z{GZri&j-sW%|A#W5to*SAH-ai&E<86{%v3LDwPh%=3Mm7wrS#iOV1$&8oKgshx_jMlowl4ED4$f#L1!t6C1g9p~=ODPt z5-F*yQZ*RmNQ`~4r~k{Ouxs3@+Z>Q5N}1kIzW_;y+Y`2(U+=Sj1(9)2Vkg!}$DaT~ zSw&5w0~|KUc7%a7st`^}4doR9Pl!$j8b%9FcqlQFIssg|->XC5YmQ@}VmJj+^a&GW z;TT&?6ewkE94j()E$+}^)|h0Xjx{@?P9)U!BBDsDj}WU31 zAtcV{=d|bI-bs8=m>_-=CKKcXWW_GX0~^$^=>jcb2lM)283`*Z!V{7?x-M-}_~|s` zV|lNhxg(2J)xt(s?g(|g4crMAX)o}cuastffHd9kY=i3#SX1;l!-O06F-4v5y)!_N z{n~32h};!G7bhd5ytZSkz1eQ+sUW)X74K7DJFF%9?n#Q!!7ID?F7r$p*h2z%vFq+0 z9=`hOhOu`E+Rawmf`Ea#sNtl*!}&#cW`0Ouz3DI?ydh+i=s;0>PiQfT7Zu*A>rw!Z2oWMZdTlLANQLT4}czIhYZic*axDrD;QpTldic#?)QnYZQ#V&@GPdWKu$ce zkR96D(D?F+uOEL7E{&8{@#anN+7VOiE7M#=o-3l-Qlfm(Hnj`lCvjX<;N1eImGc}P zIfq1q23S0QB<*mCfZhipyXl3dlKdo_(zgrVEctLByL0)aRMXBH-Ttp)yZ_WqYe|tF zU*@4;)#eID=!hTcSCgMs|CA-!(RT=~eyOCyMAVSk!pq$%^Rswq@*cQ(TXI^ehX9#d zQzf)Vo7@<4U`9OSg`E*=es@n8G*SbT@I9!qVekl|qYka=BE@A6$s=C?(x-c+DlyNW} z6eaQe@Drh#XmE?Ex(!VKoZcdgD?X0w=CviN3tmmjikMECbJNHMagMY-l@hQIzV7AZ zriQRf5j1k=Eh_KlCFt5{BiAK6a8T){lxWsNJ@?M~+S(158s#PwDXC&%gvLuu_&~q; zp5%18A)_>(Gy@` zHu}fy7?5gdqUqRaZ9G+VYFVjT`f3hBTtJLx%QHo4W^k7Hn4dbj+U@EPSKG&~pSs!K zvyPmU&Tyr~vom3Dulo^!F^FVgi})a%1Gn9)rTvJRN`lw2KOkz(aW}5MO~dBSW@edL zwPwp4)N=wJup1;S7@U)OkZj2gQGo~o4#o=@iYEeNjFZoLvW2r$?(LKzQYnI52$jlzP&K3-Fs?@ z8TYz{a*Ip6o|)y)qHif|*~IjRGj3tOR55>Cr^87ZMJVZQz4x-c--DZz!bJ3J`mBFt zv$MzMB*TT@cUYc?%vG%XC_t5juJ=v#VIpp<4lLvW$%%|VH?JfU3&D=q@FkudiARUh(d2N+ zWLd~2X5t4S?fb`JHk6Khs0b;)4m))>Bf>MuG>~md#IxJ@3UBxJiBI@&t;m6*b~tLF z>Y4m_C`-#PTHIv21B#D$$;E^HZ8uiYUtFhV*G%O%3~-xR^LiE@?1e}-zAdW`mbEM> zF-u5dt!0p?EOIRw9HXESaG^}g@5b$*Gd<>1m;%N!sdSMt*}PbmYdWd4wf_iOfHlC+ za|MYGa1MylQ*%_SxCI*3>pCu7wYNkflt8fcEw)9s%#j8m5R?-^jqs5&y2-XJ@J1PZ zvCEQxGD63Ll8sRsnbjBI1u1mJ!>4@OBQ%73++6qLsDSXuV7F#t5G=NzBh&|HiRm#q z*)7%le!&>OD#^0421Im4)tJOE2i~}o^A-DsEaeX+t0KZ z{sQInfSneVRDtp{f^<>g*rTZi2sAuCI!Z9Zh$ZFSky>G5VCcOA>UPbn{DxunR4-Zq z0{Rr3Vcwm`(344N37c0jkQV&${exerkPtp8!}^!LNFtPq`QzzulIshDd^c?rMzvmA z&&_^jixC$vO7ZGm0Le*_7u+*exgqHorQCbdJY~!;JgCi-!q5HtGLD2^A9dP#_`PVfh~Qf+*{6POoKUi6l2P%*Hl&QKAyfLqkaIKd`D8JY1@={Zhq*1zZjQU5-VVG9EdQhh(N}S^W*!YLJe?QZ~`l?e_yw z5+Rt%0P61dAXbLEnF=K$2o+w?V3$raPx6eS5Bi3KtXuINb~@n7ggV*iUfP^;*T3fx zK(YWg|IErMMW^{br`nI~*hvLG+;Qa(JTE9Xz2mD|`K zWkMsBLSxbz*}wwmYD`=a5~IW|zFKINTi5zYJdLXS5AlQ;aj16QewJ%pn@7XW)l@{k zKU1m8+14)_#x2y>CEb#Vl-cMv42b@BrfGab7RyPY#BuR=W2k^v0h<(f44SbZ&kQd& z1c7+0f=Eva?9UId@{fgyyLhy>XLZ>Hs_gVQ>JLK39^$?US5+# zF8FwgP0>wLKjyriCrA1t{C?ppovgaV>1c~smv@h!4uR$(`2`$DeE7c~B> zpO)wsEU7ZQ#)-uJ6()96NKJ8Y@H7-Z0#aPGy|SvlSYbSo*fbFCmK;D$X{<=pL|?w> z37bU`XR6OqiFvV2n$yv2RQ}kYO5LsvtCo2WW6I7VnMg|XEFd+Y{o1b`B?Ku6B<2+= z&U7;n*3GsPjMqSY02HvKv_gCJS?}VwnX)lP$9Q?8>7cln_TCYaRXg*#;^hb%1uH+IT+qbi5QUIEkAPwUL- zZcK{joDF?6iF-BK80ny(qch>Bj2#sVh;E9olq4i9E2BhC2h@ZuNbOcWnAb?Aj+ol{ zPjg%dw*~)|Ezvu`S2h4n_?1nG-8izHMroCi)H}Y7r8gOC^D?nEB?8ux%nux4T`W2w zjmomxy+te?pWb^_g#G~wZee%3vH68gXQ75Jt@23+IdVE`poA6wl8hR#JV_HpwK4Eu zBw$Qpa>tT{f!Cet&Rr4Zc;X#7JyIEVCMr=i=zs(;dVe1C%lLUbh~NS0gJ4a3_SBi0 zWKV|KrDg~RR0H=-#?#LMUi65trDJ==U20Be7 z%Xwpj z8rGRuVi>6*eIn2 z4sdTqnx|BWhY_zMYaCA7zUpjza))jPvt-vupa&k7+<6n*ist$5`NN|BwO~KBX%LYryjwYCD`L@BOz&Y#&6yLk zrl09#3<5$~a4xgYhziDTTr}+GvxUZ_irgNJWb6?^#5mb!Oz(fO^4&7G%H z5^GS_GXIRAC_Q6#bn~Jjo?A1S$rmQJt!U~*P6dbvJ-70Rj*C#qoAg1nM--Cz!Y317 z=u#u7#!Wgd*X$9WGk^)j?$&fleixkNGkSM;Ai$K^JD4}R=>kur91A#{$yq51$wX5{ z_^yQCFMy;I)XX=RX%FBGjUjh=$~M62v?QPtjW|Ux>QrIgjQe~*2*&>nXZq^b5AiNL zZOI)6wC_3KIl*(?NODXbHzum22a=JFGaEv41mKQ*TW=5nCK7LT+EZuu)vXw=D|?|q zMZe$WYg*z7q#{n@ie%~;HG`r$nwUvewW8XJl|HLR?P9D;g~!gQW+^ITmZnEFJoC&$ zpqK!kl`d!W6#u8;k_s8NrGXb9K``UKExyy)qZX#Ac7FthR3Nwo1`lL3ODL!o z#aVG+vZ|XXb=~EAEWJ7~DkOX|><)vPi!TI8y2~t+U`4!!=-3qTcu*UzvmX| zU;vxoFY7w$fXLF*)+alS*@;#LhY>_6%d`y63v$W)kPx*5f^bYS(x#$=iQiEsSbWTj#TRZs?$7t8|iN~L%c(PyNt zN>cc8olk|i&vOa$9mc_tq1qTUO?Q~7+#U@N=prKaG!!!T;ppICO~e}UM7l3dA&J#? zf-}{*xAKAEE{qjsE0aKYPnTB6aq63DUe`n4s;NtDuJ@l2EaI^^NCY{ITBxi%Cb)05 zg&!!x67sqr4))=f2=^B;|&U9nAtxK%O?JrH(qLN-KLYGA2ys`5Pbca_F5=9yX0 zI@KWOZ;?E|06C&Ni~*hajz+-M`jaFaJ2KXs*J`w}5c=M_?075|63ZIOft^DH#ZttH zbQl)6uo5JL99BwZ9>Hda#W}|*0Iy-0IZ%nKCgAwd#WqiGzSaX5Y^gk*)brv38S)wL zWOF?u0W-yO7LT=1Ezn{_pw#>#jSuWwImbE(F^wt}}lf1z<$?f+@!t&&enhvFSp|oAa+s9!U zHXe30?GjS`pv=ByF^BCWSWJbRy2A=eiD6-y5fj~pEXMQfgpkY{A~P+|N8}+K%cVH8 zxAHg&eBe|%Q{GUMi~=9Hw)OFF98FTLS>9sw=B0b@E4xqqW!sxF_VU+f1*fUgb*|_4 zRz3PvJ}t!oYhpH4pAwRi(5Y}*;!VBKPpDx3vfLzB=tRMJ8;%jV@j>6aqg%i<1&#b+ zk^D-3Kdxp(KRuW4k%?rmuP94I&g0b4>O%zd6?@oyO6liO1^U`$YEO(w~dfSW-)I*JFbc95RKnhH_Ueo)^V z5O<-H?_2BbD+u?V6s?hlkNW{&D{7-4R^P`fkDgL0;{mp{b)#&5Aruay{_1@GD<`i@ zS^hSgHnz=Q2J4n}WYT?K1Ba~KTmN}=+nAMVj->#wyKf}M<5@kRd1_Le5osxl7MTWO zkkpGzVMHjsSp8MXcS#7V+PhkS79{jH0@}OoIU2e8CV!dMG+M*m)+daUL`I+W-4I(& zUB!OpWEez0R`B*0QI%Jr&CRlbeRfkm!A=eXZTHE;D+5#BaqzefNU;B5|N6>RA@|Ob zujYmt7m3)_czpI-ihZS1NN z{mBusZ?O_Oo54A_*Q29z84jB*6Wst#IvTqXn1FOd0WHRQYg4!CYPDfB?VoaEw10XJ zM*G{lAl|>>gn0kjc8K>kTL8Snq(eBCBR95iHQy_>TsDaOw3GMV`td+(amo3Y-6~SVgFExhSbYQt48O)0=vGOBz@93V1J{b z%hnjMkz5Lb^ba^Q<`P+L@G)XOzkbHOO0N0Xg0Ihy$^3ajb3G!GhUm=0X6-0?ONj*> z_f3DrB8?gdNMPm0cL=p(y+ve&>N;XLt~MwFIj|UsJns<6WB+W8-IyLPg}oO15Nn;A zXX*?`q_n+^0gs7HP%P#UtYbBYu|?p@^*>8)y$gH5q(rM|2sDE3?Nr_ z6;wk|U!eBTYxBbDj4oegyx`H4PD;~E0DDx)A+w4$lWIO__?$4^47wxdhTYj)uj=EM znyJ8s%uB-ov3ip%{vp~EGl-_rGMMKEfwnp}WIi3G1!!q)Mb=!*J@7~jy3`z6D|(ulUfoM`T~yvcgH%qlR3L>cQz}3KH_#K=7el_UiNveh$%U8? z_LGuK4xOlJQHD;H94v&y2_rh?&Qj5;yNIP~_>vbFIhO?$;xT|Nf?1iDP{&TfzW|C{ zCb@Y`IIq*W&G(5WFw0|-!FC7~@WzQ;j=+kc@=CQq%FR2Z@=-e+m0g92{YkVJKEF#;crZ%nQcFJ%ER9s%lZuHyt zzJCQXZKOUpq-8^{@!U>*5UtJX?PJ5B=GmY497K(+_9#(mFzjTf_-f`njzVGrbu~ zIo%B~2+9wdNd~?$Ckbz>{gcoZ5?p1VB{W_&eWQl99s=eyg47Eg{UFjXJqPm>4W7YD z$9-*oALJ8xuo5PzsHx8)k^U}Y)`AIEyYYQx=Stt&>pC^1 z<1Ipzi|(09mqxhhS;O1DqBDH|#e6Brh?)T?##hqzUdF1q6jPRD!uP? zbWjmu@AiW4LERk~L~lO?LlBOkXS8(lwDr(C^0>rF%Uwqug_tr@MLb@WZA&whtoIbB zE8!EYJKqhOTZ^g|%QMT``HvY}F|fSBy?KOoxP^}j7bAZUs@!njJZjWwL(^eq=6+n~ z8%LxAL!~qu?!w+=bz*cNLZC~R!u8OxQEj~wJTO)h@b)gBEo@zQDyI4YXo5}-(Ea; zYM(shM=smh)qbs|w%6;$>GU<*xxL%3UDH z0vH0D^OBr9a`sG=$rh?)7@YIo7tGXb<&x^?G`z4x$kihn?Wt54!tl=`j5ks~^J>k@Dr0)P<4=`SHK z9HqZCbCIW(RVN`J;D75Pe20ytLgS&Ts0!l`bX*&cR3jPU^U~6tO^zfhGHzeRUZ*DYv5=CgnUBb27sKfkX_*_QW8g{ZJrxy%`UQ0*MHZ%`jL5C?){`F! z&C1heYOrD0xYm%Mlg`aWz|)=J6XL61(PaYmoZu*Oee#}dZ#fyd`&CdjdPpQ^urvhm z*}68VQ1kadK;l>pC^5~>n9Trx;doyON_o9|l{4Dr69cU$EWU&B<4x-^ZkyN@g+6xh zPwMoB)w72E_{3`d-x8SCuyV~Y<7PBtbGlz8b|q|+<4fOKPHB=WR`~8S-zT@E#MIz^ z=alPCn@!+HKuGW89YXG6E7SeT?x%L$Rz`6^7@OU(bxT^EXsU2P?CnJ`_xORo0LS5ZqJMxCVbRWeo-#hK z{zFi%iIA{N#Sai5nrc7MZU}T|<(}BnT?3{T;ZumX`1pI_wN=xH1(7Hxv$bO9qbFvM z=4UX|gWc*FmBdU?L8VP}WEBU@DdV#;!@A>HA=Y*PjwWDlg|GfH5>Q(U8=Ya^l!UuA z`@jrShkPR|fU*HMN(H2f3L_iHxXfRx)nrwvq&6c~8APszz?(uMOM~~;e4-k-z`+?7 zfGGlRkkAmSbZh-=1DfW@EUpy$Y!T?8>kso)AM7dJxn-C&fjmLF2(TVpFr4e2U+g#7 z+4k*TetXy?4RKO}&ah^a69N0{Pzn%X8X;zvwD}fTRfDp#XjmKaqHNo}UcvD?D4zpu zpg)quKs{n;XPMnk&6ayDlWEX8k|(r56^l4OXTtD$NJe@v5fJxV4@4v5kU@+YF81KM zB`3Ckcdb1#4>KC1$+)+jS|{?MNO*>ms=Mx+CI?BKk~GjUN$;IXX{4>cn`P*Fl-e82 z)6I{U{cqygw40B6gQ97V*DIRULB6*KLPT`CR2Q|GilRB@t|Z3gvZLw#C-?I9 zy!hb|Fjj~seB&a|1(KNJ>wxs3916gZ*He~34@x1F)sNqi(l*9MHd0)QHWXaHyE(K7 z7cKZ-J*L4?vm!Z3S1w#G4ti~Cddo)5wN>F(8-aiB*r&s{6%BN!A zfXYqSk3jA<$0DOjjri6<$##L%7TK|6qVIW0hR0*(fg#o6fLB0H$oz`;1a}}DIS=m zbyp1H(H}*@XgRD90l;D@8c^gVE|w&ON1VYZKqwZG5%G1S)>4fd>}E_8%j0} z>CWmY4@fF`)8Fw6=$}2#(#%l{FRR_s*mX%Ry$HHIkK6B%!5A!-uyP}Uc?5jE0|so# zJYf39QTYezJ;eLe`Rl1hBpc|f(m|4R>6nc&+U%5MHUVSI^MY5$rR0aBG=BCa?{*tv z8T?`Y(3M|9)vn`N-fV}=sLpm8aiki6a}XqLIP~HXQxETrC1SUhA1v?k|2gmVR&_R2s(seFN2Y%r46JqWZi{zMzO@6d9I)pcW^+TATpWS22)!K7 z{@c%I{Tj3rhq(T^vsRbu&Ze%9K%2Jx;;cHVUtnV^eewPNOqD#*TeOfPRjbx2AAHc} zt-4#2+gs(Qnd`dLr*F8*$-Dx&zg#^>Qus?OAzM6)zDVOgj)gmgIpO%m1%Wz|)Je^w zE56KO{+Rh8zqjowkH|kGk|#&d2je}T?ZiXYJha&VyO4V8#=E9bh(Tco8rT zPe-~LXJF3m-dlc?;6F}7;88&8_{fAd=8#U#frP4_L49h#jzVGc!5lN~#ic3g6~oWV zv^sIRNviD2sp=g0o*CI#Z^KCv z#FxvQ-B_rBq7Gjt0mKsW!!`BC6$k3Nbv~=i32Sh;2_&#wx~G` z(eO_m^%*b>b$6$%N#e-yrUExgrg)Xbt1_?iT*?_%W<73Jkye1Kq|hQGIg_l`b~tzn z`?hTr4-{}gX!g?+=y~FiGlIKtQ3(zuiP@z5*mQMqJp{b_?lasFliFvhEL3A?EU$@}>?(xy?0}JwQH8W)@ zgM%@G>PXH-ueM<_`@adULW)`<8U01d5R+zQxRm%!F$xyv|chrOou44}{FQ zu6YqRf~q96u+ODLO0G^H%4Fs2B8k-be>oiK3g$C0AW6*^ms%)ZC=G0PHVrTJK#p08 zLXKYE*x7xsPgH(6W4>d;@{V2knw5LvDa+k`?zu!b?IaU>6Z`Pq6UTXDmMjv=q=0+& zbV0gTGkOq6NxG|T!|+7LG~A?B1pV4nGi0U@Nzx9T^F)#<4HAstN!zTAE&*ige(75b zE&EHBUNV4MV+@np3f(yUgLS?vS?RQ1T-jfytki+QU-&E97h_7L+8iXKTrxUZSLO`W zV$?#Q?RP!b+FLOvP6MA=R(dp(9y_!AD3@k>PN&3w;8lV1W+;Df)|ucTc-JF?m*BR~ zOsPF17R8HHWkv%j8E+8z^ns8d>p9D}&pP2~Dkoz~<@M#QkC?n$ z&e?ks$b<$?W~FX=nO!(W5x+0$ryG2dx-rUj?F|2CK-5Y)v02RT)wWJ`+B%|S>gH%j ztfKJtZwjIKzq@q2O_0W5goIMejlWX#_i4d8d`{b6P$HnB{fI(9u(`CzAZ=h_p7o2O zI!*lxi_iiR31c$L#i%^U6{h{zleCsq2#-&VQv#A)oq+%)VO&84x^U<84CMIggs<|k zy=BH+=Ey;ktf{G+F3hldr`GGNcZSEmemrDYNoc|SQck^RYZ`Xo=5O44Zl=_nqJ53m z?jA^dWvppdl~<{u*c`_{q0Ag3%_vJcw7Cau9bggfCgx23cwR=Xk^w6xrQHLW>mJ6~ zoLc6EiL#W%j~X5^KVItxMGgd}D4^Y)9{5DysmOKYi5BuUui;d}nD6_L6YasFOjC}# zHczo(ZSUG->j%o24td8i_|W>9e3D++Qxe`w@T9$cDvUBrFU6PyDH+cIXb67yo5J#3 zG40794Me%jg^c&;B&HbEF_T9x&XsSefG`7I4C>qZhx=cAaV){D41BBnVE){<2L>v7 z@O+e}#wYA`9CLORgK8)rap0>`tBHC{KGDrK|BkwuzlaI=96JbeGJ_Pwi(vS%g;$GU z{Zx5S_h+a9Wo0lHhxZH-?es7(>U}TAl)Q~QXj^ng`9!-l)?P)w#v|is_sESpWZ=t+AIf!#G5rs&Syz>JIdC**R%{28T7 z3V@q>j&C4r)}lPRp4ColvW%S&W~ir4e=5v=&{fKhhgb93U!Md&2bOjoJ19Yb8HK3L zy4q61UjHC7w>>t}Ha#-tZtH%1W3Rmx2ar!UlUNLfmEdH$tN}_H)_jlNOi-NOoqi9^ zg{k`SIGQU_MC|n7T(8vT(ya@_ty9AnT&F$vRoQmT4Nc^QnjT{!Vf(8~JI_I`92Py) zsKlD7l)2VxfdNW{PJnQm=uIU-Qee^9h&$N%C=>g=hc&|xSDL-sJ+%mnhFKt;XD#Gj z2zE4q&{%)2*@^mvO4vZ|*FE@S$1}z1{Oo{4vd%e)yV|NLF_6$95=Yw_z4vQ4lC3tBMDGfINUylPM{vLdC8$PvGww3M z#7!FCN}^#}-qt^>V~yZ$FrFzti)i5lP8Wc{b)L^3ngy~Q{tIn0A4raVvcVtQ$}w_8 z{3pGv*4Hunp5VvTf00XaophUX0ZP&+jLmekkfXZY#_;M=VNVsAyL*H&%BP~bR*Q}dWg0oT^8Hb z+8?1G&z0BSPn^-$hiXOPI+G&__cnoUIy{k1=Mc@&b;oJ3rj6kk$$N!*-WU(H*D=bT zr0V|Tqw7^x$?|Od3@g!L!cOqQSF7ZW$!NRFDNm;|d2K~(*`%*Q*3~y3q@}A_QE>1T z_6D(LLad5BIEtTzyE_8L9|e!)^p^N1XG>BwZkhJX2IjpB!BjvAu5P?4wikmTJr-d# ze~F%~qM?I`uv&gYSC`RHUPM?eSZ1ec==@HA#jy~*aWwx=5(dFZKo$AuQ_>Rp!25mj zSZFWpKHMx~mgDF1I61Y+^zJP>M|=fW1(A{|-QHr~ANxVa>i9KBlioZk*_GScI>eu& z1|bw(XKH?{PY2&7|BF?JPV1t%IM>@CuK1MYhZAS<3|$8;R~lD;C|B%GHu9HNvEw0;77(X?22w1IM z%aiOB(=+-KA2<0vs~0Nfhj)MhXFr;#l`0{U>G=9ec~qi63stjc&eM9u(Mj>TmCs)n zqy~jI(kAj;bc_&x@JKEnS@BxtC^T6o>twE#!UOw>4wdD*?dko{h9uAd6M2~^-V^XtQB8iDT>SuRV5`lF@KVqR6BpM!C7IOSK==Vpw&g(pxj3)fUkzqW=b~T@qFwtEZ zW+hV>@`(tZVIO~PD)HCr*ovK<9kXxHykgqU{en1fN;#jwg4p7qn!+cTEpyI5hH}vG z>x6~8sZ_AKr9oJMqy|Y0(OfufU3-I1W($>IBOJ=s6IioUUS_%(HTTpfCmY%9#O%-* z7Wh}nGS9alcExi=;#_~8?TAqrbG4o*nahwsLFg1}QWPF4TIl>4u;pQqh|II-98+uo z(Uzi8j9bgxoMgNzDV@owyPUubP~^g*#Jxy#7^83fyfvKkIEl$Fgu-3GXv3c-G_7y!TzN53|0z0QrgQ7caCIUODsHrJxMO^Wb*kGR?`kWpC;A=J&>1(h7!{7l6brcI(kLf%V{TT2<75-6 z8&zYT427ft`=>CKA>vVv&c z>9c-_$@t1_qhpRP6z0#+ww!e6an%ezStolEC*FwaLF8jo@%>hTO&IniscS@-4Xk^{ zrtKJ5&7a4q|Ll#BJS?d+UDhcz~oPM2|KSxUs4*+p8fP(ywu!Bkt8%c6sw78 zWyNMQf4$PiP-wJBw)J zFrI&zxy$w&L>{f?;zPdE1W50pp&X*=#w>q9Fo{|y964+OygHpN!b_)=H+o!D;6hCIj zaWcvUbE@H&Wtj%YJiK-AP$vs@i<*4hd0{uunqN#iOC>hj6>gO$NE&}#blRdD+`i|#RqLfDYEs|E;WZS(Jd4JuKXL$d|7$*@si*w5&^NgZ;jfd9P&&PAfyK0 z@-#u^rMW!<3dHgDRD+nfKzz(tB&HQ<8g4F2+(~@yQiKAa_dwrJf`{u|5QPP|UW&x-B%aYvU?T(iBW85A*9V0nld}B|2ByRyeWvN&^j9@JKZ@!Qbsb8_^ zONlcJ=M0REj)N6&mU~$eu?2^f;T}P5TkRP+t4-So4XIQpAtJu020vP`T?2z@1x3Vd zvJ1qX!amg}mWG+-dq>E0of@wos@EzJey05Ent8dE>tKl|t3mre*_a~%{M0D|w-9f} zC?w+bfEz#g9_ATATsZS!`bnjtFS^eH6s zdY{~Fa>v+oy@j+DD2O^9u(yLph#W_UVr5pQccN(|L%vTj^!N}UkkH#>=UUua>^w(f zJbJADK(RUlt4b}v)x_UlVCbm>IDnyO(zDGhZ+jkL3o0&`h0 z@{No_wWBu{*EDzEFzZK`(=~~~dX2&bK`()oMNe|h|4Dlo1x#xHR(r?t-E^1H#SqLUK8XTlHbx)yx-zJV%;W zKH0>$zqd^jvt0{Zv#3t^*dDNRu~*%VWSum|q z51|7P!|^AB8yP?XE}H1sStdAo3W_XgHx(MPwWI3&GkMs-JB@+sRef+T-$|bg0qg$@ zcvks%*4}As_(r{2#p-68|I7JkSlVNUnAGeZE@BMm>Ov~4d?vr*k9=pVw`DKNYshuG z{&rknNQbtbo??Qa3K@Uo4zmWL7IK@zzE~4tS9XEc*vZt)r;Y|JJv<;-Pq|0 z%OO{|+~4Q~2Y_nK%zLWsoY`7QB;R_zdr#gJaIYRa=XjEGnV2kj4}%4b7WKja_3cjMco6HoZV~yG2pj)qF`7L zVJc{QADVF*X?0cOT;3WMsv=DOy3n*h`BatGSlLolhrUJwXZBrl<;2|=MZwM#05d?$ zzq2)~RxsboSgg_(FUIe6>$S#fx_X73LiM~S2ib$bO1gL%8=}nT-y8|%NqY0{0f5ps z`ihbDjgrz?{)Wz#?J;z;zqWa=h_}v~Uwwh0e6)CN<68v4cmhg&di-qj$o@o|*H)MN zhH~@QV{>G4ak_TpTan|pCJ~N~V4rVQwtu+3Z0kPcpe!WQvt4J6;&li^~|lB(=48NU`r2 z$5ptqRbX95wQEDI>V|^m?Dw++2AZ+`PnhjdQ-wp7;&+p8j}{AOe&HW^M>tULnR|Ok zuD>oM_4^m!6*k2o77=|29Aq>saUVY9U>1M`Y;3hvO+r$Wxlm;ShBD?sjWJS$x#CFt zalGMd2ttrizow=n(pRG;iN|8%w`f9%viT0fnpPY@C_nri9kzc)_XwUrm{EN^M?~~8 z9KsqptPf>CkY>~*A_I*VIO4tc$c;w&m!_F!^Xs=YV7%&ksTIJ23`_L&b#~lbrq5XC zwJVsP@(gweY7>RvwgO%>J>JhSGf$I)DB$V(zS=M?Nr#PQOVRaGpb^N&Z?Kz!PpG`j zY2z{z2Er-Wh6fb0NAky>3RpbR633Wj$86{78f~M+Q_WnU=k|wC%-kU%`fqsdB*QBV z7l{ai1U_VJ?Zx0LjOU$ViklGOPDxDz7Q{@2g^ zTzoYk-lO!p*rq7Q`jeoGlGu3*@oJ@Ulo@R(vh4SO=F>b}N0A8?-ZIw*>G5P#o*45` zoR=`K^ynmrr?zg-4U}@Yt^%@cxh{CkoMm5 zoPXV&&8X3vA}~MBUNYsjSVrfKEPHdn=5k+U5I|P0`W2GF@sfF;XNZy%{u&bu&Q8i- z=V|l^j+gs)0&%@NSlY-OMMQ(3T%oOEF&Z96qmn4Lq!5jYQghe9lB!h2%iZ)m8(i9n zQU3Xn0y1<|34=SAp9^4;)!bVf2iYvJ>OpJ1qf4XeVnl2s<6=0?EM1vtT&$b1{(Ngg ziP`1QcuaAAau(eR)Xs)Je2aR_jJpp)irmA=VV~$?#P>g8-w^PChhYw9GrTaM=nm53 zC<$un+#*J`K`QNg-=oW9v|YuSD_BV8lzPB(|Jl~}3*`%1sRC2!;!GV6;0|>541kSrttz3llsEV32psoEb>y#`{&)#REmCm={YP3 zkS~Izr@rF*wXZJjgaYCHsz`u-g(1b@h09>l*8)ZPyAQk=cp3W?_!Lk1+m;~P8*K!4 z0ZFiI>Zi2PkyUz~diHB7y()Zd<(bL?Dhn<@{q^^L<@~-4$mL_}__@FWXmHolKV{8X zmtDCkNPNtjG0*go`N(BIsa87)*ry2&G7*|kQC5h&l5AHtZ5%aE5u`I4Cj;AF{i3TJ zcoP!fEU41C8?#|4RP34arDaw7u5&RktJ~QYgl2R(7ZZT|fW!VA{8YQHd(t7WicG+# z(LnD{Opce;bjQ6R$qxFtUgJz5bgkxTAoiq|Uby)>LlXGRQts9Xg1wpWOPu`;5H@|AnueaE;&Yr*p!z}53qVrc-7QXPLS&p48sckL6*~l23wsvl+#eZ@qD?{k}E!>@*~j(GCw3uZe+c6>cFUF(NmvF zC7+C~{t{)_o_?MERiAN})$tgb3cTL4+0ux5*#%N=;LyJ;H-rU?%dzP961Dfy#l=2g z7sV9@3e7L;bw(0rhldkSXDLwUl}hx5Tq#%^zXWR_Rz@Q6=mT7I_Se|Ta?%1L^4NDp zU9)or6R3XU9B02{=iu1H`}AmFc}s^F;7ukNi;7i&ih z)Bjxo@;ow7%fz+n`CL9A&@#?$i4;Th0(zq zq4@P%1npcbS*gTbO0&BD8R^ft-;ju`#KWw9ySA545D}A}9Ns}CKAj7;@tFi&)#MX0 zP?>BsaJb-4lf%)F2=;+n%78RaK%c^)5i9`50Me|Ahl4GHEE$u}8Xyn}nlhj}i8BndXM!{V9@ULn(5BO=r$<`sYbb4v3~;t~tLvr= za%ox-M$LVSxQl5z$uH~snh+g~V|q}Z#dTK2Q8`78(k3U&FYF74k#^;r@~!y%rO(}G_EA+zTka?F#8vv(l>5w`m)5p>zc?}JARmg2a;0vX@8X)$ zxrGwVeI2^a3I#e75dbX2(7D|AHX2wrq@S+utY)mi8fBX&1q}yIO&OsTGH`r?G}-iU zHU*Hj0#KEWC4DbARw|3e#iG>jy*FKP&EG4~32 zmoC^Zo2~LJm+tb7QgYY%8DF{mc~wIt63q`c`uX!V5sy>UWxeE81)SF@eNm%^c75VZ*KB>B;`2 z;ddS|3p!af%~7->3c!l$pDPw;A`&Gk9-}fE0qJzh^_pOfN2QS6w51KeW;$q2Gwc>K z#ui=$hJHLy5Ccv6zghsx1S)re`Nq%I(vb2=FrXH2AtGRbP*dgt3ry$(6*dbBHmpzF z)DwFHCb+zC5sVNNXL5^sPFcLNv>-LCj}*in zB%n`#2xa~aM{dQ&bC}^Iii}(a?`ivB<3!fj+0pGkwBNo3JMsYP=y%-A>orw^cxry` zw9KZ~+_i?Pr}WmHpFW3q)2ZL~;3*u^Zz*gl-tLh|@GTvdJNwA=0|P7Be32N^D_f*juK7AWtCz#4>hE>(_0DNNN*N>a1aA&IDhdw9bkWyB#<|~n11hB zccL`+tIBq9mMF%!i3+ z7PVFGOz=o-eeG5ewfKU|_u7UZRra6A9V$XI{cMyD z6jD%T>j}|h1Ft6zzWU8PYR1716h*Dx5hTjS2M1bZcwGy(MXMlwbkF7HBmQnTJ*tKi<85{MeCN8$Q(z-qr#~Oz!UG+tI~i0b9dl{Z0yvB||xj zSfxDrQSI$sY5BX_?~8CORUpWb6c-C0RKtn(ev$1}t}+)WCwF|-FPf`DGZX;A>ao}8 z=Sm1HyL1Zb9^CP)S7%I4B=R6z$X4V04t(CenRdWvFj$>f{tW5tn$OTY+iH$z=lPtr z8Hs8z(9U~uOipdHt>#->Odj?#Q?Vpj2!j##rSZy$6MhZfhoyg#kxQPix~=gT-67Rc zMJU*dnv;ve*-$zrf0y}tug1L7tTc1QlZk~_Ofx}@Hic3R5ovZU6*mP_5IUbsu`{i( zWd@q@?zuf)s*8!Q8KT9eG|RKUGzP*?L*MCAe%z3Zg-%N_D`O-kGnP%U{MPApJUXQ! z6v^u>OgO2=!ar*yf>Yt8mk!+9#p4YSJoDfdZ?`D-Lm?uLxs_J(rRaWjcjl(l~; zK?+iH{>VLBM7RoSIUI4S@8WhIf6qhQZf^tPol8<4GKO~FDaOszF=U)$eMFfuYdkqW zz+DbI#5nz-fBL#YQYm=$%cDC;(`mGQd(AgAp3TY^G|!J)7Q_n--a2QRRtGJ8K)4{? zp&DP;fJ#t$7p1e0`iG5`SUZ;~VMI#JKc$bHToof&lELh9>6+(v@NK@y&Hh32(2g=( zsSVvd5#}~IYKcssUrw z(x6waKfH!3`oiD<_5Zy0<6z!{&xf)jL%o2P%Lo|7Lh768S0_TN!+x`?g3bM7;bIK{ z6Vm?g+BJTCVDQyJ)=e?_>fj3~(wvuFsXmya5;| z*x|VcAa9N&-KDBKX7XU7%%a%*bg{X~pGvPJ-}~dLNFV;?TIB!)5=)iC)QW?#9M5Y5 zz$*|;0d4KA6yD$OQZgQ-<*qUGEUuZslsAo76}LL=}fX=+YRK2vu_!3iu+bq88_~6K6d23g`7+NXELRGw=j@D~xdDR;< zSpN0LOT*?Y4Kwiy?nVFt`{lej7~*hC>vfK=u+_JN3zv-9agadwoS08RcK&%sH1PV6 z%ii8DEN!`?BSa!z%+aHV0XS@=QCjt-G4=C;tI$J~uAk^!t2A#)+^CG`?VgGcm8PJD z9h3cJL^kJWTc*5x8kyHj(HvdXR``B_E{4}Sw&@Ox#uCibFnTHl7##W;6`Dv`*DQd~ zzt1>$l zy`tr!xYPUpkWSf{f5Sj7i_}-tF$F}i2YMV^5W%qGTd++fR^~PAav?M(Rhe?D4Rhk4 zHzj$00OwBGN+>_2Zdq-K9wJl|`a_LPZF2iA1n!vKw0mMxPE?E?>|H7uedv-Kc3`Tc znERrYG3s7Oo#pO}({__iZ|+swhCx#{SD8=QiDe60DB8|K5d-C-&7B^FbZ;?Y&#M($ zNP_3Qd(pu4q<+gzfPGdS%Zu5$0B^FA6+DYRBgg%sZ>sR_zEnm;BJUd|H}5m9tk*8} zC_fdxX19`qisj~A-_rG9A@!WVvHZZlyfGzJ@APp@I_R9IsL!~3k_7ueI4AQLE3Wlc zsJ2%gb=#nVoiKlk3(I{VD^xFu?on>(6QJU35bBa=XfzR!b_H+p_jZ;uafnByQ$ZFzeFCn{3?&FTXjn(nbO86K)<>eWp)YTN2fr4;#I; zuOdnA*$U}^3y!5y|wZ%gt2Spw?1r~Xs#>Bj<$lV% zOegfQxuQPduw&@N;gU{38I`@@s_{4=;TOt_ihJyWm3kCn_5?TuUw8;s;?(fd+}bD} zSR!4{l&r*?O*VJ_ETm@WXJ(YsE6toKRI1fV8&wE&J`FACU3z^38-{PADv@nR2gSA@ zmNAJ_%^i$9yRo{v+qLC~{I@2mg%vs%mzhz6dhtl@;cB|QY#OF&{<%y6?i>x+MlAdP z!SMKxVdz<^A}37CtcJ<7rLtm5aC`Q=mo}}{tLCH*Xp`pAT@$~J5N)ar{YBC}t_#wB zlImumyV?Xsb{vY|>W4+UU`1DHZWeWT;5Z>iR$1piKQ~KW_7y9eTQawn-6dbFZFl6l zbHiG->gi2dKiqcWY@V}|IitB|q=-+-49|NU`Le1kvnM&LFB^Ro01Z@q<;)xF%I7xO z-d5{+!?gc)RT8;d;?ZPO9xPvV>Q>6_qvS=+D?%1Jfq3HKVUJlZOf-#h-B8Oh@*)wf zp>D75YFjB-bJh_xG>!EE+aSp_bLCUYHr>IiqVf!TnJ5J;iECG?hY&ZGs*@ zMqi^@Gv{UkUbjpVm1gT^CmIz%)EFjBH@8MGdxDJTl@dp%im_D4Ld4O|(=V?dX1LXQ zabx&hE=(>-5wdPx9=)X5(pRBtl-4Ni5NH~T-D9L7$ejA?u6*K(CD=bDz|dU%gf`t3 zQO3ZuZYsH%Fu(%jvnLp<87GR3j?-7JXvC@GpFR5k?!}!!NfITQtWVex=oEq$Qbdv_)@$k~&IuRwktnFF{qbwn&9`6Nb>Uc41%a?M zgG${LZ>@pdbjP58^&MamShIiV3+(fVYy{dbgx)RP)TyehuE7}!6jVYZ%RegiAp?{fle zrZ~A&f3U?pW+7v@D4I(fNcW2BgHx@`=twsqOz=~`E=0rvH0O&X{@H$A%i7trVZ2A_ z0-AHLX$VU&kiqv@&@*~q_hy|-?`nyJ1?Y7xt?`{TNyhP**=B8&I%%g8dVJT|pQ!OT)J~x!odB)G@6&^!F&Xx#i;#~kuQXG?@y9`0` z8jmoU@C*%0W|Oo=J$eg_#%Ba)iUY57W}7z`OL!oVThJ2as~-$ZUM^d+rqr!I^IFjX zWBVC5Xt}pViP5L?6Ps)lU5J|-On4|x5|JRH{|v!INPmIG^6cHduk;ZDTpT-w*`2b=}lq&|5&VzP9gpLxa=Pdj-IB)8~jZ0xqAXJQ<(_Q1Ei` z&6%0u5p%gQxx6o&7S&E2IIwkfqP;HDzf-DTa)fHDUASDWrJ7-OUX|n{3@uxM!@ zW_&@H(PqGBU3px^=npz&)a3oneUBfD$JMVB=SHsCO|dRb7o{ys+C!t{MTlnUx~#vf zb?xF@Q79BkjoXBvQfjTMxl;QQ$B)tPFSYPn%>=h~4pdKK4y21jI}=0Lw_^g0MZ1>0 zMaEQ9al_sGXftG#+bw$q{AO5i7R1BwHm9v<4_%_U+g77UVKY3f)!YDfnbb-^Sf=9X zzUTJMO~iU+Qp!wX1*0>fkuR76^az-TxMX^$BA58{Kh%H&A7|P+L|>&H(ZW!uzBj$C z!e7~-%Tr?&eZCc;mcswvsPxK}{4kIt`JFHVrJ!^ByWpEmM2C~*PgS#&h!5i+1eBY&9lSe`3@5A=D2})4dQ=Lbi7ELpiQ@aGf`O>dG~-{rIee z9&s}0(W>Ca(zF2gRl|+DEbGjMZCmj6<=#PJ)7>Vh$6hE6ad&nj>*K!(9`EXsj{E;E(NN#n zqq}mP(>xZHN;%~eYdXK62QEvGuyRNb#S zGVo+VAqX@L`QWZD3X+OWkpnnSEM~p>rxKihGE`|+4RwpLb$8_IQ< zXVLJ&lFU1%8B25DCl6kvrxKufD}x$0RaH-&sQW^h_|UfME3G87B~QCKWo*@@Dv{b_ zK&puaMu`OVV>T3LX9e_4RexXEelcc*rgptnyEP4o5c4fo4V&CB9gi5nAQvfLMDcsQ z^VG9qF&i0{BT;b8BYvnDRc3XEhGa-0g&L$J zwlZr`49qW!tK8Hd13py~UzBx+xJKWsC_4{hGpMNf*5q8{KjbHZJNA z^jbTY%}}r_Ptz%g(^#edwhcZ=ca_8*&Y? zl{cCt)2II&xO<)-uML|M;dle8ZJ`~f2E8$F(2}$CX@l``6R_kU5=z#}+)tXXCsrYe znIg9musw++6$%Z}mo$XJ_)Al|E9#NL$|hRc+nIxrC#2?vrCE*+;Lu*%7Pkduz6Aoz z=6?VG_kH4)EQP{&Cn9sBZ{MzDvB&+fAEV#BeS0nl=WFQ5$W%&MJ7#9;mhXj**J`Ir zR+6|Jyh86Q(e`S^+yNbNO|Dl=uOgcpW%Vze*S5RgyIE$L{fzW@ccMx4@;YnlkxA?5 zaW003$Fc~VWK36SZSMTIvt1ql$(QxQ$NOCkX3yfdDS|@b>U(Um*1NaC9boQ^vC3-J zexu%o-s!J9#DP10tv9j7EqX!0@7UK^!6&TF4s>Fljo2K6S5MV0n9Cm|0Q3e&Q!rA= znpX9Z$)8+E81nn+%5I`6XaO5-DT|>j8V0%P3hEr&E5R&YWX(0Rh&Q}B338(XS`fzLR;O0^i zd>Hn<8c&)sFK*C4k~U4@vH;Ce=+&!2e5nwaToqMrp`;65!)&i}-NFU5JrG-atd}08 zK?AM@KeF)*dP-jqQZ@nvt^QL%gXO>D3BQc`kD#^uZ_*#iOk;S?;n2L=z$7UxKT4FBS~l*jqV5r3fL zc?yV&`?|@ewX^2-Wh-^gXstuOJjO5YEOQBWd8of5@oLxDN$2purs%J=pL_ArjuQT~ z`pGQWzw#ySrGw631ydqhJG9;XUw&X4AwKL~`rM8aD$d$;T{udabsN{W56yK?!3~Mk z4%MMZK8T74XzxsGaW`k;61Y+_7WOR4s*$=FT3yC`ppYc2Lt3S*wviCb!H35qsum>>o?g+x^38-2Cux#N_m_E3sN z0tqF7xNdRLU5MqF$v(gd`g-)XXqjy=ke8ct%L6}x@&+Ke05ej2PWVuP&-WV7*Xz-^YdpaeNVp4 zS347URKFp(y4dzcf?Euw`K@p14Q!Q&zAE|}u&1=ZO9lazgiD9wRd%-AyvB^#t4>)o zn zTIh5Ujl*cs#>u;pQp2VJM{vf&6*oV2Nj_6aiBDkj?Gq;%?$-RYrP1murR10)yKlB$jpRoq* zU7O+1_k{A7X`)3)%S6uynj4a-7SL)p zY{A_GL;yC~rxz{!hK~Zb)WIvKeOgsCpI)x#cu%$6yq%wB#r)V&9!U5b6c7uI!s=B! zB1wDqDUsYUg#?XSz_9olF7?xcD{h2wDDc&ny!|Y+GD2sBK(aaW{CO3T&3Tvuj8CNjN6N2 zc^<8pBeum+YM(Y_a(^QMr^u1Bg5DHL?aMT55*qSP76$I$#wd9XhZgTn_04@GZH^3E znglJ&eDjmkh${UN9h6h?id^^6oQ?kIhlxNE{|n1N3fR(~3Up*`2 zijvce&z>hx^xV344M)^U?$&HBi@N=CsB!yR$aWt@D4j$@85l>8CgVft*s;SQ5ux&v zuRW5-qk1%jf{J!1qa-^6yn6Hp>aAVR%!xZca8VP7<010#C z&pr(kf!0j6UhAS}@7lX}z714Y-k-Mr2U6J$%r9TLNgk@iro>GrLVqrvwAd_Anl0%1 zNXlv{{r)9TfBC(>^h9tn+sIz+UU!XPOV+D_OXveoVLr~j@2jP1&!}hW_$mEMQ~cA} zyb|tYM@Csk%p{W)s+AS^SYU_@HzktNfMc>tk=jufPq`bxkAWgW)u9_gl_#s{wq6h} z>tG`AhC9kff1(D{|A5GBWz>?bPhM<^gF2Z}8KFMxG&N-#7Wf)HTQ?+ny{83(w0{iY zX}{%0@LVcF^bQm!$DPJOmJ9`JZ{7m9kmpTCW4yrK5Wa+krveuUd*Pv0edJrHe_c_J+3K;Y0fGo2K7-^3KpC?_WFK2zB=YrOQX#|1ZRY}N$ zsjg3wbQaq1zOBrX2Esqh)oYCB=NAGx(#X}&Tlw5RR8wig^q~--1elwg97Q}g_Zmel z?@kHWkas)hZA1u-uXWbPdM8_271IRIjYHLUr-uPBp=?(Ras7yfm^#HYOSK& z`wvMb^~2LMmRw~tZiUa+5rruoQg&l_>o4?H(nG{Q-Ana{or#-gdml%+`dImrvbG{( z7p&tb<2KF1iyEl$<3+|T(cr$3H{GD2`gSx^hn7h3?N z-7f#2g>parXHTO6Xp+A#C2Zuc{Zdc36GglYx@H|9PCaBM{&in*V!%HPSi-P^+!JO5 zI@rugFRTlbeLpC5i#EQCqt8&7BKWgRe%EPME#GG`?dVxT9A|p(!G9fnHgQW#ss8N_Q1c&3xd57=V@14Ul( z;Oq|aNiyHKuw+(mm2ptbABVYXT46HV*GPgdjvGBFxMN#vS0!oI8@L~%w_{iUf@6pe z!J}wU#&NgP={AWH8DsoS@;|-{eIIF4Xopg5(CA$r`Op>xj-ym(=xp)QE=7Xv{$V{4qbf+kT65`SQT( z!ZyvE*xJEVow#eKj@8VD4<6E)84uEj`&>;30OfqZbRZDZHBUS=J|IdC=Y78387%)% z9dc1B&9C;GL0lCl^(lD;dekR|9TQ7r*scadjrLb$X}myZdUYo;Torx0UU9+a&q+K6 zK4o6kXer21DjvD?6l{8}e?ow4KMQBv`LY4j_lk?k1Ir+oK{PaH?B{SH*qzj};=~S$xWpk*YrTFKJ~fRkm`kA6J*@ z(N}Xe3Y2Hsg` zd_4%nK)XGK!B0X5uzJQ&ykzsh$u(ATY$O1^q0w5^ggB79gS0qa&ySdKa40%KHcB;6 zSuzO;!>CpsnY9ilN0f=q%y4Dq;hn8qwyJ1qlNKKx4x-X>n%%9B&MK?4XR z6VrUXNWt|*BRA29)zaX!+%fR}Xm1 zh)0bC`jGnm?+!;tk`SQRu6~VKx=N|OR5wj=Uc%_QBZ4r2r{vhfwQ+~O1RC?#%j#l_ zFq%tNZ*=in4T>4nmTeIZUgv8d7i+Y-Eo94Z+TEXj|F2#QO7z`i_A{c#-IYcf6OTsE zROZjR+n1d=Z%+j1JTn zd+6vm8?`#Qp7VM|4Fn(8W8II^OkLUcMnV0%8i zr-c?L`(fwaopm_}=js0UIS}xkC!hfcsZ1Uc`D4(y%EXaKXp!_}&7Sgy>)}~Pk7k*v z0R*+iSy#a$v~R zeX^24%(kxlnZBzNfrHfi>tqOoyp%v43|w(75S}?G)apg?N;OE`O0+b$p?Yc&Fa4;>M((f(+qN5a0fa6{?2lCvuLHUtJ~ zs?$>|(7(8KG&DIi>SSt=D-4F6OKZ8(PI2i%r5OSRluhu66AmjYKYItpG80XMn@&o9 zR`GQZ{5deuBqL;2oG;ZZDUr_&L2EFS#)4iOjE8~wMjVvio6QBl+}v)l0*m+ix|BR6 zq7j@*t-zf3jCOGVB%GV-9-qnRuVe{8>Sv@<-AIjL3V*mP=gMK7dWVl_LqBz>zeAM?E0)b*m z(-tW@b|C-yqZl(%hEkVNw2uUR%ev%$PwfoW32O$$RZzsii+!`7Q&yF){S3^1cz<&M zQOa^}ud$yq9;5$y=a4dqMi8Wo()uUXucO%AZcab&9@l#!UG*^*LMtD{)wQJ!^~{{|qje>0#VA_7t-GV0Vt=7IO_^w2S|1KGCn=&7 zIiMqlKFliD13Y7lJK7x7ntg0O;-~v1`zg0pU=VC&Sr_guH7d{#*$<^ee(Eg@iS`F% zHA>;eTJ<4O1GTx+rl($J0Z@RWFJ@}K3xQP1SdkK<1Xw00W+4cO!<}9e@|b5YYCH+E zFWSfJrGrx^O4gG#;Z|M={+0UQpTC}7#2Ib8d!Ua7GQO-kqNNQmX*UEU0pJe@7AE4U zwf@t!j*X40k61-dQ|KSSc*Zpj9>=l0*@|=`jumLC5r}r@uU|vj7K7zem7BeOK_t37 zhCmC^0leiNW{O-pQ_NwEDVnA>L($P+o!;NhiVSBkC^Ts;Yr+#e1qvfIbcC$AnegCRn?NkwemQ9q{hZ80)DRKKV55>n@+ zrF_6xec$!x3-5M?t7hpcw?AKqOMFRL_1?t$qmqSty(Mj6DiAf?M7yNXV2p=OfuA`f zBa>sjholVH6rcqddf`ip%Fh>sbg|fg9}8rHx@*{h-8b_G>|28~r~`VU8QhR8o~FUQ zVm$X6d{aD^e%QJ#Rz-f)Y+bL?@#<8df815HKiz1(<-p~CrfcD+F|np^Vcxs=+ty|2{Ww#AoH6&% zo#cyzwgikJ)APFGIg@CG*hvi-ht@)l>k0=EIZLZ=Unl@u0cII6x44LJA^Z!4lKC?+ z9iBtCzQH?K4wgx1B&ErK=cc(pgvCHGS8NR*-4R`eCMk0^@ZhL4ck!fIkTYX0{Nqgm zXA54u6v#2s$LYCGvvG4HO>^;rGg?keO=~o~A8voFukYHJ1yE)-pw)>!Y}+;oIY8agmiMNa9*?C0;5E;h zHZt=0bU-%>p5aW6&N2xd_SY96bo}-0C)BUNVo1v5@6@~jh<6gp=2vF&@wdr}H$BYT z{4PCWcnu{5WIqkMf5GmJVYAB1Ad)%YW&d!Hr;EKvkJ70OOUUK-T=0;^+mHL5gr0C3 zEfR5KgQKbmo0CAPN#e)o^I~h<*%Y~*smuj4Wl)?JMmXI8iCS${OeonAC~;6QHNP2d z87I7@!9)1R!d8j3ifO>Ls+-yplcA1kmC*3XzXVu6ap`AXI@6oLTU$`DRye7g8L|tZ zpEjfb+C53hi6{uQV+PGfmYNmYK&cfMz2Hn@A#As71>D9s->gk`+WGpOc2;8bao>Iw z+|m*+q}t6T$4O})h=stm(t^*S)}vJOojv*?LbHPePzF;5I;L%%b*y%a&;$ig1fR%r z&(EdrJEy-Frq5agd~+-oM}-f|I^f1|NcM`aXW8ji6?K547g`8XK4#|3K%L?MWfbCz zu0Te^JT~LavfwTq1(Ui=feqFWFM%nOSdLj|`ofd%rjvvjgu(Vy^JZUHZQ6_h6WNlg9F`pn0bGzs>?3HLw0ZOK&|M5DU zPKimPl{Zeo*d(cX7TUPF^a~>+90YH4G8YBWFps2b{&?jK$gEYWx3(D1 z!<21adU``7ytCf#r&HikiojIc~8C+D%CNYW3!UMh+0Xdsi zJa%p$1_QS`eLF%c*M|;d-cycTNT3ng2n@+=H5Bb2YKy3*W@TT9jMnMqPRxN}#5li# ze0*p1fWUan)K^A~Y4FG;5kt>L0VD19O>3u&F_-A{u@MHIcSe0TnJmI^0V)0=rO?PJ0vAVOUPhak5s4~M34*5kF z25O02RuL8fQ>{_BoGq=8f#?NIsMkGNodk7Ylh7DoD8 zzPfI@YFNx}*sLL!U@enFT-YvoYpfdnBm?&Bf@OHevw%+U zNRBWjHA7s0U^svMzgEe2yb+DSJl{eE#<^>v`hffK8eg-Ib!p$35ZH= z5}7G;Zk%*q^70w$Uk`XiORbbdlm;NByg~_?BxhNeLBCc$A7><$B}~vTOe5~&dmARs zotTzJbPr_fT)?GJloLIi(i>qk;>rz=9}hSpoIKo}ii>mnOkQ42-`w&=W1Po!xvcF- zEnhzAm-46a){EHM_yRk8D~DsL$RUfV1i!Yw-s%fDz8_C7(k|$ygu(YpZpJvgCa5gz z5rLK^>vQvTkX<$?3u_0KNH*~diAHfFDBFo!mU)+qkEVP3!7wP3Uf{|L*1y4G*7)n! zqpZcO4g-UdfaDhx0NmOOot^!(ktSw_&U!;}Nr}%A5Eb1#&YUEYt0*XFT+&5E=|j=< z9|0W|t=$~l^XX$>=y>)o!GlGDE;{5K{rqWO_{J-W&Yzw!e;C)M$@9{JN@+AeU~GqY z5Kiw*B<7HqHp9|Xm#W1QE}fP?(CUxm4>Si|42@W%F=%{!XE;1D$fP_A?m$ZdjhZhO z$MvEw3*)8HHSKT#$bZ+I%5UrFk#v%-aEB0KAZqEQbl_q|krJE>MX7oAwZ0-PRqgo|BCn>&`IF=Y?=7?)5<=Q#D7yDqGNhr5l|ces8J$>Q}~C`goaq;?B(t0HPdZ@otlM-AqfX#@VUglq#y zWsHU;X<;Tgvt)_3&m3ev^ZX7iX$`k*O%m?D+_2dep;STdlq9yCR!B#D=dR@7LJ z85N`5m3X>xbXYH-LD6v6GPDl}URyDKQhVzb^W8M3^|hoU-b4nq-D5+^lon2;PL zp(ocvSOQQmHb;Zou95p}Tj@NO8%~3BV^2n9QToa)l4ofo^B7W2=o7O2Zy7hzS9+Qa zUv#>;B0uVSJW_+F zhC<5xXSd1N+X}5uO%?u&Sz?xr+3NE3!%pTXIOg(K;@F{1e<)9X;eFV@x8p{La*u76dWsCAC0 z;3<~x07XE$zic`7(5?15A?1C^k-R-y@)9btnLDSgvH^s3d$6>z1M4mtq?T|Iz2YM3 zA?o4=EdIQF9Ci+?4{lBwn@bE6?KU%Y0AxOc_BM={1iR09FGv=mecTfslJU`zg93YT zOo1Jo@g$P+4GQO+;4Q?&^kJcoTaNzub94*cZc~hIGLFQb;6R~&lI|MOw~CDqzYY(N zjCe>+aKWO9$K$o$5FXMp@zCQ4CIsQ>3o`==r}2dIkaDmk(QT?&E&SMTv9|S&6XJknCMcy%W2@rdP%wEgdul!cz zeevkyGTT7sO3FwDl~dss9`+PIA%681n@s6mWE&6(nC5c8(lsyV9gs(PP7hc92rczs z1*EYX;^fJiOiBZui#@5-C{m?XGQ-G^>`gnqI*TpO>_G@HJQ>KO2~5KWF-$y0DAG#q zt@IR34uMfZFui753z0sPh|B0G^vM_P~}qobEq zrQ0l5Oo}5#*R0Y-wylJR92l8TH7-l~!I80%rumsuY;$h{jKzA1WRep%|$Mtgz z>Xr+=pZTauYs&7%qXV9JSn}5Q%GN$Inb@Zcg!Jn~;z5y>%z8 z^3vmGU7;TFwL<%I6im0bLCFC%Q-^5POQUw?oOW(4%3o!?IS^&_RtF+&ldlJfLJ~Uf zM+45QzIfJS^;%d8uD;1{8XM`_dH&`30P?~}5KCuNoE&~*P6xuc7wzHzhfi8dI^1I1 zK?i^(IYS9uox^YP70QEYqMHOIy;UmhPlW)g916w1eH_QvJjhlsxs zzRRIMb@u&1a;aLGnikCh(OuI)>sTNZU)6T+O%J?}F;*Owza|+_T<_`~#Wq-@lQQe; zoozSdrLkLV(vK&*9zm(eQ8rS$3sVd2QGM&{l&w>T>}7wI?C(l~^;=Qa)VPBkGn3IpP+HR#54sm{HY` z+mRkD9%1=qq|fB0SeqliDuv(YXIAV~ZgKgK%|}d^D44=pDbsI+P4mHNj^!aETG1E; z%18w+gU}@LiOGOh`t`J+uUxQjskjx;D#*6=jSCkq50sTIXTH*TAUTuoOfr{&8gQp5 z(IZ+dDQS+uxbwB$YU{MpYSgV6Js%ppFk+MQ@*7}oqcGrMU7Tw&lSwJMSnWmIIA)e^ zM6u4dyCpc1LsKr^Z`u`$#G4rQPG{dIe`MWotu39|N|QZdx{AG7JZ#+T$Dj;p*7UX{56pUxSdX5*+lmX{xiD172Y)8r^qOtsfs`JakDoOQx94|Zfum+8Ls zezZtV@&Kz_v2H}f%*thGFWQJGGO015Xk}l@lu>S0J&{A?_VALZ`AGj98-GQO?`Ion zey1g>LZ#y|HU7rnV|vAv3w8~GK4I%wfbk`UB}`S4+3I45lSh*7q z+hO`l8Q2kJcgc&M^(|;weL5bf!FXvPPq_skm5O+LD_)Dkv9d#P0VRZg1LnA0ds|x@ z9@udrnhD%^KuibLb#T>`9o55XyXu1r3*6Q%0o~}MTRq8ti@^1h*ru{v4Dn@&i)wLO z{w41mvtC!Fhm;x_C*nwI(|N*U>hvW_IEolaZFrT!HA2U&7A(LOnqvi2eC;=E(YKM^1`El#k zQ}QEbC`U9$-j_)}w5QbIh2(D4+Jr@t1`hn$ssHzl@?M0Sl7Qxy%a@DVJVYcuZt+M* zTgMhni6_ZJ)FzV0xF>J;a#d{z1%Moi#u59?PRq~TzJGU00Y8ZnP-B1t17 zR+L{Za&t*>4R9ORsqnewx*$Ff1j%AY>`r=>#l14Jah6z<{Y3dmuGV3S_LkZwNdFL4 zgH)oe?3}!rpC6S)$#jo=`r1deGnOa~Z%=e`N^B385_1APJ3fuNIMJ8rg!Roe5xQJDC_U?_s{tY_J-Nuwi)+f zWY`BH3AvFA+bwfZXCvY)F-@=*oP4jXFR69SX!cT+vC}QbE^8!5_)9F^g)w0jJz=Z- zj9E~}LB=d`lqDe%*8d7mP6ZWuc1||eUZutZKJf0wtU>8^+)9T=@YB7`DX_^3FP)i+ z-l}ZOlBq&7M@<==uP0j=kQyv*To%6Pj9eXS-qE8CZ7~IF59R2j!o&fVtm}T)n)zyOF+NOMiR^UwBUR5fNa=fSkCVa9152N(|@>YDi4> zO%JI&l0c6qkRajwR%$ zO>Wq5=AjE(0Ms-6Kt3n-O}y}A4gOiWEJ6fSvzK+T!b$J6YU+fqO93Djd_VvMQB)SN#!#r_D+d_kI&~iIvSZzS(4M_ivYX2bq40%5HH_M* z$^tksg4Srrsj8}+r(w65Ms@aBOk-Q2Zcf*zcyvzRM4MRH#VQd_I0ORy@W$NX!*e$t z0v3rCeE9YlhRre!e~<-Idp>cWJ{Hro9peUl!p4jv$vgDAsPKfCX;7=1yl zVD}F<8`K3jl<0sMOc_Wlt(rF{w;X`k) zw9awDr~6u`W$5Pfn!R+azh&bYS84v0w}D z2dB>*Lf_-4s)9MGaRN8iK=~Q5i-NDXC$tjK?G_&6p5gi(t6M!~9vq3pNGo2^m%7E? z>R~VSM}-qMjC$2P@HQ!V(6)!=L`dX!M$6Ch;}dq}`uZ|%M!hK|!({mL?*qB+E}bdi z2o%QKl~6Wb!?$t?jpGD+s%ZDfJc>-pKeI__E~mGcjsvS!7Y zusJ3)F4{W)=5srbLX5AK{q_nHnrrs;8QkXe^_70lKB#Ib&#-wSRLkR?ylTBoRU3f< z>157=O}yQ)t+ZSJghcUYG!J_kE8*RpAE}H2p%*%;JcBuLsRFkF{z1=w6aoc*p%r%r z2~2&v#X&v7qc#&8uiKzycKF>vbrF;+Rr+85ANEn+GiKgDpXB0|8&bDimk2NgQpNxn ze+{HkULf-<_n7Ne(RYR1SE3so6@q`V?lR(FK?xt_cBx0HJUI&wlgc!1SUaIVy9165W~)bEVdWK?t&E>anro9=REA^l2S{WD}o3I-yMc) zHONyJ~x~)-!6B6-+T3?r`y=Z8V zO!akq*TxVy`3(ue*5q20roz;H@kvO+I>w7{OMSbH3d~_IE!AtI^LSQqFvJ4Fa>~ws zOhb@g;DiViL=ZM;Cg{79Q>AfzaNnr%J(?J}els|}5TWs2c#c!wp<}+N)i_mc5wZ7W zemAhVwjT7ER#jTZI`nqNuM6Z`ZRtLRzY~Bz(+$xG;BXs#^j`+y`4DGI214ERq58vL z3MK1bq-Q<%Noag7-KE5Z^8Qv1UNPj8x-bbMdy|$ohJ$T}bI>`+59*tyv-HtI;PvcI zo|H+!6L5#jX?qG?N~|F25cWDvxT>YndE_OD#dU_~)dm2+`bXvj&Hq-`fuRDm3+B=R zYXWOLZz&qidpsRa@kdJ6rJ;C3PHHnP%c>iy@9_{QpEUqGU2?+IsT<#j` zWPWZHu#qxyaxzb1yEcMbmQ;b((h5=-535UK%USd1ii`NKG-F+nKC~31jRuTxdElq! zfocYDIvNB=U9Vcu=-9|45-b$pGVH3D>%Bu-UOz|o_*Q1(?DprNv9bjF7brsO;7Mik{3{fR zIjt7%It@V#4hzHeobL+%ymqLi)X+54QbM;#AlG{5(X)B%eE)bGzOJ0squW0&_+)V&)k&ZlVcwHls)yDF-7GhRwz{SlA71SeGBHRa#K0Baw`(tc>suBaw4;>+a^8 zyE`uH>D?LzyZSD4ir1++>Pr?$R3{gKHkcZf%5688(jxLY?;7mlzHc#ftUNg=wW9_cFMZljE zbDsz__PRp@cT8%1DH*Z(;yfsZo>_26cjDdiSBqYf{YXrVEem$b+i-;W#F0P&cizO% zpK!&@xt&$|OSqT7p*}I|w}A1)Ov}EhX5s`eaEZ{)j+Yxf)L-k2@t+|J2|508##_3& z!N#qw`E-OWV_Xf@2|(3x@m;c#;6p)5w6Ac@P+@O;9(k#3PTuN~dk;p2^C~m5M$q`n zcuap(cA~Vz<#{E6V7!wZG^fW|(pzO%7JafdOZ-X&%c+Es63hSqUL!oo zoyiE#N#9>D?yfR3EkLnsvow~=`(VoKP~trS=1V3$E-C5F)tp#%Osa^*X0dPC3!RHX zM_t~ojTX`?0`iOI*n&`bxX?+CZmCva=4&l}Q;fxA(Craq{Q}ryRkxQe+Goa>C*2@1 zPKy2YtuRm_^Z*E<&aZ-pNR{oVT}WoI5}prRv|7S=%N^py1zaw|Ad%pJy(^+zUlueI zVwk2+cCQ-$f{KzOyRP=Jh{bjxf^5tLEYx^B>>5N9cu7tIEk+Z9>}4!3iCk@h-qU2X zP+3&RXfPER%PaAAh7A(j2^#CyZFwKZ=7^+l2SZ#n&oRS1XbWI3xcA+g0SYCJwuqw z0lq`Ao}SV699L>VoU*kH+D~c2?VpULl4)!(2N*|mV?75{qY12aHJv=!gz<&?Cryez zBL$AD4emjwM2Hrm!{oMw5TYsQZG$4moADV~ArKBN>X*)(VZKrxm8ycdnP08+k$ovU z%{w*|#qZFcvM7#@Z#veL{Bc8G{rSh0?Wy~%+qLPfK|PLo`5I5}2V%+zg=B<&_{zoG z+xxbS*Y0R~mu@dgewfFq#iV*u=qyTtrb;6+#jV5h5NQkH|5|=uqI+Yzj2>NY2bN+| zI`nor>!afKKV?4&bXr~3xZl;F-)GgTO=}M778E9qdU~I6vmfOp!&O69Tv^`QyJd6r zwuU!pcB145xvW~3WbX(X6cL|PsTNk|tWnHEjvORy1jLMMz-bKKceKX81rj6k=C3;s z&G^iV$q6NS%SRurI6yTzd2uPUsH}YAjI2)G=RN(j#_Yx2Le_!BUR?gEQ~5Yu2LkK$ zs$H5td%U1>SNXN_(p!Hm?71sf4;Z9z*(qK!)%f52$1TXr8%s-|6fkEriA>VG?j}$9 zvQtpJWbNProyDFlZL$@B1;;-3xZU%Bhi>e68_H36S>?2j0Ak@B;)!{tLlRM%2%FBw z`auBC8Ivgpn2$os>qKBYV3LUJnZef>v$3-91?j*3H=fA{k-H^kBBfc07Lyf?`#!dk z+0dv*UEEZC>R@OSr8JmDa98lcwx9A-gh3Sj zPVeG{tq5mo-YMS6?BXV>ie#Ap47xQ7xHPSQA2fbzEiy~0qEPxGWkKaZ_zYE#=I?FR%$ z`X}qka2xh9=8he`O2Zg!>S6}k_RZB{TkkUOvE@H&OK|}lr?Mf8h(Ik~SvfcNDxH>Z zFz|tqX~j*_Y~(%l-@5#^wC$?DrIPl(DCsw6sl2~mtKY|&#{^g9*rTM=E-w3x3XBeL z&D$R6Yov?=pRNn;BM+?e`1rwNT?Rnl`2+5kl8tc#i*K597G11%OOC*4UDHDqD;=6k zHr5L*?Jp-&qRZ%eR;uAfBX9-Argcvy;pJx@^m>V@b@JeJlB#%ROq4E)sCM3S+)ZZh z(Vsvs(E-}a6UbJ? zi)t=*-PZ9{NTKsE!OCsNmDboQGZLu0htOgNbTfdX+Q}&4&m=}8vBXe=XnIucAv-Yc~5wEt#<(A_qRo#V9!r3PQ(T_+p zvDb$fg~Kxb)%*&vb!|;U&7}tCp>S;~S<9`fi_$p`0m5Iqo$}%pN)cPc^YgkcIkeX% z^WiLVfJnG$--9^Gg`n?Y!p+vm-x-%%zfK;QZnOS8jze;IOttTF`ARb4c4HV6{^UM* z%?bRR?$#0HN*;nEb>pN5w>oZFlNOzreHv`^dcxDLwCP@1JD#@Wv3j)Xvlr8etTDh~ zH+qA1FPfNN=bV$U$_{&w&l^1_REHp7O4+=1b4=r+>{F zJz}v137f{^?qY}leL_mwIf;h)#KP2$@ky@pJwsMfjkzVxOw~oop1wSB86Z#E4XT z@RsOP5gsq4QI%Q#rAz&e71cMl|C^R(y%bQy;I z=SraX>8v=nGuK(Qwce=wMqWCe%!=cD?vBcuIAC&p;8EwnXh!KY)$5|VY9g~bYoanc zYopFCEbk`%)_U7iNk+F+dH6k@OPRtu!fW|{B~$mW6rG`^P9mMg|(`OwEA(}UJ(8eEa{%8cMe z%`O7PK5(|??Uy0VT|B4)+wy5mxdFml#Mz~8&TD!I`8A0Vy9 z_LYqv+(tyYkaA?dME-0IVQF zq6on(SOc)SW|R7tuYcQIk^a?H%$GdpFj7aqHr3b^DfUK#a1 z1%xQI+DKBV)IxZTwM^89h-xhu@a^wm+Hf4=b(#WY-J3M zntBML_NYog>eV&+tKxaMLl*~)Q9x2sae`0zr?5OP9ponQ9Z5$f0xfVrUsEr;ZEmLZ zzu3Y9W2TT=H9Pe@c?1a<8hSkmdIs)AmE+0`hl$i@S+5i(+8GNE>~;xS&2k6 z&H+5_A3=)xrPCLtkWR;}m6~bAM3wdqP9%TAHz4izE`}h|E6c!V97&vKp~gD3BR}D| zq)>H7mlts>H9RPj8PD3TEl9gcM4ub4xZqVWCTHxs&b}jAxdIp?eZ+&1i3cr|bE6eJ zNt(*JjbP4uHo}2$*i)qYnsq_zoNa9ui${ZSJP_@f-1>9)PibQ?0?M|6b-x(+1)Y?f zW*)*dZzB(^lAMws+SM-aZ(W6Kt~@AzN$b^?E6^ZY6htkSvC|S{q45O2aUJTNyWuGr z%RE(3ad~f1UNkvN9Gem&2`a(A@g-jV=Jt;wRv&hR94als=IV3Vc`+hRq#?sJ#t86S zRV2}$%8OgA%)m{3f!~o&zJGE8J(=}OEs+NbiN829N#(8n-Yby^$|$iNS!8W!ucpP2 zh@1sXVW7MuRhd+mt_t>)L-!~K4+Os2<%%7S9VZ}2CqF1Ij&~sytX# zm#$Hiq{;({!UaqYDMn3;hhD2bhQhpsaK+vjh3_!~%tE-2YOpH34hR`f@__ApPq7XR z6fA=70*d{S?l8&Uu&>Iw0?@tlh%6j+?umfI=!E>h!V0uVbN&)Fz23yK*~(I-)#@mv zhx7G~E2PjyyG+L)KSpRHeo7bg^1U$+^^}&D0vrpJw4o4iDNiEJElS7|{c#Wtn*zy$ zH^+50mDecSgrdLqtL*>omLX6;f$9i88pDAxlnMZ(CKMSbj&n1u*@uQ$EbBR0gBN_i za~iADLC8Zzc5udg%(^8Mn6m^kxHlhvlwT@%L+j=^&k8)FB8(p!Cn86|wejcDAqU;U zqr?!T=T`OWv#H>7z$QF4L@jNekHMRviw=Qwu5_My=y5gvw<2x#jIX>(>)h;pU;HRu z4!v#dCsv@do11eI-U8dSM)y7v4}B_g)>g?C(}x2VBCw{Q%=c~lx3{eZ@BI9z)fV)r zId5^Oxu?3(`Fp{XZ>*3Z3_K2^e_eM6zd&IQ@FQW2#Ob+N*I9jO!J?GJd?V6w@6ufM z2J(rQNelv%U*DODS1a4gBJGim|J+X8o`Nu!e3$2^Ij1=2*1ZZY#d&6sq__z0ZtVVZ z%b@`1Vwk_qejRWsHAN!<@&$7W%XUuQIX=*1$>iv>QAgDw>wv?W#}9!x{`}C2k$JN= zCaTH|y)81ceo_0D%K(8}^kLz-mYD0%z9}`;ALHZM>0euyk$Uf6X&&!%s^#-yDBrCf z8c(E+J?KL(`pMv&4DAlE8BjDo3=cWxRLd*^?lAzOuhp#56oxs`%_8+?z2M1E?yRO= zQ@i!sAJm+GC?7C(H2ZVUN(XadwV7^Fw|nXA{04o^3?sonr2X>u?#Yj!@t+x(RoTJ& z6TPNhzMN7k7=bS~_a_Pxq?eExi;EG+OK7L}E$!b%_;Z0ZlUV+=-j-PWd00{RGlh;?}k=%CeTjT3gH8S}klO z-cE{TlvhYs2G32%Ul`E}R@0~Cc;<7H^_E#ihG;W_N+Zn02X1Gb;|^{|d`gISN$vPb6iA3F7=ul4nrMeB6Y z*XQm7VkWpe4VXpfU+eMFaM3VIbb24aSPZAFLbS5=tS(aa?fUf!E=9uP#EzhpbuBPY zQ$oYO7;OpS+ttUSoS^aIlk6G?U3Qcf-(;O&w|~pSomd(FQ2*eZ;`*Cg4Ht~+R_;U7 zG*1wbjFGjFzxOaEddCv@3C?)J?>!L=pYD~CkOjz=7SenIVc z)*kS@Lr_avssNX67ObD=zEWqrym-PZ&h#5;d>goL@yeXy@sc>Kw{M&maZ0mb1Dq7= z{6`er;eHH;iOH33AW#bDI1sRT4|Q>Z>!P*U!U)Xz*6@&^wfdQ-jg6m~)r>vHwx1K5 zRNTV1ZZdGK61l%&K^-sQMq3SCD{x-6wMMlUo5U!}^Zmj<$*ePHX94rG_1O*t>`^JS z0mH<^inR_zOl>sxm`6LmKR7YhThXi3RMB&PllwK#Z)ue{h&rb({Q!uxKDj+GFHFA&Z ze4l{Gq>7VX%s=>geYaciqQHSuR|i%1y&m=(u>|Z?eHwv{KTOxa_W2G~&0f2}jLm%* zObOC9Xt+4r4eny%jmM5f+OPs{yf1`J0nyn(g$@MlHp=4b`?ixdO=}c9>CAOGjc+w6 zKXIuEBgQZ>Id!8!F3N3K0v4%h$g1*YXU0)~8k4uWS8wtDXRScS>lk&cJHrXdZxaa*E0_iv+lS{OF)}dP)V5I@OJP>2nDX zo-+~l_juI0*DOc3Ae~K1WW1WNb{8dL?XhpZgMSCsd;;M7t=eohrFscoVM9kddRA<> z4j_DA^}`RQ{cYf{w?(O1QEZ&*yN*Z1H?2wk-`wgXYdgN!d(4dHe{W=Gps5=uM& zs6F0!cNRdrQoq~f{&Bh)TmuqoOE7yfbaw4920bEo4KRPiPTm)k1NFRe4X;G*ZrTQe zN?$c1TWqgUorX6^!WMtQ*YhxV8~87K$A$rMu#mwxJ~l?O zz78iaDhNkh@=@Di*Caawo@j|?6aYm+*ZilMLlU}{gtskV88Cs}0V(j0gL#x&Xv&e1 z_7lIvR_c`sNHU&qLy8%+cu}=b!lm%&IhqnaCVFS#fUS=zl`Ct>yo4vk6u-(>U!;CX z`L&M0P-kEF5JOLUV)5e6%$A9xs$tc)^R`aO$RP00^a`i@enBS=l`jHG+2!qwpKr36 z_39rYrwrQMtQsmXcLJxux%04r>yAqrqfbnDi~EUbF~ChKf6IV++?TO?nIM~O&1Fiu zAuLZP_NZDiPKs>~!Vd=GI;gac+@dN+$6(;}cwKYSwj*XlT$m930rI*Pqr^r@f}Kcr z^X**{tEvE!Nela;kw3UMBNfPkRf#U~HFq`1uFg_FH~ZEXkPoipFdUIOy)&u5ZW94; zCOIbOR&{W&9kirDMstu9n~WP(V>?NGyCGbU7_L=z!W*>ZeW-*1VuHU9nR+_S&CWS_ z9^4@yQrXnl*Ur9^?vvj9smcmYKq-kZ-jI@VOCAy`-Pzor;FIKC~AnIxkg#JEFRE_du zH#B0&q+aZPUhF6-dB+q%QNXQ_XSDMmyplN_Y;5q}yR-|V~XBWrhISFaFAU8k6$!ku*yc^EJSGK*T z=KmJrv-}|W)j{&|Q29k__J?rgrdiT*(u&d(@*R>&7U2?b7&pUyR-wDvz_&Qyw99Xw zKbNE0@4L&_{_7xztJ>$S{4*m;MhQDpY&H;4L4auz-G8eDr11qq-w*6&e^fA8@^>Br z!b$u0v@3qp9<*DRuxmmcu?6CjG|@3k`KVi=D)YuWFKW~JOaVbnFj(b%KK&4}xuml7 zF64CBx^)%E!*m~Njk3gPT8+5sHpJ|qDdP~aq;(PO9%T5M_-^B_`~<+cm8-v=e?OG8 z*~-cl?h1o^ZZvONyYo0m+b^TgXw@OB-2?`GgGoNA*A^e%{NH5$Z)T`L)kW06IxI=<98b%6lU} zd;iB+CHAF5u!l=cJK>D$!T?2$D0_BP5;hA=VVhZf#%kkFlZ?@=RQAxazhDq`AhEds zgq7{P%O6U_+S`NmGG>G^_TNOB>Eo_1pG_M4=u(X_vqNHs79c<)55!(1c}OC*V*}wO z8{dE%PE)z|3zSu&W$!s?u>Xg-9gr~?|U0uB@mjb^C5Ev3=!e?GFI*zjmb|Q4D zyu~u@3=`&LVB1jIu!OhXiT)16P)2N6vDfmM}z$}e0Zi01L{OR))P zfu4}63BO`^8d`|I>r7G-zM8sey-&v|J?^%A((R=D$5wrax+(Cr*S?+LTU!C?AKFm% zThH_E@opW=^W-w@Hdz;)ORAL#zf~Aa6PkSkl2;ipB!Ak2QaYfg45d#1{WD2wx+u<) zA5zwZN{xUE@R2E}ozxcj?YE|}u?71ENSjIfgV}DJQ@1F~XP8Usa0{iV?=qWQpO2;v zZ%*CsfgO2a=)0Qsufd);lqckn+HkfGu_YUS*8xkbMMbG+PZ-5pIx5W9xDWu(4{*Ae z;MPsxlNSsOfn>me1GePI-i?ZjASVHTm#mzJl7?24ui?0DtQoTo zs!1+h#mj{W!Mq+g-|#}8Zy>e5meHZgrj4= z8?!cubAI>-pzZ=nX>G6<7U{7Tqq%Fdj{ zJ6-jjMV`da96|v>(2xaDnTc#7lvUN*e}?e2EZ#%xDgF@TCuW;Nd)!MzhF#ilBPbjN zUh&S~9u>OfdG`);J-nG1Jyp5fYHt>9{t)nNR%I0Sb;+PHh2|qcnGMo#QJl8w2aXxPeRIhTR9(X3!3R|_iCoR%=rf{e*YNuQ9J2MWPNq6ar z4!pI1Hcme~o3T7?Cn}71MA!X4BthWHg7F$S4~b?XA~449yUJQg`8$lGAYb32RT5)I zYp5d03mRD>Vh_R)3Wq#$U)jJeROYo@y{cnAjje|rbW=m_5v zdRhre4peW9JI6TY%}C1-uZa$T%TOO)MRQaN5+_TXK*8h&?#~4G3<`vF_JKn4B}QuG zWJA+`gV)!p1{Mu(u^pqXhCoacn)1(OF^k+Q143^xvVp zbL#KqOr9Ywh(R))QuiPaAe%G_qZz4~f;t^%wO@@YTXY1Mi1bq`U5>vt73?g58&5gA zGXtii)TcZ5eX>j{;)dPC|}Y;umdv*NnW%@a{bJ%bE9HM1yc^v49`?q&f!})o1m8}dVgcOqEpVx4TXOF@ru2`4y|3%+mhgT=W*RK8 z6(O@ep%JM|2AZRqIayLNy6|@Ka`{9v@5Cqi3d8uB4@&O^R@KgztCSwA@*G zejM6|)v@YSADEAE&J1%pcDX={?om(r#j7lDc9prji1zFK94xnCq5@^uO7aSZC05 zUNoyxd;YU#6dH<5$q{+ee{cxV;hLJs1^_YMsC=+b2Myj7GTY!a-XaVP@^r~n;5w-WnAY*kzmT$khfH&2ouL;on2i6_id@}sdR_6ReKn5@%}+F;L77DhvpWU# zR~PA$Lq(#_o)&Wd<$LE~$tH=!EFUNI+jRfk>=llRTR6cNap8$|?)VBVD91|dUAvex z4XE1lnX>E3xizcj@L_rUw+d)z`dP94nYb?R{>wC-2Wlp;wi=T(-|~XCVfGxN_6vh? z%O@zB3xze{mlYEogz~r)a~g_R!$qCdnJxh~9m-+< zUmHO+y#4ztJ!HJx;|xB;xnC|B?y6|d&&cRFbVA{Cxacs%4@gSJABt?8;h}6>RY)}U zb}k9K%06AjC<<$gIWC|eRg^(GEI}<5tiQ&0=7o96u#nP;%kfs=YF1SYoL;_|fqk%i zcYjn!!PA&59|J*g$S^xB^IAkIuG}MgpS-PX%t$xj)nXn}Snn`HfyZRcbwbgi^)=FD zs6EYAuv}CSJnQ6K_r6wz`$U7Gvh4EHB^h>UCRfN0>oF8QmleUAP=ENiR0;ep?5Ol1bMx<)P ztE$4zlNy*+vINO|PA7Ftq~gOIq0xAyhbD?C3aK`Ca&m7+=AbkI7Y(t#-b~w4x4H>u zZj^{xVV|S9z?36&D-|;2K51ql2!9gKrM(;xDaXF~J}@LE+sg!Tq`(lp4;Ai?l>b_^H}p9?N?P7 zRV(TIQAf_v`BC%S#^2;KEadAi;3bMhZ=9n7j^D%HhYl3gyyy<+^p#}IH+p>p4I>>- zw{&}XL?ScctP8us^h=)3WUiI)AbUe~H~o+&(hV9zDQ<)?dmhg;tZSyNkSKf!btpCc zm31j1>wLBpRv`YAS8^1dobY9?6!C7|e{PfB>sVKWPadRukA#v!b(vRHhXx<1k}NVz zA&n@DOMSSa1CaEZr1Qc9y0`qCHF0z6pl^ZoF$ia4Lg4a`fI&`~0(aoLagn+LQRlq|N5^ zAo?@Ty_40YcT(~JErnoFdR*_*r;T>$0D)ulk34{L2mpz=&?+f^;>O=4ZRfvdPTZ#M zx~)lhvVJ4yn>s?eeeZjjL=Y<9{s&aT4?=5{ZP?qoUOTkK1S_$(jNz z*h0Td6Ql>gJg;ZuO-W6E2>{ur0Ok9R5*P^K&cZ-$X5avZT%h=U!L(!^9B-Jyhlz~s zj9V8rTdqPRthzZZx1Lg6)q<1a1_o5keeHD;K_r_i!DZ5-6g0+b0Q$R*b|>%Z>HMFT zUP}nh?9$2{7&Z-IJ2+%5cq_Hl;YtTzhIJKRG7Qe5N3Q_~%5no`Jsq7tz})-WD7O9m z1A&SYcZZZ4FE5lR#{yqqy*2uG&M%%XD>_(xw_5yI*1|4wb;yuWmVlRmS0?QP++|gB zKYxLG@PAH&(tK)a1R7t+O?NXfhvdf*9}gpO7D`)n|5rxvc=^t{UL!E`&pX(Tml8^17>keUn3>qx z_9L=9pXlpN>w0}2baie1xNG~4aEF#*Qx>e4uAb8tATslC7%o9xQ!$=jE_X*CVQ(cj zt}IhkSE-cMl?pfKZDh11MfN=`+faqx>Zx1Ou+!y=nyU5fY>MsY@k@|BGrB%#I&fMy zf7hQMyJvp?-Xrgd)H@t_M6Yz)-%q=y{(RZqbke$g)YT?gIsND76uQQ)aAI{;TV0Te z@t9P)qS(&4Bf{aTRn|ste}4HEdCt|Ps-evg+l9%YLdZI~68eRYJi;uE+=( zy^}oQq7v`}YQUPoHF>1bgKy<2UAm3$u`IoWwkzme$12f8jI200yT!cXn)Vf@plwr% z-BhJX%=S6ry14`6?As!${;kAcOG{^H#qcJ>TwY;4qze*QhNm77#{DRX9CcvsvmK>v zXHOd}i_?jQ0%(1K`;y*ys0JjN1KW}kq$CXAMaKJE)9GT8$L0*PTpikq$arjiTgC9c z0MXNIIk91iyVMQ8uU zLx2A$raTpYXSZbU+t<*ba!q?oSJJLW2WS#E{5i8%_eRN_EOSx@h0EWSdPq0Yde526 zMsj0FOZ@-%8sBdjQ?B9TMqw}+!xpW2vVoOo$3vn|?*Dyxxe6SAQ39 zr}o=50!rC%N7bOy()6@2%<7C^)zpoujsV|rSO3JAl$Z*CT{W0^43YrJ_Mn~?;Q2Aj zd3Dkz=BEy?I7rBkCljCkJEYP;yF5|ucJ(;9gp94ebyloA9_F{nrbSsP7Au+WbZ)t^ ze9qsp)l0SXl?>D$-RZT}Gb)M87O3hX+x)fy_TH-_BOCf2@VMIzlF*J$*=Zt8L!(BR zTETTx2nyZ7gQhq1?GWmDTs`;EhQ85}V+55CSXm@0=3d%KPU~pyaU2D~hiJ(>hp_C2 zqSERdTekq`t%i}cCBccsRay4VLGDNNIGk-8UXIXnAFZ-=7uLeIlanMi33PpWqwGzZGc^&=nRnea|NaiXT#nC$KguRg@; zFjIWnUqNM&XRbUl%s3GJK&>n3u{D$lGy7*ta5~oM@T^4#>P+7MLU#X4uda)UYWq6k zz3wU|dWDqT;HmmB;tp0I3qB5^%}2CY9sWZ~qv}cWPqOz#awYkt zVfMKTxtqb&36J<(y-k6*{Go|<^2nP?XLx;d4Oo1rBJAW;$YLuQ?P3oWpZMX9ftu~R*EY_5 z>qxKAn}=;AoSJlH)-f#}#G4B4{I$Hh2uEFMx!joWsF~ooB)hs%I&KH;M`>RX{u zppQp9s+yUpG8&cB;`Wa`y;aBL<&N%mu$7#ct}8v{IlaZZ5 z=Zq!ATK!0?TvF(_71yry!WnJoSz3fFUExbel3UtEw-Cd>$K)?;JKtu#>kZqP{YrS_#AOR!cJRfQ$C&JWVVDMyly zLYXAKMK@e#{8`quROGJhxW@|h21{q&-^sT-qBk4wAa}2+LTLUe`D=yE%`~!&m;dQp z^Rse1!g_VVt8}YVd}~=Kb&KS0C0xZ>O05*hZ^(wj(LXfpj?Ltv2gj zo8?Ha&UZ5`5o>v?l+mGht-Qj4$}B;K*S85};;G9chJ`QG=>2rtb9JnpBl?`eIEl08 z=F8#vJ7>(744v9t$Nn5!hks;X6vl6}u0eqaY>4|9XCt>DZ~Z{tULNz&c1aGSL$$ev z65-Dm;A_w05pn{E{A-9!a0?dI)PUjhOP!6*ZEg-q_%@``%^}1Idxd&YNmfpta)EM1 z&RUkbaOAbpSEY9-TX`D!9r>%W4Jryw`9t|r#SViZe<6Rv*rQ|A?vR9|{=&j7ajm`3 z9#wZr`#owb!W-}fozU3pz0hm`9__JPUUN*ob?Iu32|rp z;kgF3`_32QV@_zB`;`4u!hd$xDOa20WWvcA?On%R#~mt3*&W9n#uA)vzN8Pqkp@@8H+}ttZw5(A?hRnQ>%D5kf1xQip0-5#VERy0HuB#4XRgf zb-G*_%N++ublNIM#GVdz$~vmkTjRb=*K(NNEugEZdHhGvZ3=6HEjCLRzdeFE0oX)7 zxkqdEzTys>VMG}2Y&qaOYTX-Em=toaod7orjI7}FYP7j3?FLS4rMtiskCPWEIKdHW zkTR6eV&dsj%fKEjVTzk`^Y7?1WFRaVrU76Cf;a{N8y;#fUq(YJxDqy{6sL(Qzgr|< zTp)2LI~YSUY(&;c()klTBjOkFI^I@rEht}`=}2MBxg?|{J$Jt&7HtMYDna2fN{boQ zP`M?VbKqnur#jT(B?*1#y6e$2szFjX?!3eW28EfE_{ z5Z5feEJ4dm=;L*?TbY`i`5n))QA#!1CwiHc51K$u)Sb^-%!#K(M9x5?C{R{pY?G{9 zI8Ny%ES#_@NnN&NtLCIm^Zw7?Sr#}eyUL#GU%Li(pajnQ?EiJ*rHbr0*CYGnEAue| zWbHU}Hi41@^`6J98-3-YuMD5!(ezb$i}Ge;kinU_E6UXSAt{Z>rnBBLo3|CdTj#P) z>#+3d*L^d`u1QC%+jU)z+jxH7UWLk(m^2EVnVWHB>E@UNxLY1Rlq`Gft}!F=UNfri zNks3P>pkmn2PCm2@}SA3!t**oDuLcZX9^2a$-%@x43$EZhDiO6m_Xzq9#n4qn-$u3 zwrt|f%dPMg*kK41v0d)X^U18T!x8iYdNmW93$@Z1@d$f*-xkI3G13H5CV-D@o?KVa zpOpJ&g7BCCl0`|`k#s4C9-;_@IFM4PRB$Q-SxuYTi}&+2B-&RZr>_BEkOW6iu0HSQT6zh@E+HVE_|mVKdIxxk8`>1o!DGj-sSrnCDQ&I zXOi=DGG0uOBRfl;Fg`o7AH&WekdqSmQ&UOR$NU5#A+Oa3NQXY4Q`HpCe7r)w&$Y$1 z9#KxO2rMM47A#8d%Paw{pLz3Pjy^%6@B;TDR0rTw=z~q2&(;o0mcIVc?FS;mN$jhL zoGYn2JEhaS=%ril>EShyttwvSo-rYb-8%qn$t^8EcVb>;nW95!=uZ`UuXQ+NQ_LD#8ldFQlyV_ z8HXb>1RRuE-_{gBurj>nfll`}UR0XDDRo=S6+Sd5ZX@FnDtDj4vPxo}(%t{AB*>(d z)E=s3(*NbiN^unI%{*&L$8QE%m_qn0VNpTH{VTY6%{GUaZg zuKcylw5TpaOh234XZoLP(=yv!^^_y0E?1bU@>yW%9UfOlfx$jY+qzNL&<0zYOH9myL{1h`)?iN&`dd|p}^n! z7iWqFt?}fCgs5W3CA=oLvS`R4-gv;)OrWhPdkYsRW^eYJf9z13NEw#vp2vP{7nYM9 z@z^+`AT4w1v@^RXAqyE^1G zVw`VIzDvSXlD}vkciQLJQ687Z7k>%5uqox8f!!zyy=j=owihOFIgy-@n4H}nMx$i+ zNr1riQ}Ca9vDMU~rRM_Hb#a>)6=&YvwCPqv(OUE-VECHS0RM1( zorRg7`C$_of#;R$EI$ml@aH&?&=3{}=9!!PONO3bm9Moo%xB_11kiGu5mzo%(E(|W*UN~m%89UW)1r-Q6OpSdONsqpjp2Ot(n^TqzQUf6`KywCiL*z>t6&C{%i zl^o^l9z^GW2ADjOt;6+-B{T(sGCl4f9rw~S+mk;$^ z{DUY6{rJd1(1Yq-c<;e!@mgz;u;U~(pzH-z+=z%j16r!JPW}TrHQZXizX1Y6<^?BO z>fEHteIFEep{Lq@NJZn`0j*X}C-YA_sZz!L7^r+oC9Dz@*r6B#%+y0JUf{XM+K%O5 z%i3qnkSH@DwvS;Aj9W0tm<|xay8t7gsAFAfq1ziNn1Nst8}HI`b4nqlDr&X`5))(f z2xedul)Z1uE9MQZ@9iBK85=uoc&NO%c>jSQwHz`$bH)`l)%uP=gGf}ueTlDLjo?s$ z$T}5ud;K1)P$#w5?b-M*wYsf7Jq>*bN=t96o0S<2VG8A`>R3+Zx-H=ZzDv3TI}~_K zKtLVAwuzKs9gFZR1mcOv5vZ!nbzL3Lx~ZL2ELrwDN$p|S%de~@7J19UTnUIAz$3Xb zBA{fs!4ZjJMc%bOP?dhKKW@dKc3pQ`#P7^m*Q^50?~bvs@PM~rDTwCYGo3SZGSKnk z?+^E_RQ~`_rlfhpY%0L9PhA9Y0^}0ZSl-pTiU5kN?3J{ed?992iu_-l6d{b!&^W!t97dh zt7nGy_wxIp0OCNv9gF-c`XYb@lTt1dK~s=an=7sdI8z6JnXxl+3Q#O@-IZ2egk}Z0 z0NvAKnfBV9U1WS~unHP@bWsc3!=yc;6FTAu1aU(z(Z1hH`ZnY_K+X}&rnLV!+k=fM zuj4ibZPja!&x;?05_)@ycKx-r#X}Mc>+MGqt@D(qX?TwE6ZjpAfQr9ybd8y6PZFl%4DfeL*&Dg(7b!f@w@i zj2)gy4>kF`dEl4hKLCM*hk<;r)>UOKhti_VXkzQIEM2{_TZJ zSRGrEJGS)UgfvCVXd%c#L9NT*Y8S5)TFE?oI%csOp`rtcAC`KWJiqwjRGUIa5yKXTRWOv{SP zW~}#b%gqQ$4{p!(NZ1vb%^hjkaaCt$>W$?o(}$)MX&&`08eyybb!p7YG%R6zo*-_% zStPKyoB2rXYf2eo)Xqu>0XRU3bTL7ad5`M*r8uKfQO+qS=MBMea{fHE!s)9gRK)+3 zGEr4UzVlRwsD~847orT*s|ud!(keteAq12X;-#2i@|3Fuxm}VlUf-fCJ;$r{s!4na zUcM4f{b6{cyC;|9iA2y;QxZ}&f_wc(a05#XI2<80k7E^_AxkZi3@j^aVRxL^>^7Ob_S6Y5u&tBC9%x@o1b>UV_z88v6zBou;Epp^(tqoxe1)JWq zLX6^&05_3NIkO?P_-9EVGV6l`X-`5QxvUGiDtpMPA-yKLM%)l{sKHaApYP%5ZFJKr zR>ta)V`zM}lFFitCJ;qEqpd{*mMenOLQ0?}Q6evK!eo)(=gmy#4Aj$-=1%U@W5BBMycfgJo z<+z#TBC6zRsx;upeL|I~S2LO4tnTCPTW>U3X1UBFiyi*b(lapwM1ODEl)b=m!Cgax zs)TUQyg_+vu%c_pH&Y-?uFYz}stxr(**^XGbNVI!@#-+!DRmLGLAoH_IsJ$&UV9oN zc=#`&-lj}j7GUBqFRhj+iQGTJs9DV^hS-~73XFG2d*ZER&16FeF|U=j+1>c<+K}2u z@Qh@I5^9OOJeK2t@fz}^Qm^YU@G50lL$OYCNhp3UmL))Y2Dz9MFs%#?Dv?0Jg6 zV$n;z&Aa&yk);Mi$il9-nupzPd` zE|_1o6$aDR|F39^B74{v`DgM++YxH6-RBhHc@PHS!WFHDJ0Vz%JBr2|gZvgl3P`Au zDrfd`Es*{@GD$nKf$(JG`c#tFSn9+j5?tM87gVhG2bG)0no@J1-);F2$1UzJERG$^ z!aG&4y;ZW?-}$i+#C9!vg{PA}m2OW7If4M4@@s$}5mm11m5`mP?&6aY9t7@-65;LE02$&Il8gBz;kB!3emQ*ocX3=7?L3q^K^<&Wvva# zUN?1o&rq%0|9-~Q#t=VNTzFlgZ$^f1XC|I^HBYD3 zZ|f{GmD{RpOjP}!*2A^j8HP@71^HEAdZ%1e7tT#@_oYT_{jk zoYC=^^mrvQin?FQ<(`=5GG{>kMZlkz$!CV7NNT&wbm>j)`wods5$ZPfMozvB+hbn3 z$_4P*vb^oB@?(+J>#Tn*O5jA)U&jS5EAgRBQEY)vkpl?AWaR*0b(6cNAG|xM;nt>A z{bKECm@DWJeNT{G=H|2U?!oXA4%&&swIR$Ie`08u3B~;4AJYaBj>ma2FZLvTEi?nZ zt&lAOf%g)qqT3vOmf#tDkbYdp&o6E1+KA7wzyu&(gd{Qpp3RivH6z^TzQ9}$flyq6 zYgn_i4vfEaculM+#+4LLYzDw7UielyW-I#?baRbryb;>S%auyJsS~XD3||t4~R3@K@<}WEJcd zjW53+n)c0Z-w?3!@hQ;xFr@qIP$O6}Klwt(hO-f=DT_4=G?taDB ziL0FtwWGmVSeAtY#6csIUoe6elBkN7YK0{o7b8l^^Eh9nyqRV$=kLVG;VsUJUdArq z)+Y*#WOc#*?BavacnB;#a{um}vLlgYv6Hr?f$}OrTFuJcg~bzFQz~l=q4l-I?6iRN z=txez1Q%4YvL*RNorE2g7WsCJL4xMUV~SGWS(G+_;s9jp%)6^u+_C|s02>sC4g&o2 z%I|?6ij7Am2mcvk1Bg81^lzS*kS5}6^LKTOy+2GyT9mVtZk&y)O({e#^HrR2*0MXl z8}__A>JJ4CkL-_(?hL%f_GccAx3dwOxZNoM%F*4Ts-LBd|GBq$4tIQBeq`Tl1Fse) z$-Y42ook7pXevXu7dHH!|z2d*cX8Ip# z{kDk+QwQJGz|@gMRJxTHo|TnN72+7l0D(^>NgMu;YJ1l~a zd+L1`ge=mW+&!(obC2F`jEOzRx=%?v_9TC*?$U7b?ZPK%CTolz+&8Y-`n^Xk?)I?~ z=KYPj58d|7bo2leFzOp}1-0l6CmpT)Vq7_cs&apk+wKi)XKGK}+AVSn-2Rem@dINL z#q5j2H)&&SE7Ktrt3;Pw)%1zZVKF_?q&0DYi);pejt{L4Z139!)uW>&5tWg&8q$&d zYQzag_heKG!Vh)=FQfGN3H690_Uw-zsl86#zSUmA40w~A>_VB_ic2YEP&jVFGdTLc!J;94=7^~+UF+< zNCIV!sC4bz6>ob|mVG2|MHFKDu|Ju^*%g7ytnQ;hp$~Z#vu4}=nz2JK&Yzrn-PW^p zH+tlfj~$O1lh9a4wsxVi)&APsEmuCjxvgJ*nQPCZl*sXqh?JD>zp8fba>$!$f+iua zDk*`p2pw`s_3YAOK;`VJmL*L!(4BLWAx@jU>pj&oXv8I8fgM#d2C|Ni^?6o&433TD zaEK2G(`zg?uGZD9id`#v6ZZ7RMb4L8z!TJ7+0z8d)&qHN+mtRU9Z`CfO;5A))xZDg z5Jc}0?%gNsRF(fzT%s_TS5+r9`;@*qnIqw7&V@l0CCWuwx5}I~Vzttos}wd(F8f|_ z=hf}gw%S2n@nfyOw5crG$6I zp%;9$_}WhPcK~EzdnHly31gpm*wJT^{Zg}@pq#})IePD)ShWX2PM&-<`Pq@P5rmcNLB753es^X2f~1W|_^o1I&Auz<&NSHfmi1H{v*L*{8t1yQ(X;9&T25C| zsAdqu9a^S%sgey+x6K}}eIAnt%=gsI9;-#y+M;z{!1t|v+YOnluowS5*1R+1u|q-Z zY(re*qbEfU&Z#NaE{kF=E&9jzM?(Cx?wr_!^6p4Md|E|^d5p`g(|Peo=iEB~4ErRF zh7%`>ScUd>AIUQ&yLs~hR#8eXxw-$ENnYvG#oGz$Cp22`|5;lZeLnoelWrEDoY?Ec z(XHkg#iMrUtNv7PXIFaLyts14F>4KdP-E~eX8OgQ>Gl%) zOhDwfUV|;&&^PdKYJ_j8vAdjd&7|=9MB=uz3vh5tbn=1119BAlk5zrjBxh|(bdW(% zgS5kTt=-EE9B30N*|O!$n=SXX{aVm=CdFh(t7?2Sw@}6oIiU0VvEDyjU4ME7cN-Yn z?gAhY0DuS@cliIKOq<~k2bjRxdd(nuz=i1^xS-IfA=UUU1uG{kdYoc7`|b#Xrw=OM zt|W`z>W0p0&W0?4wKwWwL*|76731rYZ=NsO_g%q7tY|A9x)Qe|P)@2D$T|%l(#JfX zMB-BrUsE&?I}Xm)Oh+HAu9@BMv+P!1{UJxQsW_L2%A6&z_W~WQXK`JycUZaH!W$S8 zTzU&#h(ecFu=@;$&b!xo{p?gz`F5c6Y}3l{@X8Q{hE}*MBl?Qrp`5C-G8-wq!WLcaLM{2QQ?{dvP@$dI>&A3HC%GgKa ztTc_@6Pv%q*5q>Gt1sfz4Kot5m6GO^s4?rjQ(CK~6i zdwsMs1Mz*Gz4wgQ^`ae?U{VKF1Lt|CtO#jtqE;LlZe@7ico^8PsAKnrVR7J4wd7P6D5A~O2YX{c0+BVIFD-`b~(KTMT)m)-DY;4N7F!3bYEvH=O zw8lx8O++`GPZry{(&MdiRr(Cd6gpAbgPSotJJJa)tC;IL7~y*Bulimk@o|v6LcUr{ zicv)C=*D{m(wCNa$8TjNv?_26*A5mpe6=lfJYL;+*rU*5RQ~NMZVZ*>ea_pNZ_vui zp4TYz-2v~kvV*4t*Vd0agHj&rli=;pMSiD$>gx*yz$ZS@6+m89wm$!o-B&dWfWRd) zBUp(w^adi|w&%FD=xuj@46e86BP{5DEU`oNIO&#!omY;}Pd&uD;)WR9NcS5z>*GDn zw#CdEIxEo);gg;yPUWmT&BAUXT|3#V;Y11w3M+?AeFU{xVAkgs2kg)2)5z)!Pu0FclNz#B-?$EVx zRIcV37GXCe?rjqKeH@89VZ*=wZEG&XG}9j3=QpbHwgb3Jblr=TLi>CC5Z=!p^Pag{ zJ)@C-`z!cKp%?n5;pCV1cl7<~lW$I`F0YVM@gi%kPc>+=ycJ=&y+f5tkT4rhuZsO2 zP^%<_FS~nj%XM4964t<9X6s)fE|7QRc_i#ODI#xJh&waDG+HO*@{^)RCZ4SHZ`tfM z8=&%M$gBxl3p|iOUUic2NB0~0l+0H!Ij%(Fu`Z}fizb5rLM1#qf zAN<)s3GuptNw~=3G(7BVoI@h*V86&V=lrF?-ZvJ|iz@iPDW%5_Z0mX&NDg0$dQFsz0rFIT#po}Z_E^|Zy){2{g*c?4<954(@xJKZV&hT28|^%(^pbnZIM$^O~b&S73B9a06;F7-`6OMF4A)GeU>Yu5D5g*Vf-5?5YJ1dp zePd7h?(6*{Rv@AV`yI@sDV;hD&+cZRo~S6pz4B2W>hK^O^v8hSDyhm_!_~E)lC0r= z#4TWG_`oqKI=_g+1%}d@oEW#lZVx~$$j;q?+9y6^6DYEu@$b(*ET*ZkkyS8`E>WNE zuYc~_FN~yfRVub?qTZ2GF(xKEdz?Kyq#g-T0i_nTkYvM!QWY2_q?H||u~M%Iz@)v! z;-^MHA`*$t_7w<*Gp=CAKV9D zzVQDa3?B2({|te`TO+C0$IRgnyjljg?%FTFgb+DcO-7xl+lPA+;KAHC^8OwI$eEC_ zoZ6}6^v~iOw=0STXoj=H!~b(cW+5Rj*Tvd-#@P#d+_?16J@xKqFg%GB%&8}^@X zR`WtFMQJ$6w>hlP$ud00$Wwk!2}|3l#BkFmhr@!PhX;TvkrmdQ)^}r9M&I^hryi)D zOFzO|K}rzW#=50&H`KSh^I{;;X@~gs%S%ksU|q-SXUUFmBy1^%ar_IpqQSA!jaIQj zAErZ(Dr4_}{7bKCa(aIuku&JphqfHHvwSe)-$t{F4Pf*KTAM-ynNePz_IiCHA=Rl( zkFNM~A`8D;-WgJ|j2iEez)e5x$M6q^xF8d~A2*il3*iZeWK3inNGn*=>GxD{ox8U6 zmmfQwjNiLgwa?GnGmnOAK5F`>S6!f6_XPp^(SnyzRDSpeH#xOMojjXz1(lI$@uwi6p;$ww{h(GIasiWY zPNqh$6O~Kvd^tH$Q0JKT8e(BB{eB806#|h*7H(LOfIm86E^q;6E*~BO3n9X;L*ZtK z0EFL!S`Q@o-0y(;z84DW;nv-rT-b?fwzR8_a(2>Un=$(2z(zC+3ME1y5C|W+LJeyo zy>hZF9VDmpB<#ukT!}YJm8~`2bNBOZU&IW)(JS@!v7;4swY{exitI@gyIAUmMv+dfhbcfG*UTOs)P+I(p#t@!OC)kW`bXDpV+m32 zQe6$9zg=Zq6+<8pcMx9c%DT+}@R6RcS2o_NeM~}p`RLNInW(ciG4q{L3=Oo=aBe-4 zhYTGIVi1%aK0s>*v;G!Dwo=#E#*9J?z&vE@7DUWXOP%N5XL?HOGKFn#1;5>TO>PB6 z=Y2&>N5EH<oBbrabh`Y z3qxPPeo*Rf*7fjVt(nSzz%lTYK4RCYijmXYY1Vdz|C=^58FgO>oXI<8Y90f)FEJ;1 zuo*eGL^zva(I5q_x^62LE?U6y7-n(*xjw;K4$Q;zRFIk$&Y#Y#1od+^r|Rj;8V%R( zAMK!bqgD(btUxLF!RiQs_TYCHF{ly#yR%@@XzvLFrhHm=vXG0ahWAyo|7r8L4<2Ez ze|z{{=d%7Hs+SNo3y4_vAg@jLp+s0_Y{_c^VWW_Ex60Z2C$Kp-5+SFwF}5mTn4YdOpVi8d2WxACwK?(wTJ7cuFiuCig@(&A zgEey5VNpsJ3l760&i#KYjuu+MEUHha>Cb5GPYvig`Wn_)6$d?Fr%%7;Fo?knjuhXE z92|_iS3L4g9n3qx%6nV0z8;+X9Mfem#a_2Z=g7|8tiUaM3_89h9Nd=mR-qOdPaZvV zU54|#wa3x+G{%ohMtw0+tXBb0%6Z}wKu@K9YxnV{Tkk7@xnrLZ3`btN%croh%9}h$fRAg3r~5fEUv2F?ew`DbVpE%N4HtN`|X z@7sX+?i$ArIa94w60cVPfgw-I8luvbr0HO2z`8%1FPJ@_r1J_O@NdWYBKMgZ29G*8 zg7`r;0#-}LBc_p9t{=9DpovLw^l^_%g^umqc`VVmgF0SNL3I#*-`(pn%^z zi(q7tnQSt3*xDWcb`3V2HDc2J3z^5Qt+0Vh)Ax4k{O!>ek8cZzfQqim4V`ZjqnQdx z(U7G$5Q^v!FpB8NO^p2c?FoNVf63Sv5>6lX`~{ZOCQI)--3 zMF?UJO4^h4Fp!i>B9LI@M}JzM(bsOF*+^DaN~^NI7L!8ku06qi~X2%kd{V?eTHWTz%dFj>j}T?yx{aH-F$- z!1EKCceWN;HRa}>-su}K6gHFpzSEe^>d=ybAhaqe1GDJtfb)8{M;7W+JOM67IU?ua zLt)M#dW5c{id(*Z#ZW$)lHIgp1CiKTLjR9q%rtBs5W zfodp9m9*8I8?rixaawOBIU*p86`#rCgU{hKX~5E zfLHS{O)aaXH_{p(*qNT9?nrW0s4@z-krW+C>a^}W```%c;^ru~+~&Cz2JH`=4K;On zcWOd(h0Fit9Et`(k+84Uk8c+bhV@)!8#7tqj{3DsT<*%cYiuKP|8vmGf0Pc(ugn`1 zM-vX{V*f8|=Fr4KS}>OKauv=*xoCw%*cx#;;r>_a^PkdsvqK$>9XKFBtjQAq(?b{P z1vHU_w&I-e6^br5qrz32dtawq(GY--UwtDXe0r29F*3MMhmW1F1iG{Q~9EjEcD;1^ddH6j{7%L#klChR8DOCnXZb_w0aTTWQ>@HiwDn zXiP?u3auGPPhGwKgofVdqYaHs6`kSkBHP?m?b0!yP~g=H4_grO9=VMrfBomA;m43jr2Z+86zdY~WEfX1T?JdSS5b7@3(9@(KUv&Ewa!}^=C z@YNGDZC5VIdon8r*r%-S%XE?#V(@^K#Y&xm1eRmh3j`wSy~_nT3&qaEkycKV6N+Hs-MIds`6X-C(Is)myLbJty^QX0>P7dsg$8M5?956AuVueKNd@&q@_h!q62|?-?G{EKJ8TgR<=lmw&r=_zjry990o;ft^oeJW!XNQp~8D2yN6oL*2$1klFP$Ib8h(%=6y$c^E z9SBn+mem4qOQ6W_fJ7dc+W|!Uqze1UnhX5!>KaXmIYQROG)Lhc^JPHsW{!T|yE_A6 zez#XoYYNvxOabWejv!Qq=aqb*JC@yc=qcimvtdXUlD7<&z`5{xu03pdPWlw0Q(pS( z2H$u`hv}~{7^($k-^O?$Ww-;zxGtJGm8QVrTqp_$|0r&6L1|CjK($AN!?Ap4JMQH@8Aa9@G|DGS zJp4edx_k(Wm^5C1aS43oT;+fJhE^3H;_VxsF>s&{C0oWLQ`GO^BkV@$i~8dC&)6ff zs4b>Lq)GAG% zCM>7Si{DTetjkQUS>fL#IPk!rKK9ZN(LMOWTgTRS+&l&<2}2lu&Ljd{n5CXs$yqo5 zn^z=R;gf%{tX`0uapFcLMTOSc*Fn=1R}->PsT4QLd)4sht&fTkWD3zq%%hh)4} zR8UUkko^dEVzQ6B)SQD|9+UZIf7 zZ%2H-o#7)_Duaqe{pm=d2+@aDcwKEI@7mRmkxNQV&kr<4EvuIpZ&B+*8=b1Q+A`6{ z?Xw2DGjT72RG(eFDe)Z^JT@+BcyGTid_zHArdwk|>N2V0d_f7hdvAZxF|CzLd+`P` zK^0(6t?>*SMmW2|JEzqrAij$^5(E;)fIwnW!(Hx_qsq6@aV%EaZx^3DD)5r}_-wrq zUXg+bjRt zs}9U9vKC{UYi=(3%kOp>mLxwqi|>i1f$!Xx-^IZGV#j;m6U||I1Henb!|L9nWSK{6 zc~;i8yupR1TKTWdr8>9FCt8jbb7z|_0=ofETo*4Z-)Z|UgrzlV%04Kejtf14|32~v z%XS_L+w^xmH(Y}>z8~4(--vnf`hF?c$#EG@O928G0&}Tze)2hgJfheOYYm*>w|is( zhNj=vZ~4QXJD;`3TIh|0umt8o#8Qbgr*?9~txe5=meI2L63T#{my0IyUp}>PJYifW z5ZzK1^IvhFzs+wAKv*JBT~t-xFnPb|zIGYlcC-t3*6RJGbjn@jRn?ak?P=c&hddQS z)8g@Iu6R9TF?KgOiYR9J3hYhlYxCNKI+G{bstUVF>WU1N2KQimdCmwqMD4t$@imfe zj__3uI=VwEFFrX{$3`e4Wl5BLl}jPI+TqZWlWZ`kq%$_L*>1;7N0((PHcn*?FUyP? z?bMFf#j0v*)tcjX`n0X{W%b23a(vN(kl=)r_nW*Tlp6uNXgF)(=TFq0c zLvjk%ltSZ4o3d_nhuYSDwJpsfTH{u`f4kbqcKX&G8%(mSLIE3c`KKZ|#g{dn*uy#C z9)LJj2EOXJc&rC#>R)7D%Q};Mcx_h!D4(}}tKSX!P3n1pE2SwT5+%xlwV5Av{i=nX zf_~nwz83q3(TR&HxAdg9#Y+>Tlvs{~ukSqg&(UYA`!@i5U=V=K+SYm!u*OI*l^nFs zX=_=SJu=4@7UbdY`{iy8U;Ec}|5(5NM^{$TxsHyrfmvNIOFT;MRAg=zow&GJv+d^f zN=-IE;OBDPjhq|vPWxhNzVFjS9XPdoAkD%jgERm(*b+=Y{vkc#Nu?AQb$@#5Z4R2s zkY2spNmV+O5P<2JWdDuB-HZ}p4nJWsXaX;gu*7NZdBr=}*KP(;x{3JbZy?z3kdr8j z{(-f3BUf<-_~!{pVJD6ygusKR@**+z#_9 zUupR8uaaG&#iBsBkip|rei7U`8GFp^9aXe&t^7^>*;pOdkf8-?`ozgo>6@unIy&#s zKvoo!R@uIQMiy^b`(7xJK9Pg5Ifgw}#EUkT$JQsde_T;h7pswSZdX`o zBSt(hd087`3w@5%ml>7RcLn^BBO^zV(9mOrW?HmyHMOy3adL2Lc{&>mzfYG}-gIUR zvQ(uPmV|mCv`7+D_a;#4$`4*Z79Nbok%`0Y9Sy^dOFK>k@$5R(jS-`_ET71?$G^1j z#hG8oLeZ3y!I zIr!2KKxMG`e%y50jm)j5zrxdGk|6RbETSD?hO(x>^k(_Cb8uRYT*DnIqva{A%}LW! z%?zE2exenF<@3*R@AmFSnk+t(IaEI3HZ91nt3`wm?IQ@KIu4F2GPNIFgW1w-^5Tjr zzliSakOP*e2+4~lXJqpP?xT`+QJ^t(OKNuLq7nQ`U_{~f^uX0Vf+JtzdIy!v3*TE2yxCq+3 zmx2?LZ@vO7E!oLXgADFuhj0Py?`ao@9K$>RJRZX#?8>k$SNF?|r3xP5aU*ScE6enB zWo2B_tEVq_xcR+Q;G}N9c<1B3U&`F5BT65Q(LlpRp!gFOz}T3DZOMUSZxE8V`)k*N z1pVct^9@hQl-|Lh@LZ@r5e~>B@eQk=Zv)hL&FJlozmJ^-vaz?bkE?{3W4|B?9Wl#rhXOZA@F^c##c(~_f3A^44sA8$3F=Yvq)2`RJ&I76~~@H!P<-0mJstYKMk^W z-sKgB0TZBoVR*UQdEOeOoXp@X?j7Q1#^VJ=N6~R*JeikR;1#*8w0Kj3_tfuvYGkcg zlALYL&ie#>9tu!z{eYXNOosb&YI;j2*As}Sbr*4<{#7@5yMvCd+RmfXXPZ>?LQ~cW z43IOF(h6MlNq0h_;<>zwepxd2Xo4-M9|&lgk_ExSSZyl2d&6@uXGa3mru04xOC7_2 zeTxNLP5zdtLmE+qnSt>7%*McATI{_ggapmw$ba4 z)47KnvtHpDgRN8Gd6DmD&VU@!V-#;qkolx`T~Nfvh6ST*^iw;4i!0=K2GrR(yB425 zx1z7lCDO16g5L&2!UyWzO^JT`w>I_7nVv$&xDn16db~&w(;2%dxz5GWS!@?W+l%RL z3d>o2*5&Tx_q9OdM5w!~h?hpmOUgYmi z>Vw5{pBc#t(lo#3iIUn=PL(2~eA%106>GSzBJ4=nWSQ33(9U#p+#cGAG;K6Cc${!w zp!zL!oX6YK? zPhI&O*L7gLVKK|yzjQ0m;&LnK;Ar(MF>(?R5;318I+O4Ld6FyC$%e^z+pvXz{l~9jfQxHf$)q$Ogb2+$5*WC2&13Btc zb|lHGdOF1yW+UPX`?*(dB8OU(XM|dJ_Tb4nu{2yl-EaSin=LoZjtvhQzi(aj{?xA2 z*VWyZZK&l1(=@1>ty>FcK=r+|ygG0RWE?!6kGnY(sWxIc3{F3!r2vugB~K?sq}csb z*>s$l@E7}ykdc*@i7ikw)1dHV851~GR7?paz>g7f2uen=i2HLeyl+Me;22Ebi^j89XnvHWgModvFZwFxteCyK_{Pfc`AnRn$l{Z&4W~^yrjq~P04i4Zpid?a^vu2|4`97BKQtU=SAMAT@hYg!+U8x>1a5l(k z(q}(LUBdg{{}lW_cLmPA9Z(({PJO5ffHP+-XyQbV#q3g zT;LT1k;*N|TQC}{og&qHOz}EtP5mBAdbb~5M<8m&Gg_RNN?QpvQB7oRPq!G@8=J>B z8VMwEe~f5`3lqY{!Q7CL**EZwt*40;t%UYAGeSk~8_lQ|*+?I{(Im zM6Iwe%GQCFR)G>y@jLRz)B3 zs#dSsj8h|R7nSjZdgw`zOOz|qmmt4pks!F_i1;7XUbJ0Cz(oD zbOuVKkK|Bnk6Kha)c7r81k~>!B zER=eoTxlpY+10w!Bfp91QnDKHMfQA@lk!iHeX7{aKbI{xi%wg_XiI~7R5UWI*rr`y z^!fLsU!velyQi>BR}f)mg6~7VNUHx5Cl^>S*vrI`Z<0SPWEZ9&R|YV50^yR%glz0C zj^_?F*>#p(F`47~xliY!W(4pzl_dS-b`I^$h8ZYJC?-nae8$odxYcTT=i}WQ7mjw# zgHPv--!4z-8`0NNptNVs+m^UC1z+DSj!*7;(4E`?{$HGn|LQS+j9Ru$Q0Mt>bebJj zeHFCu_jeXCcIaMY8*LR0P}}X-l=Xj{ULfjIKh&6cNM6Gwm|=tRs{v=kVXMiX@6%dx zLr+l#>wYSMIwgGbo6<<=B7&|ga_(B{^Vooo`bkYEnk}vvDj;g377=`jAcR>i8tPZAUT~)gNk>lRbaFvK3 zWD?)4LaDVe;q?lv3x8skl7JoX=$CQQ5$dnY{d+OuLt=6)#YesFT(Z!;@3W#F*j9AdR6S@TTvC6kCu--xuKO z%(~|<I@d0!?Ze^g<`QT~8HQx3YR;=bu2MQm^$aQ*E}bi|yq7K?87K)e zIOR1`-F(r=sugj$^Ap%yeFiYZEoM{$$&hb1?k`=>>__`<5w)(jrLeMxqql7GaA1fgXZW_ zjvEU2!V#?mf)!f|A`)i0DSej9*3%r)yLVD@COY^44&(BZIhx9)@DVSl!MaX4p8KKq z`fH{%V$bXHe%>x*f>;tBe-NyB%F~m+M<(j^NpfhL1uyMtySiU9cTqyg`L1$AnkFsq z6g_0PLKn?PReWp!6$rgew@b@KNcI;?fa7)yDh+sN-vlFNb@|nwtz2Jv3>5G&e8d+0 zMCAq-v8Y+|q9y(P|LB1B`C^m}GWACf5Ja1!6V(gpsp~!%B}ww!q3$(WywZyIjim!W z92<}wiR&_v5hXwOdws{{;_Mwm=RE(ty!y3{ zO7313dtvL9vSs+|`jZOodR1h8n+I1VWOEFnPHv&PBLo z|3{e!zMSRyk!UU&*;xx-4>t=TA8X}|NUNAA>}1A@a7(gcyTggq!|Xi6)&Ako=o5S2 zUXOQo-+_dk%60*Z#ar~Lti@-T#T;J`U16m?8+_%l+iLiq_V+N3ZgWJrYDjU*$!)(2 z<)_E6eG}h?MP0}LQpqIG<`=jx|K^w2m{etqeH&7+1yp3E+52@f>Ge&c|1`!taDLo< z?Ry`q?!;wX3uJcBLmiO8CU-{@6GP)Jkq67jz-m(rI6PuXlqD)Mo#Yn{ChH^3JoTrG zN{>9^GkZ2n9r(P zVNJskC(vRmgm0vq83Mq~zJPen*TUaG+-9HenJyK%_2mtJdY=h$hfPnamJ?W$iA~csmYBI6DmDi%%vn=XSWpGJ$OI5;gcSJwdPv?1Bd?m)mrlW zJ$qNanNc{sn=d;)ub>`RBE8-p5O^f22~?p-NblrO5jkR>OJA>yzx33)aJQXOhx}y% zAT(BNCoiCnwv#i}>79@jCv4(F$c?~cRDW&gndWeF8Ks&EB9o7GLV`kfQjS*W)b-~v zA{NyEK`xZS&V+yB)1>beuI_yWiYqJKXzKy?}t9UZbjUEgSe|1tF`&$~7NYRvxz?25tbyRbAe27dHI>nK= zhFZv@J7UY@v$A8IIK8!;uFzE#&-hkIK)?Oi_omncEP)ih?^`@WT&zmKMw?T?<#o4U z0E8)}taVbxW+J)BL2Gbl_xbFzAvr)iZ3VB&Fx9X_9~Bil+GY$LJS= zu(5Qq>zQjyj)t^d=5&>>cV)U2e>0aOktkZ67U0 zzaM+qMdXXE-m{SRi^~!+B(O4a@kAOIV1Yw%G8S3NUieQ{ z@`=%UqY^ok@;kyO+gKB^0@B;C*l44)wZBY-*1Qa;46fTrGvSyB$(NFN(RSU!j=aC& zs@kBXkRq>@lPtu5@(S57qR9%?Y;QP_pGFKTOPJJ*b$G#`g0o5Lpng(K7L6wc3jJYE zWA0}1YjK`yIlTiswHaa`F{!pLv7c&OHR$c#KB35I#*r8{HOF<>-pm@HUn(9)gb)Xs z#151Dy*9Tqou2zX*1y)bliHDNv75X?7#8Q}CX<=cF^MlxPJYRL z-p&K{r<)xG@b8_zZd9^98(9sDS-EqmV61Mjgy?!Lw?{N4=>gDN{UaJDAK70tZ2{p5 zlnkJmk6~^j0Q_QM{ws;j60EQ7!~I=!pN;eDmxlL9lSupqM)~O5%<^qqBZ}TU5>iqk z^EYF-dmkjr4syM-(x8IJ>>X(~z%px4wL7VW#aO*`n;mmvcfSd%z?`X+%B-wS231>v z(KrLy%EF1C)|2f*5E z35$#~9)VjnVylbnQv7s3OXUi`B}S%VL!(I9^)G_4>bz0 z;Zt4&XL26;b3-Cs&%rH#+VWH+|IFIZt6OJVs}Xt1WQ|SF3I)v=1O12#J3fXC^gMC0 zmpv6?TBJm5Yhi(*-f+Zo2%wfnq>>3@0h^QXZa=F2ow?#!WWk+S@+?L|NjKAE8<$^| zLkfCH^7vpF7x&a36OtmKKNt5TLcQHU-^bSKx7K|$sy1u`od2T$QkJv0L!HFkrb>?h=_O48fmctYHQl!rtQL>13-$W5(BbyiJ}MoRrs*1IF91XV7YsfBa{aVl2s zx57pJzH2CNk3p4**K0Gw{VaQP^R_d?eA^{SWqYY-VH)tjNX6$lns%fag+BmciwTD; z{eVqUm4Mgr3)34~grHgkOhHM1NIlmK)DJ;NPEBY=^bL5fof%EdN2GAc*tSba|5 zd%Da_mCezJ-OR#}B5eCDOYKr|h*?#syewp!p-?V6K2h15S)NpCOho4^p0%JDK5iEh zx5E`Egfd;y$Z2-YWKQw6dL`Uh+8l`BJ0L5q7U=v+RZic}Zm1hu}UNe`mO z=LptzGSdq5EKUf?`+YG^;{mRZ>MEv&WAW2kl}mE-NCVt17>JK7Wgxm{we_u2<8t}k zhE3`2yO=e>c54;}iy6mEDa~O){1F{NO2EspIQ_)1BZPC>#dQK?im_j?!XC+>TvujUx`O zrP>n6kf(ZfC;SY5DVK1NYw{0LRH(j&?q7GP^!vy~O?pd-yJBaRdj5PM2kMk9%57Lq z8{48QQJxx3-?aAE)fi{#%_G-5f|VtP;dT|evh}ysUl}sn2)6>_4#d`5)A05UZPLX1 z02wc&ab>YE*| z00wzTjq#4xcwee33dNraE!<1rf#}rrLC>Ne*Hz+OPOl;ShcE&{W3yKE(nV^p6KB=` zRMYM@Oo1fB_Fum@?w?s^yJuO8^%W-k>^AFHd7i`>XSn}I49ca z=gHReK08-Pi5@6RFtZAuUM|6SAmr9D@_T~cKyi9ccIdqOV(_+7_q`0!Q~}bIJ)p&& zW{@X%7USX^sK)VIDH$%xZw&JAFK)XGZ*H5^hV7)=SIL`3%j>^td5j9#)xL!K>sfi& z?cYH2ZOjQlvHR&piRSs_6lh@}Fy1D3bWyLXRg>DSOkm@f2&XQ#-T~XVg*Xa+Hzzm> z(gA&X*`GJTi-N~5ukS-Mho#wx7!m1QlKQ3LjFDcuw^Q0VZ0*zsb4BrpU(-i{iRjxZ z4wO`zbg%Kr_q%?k8tX1bhjnJ%E;{f`!2~Od6BuwtlWYrt-E_9gK&;Y|FbP3`P{}?M z?*aFreO^3N5_5SLsoPEJFHiDa>%XbLV$8Z*TJ?HoymC7LVZcg7WTsE-x}QtvjkteE z)emmI$xS`a4?+LBe*!!~@gDlt&DDD1dMDe?TRB)09>_d7wn* z>B%%mKS|5ch9vpQtJwXuLJjOM2Z}vQpox06_V}qN{w1Hf;cu>$RMe=8G?PF*FVnZ< zlGv3(nC%)xH(B;wJMqlj{ebX1v|JYhFlX+7n zbOM7NWBYsG`uS@hqD#v^z^BId-Y#pPr(%W@#^g(|t?qMl-|B&F%?8!`c&j(aaz0d{ zGRmQ$2!<3KgmgVe;%z+tR>_L5{q2jsae_f=KcLhRe{PNxD2qyj1QLQAg#pu3`yOas zD@2DAgAQrzZLUC)(Avl_%KNLYno*aAk#w*|2=AMjyPsokxx--ms^V$9V1_pjI3=1Y z#8SZ|$E_JsT`3M5xPrvD%0an8oi56j=9s90h3n8&sNajoTxSRe2822S-r=;hF%2DM ze8e+Kre}(!T_RZ$(U4rL|I%ZzEV~EFNNeM@N8t6~7*%c>!R!d8lVXBl zVJWn=l4EWf;4AzSakR{LSO?S*SHc4=Xh6ACdK~c8lySDg_f`pkFa*>HU#k^?Mk*9{ za)hMXOej0CYjHfP@rr~g=bzpZWd>K)z(RWS24$;J{WoGXRRr;k!7#8hjdn`O-U8}5 zo6@7Qu$vlPAwxkd&&~X!a5-rWMK9dA?DB9=jmEx5D3{D5oiT{fXLI@`D=Ux#grhuG zD^+!nEA~NcC)v7i@}e#|#_(t9O%4YG-k=tCW>)%JiM~ScnO!i>TNad-?#I#}>v((J!f2=gHwtwVc_EHLQC){JFeq7&ps>W$Ag5{AA z5%-n%)m`Uk9s6B0JIB6kaJrH3z;!O?qLioid$n=1i4lrqDOhOBjy_{)&~}-)5yfq~ zDifYQW_zyMSN{T4L=Pc#ME$CI0va)*OlfjUkgHml<^y$ie%U+w2tv?6msX5G3P$2| z#}ZAU`GSWiS?V@OD{M@e!KF@7;%AG)l_V?oK94RRx+$P-W{4>of3`BKkt$%=Cw)rH zdIYbw;3}9c=gIK<(6$4kYGoOTejN0P^d6Erc!4g3XYGDqwO^ERSQsi+-!=}GN!)X>w*ji{P1H>wZ{UH6 zX{an&UKRFSLBQ>AVwy2F&Q`XK_T!efPgBi&dArxpzkCbg)}*sMQ3d!ynYcWix z_|npYGkjM4H_VCfl1lDfoX0C$VNvA=MKO()qiafz$U5Uzd^r!`sw6gjbZ`=$i^_!5*E*mpvGd zg5%DuZ3wIxm4a&5e0xsqmgD* zYGLt_w3+$h0%!yaVq;0um3t$XEA$yK5Pw|pv!C9zSh@wc?lNT5)5EG6KfIzyluy3k zUv3{ba}*4FG$(pmR^nCj0s#eCNQ4~D zqf!&>E;YJNTW#siz8Z?A8ZLGxgC714l~`@O#>4Wd5=#=oawdMM<77yT(2db7k@4Wp zE%_OM$dm`us47x}?QgqM7)?HZM=$E)8)}u-P|8J5me;Vs-QgJLa01hjt`-GZf4WXYs8)21~d#k7r)eGs%T zoTM@mjdY}?b}Wv#jHbE*Kz`zf{tRkAt>Qc*%XqotdNs+gjp4Eba2n*ly|eRwCt$ys zh~nX>+L&#zD&EyQzPT7a-T4FSO1;b<&IKtjfrbAlppEY|+K)W=f(08x4LSchxPcZ; z&=#FTV)*|ywEy4&Mhf@OGx`^f5+SBVpmLE zI=62U*W>|>NHHU*R5SE{tCw-<<`9FC;fkJ1!6_8;hau))x%lmF$sfp7&pD(kD96H)c$SxIVbZT_~A3 zq=}nfv}2Lwr=d1$v7i?b+##9FLkXQFg^h;+o~eoUixID_yyG_rQYZ@APz*{54#pA0 zKa>pR#RSC`{ME;>CYUt;d;KKSEM)0R4s_P8I^L$4pB(rX9NTKK(#8fN{R*CJBK6fj zg$x42U%7H@19J?CBoA$x)b)Wp621#55p_mM7E4!7(moooafA6ECF-Zt^1qol{;FtA zId&y37DAx8Lw|yrU@Kx3nm!Z4dtT`gHi}vb$}j&kSBP&eGZ2SUb=dNsnEsur&WEKT z)j_QnLZ)5KOXZBcM8xs9Gw{W^CwZ=9$>@IzmDQpcEd(2W&^0pw4EE)QCw7R^@bLL; z`;jKBD-xYQQ2yd6a!O3cQ1R6Y?8$v6opn%hlyAYLdyZByBqP$wt`$?@3G?GqjI-WI zFr(&N%W-LTiVx^1Ho9CEPW9Z5AOL?Gi|-iXg08;`9bHFOX<@)jh53F(ufGo7X8;-H z0l)YvMmC@|H(*Hq)5~Lc+wpVu7B-~+C=Jcxyn+Svys26)m~PyI-+W15v=_={`XO5l zHTRU5<6Q%(;GtU{_)M$_Z@txr^r;MoqLKj!*lxsJ-o*}P>e`FX{w*=TWA)e>mkquq zR>aObeoL>tvlW0b{B)@!*Q#MRNDVE1iwYTY0jEF7nOpwz-CzpVB)}t%DHnxnklM&j z{5nE-m_I0{MuyF@X{w^ZXId;$ZzxX3PofMm&=br2L2ZV2EG&HUL-^jmzMYczD$O`Z z?tN3awcrjqUCwXxK5<+SI?>|?PR!D$t||ghxxLKVr-Z6Dw@24}CgX^Pq}kM_7!5qg z%Z*9SS}A#;Gxrf6Yzc??{fJaAfRlxa)hoqd(HC= z7O1`LmWceuZ0Io0(jzpSr>;rS>W?x`vcp>fVVJl1r4thU;2&FV>(dCwX&XK8S-%w< z9R&H4wYnRLSj%_btvh@R$#$Oo0`rfNf}|CtyFYe$!fDRQ{TCn#B2oP}ys`rt2n8pY zPr*hy=n`c2!FY)-Q6avwsaI|ld#8}B@=2^@?xy>AgA!eO(n7ietiyp6B?7 zzEjdImQZsbH{m6+$_l~!C_p?uVA-?$aetr2!i(>2oJ8*9svS$rL?LjaYe}8@!`*TQ zq#ig1wLj@;6j;-piPNt2DLzE!!*!-C3&;{_h7O&)YC#HO4{G<&N_9zob7B%}yt1NC zn%`Mm`%Yl-g?yhDxiV;rXh^>0f5my?!*A)t)TMO`3`(N+D9}1!YxNnLK)>@{8hpI5 zD`Qq^)g>Q(N6@}yx=%cj9sNvX@vp)=nn6ncK;7JEiZgd^P2j%)6VR%zgBZHuTvAw6 z>wG|E*}P>alWtK8B}_gAdu^xWy(?U(@8_IgZ{Dg_YfH_i| zcEU*ZONGosHYDv&Sy(wA_rub(!|ZW;oHgD9RV~OgubHzEy>?~?K2bePVezxt2%>;P z-?ra7<4n?x&FYaE?cEGI)-)$tD$5+muBu}U?sPHFKe+hV5?aCTUXV`J=9AHC=o-*Q zXUuT@-0>M!)m+!o+T(oHaeB!5lJUF^EcXIqSUNsvI7$4;|X#{w!e5pUJ_ zak1J+C*mxrK*L>l)}}XDmB5!T;U_ev;jCB9B2`6t)Wa`7=7pam>YPepUHy>E1}-i| zx=cTq2|P}#Ey5pcy4D8*2oic4dykynV%zxoUkQ#ZS%}$Wd?mL`_nI;G*TmEF^KJp z_vh{DE5H7`9RZOzAku0+?DJ`Ocwh zS7jB5f%YHF1(sTSKSuTtezZh?ey859@nDV}*wx8We3^(^>c;D^k{15Qf0gLJdBw#% zK4AOfnWngIHTLC=dT)#w{3rZBSpE+*HU0+;Htp>`-fzW8*#W`aU5e&a;9&m+kS-Mo literal 0 HcmV?d00001 diff --git a/static/domain-info/domains/domain-info.json b/static/domain-info/domains/domain-info.json new file mode 100644 index 0000000..12edb4f --- /dev/null +++ b/static/domain-info/domains/domain-info.json @@ -0,0 +1,4081 @@ +{ + "timeUpdated": "2025-03-17T10:05:02.622Z", + "categories": { + "0": "官方网站", + "1": "搜索引擎", + "2": "CDN", + "3": "新闻资讯", + "4": "购物网站", + "5": "社交网站", + "6": "工具网站", + "7": "社交工具", + "8": "视频网站", + "9": "混合内容", + "10": "博客/自媒体", + "11": "论坛/社区", + "12": "地图", + "13": "涉政网站", + "14": "政府网站", + "15": "政务网站", + "16": "组织网站", + "17": "事业单位", + "18": "政务服务", + "19": "网络邮件", + "20": "云服务", + "21": "网络存储", + "22": "网络服务", + "23": "支付平台", + "24": "API服务", + "25": "其他", + "26": "游戏网站", + "27": "行为分析、跟踪遥测、数据统计等" + }, + "domains": { + "网易": { + "网易163": { + "name": "网易163", + "categoryId": 3, + "url": "http://www.163.com/", + "icon": "https://www.163.com/favicon.ico" + }, + "网易163免费邮": { + "name": "网易163免费邮", + "categoryId": 18, + "url": "https://mail.163.com/", + "icon": "https://mail.163.com/favicon.ico" + }, + "网易126免费邮": { + "name": "网易126免费邮", + "categoryId": 18, + "url": "https://www.126.com/", + "icon": "https://www.126.com/favicon.ico" + }, + "网易有道词典": { + "name": "网易有道词典", + "categoryId": 0, + "url": "https://dict.youdao.com/", + "icon": "https://dict.youdao.com/favicon.ico" + }, + "网易uu加速器": { + "name": "网易uu加速器", + "categoryId": 0, + "url": { + "1": "https://uu.163.com/", + "2": "https://log.uu.163.com/" + } + }, + "company": "网易股份有限公司" + }, + "华为": { + "华为全球官网": { + "name": "华为全球官网", + "categoryId": 0, + "url": "www.huawei.com", + "icon": "https://www.huawei.com/-/media/htemplate-home/1.0.1.20251205144752/components/assets/img/favicon-logo.svg" + }, + "华为中国官网": { + "name": "华为中国官网", + "categoryId": 0, + "url": "www.huawei.com.cn", + "icon": "https://www.huawei.com.cn/favicon.ico" + }, + "华为账号认证中心": { + "name": "华为账号认证中心", + "categoryId": 0, + "url": "account.cloud.huawei.com", + "icon": "https://account.cloud.huawei.com/favicon.ico" + }, + "华为云CDN根域名": { + "name": "华为云CDN根域名", + "categoryId": 2, + "url": "myhwcdn.cn", + "icon": "https://www.huaweicloud.com/favicon.ico" + }, + "华为应用市场CDN分发": { + "name": "华为应用市场CDN分发", + "categoryId": 2, + "url": "dbankcdn.com", + "icon": "https://appgallery.huawei.com/favicon.ico" + }, + "华为云静态资源CDN": { + "name": "华为云静态资源CDN", + "categoryId": 2, + "url": "huaweicloud.com", + "icon": "https://www.huaweicloud.com/favicon.ico" + }, + "华为新闻中心": { + "name": "华为新闻中心", + "categoryId": 11, + "url": "news.huawei.com", + "icon": "https://www.huawei.com/-/media/htemplate-home/1.0.1.20251205144752/components/assets/img/favicon-logo.svg" + }, + "华为商城官网": { + "name": "华为商城官网", + "categoryId": 4, + "url": "www.vmall.com", + "icon": "https://www.vmall.com/favicon.ico" + }, + "华为花粉俱乐部社区": { + "name": "华为花粉俱乐部社区", + "categoryId": 11, + "url": "club.huawei.com", + "icon": "https://club.huawei.com/favicon.ico" + }, + "华为地图服务": { + "name": "华为地图服务", + "categoryId": 12, + "url": "mapkit.huawei.com", + "icon": "https://developer.huawei.com/favicon.ico" + }, + "华为云邮箱服务": { + "name": "华为云邮箱服务", + "categoryId": 19, + "url": "mail.huaweicloud.com", + "icon": "https://www.huaweicloud.com/favicon.ico" + }, + "华为云服务平台": { + "name": "华为云服务平台", + "categoryId": 20, + "url": "www.huaweicloud.com", + "icon": "https://www.huaweicloud.com/favicon.ico" + }, + "华为开发者平台": { + "name": "华为开发者平台", + "categoryId": 24, + "url": "developer.huawei.com", + "icon": "https://developer.huawei.com/favicon.ico" + }, + "华为支付平台": { + "name": "华为支付平台", + "categoryId": 23, + "url": "pay.huawei.com", + "icon": "https://www.huawei.com/-/media/htemplate-home/1.0.1.20251205144752/components/assets/img/favicon-logo.svg" + }, + "华为HiCloud网络连通性检测服务": { + "name": "华为HiCloud网络连通性检测服务", + "categoryId": 21, + "url": "connectivitycheck.platform.hicloud.com", + "icon": "https://www.huawei.com/-/media/htemplate-home/1.0.1.20251205144752/components/assets/img/favicon-logo.svg" + }, + "华为云CDN CNAME归属域": { + "name": "华为云CDN CNAME归属域/加速服务", + "categoryId": 2, + "url": { + "1": "cdnhwc1.com", + "2": "cdnhwc6.com" + }, + "icon": "https://www.huawei.com/-/media/htemplate-home/1.0.1.20251205144752/components/assets/img/favicon-logo.svg" + }, + "华为鸿蒙开发者社区": { + "name": "华为鸿蒙开发者社区", + "categoryId": 11, + "url": { + "1": "harmonyos.com", + "2": "www.harmonyos.com" + }, + "icon": "https://www.harmonyos.com/assets/image/favicon.ico?v=20240307" + }, + "华为视频平台": { + "name": "华为视频平台", + "categoryId": 8, + "url": "video.huawei.com", + "icon": "https://www.huawei.com/-/media/htemplate-home/1.0.1.20251205144752/components/assets/img/favicon-logo.svg" + }, + "company": "华为技术有限公司" + }, + "百度": { + "百度搜索": { + "name": "百度搜索", + "categoryId": 0, + "url": "https://www.baidu.com/", + "icon": "https://www.baidu.com/favicon.ico" + }, + "百度百科": { + "name": "百度百科", + "categoryId": 19, + "url": "https://baike.baidu.com/", + "icon": "https://baike.baidu.com/favicon.ico" + }, + "百度地图": { + "name": "百度地图", + "categoryId": 7, + "url": "https://map.baidu.com/", + "icon": "https://map.baidu.com/favicon.ico" + }, + "百度知道": { + "name": "百度知道", + "categoryId": 12, + "url": "https://zhidao.baidu.com/", + "icon": "https://zhidao.baidu.com/favicon.ico" + }, + "company": "北京百度网讯科技有限公司" + }, + "谷歌": { + "谷歌账号认证": { + "name": "谷歌账号认证", + "categoryId": 0, + "url": "accounts.google.com", + "icon": "https://accounts.google.com/favicon.ico" + }, + "谷歌搜索": { + "name": "谷歌搜索引擎", + "categoryId": 0, + "url": "www.google.com", + "icon": "https://www.google.com/favicon.ico" + }, + "谷歌CDN资源分发": { + "name": "谷歌CDN资源分发", + "categoryId": 2, + "url": "clients2.googleusercontent.com", + "icon": "https://www.google.com/favicon.ico" + }, + "谷歌CDN内容托管根域名": { + "name": "谷歌CDN内容托管根域名", + "categoryId": 2, + "url": "googleusercontent.com", + "icon": "https://www.google.com/favicon.ico" + }, + "谷歌搜索引擎": { + "name": "谷歌搜索引擎", + "categoryId": 1, + "url": "search.google.com", + "icon": "https://www.google.com/favicon.ico" + }, + "谷歌视频平台YouTube": { + "name": "谷歌视频平台YouTube", + "categoryId": 8, + "url": "www.youtube.com", + "icon": "https://www.youtube.com/favicon.ico" + }, + "谷歌云服务平台": { + "name": "谷歌云服务平台", + "categoryId": 20, + "url": "cloud.google.com", + "icon": "https://cloud.google.com/favicon.ico" + }, + "谷歌开发者平台": { + "name": "谷歌开发者平台", + "categoryId": 20, + "url": "developers.google.com", + "icon": "https://developers.google.com/favicon.ico" + }, + "谷歌Chrome浏览器更新": { + "name": "谷歌Chrome浏览器更新", + "categoryId": 2, + "url": "dl.google.com", + "icon": "https://www.google.com/favicon.ico" + }, + "company": "谷歌 LLC" + }, + "阿里云": { + "阿里云": { + "name": "阿里云", + "categoryId": 22, + "url": "https://www.aliyun.com/", + "icon": "https://img.alicdn.com/tfs/TB1_ZXuNcfpK1RjSZFOXXa6nFXa-32-32.ico" + }, + "阿里云API服务": { + "name": "阿里云API服务", + "categoryId": 22, + "url": "aliyuncs.com", + "icon": "https://img.alicdn.com/tfs/TB1_ZXuNcfpK1RjSZFOXXa6nFXa-32-32.ico" + }, + "阿里云DNS": { + "name": "阿里云DNS", + "categoryId": 22, + "url": { + "1": "alidns.com", + "2": "alibabadns.com" + }, + "icon": "https://img.alicdn.com/tfs/TB1_ZXuNcfpK1RjSZFOXXa6nFXa-32-32.ico" + }, + "支付宝": { + "name": "支付宝", + "categoryId": 23, + "url": "https://www.alipay.com/", + "icon": "https://www.alipay.com/favicon.ico" + }, + "淘宝相关": { + "淘宝": { + "name": "淘宝", + "categoryId": 4, + "url": "https://www.taobao.com/", + "icon": "https://www.taobao.com/favicon.ico" + }, + "淘宝UT数据看板服务": { + "name": "淘宝UT数据看板服务/淘宝内部数据监控与分析工具", + "categoryId": 6, + "url": "h-adashx.ut.taobao.com", + "icon": "https://www.taobao.com/favicon.ico" + }, + "淘宝移动端账号静态资源CDN": { + "name": "淘宝移动端账号静态资源CDN/淘宝移动端账号相关静态资源分发加速", + "categoryId": 2, + "url": "accscdn.m.taobao.com", + "icon": "https://www.taobao.com/favicon.ico" + }, + "淘宝AudID标识API服务": { + "name": "淘宝AudID标识API服务/用户设备唯一标识生成与验证接口", + "categoryId": 24, + "url": "audid-api.taobao.com", + "icon": "https://www.taobao.com/favicon.ico" + }, + "淘宝移动端主站": { + "name": "淘宝移动端主站/手机淘宝核心入口", + "categoryId": 4, + "url": "m.taobao.com", + "icon": "https://www.taobao.com/favicon.ico" + }, + "淘宝开放平台网关": { + "name": "淘宝开放平台网关/第三方应用API接入入口", + "categoryId": 24, + "url": "gw.api.taobao.com", + "icon": "https://www.taobao.com/favicon.ico" + }, + "淘宝TOP开放平台接口": { + "name": "淘宝TOP开放平台接口/电商业务API调用服务", + "categoryId": 24, + "url": "top.api.taobao.com", + "icon": "https://www.taobao.com/favicon.ico" + }, + "淘宝商家工具集": { + "name": "淘宝商家工具集/商家运营辅助工具", + "categoryId": 6, + "url": "tool.taobao.com", + "icon": "https://www.taobao.com/favicon.ico" + }, + "淘宝卖家中心": { + "name": "淘宝卖家中心/店铺管理与运营后台", + "categoryId": 6, + "url": "seller.taobao.com", + "icon": "https://www.taobao.com/favicon.ico" + }, + "淘宝支付服务入口": { + "name": "淘宝支付服务入口/订单支付与结算服务", + "categoryId": 23, + "url": "pay.taobao.com", + "icon": "https://www.taobao.com/favicon.ico" + }, + "淘宝核心静态资源CDN": { + "name": "淘宝核心静态资源CDN/全局样式脚本分发加速", + "categoryId": 2, + "url": "g.tbcdn.cn", + "icon": "https://www.taobao.com/favicon.ico" + }, + "淘宝前端静态资源CDN": { + "name": "淘宝前端静态资源CDN/网页静态文件分发加速", + "categoryId": 2, + "url": "assets.taobao.com", + "icon": "https://www.taobao.com/favicon.ico" + }, + "淘宝图片存储CDN": { + "name": "淘宝图片存储CDN/商品图片与素材分发加速", + "categoryId": 2, + "url": "img.alicdn.com", + "icon": "https://www.taobao.com/favicon.ico" + }, + "淘宝移动端专属CDN": { + "name": "淘宝移动端专属CDN/手机淘宝静态资源分发加速", + "categoryId": 2, + "url": "cdn.m.taobao.com", + "icon": "https://www.taobao.com/favicon.ico" + }, + "淘宝搜索结果CDN": { + "name": "淘宝搜索结果CDN/搜索页面静态资源分发加速", + "categoryId": 2, + "url": "s.tbcdn.cn", + "icon": "https://www.taobao.com/favicon.ico" + } + }, + "天猫": { + "name": "天猫", + "categoryId": 4, + "url": "https://www.tmall.com/", + "icon": "https://www.tmall.com/favicon.ico" + }, + "阿里云镜像源": { + "name": "阿里巴巴开源镜像站", + "categoryId": 0, + "url": { + "1": "https://mirrors.aliyun.com/" + }, + "icon": "https://img.alicdn.com/tfs/TB1_ZXuNcfpK1RjSZFOXXa6nFXa-32-32.ico" + }, + "万网": { + "name": "万网", + "categoryId": 0, + "url": "https://www.hichina.com/", + "icon": "https://img.alicdn.com/tfs/TB1_ZXuNcfpK1RjSZFOXXa6nFXa-32-32.ico" + }, + "阿里CDN": { + "阿里云CDN": { + "name": "阿里CDN", + "categoryId": 2, + "url": { + "1": "kunlunsl.com", + "2": "cdn.aliyuncs.com", + "3": "cloudfront.net", + "4": "alibabadns.com" + }, + "icon": "https://img.alicdn.com/tfs/TB1_ZXuNcfpK1RjSZFOXXa6nFXa-32-32.ico" + }, + "GSLB 全局负载均衡调度": { + "name": "GSLB 全局负载均衡调度", + "categoryId": 2, + "url": "cdngslb.com", + "icon": "https://img.alicdn.com/tfs/TB1_ZXuNcfpK1RjSZFOXXa6nFXa-32-32.ico" + } + }, + "company": "阿里云计算有限公司/阿里巴巴集团" + }, + "UC": { + "UC浏览器官网": { + "name": "UC浏览器官网", + "categoryId": 4, + "url": { + "1": "www.uc.cn", + "2": "https://www.uc.com/" + }, + "icon": "https://www.uc.cn/favicon.ico" + }, + "company": "广州市动景计算机科技有限公司" + }, + "腾讯系列": { + "微信相关": { + "微信": { + "name": "微信", + "categoryId": 7, + "url": { + "1": "https://wx.qq.com/", + "2": "https://weixin.qq.com/", + "3": "https://res.wx.qq.com/", + "4": "dns.weixin.qq.com", + "5": "pc.weixin.qq.com" + }, + "icon": "https://res.wx.qq.com/a/wx_fed/assets/res/NTI4MWU5.ico" + }, + "微信公众号文章缩略图CDN节点": { + "name": "微信公众号文章缩略图与广告图片分发CDN节点", + "categoryId": 2, + "url": "wxsnsdythumb.wxs.qq.com", + "icon": "https://res.wx.qq.com/a/wx_fed/assets/res/NTI4MWU5.ico" + }, + "微信公众号动态内容主CDN节点": { + "name": "微信公众号动态内容主CDN/文章正文图片素材分发", + "categoryId": 2, + "url": "wxsnsdy.wxs.qq.com", + "icon": "https://res.wx.qq.com/a/wx_fed/assets/res/NTI4MWU5.ico" + }, + "微信公众号内容备用CDN节点": { + "name": "微信公众号内容备用CDN/图片资源访问分流服务", + "categoryId": 2, + "url": "snsdy.tc.qq.com", + "icon": "https://res.wx.qq.com/a/wx_fed/assets/res/NTI4MWU5.ico" + }, + "微信生态视频缩略图CDN节点": { + "name": "微信生态视频缩略图CDN/公众号视频号封面截图分发", + "categoryId": 2, + "url": "vweixinthumb.tc.qq.com", + "icon": "https://res.wx.qq.com/a/wx_fed/assets/res/NTI4MWU5.ico" + } + }, + "腾讯视频相关": { + "腾讯视频图片缓存CDN节点": { + "name": "腾讯视频封面、海报、截图等静态图片CDN分发节点", + "categoryId": 2, + "url": "imgcache.tc.qq.com", + "icon": "https://v.qq.com/favicon.ico" + } + }, + "QQ音乐相关": { + "QQ音乐音频资源CDN节点": { + "name": "QQ音乐音频资源与封面图片CDN分发节点", + "categoryId": 2, + "url": "tsmusic.tc.qq.com", + "icon": "https://y.qq.com/favicon.ico" + } + }, + "腾讯会议核心代理服务": { + "name": "腾讯会议核心代理服务", + "categoryId": 19, + "url": "oth.eve.mdt.qq.com", + "icon": "https://meeting.tencent.com/favicon.ico" + }, + "WeChat": { + "name": "WeChat", + "categoryId": 7, + "url": { + "1": "wechat.com", + "2": "support.wechat.com", + "3": "www.wechat.com" + }, + "icon": "https://wechat.com/favicon.ico" + }, + "微信开放平台": { + "name": "微信开放平台", + "categoryId": 22, + "url": "https://open.weixin.qq.com/", + "icon": "https://open.weixin.qq.com/favicon.ico" + }, + "微信支付": { + "name": "微信支付商户平台", + "categoryId": 23, + "url": { + "1": "pay.weixin.qq.com", + "2": "pay.wechatpay.cn", + "3": "act.weixin.qq.com", + "4": "api.wechatpay.cn", + "5": "api.mch.weixin.qq.com", + "6": "api2.mch.weixin.qq.com", + "7": "api.wechatpay.cn", + "8": "api2.wechatpay.cn", + "9": "payapp.weixin.qq.com", + "10": "payapp.wechatpay.cn", + "11": "fraud.mch.weixin.qq.com", + "12": "fraud.wechatpay.cn", + "13": "action.weixin.qq.com", + "14": "action.wechatpay.cn", + "15": "wechatpay.cn" + }, + "icon": "https://gtimg.wechatpay.cn/core/favicon.ico" + }, + "微信支付海外版": { + "name": "微信支付海外版", + "categoryId": 23, + "url": { + "1": "https://pay.wechatpay.global/", + "2": "apihk.mch.weixin.qq.com", + "3": "apius.mch.weixin.qq.com" + }, + "icon": "https://gtimg.wechatpay.cn/core/favicon.ico" + }, + "微信CDN": { + "name": "微信CDN和日志等资源", + "categoryId": 23, + "url": { + "1": "https://gtimg.wechatpay.cn/", + "2": "log.wechatpay.cn", + "3": "newres.wechat.com", + "4": "res.wx.qq.com", + "5": "sh.servicewechat.com", + "6": "res.servicewechat.com" + }, + "icon": "https://gtimg.wechatpay.cn/core/favicon.ico" + }, + "腾讯下载加速网络CDN": { + "name": "腾讯下载加速网络CDN", + "categoryId": 23, + "url": { + "1": "dldir1v6.qq.com", + "2": "dldir1.qq.com", + "3": "dldir2.qq.com", + "4": "dldir3.qq.com", + "5": "dl.qq.com", + "6": "dldir.tencent.com", + "7": "pc.qq.com" + }, + "icon": "https://www.tencent.com/favicon.ico" + }, + "腾讯QQ": { + "name": "腾讯QQ", + "categoryId": 5, + "url": "https://im.qq.com/", + "icon": "https://im.qq.com/favicon.ico" + }, + "腾讯网": { + "name": "腾讯网", + "categoryId": 3, + "url": "https://www.qq.com/", + "icon": "https://www.qq.com/favicon.ico" + }, + "腾讯3G移动门户": { + "name": "腾讯3G移动门户", + "categoryId": 3, + "url": "3g.qq.com", + "icon": "https://www.tencent.com/favicon.ico" + }, + "3G 移动门户CDN": { + "name": "3G 移动门户CDN", + "categoryId": 23, + "url": "cdnimg.3g.qq.com", + "icon": "https://www.tencent.com/favicon.ico" + }, + "腾讯": { + "name": "腾讯", + "categoryId": 0, + "url": "https://www.tencent.com/", + "icon": "https://www.tencent.com/favicon.ico" + }, + "腾讯地图": { + "name": "腾讯地图", + "categoryId": 8, + "url": "https://map.qq.com/", + "icon": "https://map.qq.com/favicon.ico" + }, + "腾讯视频": { + "name": "腾讯视频", + "categoryId": 8, + "url": "https://v.qq.com/", + "icon": "https://v.qq.com/favicon.ico" + }, + "腾讯广告": { + "name": "腾讯广告", + "categoryId": 0, + "url": { + "1": "ugdtimg.com", + "2": "gdtimg.com", + "3": "ad.qq.com", + "4": "v3.gdt.qq.com", + "5": "c3.gdt.qq.com", + "6": "v2mi.gdt.qq.com", + "7": "gdt.qq.com" + }, + "icon": "https://www.tencent.com/favicon.ico" + }, + "腾讯Beacon事件日志上报": { + "name": "腾讯Beacon事件日志上报", + "categoryId": 0, + "url": "aeventlog.beacon.qq.com", + "icon": "https://www.tencent.com/favicon.ico" + }, + "QQ邮箱相关": { + "name": "QQ邮箱", + "categoryId": 0, + "url": { + "1": "mail.qq.com", + "2": "imap.qq.com", + "3": "smtp.qq.com", + "4": "w.mail.qq.com" + }, + "icon": "https://mail.qq.com/favicon.ico", + "company": "深圳腾讯计算机系统有限公司" + }, + "腾讯企业邮箱": { + "name": "腾讯企业邮箱", + "categoryId": 0, + "url": { + "1": "https://exmail.qq.com/", + "2": "https://exmail.qq.com/" + }, + "icon": "https://exmail.qq.com/favicon.ico", + "company": "深圳腾讯计算机系统有限公司" + }, + "企业微信": { + "name": "企业微信", + "categoryId": 0, + "url": { + "1": "https://work.weixin.qq.com/", + "2": "https://work.weixin.qq.com/" + }, + "icon": "https://work.weixin.qq.com/favicon.ico", + "company": "深圳腾讯计算机系统有限公司" + }, + "微信青少年相关": { + "微信守护平台": { + "name": "微信守护平台", + "categoryId": 22, + "url": "wxguard.weixin.qq.com", + "icon": "https://open.weixin.qq.com/favicon.ico" + }, + "微信未成年人服务短链接": { + "name": "微信未成年人服务短链接", + "categoryId": 22, + "url": { + "1": "minorshort.weixin.qq.com", + "2": "szminorshort.weixin.qq.com" + }, + "icon": "https://open.weixin.qq.com/favicon.ico" + }, + "深圳地区扩展短链接": { + "name": "深圳地区扩展短链接", + "categoryId": 22, + "url": "szextshort.weixin.qq.com", + "icon": "https://open.weixin.qq.com/favicon.ico" + }, + "腾讯云": { + "name": "腾讯云", + "categoryId": 0, + "url": { + "1": "https://cloud.tencent.com/", + "2": "https://www.tencentcloud.com/" + }, + "icon": "https://cloud.tencent.com/favicon.ico", + "company": "深圳腾讯计算机系统有限公司" + }, + "腾讯云CDN": { + "name": "腾讯云CDN", + "categoryId": 2, + "url": { + "1": "dnsv1.com", + "2": "tencent-cloud.cn", + "3": "tencent-cloud.com" + }, + "icon": "https://cloud.tencent.com/favicon.ico", + "company": "深圳腾讯计算机系统有限公司" + }, + "qcloud": { + "name": "腾讯云核心服务域", + "categoryId": 2, + "url": "myqcloud.com", + "icon": "https://cloud.tencent.com/favicon.ico" + }, + "腾讯云 EdgeOne (EO) 边缘安全加速平台": { + "name": "腾讯云 EdgeOne (EO) 边缘安全加速平台", + "categoryId": 2, + "url": { + "1": "dnse3.com", + "2": "eo.dnse3.com" + }, + "icon": "https://cloud.tencent.com/favicon.ico" + }, + "腾讯云全球加速 CDN": { + "name": "腾讯云全球加速 CDN", + "categoryId": 2, + "url": { + "1": "dnse1.com", + "2": "dnse2.com", + "3": "dnsoe2.com", + "4": "dnse5.com" + }, + "icon": "https://cloud.tencent.com/favicon.ico" + }, + "腾讯云DNSPod智能调度服务": { + "name": "腾讯云DNSPod智能调度服务", + "categoryId": 2, + "url": "tdnsdp1.cn", + "icon": "https://dnspod.com/favicon.ico" + }, + "PCDN 性能统计与数据上报": { + "name": "PCDN 性能统计与数据上报", + "categoryId": 2, + "url": "apd-pcdnwxstat.teg.tencent-cloud.net", + "icon": "https://cloud.tencent.com/favicon.ico" + }, + "IAS(智能加速服务)的动态调度 / 边缘节点": { + "name": "IAS(智能加速服务)的动态调度 / 边缘节点", + "categoryId": 2, + "url": "ias.tencent-cloud.net", + "icon": "https://cloud.tencent.com/favicon.ico" + } + }, + "company": "深圳市腾讯计算机系统有限公司" + }, + "高德地图相关": { + "高德地图": { + "name": "高德地图", + "categoryId": 12, + "url": { + "1": "https://map.amap.com/", + "2": "https://ditu.amap.com/", + "3": "https://www.amap.com/" + }, + "icon": "https://a.amap.com/pc/static/favicon.ico" + }, + "高德开放平台": { + "name": "高德开放平台", + "categoryId": 22, + "url": "lbs.amap.com", + "icon": "https://a.amap.com/pc/static/favicon.ico" + }, + "高德地图API": { + "高德地图API": { + "name": "高德地图API", + "categoryId": 22, + "url": { + "1": "https://restapi.amap.com/", + "2": "https://webapi.amap.com/" + }, + "icon": "https://a.amap.com/pc/static/favicon.ico" + }, + "高德前端性能与数据采集": { + "name": "高德前端性能与数据采集", + "categoryId": 22, + "url": "fp.amap.com", + "icon": "https://a.amap.com/pc/static/favicon.ico" + } + }, + "高德CDN": { + "移动端 CDN 资源分发": { + "name": "移动端 CDN 资源分发N", + "categoryId": 2, + "url": { + "1": "m5.amap.com", + "2": "m5-x.amap.com" + }, + "icon": "https://a.amap.com/pc/static/favicon.ico" + } + }, + "猎鹰轨迹服务": { + "name": "猎鹰轨迹服务", + "categoryId": 22, + "url": "https://tsapi.amap.com/", + "icon": "https://a.amap.com/pc/static/favicon.ico" + }, + "静态资源缓存": { + "name": "高德静态资源缓存", + "categoryId": 2, + "url": "cache.amap.com", + "icon": "https://a.amap.com/pc/static/favicon.ico" + }, + "company": "北京高德图强科技有限公司" + }, + "微软": { + "微软": { + "name": "微软", + "categoryId": 0, + "url": "https://www.microsoft.com/", + "icon": "https://www.microsoft.com/favicon.ico?v2" + }, + "微软必应": { + "微软必应": { + "name": "微软必应", + "categoryId": 1, + "url": { + "1": "www.bing.com", + "2": "cn.bing.com", + "3": "bing.com" + }, + "icon": "https://www.bing.com/favicon.ico" + }, + "Bing重定向服务": { + "name": "Bing重定向服务/搜索请求重定向处理", + "categoryId": 1, + "url": "r.bing.com", + "icon": "https://www.bing.com/favicon.ico" + }, + "Bing静态资源节点": { + "name": "Bing静态资源节点/页面静态资源分发加速", + "categoryId": 2, + "url": { + "1": "ts1.tc.mm.bing.net", + "2": "ts2.tc.mm.bing.net", + "3": "ts3.tc.mm.bing.net", + "4": "ts4.tc.mm.bing.net" + }, + "icon": "https://www.bing.com/favicon.ico" + }, + "Bing备用搜索主站": { + "name": "Bing备用搜索主站/搜索引擎备用访问入口", + "categoryId": 1, + "url": "www2.bing.com", + "icon": "https://www.bing.com/favicon.ico" + }, + "Bing图片缩略图服务": { + "name": "Bing图片缩略图服务/搜索结果图片缩略图分发", + "categoryId": 2, + "url": "th.bing.com", + "icon": "https://www.bing.com/favicon.ico" + }, + "Bing奖励计划官网": { + "name": "Bing奖励计划官网/搜索奖励积分查询与兑换", + "categoryId": 6, + "url": "rewards.bing.com", + "icon": "https://www.bing.com/favicon.ico" + } + }, + "OneCollector/1DS(微软统一数据收集平台)": { + "name": "微软OneCollector/1DS (One Data Strategy) 统一遥测收集系统", + "categoryId": 0, + "url": { + "1": "mobile.events.data.microsoft.com", + "2": "us-mobile.events.data.microsoft.com", + "3": "eu-mobile.events.data.microsoft.com", + "4": "au-mobile.events.data.microsoft.com", + "5": "jp-mobile.events.data.microsoft.com", + "6": "browser.events.data.microsoft.com", + "7": "v10.events.data.microsoft.com", + "8": "mobile.pipe.aria.microsoft.com", + "9": "in.appcenter.ms" + }, + "icon": "https://www.microsoft.com/favicon.ico?v2" + }, + "微软连接测试": { + "name": "微软连接测试", + "categoryId": 0, + "url": { + "1": "msftconnecttest.com", + "2": "ipv6.msftconnecttest.com", + "3": "ipv4.msftconnecttest.com", + "4": "www.msftconnecttest.com" + }, + "icon": "https://www.microsoft.com/favicon.ico?v2" + }, + "微软Edge": { + "name": "微软Edge", + "categoryId": 0, + "url": "https://www.microsoftedgeinsider.com/", + "icon": "https://www.microsoftedgeinsider.com/favicon.ico" + }, + "微软Office": { + "name": "微软Office", + "categoryId": 0, + "url": "https://www.office.com/", + "icon": "https://www.office.com/favicon.ico" + }, + "微软Intune": { + "name": "微软Intune", + "categoryId": 0, + "url": "https://intune.microsoft.com/", + "icon": "https://intune.microsoft.com/favicon.ico" + }, + "Insider": { + "name": "Insider", + "categoryId": 0, + "url": "https://insider.microsoft.com/", + "icon": "https://insider.microsoft.com/favicon.ico" + }, + "Azure": { + "微软Azure官网": { + "name": "Azure", + "categoryId": 0, + "url": "https://www.azure.com/", + "icon": "https://portal.azure.com/Content/favicon.ico" + }, + "微软Azure AD统一身份认证服务": { + "name": "微软Azure AD统一身份认证服务", + "categoryId": 21, + "url": "login.microsoftonline.com", + "icon": "https://login.microsoftonline.com/favicon.ico" + }, + "微软身份平台服务CDN": { + "name": "微软身份平台服务CDN", + "categoryId": 2, + "url": "msidentity.com", + "icon": "https://login.microsoftonline.com/favicon.ico" + } + }, + "网络连接状态指示器(NCSI)": { + "name": "网络连接状态指示器(NCSI)", + "categoryId": 0, + "url": { + "1": "dns.msftncsi.com", + "2": "ipv6.msftncsi.com", + "3": "msftncsi.com" + }, + "icon": "https://www.microsoft.com/favicon.ico" + }, + "MSN": { + "微软MSN": { + "name": "微软MSN", + "categoryId": 0, + "url": "https://www.msn.cn/", + "icon": "https://www.msn.cn/favicon.ico" + }, + "MSN中国事件数据收集沙盒服务器": { + "name": "MSN中国事件数据收集沙盒服务器/测试环境用户行为与事件数据采集服务", + "categoryId": 5, + "url": "events-sandbox.data.msn.cn", + "icon": "https://www.msn.cn/favicon.ico" + }, + "msnapi": { + "name": "微软MSN API", + "categoryId": 0, + "url": { + "1": "https://api.msn.com/", + "2": "api.msn.cn" + }, + "icon": "https://www.msn.cn/favicon.ico" + }, + "MSN静态资源": { + "name": "微软MSN静态资源", + "categoryId": 2, + "url": { + "1": "assets.msn.cn", + "2": "img-s.msn.cn", + "icon": "https://www.msn.cn/favicon.ico" + }, + "company": "上海美思恩网络通信技术有限公司 (MSN 中国)" + } + }, + "Edge CDN": { + "name": "微软 Edge 浏览器的CDN 与边缘服务根域名", + "categoryId": 2, + "url": "a-msedge.net", + "icon": "https://www.microsoft.com/favicon.ico" + }, + "微软 WNS(Windows 推送通知服务)的客户端通信": { + "name": "微软 WNS(Windows 推送通知服务)的客户端通信域名", + "categoryId": 2, + "url": "client.wns.windows.com", + "icon": "https://www.microsoft.com/favicon.ico" + }, + "company": "微软 Microsoft" + }, + "字节跳动": { + "抖音相关": { + "抖音": { + "name": "抖音", + "categoryId": 0, + "url": "https://www.douyin.com/", + "icon": "https://www.douyin.com/favicon.ico" + }, + "吉云互动HTTPDNS解析服务": { + "name": "吉云互动HTTPDNS解析服务/移动端防劫持精准域名解析", + "categoryId": 7, + "url": "dig.bdurl.net", + "icon": "data:image/vnd.microsoft.icon;base64,iVBORw0KGgoAAAANSUhEUgAAASwAAAEsCAMAAABOo35HAAACFlBMVEUAAACp3f8yW7U8jf8zW7U/3vJA5P8AydMzW7VPlP955908jP8AydM8jf8yWrV5590yWrV45908jf8yW7UyW7UyW7V55909jf88jf8yW7UzW7V56N49jf80XLY+j/80XbY/lf8zZr5Ilf9GXbkA2+RCY70zZsx459x5590AydI8jP8AydN4590AydM8jf8AydM8jf88jf94590AyNM8jf8AydN5590AydM8jf8AyNIAytR5594zW7V56N09jf955948jf8AydMAytN65948jf956N56594AytMAy9Q9jv976d8AytYAy9Z66N566uE/jv8AztUAy9cAytV56OSD798A0NYAydM8jP95590yW7R45twAydN45909jP8yWrU8jf945t0AydIyWrV5590AydIyW7UzWrU8jf8AydIzW7UzWrV459145908jf8yW7UAydM8jP8AydM8jf9459155909jf8zW7UAydQAytMAydN56N0AydMzXLYAydM0W7UAydQ8jv8+jv8Ay9QzW7Y9jf965t176N80W7YAydN56N156d4yW7U0XLc+jv8+kP8Ay9VAj/81XbgAzNQ1XbY5XbZAkf9+7eQ7Yrp96+FDlv+F6emI/+4AydN55t15594AydM+jf8+jf8+jv8AydQ1W7QzW7UAydR75942XbUyWrR86OCA8uYAztqA8eN45twyWrQAyNI8jP8bed+KAAAArnRSTlMAAfb9+wUD8HMJ/fr59+jb1dTLt6eamY+Jg3xXTkhHOhIRDQsJBwX59vbr4+Dc1tXRxcC7ubSqoJuak5CKiIN+enlyb21lXVFEQj09NzAnJiQdGBUPDvzx8O/s6Obl397OzsvIyMXEwcG/vbiysbGuqqeknZSTkI2Gf3ZraGViX15YWFVTUk9OS0pEQUA8MzAtLSomHx4bGhkXCwfApKCAdGdjXlxaWTY0MyEUFBKNTPVmAAAFHElEQVR42uzX105UYRSG4YUyiCgqKvbeK3ZFsaCCXUHE3kvU2FvU2EussfcSY2KiiSUDc4fuTcl/xr8/ZuZk7/e9g/UcfcuIiIiIiIiIiIiIiMhf7wFDPxlFKx1UdunBX6NoWGEHqp40GnmwXCWHlzz9YuTBck2cvWzdVyMPlmtSAJYy8mE5sJPXNhYYebBcO06tBMyP5do1v3aTkcPytedb7R8jh+Vr2sVVHyzxpaMXfEZbLNGltcqqHjba8LGWzNJyJdZUeHTws/GWvNJ61hTW5cSQkRMsWXUWqxWsX/HvJC2xTmK5dp4pfp0UsCywXL3633hrCShrLAd2653FvBxgufaV//xoMS5HWK4+5fdHW0zLJZYDu/wolmC5xXIVHlocv6GfcyxX/IZ+HrHiN/TziuWGvsWiLLCULBaBBVZLYAmBJQSWEFhCYAmBJQSWEFhCYAmBJQSWEFhCYAmBJQSWEFhCYAmBJQSWEFhCYAmBJQSWEFhCYAmBJQSWEFhCYAmBJQSWEFhCYAmBJQSWEFhCYAmBJQSWEFhCYAmBJQSWEFhCYAmBJQSWEFhCYAmBJQSWEFhCYOW1erCitfn2gqnNYPlruLdwenMQWJ7+rV40I3QCy9PWx1cOhkZgeRq35uqRbYEPWD6o9d+P9wxxwOq41IblcyaHMGB1XNHLFfO6hShgeXpz/WwLFFie6m+e3x1igBVlmgeB5anhV+s0B8tX2zQHK0rB8WCBZQYWWGCBBRZYYIEFFlhggQUWWGCBBRZYYIGVZKyKgcNGmYEVCSuTyXTtO2jEGLCiYYX1mLV0bXewfFiu0mPVz1NgebEc2NzqF0Vg+bBc20/XvCoAy4flmnKupg4sL5Zr74UfdWB5sVz7K++8B8theauovPsZLIflbWYw9MGKiNU+9MGKlBv6YEWvFCwhsMACCyywwAILLLDAAgsssMACCyywwAILLLDAAgsssMACCyywwAILLLDAAgsssMACCyywwAILLLDAAgsssMACCyywwAILLLDAAgsssMD6325d7cQVhWEY/ocWn9JSoO5GhTqlSo2Wurt72qbu3lRwgruEQCCBE+6RHQ7YR7DWP8OeWSHvewnPwZcPLLDAAgsssMACCyywwAILLLDAAgsssMACCyywwAILLLCmGtbhHclg+Vimkk4f2r4OLLEu8dS3Z2Gw7Ft1/OvjMFj2Xan48uAqWAqwY3s2g6Xo4r/dG8FSdKF/5wawFJ3/9e4WWIoaf7xJBsu+UJ139MHyszr6YKmOfncYLM3RB0sRWGDZBBZYYIEFFlhggQUWWGBFgpWQBZYd1PMFS9cIWMamP5lfvVq8wDJAPdy3eKV4gWVo1ufy5eIFlhigcv6PQoFlwLqbM9AmXmAZsDKyfzeLX6BY6U/FJjexMrJ/NolfoFjTZs9bkipWuYd143VKQ0iiyh5qy9xFK8Q6t7ASslKGfKiAsTZ9KlkmqtzB8q95DLDu7frbIXEvIiz/mscC6877Py3iRJFg+dc8cKz1b/vOiTPprdJk0hsH6tWRenEqpVTmx9JhkeCxruX31obEtRRQM+csvCTq9Fgz8g/WJImLWULl9RS3ijo9VvrW/SdSxdUsoG4XHD0rgRb3az45WDcLitRQ+uJ+zaPHuv6y6ExsRjbu1zw6rLUvvg+6ObKqgsfK3XbgZKKQESv3UWFVl5ARK+1+YWWnkBkrc2/ZZaGJG7vmZC7vQ3G7EBERERERERERERER0dRtBK5Q857p1uutAAAAAElFTkSuQmCC" + } + }, + "字节跳动官网": { + "name": "字节跳动官网", + "categoryId": 0, + "url": "https://www.bytedance.com/", + "icon": "data:image/vnd.microsoft.icon;base64,iVBORw0KGgoAAAANSUhEUgAAASwAAAEsCAMAAABOo35HAAACFlBMVEUAAACp3f8yW7U8jf8zW7U/3vJA5P8AydMzW7VPlP955908jP8AydM8jf8yWrV5590yWrV45908jf8yW7UyW7UyW7V55909jf88jf8yW7UzW7V56N49jf80XLY+j/80XbY/lf8zZr5Ilf9GXbkA2+RCY70zZsx459x5590AydI8jP8AydN4590AydM8jf8AydM8jf88jf94590AyNM8jf8AydN5590AydM8jf8AyNIAytR5594zW7V56N09jf955948jf8AydMAytN65948jf956N56594AytMAy9Q9jv976d8AytYAy9Z66N566uE/jv8AztUAy9cAytV56OSD798A0NYAydM8jP95590yW7R45twAydN45909jP8yWrU8jf945t0AydIyWrV5590AydIyW7UzWrU8jf8AydIzW7UzWrV459145908jf8yW7UAydM8jP8AydM8jf9459155909jf8zW7UAydQAytMAydN56N0AydMzXLYAydM0W7UAydQ8jv8+jv8Ay9QzW7Y9jf965t176N80W7YAydN56N156d4yW7U0XLc+jv8+kP8Ay9VAj/81XbgAzNQ1XbY5XbZAkf9+7eQ7Yrp96+FDlv+F6emI/+4AydN55t15594AydM+jf8+jf8+jv8AydQ1W7QzW7UAydR75942XbUyWrR86OCA8uYAztqA8eN45twyWrQAyNI8jP8bed+KAAAArnRSTlMAAfb9+wUD8HMJ/fr59+jb1dTLt6eamY+Jg3xXTkhHOhIRDQsJBwX59vbr4+Dc1tXRxcC7ubSqoJuak5CKiIN+enlyb21lXVFEQj09NzAnJiQdGBUPDvzx8O/s6Obl397OzsvIyMXEwcG/vbiysbGuqqeknZSTkI2Gf3ZraGViX15YWFVTUk9OS0pEQUA8MzAtLSomHx4bGhkXCwfApKCAdGdjXlxaWTY0MyEUFBKNTPVmAAAFHElEQVR42uzX105UYRSG4YUyiCgqKvbeK3ZFsaCCXUHE3kvU2FvU2EussfcSY2KiiSUDc4fuTcl/xr8/ZuZk7/e9g/UcfcuIiIiIiIiIiIiIiMhf7wFDPxlFKx1UdunBX6NoWGEHqp40GnmwXCWHlzz9YuTBck2cvWzdVyMPlmtSAJYy8mE5sJPXNhYYebBcO06tBMyP5do1v3aTkcPytedb7R8jh+Vr2sVVHyzxpaMXfEZbLNGltcqqHjba8LGWzNJyJdZUeHTws/GWvNJ61hTW5cSQkRMsWXUWqxWsX/HvJC2xTmK5dp4pfp0UsCywXL3633hrCShrLAd2653FvBxgufaV//xoMS5HWK4+5fdHW0zLJZYDu/wolmC5xXIVHlocv6GfcyxX/IZ+HrHiN/TziuWGvsWiLLCULBaBBVZLYAmBJQSWEFhCYAmBJQSWEFhCYAmBJQSWEFhCYAmBJQSWEFhCYAmBJQSWEFhCYAmBJQSWEFhCYAmBJQSWEFhCYAmBJQSWEFhCYAmBJQSWEFhCYAmBJQSWEFhCYAmBJQSWEFhCYAmBJQSWEFhCYAmBJQSWEFhCYOW1erCitfn2gqnNYPlruLdwenMQWJ7+rV40I3QCy9PWx1cOhkZgeRq35uqRbYEPWD6o9d+P9wxxwOq41IblcyaHMGB1XNHLFfO6hShgeXpz/WwLFFie6m+e3x1igBVlmgeB5anhV+s0B8tX2zQHK0rB8WCBZQYWWGCBBRZYYIEFFlhggQUWWGCBBRZYYIGVZKyKgcNGmYEVCSuTyXTtO2jEGLCiYYX1mLV0bXewfFiu0mPVz1NgebEc2NzqF0Vg+bBc20/XvCoAy4flmnKupg4sL5Zr74UfdWB5sVz7K++8B8theauovPsZLIflbWYw9MGKiNU+9MGKlBv6YEWvFCwhsMACCyywwAILLLDAAgsssMACCyywwAILLLDAAgsssMACCyywwAILLLDAAgsssMACCyywwAILLLDAAgsssMACCyywwAILLLDAAgsssMD6325d7cQVhWEY/ocWn9JSoO5GhTqlSo2Wurt72qbu3lRwgruEQCCBE+6RHQ7YR7DWP8OeWSHvewnPwZcPLLDAAgsssMACCyywwAILLLDAAgsssMACCyywwAILLLCmGtbhHclg+Vimkk4f2r4OLLEu8dS3Z2Gw7Ft1/OvjMFj2Xan48uAqWAqwY3s2g6Xo4r/dG8FSdKF/5wawFJ3/9e4WWIoaf7xJBsu+UJ139MHyszr6YKmOfncYLM3RB0sRWGDZBBZYYIEFFlhggQUWWGBFgpWQBZYd1PMFS9cIWMamP5lfvVq8wDJAPdy3eKV4gWVo1ufy5eIFlhigcv6PQoFlwLqbM9AmXmAZsDKyfzeLX6BY6U/FJjexMrJ/NolfoFjTZs9bkipWuYd143VKQ0iiyh5qy9xFK8Q6t7ASslKGfKiAsTZ9KlkmqtzB8q95DLDu7frbIXEvIiz/mscC6877Py3iRJFg+dc8cKz1b/vOiTPprdJk0hsH6tWRenEqpVTmx9JhkeCxruX31obEtRRQM+csvCTq9Fgz8g/WJImLWULl9RS3ijo9VvrW/SdSxdUsoG4XHD0rgRb3az45WDcLitRQ+uJ+zaPHuv6y6ExsRjbu1zw6rLUvvg+6ObKqgsfK3XbgZKKQESv3UWFVl5ARK+1+YWWnkBkrc2/ZZaGJG7vmZC7vQ3G7EBERERERERERERER0dRtBK5Q857p1uutAAAAAElFTkSuQmCC" + }, + "Trae": { + "Trae中国版主站": { + "name": "Trae中国版官方主站/AI IDE下载入口", + "categoryId": 10, + "url": "www.trae.cn", + "icon": "https://lf-cdn.trae.com.cn/obj/trae-com-cn/trae_website_prod_cn/favicon.png" + }, + "Trae中国版核心API接口": { + "name": "Trae中国版核心API服务/模型调用与功能扩展接口", + "categoryId": 11, + "url": "api.trae.com.cn", + "icon": "https://www.trae.com.cn/favicon.ico" + }, + "Trae国际版Normal模式核心服务": { + "name": "Trae国际版Normal模式/基础AI编程功能接口", + "categoryId": 11, + "url": "grow-normal.trae.ai", + "icon": "https://lf-cdn.trae.com.cn/obj/trae-com-cn/trae_website_prod_cn/favicon.png" + }, + "Trae中国版备用官网": { + "name": "Trae中国版备用官网/国内服务入口", + "categoryId": 10, + "url": "www.trae.com.cn", + "icon": "https://lf-cdn.trae.com.cn/obj/trae-com-cn/trae_website_prod_cn/favicon.png" + }, + "Trae国际版主站": { + "name": "Trae国际版官方主站/全球AI编程服务入口", + "categoryId": 10, + "url": "www.trae.ai", + "icon": "https://lf-cdn.trae.com.cn/obj/trae-com-cn/trae_website_prod_cn/favicon.png" + }, + "Trae官方文档中心": { + "name": "Trae中国版官方文档中心/使用指南与API参考", + "categoryId": 15, + "url": "docs.trae.com.cn", + "icon": "https://lf-cdn.trae.com.cn/obj/trae-com-cn/trae_website_prod_cn/favicon.png" + }, + "Trae产品资讯网站": { + "name": "Trae产品介绍与资讯平台", + "categoryId": 10, + "url": "traeai.com", + "icon": "https://lf-cdn.trae.com.cn/obj/trae-com-cn/trae_website_prod_cn/favicon.png" + }, + "Trae中国版资讯百科": { + "name": "Trae中国版相关资讯与百科网站", + "categoryId": 10, + "url": "traecn.com", + "icon": "https://lf-cdn.trae.com.cn/obj/trae-com-cn/trae_website_prod_cn/favicon.png" + }, + "Trae中国版CDN节点": { + "name": "Trae中国版静态资源CDN/官网图片JS安装包分发加速", + "categoryId": 2, + "url": "lf-cdn.trae.com.cn", + "icon": "https://lf-cdn.trae.com.cn/obj/trae-com-cn/trae_website_prod_cn/favicon.png" + }, + "Trae国际版CDN节点": { + "name": "Trae国际版静态资源CDN/国际版官网资源分发加速", + "categoryId": 2, + "url": "lf-cdn.trae.ai", + "icon": "https://lf-cdn.trae.com.cn/obj/trae-com-cn/trae_website_prod_cn/favicon.png" + }, + "Trae国际版Agent模式核心服务": { + "name": "Trae国际版Agent模式/智能体编程与复杂任务处理接口", + "categoryId": 11, + "url": "grow-agent.trae.ai", + "icon": "https://lf-cdn.trae.com.cn/obj/trae-com-cn/trae_website_prod_cn/favicon.png" + }, + "Trae国际版Builder模式核心服务": { + "name": "Trae国际版Builder模式/全栈项目构建与快速原型开发接口", + "categoryId": 11, + "url": "grow-builder.trae.ai", + "icon": "https://lf-cdn.trae.com.cn/obj/trae-com-cn/trae_website_prod_cn/favicon.png" + }, + "Trae国际版SOLO模式核心服务": { + "name": "Trae国际版SOLO模式/高级智能体与复杂任务自主执行接口", + "categoryId": 11, + "url": "grow-solo.trae.ai", + "icon": "https://lf-cdn.trae.com.cn/obj/trae-com-cn/trae_website_prod_cn/favicon.png" + }, + "Trae国际版高级功能服务": { + "name": "Trae国际版高级功能/代码重构与性能优化专业接口", + "categoryId": 11, + "url": "grow-advanced.trae.ai", + "icon": "https://lf-cdn.trae.com.cn/obj/trae-com-cn/trae_website_prod_cn/favicon.png" + }, + "Trae国际版主API接口": { + "name": "Trae国际版主API/用户认证与模型管理基础接口", + "categoryId": 11, + "url": "api.trae.ai", + "icon": "https://lf-cdn.trae.com.cn/obj/trae-com-cn/trae_website_prod_cn/favicon.png" + }, + "Trae国际版官方文档中心": { + "name": "Trae国际版文档中心/多语言使用指南与API参考", + "categoryId": 15, + "url": "docs.trae.ai", + "icon": "https://docs.trae.ai/favicon.ico" + }, + "Trae国际版静态资源CDN": { + "name": "Trae国际版静态资源CDN/IDE客户端与网页资源加速", + "categoryId": 2, + "url": "static.trae.ai", + "icon": "https://lf-cdn.trae.com.cn/obj/trae-com-cn/trae_website_prod_cn/favicon.png" + }, + "Trae国际版资产文件CDN": { + "name": "Trae国际版资产文件CDN/模型权重与工具包分发", + "categoryId": 2, + "url": "assets.trae.ai", + "icon": "https://lf-cdn.trae.com.cn/obj/trae-com-cn/trae_website_prod_cn/favicon.png" + }, + "Trae国际版英文官网": { + "name": "Trae国际版英文官网/全球英语用户服务平台", + "categoryId": 1, + "url": "en.trae.ai", + "icon": "https://lf-cdn.trae.com.cn/obj/trae-com-cn/trae_website_prod_cn/favicon.png" + }, + "Trae国际版日文官网": { + "name": "Trae国际版日文官网/日本市场本地化服务平台", + "categoryId": 1, + "url": "ja.trae.ai", + "icon": "https://lf-cdn.trae.com.cn/obj/trae-com-cn/trae_website_prod_cn/favicon.png" + }, + "Trae国际版韩文官网": { + "name": "Trae国际版韩文官网/韩国市场本地化服务平台", + "categoryId": 1, + "url": "ko.trae.ai", + "icon": "https://lf-cdn.trae.com.cn/obj/trae-com-cn/trae_website_prod_cn/favicon.png" + }, + "Trae国际版德文官网": { + "name": "Trae国际版德文官网/德语区市场本地化服务平台", + "categoryId": 1, + "url": "de.trae.ai", + "icon": "https://lf-cdn.trae.com.cn/obj/trae-com-cn/trae_website_prod_cn/favicon.png" + }, + "Trae国际版法文官网": { + "name": "Trae国际版法文官网/法语区市场本地化服务平台", + "categoryId": 1, + "url": "fr.trae.ai", + "icon": "https://lf-cdn.trae.com.cn/obj/trae-com-cn/trae_website_prod_cn/favicon.png" + }, + "Trae国际版插件市场": { + "name": "Trae国际版插件市场/第三方工具与主题集成中心", + "categoryId": 12, + "url": "marketplace.trae.ai", + "icon": "https://lf-cdn.trae.com.cn/obj/trae-com-cn/trae_website_prod_cn/favicon.png" + }, + "Trae国际版集成中心": { + "name": "Trae国际版集成中心/外部服务与代码仓库集成指南", + "categoryId": 13, + "url": "integrations.trae.ai", + "icon": "https://lf-cdn.trae.com.cn/obj/trae-com-cn/trae_website_prod_cn/favicon.png" + }, + "Trae国际版API网关": { + "name": "Trae国际版API网关/第三方集成安全与流量管理", + "categoryId": 11, + "url": "api-gateway.trae.ai", + "icon": "https://lf-cdn.trae.com.cn/obj/trae-com-cn/trae_website_prod_cn/favicon.png" + }, + "Trae国际版开发者SDK": { + "name": "Trae国际版开发者SDK/第三方应用集成工具包", + "categoryId": 14, + "url": "sdk.trae.ai", + "icon": "https://lf-cdn.trae.com.cn/obj/trae-com-cn/trae_website_prod_cn/favicon.png" + }, + "Trae国际版全局CDN": { + "name": "Trae国际版全局CDN/跨区域静态资源加速分发", + "categoryId": 2, + "url": "cdn.trae.ai", + "icon": "https://lf-cdn.trae.com.cn/obj/trae-com-cn/trae_website_prod_cn/favicon.png" + }, + "Trae国际版图片CDN": { + "name": "Trae国际版图片CDN/媒体资源加速与存储", + "categoryId": 2, + "url": "img.trae.ai", + "icon": "https://lf-cdn.trae.com.cn/obj/trae-com-cn/trae_website_prod_cn/favicon.png" + }, + "Trae国际版全局管理后台": { + "name": "Trae国际版全局管理后台/用户与权限核心管理平台", + "categoryId": 16, + "url": "admin.trae.ai", + "icon": "https://lf-cdn.trae.com.cn/obj/trae-com-cn/trae_website_prod_cn/favicon.png" + }, + "Trae国际版开发者控制台": { + "name": "Trae国际版开发者控制台/API与资源管理中心", + "categoryId": 16, + "url": "console.trae.ai", + "icon": "https://lf-cdn.trae.com.cn/obj/trae-com-cn/trae_website_prod_cn/favicon.png" + }, + "Trae国际版团队管理平台": { + "name": "Trae国际版团队管理平台/协作与权限控制中心", + "categoryId": 16, + "url": "team.trae.ai", + "icon": "https://lf-cdn.trae.com.cn/obj/trae-com-cn/trae_website_prod_cn/favicon.png" + }, + "Trae国际版计费系统": { + "name": "Trae国际版计费系统/订阅与支付管理平台", + "categoryId": 17, + "url": "billing.trae.ai", + "icon": "https://lf-cdn.trae.com.cn/obj/trae-com-cn/trae_website_prod_cn/favicon.png" + }, + "Trae国际版服务监控平台": { + "name": "Trae国际版服务监控平台/系统状态与告警中心", + "categoryId": 18, + "url": "monitor.trae.ai", + "icon": "https://lf-cdn.trae.com.cn/obj/trae-com-cn/trae_website_prod_cn/favicon.png" + }, + "Trae国际版日志中心": { + "name": "Trae国际版日志中心/操作与请求日志管理平台", + "categoryId": 19, + "url": "logs.trae.ai", + "icon": "https://lf-cdn.trae.com.cn/obj/trae-com-cn/trae_website_prod_cn/favicon.png" + }, + "Trae国际版遥测服务": { + "name": "Trae国际版遥测服务/客户端数据收集与分析平台", + "categoryId": 20, + "url": "telemetry.trae.ai", + "icon": "https://lf-cdn.trae.com.cn/obj/trae-com-cn/trae_website_prod_cn/favicon.png" + }, + "Trae国际版服务状态页": { + "name": "Trae国际版服务状态页/实时可用性与故障公告", + "categoryId": 21, + "url": "status.trae.ai", + "icon": "https://lf-cdn.trae.com.cn/obj/trae-com-cn/trae_website_prod_cn/favicon.png" + }, + "Trae国际版统一认证服务": { + "name": "Trae国际版统一认证服务/SSO与身份管理中心", + "categoryId": 22, + "url": "auth.trae.ai", + "icon": "https://lf-cdn.trae.com.cn/obj/trae-com-cn/trae_website_prod_cn/favicon.png" + }, + "Trae国际版审计日志平台": { + "name": "Trae国际版审计日志平台/合规追踪与报告生成", + "categoryId": 23, + "url": "audit.trae.ai", + "icon": "https://lf-cdn.trae.com.cn/obj/trae-com-cn/trae_website_prod_cn/favicon.png" + }, + "Trae国际版运维管理平台": { + "name": "Trae国际版运维管理平台/服务部署与故障处理中心", + "categoryId": 24, + "url": "ops.trae.ai", + "icon": "https://lf-cdn.trae.com.cn/obj/trae-com-cn/trae_website_prod_cn/favicon.png" + } + }, + "今日头条": { + "name": "今日头条", + "categoryId": 0, + "url": "https://www.toutiao.com/", + "icon": "https://www.toutiao.com/favicon.ico" + }, + "抖音视频": { + "name": "抖音视频", + "categoryId": 8, + "url": "https://v.douyin.com/", + "icon": "https://v.douyin.com/favicon.ico" + }, + "字节跳动API服务": { + "name": "字节跳动API服务", + "categoryId": 22, + "url": "zijieapi.com", + "icon": "data:image/vnd.microsoft.icon;base64,iVBORw0KGgoAAAANSUhEUgAAASwAAAEsCAMAAABOo35HAAACFlBMVEUAAACp3f8yW7U8jf8zW7U/3vJA5P8AydMzW7VPlP955908jP8AydM8jf8yWrV5590yWrV45908jf8yW7UyW7UyW7V55909jf88jf8yW7UzW7V56N49jf80XLY+j/80XbY/lf8zZr5Ilf9GXbkA2+RCY70zZsx459x5590AydI8jP8AydN4590AydM8jf8AydM8jf88jf94590AyNM8jf8AydN5590AydM8jf8AyNIAytR5594zW7V56N09jf955948jf8AydMAytN65948jf956N56594AytMAy9Q9jv976d8AytYAy9Z66N566uE/jv8AztUAy9cAytV56OSD798A0NYAydM8jP95590yW7R45twAydN45909jP8yWrU8jf945t0AydIyWrV5590AydIyW7UzWrU8jf8AydIzW7UzWrV459145908jf8yW7UAydM8jP8AydM8jf9459155909jf8zW7UAydQAytMAydN56N0AydMzXLYAydM0W7UAydQ8jv8+jv8Ay9QzW7Y9jf965t176N80W7YAydN56N156d4yW7U0XLc+jv8+kP8Ay9VAj/81XbgAzNQ1XbY5XbZAkf9+7eQ7Yrp96+FDlv+F6emI/+4AydN55t15594AydM+jf8+jf8+jv8AydQ1W7QzW7UAydR75942XbUyWrR86OCA8uYAztqA8eN45twyWrQAyNI8jP8bed+KAAAArnRSTlMAAfb9+wUD8HMJ/fr59+jb1dTLt6eamY+Jg3xXTkhHOhIRDQsJBwX59vbr4+Dc1tXRxcC7ubSqoJuak5CKiIN+enlyb21lXVFEQj09NzAnJiQdGBUPDvzx8O/s6Obl397OzsvIyMXEwcG/vbiysbGuqqeknZSTkI2Gf3ZraGViX15YWFVTUk9OS0pEQUA8MzAtLSomHx4bGhkXCwfApKCAdGdjXlxaWTY0MyEUFBKNTPVmAAAFHElEQVR42uzX105UYRSG4YUyiCgqKvbeK3ZFsaCCXUHE3kvU2FvU2EussfcSY2KiiSUDc4fuTcl/xr8/ZuZk7/e9g/UcfcuIiIiIiIiIiIiIiMhf7wFDPxlFKx1UdunBX6NoWGEHqp40GnmwXCWHlzz9YuTBck2cvWzdVyMPlmtSAJYy8mE5sJPXNhYYebBcO06tBMyP5do1v3aTkcPytedb7R8jh+Vr2sVVHyzxpaMXfEZbLNGltcqqHjba8LGWzNJyJdZUeHTws/GWvNJ61hTW5cSQkRMsWXUWqxWsX/HvJC2xTmK5dp4pfp0UsCywXL3633hrCShrLAd2653FvBxgufaV//xoMS5HWK4+5fdHW0zLJZYDu/wolmC5xXIVHlocv6GfcyxX/IZ+HrHiN/TziuWGvsWiLLCULBaBBVZLYAmBJQSWEFhCYAmBJQSWEFhCYAmBJQSWEFhCYAmBJQSWEFhCYAmBJQSWEFhCYAmBJQSWEFhCYAmBJQSWEFhCYAmBJQSWEFhCYAmBJQSWEFhCYAmBJQSWEFhCYAmBJQSWEFhCYAmBJQSWEFhCYAmBJQSWEFhCYOW1erCitfn2gqnNYPlruLdwenMQWJ7+rV40I3QCy9PWx1cOhkZgeRq35uqRbYEPWD6o9d+P9wxxwOq41IblcyaHMGB1XNHLFfO6hShgeXpz/WwLFFie6m+e3x1igBVlmgeB5anhV+s0B8tX2zQHK0rB8WCBZQYWWGCBBRZYYIEFFlhggQUWWGCBBRZYYIGVZKyKgcNGmYEVCSuTyXTtO2jEGLCiYYX1mLV0bXewfFiu0mPVz1NgebEc2NzqF0Vg+bBc20/XvCoAy4flmnKupg4sL5Zr74UfdWB5sVz7K++8B8theauovPsZLIflbWYw9MGKiNU+9MGKlBv6YEWvFCwhsMACCyywwAILLLDAAgsssMACCyywwAILLLDAAgsssMACCyywwAILLLDAAgsssMACCyywwAILLLDAAgsssMACCyywwAILLLDAAgsssMD6325d7cQVhWEY/ocWn9JSoO5GhTqlSo2Wurt72qbu3lRwgruEQCCBE+6RHQ7YR7DWP8OeWSHvewnPwZcPLLDAAgsssMACCyywwAILLLDAAgsssMACCyywwAILLLCmGtbhHclg+Vimkk4f2r4OLLEu8dS3Z2Gw7Ft1/OvjMFj2Xan48uAqWAqwY3s2g6Xo4r/dG8FSdKF/5wawFJ3/9e4WWIoaf7xJBsu+UJ139MHyszr6YKmOfncYLM3RB0sRWGDZBBZYYIEFFlhggQUWWGBFgpWQBZYd1PMFS9cIWMamP5lfvVq8wDJAPdy3eKV4gWVo1ufy5eIFlhigcv6PQoFlwLqbM9AmXmAZsDKyfzeLX6BY6U/FJjexMrJ/NolfoFjTZs9bkipWuYd143VKQ0iiyh5qy9xFK8Q6t7ASslKGfKiAsTZ9KlkmqtzB8q95DLDu7frbIXEvIiz/mscC6877Py3iRJFg+dc8cKz1b/vOiTPprdJk0hsH6tWRenEqpVTmx9JhkeCxruX31obEtRRQM+csvCTq9Fgz8g/WJImLWULl9RS3ijo9VvrW/SdSxdUsoG4XHD0rgRb3az45WDcLitRQ+uJ+zaPHuv6y6ExsRjbu1zw6rLUvvg+6ObKqgsfK3XbgZKKQESv3UWFVl5ARK+1+YWWnkBkrc2/ZZaGJG7vmZC7vQ3G7EBERERERERERERER0dRtBK5Q857p1uutAAAAAElFTkSuQmCC" + }, + "今日头条API服务": { + "name": "今日头条API 服务", + "categoryId": 22, + "url": "toutiaoapi.com", + "icon": "https://www.toutiao.com/favicon.ico" + }, + "抖音HLS直播拉流CDN节点(x0区域)": { + "name": "抖音HLS直播拉流CDN节点(x0区域)/HLS格式直播视频流分发服务", + "categoryId": 2, + "url": { + "1": "pull-x0-f5-hls.douyincdn.com", + "2": "pull-hs-f5-hls.douyincdn.com", + "3": "pull-spe-f5-hls.douyincdn.com", + "4": "pull-l-f5-hls.douyincdn.com", + "5": "pull-f3-f5-hls.douyincdn.com", + "6": "pull-f11-f5-hls.douyincdn.com" + }, + "icon": "https://www.douyin.com/favicon.ico" + }, + "抖音官方CDN主域名": { + "name": "抖音官方CDN主域名", + "categoryId": 2, + "url": "douyincdn.com", + "icon": "https://www.douyin.com/favicon.ico" + }, + "snssdk": { + "日志 / 数据上报核心服务": { + "name": "日志 / 数据上报核心服务", + "categoryId": 2, + "url": "log.snssdk.com", + "icon": "data:image/vnd.microsoft.icon;base64,iVBORw0KGgoAAAANSUhEUgAAASwAAAEsCAMAAABOo35HAAACFlBMVEUAAACp3f8yW7U8jf8zW7U/3vJA5P8AydMzW7VPlP955908jP8AydM8jf8yWrV5590yWrV45908jf8yW7UyW7UyW7V55909jf88jf8yW7UzW7V56N49jf80XLY+j/80XbY/lf8zZr5Ilf9GXbkA2+RCY70zZsx459x5590AydI8jP8AydN4590AydM8jf8AydM8jf88jf94590AyNM8jf8AydN5590AydM8jf8AyNIAytR5594zW7V56N09jf955948jf8AydMAytN65948jf956N56594AytMAy9Q9jv976d8AytYAy9Z66N566uE/jv8AztUAy9cAytV56OSD798A0NYAydM8jP95590yW7R45twAydN45909jP8yWrU8jf945t0AydIyWrV5590AydIyW7UzWrU8jf8AydIzW7UzWrV459145908jf8yW7UAydM8jP8AydM8jf9459155909jf8zW7UAydQAytMAydN56N0AydMzXLYAydM0W7UAydQ8jv8+jv8Ay9QzW7Y9jf965t176N80W7YAydN56N156d4yW7U0XLc+jv8+kP8Ay9VAj/81XbgAzNQ1XbY5XbZAkf9+7eQ7Yrp96+FDlv+F6emI/+4AydN55t15594AydM+jf8+jf8+jv8AydQ1W7QzW7UAydR75942XbUyWrR86OCA8uYAztqA8eN45twyWrQAyNI8jP8bed+KAAAArnRSTlMAAfb9+wUD8HMJ/fr59+jb1dTLt6eamY+Jg3xXTkhHOhIRDQsJBwX59vbr4+Dc1tXRxcC7ubSqoJuak5CKiIN+enlyb21lXVFEQj09NzAnJiQdGBUPDvzx8O/s6Obl397OzsvIyMXEwcG/vbiysbGuqqeknZSTkI2Gf3ZraGViX15YWFVTUk9OS0pEQUA8MzAtLSomHx4bGhkXCwfApKCAdGdjXlxaWTY0MyEUFBKNTPVmAAAFHElEQVR42uzX105UYRSG4YUyiCgqKvbeK3ZFsaCCXUHE3kvU2FvU2EussfcSY2KiiSUDc4fuTcl/xr8/ZuZk7/e9g/UcfcuIiIiIiIiIiIiIiMhf7wFDPxlFKx1UdunBX6NoWGEHqp40GnmwXCWHlzz9YuTBck2cvWzdVyMPlmtSAJYy8mE5sJPXNhYYebBcO06tBMyP5do1v3aTkcPytedb7R8jh+Vr2sVVHyzxpaMXfEZbLNGltcqqHjba8LGWzNJyJdZUeHTws/GWvNJ61hTW5cSQkRMsWXUWqxWsX/HvJC2xTmK5dp4pfp0UsCywXL3633hrCShrLAd2653FvBxgufaV//xoMS5HWK4+5fdHW0zLJZYDu/wolmC5xXIVHlocv6GfcyxX/IZ+HrHiN/TziuWGvsWiLLCULBaBBVZLYAmBJQSWEFhCYAmBJQSWEFhCYAmBJQSWEFhCYAmBJQSWEFhCYAmBJQSWEFhCYAmBJQSWEFhCYAmBJQSWEFhCYAmBJQSWEFhCYAmBJQSWEFhCYAmBJQSWEFhCYAmBJQSWEFhCYAmBJQSWEFhCYAmBJQSWEFhCYOW1erCitfn2gqnNYPlruLdwenMQWJ7+rV40I3QCy9PWx1cOhkZgeRq35uqRbYEPWD6o9d+P9wxxwOq41IblcyaHMGB1XNHLFfO6hShgeXpz/WwLFFie6m+e3x1igBVlmgeB5anhV+s0B8tX2zQHK0rB8WCBZQYWWGCBBRZYYIEFFlhggQUWWGCBBRZYYIGVZKyKgcNGmYEVCSuTyXTtO2jEGLCiYYX1mLV0bXewfFiu0mPVz1NgebEc2NzqF0Vg+bBc20/XvCoAy4flmnKupg4sL5Zr74UfdWB5sVz7K++8B8theauovPsZLIflbWYw9MGKiNU+9MGKlBv6YEWvFCwhsMACCyywwAILLLDAAgsssMACCyywwAILLLDAAgsssMACCyywwAILLLDAAgsssMACCyywwAILLLDAAgsssMACCyywwAILLLDAAgsssMD6325d7cQVhWEY/ocWn9JSoO5GhTqlSo2Wurt72qbu3lRwgruEQCCBE+6RHQ7YR7DWP8OeWSHvewnPwZcPLLDAAgsssMACCyywwAILLLDAAgsssMACCyywwAILLLCmGtbhHclg+Vimkk4f2r4OLLEu8dS3Z2Gw7Ft1/OvjMFj2Xan48uAqWAqwY3s2g6Xo4r/dG8FSdKF/5wawFJ3/9e4WWIoaf7xJBsu+UJ139MHyszr6YKmOfncYLM3RB0sRWGDZBBZYYIEFFlhggQUWWGBFgpWQBZYd1PMFS9cIWMamP5lfvVq8wDJAPdy3eKV4gWVo1ufy5eIFlhigcv6PQoFlwLqbM9AmXmAZsDKyfzeLX6BY6U/FJjexMrJ/NolfoFjTZs9bkipWuYd143VKQ0iiyh5qy9xFK8Q6t7ASslKGfKiAsTZ9KlkmqtzB8q95DLDu7frbIXEvIiz/mscC6877Py3iRJFg+dc8cKz1b/vOiTPprdJk0hsH6tWRenEqpVTmx9JhkeCxruX31obEtRRQM+csvCTq9Fgz8g/WJImLWULl9RS3ijo9VvrW/SdSxdUsoG4XHD0rgRb3az45WDcLitRQ+uJ+zaPHuv6y6ExsRjbu1zw6rLUvvg+6ObKqgsfK3XbgZKKQESv3UWFVl5ARK+1+YWWnkBkrc2/ZZaGJG7vmZC7vQ3G7EBERERERERERERER0dRtBK5Q857p1uutAAAAAElFTkSuQmCC" + }, + "应用 API": { + "name": "应用 API", + "categoryId": 22, + "url": "open.feishu.cn", + "icon": "data:image/vnd.microsoft.icon;base64,iVBORw0KGgoAAAANSUhEUgAAASwAAAEsCAMAAABOo35HAAACFlBMVEUAAACp3f8yW7U8jf8zW7U/3vJA5P8AydMzW7VPlP955908jP8AydM8jf8yWrV5590yWrV45908jf8yW7UyW7UyW7V55909jf88jf8yW7UzW7V56N49jf80XLY+j/80XbY/lf8zZr5Ilf9GXbkA2+RCY70zZsx459x5590AydI8jP8AydN4590AydM8jf8AydM8jf88jf94590AyNM8jf8AydN5590AydM8jf8AyNIAytR5594zW7V56N09jf955948jf8AydMAytN65948jf956N56594AytMAy9Q9jv976d8AytYAy9Z66N566uE/jv8AztUAy9cAytV56OSD798A0NYAydM8jP95590yW7R45twAydN45909jP8yWrU8jf945t0AydIyWrV5590AydIyW7UzWrU8jf8AydIzW7UzWrV459145908jf8yW7UAydM8jP8AydM8jf9459155909jf8zW7UAydQAytMAydN56N0AydMzXLYAydM0W7UAydQ8jv8+jv8Ay9QzW7Y9jf965t176N80W7YAydN56N156d4yW7U0XLc+jv8+kP8Ay9VAj/81XbgAzNQ1XbY5XbZAkf9+7eQ7Yrp96+FDlv+F6emI/+4AydN55t15594AydM+jf8+jf8+jv8AydQ1W7QzW7UAydR75942XbUyWrR86OCA8uYAztqA8eN45twyWrQAyNI8jP8bed+KAAAArnRSTlMAAfb9+wUD8HMJ/fr59+jb1dTLt6eamY+Jg3xXTkhHOhIRDQsJBwX59vbr4+Dc1tXRxcC7ubSqoJuak5CKiIN+enlyb21lXVFEQj09NzAnJiQdGBUPDvzx8O/s6Obl397OzsvIyMXEwcG/vbiysbGuqqeknZSTkI2Gf3ZraGViX15YWFVTUk9OS0pEQUA8MzAtLSomHx4bGhkXCwfApKCAdGdjXlxaWTY0MyEUFBKNTPVmAAAFHElEQVR42uzX105UYRSG4YUyiCgqKvbeK3ZFsaCCXUHE3kvU2FvU2EussfcSY2KiiSUDc4fuTcl/xr8/ZuZk7/e9g/UcfcuIiIiIiIiIiIiIiMhf7wFDPxlFKx1UdunBX6NoWGEHqp40GnmwXCWHlzz9YuTBck2cvWzdVyMPlmtSAJYy8mE5sJPXNhYYebBcO06tBMyP5do1v3aTkcPytedb7R8jh+Vr2sVVHyzxpaMXfEZbLNGltcqqHjba8LGWzNJyJdZUeHTws/GWvNJ61hTW5cSQkRMsWXUWqxWsX/HvJC2xTmK5dp4pfp0UsCywXL3633hrCShrLAd2653FvBxgufaV//xoMS5HWK4+5fdHW0zLJZYDu/wolmC5xXIVHlocv6GfcyxX/IZ+HrHiN/TziuWGvsWiLLCULBaBBVZLYAmBJQSWEFhCYAmBJQSWEFhCYAmBJQSWEFhCYAmBJQSWEFhCYAmBJQSWEFhCYAmBJQSWEFhCYAmBJQSWEFhCYAmBJQSWEFhCYAmBJQSWEFhCYAmBJQSWEFhCYAmBJQSWEFhCYAmBJQSWEFhCYAmBJQSWEFhCYOW1erCitfn2gqnNYPlruLdwenMQWJ7+rV40I3QCy9PWx1cOhkZgeRq35uqRbYEPWD6o9d+P9wxxwOq41IblcyaHMGB1XNHLFfO6hShgeXpz/WwLFFie6m+e3x1igBVlmgeB5anhV+s0B8tX2zQHK0rB8WCBZQYWWGCBBRZYYIEFFlhggQUWWGCBBRZYYIGVZKyKgcNGmYEVCSuTyXTtO2jEGLCiYYX1mLV0bXewfFiu0mPVz1NgebEc2NzqF0Vg+bBc20/XvCoAy4flmnKupg4sL5Zr74UfdWB5sVz7K++8B8theauovPsZLIflbWYw9MGKiNU+9MGKlBv6YEWvFCwhsMACCyywwAILLLDAAgsssMACCyywwAILLLDAAgsssMACCyywwAILLLDAAgsssMACCyywwAILLLDAAgsssMACCyywwAILLLDAAgsssMD6325d7cQVhWEY/ocWn9JSoO5GhTqlSo2Wurt72qbu3lRwgruEQCCBE+6RHQ7YR7DWP8OeWSHvewnPwZcPLLDAAgsssMACCyywwAILLLDAAgsssMACCyywwAILLLCmGtbhHclg+Vimkk4f2r4OLLEu8dS3Z2Gw7Ft1/OvjMFj2Xan48uAqWAqwY3s2g6Xo4r/dG8FSdKF/5wawFJ3/9e4WWIoaf7xJBsu+UJ139MHyszr6YKmOfncYLM3RB0sRWGDZBBZYYIEFFlhggQUWWGBFgpWQBZYd1PMFS9cIWMamP5lfvVq8wDJAPdy3eKV4gWVo1ufy5eIFlhigcv6PQoFlwLqbM9AmXmAZsDKyfzeLX6BY6U/FJjexMrJ/NolfoFjTZs9bkipWuYd143VKQ0iiyh5qy9xFK8Q6t7ASslKGfKiAsTZ9KlkmqtzB8q95DLDu7frbIXEvIiz/mscC6877Py3iRJFg+dc8cKz1b/vOiTPprdJk0hsH6tWRenEqpVTmx9JhkeCxruX31obEtRRQM+csvCTq9Fgz8g/WJImLWULl9RS3ijo9VvrW/SdSxdUsoG4XHD0rgRb3az45WDcLitRQ+uJ+zaPHuv6y6ExsRjbu1zw6rLUvvg+6ObKqgsfK3XbgZKKQESv3UWFVl5ARK+1+YWWnkBkrc2/ZZaGJG7vmZC7vQ3G7EBERERERERERERER0dRtBK5Q857p1uutAAAAAElFTkSuQmCC" + }, + "账户 / 个人信息管理": { + "name": "账户 / 个人信息管理", + "categoryId": 22, + "url": "profile.snssdk.com", + "icon": "data:image/vnd.microsoft.icon;base64,iVBORw0KGgoAAAANSUhEUgAAASwAAAEsCAMAAABOo35HAAACFlBMVEUAAACp3f8yW7U8jf8zW7U/3vJA5P8AydMzW7VPlP955908jP8AydM8jf8yWrV5590yWrV45908jf8yW7UyW7UyW7V55909jf88jf8yW7UzW7V56N49jf80XLY+j/80XbY/lf8zZr5Ilf9GXbkA2+RCY70zZsx459x5590AydI8jP8AydN4590AydM8jf8AydM8jf88jf94590AyNM8jf8AydN5590AydM8jf8AyNIAytR5594zW7V56N09jf955948jf8AydMAytN65948jf956N56594AytMAy9Q9jv976d8AytYAy9Z66N566uE/jv8AztUAy9cAytV56OSD798A0NYAydM8jP95590yW7R45twAydN45909jP8yWrU8jf945t0AydIyWrV5590AydIyW7UzWrU8jf8AydIzW7UzWrV459145908jf8yW7UAydM8jP8AydM8jf9459155909jf8zW7UAydQAytMAydN56N0AydMzXLYAydM0W7UAydQ8jv8+jv8Ay9QzW7Y9jf965t176N80W7YAydN56N156d4yW7U0XLc+jv8+kP8Ay9VAj/81XbgAzNQ1XbY5XbZAkf9+7eQ7Yrp96+FDlv+F6emI/+4AydN55t15594AydM+jf8+jf8+jv8AydQ1W7QzW7UAydR75942XbUyWrR86OCA8uYAztqA8eN45twyWrQAyNI8jP8bed+KAAAArnRSTlMAAfb9+wUD8HMJ/fr59+jb1dTLt6eamY+Jg3xXTkhHOhIRDQsJBwX59vbr4+Dc1tXRxcC7ubSqoJuak5CKiIN+enlyb21lXVFEQj09NzAnJiQdGBUPDvzx8O/s6Obl397OzsvIyMXEwcG/vbiysbGuqqeknZSTkI2Gf3ZraGViX15YWFVTUk9OS0pEQUA8MzAtLSomHx4bGhkXCwfApKCAdGdjXlxaWTY0MyEUFBKNTPVmAAAFHElEQVR42uzX105UYRSG4YUyiCgqKvbeK3ZFsaCCXUHE3kvU2FvU2EussfcSY2KiiSUDc4fuTcl/xr8/ZuZk7/e9g/UcfcuIiIiIiIiIiIiIiMhf7wFDPxlFKx1UdunBX6NoWGEHqp40GnmwXCWHlzz9YuTBck2cvWzdVyMPlmtSAJYy8mE5sJPXNhYYebBcO06tBMyP5do1v3aTkcPytedb7R8jh+Vr2sVVHyzxpaMXfEZbLNGltcqqHjba8LGWzNJyJdZUeHTws/GWvNJ61hTW5cSQkRMsWXUWqxWsX/HvJC2xTmK5dp4pfp0UsCywXL3633hrCShrLAd2653FvBxgufaV//xoMS5HWK4+5fdHW0zLJZYDu/wolmC5xXIVHlocv6GfcyxX/IZ+HrHiN/TziuWGvsWiLLCULBaBBVZLYAmBJQSWEFhCYAmBJQSWEFhCYAmBJQSWEFhCYAmBJQSWEFhCYAmBJQSWEFhCYAmBJQSWEFhCYAmBJQSWEFhCYAmBJQSWEFhCYAmBJQSWEFhCYAmBJQSWEFhCYAmBJQSWEFhCYAmBJQSWEFhCYAmBJQSWEFhCYOW1erCitfn2gqnNYPlruLdwenMQWJ7+rV40I3QCy9PWx1cOhkZgeRq35uqRbYEPWD6o9d+P9wxxwOq41IblcyaHMGB1XNHLFfO6hShgeXpz/WwLFFie6m+e3x1igBVlmgeB5anhV+s0B8tX2zQHK0rB8WCBZQYWWGCBBRZYYIEFFlhggQUWWGCBBRZYYIGVZKyKgcNGmYEVCSuTyXTtO2jEGLCiYYX1mLV0bXewfFiu0mPVz1NgebEc2NzqF0Vg+bBc20/XvCoAy4flmnKupg4sL5Zr74UfdWB5sVz7K++8B8theauovPsZLIflbWYw9MGKiNU+9MGKlBv6YEWvFCwhsMACCyywwAILLLDAAgsssMACCyywwAILLLDAAgsssMACCyywwAILLLDAAgsssMACCyywwAILLLDAAgsssMACCyywwAILLLDAAgsssMD6325d7cQVhWEY/ocWn9JSoO5GhTqlSo2Wurt72qbu3lRwgruEQCCBE+6RHQ7YR7DWP8OeWSHvewnPwZcPLLDAAgsssMACCyywwAILLLDAAgsssMACCyywwAILLLCmGtbhHclg+Vimkk4f2r4OLLEu8dS3Z2Gw7Ft1/OvjMFj2Xan48uAqWAqwY3s2g6Xo4r/dG8FSdKF/5wawFJ3/9e4WWIoaf7xJBsu+UJ139MHyszr6YKmOfncYLM3RB0sRWGDZBBZYYIEFFlhggQUWWGBFgpWQBZYd1PMFS9cIWMamP5lfvVq8wDJAPdy3eKV4gWVo1ufy5eIFlhigcv6PQoFlwLqbM9AmXmAZsDKyfzeLX6BY6U/FJjexMrJ/NolfoFjTZs9bkipWuYd143VKQ0iiyh5qy9xFK8Q6t7ASslKGfKiAsTZ9KlkmqtzB8q95DLDu7frbIXEvIiz/mscC6877Py3iRJFg+dc8cKz1b/vOiTPprdJk0hsH6tWRenEqpVTmx9JhkeCxruX31obEtRRQM+csvCTq9Fgz8g/WJImLWULl9RS3ijo9VvrW/SdSxdUsoG4XHD0rgRb3az45WDcLitRQ+uJ+zaPHuv6y6ExsRjbu1zw6rLUvvg+6ObKqgsfK3XbgZKKQESv3UWFVl5ARK+1+YWWnkBkrc2/ZZaGJG7vmZC7vQ3G7EBERERERERERERER0dRtBK5Q857p1uutAAAAAElFTkSuQmCC" + }, + "内容索引 / 推荐数据下发": { + "name": "内容索引 / 推荐数据下发", + "categoryId": 22, + "url": "is.snssdk.com", + "icon": "data:image/vnd.microsoft.icon;base64,iVBORw0KGgoAAAANSUhEUgAAASwAAAEsCAMAAABOo35HAAACFlBMVEUAAACp3f8yW7U8jf8zW7U/3vJA5P8AydMzW7VPlP955908jP8AydM8jf8yWrV5590yWrV45908jf8yW7UyW7UyW7V55909jf88jf8yW7UzW7V56N49jf80XLY+j/80XbY/lf8zZr5Ilf9GXbkA2+RCY70zZsx459x5590AydI8jP8AydN4590AydM8jf8AydM8jf88jf94590AyNM8jf8AydN5590AydM8jf8AyNIAytR5594zW7V56N09jf955948jf8AydMAytN65948jf956N56594AytMAy9Q9jv976d8AytYAy9Z66N566uE/jv8AztUAy9cAytV56OSD798A0NYAydM8jP95590yW7R45twAydN45909jP8yWrU8jf945t0AydIyWrV5590AydIyW7UzWrU8jf8AydIzW7UzWrV459145908jf8yW7UAydM8jP8AydM8jf9459155909jf8zW7UAydQAytMAydN56N0AydMzXLYAydM0W7UAydQ8jv8+jv8Ay9QzW7Y9jf965t176N80W7YAydN56N156d4yW7U0XLc+jv8+kP8Ay9VAj/81XbgAzNQ1XbY5XbZAkf9+7eQ7Yrp96+FDlv+F6emI/+4AydN55t15594AydM+jf8+jf8+jv8AydQ1W7QzW7UAydR75942XbUyWrR86OCA8uYAztqA8eN45twyWrQAyNI8jP8bed+KAAAArnRSTlMAAfb9+wUD8HMJ/fr59+jb1dTLt6eamY+Jg3xXTkhHOhIRDQsJBwX59vbr4+Dc1tXRxcC7ubSqoJuak5CKiIN+enlyb21lXVFEQj09NzAnJiQdGBUPDvzx8O/s6Obl397OzsvIyMXEwcG/vbiysbGuqqeknZSTkI2Gf3ZraGViX15YWFVTUk9OS0pEQUA8MzAtLSomHx4bGhkXCwfApKCAdGdjXlxaWTY0MyEUFBKNTPVmAAAFHElEQVR42uzX105UYRSG4YUyiCgqKvbeK3ZFsaCCXUHE3kvU2FvU2EussfcSY2KiiSUDc4fuTcl/xr8/ZuZk7/e9g/UcfcuIiIiIiIiIiIiIiMhf7wFDPxlFKx1UdunBX6NoWGEHqp40GnmwXCWHlzz9YuTBck2cvWzdVyMPlmtSAJYy8mE5sJPXNhYYebBcO06tBMyP5do1v3aTkcPytedb7R8jh+Vr2sVVHyzxpaMXfEZbLNGltcqqHjba8LGWzNJyJdZUeHTws/GWvNJ61hTW5cSQkRMsWXUWqxWsX/HvJC2xTmK5dp4pfp0UsCywXL3633hrCShrLAd2653FvBxgufaV//xoMS5HWK4+5fdHW0zLJZYDu/wolmC5xXIVHlocv6GfcyxX/IZ+HrHiN/TziuWGvsWiLLCULBaBBVZLYAmBJQSWEFhCYAmBJQSWEFhCYAmBJQSWEFhCYAmBJQSWEFhCYAmBJQSWEFhCYAmBJQSWEFhCYAmBJQSWEFhCYAmBJQSWEFhCYAmBJQSWEFhCYAmBJQSWEFhCYAmBJQSWEFhCYAmBJQSWEFhCYAmBJQSWEFhCYOW1erCitfn2gqnNYPlruLdwenMQWJ7+rV40I3QCy9PWx1cOhkZgeRq35uqRbYEPWD6o9d+P9wxxwOq41IblcyaHMGB1XNHLFfO6hShgeXpz/WwLFFie6m+e3x1igBVlmgeB5anhV+s0B8tX2zQHK0rB8WCBZQYWWGCBBRZYYIEFFlhggQUWWGCBBRZYYIGVZKyKgcNGmYEVCSuTyXTtO2jEGLCiYYX1mLV0bXewfFiu0mPVz1NgebEc2NzqF0Vg+bBc20/XvCoAy4flmnKupg4sL5Zr74UfdWB5sVz7K++8B8theauovPsZLIflbWYw9MGKiNU+9MGKlBv6YEWvFCwhsMACCyywwAILLLDAAgsssMACCyywwAILLLDAAgsssMACCyywwAILLLDAAgsssMACCyywwAILLLDAAgsssMACCyywwAILLLDAAgsssMD6325d7cQVhWEY/ocWn9JSoO5GhTqlSo2Wurt72qbu3lRwgruEQCCBE+6RHQ7YR7DWP8OeWSHvewnPwZcPLLDAAgsssMACCyywwAILLLDAAgsssMACCyywwAILLLCmGtbhHclg+Vimkk4f2r4OLLEu8dS3Z2Gw7Ft1/OvjMFj2Xan48uAqWAqwY3s2g6Xo4r/dG8FSdKF/5wawFJ3/9e4WWIoaf7xJBsu+UJ139MHyszr6YKmOfncYLM3RB0sRWGDZBBZYYIEFFlhggQUWWGBFgpWQBZYd1PMFS9cIWMamP5lfvVq8wDJAPdy3eKV4gWVo1ufy5eIFlhigcv6PQoFlwLqbM9AmXmAZsDKyfzeLX6BY6U/FJjexMrJ/NolfoFjTZs9bkipWuYd143VKQ0iiyh5qy9xFK8Q6t7ASslKGfKiAsTZ9KlkmqtzB8q95DLDu7frbIXEvIiz/mscC6877Py3iRJFg+dc8cKz1b/vOiTPprdJk0hsH6tWRenEqpVTmx9JhkeCxruX31obEtRRQM+csvCTq9Fgz8g/WJImLWULl9RS3ijo9VvrW/SdSxdUsoG4XHD0rgRb3az45WDcLitRQ+uJ+zaPHuv6y6ExsRjbu1zw6rLUvvg+6ObKqgsfK3XbgZKKQESv3UWFVl5ARK+1+YWWnkBkrc2/ZZaGJG7vmZC7vQ3G7EBERERERERERERER0dRtBK5Q857p1uutAAAAAElFTkSuQmCC" + } + }, + "飞书": { + "飞书": { + "name": "飞书", + "categoryId": 7, + "url": "https://www.feishu.cn/", + "icon": "https://www.feishu.cn/favicon.ico" + } + }, + "飞书服务": { + "name": "飞书CalDAV 协议服务器", + "categoryId": 22, + "url": "caldav.feishu.cn", + "icon": "https://www.feishu.cn/favicon.ico" + }, + "CDN": { + "字节静态资源": { + "name": "字节跳动产品的官方文档、帮助中心、API 参考、静态资源", + "categoryId": 2, + "url": { + "1": "bytednsdoc.com", + "2": "bytecdntp.com", + "3": "bytescm.com", + "4": "byteimg.com", + "5": "pstatp.com", + "6": "bytecdn.cn", + "7": "statp.com", + "8": "feishu.cn" + }, + "icon": "data:image/vnd.microsoft.icon;base64,iVBORw0KGgoAAAANSUhEUgAAASwAAAEsCAMAAABOo35HAAACFlBMVEUAAACp3f8yW7U8jf8zW7U/3vJA5P8AydMzW7VPlP955908jP8AydM8jf8yWrV5590yWrV45908jf8yW7UyW7UyW7V55909jf88jf8yW7UzW7V56N49jf80XLY+j/80XbY/lf8zZr5Ilf9GXbkA2+RCY70zZsx459x5590AydI8jP8AydN4590AydM8jf8AydM8jf88jf94590AyNM8jf8AydN5590AydM8jf8AyNIAytR5594zW7V56N09jf955948jf8AydMAytN65948jf956N56594AytMAy9Q9jv976d8AytYAy9Z66N566uE/jv8AztUAy9cAytV56OSD798A0NYAydM8jP95590yW7R45twAydN45909jP8yWrU8jf945t0AydIyWrV5590AydIyW7UzWrU8jf8AydIzW7UzWrV459145908jf8yW7UAydM8jP8AydM8jf9459155909jf8zW7UAydQAytMAydN56N0AydMzXLYAydM0W7UAydQ8jv8+jv8Ay9QzW7Y9jf965t176N80W7YAydN56N156d4yW7U0XLc+jv8+kP8Ay9VAj/81XbgAzNQ1XbY5XbZAkf9+7eQ7Yrp96+FDlv+F6emI/+4AydN55t15594AydM+jf8+jf8+jv8AydQ1W7QzW7UAydR75942XbUyWrR86OCA8uYAztqA8eN45twyWrQAyNI8jP8bed+KAAAArnRSTlMAAfb9+wUD8HMJ/fr59+jb1dTLt6eamY+Jg3xXTkhHOhIRDQsJBwX59vbr4+Dc1tXRxcC7ubSqoJuak5CKiIN+enlyb21lXVFEQj09NzAnJiQdGBUPDvzx8O/s6Obl397OzsvIyMXEwcG/vbiysbGuqqeknZSTkI2Gf3ZraGViX15YWFVTUk9OS0pEQUA8MzAtLSomHx4bGhkXCwfApKCAdGdjXlxaWTY0MyEUFBKNTPVmAAAFHElEQVR42uzX105UYRSG4YUyiCgqKvbeK3ZFsaCCXUHE3kvU2FvU2EussfcSY2KiiSUDc4fuTcl/xr8/ZuZk7/e9g/UcfcuIiIiIiIiIiIiIiMhf7wFDPxlFKx1UdunBX6NoWGEHqp40GnmwXCWHlzz9YuTBck2cvWzdVyMPlmtSAJYy8mE5sJPXNhYYebBcO06tBMyP5do1v3aTkcPytedb7R8jh+Vr2sVVHyzxpaMXfEZbLNGltcqqHjba8LGWzNJyJdZUeHTws/GWvNJ61hTW5cSQkRMsWXUWqxWsX/HvJC2xTmK5dp4pfp0UsCywXL3633hrCShrLAd2653FvBxgufaV//xoMS5HWK4+5fdHW0zLJZYDu/wolmC5xXIVHlocv6GfcyxX/IZ+HrHiN/TziuWGvsWiLLCULBaBBVZLYAmBJQSWEFhCYAmBJQSWEFhCYAmBJQSWEFhCYAmBJQSWEFhCYAmBJQSWEFhCYAmBJQSWEFhCYAmBJQSWEFhCYAmBJQSWEFhCYAmBJQSWEFhCYAmBJQSWEFhCYAmBJQSWEFhCYAmBJQSWEFhCYAmBJQSWEFhCYOW1erCitfn2gqnNYPlruLdwenMQWJ7+rV40I3QCy9PWx1cOhkZgeRq35uqRbYEPWD6o9d+P9wxxwOq41IblcyaHMGB1XNHLFfO6hShgeXpz/WwLFFie6m+e3x1igBVlmgeB5anhV+s0B8tX2zQHK0rB8WCBZQYWWGCBBRZYYIEFFlhggQUWWGCBBRZYYIGVZKyKgcNGmYEVCSuTyXTtO2jEGLCiYYX1mLV0bXewfFiu0mPVz1NgebEc2NzqF0Vg+bBc20/XvCoAy4flmnKupg4sL5Zr74UfdWB5sVz7K++8B8theauovPsZLIflbWYw9MGKiNU+9MGKlBv6YEWvFCwhsMACCyywwAILLLDAAgsssMACCyywwAILLLDAAgsssMACCyywwAILLLDAAgsssMACCyywwAILLLDAAgsssMACCyywwAILLLDAAgsssMD6325d7cQVhWEY/ocWn9JSoO5GhTqlSo2Wurt72qbu3lRwgruEQCCBE+6RHQ7YR7DWP8OeWSHvewnPwZcPLLDAAgsssMACCyywwAILLLDAAgsssMACCyywwAILLLCmGtbhHclg+Vimkk4f2r4OLLEu8dS3Z2Gw7Ft1/OvjMFj2Xan48uAqWAqwY3s2g6Xo4r/dG8FSdKF/5wawFJ3/9e4WWIoaf7xJBsu+UJ139MHyszr6YKmOfncYLM3RB0sRWGDZBBZYYIEFFlhggQUWWGBFgpWQBZYd1PMFS9cIWMamP5lfvVq8wDJAPdy3eKV4gWVo1ufy5eIFlhigcv6PQoFlwLqbM9AmXmAZsDKyfzeLX6BY6U/FJjexMrJ/NolfoFjTZs9bkipWuYd143VKQ0iiyh5qy9xFK8Q6t7ASslKGfKiAsTZ9KlkmqtzB8q95DLDu7frbIXEvIiz/mscC6877Py3iRJFg+dc8cKz1b/vOiTPprdJk0hsH6tWRenEqpVTmx9JhkeCxruX31obEtRRQM+csvCTq9Fgz8g/WJImLWULl9RS3ijo9VvrW/SdSxdUsoG4XHD0rgRb3az45WDcLitRQ+uJ+zaPHuv6y6ExsRjbu1zw6rLUvvg+6ObKqgsfK3XbgZKKQESv3UWFVl5ARK+1+YWWnkBkrc2/ZZaGJG7vmZC7vQ3G7EBERERERERERERER0dRtBK5Q857p1uutAAAAAElFTkSuQmCC" + }, + "字节跳动火山引擎权威 DNS 与智能调度服务": { + "name": "字节跳动火山引擎权威 DNS 与智能调度服务", + "categoryId": 21, + "url": "bytedns3.com", + "icon": "https://lf3-appstore-sign.bytedance.net/obj/volcengine-public/volcengine/favicon.ico" + }, + "今日头条静态资源": { + "name": "今日头条静态资源", + "categoryId": 2, + "url": { + "1": "toutiaoimg.com", + "2": "toutiaostatic.com", + "3": "toutiaovod.com", + "4": "toutiaocdn.com", + "5": "pglstatp-toutiao.com" + }, + "icon": "https://www.toutiao.com/favicon.ico" + }, + "飞书CDN": { + "name": "飞书CDN", + "categoryId": 2, + "url": { + "1": "feishucdn.com" + }, + "icon": "https://www.feishu.cn/favicon.ico" + } + }, + "API相关": { + "name": "字节跳动API相关", + "categoryId": 2, + "url": { + "1": "zijieapi.com" + }, + "icon": "data:image/vnd.microsoft.icon;base64,iVBORw0KGgoAAAANSUhEUgAAASwAAAEsCAMAAABOo35HAAACFlBMVEUAAACp3f8yW7U8jf8zW7U/3vJA5P8AydMzW7VPlP955908jP8AydM8jf8yWrV5590yWrV45908jf8yW7UyW7UyW7V55909jf88jf8yW7UzW7V56N49jf80XLY+j/80XbY/lf8zZr5Ilf9GXbkA2+RCY70zZsx459x5590AydI8jP8AydN4590AydM8jf8AydM8jf88jf94590AyNM8jf8AydN5590AydM8jf8AyNIAytR5594zW7V56N09jf955948jf8AydMAytN65948jf956N56594AytMAy9Q9jv976d8AytYAy9Z66N566uE/jv8AztUAy9cAytV56OSD798A0NYAydM8jP95590yW7R45twAydN45909jP8yWrU8jf945t0AydIyWrV5590AydIyW7UzWrU8jf8AydIzW7UzWrV459145908jf8yW7UAydM8jP8AydM8jf9459155909jf8zW7UAydQAytMAydN56N0AydMzXLYAydM0W7UAydQ8jv8+jv8Ay9QzW7Y9jf965t176N80W7YAydN56N156d4yW7U0XLc+jv8+kP8Ay9VAj/81XbgAzNQ1XbY5XbZAkf9+7eQ7Yrp96+FDlv+F6emI/+4AydN55t15594AydM+jf8+jf8+jv8AydQ1W7QzW7UAydR75942XbUyWrR86OCA8uYAztqA8eN45twyWrQAyNI8jP8bed+KAAAArnRSTlMAAfb9+wUD8HMJ/fr59+jb1dTLt6eamY+Jg3xXTkhHOhIRDQsJBwX59vbr4+Dc1tXRxcC7ubSqoJuak5CKiIN+enlyb21lXVFEQj09NzAnJiQdGBUPDvzx8O/s6Obl397OzsvIyMXEwcG/vbiysbGuqqeknZSTkI2Gf3ZraGViX15YWFVTUk9OS0pEQUA8MzAtLSomHx4bGhkXCwfApKCAdGdjXlxaWTY0MyEUFBKNTPVmAAAFHElEQVR42uzX105UYRSG4YUyiCgqKvbeK3ZFsaCCXUHE3kvU2FvU2EussfcSY2KiiSUDc4fuTcl/xr8/ZuZk7/e9g/UcfcuIiIiIiIiIiIiIiMhf7wFDPxlFKx1UdunBX6NoWGEHqp40GnmwXCWHlzz9YuTBck2cvWzdVyMPlmtSAJYy8mE5sJPXNhYYebBcO06tBMyP5do1v3aTkcPytedb7R8jh+Vr2sVVHyzxpaMXfEZbLNGltcqqHjba8LGWzNJyJdZUeHTws/GWvNJ61hTW5cSQkRMsWXUWqxWsX/HvJC2xTmK5dp4pfp0UsCywXL3633hrCShrLAd2653FvBxgufaV//xoMS5HWK4+5fdHW0zLJZYDu/wolmC5xXIVHlocv6GfcyxX/IZ+HrHiN/TziuWGvsWiLLCULBaBBVZLYAmBJQSWEFhCYAmBJQSWEFhCYAmBJQSWEFhCYAmBJQSWEFhCYAmBJQSWEFhCYAmBJQSWEFhCYAmBJQSWEFhCYAmBJQSWEFhCYAmBJQSWEFhCYAmBJQSWEFhCYAmBJQSWEFhCYAmBJQSWEFhCYAmBJQSWEFhCYOW1erCitfn2gqnNYPlruLdwenMQWJ7+rV40I3QCy9PWx1cOhkZgeRq35uqRbYEPWD6o9d+P9wxxwOq41IblcyaHMGB1XNHLFfO6hShgeXpz/WwLFFie6m+e3x1igBVlmgeB5anhV+s0B8tX2zQHK0rB8WCBZQYWWGCBBRZYYIEFFlhggQUWWGCBBRZYYIGVZKyKgcNGmYEVCSuTyXTtO2jEGLCiYYX1mLV0bXewfFiu0mPVz1NgebEc2NzqF0Vg+bBc20/XvCoAy4flmnKupg4sL5Zr74UfdWB5sVz7K++8B8theauovPsZLIflbWYw9MGKiNU+9MGKlBv6YEWvFCwhsMACCyywwAILLLDAAgsssMACCyywwAILLLDAAgsssMACCyywwAILLLDAAgsssMACCyywwAILLLDAAgsssMACCyywwAILLLDAAgsssMD6325d7cQVhWEY/ocWn9JSoO5GhTqlSo2Wurt72qbu3lRwgruEQCCBE+6RHQ7YR7DWP8OeWSHvewnPwZcPLLDAAgsssMACCyywwAILLLDAAgsssMACCyywwAILLLCmGtbhHclg+Vimkk4f2r4OLLEu8dS3Z2Gw7Ft1/OvjMFj2Xan48uAqWAqwY3s2g6Xo4r/dG8FSdKF/5wawFJ3/9e4WWIoaf7xJBsu+UJ139MHyszr6YKmOfncYLM3RB0sRWGDZBBZYYIEFFlhggQUWWGBFgpWQBZYd1PMFS9cIWMamP5lfvVq8wDJAPdy3eKV4gWVo1ufy5eIFlhigcv6PQoFlwLqbM9AmXmAZsDKyfzeLX6BY6U/FJjexMrJ/NolfoFjTZs9bkipWuYd143VKQ0iiyh5qy9xFK8Q6t7ASslKGfKiAsTZ9KlkmqtzB8q95DLDu7frbIXEvIiz/mscC6877Py3iRJFg+dc8cKz1b/vOiTPprdJk0hsH6tWRenEqpVTmx9JhkeCxruX31obEtRRQM+csvCTq9Fgz8g/WJImLWULl9RS3ijo9VvrW/SdSxdUsoG4XHD0rgRb3az45WDcLitRQ+uJ+zaPHuv6y6ExsRjbu1zw6rLUvvg+6ObKqgsfK3XbgZKKQESv3UWFVl5ARK+1+YWWnkBkrc2/ZZaGJG7vmZC7vQ3G7EBERERERERERERER0dRtBK5Q857p1uutAAAAAElFTkSuQmCC" + }, + "穿山甲广告SDK": { + "name": "穿山甲广告 SDK(com.bytedance.msdk)", + "categoryId": 24, + "url": { + "1": "mssdk.bytedance.com", + "2": "mssdk-bu.bytedance.com", + "3": "mssdk-tos.bytedance.com", + "4": "mssdk.pangle.cn", + "5": "mssdk.pangleglobal.com", + "6": "pangolin.snssdk.com" + }, + "icon": "https://p3-pangle-empower.byteimg.com/obj/tos-cn-i-742ihxn9bs/ad/pangle/homepage/assets/favicon.ico", + "company": "北京巨量引擎网络技术有限公司" + }, + "穿山甲广告 API 接口": { + "name": "穿山甲广告 API 接口", + "categoryId": 24, + "url": { + "1": "api.pangle.cn" + }, + "icon": "https://p3-pangle-empower.byteimg.com/obj/tos-cn-i-742ihxn9bs/ad/pangle/homepage/assets/favicon.ico", + "company": "北京巨量引擎网络技术有限公司" + }, + "穿山甲广告日志上报": { + "name": "穿山甲广告日志上报", + "categoryId": 24, + "url": { + "1": "log.pangle.cn" + }, + "icon": "https://p3-pangle-empower.byteimg.com/obj/tos-cn-i-742ihxn9bs/ad/pangle/homepage/assets/favicon.ico", + "company": "北京巨量引擎网络技术有限公司" + }, + "穿山甲广告素材 CDN 分发": { + "name": "穿山甲广告素材 CDN 分发", + "categoryId": 24, + "url": { + "1": "cdn.pangle.cn" + }, + "icon": "https://p3-pangle-empower.byteimg.com/obj/tos-cn-i-742ihxn9bs/ad/pangle/homepage/assets/favicon.ico", + "company": "北京巨量引擎网络技术有限公司" + }, + "穿山甲海外版 SDK 服务": { + "name": "穿山甲海外版 SDK 服务", + "categoryId": 24, + "url": { + "1": "mssdk.pangleglobal.com" + }, + "icon": "https://p3-pangle-empower.byteimg.com/obj/tos-cn-i-742ihxn9bs/ad/pangle/homepage/assets/favicon.ico", + "company": "字节跳动有限公司" + }, + "穿山甲": { + "name": "穿山甲", + "categoryId": 0, + "url": { + "1": "https://www.csjplatform.com/", + "2": "https://csjplatform.com/" + }, + "icon": "https://p3-pangle-empower.byteimg.com/obj/tos-cn-i-742ihxn9bs/ad/pangle/homepage/assets/favicon.ico", + "company": "北京巨量引擎网络技术有限公司" + }, + "字节跳动应用商店签名校验服务": { + "name": "字节跳动应用商店签名校验服务", + "categoryId": 21, + "url": "lf3-appstore-sign.bytedance.net", + "icon": "data:image/vnd.microsoft.icon;base64,iVBORw0KGgoAAAANSUhEUgAAASwAAAEsCAMAAABOo35HAAACFlBMVEUAAACp3f8yW7U8jf8zW7U/3vJA5P8AydMzW7VPlP955908jP8AydM8jf8yWrV5590yWrV45908jf8yW7UyW7UyW7V55909jf88jf8yW7UzW7V56N49jf80XLY+j/80XbY/lf8zZr5Ilf9GXbkA2+RCY70zZsx459x5590AydI8jP8AydN4590AydM8jf8AydM8jf88jf94590AyNM8jf8AydN5590AydM8jf8AyNIAytR5594zW7V56N09jf955948jf8AydMAytN65948jf956N56594AytMAy9Q9jv976d8AytYAy9Z66N566uE/jv8AztUAy9cAytV56OSD798A0NYAydM8jP95590yW7R45twAydN45909jP8yWrU8jf945t0AydIyWrV5590AydIyW7UzWrU8jf8AydIzW7UzWrV459145908jf8yW7UAydM8jP8AydM8jf9459155909jf8zW7UAydQAytMAydN56N0AydMzXLYAydM0W7UAydQ8jv8+jv8Ay9QzW7Y9jf965t176N80W7YAydN56N156d4yW7U0XLc+jv8+kP8Ay9VAj/81XbgAzNQ1XbY5XbZAkf9+7eQ7Yrp96+FDlv+F6emI/+4AydN55t15594AydM+jf8+jf8+jv8AydQ1W7QzW7UAydR75942XbUyWrR86OCA8uYAztqA8eN45twyWrQAyNI8jP8bed+KAAAArnRSTlMAAfb9+wUD8HMJ/fr59+jb1dTLt6eamY+Jg3xXTkhHOhIRDQsJBwX59vbr4+Dc1tXRxcC7ubSqoJuak5CKiIN+enlyb21lXVFEQj09NzAnJiQdGBUPDvzx8O/s6Obl397OzsvIyMXEwcG/vbiysbGuqqeknZSTkI2Gf3ZraGViX15YWFVTUk9OS0pEQUA8MzAtLSomHx4bGhkXCwfApKCAdGdjXlxaWTY0MyEUFBKNTPVmAAAFHElEQVR42uzX105UYRSG4YUyiCgqKvbeK3ZFsaCCXUHE3kvU2FvU2EussfcSY2KiiSUDc4fuTcl/xr8/ZuZk7/e9g/UcfcuIiIiIiIiIiIiIiMhf7wFDPxlFKx1UdunBX6NoWGEHqp40GnmwXCWHlzz9YuTBck2cvWzdVyMPlmtSAJYy8mE5sJPXNhYYebBcO06tBMyP5do1v3aTkcPytedb7R8jh+Vr2sVVHyzxpaMXfEZbLNGltcqqHjba8LGWzNJyJdZUeHTws/GWvNJ61hTW5cSQkRMsWXUWqxWsX/HvJC2xTmK5dp4pfp0UsCywXL3633hrCShrLAd2653FvBxgufaV//xoMS5HWK4+5fdHW0zLJZYDu/wolmC5xXIVHlocv6GfcyxX/IZ+HrHiN/TziuWGvsWiLLCULBaBBVZLYAmBJQSWEFhCYAmBJQSWEFhCYAmBJQSWEFhCYAmBJQSWEFhCYAmBJQSWEFhCYAmBJQSWEFhCYAmBJQSWEFhCYAmBJQSWEFhCYAmBJQSWEFhCYAmBJQSWEFhCYAmBJQSWEFhCYAmBJQSWEFhCYAmBJQSWEFhCYOW1erCitfn2gqnNYPlruLdwenMQWJ7+rV40I3QCy9PWx1cOhkZgeRq35uqRbYEPWD6o9d+P9wxxwOq41IblcyaHMGB1XNHLFfO6hShgeXpz/WwLFFie6m+e3x1igBVlmgeB5anhV+s0B8tX2zQHK0rB8WCBZQYWWGCBBRZYYIEFFlhggQUWWGCBBRZYYIGVZKyKgcNGmYEVCSuTyXTtO2jEGLCiYYX1mLV0bXewfFiu0mPVz1NgebEc2NzqF0Vg+bBc20/XvCoAy4flmnKupg4sL5Zr74UfdWB5sVz7K++8B8theauovPsZLIflbWYw9MGKiNU+9MGKlBv6YEWvFCwhsMACCyywwAILLLDAAgsssMACCyywwAILLLDAAgsssMACCyywwAILLLDAAgsssMACCyywwAILLLDAAgsssMACCyywwAILLLDAAgsssMD6325d7cQVhWEY/ocWn9JSoO5GhTqlSo2Wurt72qbu3lRwgruEQCCBE+6RHQ7YR7DWP8OeWSHvewnPwZcPLLDAAgsssMACCyywwAILLLDAAgsssMACCyywwAILLLCmGtbhHclg+Vimkk4f2r4OLLEu8dS3Z2Gw7Ft1/OvjMFj2Xan48uAqWAqwY3s2g6Xo4r/dG8FSdKF/5wawFJ3/9e4WWIoaf7xJBsu+UJ139MHyszr6YKmOfncYLM3RB0sRWGDZBBZYYIEFFlhggQUWWGBFgpWQBZYd1PMFS9cIWMamP5lfvVq8wDJAPdy3eKV4gWVo1ufy5eIFlhigcv6PQoFlwLqbM9AmXmAZsDKyfzeLX6BY6U/FJjexMrJ/NolfoFjTZs9bkipWuYd143VKQ0iiyh5qy9xFK8Q6t7ASslKGfKiAsTZ9KlkmqtzB8q95DLDu7frbIXEvIiz/mscC6877Py3iRJFg+dc8cKz1b/vOiTPprdJk0hsH6tWRenEqpVTmx9JhkeCxruX31obEtRRQM+csvCTq9Fgz8g/WJImLWULl9RS3ijo9VvrW/SdSxdUsoG4XHD0rgRb3az45WDcLitRQ+uJ+zaPHuv6y6ExsRjbu1zw6rLUvvg+6ObKqgsfK3XbgZKKQESv3UWFVl5ARK+1+YWWnkBkrc2/ZZaGJG7vmZC7vQ3G7EBERERERERERERER0dRtBK5Q857p1uutAAAAAElFTkSuQmCC" + }, + "字节跳动企业核心域名": { + "name": "字节跳动企业核心域名", + "categoryId": 2, + "url": "bytedance.net", + "icon": "data:image/vnd.microsoft.icon;base64,iVBORw0KGgoAAAANSUhEUgAAASwAAAEsCAMAAABOo35HAAACFlBMVEUAAACp3f8yW7U8jf8zW7U/3vJA5P8AydMzW7VPlP955908jP8AydM8jf8yWrV5590yWrV45908jf8yW7UyW7UyW7V55909jf88jf8yW7UzW7V56N49jf80XLY+j/80XbY/lf8zZr5Ilf9GXbkA2+RCY70zZsx459x5590AydI8jP8AydN4590AydM8jf8AydM8jf88jf94590AyNM8jf8AydN5590AydM8jf8AyNIAytR5594zW7V56N09jf955948jf8AydMAytN65948jf956N56594AytMAy9Q9jv976d8AytYAy9Z66N566uE/jv8AztUAy9cAytV56OSD798A0NYAydM8jP95590yW7R45twAydN45909jP8yWrU8jf945t0AydIyWrV5590AydIyW7UzWrU8jf8AydIzW7UzWrV459145908jf8yW7UAydM8jP8AydM8jf9459155909jf8zW7UAydQAytMAydN56N0AydMzXLYAydM0W7UAydQ8jv8+jv8Ay9QzW7Y9jf965t176N80W7YAydN56N156d4yW7U0XLc+jv8+kP8Ay9VAj/81XbgAzNQ1XbY5XbZAkf9+7eQ7Yrp96+FDlv+F6emI/+4AydN55t15594AydM+jf8+jf8+jv8AydQ1W7QzW7UAydR75942XbUyWrR86OCA8uYAztqA8eN45twyWrQAyNI8jP8bed+KAAAArnRSTlMAAfb9+wUD8HMJ/fr59+jb1dTLt6eamY+Jg3xXTkhHOhIRDQsJBwX59vbr4+Dc1tXRxcC7ubSqoJuak5CKiIN+enlyb21lXVFEQj09NzAnJiQdGBUPDvzx8O/s6Obl397OzsvIyMXEwcG/vbiysbGuqqeknZSTkI2Gf3ZraGViX15YWFVTUk9OS0pEQUA8MzAtLSomHx4bGhkXCwfApKCAdGdjXlxaWTY0MyEUFBKNTPVmAAAFHElEQVR42uzX105UYRSG4YUyiCgqKvbeK3ZFsaCCXUHE3kvU2FvU2EussfcSY2KiiSUDc4fuTcl/xr8/ZuZk7/e9g/UcfcuIiIiIiIiIiIiIiMhf7wFDPxlFKx1UdunBX6NoWGEHqp40GnmwXCWHlzz9YuTBck2cvWzdVyMPlmtSAJYy8mE5sJPXNhYYebBcO06tBMyP5do1v3aTkcPytedb7R8jh+Vr2sVVHyzxpaMXfEZbLNGltcqqHjba8LGWzNJyJdZUeHTws/GWvNJ61hTW5cSQkRMsWXUWqxWsX/HvJC2xTmK5dp4pfp0UsCywXL3633hrCShrLAd2653FvBxgufaV//xoMS5HWK4+5fdHW0zLJZYDu/wolmC5xXIVHlocv6GfcyxX/IZ+HrHiN/TziuWGvsWiLLCULBaBBVZLYAmBJQSWEFhCYAmBJQSWEFhCYAmBJQSWEFhCYAmBJQSWEFhCYAmBJQSWEFhCYAmBJQSWEFhCYAmBJQSWEFhCYAmBJQSWEFhCYAmBJQSWEFhCYAmBJQSWEFhCYAmBJQSWEFhCYAmBJQSWEFhCYAmBJQSWEFhCYOW1erCitfn2gqnNYPlruLdwenMQWJ7+rV40I3QCy9PWx1cOhkZgeRq35uqRbYEPWD6o9d+P9wxxwOq41IblcyaHMGB1XNHLFfO6hShgeXpz/WwLFFie6m+e3x1igBVlmgeB5anhV+s0B8tX2zQHK0rB8WCBZQYWWGCBBRZYYIEFFlhggQUWWGCBBRZYYIGVZKyKgcNGmYEVCSuTyXTtO2jEGLCiYYX1mLV0bXewfFiu0mPVz1NgebEc2NzqF0Vg+bBc20/XvCoAy4flmnKupg4sL5Zr74UfdWB5sVz7K++8B8theauovPsZLIflbWYw9MGKiNU+9MGKlBv6YEWvFCwhsMACCyywwAILLLDAAgsssMACCyywwAILLLDAAgsssMACCyywwAILLLDAAgsssMACCyywwAILLLDAAgsssMACCyywwAILLLDAAgsssMD6325d7cQVhWEY/ocWn9JSoO5GhTqlSo2Wurt72qbu3lRwgruEQCCBE+6RHQ7YR7DWP8OeWSHvewnPwZcPLLDAAgsssMACCyywwAILLLDAAgsssMACCyywwAILLLCmGtbhHclg+Vimkk4f2r4OLLEu8dS3Z2Gw7Ft1/OvjMFj2Xan48uAqWAqwY3s2g6Xo4r/dG8FSdKF/5wawFJ3/9e4WWIoaf7xJBsu+UJ139MHyszr6YKmOfncYLM3RB0sRWGDZBBZYYIEFFlhggQUWWGBFgpWQBZYd1PMFS9cIWMamP5lfvVq8wDJAPdy3eKV4gWVo1ufy5eIFlhigcv6PQoFlwLqbM9AmXmAZsDKyfzeLX6BY6U/FJjexMrJ/NolfoFjTZs9bkipWuYd143VKQ0iiyh5qy9xFK8Q6t7ASslKGfKiAsTZ9KlkmqtzB8q95DLDu7frbIXEvIiz/mscC6877Py3iRJFg+dc8cKz1b/vOiTPprdJk0hsH6tWRenEqpVTmx9JhkeCxruX31obEtRRQM+csvCTq9Fgz8g/WJImLWULl9RS3ijo9VvrW/SdSxdUsoG4XHD0rgRb3az45WDcLitRQ+uJ+zaPHuv6y6ExsRjbu1zw6rLUvvg+6ObKqgsfK3XbgZKKQESv3UWFVl5ARK+1+YWWnkBkrc2/ZZaGJG7vmZC7vQ3G7EBERERERERERERER0dRtBK5Q857p1uutAAAAAElFTkSuQmCC" + }, + "字节跳动 A/B 测试虚拟机调度服务": { + "name": "字节跳动 A/B 测试虚拟机调度服务", + "categoryId": 18, + "url": "abtestvm.bytedance.com", + "icon": "data:image/vnd.microsoft.icon;base64,iVBORw0KGgoAAAANSUhEUgAAASwAAAEsCAMAAABOo35HAAACFlBMVEUAAACp3f8yW7U8jf8zW7U/3vJA5P8AydMzW7VPlP955908jP8AydM8jf8yWrV5590yWrV45908jf8yW7UyW7UyW7V55909jf88jf8yW7UzW7V56N49jf80XLY+j/80XbY/lf8zZr5Ilf9GXbkA2+RCY70zZsx459x5590AydI8jP8AydN4590AydM8jf8AydM8jf88jf94590AyNM8jf8AydN5590AydM8jf8AyNIAytR5594zW7V56N09jf955948jf8AydMAytN65948jf956N56594AytMAy9Q9jv976d8AytYAy9Z66N566uE/jv8AztUAy9cAytV56OSD798A0NYAydM8jP95590yW7R45twAydN45909jP8yWrU8jf945t0AydIyWrV5590AydIyW7UzWrU8jf8AydIzW7UzWrV459145908jf8yW7UAydM8jP8AydM8jf9459155909jf8zW7UAydQAytMAydN56N0AydMzXLYAydM0W7UAydQ8jv8+jv8Ay9QzW7Y9jf965t176N80W7YAydN56N156d4yW7U0XLc+jv8+kP8Ay9VAj/81XbgAzNQ1XbY5XbZAkf9+7eQ7Yrp96+FDlv+F6emI/+4AydN55t15594AydM+jf8+jf8+jv8AydQ1W7QzW7UAydR75942XbUyWrR86OCA8uYAztqA8eN45twyWrQAyNI8jP8bed+KAAAArnRSTlMAAfb9+wUD8HMJ/fr59+jb1dTLt6eamY+Jg3xXTkhHOhIRDQsJBwX59vbr4+Dc1tXRxcC7ubSqoJuak5CKiIN+enlyb21lXVFEQj09NzAnJiQdGBUPDvzx8O/s6Obl397OzsvIyMXEwcG/vbiysbGuqqeknZSTkI2Gf3ZraGViX15YWFVTUk9OS0pEQUA8MzAtLSomHx4bGhkXCwfApKCAdGdjXlxaWTY0MyEUFBKNTPVmAAAFHElEQVR42uzX105UYRSG4YUyiCgqKvbeK3ZFsaCCXUHE3kvU2FvU2EussfcSY2KiiSUDc4fuTcl/xr8/ZuZk7/e9g/UcfcuIiIiIiIiIiIiIiMhf7wFDPxlFKx1UdunBX6NoWGEHqp40GnmwXCWHlzz9YuTBck2cvWzdVyMPlmtSAJYy8mE5sJPXNhYYebBcO06tBMyP5do1v3aTkcPytedb7R8jh+Vr2sVVHyzxpaMXfEZbLNGltcqqHjba8LGWzNJyJdZUeHTws/GWvNJ61hTW5cSQkRMsWXUWqxWsX/HvJC2xTmK5dp4pfp0UsCywXL3633hrCShrLAd2653FvBxgufaV//xoMS5HWK4+5fdHW0zLJZYDu/wolmC5xXIVHlocv6GfcyxX/IZ+HrHiN/TziuWGvsWiLLCULBaBBVZLYAmBJQSWEFhCYAmBJQSWEFhCYAmBJQSWEFhCYAmBJQSWEFhCYAmBJQSWEFhCYAmBJQSWEFhCYAmBJQSWEFhCYAmBJQSWEFhCYAmBJQSWEFhCYAmBJQSWEFhCYAmBJQSWEFhCYAmBJQSWEFhCYAmBJQSWEFhCYOW1erCitfn2gqnNYPlruLdwenMQWJ7+rV40I3QCy9PWx1cOhkZgeRq35uqRbYEPWD6o9d+P9wxxwOq41IblcyaHMGB1XNHLFfO6hShgeXpz/WwLFFie6m+e3x1igBVlmgeB5anhV+s0B8tX2zQHK0rB8WCBZQYWWGCBBRZYYIEFFlhggQUWWGCBBRZYYIGVZKyKgcNGmYEVCSuTyXTtO2jEGLCiYYX1mLV0bXewfFiu0mPVz1NgebEc2NzqF0Vg+bBc20/XvCoAy4flmnKupg4sL5Zr74UfdWB5sVz7K++8B8theauovPsZLIflbWYw9MGKiNU+9MGKlBv6YEWvFCwhsMACCyywwAILLLDAAgsssMACCyywwAILLLDAAgsssMACCyywwAILLLDAAgsssMACCyywwAILLLDAAgsssMACCyywwAILLLDAAgsssMD6325d7cQVhWEY/ocWn9JSoO5GhTqlSo2Wurt72qbu3lRwgruEQCCBE+6RHQ7YR7DWP8OeWSHvewnPwZcPLLDAAgsssMACCyywwAILLLDAAgsssMACCyywwAILLLCmGtbhHclg+Vimkk4f2r4OLLEu8dS3Z2Gw7Ft1/OvjMFj2Xan48uAqWAqwY3s2g6Xo4r/dG8FSdKF/5wawFJ3/9e4WWIoaf7xJBsu+UJ139MHyszr6YKmOfncYLM3RB0sRWGDZBBZYYIEFFlhggQUWWGBFgpWQBZYd1PMFS9cIWMamP5lfvVq8wDJAPdy3eKV4gWVo1ufy5eIFlhigcv6PQoFlwLqbM9AmXmAZsDKyfzeLX6BY6U/FJjexMrJ/NolfoFjTZs9bkipWuYd143VKQ0iiyh5qy9xFK8Q6t7ASslKGfKiAsTZ9KlkmqtzB8q95DLDu7frbIXEvIiz/mscC6877Py3iRJFg+dc8cKz1b/vOiTPprdJk0hsH6tWRenEqpVTmx9JhkeCxruX31obEtRRQM+csvCTq9Fgz8g/WJImLWULl9RS3ijo9VvrW/SdSxdUsoG4XHD0rgRb3az45WDcLitRQ+uJ+zaPHuv6y6ExsRjbu1zw6rLUvvg+6ObKqgsfK3XbgZKKQESv3UWFVl5ARK+1+YWWnkBkrc2/ZZaGJG7vmZC7vQ3G7EBERERERERERERER0dRtBK5Q857p1uutAAAAAElFTkSuQmCC" + }, + "豆包": { + "CDN": { + "豆包官网": { + "name": "豆包官网", + "categoryId": 0, + "url": { + "1": "doubao.com", + "2": "www.doubao.com" + }, + "icon": "https://lf-flow-web-cdn.doubao.com/obj/flow-doubao/doubao/chat/favicon.png" + }, + "豆包CDN": { + "name": "豆包CDN", + "categoryId": 2, + "url": { + "1": "cdnbuild.net", + "2": "doubaocdn.com" + }, + "icon": "https://p3-pangle-empower.byteimg.com/obj/tos-cn-i-742ihxn9bs/ad/pangle/homepage/assets/favicon.ico", + "company": "抖音视界有限公司" + }, + "豆包AI优化服务": { + "name": "豆包AI优化服务", + "categoryId": 24, + "url": "opt.doubao.com", + "icon": "https://lf-flow-web-cdn.doubao.com/obj/flow-doubao/doubao/chat/favicon.png" + }, + "豆包多端云同步核心服务": { + "name": "豆包多端云同步核心服务", + "categoryId": 22, + "url": { + "1": "mcs.doubao.com" + }, + "icon": "https://lf-flow-web-cdn.doubao.com/obj/flow-doubao/doubao/chat/favicon.png" + }, + "内部服务负载均衡": { + "name": "内部服务负载均衡", + "categoryId": 2, + "url": { + "1": "bytelb.net" + }, + "icon": "https://lf-flow-web-cdn.doubao.com/obj/flow-doubao/doubao/chat/favicon.png", + "company": "抖音视界有限公司" + }, + "WebSocket 长连接,实时交互": { + "name": "WebSocket 长连接,实时交互", + "categoryId": 2, + "url": { + "1": "wss100-normal.doubao.com" + }, + "icon": "https://lf-flow-web-cdn.doubao.com/obj/flow-doubao/doubao/chat/favicon.png", + "company": "抖音视界有限公司" + }, + "前端 JS/CSS/ 图片 / 安装包分发": { + "name": "前端 JS/CSS/ 图片 / 安装包分发", + "categoryId": 2, + "url": { + "1": "lf-flow-web-cdn.doubao.com" + }, + "icon": "https://lf-flow-web-cdn.doubao.com/obj/flow-doubao/doubao/chat/favicon.png", + "company": "北京春田知韵科技有限公司" + } + }, + "豆包": { + "name": "豆包", + "categoryId": 0, + "url": { + "1": "www.doubao.com" + }, + "icon": "https://lf-flow-web-cdn.doubao.com/obj/flow-doubao/doubao/chat/favicon.png", + "company": "北京春田知韵科技有限公司" + }, + "豆包日志采集与格式化服务": { + "name": "豆包日志采集与格式化服务", + "categoryId": 22, + "url": "logifier.doubao.com", + "icon": "https://lf-flow-web-cdn.doubao.com/obj/flow-doubao/doubao/chat/favicon.png" + } + }, + "company": "字节跳动有限公司" + }, + "金山办公": { + "金山文档": { + "name": "金山文档", + "categoryId": 0, + "url": { + "1": "kdocs.cn", + "2": "www.kdocs.cn", + "3": "365.kdocs.cn", + "4": "account.kdocs.cn" + }, + "icon": "https://qn.cache.wpscdn.cn/kdocs/mobile/touch/apple-180.png" + }, + "WPS Office": { + "name": "WPS Office", + "categoryId": 6, + "url": { + "1": "wps.cn", + "2": "www.wps.cn" + }, + "icon": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAQ2SURBVHgB7Va9biRFEK7qWa9XAuSByMEhr0FIzvARkEBgEUHEPQG79wKcTyL3Li/gnxdgl5TgTAQSQmeJxEJCIoIjOc/JyemSW4tbe70z28XX1T0z+zO2U6RzWe3unq6un6+/rl6iW7mV111Y7tzZImMekVAcvkm+NqUnxZy1S0jsQz49PdTF3Q82ych3WNzM1dM/Msp+S4UviQ32RHDlBm5MIgJrz9Bvs6y9e4Ida3MOvRXGnxRTyb2HgM6I/13nZDCQb98/IcNNtQC19J8JXf46InWM5npjfM/qnJ1dtVGjSOLgKkQWnMz4y+clcmgx2TiWb955QENpFsBhT/r7SDhymZMwEnfKOjbiFcSSRuO+k7F7FFk4xsdIECZ6xtxg7HqeuHFYQ583lh59Dgvn0qZXmL/CviGy/3tM9gJOoYPmehcMcaR7vE03Vj9yyNJsxlQf4xgkLrNFUCnvEzUwGZUoRDjjiB7peCzr9Gm9hflOgRokfZHdnfw1HPi9+X/IMu8CpHsznIIN3SgbqzvoOiXAMgBgd/nJ84TmibGx+pgcCTeoS9HSY5hpFnwh6vEPp/cr9jidE3/M+Vfb4ycv7hsf5mifzOQlYPFwM87X2B2qlq62kWnRhW3SOaC8sExDHFUadSt3OFsecg+9csGorgbAfw4GVOMDPef8fCJpy0bcnLcFVI5oFYORbcMpaQBD6/o+HybJYvawAVs4Kgq2Hd96ObqmjHK8h8gGgYw+yuWoGoXzrEXnE2SfCQ0zN3dUqc7e2VAyB0LjdtBSWugWASgK7G7EFNONtGRzFgWdp7JNKYxlCBYd+h4fP0+wFi/oGmp7ZK1WI/jowleyEIAXCy7Yl8UxGGyIzCwKjvXGxj5AZxAR2ElXPorbVDPbs7qmExKRcLUTR75plZkAFIVIDvQY3CYlpW3nKBQZ6VqoGUb6oOwgBPa1bHkUVJcnXwUd9hwAUlPZVyAAGZPnQl6UXBDLsqtrDdvReV6UHFKRuxH2AeZwCGTc2MkymO9JnSfyDN768+4WAggo7IWKxeH8vpRP3mo5TpQVUYPrBSttrabujI1sy8dvfIixZ76x3gajRhzPZq/+qEIUxjR9igr3NlVKqChZtk6NxgC9e9A8AUWL0hn+r+QvDPQTytLP+HiU3IiAmj8KXCh5IEWR8mN9C5xB1a3RfnFz/NGtTL0d7v39vsr5lQH4lTq4YM+U6aVxCuQD3JOpe19zuoNQwALp8qtsE6plvSvdXLWgmRnZL1isJXoSXjLu81GZUaGrL14otVrQ0Eg607oLfugakS2c61L9qf5a8i+e6O+CzLw3b1R1a3XHhZWp1zHhXy7Xr/NhrlvkI73fB2Vh0vvcr8pIdR0Xpisp49reILWbFPjncUe+qK0g83vK5tGbD12xqJQR3pPG0hrq8xZQ+JF/yvp0K7fyf5f/AKzIO6StcaNfAAAAAElFTkSuQmCC" + }, + "WPS CDN": { + "name": "WPS CDN", + "categoryId": 2, + "url": { + "1": "wpsdns.com", + "2": "kdocs-om.wpscdn.cn", + "3": "qn.cache.wpscdn.cn", + "4": "fe-static.wpscdn.cn", + "5": "docer-ks3.wpscdn.cn", + "6": "cloudcdn.wpscdn.cn", + "7": "vasvip-pub.wpscdn.cn", + "8": "ks3.wpsplus.wpscdn.cn", + "9": "op-kdocs.wpscdn.cn", + "10": "volcengine-cache-weboffice.wpscdn.cn", + "11": "ac.wpscdn.cn", + "12": "honeycomb-emergency.wpscdn.cn", + "13": "res-honeycomb.wpscdn.cn", + "14": "kflow.wpscdn.cn", + "15": "personal-act.wpscdn.cn", + "16": "official-package.wpscdn.cn" + }, + "icon": "https://wps.cn/favicon.ico" + }, + "company": "珠海金山办公科技有限公司" + }, + "京东": { + "京东": { + "name": "京东", + "categoryId": 4, + "url": "https://www.jd.com/", + "icon": "https://www.jd.com/favicon.ico" + }, + "company": "京东" + }, + "360": { + "360官网": { + "name": "360", + "categoryId": 0, + "url": "https://www.360.cn/", + "icon": "https://www.360.cn/favicon.ico" + }, + "360杀毒": { + "name": "360杀毒", + "categoryId": 0, + "url": "https://sd.360.cm/", + "icon": "https://sd.360.cn/favicon.ico" + }, + "360统计": { + "360数据统计类(山东)": { + "name": "360数据统计类(山东)", + "categoryId": 0, + "url": "stat.sd.360.cn", + "icon": "https://www.360.cn/favicon.ico" + } + }, + "纳米搜索": { + "name": "纳米搜索", + "categoryId": 1, + "url": "https://bot.n.cn/", + "icon": "https://bot.n.cn/favicon.ico", + "company": "天津三六零快看科技有限公司" + }, + "360AI官网": { + "name": "360AI官网", + "categoryId": 1, + "url": "https://ai.360.cn/", + "icon": "https://ai.360.cn/favicon.ico" + }, + "360安全浏览器": { + "name": "360安全浏览器", + "categoryId": 1, + "url": "https://browser.360.cn/", + "icon": "https://browser.360.cn/favicon.ico" + }, + "360极速浏览器X": { + "name": "360极速浏览器X", + "categoryId": 1, + "url": "https://chromex.360.cn/", + "icon": "https://bs1.360sres.com/static/26b7ed8e98672fce.ico" + }, + "360AI云盘": { + "name": "360AI云盘", + "categoryId": 1, + "url": "https://yunpan.360.cn/", + "icon": "https://yunpan.360.cn/favicon.ico" + }, + "360压缩": { + "name": "360压缩", + "categoryId": 1, + "url": "https://yasuo.360.cn/", + "icon": "https://s5.ssl.qhres2.com/static/ac191608d6304d0b.ico" + }, + "360AI办公": { + "name": "360AI办公", + "categoryId": 1, + "url": "https://bangong.360.cn/", + "icon": "https://s2.ssl.qhres2.com/static/0378b6a8d86a6fd0.ico" + }, + "360AI图片": { + "name": "360AI图片", + "categoryId": 1, + "url": "https://pic.360.cn/", + "icon": "https://p2.qhimg.com/t01ce7242647fc96a03.png" + }, + "360驱动大师": { + "name": "360驱动大师", + "categoryId": 1, + "url": "https://dm.weishi.360.cn/", + "icon": "https://www.360.cn/favicon.ico" + }, + "360安全云": { + "name": "360安全云", + "categoryId": 1, + "url": { + "1": "https://saas.360.cn/", + "2": "safe.online.360.cn", + "3": "admin.online.360.cn", + "4": "client.saas.360.cn" + }, + "icon": "https://saas.360.cn/favicon.ico" + }, + "360安全卫士": { + "name": "360安全卫士", + "categoryId": 1, + "url": "https://weishi.360.cn/", + "icon": "https://p3.ssl.qhimg.com/d/inn/b886349a3672/LOGO_64x64.png" + }, + "360数字安全": { + "name": "360数字安全集团", + "categoryId": 1, + "url": "https://360.net/", + "icon": "https://www.360.cn/favicon.ico", + "company": "360数字安全集团/三六零数字安全科技集团有限公司" + }, + "360软件宝库": { + "360软件宝库": { + "name": "360软件宝库", + "categoryId": 1, + "url": "https://soft.360.cn/", + "icon": "https://soft.360.cn/favicon.ico" + }, + "360软件宝库开放平台": { + "name": "360软件宝库开放平台", + "categoryId": 1, + "url": "https://open.soft.360.cn/", + "icon": "https://www.360.cn/favicon.ico" + } + }, + "360CDN": { + "安全产品专属高速下载": { + "name": "安全产品专属高速下载", + "categoryId": 2, + "url": "sfdl.360safe.com", + "icon": "https://www.360.cn/favicon.ico" + }, + "安全产品通用下载": { + "name": "安全产品通用下载", + "categoryId": 2, + "url": "dl.360safe.com", + "icon": "https://www.360.cn/favicon.ico" + }, + "360 全产品线下载": { + "name": "360 全产品线下载", + "categoryId": 2, + "url": "sfdl.360.cn", + "icon": "https://www.360.cn/favicon.ico" + }, + "360 官网统一下载入口": { + "name": "360 官网统一下载入口", + "categoryId": 2, + "url": "download.360.cn", + "icon": "https://www.360.cn/favicon.ico" + }, + "360静态资源CDN": { + "name": "360静态资源CDN", + "categoryId": 2, + "url": "qhres2.com", + "icon": "https://www.360.cn/favicon.ico" + }, + "安全产品下载加速域名": { + "name": "安全产品下载加速", + "categoryId": 2, + "url": "wsdl.360safe.com", + "icon": "https://www.360.cn/favicon.ico" + } + }, + "360搜索": { + "name": "360搜索", + "categoryId": 1, + "url": { + "1": "https://www.so.com/", + "2": "https://so.com/" + }, + "icon": "https://www.so.com/favicon.ico", + "company": "天津三六零快看科技有限公司" + }, + "聚越信息": { + "聚越信息官网": { + "name": "聚越信息", + "categoryId": 0, + "url": { + "1": "www.mediav.com", + "2": "mediav.com", + "3": "mediav.cn" + }, + "company": "上海聚胜万合广告有限公司/上海漫酷广告有限公司", + "icon": "https://www.mediav.com/favicon.ico" + }, + "广告展示与投放服务": { + "name": "聚胜万合广告展示与投放服务", + "categoryId": 22, + "url": { + "1": "g.mediav.com", + "2": "show.g.mediav.com" + }, + "company": "上海聚胜万合广告有限公司/上海漫酷广告有限公司", + "icon": "https://www.mediav.com/favicon.ico" + }, + "数据监测与分析服务": { + "name": "聚胜万合数据监测与分析服务", + "categoryId": 22, + "url": "d.mediav.com", + "company": "上海聚胜万合广告有限公司/上海漫酷广告有限公司", + "icon": "https://www.mediav.com/favicon.ico" + }, + "开放 API 接口": { + "name": "聚胜万合开放 API 接口", + "categoryId": 24, + "url": "api.mediav.com", + "company": "上海聚胜万合广告有限公司/上海漫酷广告有限公司", + "icon": "https://www.mediav.com/favicon.ico" + }, + "平台管理后台": { + "name": "聚胜万合平台管理后台", + "categoryId": 24, + "url": "admin.mediav.com", + "company": "上海聚胜万合广告有限公司/上海漫酷广告有限公司", + "icon": "https://www.mediav.com/favicon.ico" + }, + "聚越信息CDN": { + "聚越信息CDN": { + "name": "聚越信息CDN", + "categoryId": 2, + "url": "mediav.com", + "company": "上海聚胜万合广告有限公司/上海漫酷广告有限公司", + "icon": "https://www.mediav.com/favicon.ico" + }, + "加密静态资源 CDN": { + "name": "加密静态资源 CDN", + "categoryId": 2, + "url": "static-ssl.mediav.com", + "company": "上海聚胜万合广告有限公司/上海漫酷广告有限公司", + "icon": "https://www.mediav.com/favicon.ico" + }, + "静态资源CDN": { + "name": "聚越信息静态资源CDN", + "categoryId": 2, + "url": "static.mediav.com", + "company": "上海聚胜万合广告有限公司/上海漫酷广告有限公司", + "icon": "https://www.mediav.com/favicon.ico" + }, + "数据监测CDN": { + "name": "聚越信息数据监测CDN", + "categoryId": 2, + "url": "d.mediav.com", + "company": "上海聚胜万合广告有限公司/上海漫酷广告有限公司", + "icon": "https://www.mediav.com/favicon.ico" + }, + "开放 API 接口CDN": { + "name": "聚越信息开放 API 接口CDN", + "categoryId": 2, + "url": "api.mediav.com", + "company": "上海聚胜万合广告有限公司/上海漫酷广告有限公司", + "icon": "https://www.mediav.com/favicon.ico" + }, + "聚效平台CDN": { + "name": "聚效平台CDN", + "categoryId": 2, + "url": "mediav.com", + "company": "上海聚胜万合广告有限公司/上海漫酷广告有限公司", + "icon": "https://www.mediav.com/favicon.ico" + }, + "移动端适配CDN": { + "name": "移动端适配CDN", + "categoryId": 2, + "url": "m.mediav.com", + "company": "上海聚胜万合广告有限公司/上海漫酷广告有限公司", + "icon": "https://www.mediav.com/favicon.ico" + }, + "图片素材CDN": { + "name": "图片素材CDN", + "categoryId": 2, + "url": "img.mediav.com", + "company": "上海聚胜万合广告有限公司/上海漫酷广告有限公司" + }, + "聚越信息静态资源": { + "name": "聚越信息静态资源", + "categoryId": 2, + "url": "static.mediav.com", + "company": "上海聚胜万合广告有限公司/上海漫酷广告有限公司", + "icon": "https://www.mediav.com/favicon.ico" + }, + "广告展示备用CDN": { + "name": "广告展示备用CDN", + "categoryId": 2, + "url": "show-3.mediav.com", + "company": "上海聚胜万合广告有限公司/上海漫酷广告有限公司", + "icon": "https://www.mediav.com/favicon.ico" + }, + "广告展示扩展CDN": { + "name": "广告展示扩展CDN", + "categoryId": 2, + "url": { + "1": "show-2.mediav.com", + "2": "show-1.mediav.com" + }, + "company": "上海聚胜万合广告有限公司/上海漫酷广告有限公司", + "icon": "https://www.mediav.com/favicon.ico" + }, + "广告展示基础CDN": { + "name": "广告展示基础CDN", + "categoryId": 2, + "url": "show.mediav.com", + "company": "上海聚胜万合广告有限公司/上海漫酷广告有限公司", + "icon": "https://www.mediav.com/favicon.ico" + }, + "广告投放综合CDN": { + "name": "广告投放综合CDN", + "categoryId": 2, + "url": "g.mediav.com", + "company": "上海聚胜万合广告有限公司/上海漫酷广告有限公司", + "icon": "https://www.mediav.com/favicon.ico" + }, + "广告展示主CDN": { + "name": "广告展示主CDN", + "categoryId": 2, + "url": { + "1": "show-g.mediav.com", + "2": "show.g.mediav.com" + }, + "company": "上海聚胜万合广告有限公司/上海漫酷广告有限公司", + "icon": "https://www.mediav.com/favicon.ico" + } + } + } + }, + "picsum-photos": { + "picsum-photos": { + "name": "面向开发者的开源占位图 API 项目", + "categoryId": 0, + "url": "picsum.photos", + "icon": "https://picsum.photos/assets/images/favicon/favicon-32x32.png" + }, + "company": "Picsum Photos Created by David Marby & Nijiko Yonskai" + }, + "绮梦之家": { + "绮梦之家": { + "name": "绮梦之家", + "categoryId": 0, + "url": { + "1": "https://www.amazehome.xyz/", + "2": "amazehome.xyz", + "3": "https://www.amazehome.cn/", + "4": "amazehome.cn" + }, + "icon": "https://www.amazehome.cn/upload/cf3f6d7f-65b5-4df2-a7af-8289fb5aad81-yagB.png" + }, + "绮梦之家认证中心": { + "name": "绮梦之家认证中心", + "categoryId": 0, + "url": "https://cas.amazehome.cn/", + "icon": "https://www.amazehome.cn/upload/cf3f6d7f-65b5-4df2-a7af-8289fb5aad81-yagB.png" + }, + "绮梦之家云同步服务": { + "name": "绮梦之家云同步服务", + "categoryId": 0, + "url": "https://cloud.amazehome.cn/", + "icon": "https://www.amazehome.cn/upload/cf3f6d7f-65b5-4df2-a7af-8289fb5aad81-yagB.png" + }, + "绮梦之家Git服务": { + "name": "绮梦之家Git服务", + "categoryId": 0, + "url": "https://gitea.amazehome.xyz/", + "icon": "https://gitea.amazehome.xyz/assets/img/favicon.svg" + }, + "绮梦之家导航": { + "name": "绮梦之家导航", + "categoryId": 0, + "url": "https://nav.amazehome.cn/", + "icon": "https://nav.amazehome.cn/icons/logo.png" + }, + "绮梦之家VMWare虚拟化平台": { + "name": "绮梦之家VMWare虚拟化平台", + "categoryId": 0, + "url": "https://vcenter.amazehome.xyz/", + "icon": "https://www.amazehome.cn/upload/cf3f6d7f-65b5-4df2-a7af-8289fb5aad81-yagB.png" + }, + "绮梦之家Office协作服务": { + "name": "绮梦之家Office协作服务", + "categoryId": 0, + "url": "https://view.amazehome.cn/", + "icon": "https://view.amazehome.cn/welcome/css/favicon.ico" + }, + "绮梦之家数据中心": { + "name": "绮梦之家数据中心", + "categoryId": 0, + "url": "https://data.amazehome.xyz/", + "icon": "https://www.amazehome.cn/upload/cf3f6d7f-65b5-4df2-a7af-8289fb5aad81-yagB.png" + }, + "绮梦之家云服务": { + "name": "绮梦之家云服务", + "categoryId": 0, + "url": "https://yun.amazehome.xyz/", + "icon": "https://www.amazehome.cn/upload/cf3f6d7f-65b5-4df2-a7af-8289fb5aad81-yagB.png" + }, + "绮梦之家域控制器": { + "name": "绮梦之家AD域控制器", + "categoryId": 0, + "url": "dc.amazehome.xyz", + "icon": "https://www.amazehome.cn/upload/cf3f6d7f-65b5-4df2-a7af-8289fb5aad81-yagB.png" + }, + "绮梦之家VMWare虚拟化桌面平台": { + "name": "绮梦之家VMWare虚拟化桌面平台", + "categoryId": 0, + "url": { + "1": "https://horizon.amazehome.xyz/", + "2": "https://horizon1.amazehome.xyz/" + }, + "icon": "https://www.amazehome.cn/upload/cf3f6d7f-65b5-4df2-a7af-8289fb5aad81-yagB.png" + }, + "company": "绮梦之家" + }, + "微步在线": { + "微步在线": { + "name": "微步在线", + "categoryId": 0, + "url": "https://threatbook.com/", + "icon": "https://threatbook.com/favicon.ico" + }, + "微步情报社区": { + "name": "微步情报社区", + "categoryId": 0, + "url": "https://x.threatbook.com/", + "icon": "https://x.threatbook.com/public/asset/img/favicon.ico?t=1" + }, + "微步OneDNS": { + "name": "OneDNS互联网安全接入服务", + "categoryId": 0, + "url": "https://onedns.net/", + "icon": "https://onedns.net/favicon.ico", + "company": "北京微步在线科技有限公司" + }, + "company": "北京步刻科技有限公司/北京微步在线科技有限公司" + }, + "飞致云": { + "飞致云": { + "name": "飞致云", + "categoryId": 0, + "url": { + "1": "https://fit2cloud.com/", + "2": "https://www.fit2cloud.com/" + }, + "icon": "https://fit2cloud.com/images/logo/favicon.ico" + }, + "1Panel": { + "name": "1Panel", + "categoryId": 0, + "url": "https://1panel.cn/", + "icon": "https://1panel.cn/favicon.png" + }, + "company": "北京飞致云科技有限公司" + }, + "Tailwind CSS": { + "Tailwind": { + "name": "Tailwind CSS", + "categoryId": 0, + "url": { + "1": "https://tailwindcss.com/", + "2": "https://cdn.tailwindcss.com/" + }, + "icon": "https://tailwindcss.com/favicons/favicon-32x32.png?v=4" + }, + "company": "Tailwind Labs" + }, + "小米": { + "小米官网": { + "name": "小米官网", + "categoryId": 0, + "url": "https://www.mi.com/", + "icon": "https://www.mi.com/favicon.ico" + }, + "小米应用商店": { + "name": "小米应用商店", + "categoryId": 0, + "url": "hhttps://app.mi.com/", + "icon": "https://cdn.cnbj3-fusion.fds.api.mi-img.com/mi-dev-web/production/static/_next/static/media/favicon.d179c114.ico" + }, + "小米开发者服务": { + "name": "小米开发者服务", + "categoryId": 0, + "url": "https://dev.mi.com/", + "icon": "https://dev.mi.com/favicon.ico" + }, + "小米主题": { + "name": "小米主题", + "categoryId": 0, + "url": "https://zhuti.designer.xiaomi.com/", + "icon": "https://www.mi.com/favicon.ico" + }, + "小米社区": { + "name": "小米社区", + "categoryId": 0, + "url": "https://www.xiaomi.com/community/", + "icon": "https://www.xiaomi.com/favicon.ico" + }, + "小米汽车": { + "name": "小米汽车", + "categoryId": 0, + "url": "https://www.xiaomiev.com/", + "icon": "https://www.xiaomiev.com/favicon.ico" + }, + "小米澎湃OS": { + "name": "小米澎湃OS", + "categoryId": 0, + "url": "https://hyperos.mi.com/", + "icon": "https://hyperos.mi.com/favicon.ico" + }, + "小米MIUI": { + "name": "小米MIUI", + "categoryId": 0, + "url": { + "1": "https://www.miui.com/", + "2": "https://home.miui.com/" + }, + "icon": "https://www.miui.com/favicon.ico" + }, + "小米隐私": { + "name": "小米隐私", + "categoryId": 0, + "url": "https://privacy.hyperos.mi.com/", + "icon": "https://cdn.cnbj1.fds.api.mi-img.com/privacy-station/pc/favicon.ico" + }, + "小米云服务": { + "name": "小米云服务", + "categoryId": 0, + "url": "https://i.mi.com/", + "icon": "https://i.mi.com/favicon.ico" + }, + "小米账号": { + "name": "小米账号", + "categoryId": 0, + "url": "https://account.xiaomi.com/", + "icon": "https://account.xiaomi.com/favicon.ico" + }, + "小爱同学": { + "name": "小爱同学", + "categoryId": 0, + "url": "https://xiaoai.mi.com/", + "icon": "https://cdn.cnbj1.fds.api.mi-img.com/aife/ai-hyper-xiaoai-fe/favicon.ico" + }, + "小米IoT": { + "name": "小米IoT开发者平台", + "categoryId": 0, + "url": "https://iot.mi.com/", + "icon": "https://cdn.cnbj1.fds.api.mi-img.com/iot-mi-com/prod/favicon.ico" + }, + "业务平台": { + "name": "小米业务平台", + "categoryId": 0, + "url": "whippet.bsp.xiaomi.com", + "icon": "https://www.mi.com/favicon.ico" + }, + "company": "小米" + }, + "七牛云": { + "七牛云官网": { + "name": "七牛云", + "categoryId": 22, + "url": "https://www.qiniu.com/", + "icon": "https://www.qiniu.com/favicon.ico" + }, + "Staticfile CDN": { + "name": "Staticfile CDN", + "categoryId": 2, + "url": { + "1": "cdn.staticfile.org", + "2": "cdn.staticfile.net" + }, + "icon": "https://www.qiniu.com/favicon.ico" + }, + "company": "上海七牛信息技术有限公司" + }, + "Akamai": { + "Akamai": { + "name": "Akamai", + "categoryId": 0, + "url": "https://www.akamai.com/", + "icon": "https://www.akamai.com/site/favicon/favicon.ico" + }, + "Akamai CDN": { + "name": "Akamai CDN", + "categoryId": 2, + "url": { + "1": "akamaized.net", + "2": "lf-rc2.yhgfb-cn-static.com" + }, + "icon": "https://www.akamai.com/site/favicon/favicon.ico" + }, + "核心边缘 DNS 与 CDN 调度根域名": { + "name": "核心边缘 DNS 与 CDN 调度根域名", + "categoryId": 2, + "url": { + "1": "akamaihd.net", + "2": "akamaiedge.net", + "3": "edgesuite.net" + }, + "icon": "https://www.akamai.com/site/favicon/favicon.ico" + }, + "company": "美国阿卡迈科技公司 (Akamai Technologies, Inc.)" + }, + "新浪微博": { + "新浪微博": { + "name": "新浪微博", + "categoryId": 0, + "url": "https://weibo.com/", + "icon": "https://weibo.com/favicon.ico" + }, + "新浪微博登录": { + "name": "新浪微博登录", + "categoryId": 0, + "url": "https://passport.weibo.com/", + "icon": "https://passport.weibo.com/favicon.ico" + }, + "新浪微博开放平台": { + "新浪微博开放平台": { + "name": "新浪微博开放平台", + "categoryId": 22, + "url": "https://open.weibo.com/", + "icon": "https://open.weibo.com/favicon.ico" + }, + "新浪微博开放平台API": { + "name": "新浪微博开放平台API", + "categoryId": 22, + "url": "https://api.weibo.com/", + "icon": "https://open.weibo.com/favicon.ico" + } + }, + "新浪微博CDN": { + "name": "新浪微博CDN", + "categoryId": 2, + "url": { + "1": "sinaimg.cn" + }, + "icon": "https://weibo.com/favicon.ico" + }, + "company": "新浪微博" + }, + "南京市中医院": { + "南京市中医院": { + "name": "南京市中医院", + "categoryId": 0, + "url": { + "1": "https://www.njszyy.cn/", + "2": "https://njszyy.cn/" + }, + "icon": "#" + }, + "company": "南京市中医院" + }, + "软件源相关": { + "腾讯镜像源": { + "name": "腾讯软件源", + "categoryId": 0, + "url": { + "1": "https://mirrors.cloud.tencent.com/" + }, + "icon": "https://www.tencent.com/favicon.ico", + "company": "深圳腾讯计算机系统有限公司" + }, + "南京大学镜像源": { + "name": "南京大学开源镜像站", + "categoryId": 0, + "url": { + "1": "https://mirrors.nju.edu.cn/" + }, + "icon": "https://www.nju.edu.cn/favicon.ico", + "company": "南京大学" + }, + "高校镜像源联盟": { + "name": "高校镜像源联盟MirrorZ", + "categoryId": 0, + "url": { + "1": "https://mirrorz.org/", + "2": "https://help.mirrorz.org/" + }, + "icon": "https://mirrorz.org/static/img/mirrorz.svg", + "company": "MirrorZ Project" + }, + "清华大学镜像源": { + "name": "清华大学开源镜像站", + "categoryId": 0, + "url": { + "1": "https://mirrors.tuna.tsinghua.edu.cn/" + }, + "icon": "https://mirrors.tuna.tsinghua.edu.cn/static/img/favicon.png", + "company": "清华大学" + }, + "中国科学技术大学镜像源": { + "name": "中国科学技术大学开源镜像站", + "categoryId": 0, + "url": { + "1": "https://mirrors.ustc.edu.cn/" + }, + "icon": "https://mirrors.ustc.edu.cn/static/img/favicon.png", + "company": "中国科学技术大学" + }, + "中国科学院软件研究所镜像源": { + "name": "中国科学院软件研究所开源镜像站", + "categoryId": 0, + "url": { + "1": "https://mirrors.iscas.ac.cn/" + }, + "icon": "https://api.cas.cn/favicon/is.ico", + "company": "中国科学院软件研究所" + }, + "北京外国语大学镜像源": { + "name": "北京外国语大学开源镜像站", + "categoryId": 0, + "url": { + "1": "https://mirrors.bfsu.edu.cn/" + }, + "icon": "https://mirrors.bfsu.edu.cn/static/img/favicon.png", + "company": "北京外国语大学" + }, + "哈尔滨工业大学镜像源": { + "name": "哈尔滨工业大学开源镜像站", + "categoryId": 0, + "url": { + "1": "https://mirrors.hit.edu.cn/" + }, + "icon": "https://mirrors.hit.edu.cn/favicon.svg", + "company": "哈尔滨工业大学" + }, + "北京大学镜像源": { + "name": "北京大学开源镜像站", + "categoryId": 0, + "url": { + "1": "https://mirrors.pku.edu.cn/" + }, + "icon": "https://mirrors.pku.edu.cn/static/favicon.ico", + "company": "北京大学" + }, + "南京工业大学镜像源": { + "name": "南京工业大学开源软件镜像站", + "categoryId": 0, + "url": { + "1": "https://mirrors.njtech.edu.cn/" + }, + "icon": "https://www.njtech.edu.cn/favicon.ico", + "company": "南京工业大学" + }, + "南阳理工学院镜像源": { + "name": "南阳理工学院开源软件镜像站", + "categoryId": 0, + "url": { + "1": "https://mirror.nyist.edu.cn/" + }, + "icon": "https://cernet.mirror.nyist.edu.cn/static/img/favicon.png", + "company": "南阳理工学院" + }, + "思源镜像站": { + "name": "思源镜像站", + "categoryId": 0, + "url": { + "1": "https://mirror.sjtu.edu.cn/" + }, + "icon": "https://mirror.sjtu.edu.cn/favicon.ico", + "company": "上海交通大学" + }, + "南方科技大学镜像源": { + "name": "南方科技大学开源软件镜像站", + "categoryId": 0, + "url": { + "1": "https://mirrors.sustech.edu.cn/" + }, + "icon": "https://mirrors.sustech.edu.cn/favicon.ico", + "company": "南方科技大学" + }, + "浙江大学开源软件镜像站": { + "name": "浙江大学开源软件镜像站", + "categoryId": 0, + "url": { + "1": "https://mirrors.zju.edu.cn/" + }, + "icon": "https://mirrors.zju.edu.cn/index/favicon.svg?v=f28569028f33e6ac676201f84c9d61bf", + "company": "浙江大学" + }, + "兰州大学开源社区镜像站": { + "name": "兰州大学开源社区镜像站", + "categoryId": 0, + "url": { + "1": "https://mirrors.lzu.edu.cn/" + }, + "icon": "https://mirrors.lzu.edu.cn/static/img/favicon.png", + "company": "兰州大学" + }, + "重庆邮电大学开源镜像站": { + "name": "重庆邮电大学开源镜像站", + "categoryId": 0, + "url": { + "1": "https://mirrors.cqupt.edu.cn/" + }, + "icon": "https://mirrors.cqupt.edu.cn/favicon.ico", + "company": "重庆邮电大学" + } + }, + "哔哩哔哩": { + "哔哩哔哩": { + "name": "哔哩哔哩", + "categoryId": 0, + "url": { + "1": "https://www.bilibili.com/" + }, + "icon": "https://www.bilibili.com/favicon.ico" + }, + "哔哩哔哩游戏": { + "name": "哔哩哔哩游戏", + "categoryId": 0, + "url": { + "1": "https://www.biligame.com/", + "2": "https://biligame.com/" + }, + "icon": "https://www.bilibili.com/favicon.ico" + }, + "哔哩哔哩CDN": { + "name": "哔哩哔哩资源CDN", + "categoryId": 2, + "url": { + "1": "hdslb.com", + "2": "bilivideo.com", + "3": "bilicdn2.com", + "4": "biliapi.com", + "5": "bilicdn1.com" + }, + "icon": "https://www.bilibili.com/favicon.ico", + "company": "杭州幻电科技有限公司" + }, + "B 站直播的官方 Web 前端域名": { + "name": "哔哩哔哩直播官方 Web 前端域名", + "categoryId": 24, + "url": { + "1": "live.bilibili.com" + }, + "icon": "https://www.bilibili.com/favicon.ico", + "company": "杭州幻电科技有限公司" + }, + "哔哩哔哩API": { + "开放数据接口": { + "name": "哔哩哔哩开放数据接口(API)", + "categoryId": 24, + "url": { + "1": "api.bilibili.com" + }, + "icon": "https://www.bilibili.com/favicon.ico", + "company": "杭州幻电科技有限公司" + }, + "创作者数据中心": { + "name": "哔哩哔哩创作者数据中心", + "categoryId": 24, + "url": { + "1": "member.data.bilibili.com" + }, + "icon": "https://www.bilibili.com/favicon.ico", + "company": "杭州幻电科技有限公司" + }, + "个性化推荐数据接口": { + "name": "哔哩哔哩个性化推荐数据接口", + "categoryId": 24, + "url": { + "1": "recommend.data.bilibili.com" + }, + "icon": "https://www.bilibili.com/favicon.ico", + "company": "杭州幻电科技有限公司" + }, + "动态内容核心API": { + "name": "哔哩哔哩动态内容核心API", + "categoryId": 24, + "url": { + "1": "api.vc.bilibili.com" + }, + "icon": "https://www.bilibili.com/favicon.ico", + "company": "杭州幻电科技有限公司" + }, + "全局消息推送核心API": { + "name": "哔哩哔哩全局消息推送核心API", + "categoryId": 24, + "url": { + "1": "push-msg.bilibili.com" + }, + "icon": "https://www.bilibili.com/favicon.ico", + "company": "杭州幻电科技有限公司" + }, + "消息中心核心域名": { + "name": "哔哩哔哩消息中心核心", + "categoryId": 24, + "url": { + "1": "message.bilibili.com" + }, + "icon": "https://www.bilibili.com/favicon.ico", + "company": "杭州幻电科技有限公司" + }, + "全局广播与长连接核心域名": { + "name": "哔哩哔哩全局广播与长连接核心", + "categoryId": 24, + "url": { + "1": "broadcast.chat.bilibili.com" + }, + "icon": "https://www.bilibili.com/favicon.ico", + "company": "杭州幻电科技有限公司" + }, + "核心业务API域名": { + "name": "哔哩哔哩核心业务API", + "categoryId": 24, + "url": { + "1": "api.live.bilibili.com" + }, + "icon": "https://www.bilibili.com/favicon.ico", + "company": "杭州幻电科技有限公司" + }, + "账号认证与登录核心域名": { + "name": "哔哩哔哩账号认证与登录核心", + "categoryId": 24, + "url": { + "1": "passport.bilibili.com" + }, + "icon": "https://www.bilibili.com/favicon.ico", + "company": "杭州幻电科技有限公司" + }, + "核心数据服务": { + "name": "核心数据服务", + "categoryId": 24, + "url": { + "1": "data.bilibili.com" + }, + "icon": "https://www.bilibili.com/favicon.ico", + "company": "杭州幻电科技有限公司" + }, + "哔哩哔哩游戏用户行为与数据采集核心": { + "name": "哔哩哔哩游戏用户行为与数据采集核心", + "categoryId": 24, + "url": { + "1": "impression.biligame.com" + }, + "icon": "https://www.bilibili.com/favicon.ico", + "company": "杭州幻电科技有限公司" + }, + "company": "杭州幻电科技有限公司" + }, + "company": "上海宽娱数码科技有限公司" + }, + "政府网站": { + "国务院": { + "中华人民共和国中央人民政府": { + "name": "中华人民共和国中央人民政府", + "categoryId": 0, + "url": "https://www.gov.cn/", + "icon": "https://www.gov.cn/images/trs_favicon.ico" + }, + "外交部": { + "name": "外交部", + "categoryId": 14, + "url": "https://www.mfa.gov.cn/", + "icon": "https://www.mfa.gov.cn/favicon.ico" + }, + "国防部": { + "name": "国防部", + "categoryId": 14, + "url": "https://www.mod.gov.cn/", + "icon": "https://www.mod.gov.cn/favicon.ico" + }, + "国家发展和改革委员会": { + "name": "国家发展和改革委员会", + "categoryId": 14, + "url": "https://www.ndrc.gov.cn/", + "icon": "https://www.ndrc.gov.cn/favicon.ico" + }, + "教育部": { + "name": "教育部", + "categoryId": 14, + "url": "https://www.moe.gov.cn/", + "icon": "https://www.moe.gov.cn/favicon.ico" + }, + "科学技术部": { + "name": "科学技术部", + "categoryId": 14, + "url": "https://www.most.gov.cn/", + "icon": "https://www.most.gov.cn/favicon.ico" + }, + "工业和信息化部": { + "name": "工业和信息化部", + "categoryId": 14, + "url": "https://www.miit.gov.cn/", + "icon": "https://www.miit.gov.cn/favicon.ico" + }, + "国家民族事务委员会": { + "name": "国家民族事务委员会", + "categoryId": 14, + "url": "https://www.seac.gov.cn/", + "icon": "https://www.seac.gov.cn/favicon.ico" + }, + "公安部": { + "name": "公安部", + "categoryId": 14, + "url": "https://www.mps.gov.cn/", + "icon": "https://www.mps.gov.cn/favicon.ico" + }, + "民政部": { + "name": "民政部", + "categoryId": 14, + "url": "https://www.mca.gov.cn/", + "icon": "https://www.mca.gov.cn/favicon.ico" + }, + "司法部": { + "name": "司法部", + "categoryId": 14, + "url": "https://www.moj.gov.cn/", + "icon": "https://www.moj.gov.cn/favicon.ico" + }, + "财政部": { + "name": "财政部", + "categoryId": 14, + "url": "https://www.mof.gov.cn/", + "icon": "https://www.mof.gov.cn/favicon.ico" + }, + "人力资源和社会保障部": { + "name": "人力资源和社会保障部", + "categoryId": 14, + "url": "https://www.mohrss.gov.cn/", + "icon": "https://www.mohrss.gov.cn/favicon.ico" + }, + "自然资源部": { + "name": "自然资源部", + "categoryId": 14, + "url": "https://www.mnr.gov.cn/", + "icon": "https://www.mnr.gov.cn/favicon.ico" + }, + "生态环境部": { + "name": "生态环境部", + "categoryId": 14, + "url": "https://www.mee.gov.cn/", + "icon": "https://www.mee.gov.cn/favicon.ico" + }, + "住房和城乡建设部": { + "name": "住房和城乡建设部", + "categoryId": 14, + "url": "https://www.mohurd.gov.cn/", + "icon": "https://www.mohurd.gov.cn/favicon.ico" + }, + "交通运输部": { + "name": "交通运输部", + "categoryId": 14, + "url": "https://www.mot.gov.cn/", + "icon": "https://www.mot.gov.cn/favicon.ico" + }, + "水利部": { + "name": "水利部", + "categoryId": 14, + "url": "https://www.mwr.gov.cn/", + "icon": "https://www.mwr.gov.cn/favicon.ico" + }, + "农业农村部": { + "name": "农业农村部", + "categoryId": 14, + "url": "https://www.moa.gov.cn/", + "icon": "https://www.moa.gov.cn/favicon.ico" + }, + "商务部": { + "name": "商务部", + "categoryId": 14, + "url": "https://www.mofcom.gov.cn/", + "icon": "https://www.mofcom.gov.cn/favicon.ico" + }, + "文化和旅游部": { + "name": "文化和旅游部", + "categoryId": 14, + "url": "https://www.mct.gov.cn/", + "icon": "https://www.mct.gov.cn/favicon.ico" + }, + "国家卫生健康委员会": { + "name": "国家卫生健康委员会", + "categoryId": 14, + "url": "https://www.nhc.gov.cn/", + "icon": "https://www.nhc.gov.cn/favicon.ico" + }, + "退役军人事务部": { + "name": "退役军人事务部", + "categoryId": 14, + "url": "https://www.mva.gov.cn/", + "icon": "https://www.mva.gov.cn/favicon.ico" + }, + "应急管理部": { + "name": "应急管理部", + "categoryId": 14, + "url": "https://www.mem.gov.cn/", + "icon": "https://www.mem.gov.cn/favicon.ico" + }, + "中国人民银行": { + "name": "中国人民银行", + "categoryId": 14, + "url": "https://www.pbc.gov.cn/", + "icon": "https://www.pbc.gov.cn/favicon.ico" + }, + "审计署": { + "name": "审计署", + "categoryId": 14, + "url": "https://www.audit.gov.cn/", + "icon": "https://www.audit.gov.cn/favicon.ico" + }, + "国家航天局": { + "name": "国家航天局", + "categoryId": 14, + "url": "https://www.cnsa.gov.cn/", + "icon": "https://www.cnsa.gov.cn/favicon.ico" + }, + "国家原子能机构": { + "name": "国家原子能机构", + "categoryId": 14, + "url": "https://www.caea.gov.cn/", + "icon": "https://www.caea.gov.cn/favicon.ico" + }, + "国家乡村振兴局": { + "name": "国家乡村振兴局", + "categoryId": 14, + "url": "https://www.nrra.gov.cn/", + "icon": "https://www.nrra.gov.cn/favicon.ico" + }, + "国务院国有资产监督管理委员会": { + "name": "国务院国有资产监督管理委员会", + "categoryId": 14, + "url": "https://www.sasac.gov.cn/", + "icon": "https://www.sasac.gov.cn/favicon.ico" + }, + "海关总署": { + "name": "海关总署", + "categoryId": 14, + "url": "https://www.customs.gov.cn/", + "icon": "https://www.customs.gov.cn/favicon.ico" + }, + "国家税务总局": { + "name": "国家税务总局", + "categoryId": 14, + "url": "https://www.chinatax.gov.cn/", + "icon": "https://www.chinatax.gov.cn/favicon.ico" + }, + "国家市场监督管理总局": { + "name": "国家市场监督管理总局", + "categoryId": 14, + "url": "https://www.samr.gov.cn/", + "icon": "https://www.samr.gov.cn/favicon.ico" + }, + "国家金融监督管理总局": { + "name": "国家金融监督管理总局", + "categoryId": 14, + "url": "https://www.cbirc.gov.cn/", + "icon": "https://www.cbirc.gov.cn/favicon.ico" + }, + "中国证券监督管理委员会": { + "name": "中国证券监督管理委员会", + "categoryId": 14, + "url": "https://www.csrc.gov.cn/", + "icon": "https://www.csrc.gov.cn/favicon.ico" + }, + "国家广播电视总局": { + "name": "国家广播电视总局", + "categoryId": 14, + "url": "https://www.nrta.gov.cn/", + "icon": "https://www.nrta.gov.cn/favicon.ico" + }, + "国家体育总局": { + "name": "国家体育总局", + "categoryId": 14, + "url": "https://www.sport.gov.cn/", + "icon": "https://www.sport.gov.cn/favicon.ico" + }, + "国家信访局": { + "name": "国家信访局", + "categoryId": 14, + "url": "https://www.gjxfj.gov.cn/", + "icon": "https://www.gjxfj.gov.cn/favicon.ico" + }, + "国家统计局": { + "name": "国家统计局", + "categoryId": 14, + "url": "https://www.stats.gov.cn/", + "icon": "https://www.stats.gov.cn/favicon.ico" + }, + "国家知识产权局": { + "name": "国家知识产权局", + "categoryId": 14, + "url": "https://www.cnipa.gov.cn/", + "icon": "https://www.cnipa.gov.cn/favicon.ico" + }, + "国家国际发展合作署": { + "name": "国家国际发展合作署", + "categoryId": 14, + "url": "https://www.cidca.gov.cn/", + "icon": "https://www.cidca.gov.cn/favicon.ico" + }, + "国家医疗保障局": { + "name": "国家医疗保障局", + "categoryId": 14, + "url": "https://www.nhsa.gov.cn/", + "icon": "https://www.nhsa.gov.cn/favicon.ico" + }, + "国务院参事室": { + "name": "国务院参事室", + "categoryId": 14, + "url": "https://www.counsellor.gov.cn/", + "icon": "https://www.counsellor.gov.cn/favicon.ico" + }, + "国家机关事务管理局": { + "name": "国家机关事务管理局", + "categoryId": 14, + "url": "https://www.ggj.gov.cn/", + "icon": "https://www.ggj.gov.cn/favicon.ico" + }, + "国家认证认可监督管理委员会": { + "name": "国家认证认可监督管理委员会", + "categoryId": 14, + "url": "https://www.cnca.gov.cn/", + "icon": "https://www.cnca.gov.cn/favicon.ico" + }, + "国家标准化管理委员会": { + "name": "国家标准化管理委员会", + "categoryId": 14, + "url": "https://www.sac.gov.cn/", + "icon": "https://www.sac.gov.cn/favicon.ico" + }, + "国家新闻出版署": { + "name": "国家新闻出版署(国家版权局)", + "categoryId": 14, + "url": "https://www.nppa.gov.cn/", + "icon": "https://www.nppa.gov.cn/favicon.ico" + }, + "国家宗教事务局": { + "name": "国家宗教事务局", + "categoryId": 14, + "url": "https://www.sara.gov.cn/", + "icon": "https://www.sara.gov.cn/favicon.ico" + }, + "国务院侨务办公室": { + "name": "国务院侨务办公室", + "categoryId": 14, + "url": "https://www.gqb.gov.cn/", + "icon": "https://www.gqb.gov.cn/favicon.ico" + }, + "国务院港澳事务办公室": { + "name": "国务院港澳事务办公室", + "categoryId": 14, + "url": "https://www.hmo.gov.cn/", + "icon": "https://www.hmo.gov.cn/favicon.ico" + }, + "国务院台湾事务办公室": { + "name": "国务院台湾事务办公室", + "categoryId": 14, + "url": "https://www.gat.gov.cn/", + "icon": "https://www.gat.gov.cn/favicon.ico" + }, + "国家互联网信息办公室": { + "name": "国家互联网信息办公室", + "categoryId": 14, + "url": "https://www.cac.gov.cn/", + "icon": "https://www.cac.gov.cn/favicon.ico" + }, + "国务院新闻办公室": { + "name": "国务院新闻办公室", + "categoryId": 14, + "url": "https://www.scio.gov.cn/", + "icon": "https://www.scio.gov.cn/favicon.ico" + }, + "新华通讯社": { + "name": "新华通讯社", + "categoryId": 14, + "url": "https://www.xinhuanet.com/", + "icon": "https://www.xinhuanet.com/favicon.ico" + }, + "中国科学院": { + "name": "中国科学院", + "categoryId": 14, + "url": "https://www.cas.cn/", + "icon": "https://www.cas.cn/favicon.ico" + }, + "中国社会科学院": { + "name": "中国社会科学院", + "categoryId": 14, + "url": "https://www.cssn.cn/", + "icon": "https://www.cssn.cn/favicon.ico" + }, + "中国工程院": { + "name": "中国工程院", + "categoryId": 14, + "url": "https://www.cae.cn/", + "icon": "https://www.cae.cn/favicon.ico" + }, + "国务院发展研究中心": { + "name": "国务院发展研究中心", + "categoryId": 14, + "url": "https://www.drc.gov.cn/", + "icon": "https://www.drc.gov.cn/favicon.ico" + }, + "中央广播电视总台": { + "name": "中央广播电视总台", + "categoryId": 14, + "url": "https://www.cctv.com/", + "icon": "https://www.cctv.com/favicon.ico" + }, + "中国气象局": { + "name": "中国气象局", + "categoryId": 14, + "url": "https://www.cma.gov.cn/", + "icon": "https://www.cma.gov.cn/favicon.ico" + }, + "国家行政学院": { + "name": "国家行政学院", + "categoryId": 14, + "url": "https://www.nsa.gov.cn/", + "icon": "https://www.nsa.gov.cn/favicon.ico" + }, + "国家粮食和物资储备局": { + "name": "国家粮食和物资储备局", + "categoryId": 14, + "url": "https://www.lswz.gov.cn/", + "icon": "https://www.lswz.gov.cn/favicon.ico" + }, + "国家能源局": { + "name": "国家能源局", + "categoryId": 14, + "url": "https://www.nea.gov.cn/", + "icon": "https://www.nea.gov.cn/favicon.ico" + }, + "国家国防科技工业局": { + "name": "国家国防科技工业局", + "categoryId": 14, + "url": "https://www.sastind.gov.cn/", + "icon": "https://www.sastind.gov.cn/favicon.ico" + }, + "国家烟草专卖局": { + "name": "国家烟草专卖局", + "categoryId": 14, + "url": "https://www.tobacco.gov.cn/", + "icon": "https://www.tobacco.gov.cn/favicon.ico" + }, + "国家移民管理局": { + "name": "国家移民管理局", + "categoryId": 14, + "url": "https://www.nia.gov.cn/", + "icon": "https://www.nia.gov.cn/favicon.ico" + }, + "国家林业和草原局": { + "name": "国家林业和草原局", + "categoryId": 14, + "url": "https://www.forestry.gov.cn/", + "icon": "https://www.forestry.gov.cn/favicon.ico" + }, + "国家铁路局": { + "name": "国家铁路局", + "categoryId": 14, + "url": "https://www.nra.gov.cn/", + "icon": "https://www.nra.gov.cn/favicon.ico" + }, + "中国民用航空局": { + "name": "中国民用航空局", + "categoryId": 14, + "url": "https://www.caac.gov.cn/", + "icon": "https://www.caac.gov.cn/favicon.ico" + }, + "国家邮政局": { + "name": "国家邮政局", + "categoryId": 14, + "url": "https://www.spb.gov.cn/", + "icon": "https://www.spb.gov.cn/favicon.ico" + }, + "国家文物局": { + "name": "国家文物局", + "categoryId": 14, + "url": "https://www.ncha.gov.cn/", + "icon": "https://www.ncha.gov.cn/favicon.ico" + }, + "国家中医药管理局": { + "name": "国家中医药管理局", + "categoryId": 14, + "url": "https://www.natcm.gov.cn/", + "icon": "https://www.natcm.gov.cn/favicon.ico" + }, + "国家外汇管理局": { + "name": "国家外汇管理局", + "categoryId": 14, + "url": "https://www.safe.gov.cn/", + "icon": "https://www.safe.gov.cn/favicon.ico" + }, + "国家药品监督管理局": { + "name": "国家药品监督管理局", + "categoryId": 14, + "url": "https://www.nmpa.gov.cn/", + "icon": "https://www.nmpa.gov.cn/favicon.ico" + }, + "国家政务服务平台": { + "name": "国家政务服务平台", + "categoryId": 14, + "url": "https://gjzwfw.www.gov.cn/", + "icon": "https://gjzwfw.www.gov.cn/favicon.ico" + }, + "北京政务服务网": { + "name": "北京政务服务网", + "categoryId": 14, + "url": "http://banshi.beijing.gov.cn/", + "icon": "http://banshi.beijing.gov.cn/favicon.ico" + }, + "上海政务服务网": { + "name": "上海政务服务网", + "categoryId": 14, + "url": "http://zwdt.sh.gov.cn/govPortals/index.do", + "icon": "http://zwdt.sh.gov.cn/favicon.ico" + }, + "广东政务服务网": { + "name": "广东政务服务网", + "categoryId": 14, + "url": "http://www.gdzwfw.gov.cn", + "icon": "http://www.gdzwfw.gov.cn/favicon.ico" + }, + "深圳政务服务网": { + "name": "深圳政务服务网", + "categoryId": 14, + "url": "https://zwfw.sz.gov.cn/", + "icon": "https://zwfw.sz.gov.cn/favicon.ico" + }, + "浙江政务服务网": { + "name": "浙江政务服务网", + "categoryId": 14, + "url": "http://www.zjzwfw.gov.cn", + "icon": "http://www.zjzwfw.gov.cn/favicon.ico" + }, + "江苏政务服务网": { + "name": "江苏政务服务网", + "categoryId": 14, + "url": "http://www.jszwfw.gov.cn", + "icon": "http://www.jszwfw.gov.cn/favicon.ico" + }, + "四川政务服务网": { + "name": "四川政务服务网", + "categoryId": 14, + "url": "http://www.sczwfw.gov.cn", + "icon": "http://www.sczwfw.gov.cn/favicon.ico" + }, + "湖北政务服务网": { + "name": "湖北政务服务网", + "categoryId": 14, + "url": "http://zwfw.hubei.gov.cn", + "icon": "http://zwfw.hubei.gov.cn/favicon.ico" + }, + "湖南政务服务网": { + "name": "湖南政务服务网", + "categoryId": 14, + "url": "http://zwfw-new.hunan.gov.cn/", + "icon": "http://zwfw-new.hunan.gov.cn/favicon.ico" + }, + "山东政务服务网": { + "name": "山东政务服务网", + "categoryId": 14, + "url": "http://www.shandong.gov.cn/", + "icon": "http://www.shandong.gov.cn/favicon.ico" + }, + "河南政务服务网": { + "name": "河南政务服务网", + "categoryId": 14, + "url": "http://www.hnzwfw.gov.cn", + "icon": "http://www.hnzwfw.gov.cn/favicon.ico" + }, + "河北政务服务网": { + "name": "河北政务服务网", + "categoryId": 14, + "url": "http://www.hbzwfw.gov.cn/", + "icon": "http://www.hbzwfw.gov.cn/favicon.ico" + }, + "福建政务服务网": { + "name": "福建政务服务网", + "categoryId": 14, + "url": "http://zwfw.fujian.gov.cn", + "icon": "http://zwfw.fujian.gov.cn/favicon.ico" + }, + "安徽政务服务网": { + "name": "安徽政务服务网", + "categoryId": 14, + "url": "https://www.ahzwfw.gov.cn", + "icon": "https://www.ahzwfw.gov.cn/favicon.ico" + }, + "陕西政务服务网": { + "name": "陕西政务服务网", + "categoryId": 14, + "url": "https://zwfw.shaanxi.gov.cn/sx/public/index", + "icon": "https://zwfw.shaanxi.gov.cn/favicon.ico" + }, + "重庆政务服务网": { + "name": "重庆政务服务网", + "categoryId": 14, + "url": "http://zwykb.cq.gov.cn/", + "icon": "http://zwykb.cq.gov.cn/favicon.ico" + }, + "天津政务服务网": { + "name": "天津政务服务网", + "categoryId": 14, + "url": "https://zwfw.tj.gov.cn/", + "icon": "https://zwfw.tj.gov.cn/favicon.ico" + }, + "辽宁政务服务网": { + "name": "辽宁政务服务网", + "categoryId": 14, + "url": "http://www.lnzwfw.gov.cn", + "icon": "http://www.lnzwfw.gov.cn/favicon.ico" + }, + "吉林政务服务网": { + "name": "吉林政务服务网", + "categoryId": 14, + "url": "http://zwfw.jl.gov.cn/jlszwfw/", + "icon": "http://zwfw.jl.gov.cn/favicon.ico" + }, + "黑龙江政务服务网": { + "name": "黑龙江政务服务网", + "categoryId": 14, + "url": "http://zwfw.hlj.gov.cn/", + "icon": "http://zwfw.hlj.gov.cn/favicon.ico" + }, + "江西政务服务网": { + "name": "江西政务服务网", + "categoryId": 14, + "url": "http://www.jxzwfww.gov.cn/", + "icon": "http://www.jxzwfww.gov.cn/favicon.ico" + }, + "广西政务服务网": { + "name": "广西政务服务网", + "categoryId": 14, + "url": "http://zwfw.gxzf.gov.cn", + "icon": "http://zwfw.gxzf.gov.cn/favicon.ico" + }, + "海南政务服务网": { + "name": "海南政务服务网", + "categoryId": 14, + "url": "https://wssp.hainan.gov.cn/", + "icon": "https://wssp.hainan.gov.cn/favicon.ico" + }, + "贵州政务服务网": { + "name": "贵州政务服务网", + "categoryId": 14, + "url": "https://zwfw.guizhou.gov.cn/index.html", + "icon": "https://zwfw.guizhou.gov.cn/favicon.ico" + }, + "云南政务服务网": { + "name": "云南政务服务网", + "categoryId": 14, + "url": "https://zwfw.yn.gov.cn/portal/", + "icon": "https://zwfw.yn.gov.cn/favicon.ico" + }, + "西藏政务服务网": { + "name": "西藏政务服务网", + "categoryId": 14, + "url": "http://www.xzzwfw.gov.cn", + "icon": "http://www.xzzwfw.gov.cn/favicon.ico" + }, + "甘肃政务服务网": { + "name": "甘肃政务服务网", + "categoryId": 14, + "url": "https://zwfw.gansu.gov.cn/", + "icon": "https://zwfw.gansu.gov.cn/favicon.ico" + }, + "青海政务服务网": { + "name": "青海政务服务网", + "categoryId": 14, + "url": "https://www.qhzwfw.gov.cn/", + "icon": "https://www.qhzwfw.gov.cn/favicon.ico" + }, + "宁夏政务服务网": { + "name": "宁夏政务服务网", + "categoryId": 14, + "url": "http://zwfw.nx.gov.cn", + "icon": "http://zwfw.nx.gov.cn/favicon.ico" + }, + "新疆政务服务网": { + "name": "新疆政务服务网", + "categoryId": 14, + "url": "https://zwfw.xinjiang.gov.cn/", + "icon": "https://zwfw.xinjiang.gov.cn/favicon.ico" + }, + "内蒙古政务服务网": { + "name": "内蒙古政务服务网", + "categoryId": 14, + "url": "http://zwfw.nmg.gov.cn", + "icon": "http://zwfw.nmg.gov.cn/favicon.ico" + }, + "山西政务服务网": { + "name": "山西政务服务网", + "categoryId": 14, + "url": "https://www.sxzwfw.gov.cn/", + "icon": "https://www.sxzwfw.gov.cn/favicon.ico" + }, + "新疆生产建设兵团政务服务网": { + "name": "兵团政务服务网", + "categoryId": 14, + "url": "https://zwfw.xjbt.gov.cn/", + "icon": "https://zwfw.xjbt.gov.cn/favicon.ico" + }, + "香港特区政府一站通": { + "name": "香港特区政府一站通", + "categoryId": 14, + "url": "https://www.gov.hk/", + "icon": "https://www.gov.hk/favicon.ico" + }, + "澳门特区政府": { + "name": "澳门特区政府", + "categoryId": 14, + "url": "https://www.gov.mo/", + "icon": "https://www.gov.mo/favicon.ico" + }, + "台湾地区政府网站": { + "name": "台湾地区政府网站", + "categoryId": 14, + "url": "https://www.ey.gov.tw/", + "icon": "https://www.ey.gov.tw/favicon.ico" + }, + "国家政务服务平台网站": { + "name": "国家政务服务平台", + "categoryId": 14, + "url": "https://gjzwfw.www.gov.cn/", + "icon": "https://gjzwfw.www.gov.cn/favicon.ico" + } + }, + "company": "国务院办公厅" + }, + "优酷": { + "优酷": { + "name": "优酷视频", + "categoryId": 8, + "url": "https://www.youku.com/", + "icon": "https://www.youku.com/favicon.ico" + }, + "统一数据采集域名": { + "name": "优酷客户端统一数据采集", + "categoryId": 8, + "url": { + "1": "pcapp-data.youku.com", + "2": "data.youku.com", + "3": "pcapp-data-collect.youku.com" + }, + "icon": "https://www.youku.com/favicon.ico" + }, + "company": "优酷信息技术(北京)有限公司" + }, + "Steam": { + "Steam商店官网": { + "name": "Steam商店官网", + "categoryId": 26, + "url": "store.steampowered.com", + "icon": "https://store.steampowered.com/favicon.ico" + }, + "Steam全球官网": { + "name": "Steam全球官网", + "categoryId": 26, + "url": "www.steampowered.com", + "icon": "https://www.steampowered.com/favicon.ico" + }, + "Steam中国官网": { + "name": "Steam中国官网", + "categoryId": 26, + "url": "store.steamchina.com", + "icon": "https://store.steamchina.com/favicon.ico" + }, + "Steam社区平台": { + "name": "Steam社区平台", + "categoryId": 11, + "url": "steamcommunity.com", + "icon": "https://steamcommunity.com/favicon.ico" + }, + "Steam内容分发CDN": { + "name": "Steam内容分发CDN", + "categoryId": 2, + "url": "steamcontent.com", + "icon": "https://store.steampowered.com/favicon.ico" + }, + "Steam静态资源CDN": { + "name": "Steam静态资源CDN", + "categoryId": 2, + "url": "steamstatic.com", + "icon": "https://store.steampowered.com/favicon.ico" + }, + "Steam用户内容存储": { + "name": "Steam用户内容存储", + "categoryId": 21, + "url": "steamusercontent.com", + "icon": "https://steamcommunity.com/favicon.ico" + }, + "Steam游戏服务域名": { + "name": "Steam游戏服务域名", + "categoryId": 22, + "url": "steamgames.com", + "icon": "https://store.steampowered.com/favicon.ico" + }, + "Steam P2P节点发现服务器": { + "name": "Steam P2P节点发现服务器/游戏联机P2P连接路由服务", + "categoryId": 2, + "url": "discovery.steamserver.net", + "icon": "https://store.steampowered.com/favicon.ico" + }, + "Steam客服帮助中心": { + "name": "Steam客服帮助中心", + "categoryId": 6, + "url": "help.steampowered.com", + "icon": "https://help.steampowered.com/favicon.ico" + }, + "Steam账号认证中心": { + "name": "Steam账号认证中心", + "categoryId": 0, + "url": "account.steampowered.com", + "icon": "https://account.steampowered.com/favicon.ico" + }, + "Steam支付平台": { + "name": "Steam支付平台", + "categoryId": 23, + "url": "payment.steampowered.com", + "icon": "https://store.steampowered.com/favicon.ico" + }, + "Steam云存档服务": { + "name": "Steam云存档服务", + "categoryId": 20, + "url": "cloud.steampowered.com", + "icon": "https://store.steampowered.com/favicon.ico" + }, + "Steam开发者API平台": { + "name": "Steam开发者API平台", + "categoryId": 24, + "url": "api.steampowered.com", + "icon": "https://store.steampowered.com/favicon.ico" + }, + "Steam短链接跳转域名": { + "name": "Steam短链接跳转域名", + "categoryId": 6, + "url": "s.team", + "icon": "https://store.steampowered.com/favicon.ico" + }, + "Steam发现与信令协调服务": { + "name": "Steam发现与信令协调服务", + "categoryId": 25, + "url": "discovery.steamserver.net", + "icon": "https://store.steampowered.com/favicon.ico" + }, + "company": "Valve Corporation" + }, + "搜狗": { + "搜狗搜索": { + "name": "搜狗搜索", + "categoryId": 0, + "url": "www.sogou.com", + "icon": "https://www.sogou.com/favicon.ico" + }, + "云端配置同步与策略下发服务": { + "name": "云端配置同步与策略下发服务", + "categoryId": 22, + "url": "config.pinyin.sogou.com", + "icon": "https://www.sogou.com/favicon.ico" + }, + "信息发布与版本 / 词库更新服务": { + "name": "信息发布与版本 / 词库更新服务", + "categoryId": 22, + "url": "info.pinyin.sogou.com", + "icon": "https://www.sogou.com/favicon.ico" + }, + "网络连通性检测服务": { + "name": "网络连通性检测服务", + "categoryId": 22, + "url": "ping.pinyin.sogou.com", + "icon": "https://pinyin.sogou.com/favicon.ico" + }, + "账号个人信息与用户画像管理服务": { + "name": "账号个人信息与用户画像管理服务", + "categoryId": 22, + "url": { + "1": "profile.pinyin.sogou.com", + "2": "pc.profile.pinyin.sogou.com" + }, + "icon": "https://pinyin.sogou.com/favicon.ico" + }, + "company": "搜狗科技有限公司" + }, + "天星金融": { + "天星金融风控传感器服务": { + "name": "天星金融风控传感器服务", + "categoryId": 23, + "url": "sensor.jr.airstarfinance.net", + "icon": "https://lf3-appstore-sign.bytedance.net/obj/rc-client-assets/favicon.ico" + }, + "company": "天星金融" + }, + "InfoQ": { + "InfoQ 全球站": { + "name": "InfoQ 全球站", + "categoryId": 3, + "url": "https://www.infoq.com", + "icon": "https://static001.infoq.cn/static/infoq/www/img/share-default-5tgbiuhgfefgujjhg.png" + }, + "InfoQ 中文站": { + "name": "InfoQ 中文站", + "categoryId": 3, + "url": "https://www.infoq.cn", + "icon": "https://static001.infoq.cn/static/infoq/www/img/share-default-5tgbiuhgfefgujjhg.png" + }, + "InfoQ 中文站备用域名": { + "name": "InfoQ 中文站备用域名", + "categoryId": 3, + "url": "https://www.infoq.com.cn", + "icon": "https://static001.infoq.cn/static/infoq/www/img/share-default-5tgbiuhgfefgujjhg.png" + }, + "InfoQ 中文站静态资源 CDN 服务": { + "name": "InfoQ 中文站静态资源 CDN 服务", + "categoryId": 12, + "url": "https://static001.infoq.cn", + "icon": "https://static001.infoq.cn/static/infoq/www/img/share-default-5tgbiuhgfefgujjhg.png" + }, + "company": "极客邦控股(北京)有限公司" + }, + "51CTO": { + "51CTO 中文站": { + "name": "51CTO 中文站", + "categoryId": 3, + "url": "https://www.51cto.com", + "icon": "https://www.51cto.com/favicon.ico" + }, + "51CTO 全站搜索服务": { + "name": "51CTO 全站搜索服务", + "categoryId": 13, + "url": "https://sc.51cto.com", + "icon": "https://www.51cto.com/favicon.ico" + }, + "51CTO 云计算频道": { + "name": "51CTO 云计算频道", + "categoryId": 10, + "url": "https://cloud.51cto.com", + "icon": "https://www.51cto.com/favicon.ico" + }, + "51CTO 数据库频道": { + "name": "51CTO 数据库频道", + "categoryId": 11, + "url": "https://database.51cto.com", + "icon": "https://www.51cto.com/favicon.ico" + }, + "51CTO 认证考试": { + "name": "51CTO 认证考试", + "categoryId": 22, + "url": "https://exam.51cto.com", + "icon": "https://www.51cto.com/favicon.ico" + }, + "51CTO 学院": { + "name": "51CTO 学院", + "categoryId": 22, + "url": "https://edu.51cto.com", + "icon": "https://www.51cto.com/favicon.ico" + }, + "51CTO 专题活动": { + "name": "51CTO 专题活动", + "categoryId": 3, + "url": "https://special.51cto.com", + "icon": "https://www.51cto.com/favicon.ico" + }, + "51CTO 专家博客": { + "name": "51CTO 专家博客", + "categoryId": 3, + "url": "https://blog.51cto.com", + "icon": "https://www.51cto.com/favicon.ico" + }, + "51CTO 服务器频道": { + "name": "51CTO 服务器频道", + "categoryId": 10, + "url": "https://server.51cto.com", + "icon": "https://www.51cto.com/favicon.ico" + }, + "51CTO 其他业务": { + "name": "51CTO 其他业务", + "categoryId": 3, + "url": "https://other.51cto.com", + "icon": "https://www.51cto.com/favicon.ico" + }, + "51CTO 精品班": { + "name": "51CTO 精品班", + "categoryId": 23, + "url": "https://e.51cto.com/", + "icon": "https://www.51cto.com/favicon.ico" + }, + "51CTO API 服务": { + "name": "51CTO API 服务", + "categoryId": 17, + "url": "https://apie.51cto.com", + "icon": "https://www.51cto.com/favicon.ico" + }, + "51CTO CDN": { + "name": "51CTO静态资源CDN", + "categoryId": 2, + "url": { + "1": "51ctocdn.cn", + "2": "51cto.com" + }, + "icon": "https://www.51cto.com/favicon.ico" + }, + "company": "北京无忧创想信息技术有限公司" + }, + "知乎": { + "知乎主站": { + "name": "知乎主站", + "categoryId": 1, + "url": "https://www.zhihu.com", + "icon": "https://static.zhihu.com/heifetz/favicon.ico" + }, + "知乎移动端H5": { + "name": "知乎移动端H5", + "categoryId": 1, + "url": "https://m.zhihu.com", + "icon": "https://static.zhihu.com/heifetz/favicon.ico" + }, + "知乎学术版": { + "name": "知乎学术版", + "categoryId": 1, + "url": "https://www.zhihu.com/academic", + "icon": "https://static.zhihu.com/heifetz/favicon.ico" + }, + "知乎公共API": { + "name": "知乎公共API", + "categoryId": 1, + "url": "https://api.zhihu.com", + "icon": "https://static.zhihu.com/heifetz/favicon.ico" + }, + "知乎日报API": { + "name": "知乎日报API", + "categoryId": 11, + "url": "https://news-at.zhihu.com", + "icon": "https://static.zhihu.com/heifetz/favicon.ico" + }, + "知乎内容流API": { + "name": "知乎内容流API", + "categoryId": 11, + "url": "https://api.zhihu.com/feed", + "icon": "https://static.zhihu.com/heifetz/favicon.ico" + }, + "知乎数据中心API": { + "name": "知乎数据中心API", + "categoryId": 11, + "url": "https://datahub.zhihu.com", + "icon": "https://static.zhihu.com/heifetz/favicon.ico" + }, + "知乎搜索API": { + "name": "知乎搜索API", + "categoryId": 11, + "url": "https://api.zhihu.com/search", + "icon": "https://static.zhihu.com/heifetz/favicon.ico" + }, + "知乎广告API": { + "name": "知乎广告API", + "categoryId": 11, + "url": "https://api.ad.zhihu.com", + "icon": "https://static.zhihu.com/heifetz/favicon.ico" + }, + "知乎静态资源CDN": { + "name": "知乎静态资源CDN", + "categoryId": 12, + "url": "https://static.zhihu.com", + "icon": "https://static.zhihu.com/heifetz/favicon.ico" + }, + "知乎图片CDN": { + "name": "知乎图片CDN", + "categoryId": 2, + "url": "https://zhimg.com", + "icon": "https://static.zhihu.com/heifetz/favicon.ico" + }, + "知乎高清图片CDN": { + "name": "知乎高清图片CDN", + "categoryId": 12, + "url": "https://pica.zhimg.com", + "icon": "https://static.zhihu.com/heifetz/favicon.ico" + }, + "知乎npm包CDN": { + "name": "知乎npm包CDN", + "categoryId": 12, + "url": "https://unpkg.zhihu.com", + "icon": "https://static.zhihu.com/heifetz/favicon.ico" + }, + "知乎专栏": { + "name": "知乎专栏", + "categoryId": 3, + "url": "https://zhuanlan.zhihu.com", + "icon": "https://static.zhihu.com/heifetz/favicon.ico" + }, + "知乎创作者平台": { + "name": "知乎创作者平台", + "categoryId": 3, + "url": "https://creator.zhihu.com", + "icon": "https://static.zhihu.com/heifetz/favicon.ico" + }, + "知乎学堂": { + "name": "知乎学堂", + "categoryId": 9, + "url": "https://zhixuetang.zhihu.com", + "icon": "https://static.zhihu.com/heifetz/favicon.ico" + }, + "知乎账号认证": { + "name": "知乎账号认证", + "categoryId": 23, + "url": "https://passport.zhihu.com", + "icon": "https://static.zhihu.com/heifetz/favicon.ico" + }, + "知乎Live直播": { + "name": "知乎Live直播", + "categoryId": 5, + "url": "https://live.zhihu.com", + "icon": "https://static.zhihu.com/heifetz/favicon.ico" + }, + "知乎好物电商": { + "name": "知乎好物电商", + "categoryId": 10, + "url": "https://market.zhihu.com", + "icon": "https://static.zhihu.com/heifetz/favicon.ico" + }, + "知乎广告平台": { + "name": "知乎广告平台", + "categoryId": 11, + "url": "https://ad.zhihu.com", + "icon": "https://static.zhihu.com/heifetz/favicon.ico" + }, + "知乎用户品牌保护": { + "name": "知乎用户品牌保护", + "categoryId": 25, + "url": "https://zhihuer.com", + "icon": "https://static.zhihu.com/heifetz/favicon.ico" + }, + "知乎创作者品牌保护": { + "name": "知乎创作者品牌保护", + "categoryId": 25, + "url": "https://zhihuzhe.com", + "icon": "https://static.zhihu.com/heifetz/favicon.ico" + }, + "知乎Web端MQTT实时消息网关": { + "name": "知乎Web端MQTT实时消息网关", + "categoryId": 18, + "url": "mqtt-web.zhihu.com", + "icon": "https://static.zhihu.com/heifetz/favicon.ico" + }, + "知乎网页端数据分析服务": { + "name": "知乎网页端数据分析服务", + "categoryId": 23, + "url": "zhihu-web-analytics.zhihu.com", + "icon": "https://static.zhihu.com/heifetz/favicon.ico" + }, + "知乎静态资源备用服务": { + "name": "知乎静态资源备用服务", + "categoryId": 25, + "url": "sugar.zhihu.com", + "icon": "https://static.zhihu.com/heifetz/favicon.ico" + }, + "知乎应用崩溃日志收集服务": { + "name": "知乎应用崩溃日志收集服务", + "categoryId": 24, + "url": "crash2.zhihu.com", + "icon": "https://static.zhihu.com/heifetz/favicon.ico" + }, + "知乎验证码服务": { + "name": "知乎验证码服务", + "categoryId": 22, + "url": "captcha.zhihu.com", + "icon": "https://static.zhihu.com/heifetz/favicon.ico" + }, + "知乎应用性能管理服务": { + "name": "知乎应用性能管理服务", + "categoryId": 26, + "url": "apm.zhihu.com", + "icon": "https://static.zhihu.com/heifetz/favicon.ico" + }, + "company": "北京春田知韵科技有限公司" + }, + "epicgames": { + "游戏商店": { + "name": "Epic游戏商店", + "categoryId": 26, + "url": "store.epicgames.com", + "icon": "https://static-assets-prod.epicgames.com/epic-store/static/favicon.ico" + }, + "EpicGames": { + "name": "Epic Games官网", + "categoryId": 26, + "url": "www.epicgames.com", + "icon": "https://static-assets-prod.epicgames.com/epic-store/static/favicon.ico" + }, + "Epic Games用户行为跟踪服务": { + "name": "Epic Games用户行为跟踪服务", + "categoryId": 25, + "url": "tracker.epicgames.com", + "icon": "https://static-assets-prod.epicgames.com/epic-store/static/favicon.ico" + }, + "Epic CDN": { + "name": "Epic CDN", + "categoryId": 2, + "url": { + "1": "cdn1.epicgames.com", + "2": "cdn2.epicgames.com", + "3": "cdn.epicgames.com" + }, + "icon": "https://static-assets-prod.epicgames.com/epic-store/static/favicon.ico" + }, + "Epic商店静态后端IPv4 API": { + "name": "Epic商店静态后端IPv4 API", + "categoryId": 27, + "url": "store-site-backend-static-ipv4.ak.epicgames.com", + "icon": "https://static-assets-prod.epicgames.com/epic-store/static/favicon.ico" + }, + "Epic Games生产环境静态资源服务器": { + "name": "Epic Games生产环境静态资源服务器", + "categoryId": 27, + "url": "static-assets-prod.epicgames.com", + "icon": "https://static-assets-prod.epicgames.com/epic-store/static/favicon.ico" + }, + "Epic ECOSEC Nelly安全服务(Cloudflare防护)": { + "name": "Epic ECOSEC Nelly安全服务(Cloudflare防护)", + "categoryId": 21, + "url": "nelly-service-prod-cloudflare.ecosec.on.epicgames.com", + "icon": "https://www.epicgames.com/favicon.ico" + }, + "Epic启动器公共服务(Cloudflare加速)": { + "name": "Epic启动器公共服务(Cloudflare加速)", + "categoryId": 19, + "url": "launcher-public-service-prod-cloudflare.ol.epicgames.com", + "icon": "https://www.epicgames.com/favicon.ico" + }, + "Epic CDN Cloudflare专属节点": { + "name": "Epic CDN Cloudflare专属节点", + "categoryId": 18, + "url": "cloudflare.epicgamescdn.com", + "icon": "https://www.epicgames.com/favicon.ico" + }, + "Epic账号服务接口": { + "name": "Epic账号服务接口/账号验证与登录核心API", + "categoryId": 24, + "url": "account-public-service-prod03.ol.epicgames.com", + "icon": "https://www.epicgames.com/favicon.ico" + }, + "Epic启动器排队服务接口": { + "name": "Epic启动器排队服务接口/启动器排队限流API", + "categoryId": 24, + "url": "launcherwaitingroom-public-service-prod06.ol.epicgames.com", + "icon": "https://www.epicgames.com/favicon.ico" + }, + "Epic启动器核心服务接口": { + "name": "Epic启动器核心服务接口/启动器运行相关API", + "categoryId": 24, + "url": "launcher-public-service-prod06.ol.epicgames.com", + "icon": "https://www.epicgames.com/favicon.ico" + }, + "EpicGames官方网站": { + "name": "EpicGames官方网站/Epic主站及品牌展示", + "categoryId": 26, + "url": "www.epicgames.com", + "icon": "https://www.epicgames.com/favicon.ico" + }, + "Epic启动器官网服务": { + "name": "Epic启动器官网服务/启动器网页端入口", + "categoryId": 26, + "url": "launcher-website-prod07.ol.epicgames.com", + "icon": "https://www.epicgames.com/favicon.ico" + }, + "Epic用户行为跟踪": { + "name": "Epic用户行为跟踪/用户操作数据统计分析", + "categoryId": 27, + "url": "tracking.epicgames.com", + "icon": "https://www.epicgames.com/favicon.ico" + }, + "Epic启动器账号登录页": { + "name": "Epic启动器账号登录页/启动器端账号验证入口", + "categoryId": 26, + "url": "accounts.launcher-website-prod07.ol.epicgames.com", + "icon": "https://www.epicgames.com/favicon.ico" + }, + "Epic账号中心": { + "name": "Epic账号中心/账号信息管理与安全验证", + "categoryId": 26, + "url": "accounts.epicgames.com", + "icon": "https://www.epicgames.com/favicon.ico" + }, + "虚幻引擎CDN节点1": { + "name": "虚幻引擎CDN节点1/虚幻引擎资源分发加速", + "categoryId": 2, + "url": "cdn1.unrealengine.com", + "icon": "https://www.unrealengine.com/favicon.ico" + }, + "虚幻引擎CDN节点2": { + "name": "虚幻引擎CDN节点2/虚幻引擎资源分发加速", + "categoryId": 2, + "url": "cdn2.unrealengine.com", + "icon": "https://www.unrealengine.com/favicon.ico" + }, + "Epic数据路由分发": { + "name": "Epic数据路由分发/业务数据中转与统计上报", + "categoryId": 27, + "url": "datarouter.ol.epicgames.com", + "icon": "https://www.epicgames.com/favicon.ico" + }, + "Epic授权服务接口": { + "name": "Epic授权服务接口/游戏权限与授权验证API", + "categoryId": 24, + "url": "entitlement-public-service-prod08.ol.epicgames.com", + "icon": "https://www.epicgames.com/favicon.ico" + }, + "Epic订单处理接口": { + "name": "Epic订单处理接口/商城订单支付结算API", + "categoryId": 24, + "url": "orderprocessor-public-service-ecomprod01.ol.epicgames.com", + "icon": "https://www.epicgames.com/favicon.ico" + }, + "Epic游戏库服务接口": { + "name": "Epic游戏库服务接口/游戏商城目录查询API", + "categoryId": 24, + "url": "catalog-public-service-prod06.ol.epicgames.com", + "icon": "https://www.epicgames.com/favicon.ico" + }, + "Epic好友服务接口": { + "name": "Epic好友服务接口/好友列表及联机状态API", + "categoryId": 24, + "url": "friends-public-service-prod06.ol.epicgames.com", + "icon": "https://www.epicgames.com/favicon.ico" + }, + "Epic服务器状态接口": { + "name": "Epic服务器状态接口/游戏及服务运行状态API", + "categoryId": 24, + "url": "lightswitch-public-service-prod06.ol.epicgames.com", + "icon": "https://www.epicgames.com/favicon.ico" + }, + "Epic账号门户": { + "name": "Epic账号门户/账号相关服务网页入口", + "categoryId": 26, + "url": "accountportal-website-prod07.ol.epicgames.com", + "icon": "https://www.epicgames.com/favicon.ico" + }, + "Epic虚幻竞技场服务接口": { + "name": "Epic虚幻竞技场服务接口/UT游戏专属API", + "categoryId": 24, + "url": "ut-public-service-prod10.ol.epicgames.com", + "icon": "https://www.epicgames.com/favicon.ico" + }, + "Epic游戏下载节点1": { + "name": "Epic游戏下载节点1/游戏安装包主下载地址", + "categoryId": 26, + "url": "download.epicgames.com", + "icon": "https://www.epicgames.com/favicon.ico" + }, + "Epic游戏下载节点2": { + "name": "Epic游戏下载节点2/游戏安装包备用下载地址", + "categoryId": 26, + "url": "download2.epicgames.com", + "icon": "https://www.epicgames.com/favicon.ico" + }, + "Epic游戏下载节点3": { + "name": "Epic游戏下载节点3/游戏安装包备用下载地址", + "categoryId": 26, + "url": "download3.epicgames.com", + "icon": "https://www.epicgames.com/favicon.ico" + }, + "Epic游戏下载节点4": { + "name": "Epic游戏下载节点4/游戏安装包备用下载地址", + "categoryId": 26, + "url": "download4.epicgames.com", + "icon": "https://www.epicgames.com/favicon.ico" + }, + "Epic静态资源存储": { + "name": "Epic静态资源存储/网页及游戏静态文件分发", + "categoryId": 2, + "url": "static-assets-prod.epicgames.com", + "icon": "https://www.epicgames.com/favicon.ico" + }, + "Epic商城后端静态资源": { + "name": "Epic商城后端静态资源/商城页面静态文件加速", + "categoryId": 2, + "url": "store-site-backend-static.ak.epicgames.com", + "icon": "https://www.epicgames.com/favicon.ico" + }, + "Epic商城内容分发": { + "name": "Epic商城内容分发/商城商品图片及素材加速", + "categoryId": 2, + "url": "store-content.ak.epicgames.com", + "icon": "https://www.epicgames.com/favicon.ico" + }, + "Epic游戏库存储服务": { + "name": "Epic游戏库存储服务/用户游戏库数据云端存储", + "categoryId": 21, + "url": "library-service.live.use1a.on.epicgames.com", + "icon": "https://www.epicgames.com/favicon.ico" + }, + "Epic数据存储服务": { + "name": "Epic数据存储服务/业务数据及用户文件云端存储", + "categoryId": 21, + "url": "datastorage-public-service-liveegs.live.use1a.on.epicgames.com", + "icon": "https://www.epicgames.com/favicon.ico" + }, + "Epic Fastly下载加速": { + "name": "Epic Fastly下载加速/FastlyCDN游戏下载节点", + "categoryId": 2, + "url": "fastly-download.epicgames.com", + "icon": "https://www.epicgames.com/favicon.ico" + }, + "Epic游戏商城": { + "name": "Epic游戏商城/游戏购买及领取主页面", + "categoryId": 26, + "url": "store.epicgames.com", + "icon": "https://www.epicgames.com/favicon.ico" + }, + "Epic启动器商城入口": { + "name": "Epic启动器商城入口/启动器端商城访问地址", + "categoryId": 26, + "url": "launcher.store.epicgames.com", + "icon": "https://www.epicgames.com/favicon.ico" + }, + "company": "Epic Games, Inc" + }, + "Cloudflare": { + "Cloudflare官网": { + "name": "Cloudflare", + "categoryId": 25, + "url": { + "1": "www.cloudflare.net", + "2": "www.cloudflare.com", + "3": "cloudflare.com", + "4": "cloudflare.net" + }, + "icon": "https://www.cloudflare.com/favicon.ico" + }, + "Cloudflare DNS": { + "name": "Cloudflare DNS", + "categoryId": 25, + "url": { + "1": "dns1.cloudflare.com", + "2": "dns2.cloudflare.com" + }, + "icon": "https://www.cloudflare.com/favicon.ico" + }, + "Cloudflare权威DNS服务器": { + "name": "Cloudflare权威DNS服务器", + "categoryId": 2, + "url": "ns.cloudflare.com", + "icon": "https://www.cloudflare.com/favicon.ico" + }, + "Cloudflare Workers平台": { + "name": "Cloudflare Workers平台", + "categoryId": 22, + "url": "workers.cloudflare.com", + "icon": "https://www.cloudflare.com/favicon.ico" + }, + "Cloudflare Pages托管服务": { + "name": "Cloudflare Pages托管服务", + "categoryId": 18, + "url": "pages.cloudflare.com", + "icon": "https://www.cloudflare.com/favicon.ico" + }, + "Cloudflare管理API": { + "name": "Cloudflare管理API", + "categoryId": 22, + "url": "api.cloudflare.com", + "icon": "https://www.cloudflare.com/favicon.ico" + }, + "Cloudflare One零信任平台": { + "name": "Cloudflare One零信任平台", + "categoryId": 21, + "url": "one.cloudflare.com", + "icon": "https://www.cloudflare.com/favicon.ico" + }, + "Cloudflare for Teams服务": { + "name": "Cloudflare for Teams服务", + "categoryId": 21, + "url": "teams.cloudflare.com", + "icon": "https://www.cloudflare.com/favicon.ico" + }, + "Cloudflare网络雷达": { + "name": "Cloudflare网络雷达", + "categoryId": 25, + "url": "radar.cloudflare.com", + "icon": "https://www.cloudflare.com/favicon.ico" + }, + "Cloudflare辅助DNS服务": { + "name": "Cloudflare辅助DNS服务", + "categoryId": 17, + "url": "secondary.cloudflare.com", + "icon": "https://www.cloudflare.com/favicon.ico" + }, + "Cloudflare Workers预览域": { + "name": "Cloudflare Workers预览域", + "categoryId": 22, + "url": "workers.dev", + "icon": "https://www.cloudflare.com/favicon.ico" + }, + "Cloudflare官网运营技术支持服务": { + "name": "Cloudflare官网运营技术支持服务", + "categoryId": 23, + "url": "ot.www.cloudflare.com", + "icon": "https://www.cloudflare.com/favicon.ico" + }, + "Cloudflare安全挑战服务": { + "name": "Cloudflare安全挑战服务", + "categoryId": 21, + "url": "challenges.cloudflare.com", + "icon": "https://www.cloudflare.com/favicon.ico" + }, + "company": "Cloudflare, Inc" + }, + "hcaptcha": { + "hCaptcha主站与管理平台": { + "name": "hCaptcha主站与管理平台", + "categoryId": 21, + "url": "hcaptcha.com", + "icon": "https://www.hcaptcha.com/images/64da82f6bf67de1b1278925f_hcaptcha-logo-hand.png" + }, + "hCaptcha核心验证API服务": { + "name": "hCaptcha核心验证API服务", + "categoryId": 21, + "url": "api.hcaptcha.com", + "icon": "https://www.hcaptcha.com/images/64da82f6bf67de1b1278925f_hcaptcha-logo-hand.png" + }, + "hCaptcha JavaScript API服务": { + "name": "hCaptcha JavaScript API服务", + "categoryId": 21, + "url": "js.hcaptcha.com", + "icon": "https://www.hcaptcha.com/favicon.ico" + }, + "hCaptcha静态资源CDN": { + "name": "hCaptcha静态资源CDN", + "categoryId": 18, + "url": "newassets.hcaptcha.com", + "icon": "https://www.hcaptcha.com/favicon.ico" + }, + "hCaptcha挑战页面服务": { + "name": "hCaptcha挑战页面服务", + "categoryId": 21, + "url": "challenges.hcaptcha.com", + "icon": "https://www.hcaptcha.com/favicon.ico" + }, + "hCaptcha验证图片资源库": { + "name": "hCaptcha验证图片资源库", + "categoryId": 18, + "url": "imgs.hcaptcha.com", + "icon": "https://www.hcaptcha.com/favicon.ico" + }, + "hCaptcha管理控制台": { + "name": "hCaptcha管理控制台", + "categoryId": 21, + "url": "dashboard.hcaptcha.com", + "icon": "https://www.hcaptcha.com/favicon.ico" + }, + "hCaptcha开发者文档中心": { + "name": "hCaptcha开发者文档中心", + "categoryId": 21, + "url": "docs.hcaptcha.com", + "icon": "https://www.hcaptcha.com/favicon.ico" + }, + "company": "Intuition Machines, Inc." + }, + "unpkg": { + "Unpkg前端公共CDN": { + "name": "Unpkg前端公共CDN/全球NPM包静态资源极速分发加速", + "categoryId": 2, + "url": "unpkg.com", + "icon": "https://unpkg.com/favicon.jpg" + }, + "Unpkg北美节点CDN": { + "name": "Unpkg北美节点CDN/海外NPM包资源分发加速", + "categoryId": 2, + "url": "unpkg-cdn.com", + "icon": "https://unpkg.com/favicon.jpg" + }, + "Unpkg国内加速节点": { + "name": "Unpkg国内加速节点/大陆地区NPM包资源极速访问", + "categoryId": 2, + "url": "unpkg.zhimg.com", + "icon": "https://unpkg.com/favicon.jpg" + }, + "Unpkg官方子域CDN": { + "name": "Unpkg官方子域CDN/静态资源分流加速节点", + "categoryId": 2, + "url": "cdn.unpkg.com", + "icon": "https://unpkg.com/favicon.ico" + } + }, + "UserCSS前端资源分享平台": { + "name": "UserCSS前端资源分享平台/免费纯CSS UI组件与特效模板库", + "categoryId": 1, + "url": { + "1": "www.userscss.top", + "2": "userscss.top", + "icon": "#" + }, + "company": "未知/个人" + } + } +} \ No newline at end of file diff --git a/static/domain-info/tracker/trackers.json b/static/domain-info/tracker/trackers.json new file mode 100644 index 0000000..9c80c7e --- /dev/null +++ b/static/domain-info/tracker/trackers.json @@ -0,0 +1,25347 @@ +{ + "timeUpdated": "2025-03-17T10:05:02.622Z", + "categories": { + "0": "音视频播放", + "1": "comments", + "2": "客户互动", + "3": "色情广告", + "4": "广告", + "5": "基本需求广告", + "6": "网站分析", + "7": "社交媒体", + "8": "混合内容", + "9": "CDN", + "10": "hosting", + "11": "未知的", + "12": "扩展广告", + "13": "邮件", + "14": "consent", + "15": "遥测", + "16": "", + "101": "移动分析" + }, + + "trackers": { + "163": { + "name": "163", + "categoryId": 4, + "url": "http://www.163.com/", + "companyId": "163" + }, + "miui.com":{ + "name": "MIUI", + "categoryId": 101, + "url": "http://tracking.miui.com", + "companyId": "miui" + }, + "1000mercis": { + "name": "1000mercis", + "categoryId": 6, + "url": "http://www.1000mercis.com/", + "companyId": "1000mercis" + }, + "161media": { + "name": "Platform161", + "categoryId": 4, + "url": "https://platform161.com/", + "companyId": "platform161" + }, + "1822direkt.de": { + "name": "1822direkt.de", + "categoryId": 8, + "url": "https://www.1822direkt.de/", + "companyId": "1822direkt", + "source": "AdGuard" + }, + "1dmp.io": { + "name": "1DMP", + "categoryId": 4, + "url": "https://1dmp.io/", + "companyId": "1dmp" + }, + "1plusx": { + "name": "1plusX", + "categoryId": 6, + "url": "https://www.1plusx.com/", + "companyId": "1plusx" + }, + "1sponsor": { + "name": "1sponsor", + "categoryId": 4, + "url": "http://fr.1sponsor.com/", + "companyId": "1sponsor" + }, + "1tag": { + "name": "1tag", + "categoryId": 6, + "url": "http://www.dentsuaegisnetwork.com/", + "companyId": "dentsu_aegis_network" + }, + "1und1": { + "name": "1&1 IONOS", + "categoryId": 8, + "url": "http://www.ionos.com/", + "companyId": "1und1", + "source": "AdGuard" + }, + "24-ads.com": { + "name": "24-ADS", + "categoryId": 4, + "url": "http://www.24-ads.com/", + "companyId": "24-ads.com", + "source": "AdGuard" + }, + "24_7": { + "name": "[24]7", + "categoryId": 2, + "url": "http://www.247-inc.com/", + "companyId": "24_7" + }, + "24log": { + "name": "24log", + "categoryId": 6, + "url": "http://24log.ru/", + "companyId": "24log" + }, + "24smi": { + "name": "24SMI", + "categoryId": 8, + "url": "https://24smi.org/", + "companyId": "24smi", + "source": "AdGuard" + }, + "2leep": { + "name": "2leep", + "categoryId": 4, + "url": "http://2leep.com/", + "companyId": "2leep" + }, + "33across": { + "name": "33Across", + "categoryId": 4, + "url": "http://33across.com/", + "companyId": "33across" + }, + "3dstats": { + "name": "3DStats", + "categoryId": 6, + "url": "http://www.3dstats.com/", + "companyId": "3dstats" + }, + "3gpp": { + "name": "3GPP Network", + "categoryId": 5, + "url": "https://www.3gpp.org/", + "companyId": "3gpp", + "source": "AdGuard" + }, + "4chan": { + "name": "4Chan", + "categoryId": 8, + "url": "https://www.4chan.org/", + "companyId": "4chan", + "source": "AdGuard" + }, + "4finance_com": { + "name": "4finance", + "categoryId": 2, + "url": "https://4finance.com/", + "companyId": "4finance", + "source": "AdGuard" + }, + "4w_marketplace": { + "name": "4w Marketplace", + "categoryId": 4, + "url": "http://www.4wmarketplace.com/", + "companyId": "4w_marketplace" + }, + "500friends": { + "name": "500friends", + "categoryId": 2, + "url": "http://500friends.com/", + "companyId": "500friends" + }, + "51.la": { + "name": "51.La", + "categoryId": 6, + "url": "http://www.51.la/", + "companyId": "51.la" + }, + "5min_media": { + "name": "5min Media", + "categoryId": 0, + "url": "http://www.5min.com/", + "companyId": "verizon" + }, + "6sense": { + "name": "6Sense", + "categoryId": 6, + "url": "http://home.grepdata.com", + "companyId": "6sense" + }, + "77tracking": { + "name": "77Tracking", + "categoryId": 6, + "url": "http://www.77agency.com/", + "companyId": "77agency" + }, + "7plus": { + "name": "7plus", + "categoryId": 0, + "url": "https://7plus.com.au/", + "companyId": "seven_group_holdings", + "source": "AdGuard" + }, + "7tv.de": { + "name": "7tv.app", + "categoryId": 0, + "url": "https://www.7tv.app/", + "companyId": "7tv", + "source": "AdGuard" + }, + "888media": { + "name": "888media", + "categoryId": 4, + "url": "http://888media.net/", + "companyId": "888_media" + }, + "8digits": { + "name": "8digits", + "categoryId": 6, + "url": "http://8digits.com/", + "companyId": "8digits" + }, + "94j7afz2nr.xyz": { + "name": "94j7afz2nr.xyz", + "categoryId": 12, + "url": null, + "companyId": null + }, + "99stats": { + "name": "99stats", + "categoryId": 6, + "url": "http://www.99stats.com/", + "companyId": "99stats" + }, + "a3cloud_net": { + "name": "a3cloud.net", + "categoryId": 11, + "url": null, + "companyId": null + }, + "a8": { + "name": "A8", + "categoryId": 4, + "url": "http://www.a8.net/", + "companyId": "a8" + }, + "aaxads.com": { + "name": "Acceptable Ads Exchange", + "categoryId": 4, + "url": "https://aax.media/", + "companyId": null + }, + "ab_tasty": { + "name": "AB Tasty", + "categoryId": 6, + "url": "https://en.abtasty.com", + "companyId": "ab_tasty" + }, + "abc": { + "name": "Australian Broadcasting Corporation", + "categoryId": 8, + "url": "https://www.abc.net.au/", + "companyId": "australian_government", + "source": "AdGuard" + }, + "ablida": { + "name": "ablida", + "categoryId": 4, + "url": "https://www.ablida.de/", + "companyId": null + }, + "accelia": { + "name": "Accelia", + "categoryId": 4, + "url": "http://www.durasite.net/", + "companyId": "accelia" + }, + "accengage": { + "name": "Accengage", + "categoryId": 4, + "url": "https://www.accengage.com/", + "companyId": "accengage" + }, + "accessanalyzer": { + "name": "AccessAnalyzer", + "categoryId": 6, + "url": "http://ax.xrea.com/", + "companyId": "accessanalyzer" + }, + "accesstrade": { + "name": "AccessTrade", + "categoryId": 4, + "url": "http://accesstrade.net/", + "companyId": "accesstrade" + }, + "accord_group": { + "name": "Accord Group", + "categoryId": 4, + "url": "http://www.accordgroup.co.uk/", + "companyId": "accord_group" + }, + "accordant_media": { + "name": "Accordant Media", + "categoryId": 4, + "url": "http://www.accordantmedia.com/", + "companyId": "accordant_media" + }, + "accuen_media": { + "name": "Accuen Media", + "categoryId": 4, + "url": "http://www.accuenmedia.com/", + "companyId": "accuen_media" + }, + "acestream.net": { + "name": "ActStream", + "categoryId": 12, + "url": "http://www.acestream.org/", + "companyId": null + }, + "acint.net": { + "name": "Artificial Computation Intelligence", + "categoryId": 6, + "url": "https://www.acint.net/", + "companyId": "acint" + }, + "acloudimages": { + "name": "Acloudimages", + "categoryId": 4, + "url": "http://adsterra.com", + "companyId": "adsterra" + }, + "acpm.fr": { + "name": "ACPM", + "categoryId": 6, + "url": "http://www.acpm.fr/", + "companyId": null + }, + "acquia.com": { + "name": "Acquia", + "categoryId": 6, + "url": "https://www.acquia.com/", + "companyId": null + }, + "acrweb": { + "name": "ACRWEB", + "categoryId": 7, + "url": "http://www.ziyu.net/", + "companyId": "acrweb" + }, + "actionpay": { + "name": "actionpay", + "categoryId": 4, + "url": "http://actionpay.ru/", + "companyId": "actionpay" + }, + "active_agent": { + "name": "Active Agent", + "categoryId": 4, + "url": "http://www.active-agent.com/", + "companyId": "active_agent" + }, + "active_campaign": { + "name": "Active Campaign", + "categoryId": 6, + "url": "https://www.activecampaign.com", + "companyId": "active_campaign" + }, + "active_performance": { + "name": "Active Performance", + "categoryId": 4, + "url": "http://www.active-performance.de/", + "companyId": "active_performance" + }, + "activeconversion": { + "name": "ActiveConversion", + "categoryId": 4, + "url": "http://www.activeconversion.com/", + "companyId": "activeconversion" + }, + "activecore": { + "name": "activecore", + "categoryId": 6, + "url": "http://activecore.jp/", + "companyId": "activecore" + }, + "activemeter": { + "name": "ActiveMeter", + "categoryId": 4, + "url": "http://www.activemeter.com/", + "companyId": "activeconversion" + }, + "activengage": { + "name": "ActivEngage", + "categoryId": 2, + "url": "http://www.activengage.com", + "companyId": "activengage" + }, + "acton": { + "name": "Act-On Beacon", + "categoryId": 4, + "url": "http://www.actonsoftware.com/", + "companyId": "act-on" + }, + "acuity_ads": { + "name": "Acuity Ads", + "categoryId": 4, + "url": "http://www.acuityads.com/", + "companyId": "acuity_ads" + }, + "acxiom": { + "name": "Acxiom", + "categoryId": 4, + "url": "http://www.acxiom.com", + "companyId": "acxiom" + }, + "ad-blocker.org": { + "name": "ad-blocker.org", + "categoryId": 11, + "url": null, + "companyId": null + }, + "ad-center": { + "name": "Ad-Center", + "categoryId": 6, + "url": "http://www.ad-center.com", + "companyId": "ad-center" + }, + "ad-delivery.net": { + "name": "ad-delivery.net", + "categoryId": 11, + "url": null, + "companyId": null + }, + "ad-sys": { + "name": "Ad-Sys", + "categoryId": 4, + "url": "http://www.ad-sys.com/", + "companyId": "ad-sys" + }, + "ad.agio": { + "name": "Ad.agio", + "categoryId": 4, + "url": "http://neodatagroup.com/", + "companyId": "neodata" + }, + "ad2click": { + "name": "Ad2Click", + "categoryId": 4, + "url": "http://www.ad2click.com/", + "companyId": "ad2click_media" + }, + "ad2games": { + "name": "ad2games", + "categoryId": 4, + "url": "http://web.ad2games.com/", + "companyId": "ad2games" + }, + "ad360": { + "name": "Ad360", + "categoryId": 4, + "url": "http://ad360.vn", + "companyId": "ad360" + }, + "ad4game": { + "name": "ad4game", + "categoryId": 4, + "url": "http://www.ad4game.com/", + "companyId": "ad4game" + }, + "ad4mat": { + "name": "ad4mat", + "categoryId": 4, + "url": "http://ad4mat.info", + "companyId": "ad4mat" + }, + "ad6media": { + "name": "ad6media", + "categoryId": 4, + "url": "https://www.ad6media.fr/", + "companyId": "ad6media" + }, + "ad_decisive": { + "name": "Ad Decisive", + "categoryId": 4, + "url": "http://www.lagardere-global-advertising.com/", + "companyId": "lagardere_advertising" + }, + "ad_dynamo": { + "name": "Ad Dynamo", + "categoryId": 4, + "url": "http://www.addynamo.com/", + "companyId": "ad_dynamo" + }, + "ad_ebis": { + "name": "AD EBiS", + "categoryId": 4, + "url": "http://www.ebis.ne.jp/en/", + "companyId": "ad_ebis" + }, + "ad_lightning": { + "name": "Ad Lightning", + "categoryId": 4, + "url": "https://www.adlightning.com/", + "companyId": "ad_lightning" + }, + "ad_magnet": { + "name": "Ad Magnet", + "categoryId": 4, + "url": "http://www.admagnet.com/", + "companyId": "ad_magnet" + }, + "ad_spirit": { + "name": "Ad Spirit", + "categoryId": 4, + "url": "http://www.adspirit.de", + "companyId": "adspirit" + }, + "adac_de": { + "name": "adac.de", + "categoryId": 8, + "url": "http://adac.de/", + "companyId": null + }, + "adacado": { + "name": "Adacado", + "categoryId": 4, + "url": "http://www.adacado.com/", + "companyId": "adacado" + }, + "adadyn": { + "name": "Adadyn", + "categoryId": 4, + "url": "http://ozonemedia.com/index.html", + "companyId": "adadyn" + }, + "adality_gmbh": { + "name": "adality GmbH", + "categoryId": 4, + "url": "https://www.arvato.com/", + "companyId": "arvato" + }, + "adalliance.io": { + "name": "Ad Alliance", + "categoryId": 4, + "url": "https://www.ad-alliance.de/", + "companyId": null + }, + "adalyser.com": { + "name": "Adalyser", + "categoryId": 6, + "url": "https://www.adalyser.com/", + "companyId": "onesoon" + }, + "adaos": { + "name": "ADAOS", + "categoryId": 4, + "url": "http://www.24-interactive.com", + "companyId": "24_interactive" + }, + "adap.tv": { + "name": "Adap.tv", + "categoryId": 4, + "url": "http://www.adap.tv/", + "companyId": "verizon" + }, + "adaptiveblue_smartlinks": { + "name": "AdaptiveBlue SmartLinks", + "categoryId": 2, + "url": "http://www.adaptiveblue.com/smartlinks.html", + "companyId": "telfie" + }, + "adara_analytics": { + "name": "ADARA Analytics", + "categoryId": 4, + "url": "http://www.adaramedia.com/", + "companyId": "adara_analytics" + }, + "adasia_holdings": { + "name": "AdAsia Holdings", + "categoryId": 4, + "url": "https://adasiaholdings.com/", + "companyId": "adasia_holdings" + }, + "adbetclickin.pink": { + "name": "adbetnet", + "categoryId": 4, + "url": "http://adbetnet.com/", + "companyId": null + }, + "adbetnet.com": { + "name": "adbetnet", + "categoryId": 4, + "url": "https://adbetnet.com/", + "companyId": null + }, + "adblade.com": { + "name": "Adblade", + "categoryId": 4, + "url": "https://adblade.com/", + "companyId": "adblade" + }, + "adbooth": { + "name": "Adbooth", + "categoryId": 4, + "url": "http://www.adbooth.com/", + "companyId": "adbooth_media_group" + }, + "adbox": { + "name": "AdBox", + "categoryId": 4, + "url": "http://www.adbox.lv/", + "companyId": "adbox" + }, + "adbrain": { + "name": "Adbrain", + "categoryId": 6, + "url": "https://www.adbrain.com/", + "companyId": "adbrain" + }, + "adbrite": { + "name": "AdBrite", + "categoryId": 4, + "url": "http://www.adbrite.com/", + "companyId": "centro" + }, + "adbull": { + "name": "AdBull", + "categoryId": 4, + "url": "http://www.adbull.com/", + "companyId": "adbull" + }, + "adbutler": { + "name": "AdButler", + "categoryId": 4, + "url": "https://www.adbutler.com/d", + "companyId": "sparklit_networks" + }, + "adc_media": { + "name": "ad:C media", + "categoryId": 4, + "url": "http://www.adcmedia.de/en/", + "companyId": "ad:c_media" + }, + "adcash": { + "name": "Adcash", + "categoryId": 4, + "url": "http://www.adcash.com", + "companyId": "adcash" + }, + "adchakra": { + "name": "AdChakra", + "categoryId": 6, + "url": "http://adchakra.com/", + "companyId": "adchakra" + }, + "adchina": { + "name": "AdChina", + "categoryId": 4, + "url": "http://www.adchina.com/", + "companyId": null, + "source": "AdGuard" + }, + "adcito": { + "name": "Adcito", + "categoryId": 4, + "url": "http://adcito.com/", + "companyId": "adcito" + }, + "adclear": { + "name": "AdClear", + "categoryId": 4, + "url": "http://www.adclear.de/en/home.html", + "companyId": "adclear" + }, + "adclerks": { + "name": "Adclerks", + "categoryId": 4, + "url": "https://adclerks.com/", + "companyId": "adclerks" + }, + "adclickmedia": { + "name": "AdClickMedia", + "categoryId": 4, + "url": "http://www.adclickmedia.com/", + "companyId": "adclickmedia" + }, + "adclickzone": { + "name": "AdClickZone", + "categoryId": 4, + "url": "http://www.adclickzone.com/", + "companyId": "adclickzone" + }, + "adcloud": { + "name": "adcloud", + "categoryId": 4, + "url": "https://ad-cloud.jp", + "companyId": "adcloud" + }, + "adcolony": { + "name": "AdColony", + "categoryId": 4, + "url": "https://www.adcolony.com/history-of-adcolony/", + "companyId": "digital_turbine", + "source": "AdGuard" + }, + "adconion": { + "name": "Adconion", + "categoryId": 4, + "url": "http://www.adconion.com/", + "companyId": "singtel" + }, + "adcrowd": { + "name": "Adcrowd", + "categoryId": 4, + "url": "https://www.adcrowd.com", + "companyId": "adcrowd" + }, + "adcurve": { + "name": "AdCurve", + "categoryId": 4, + "url": "http://www.shop2market.com/", + "companyId": "adcurve" + }, + "add_to_calendar": { + "name": "Add To Calendar", + "categoryId": 2, + "url": "http://addtocalendar.com/", + "companyId": "addtocalendar" + }, + "addaptive": { + "name": "Addaptive", + "categoryId": 4, + "url": "http://www.datapointmedia.com/", + "companyId": "addaptive" + }, + "addefend": { + "name": "AdDefend", + "categoryId": 4, + "url": "https://www.addefend.com/", + "companyId": null + }, + "addfreestats": { + "name": "AddFreeStats", + "categoryId": 6, + "url": "http://www.addfreestats.com/", + "companyId": "3dstats" + }, + "addinto": { + "name": "AddInto", + "categoryId": 2, + "url": "http://www.addinto.com/", + "companyId": "addinto" + }, + "addshoppers": { + "name": "AddShoppers", + "categoryId": 7, + "url": "http://www.addshoppers.com/", + "companyId": "addshoppers" + }, + "addthis": { + "name": "AddThis", + "categoryId": 4, + "url": "http://www.addthis.com/", + "companyId": "oracle" + }, + "addvalue": { + "name": "Addvalue", + "categoryId": 6, + "url": "http://www.addvalue.de/en/", + "companyId": "addvalue.de" + }, + "addyon": { + "name": "AddyON", + "categoryId": 4, + "url": "http://www.addyon.com/homepage.php", + "companyId": "addyon" + }, + "adeasy": { + "name": "AdEasy", + "categoryId": 4, + "url": "http://www.adeasy.ru/", + "companyId": "adeasy" + }, + "adelphic": { + "name": "Adelphic", + "categoryId": 6, + "url": "http://www.adelphic.com/", + "companyId": "adelphic" + }, + "adengage": { + "name": "AdEngage", + "categoryId": 4, + "url": "http://www.adengage.com", + "companyId": "synacor" + }, + "adespresso": { + "name": "AdEspresso", + "categoryId": 4, + "url": "http://adespresso.com", + "companyId": "adespresso" + }, + "adexcite": { + "name": "AdExcite", + "categoryId": 4, + "url": "http://adexcite.com", + "companyId": "adexcite" + }, + "adextent": { + "name": "AdExtent", + "categoryId": 4, + "url": "http://www.adextent.com/", + "companyId": "adextent" + }, + "adf.ly": { + "name": "AdF.ly", + "categoryId": 4, + "url": "http://adf.ly/", + "companyId": "adf.ly" + }, + "adfalcon": { + "name": "AdFalcon", + "categoryId": 4, + "url": "http://www.adfalcon.com/", + "companyId": "adfalcon" + }, + "adfocus": { + "name": "AdFocus", + "categoryId": 4, + "url": "http://adfoc.us/", + "companyId": "adfoc.us" + }, + "adforgames": { + "name": "AdForGames", + "categoryId": 4, + "url": "http://www.adforgames.com/", + "companyId": "adforgames" + }, + "adform": { + "name": "Adform", + "categoryId": 4, + "url": "http://www.adform.com", + "companyId": "adform" + }, + "adfox": { + "name": "AdFox", + "categoryId": 4, + "url": "http://adfox.ru", + "companyId": "yandex" + }, + "adfreestyle": { + "name": "adFreestyle", + "categoryId": 4, + "url": "http://www.adfreestyle.pl/", + "companyId": "adfreestyle" + }, + "adfront": { + "name": "AdFront", + "categoryId": 4, + "url": "http://buysellads.com/", + "companyId": "buysellads.com" + }, + "adfrontiers": { + "name": "AdFrontiers", + "categoryId": 4, + "url": "http://www.adfrontiers.com/", + "companyId": "adfrontiers" + }, + "adgear": { + "name": "AdGear", + "categoryId": 4, + "url": "http://adgear.com/", + "companyId": "samsung" + }, + "adgebra": { + "name": "Adgebra", + "categoryId": 4, + "url": "https://adgebra.in/", + "companyId": "adgebra" + }, + "adgenie": { + "name": "adGENIE", + "categoryId": 4, + "url": "http://www.adgenie.co.uk/", + "companyId": "ve" + }, + "adgile": { + "name": "Adgile", + "categoryId": 4, + "url": "http://www.adgile.com/", + "companyId": "adgile_media" + }, + "adglare.net": { + "name": "Adglare", + "categoryId": 4, + "url": "https://www.adglare.com/", + "companyId": null + }, + "adglue": { + "name": "Adglue", + "categoryId": 4, + "url": "http://admans.de/de.html", + "companyId": "admans" + }, + "adgoal": { + "name": "adgoal", + "categoryId": 4, + "url": "http://www.adgoal.de/", + "companyId": "adgoal" + }, + "adgorithms": { + "name": "Adgorithms", + "categoryId": 4, + "url": "http://www.adgorithms.com/", + "companyId": "albert" + }, + "adgoto": { + "name": "ADGoto", + "categoryId": 4, + "url": "http://adgoto.com/", + "companyId": "adgoto" + }, + "adguard": { + "name": "AdGuard", + "categoryId": 8, + "url": "https://adguard.com/", + "companyId": "adguard", + "source": "AdGuard" + }, + "adguard_dns": { + "name": "AdGuard DNS", + "categoryId": 8, + "url": "https://adguard-dns.io/", + "companyId": "adguard", + "source": "AdGuard" + }, + "adguard_vpn": { + "name": "AdGuard VPN", + "categoryId": 8, + "url": "https://adguard-vpn.com/", + "companyId": "adguard", + "source": "AdGuard" + }, + "adhands": { + "name": "AdHands", + "categoryId": 4, + "url": "http://promo.adhands.ru/", + "companyId": "adhands" + }, + "adhese": { + "name": "Adhese", + "categoryId": 4, + "url": "http://adhese.com", + "companyId": "adhese" + }, + "adhitz": { + "name": "AdHitz", + "categoryId": 4, + "url": "http://www.adhitz.com/", + "companyId": "adhitz" + }, + "adhood": { + "name": "adhood", + "categoryId": 4, + "url": "http://www.adhood.com/", + "companyId": "adhood" + }, + "adify": { + "name": "Adify", + "categoryId": 4, + "url": "http://www.adify.com/", + "companyId": "cox_enterpries" + }, + "adikteev": { + "name": "Adikteev", + "categoryId": 4, + "url": "http://www.adikteev.com/", + "companyId": "adikteev" + }, + "adimpact": { + "name": "Adimpact", + "categoryId": 4, + "url": "http://www.adimpact.com/", + "companyId": "adimpact" + }, + "adinch": { + "name": "Adinch", + "categoryId": 4, + "url": "http://adinch.com/", + "companyId": "adinch" + }, + "adition": { + "name": "Adition", + "categoryId": 4, + "url": "http://en.adition.com/", + "companyId": "prosieben_sat1" + }, + "adjal": { + "name": "Adjal", + "categoryId": 4, + "url": "http://adjal.com/", + "companyId": "marketing_adjal" + }, + "adjs": { + "name": "ADJS", + "categoryId": 4, + "url": "https://github.com/widgital/adjs", + "companyId": "adjs" + }, + "adjug": { + "name": "AdJug", + "categoryId": 4, + "url": "http://www.adjug.com/", + "companyId": "adjug" + }, + "adjust": { + "name": "Adjust GmbH", + "categoryId": 101, + "url": "https://www.adjust.com/", + "companyId": "applovin", + "source": "AdGuard" + }, + "adk2": { + "name": "adk2", + "categoryId": 4, + "url": "http://www.adk2.com/", + "companyId": "adk2_plymedia" + }, + "adklip": { + "name": "adklip", + "categoryId": 4, + "url": "http://adklip.com", + "companyId": "adklip" + }, + "adknowledge": { + "name": "Adknowledge", + "categoryId": 4, + "url": "http://www.adknowledge.com/", + "companyId": "adknowledge" + }, + "adkontekst": { + "name": "Adkontekst", + "categoryId": 4, + "url": "http://www.en.adkontekst.pl/", + "companyId": "adkontekst" + }, + "adkontekst.pl": { + "name": "Adkontekst", + "categoryId": 4, + "url": "http://netsprint.eu/", + "companyId": "netsprint" + }, + "adlabs": { + "name": "AdLabs", + "categoryId": 4, + "url": "https://www.adlabs.ru/", + "companyId": "adlabs" + }, + "adlantic": { + "name": "AdLantic", + "categoryId": 4, + "url": "http://www.adlantic.nl/", + "companyId": "adlantic_online_advertising" + }, + "adlantis": { + "name": "AdLantis", + "categoryId": 4, + "url": "http://www.adlantis.jp/", + "companyId": "adlantis" + }, + "adless": { + "name": "Adless", + "categoryId": 4, + "url": "https://www.adless.io/", + "companyId": "adless" + }, + "adlive_header_bidding": { + "name": "Adlive Header Bidding", + "categoryId": 4, + "url": "http://adlive.io/", + "companyId": "adlive" + }, + "adloox": { + "name": "Adloox", + "categoryId": 4, + "url": "http://www.adloox.com", + "companyId": "adloox" + }, + "admachine": { + "name": "AdMachine", + "categoryId": 4, + "url": "https://admachine.co/", + "companyId": null + }, + "adman": { + "name": "ADMAN", + "categoryId": 4, + "url": "http://www.adman.gr/", + "companyId": "adman" + }, + "adman_media": { + "name": "ADman Media", + "categoryId": 4, + "url": "http://www.admanmedia.com/", + "companyId": "ad_man_media" + }, + "admantx.com": { + "name": "ADmantX", + "categoryId": 4, + "url": "http://www.admantx.com/", + "companyId": "expert_system_spa" + }, + "admaster": { + "name": "AdMaster", + "categoryId": 4, + "url": "http://admaster.net", + "companyId": "admaster" + }, + "admaster.cn": { + "name": "AdMaster.cn", + "categoryId": 4, + "url": "http://www.admaster.com.cn/", + "companyId": "admaster" + }, + "admatic": { + "name": "Admatic", + "categoryId": 4, + "url": "http://www.admatic.com.tr/#1page", + "companyId": "admatic" + }, + "admatrix": { + "name": "Admatrix", + "categoryId": 4, + "url": "https://admatrix.jp/login#block01", + "companyId": "admatrix" + }, + "admax": { + "name": "Admax", + "categoryId": 4, + "url": "http://www.admaxnetwork.com/index.php", + "companyId": "komli" + }, + "admaxim": { + "name": "AdMaxim", + "categoryId": 4, + "url": "http://admaxim.com/", + "companyId": "admaxim" + }, + "admaya": { + "name": "Admaya", + "categoryId": 4, + "url": "http://www.admaya.in/", + "companyId": "admaya" + }, + "admedia": { + "name": "AdMedia", + "categoryId": 4, + "url": "http://admedia.com/", + "companyId": "admedia" + }, + "admedo_com": { + "name": "Admedo", + "categoryId": 4, + "url": "http://admedo.com/", + "companyId": "admedo" + }, + "admeira.ch": { + "name": "AdMeira", + "categoryId": 4, + "url": "http://admeira.ch/", + "companyId": "admeira" + }, + "admeld": { + "name": "AdMeld", + "categoryId": 4, + "url": "http://www.admeld.com", + "companyId": "google" + }, + "admeo": { + "name": "Admeo", + "categoryId": 4, + "url": "http://admeo.ru/", + "companyId": "admeo.ru" + }, + "admeta": { + "name": "Admeta", + "categoryId": 4, + "url": "http://www.admeta.com/", + "companyId": "admeta" + }, + "admicro": { + "name": "AdMicro", + "categoryId": 4, + "url": "http://www.admicro.vn/", + "companyId": "admicro" + }, + "admitad.com": { + "name": "Admitad", + "categoryId": 4, + "url": "https://www.admitad.com/en/#", + "companyId": "admitad" + }, + "admixer": { + "name": "Admixer", + "categoryId": 4, + "url": "https://admixer.com/", + "companyId": "admixer", + "source": "AdGuard" + }, + "admixer.net": { + "name": "Admixer", + "categoryId": 4, + "url": "https://admixer.net/", + "companyId": "admixer" + }, + "admized": { + "name": "ADMIZED", + "categoryId": 8, + "url": null, + "companyId": null + }, + "admo.tv": { + "name": "Admo.tv", + "categoryId": 4, + "url": "https://admo.tv/", + "companyId": "admo.tv" + }, + "admob": { + "name": "AdMob", + "categoryId": 4, + "url": "http://www.admob.com/", + "companyId": "google" + }, + "admost": { + "name": "adMOST", + "categoryId": 4, + "url": "http://www.admost.com/", + "companyId": "admost" + }, + "admotion": { + "name": "Admotion", + "categoryId": 4, + "url": "http://www.admotionus.com/", + "companyId": "admotion" + }, + "admulti": { + "name": "ADmulti", + "categoryId": 4, + "url": "http://admulti.com", + "companyId": "admulti" + }, + "adnegah": { + "name": "Adnegah", + "categoryId": 4, + "url": "https://adnegah.net/", + "companyId": "adnegah" + }, + "adnet": { + "name": "Adnet", + "categoryId": 4, + "url": "http://www.adnet.vn/", + "companyId": "adnet" + }, + "adnet.de": { + "name": "adNET.de", + "categoryId": 4, + "url": "http://www.adnet.de", + "companyId": "adnet.de" + }, + "adnet_media": { + "name": "Adnet Media", + "categoryId": 4, + "url": "http://www.adnetmedia.lt/", + "companyId": "adnet_media" + }, + "adnetwork.net": { + "name": "AdNetwork.net", + "categoryId": 4, + "url": "http://www.adnetwork.net/", + "companyId": "adnetwork.net" + }, + "adnetworkperformance.com": { + "name": "adnetworkperformance.com", + "categoryId": 11, + "url": null, + "companyId": null + }, + "adnexio": { + "name": "AdNexio", + "categoryId": 4, + "url": "http://adnexio.com/", + "companyId": "adnexio" + }, + "adnium.com": { + "name": "Adnium", + "categoryId": 4, + "url": "https://adnium.com/", + "companyId": null + }, + "adnologies": { + "name": "Adnologies", + "categoryId": 4, + "url": "http://www.adnologies.com/", + "companyId": "adnologies_gmbh" + }, + "adnow": { + "name": "Adnow", + "categoryId": 4, + "url": "http://adnow.com/", + "companyId": "adnow" + }, + "adnymics": { + "name": "Adnymics", + "categoryId": 4, + "url": "http://adnymics.com/en/", + "companyId": "adnymics" + }, + "adobe_audience_manager": { + "name": "Adobe Audience Manager", + "categoryId": 4, + "url": "http://www.demdex.com/", + "companyId": "adobe" + }, + "adobe_developer": { + "name": "Adobe Developer", + "categoryId": 8, + "url": "https://developer.adobe.com/", + "companyId": "adobe", + "source": "AdGuard" + }, + "adobe_dynamic_media": { + "name": "Adobe Dynamic Media", + "categoryId": 4, + "url": "http://www.adobe.com/", + "companyId": "adobe" + }, + "adobe_dynamic_tag_management": { + "name": "Adobe Dynamic Tag Management", + "categoryId": 5, + "url": "https://dtm.adobe.com/sign_in", + "companyId": "adobe" + }, + "adobe_experience_cloud": { + "name": "Adobe Experience Cloud", + "categoryId": 6, + "url": "https://business.adobe.com/", + "companyId": "adobe", + "source": "AdGuard" + }, + "adobe_experience_league": { + "name": "Adobe Experience League", + "categoryId": 6, + "url": "https://experienceleague.adobe.com/", + "companyId": "adobe", + "source": "AdGuard" + }, + "adobe_login": { + "name": "Adobe Login", + "categoryId": 2, + "url": "https://www.adobe.com/", + "companyId": "adobe" + }, + "adobe_tagmanager": { + "name": "Adobe TagManager", + "categoryId": 4, + "url": "https://www.adobe.com/", + "companyId": "adobe" + }, + "adobe_test_and_target": { + "name": "Adobe Target", + "categoryId": 4, + "url": "https://www.adobe.com/marketing/target.html", + "companyId": "adobe" + }, + "adobe_typekit": { + "name": "Adobe Typekit", + "categoryId": 5, + "url": "https://www.adobe.com/", + "companyId": "adobe" + }, + "adocean": { + "name": "AdOcean", + "categoryId": 4, + "url": "http://adocean.cz/en", + "companyId": "adocean" + }, + "adometry": { + "name": "Adometry", + "categoryId": 4, + "url": "http://www.adometry.com/", + "companyId": "google" + }, + "adomik": { + "name": "Adomik", + "categoryId": 4, + "url": null, + "companyId": null + }, + "adon_network": { + "name": "AdOn Network", + "categoryId": 4, + "url": "http://www.adonnetwork.com/", + "companyId": "adon_network" + }, + "adonion": { + "name": "AdOnion", + "categoryId": 4, + "url": "http://www.adonion.com/", + "companyId": "adonion" + }, + "adonly": { + "name": "AdOnly", + "categoryId": 4, + "url": "https://gloadmarket.com/", + "companyId": "adonly" + }, + "adoperator": { + "name": "AdOperator", + "categoryId": 4, + "url": "http://www.adoperator.com/start/", + "companyId": "adoperator" + }, + "adoric": { + "name": "Adoric", + "categoryId": 6, + "url": "https://adoric.com/", + "companyId": "adoric" + }, + "adorika": { + "name": "Adorika", + "categoryId": 4, + "url": "http://www.adorika.com/", + "companyId": "adorika" + }, + "adosia": { + "name": "Adosia", + "categoryId": 4, + "url": "https://adosia.com", + "companyId": "adosia" + }, + "adotmob.com": { + "name": "Adotmob", + "categoryId": 4, + "url": "https://adotmob.com/", + "companyId": "adotmob" + }, + "adotube": { + "name": "AdoTube", + "categoryId": 4, + "url": "http://www.adotube.com", + "companyId": "exponential_interactive" + }, + "adparlor": { + "name": "AdParlor", + "categoryId": 4, + "url": "http://www.adparlor.com/", + "companyId": "fluent" + }, + "adpartner": { + "name": "adpartner", + "categoryId": 4, + "url": "http://adpartner.pro/", + "companyId": "adpartner" + }, + "adpeeps": { + "name": "Ad Peeps", + "categoryId": 4, + "url": "http://www.adpeeps.com/", + "companyId": "ad_peeps" + }, + "adperfect": { + "name": "AdPerfect", + "categoryId": 4, + "url": "http://www.adperfect.com/", + "companyId": "adperfect" + }, + "adperium": { + "name": "AdPerium", + "categoryId": 4, + "url": "http://www.adperium.com/", + "companyId": "adperium" + }, + "adpilot": { + "name": "AdPilot", + "categoryId": 4, + "url": "http://www.adpilotgroup.com/", + "companyId": "adpilot" + }, + "adplan": { + "name": "AdPlan", + "categoryId": 4, + "url": "http://www.adplan.ne.jp/", + "companyId": "adplan" + }, + "adplus": { + "name": "ADPLUS", + "categoryId": 4, + "url": "http://www.adplus.co.id/", + "companyId": "adplus" + }, + "adprofex": { + "name": "AdProfex", + "categoryId": 4, + "url": "https://adprofex.com/", + "companyId": "adprofex", + "source": "AdGuard" + }, + "adprofy": { + "name": "AdProfy", + "categoryId": 4, + "url": "http://adprofy.com/", + "companyId": "adprofy" + }, + "adpulse": { + "name": "AdPulse", + "categoryId": 4, + "url": "http://adpulse.ir/", + "companyId": "adpulse.ir" + }, + "adpv": { + "name": "Adpv", + "categoryId": 4, + "url": "http://www.adpv.com/", + "companyId": "adpv" + }, + "adreactor": { + "name": "AdReactor", + "categoryId": 4, + "url": "http://www.adreactor.com/", + "companyId": "adreactor" + }, + "adrecord": { + "name": "Adrecord", + "categoryId": 4, + "url": "http://www.adrecord.com/", + "companyId": "adrecord" + }, + "adrecover": { + "name": "AdRecover", + "categoryId": 4, + "url": "https://www.adrecover.com/", + "companyId": "adpushup" + }, + "adresult": { + "name": "ADResult", + "categoryId": 4, + "url": "http://www.adresult.jp/", + "companyId": "adresult" + }, + "adriver": { + "name": "AdRiver", + "categoryId": 4, + "url": "http://www.adriver.ru/", + "companyId": "ad_river" + }, + "adroll": { + "name": "AdRoll", + "categoryId": 4, + "url": "https://www.adroll.com/", + "companyId": "adroll" + }, + "adroll_pixel": { + "name": "AdRoll Pixel", + "categoryId": 4, + "url": "https://www.adroll.com/", + "companyId": "adroll" + }, + "adroll_roundtrip": { + "name": "AdRoll Roundtrip", + "categoryId": 4, + "url": "https://www.adroll.com/", + "companyId": "adroll" + }, + "adrom": { + "name": "adRom", + "categoryId": 4, + "url": "http://www.adrom.net/", + "companyId": null + }, + "adru.net": { + "name": "adru.net", + "categoryId": 4, + "url": "http://adru.net/", + "companyId": "adru.net" + }, + "adrunnr": { + "name": "AdRunnr", + "categoryId": 4, + "url": "https://adrunnr.com/", + "companyId": "adrunnr" + }, + "adsame": { + "name": "Adsame", + "categoryId": 4, + "url": "http://adsame.com/", + "companyId": "adsame" + }, + "adsbookie": { + "name": "AdsBookie", + "categoryId": 4, + "url": "http://adsbookie.com/", + "companyId": null + }, + "adscale": { + "name": "AdScale", + "categoryId": 4, + "url": "http://www.adscale.de/", + "companyId": "stroer" + }, + "adscience": { + "name": "Adscience", + "categoryId": 4, + "url": "http://www.adscience.nl/", + "companyId": "adscience" + }, + "adsco.re": { + "name": "Adscore", + "categoryId": 4, + "url": "https://www.adscore.com/", + "companyId": null + }, + "adsensecamp": { + "name": "AdsenseCamp", + "categoryId": 4, + "url": "http://adsensecamp.com", + "companyId": "adsensecamp" + }, + "adserverpub": { + "name": "AdServerPub", + "categoryId": 4, + "url": "http://www.adserverpub.com/", + "companyId": "adserverpub" + }, + "adservice_media": { + "name": "Adservice Media", + "categoryId": 4, + "url": "http://www.adservicemedia.com/", + "companyId": "adservice_media" + }, + "adsfactor": { + "name": "Adsfactor", + "categoryId": 4, + "url": "http://www.adsfactor.com/", + "companyId": "pixels_asia" + }, + "adside": { + "name": "AdSide", + "categoryId": 4, + "url": "http://www.adside.com/", + "companyId": "adside" + }, + "adskeeper": { + "name": "AdsKeeper", + "categoryId": 4, + "url": "http://adskeeper.co.uk/", + "companyId": "adskeeper" + }, + "adskom": { + "name": "ADSKOM", + "categoryId": 4, + "url": "http://adskom.com/", + "companyId": "adskom" + }, + "adslot": { + "name": "Adslot", + "categoryId": 4, + "url": "http://www.adslot.com/", + "companyId": "adslot" + }, + "adsnative": { + "name": "adsnative", + "categoryId": 4, + "url": "http://www.adsnative.com/", + "companyId": "adsnative" + }, + "adsniper.ru": { + "name": "AdSniper", + "categoryId": 4, + "url": "http://ad-sniper.com/", + "companyId": "adsniper" + }, + "adspeed": { + "name": "AdSpeed", + "categoryId": 4, + "url": "http://www.adspeed.com/", + "companyId": "adspeed" + }, + "adspyglass": { + "name": "AdSpyglass", + "categoryId": 4, + "url": "https://www.adspyglass.com/", + "companyId": "adspyglass" + }, + "adstage": { + "name": "AdStage", + "categoryId": 4, + "url": "http://www.adstage.io/", + "companyId": "adstage" + }, + "adstanding": { + "name": "AdStanding", + "categoryId": 4, + "url": "http://www.adstanding.com/en/", + "companyId": "adstanding" + }, + "adstars": { + "name": "Adstars", + "categoryId": 4, + "url": "http://adstars.co.id", + "companyId": "adstars" + }, + "adstir": { + "name": "adstir", + "categoryId": 4, + "url": "https://en.ad-stir.com/", + "companyId": "united_inc" + }, + "adsupply": { + "name": "AdSupply", + "categoryId": 4, + "url": "http://www.adsupply.com/", + "companyId": "adsupply" + }, + "adswizz": { + "name": "AdsWizz", + "categoryId": 4, + "url": "http://www.adswizz.com/", + "companyId": "adswizz" + }, + "adtaily": { + "name": "AdTaily", + "categoryId": 4, + "url": "http://www.adtaily.pl/", + "companyId": "adtaily" + }, + "adtarget.me": { + "name": "Adtarget.me", + "categoryId": 4, + "url": "http://www.adtarget.me/", + "companyId": "adtarget.me" + }, + "adtech": { + "name": "ADTECH", + "categoryId": 6, + "url": "http://www.adtechus.com/", + "companyId": "verizon" + }, + "adtegrity": { + "name": "Adtegrity", + "categoryId": 4, + "url": "http://www.adtegrity.com/", + "companyId": "adtegrity" + }, + "adtelligence.de": { + "name": "Adtelligence", + "categoryId": 4, + "url": "https://adtelligence.com/", + "companyId": null + }, + "adtheorent": { + "name": "Adtheorent", + "categoryId": 4, + "url": "http://adtheorent.com/", + "companyId": "adtheorant" + }, + "adthink": { + "name": "Adthink", + "categoryId": 4, + "url": "https://adthink.com/", + "companyId": "adthink" + }, + "adtiger": { + "name": "AdTiger", + "categoryId": 4, + "url": "http://www.adtiger.de/", + "companyId": "adtiger" + }, + "adtima": { + "name": "Adtima", + "categoryId": 4, + "url": "http://adtima.vn/", + "companyId": "adtima" + }, + "adtng.com": { + "name": "adtng.com", + "categoryId": 3, + "url": null, + "companyId": null + }, + "adtoma": { + "name": "Adtoma", + "categoryId": 4, + "url": "http://www.adtoma.com/", + "companyId": "adtoma" + }, + "adtr02.com": { + "name": "adtr02.com", + "categoryId": 11, + "url": null, + "companyId": null + }, + "adtraction": { + "name": "Adtraction", + "categoryId": 4, + "url": "http://adtraction.com/", + "companyId": "adtraction" + }, + "adtraxx": { + "name": "AdTraxx", + "categoryId": 4, + "url": "https://www1.adtraxx.de/", + "companyId": "adtrax" + }, + "adtriba.com": { + "name": "AdTriba", + "categoryId": 6, + "url": "https://www.adtriba.com/", + "companyId": null + }, + "adtrue": { + "name": "Adtrue", + "categoryId": 4, + "url": "http://adtrue.com/", + "companyId": "adtrue" + }, + "adtrustmedia": { + "name": "AdTrustMedia", + "categoryId": 4, + "url": "https://adtrustmedia.com/", + "companyId": "adtrustmedia" + }, + "adtube": { + "name": "AdTube", + "categoryId": 4, + "url": "http://adtube.ir/", + "companyId": "adtube" + }, + "adult_webmaster_empire": { + "name": "Adult Webmaster Empire", + "categoryId": 3, + "url": "http://www.awempire.com/", + "companyId": "adult_webmaster_empire" + }, + "adultadworld": { + "name": "AdultAdWorld", + "categoryId": 3, + "url": "http://adultadworld.com/", + "companyId": "adult_adworld" + }, + "adup-tech.com": { + "name": "AdUp Technology", + "categoryId": 4, + "url": "https://www.adup-tech.com/", + "companyId": "adup_technology" + }, + "advaction": { + "name": "Advaction", + "categoryId": 4, + "url": "http://advaction.ru/", + "companyId": "advaction" + }, + "advalo": { + "name": "Advalo", + "categoryId": 4, + "url": "https://www.advalo.com", + "companyId": "advalo" + }, + "advanced_hosters": { + "name": "Advanced Hosters", + "categoryId": 9, + "url": "https://advancedhosters.com/", + "companyId": null + }, + "advark": { + "name": "Advark", + "categoryId": 4, + "url": "https://advarkads.com/", + "companyId": "advark" + }, + "adventori": { + "name": "ADventori", + "categoryId": 8, + "url": "https://www.adventori.com/", + "companyId": "adventori" + }, + "adverline": { + "name": "Adverline", + "categoryId": 4, + "url": "http://www.adverline.com/", + "companyId": "adverline" + }, + "adversal": { + "name": "Adversal", + "categoryId": 4, + "url": "https://www.adversal.com/", + "companyId": "adversal" + }, + "adverserve": { + "name": "adverServe", + "categoryId": 4, + "url": "http://www.adverserve.com/", + "companyId": "adverserve" + }, + "adverteerdirect": { + "name": "Adverteerdirect", + "categoryId": 4, + "url": "http://www.adverteerdirect.nl/", + "companyId": "adverteerdirect" + }, + "adverticum": { + "name": "Adverticum", + "categoryId": 4, + "url": "https://adverticum.net/english/", + "companyId": "adverticum" + }, + "advertise.com": { + "name": "Advertise.com", + "categoryId": 4, + "url": "http://advertise.com/", + "companyId": "advertise.com" + }, + "advertisespace": { + "name": "AdvertiseSpace", + "categoryId": 4, + "url": "http://www.advertisespace.com/", + "companyId": "advertisespace" + }, + "advertising.com": { + "name": "Verizon Media", + "categoryId": 4, + "url": "https://www.verizonmedia.com/", + "companyId": "verizon" + }, + "advertlets": { + "name": "Advertlets", + "categoryId": 4, + "url": "http://www.advertlets.com/", + "companyId": "advertlets" + }, + "advertserve": { + "name": "AdvertServe", + "categoryId": 4, + "url": "https://secure.advertserve.com/", + "companyId": "advertserve" + }, + "advidi": { + "name": "Advidi", + "categoryId": 4, + "url": "http://advidi.com/", + "companyId": "advidi" + }, + "advmaker.ru": { + "name": "advmaker.ru", + "categoryId": 4, + "url": "http://advmaker.ru/", + "companyId": "advmaker.ru" + }, + "advolution": { + "name": "Advolution", + "categoryId": 4, + "url": "http://www.advolution.de", + "companyId": "advolution" + }, + "adwebster": { + "name": "adwebster", + "categoryId": 4, + "url": "http://adwebster.com", + "companyId": "adwebster" + }, + "adwit": { + "name": "Adwit", + "categoryId": 4, + "url": "http://www.adwitserver.com", + "companyId": "adwit" + }, + "adworx.at": { + "name": "ADworx", + "categoryId": 4, + "url": "http://www.adworx.at/", + "companyId": "ors" + }, + "adworxs.net": { + "name": "adworxs.net", + "categoryId": 4, + "url": "http://www.adworxs.net/?lang=en", + "companyId": null + }, + "adxion": { + "name": "adXion", + "categoryId": 4, + "url": "http://www.adxion.com", + "companyId": "adxion" + }, + "adxpansion": { + "name": "AdXpansion", + "categoryId": 3, + "url": "http://www.adxpansion.com/", + "companyId": "adxpansion" + }, + "adxpose": { + "name": "AdXpose", + "categoryId": 4, + "url": "http://www.adxpose.com/home.page", + "companyId": "comscore" + }, + "adxprtz.com": { + "name": "adxprtz.com", + "categoryId": 4, + "url": null, + "companyId": null + }, + "adyoulike": { + "name": "Adyoulike", + "categoryId": 4, + "url": "http://www.adyoulike.com/", + "companyId": "adyoulike" + }, + "adzerk": { + "name": "Adzerk", + "categoryId": 4, + "url": "http://adzerk.com/", + "companyId": "adzerk" + }, + "adzly": { + "name": "adzly", + "categoryId": 4, + "url": "http://www.adzly.com/", + "companyId": "adzly" + }, + "aemediatraffic": { + "name": "Aemediatraffic", + "categoryId": 6, + "url": null, + "companyId": null + }, + "aerify_media": { + "name": "Aerify Media", + "categoryId": 4, + "url": "http://aerifymedia.com/", + "companyId": "aerify_media" + }, + "aeris_weather": { + "name": "Aeris Weather", + "categoryId": 2, + "url": "https://www.aerisweather.com/", + "companyId": "aerisweather" + }, + "affectv": { + "name": "Hybrid Theory", + "categoryId": 4, + "url": "https://hybridtheory.com/", + "companyId": "affectv" + }, + "affilbox": { + "name": "Affilbox", + "categoryId": 4, + "url": "https://affilbox.com/", + "companyId": "affilbox", + "source": "AdGuard" + }, + "affiliate-b": { + "name": "Affiliate-B", + "categoryId": 4, + "url": "https://www.affiliate-b.com/", + "companyId": "affiliate_b" + }, + "affiliate4you": { + "name": "Affiliate4You", + "categoryId": 4, + "url": "http://www.affiliate4you.nl/", + "companyId": "family_blend" + }, + "affiliatebuzz": { + "name": "AffiliateBuzz", + "categoryId": 4, + "url": "http://www.affiliatebuzz.com/", + "companyId": "affiliatebuzz" + }, + "affiliatefuture": { + "name": "AffiliateFuture", + "categoryId": 4, + "url": "http://www.affiliatefuture.com", + "companyId": "affiliatefuture" + }, + "affiliatelounge": { + "name": "AffiliateLounge", + "categoryId": 4, + "url": "http://www.affiliatelounge.com/", + "companyId": "betsson_group_affiliates" + }, + "affiliation_france": { + "name": "Affiliation France", + "categoryId": 4, + "url": "http://www.affiliation-france.com/", + "companyId": "affiliation-france" + }, + "affiliator": { + "name": "Affiliator", + "categoryId": 4, + "url": "http://www.affiliator.com/", + "companyId": "affiliator" + }, + "affiliaweb": { + "name": "Affiliaweb", + "categoryId": 4, + "url": "http://affiliaweb.fr/", + "companyId": "affiliaweb" + }, + "affilinet": { + "name": "affilinet", + "categoryId": 4, + "url": "https://www.affili.net/", + "companyId": "axel_springer" + }, + "affimax": { + "name": "AffiMax", + "categoryId": 4, + "url": "https://www.affimax.de", + "companyId": "affimax" + }, + "affinity": { + "name": "Affinity", + "categoryId": 4, + "url": "http://www.affinity.com/", + "companyId": "affinity" + }, + "affinity.by": { + "name": "Affinity.by", + "categoryId": 4, + "url": "http://affinity.by", + "companyId": "affinity_digital_agency" + }, + "affiz_cpm": { + "name": "Affiz CPM", + "categoryId": 4, + "url": "http://cpm.affiz.com/home", + "companyId": "affiz_cpm" + }, + "afftrack": { + "name": "Afftrack", + "categoryId": 6, + "url": "http://www.afftrack.com/", + "companyId": "afftrack" + }, + "afgr2.com": { + "name": "afgr2.com", + "categoryId": 3, + "url": null, + "companyId": null + }, + "afilio": { + "name": "Afilio", + "categoryId": 6, + "url": "http://afilio.com.br/", + "companyId": "afilio" + }, + "afs_analystics": { + "name": "AFS Analystics", + "categoryId": 6, + "url": "https://www.afsanalytics.com/", + "companyId": "afs_analytics" + }, + "aftonbladet_ads": { + "name": "Aftonbladet Ads", + "categoryId": 4, + "url": "http://annonswebb.aftonbladet.se/", + "companyId": "aftonbladet" + }, + "aftv-serving.bid": { + "name": "aftv-serving.bid", + "categoryId": 4, + "url": null, + "companyId": null + }, + "aggregate_knowledge": { + "name": "Aggregate Knowledge", + "categoryId": 4, + "url": "http://www.aggregateknowledge.com/", + "companyId": "neustar" + }, + "agilone": { + "name": "AgilOne", + "categoryId": 6, + "url": "http://www.agilone.com/", + "companyId": "agilone" + }, + "agora": { + "name": "Agora", + "categoryId": 4, + "url": "https://www.agora.pl/", + "companyId": "agora_sa" + }, + "ahalogy": { + "name": "Ahalogy", + "categoryId": 7, + "url": "http://www.ahalogy.com/", + "companyId": "ahalogy" + }, + "ai_media_group": { + "name": "Ai Media Group", + "categoryId": 4, + "url": "http://aimediagroup.com/", + "companyId": "ai_media_group" + }, + "aidata": { + "name": "Aidata", + "categoryId": 4, + "url": "http://aidata.me/", + "companyId": "aidata" + }, + "aim4media": { + "name": "Aim4Media", + "categoryId": 4, + "url": "http://aim4media.com", + "companyId": "aim4media" + }, + "airbnb": { + "name": "Airbnb", + "categoryId": 6, + "url": "https://affiliate.withairbnb.com/", + "companyId": null + }, + "airbrake": { + "name": "Airbrake", + "categoryId": 4, + "url": "https://airbrake.io/", + "companyId": "airbrake" + }, + "airpr.com": { + "name": "AirPR", + "categoryId": 6, + "url": "https://airpr.com/", + "companyId": "airpr" + }, + "airpush": { + "name": "Airpush", + "categoryId": 4, + "url": "http://www.airpush.com/", + "companyId": "airpush" + }, + "akamai_technologies": { + "name": "Akamai Technologies", + "categoryId": 9, + "url": "https://www.akamai.com/", + "companyId": "akamai", + "source": "AdGuard" + }, + "akamoihd.net": { + "name": "akamoihd.net", + "categoryId": 12, + "url": null, + "companyId": null + }, + "akane": { + "name": "AkaNe", + "categoryId": 4, + "url": "http://akane-ad.com/", + "companyId": "akane" + }, + "akanoo": { + "name": "Akanoo", + "categoryId": 6, + "url": "http://www.akanoo.com/", + "companyId": "akanoo" + }, + "akavita": { + "name": "Akavita", + "categoryId": 4, + "url": "http://www.akavita.by/en", + "companyId": "akavita" + }, + "al_bawaba_advertising": { + "name": "Al Bawaba Advertising", + "categoryId": 4, + "url": "http://www.albawaba.com/advertising", + "companyId": "al_bawaba" + }, + "albacross": { + "name": "Albacross", + "categoryId": 4, + "url": "https://albacross.com", + "companyId": "albacross" + }, + "aldi-international.com": { + "name": "aldi-international.com", + "categoryId": 8, + "url": null, + "companyId": null + }, + "alenty": { + "name": "Alenty", + "categoryId": 4, + "url": "https://about.ads.microsoft.com/en-us/solutions/xandr/xandr-premium-programmatic-advertising", + "companyId": "microsoft", + "source": "AdGuard" + }, + "alephd.com": { + "name": "alephd", + "categoryId": 4, + "url": "https://www.alephd.com/", + "companyId": "verizon" + }, + "alexa_metrics": { + "name": "Alexa Metrics", + "categoryId": 6, + "url": "http://www.alexa.com/", + "companyId": "amazon_associates" + }, + "alexa_traffic_rank": { + "name": "Alexa Traffic Rank", + "categoryId": 4, + "url": "http://www.alexa.com/", + "companyId": "amazon_associates" + }, + "algolia.net": { + "name": "algolia", + "categoryId": 4, + "url": "https://www.algolia.com/", + "companyId": null + }, + "algovid.com": { + "name": "algovid.com", + "categoryId": 11, + "url": null, + "companyId": null + }, + "alibaba.com": { + "name": "Alibaba", + "categoryId": 8, + "url": "http://www.alibaba.com/", + "companyId": "softbank", + "source": "AdGuard" + }, + "alibaba_cloud": { + "name": "Alibaba Cloud", + "categoryId": 10, + "url": "https://www.alibabacloud.com/", + "companyId": "softbank", + "source": "AdGuard" + }, + "alibaba_ucbrowser": { + "name": "UC Browser", + "categoryId": 8, + "url": "https://ucweb.com/", + "companyId": "softbank", + "source": "AdGuard" + }, + "alipay.com": { + "name": "Alipay", + "categoryId": 2, + "url": "https://global.alipay.com/", + "companyId": "softbank", + "source": "AdGuard" + }, + "alivechat": { + "name": "AliveChat", + "categoryId": 2, + "url": "http://www.websitealive.com/", + "companyId": "websitealive" + }, + "allegro.pl": { + "name": "Allegro", + "categoryId": 8, + "url": "https://allegro.pl", + "companyId": "allegro.pl" + }, + "allin": { + "name": "Allin", + "categoryId": 6, + "url": "http://allin.com.br/", + "companyId": "allin" + }, + "allo-pages.fr": { + "name": "Allo-Pages", + "categoryId": 2, + "url": "http://www.allo-pages.fr/", + "companyId": "links_lab" + }, + "allotraffic": { + "name": "AlloTraffic", + "categoryId": 4, + "url": "http://www.allotraffic.com/", + "companyId": "allotraffic" + }, + "allure_media": { + "name": "Allure Media", + "categoryId": 4, + "url": "http://www.alluremedia.com.au", + "companyId": "allure_media" + }, + "allyes": { + "name": "Allyes", + "categoryId": 4, + "url": "http://www.allyes.com/", + "companyId": "allyes" + }, + "alooma": { + "name": "Alooma", + "categoryId": 4, + "url": "https://www.alooma.com/", + "companyId": "alooma" + }, + "altitude_digital": { + "name": "Altitude Digital", + "categoryId": 4, + "url": "http://www.altitudedigital.com/", + "companyId": "altitude_digital" + }, + "amadesa": { + "name": "Amadesa", + "categoryId": 4, + "url": "http://www.amadesa.com/", + "companyId": "amadesa" + }, + "amap": { + "name": "Amap", + "categoryId": 2, + "url": "https://www.amap.com/", + "companyId": "softbank", + "source": "AdGuard" + }, + "amazon": { + "name": "Amazon.com", + "categoryId": 8, + "url": "https://www.amazon.com", + "companyId": "amazon_associates" + }, + "amazon_adsystem": { + "name": "Amazon Advertising", + "categoryId": 4, + "url": "https://advertising.amazon.com/", + "companyId": "amazon_associates" + }, + "amazon_associates": { + "name": "Amazon Associates", + "categoryId": 4, + "url": "http://aws.amazon.com/associates/", + "companyId": "amazon_associates" + }, + "amazon_cdn": { + "name": "Amazon CDN", + "categoryId": 9, + "url": "https://www.amazon.com", + "companyId": "amazon_associates" + }, + "amazon_cloudfront": { + "name": "Amazon CloudFront", + "categoryId": 10, + "url": "https://aws.amazon.com/cloudfront/?nc1=h_ls", + "companyId": "amazon_associates" + }, + "amazon_mobile_ads": { + "name": "Amazon Mobile Ads", + "categoryId": 4, + "url": "http://www.amazon.com/", + "companyId": "amazon_associates" + }, + "amazon_payments": { + "name": "Amazon Payments", + "categoryId": 2, + "url": "https://pay.amazon.com/", + "companyId": "amazon_associates" + }, + "amazon_video": { + "name": "Amazon Instant Video", + "categoryId": 0, + "url": "https://www.amazon.com", + "companyId": "amazon_associates" + }, + "amazon_web_services": { + "name": "Amazon Web Services", + "categoryId": 10, + "url": "https://aws.amazon.com/", + "companyId": "amazon_associates" + }, + "ambient_digital": { + "name": "Ambient Digital", + "categoryId": 4, + "url": "http://www.adnetwork.vn/", + "companyId": "ambient_digital" + }, + "amgload.net": { + "name": "amgload.net", + "categoryId": 11, + "url": null, + "companyId": null + }, + "amoad": { + "name": "AMoAd", + "categoryId": 4, + "url": "http://www.amoad.com/", + "companyId": "amoad" + }, + "amobee": { + "name": "Amobee", + "categoryId": 4, + "url": "https://www.amobee.com/", + "companyId": "singtel" + }, + "amp_platform": { + "name": "AMP Platform", + "categoryId": 4, + "url": "http://www.collective.com/", + "companyId": "collective" + }, + "amplitude": { + "name": "Amplitude", + "categoryId": 6, + "url": "https://amplitude.com/", + "companyId": "amplitude" + }, + "ampproject.org": { + "name": "AMP Project", + "categoryId": 8, + "url": "https://www.ampproject.org/", + "companyId": "google" + }, + "anametrix": { + "name": "Anametrix", + "categoryId": 6, + "url": "http://anametrix.com/", + "companyId": "anametrix" + }, + "ancestry_cdn": { + "name": "Ancestry CDN", + "categoryId": 9, + "url": "https://www.ancestry.com/", + "companyId": "ancestry" + }, + "ancora": { + "name": "Ancora", + "categoryId": 6, + "url": "http://www.ancoramediasolutions.com/", + "companyId": "ancora" + }, + "android": { + "name": "Android", + "categoryId": 101, + "url": "https://www.android.com/", + "companyId": "google", + "source": "AdGuard" + }, + "anetwork": { + "name": "Anetwork", + "categoryId": 4, + "url": "http://anetwork.ir/", + "companyId": "anetwork" + }, + "aniview.com": { + "name": "AniView", + "categoryId": 4, + "url": "https://www.aniview.com/", + "companyId": null + }, + "anonymousads": { + "name": "AnonymousAds", + "categoryId": 4, + "url": "https://a-ads.com/", + "companyId": "anonymousads" + }, + "anormal_tracker": { + "name": "Anormal Tracker", + "categoryId": 6, + "url": "http://anormal-tracker.de/", + "companyId": "anormal-tracker" + }, + "answers_cloud_service": { + "name": "Answers Cloud Service", + "categoryId": 1, + "url": "http://www.answers.com/", + "companyId": "answers.com" + }, + "ants": { + "name": "Ants", + "categoryId": 7, + "url": "http://ants.vn/en/", + "companyId": "ants" + }, + "anvato": { + "name": "Anvato", + "categoryId": 0, + "url": "https://www.anvato.com/", + "companyId": "google" + }, + "anyclip": { + "name": "AnyClip", + "categoryId": 0, + "url": "https://anyclip.com", + "companyId": "anyclip" + }, + "aol_be_on": { + "name": "AOL Be On", + "categoryId": 4, + "url": "http://beon.aolnetworks.com/", + "companyId": "verizon" + }, + "aol_cdn": { + "name": "AOL CDN", + "categoryId": 6, + "url": "https://www.verizon.com/", + "companyId": "verizon" + }, + "aol_images_cdn": { + "name": "AOL Images CDN", + "categoryId": 5, + "url": "https://www.verizon.com/", + "companyId": "verizon" + }, + "apa.at": { + "name": "Apa", + "categoryId": 8, + "url": "http://www.apa.at/Site/index.de.html", + "companyId": "apa" + }, + "apester": { + "name": "Apester", + "categoryId": 4, + "url": "http://apester.com/", + "companyId": "apester" + }, + "apicit.net": { + "name": "apicit.net", + "categoryId": 4, + "url": null, + "companyId": null + }, + "aplus_analytics": { + "name": "Aplus Analytics", + "categoryId": 6, + "url": "https://ww.deluxe.com/", + "companyId": "deluxe" + }, + "browserevent": { + "name": "Browser Event", + "categoryId": 15, + "url": "https://browser.events.data.msn.cn", + "companyId": "Microsoft" + }, + "appcenter": { + "name": "Microsoft App Center", + "categoryId": 5, + "url": "https://appcenter.ms/", + "companyId": "microsoft", + "source": "AdGuard" + }, + "appcues": { + "name": "Appcues", + "categoryId": 2, + "url": "https://www.appcues.com/", + "companyId": null + }, + "appdynamics": { + "name": "AppDynamics", + "categoryId": 6, + "url": "http://www.appdynamics.com", + "companyId": "appdynamics" + }, + "appier": { + "name": "Appier", + "categoryId": 4, + "url": "http://www.appier.com/en/index.html", + "companyId": "appier" + }, + "apple": { + "name": "Apple", + "categoryId": 8, + "url": "https://www.apple.com/", + "companyId": "apple", + "source": "AdGuard" + }, + "apple_ads": { + "name": "Apple Search Ads", + "categoryId": 4, + "url": "https://searchads.apple.com/", + "companyId": "apple", + "source": "AdGuard" + }, + "applifier": { + "name": "Applifier", + "categoryId": 4, + "url": "http://www.applifier.com/", + "companyId": "applifier" + }, + "applovin": { + "name": "AppLovin", + "categoryId": 4, + "url": "https://www.applovin.com", + "companyId": "applovin" + }, + "appmetrx": { + "name": "AppMetrx", + "categoryId": 4, + "url": "http://www.engago.com", + "companyId": "engago_technologies" + }, + "appnexus": { + "name": "AppNexus", + "categoryId": 4, + "url": "https://about.ads.microsoft.com/en-us/solutions/xandr/xandr-premium-programmatic-advertising", + "companyId": "microsoft", + "source": "AdGuard" + }, + "appsflyer": { + "name": "AppsFlyer", + "categoryId": 101, + "url": "https://www.appsflyer.com/", + "companyId": "appsflyer", + "source": "AdGuard" + }, + "apptv": { + "name": "appTV", + "categoryId": 4, + "url": "http://www.apptv.com/", + "companyId": "apptv" + }, + "apture": { + "name": "Apture", + "categoryId": 2, + "url": "http://www.apture.com/", + "companyId": "google" + }, + "arcpublishing": { + "name": "Arc Publishing", + "categoryId": 6, + "url": "https://www.arcpublishing.com/", + "companyId": "arc_publishing" + }, + "ard.de": { + "name": "ard.de", + "categoryId": 0, + "url": null, + "companyId": null + }, + "are_you_a_human": { + "name": "Are You a Human", + "categoryId": 6, + "url": "https://areyouahuman.com/", + "companyId": "distil_networks" + }, + "arkoselabs.com": { + "name": "Arkose Labs", + "categoryId": 6, + "url": "https://www.arkoselabs.com/", + "companyId": null + }, + "art19": { + "name": "Art19", + "categoryId": 4, + "url": "https://art19.com/", + "companyId": "art19" + }, + "artimedia": { + "name": "Artimedia", + "categoryId": 4, + "url": "http://arti-media.net/en/", + "companyId": "artimedia" + }, + "artlebedev.ru": { + "name": "Art.Lebedev", + "categoryId": 8, + "url": "https://www.artlebedev.ru/", + "companyId": "art.lebedev_studio" + }, + "aruba_media_marketing": { + "name": "Aruba Media Marketing", + "categoryId": 4, + "url": "http://www.arubamediamarketing.it/", + "companyId": "aruba_media_marketing" + }, + "arvato_canvas_fp": { + "name": "Arvato Canvas FP", + "categoryId": 6, + "url": "https://www.arvato.com/", + "companyId": "arvato" + }, + "asambeauty.com": { + "name": "asambeauty.com", + "categoryId": 8, + "url": "https://www.asambeauty.com/", + "companyId": null + }, + "ask.com": { + "name": "Ask.com", + "categoryId": 7, + "url": null, + "companyId": null + }, + "aspnetcdn": { + "name": "Microsoft Ajax CDN", + "categoryId": 9, + "url": "https://www.microsoft.com/", + "companyId": "microsoft" + }, + "assemblyexchange": { + "name": "Assembly Exchange", + "categoryId": 4, + "url": "https://www.medialab.la/", + "companyId": "medialab", + "source": "AdGuard" + }, + "astronomer": { + "name": "Astronomer", + "categoryId": 6, + "url": "https://www.astronomer.io", + "companyId": "astronomer" + }, + "at_internet": { + "name": "AT Internet", + "categoryId": 6, + "url": "http://www.xiti.com/", + "companyId": "at_internet" + }, + "atedra": { + "name": "Atedra", + "categoryId": 4, + "url": "http://www.atedra.com/", + "companyId": "atedra" + }, + "atg_group": { + "name": "ATG Ad Tech Group", + "categoryId": 4, + "url": "https://ad-tech-group.com/", + "companyId": null + }, + "atg_optimization": { + "name": "ATG Optimization", + "categoryId": 4, + "url": "http://www.atg.com/en/products-services/optimization/", + "companyId": "oracle" + }, + "atg_recommendations": { + "name": "ATG Recommendations", + "categoryId": 4, + "url": "http://www.atg.com/en/products-services/optimization/recommendations/", + "companyId": "oracle" + }, + "atlas": { + "name": "Atlas", + "categoryId": 4, + "url": "https://atlassolutions.com", + "companyId": "facebook" + }, + "atlas_profitbuilder": { + "name": "Atlas ProfitBuilder", + "categoryId": 4, + "url": "http://www.atlassolutions.com/", + "companyId": "atlas" + }, + "atlassian.net": { + "name": "Atlassian", + "categoryId": 2, + "url": "https://www.atlassian.com/", + "companyId": "atlassian" + }, + "atlassian_marketplace": { + "name": "Atlassian Marketplace", + "categoryId": 9, + "url": "https://marketplace.atlassian.com/", + "companyId": "atlassian" + }, + "atomz_search": { + "name": "Atomz Search", + "categoryId": 2, + "url": "http://atomz.com/", + "companyId": "atomz" + }, + "atsfi_de": { + "name": "atsfi.de", + "categoryId": 11, + "url": "http://www.axelspringer.de/en/index.html", + "companyId": "axel_springer" + }, + "attracta": { + "name": "Attracta", + "categoryId": 4, + "url": "http://www.attracta.com/", + "companyId": "attracta" + }, + "attraqt": { + "name": "Attraqt", + "categoryId": 6, + "url": "http://www.locayta.com/", + "companyId": "attraqt" + }, + "audience2media": { + "name": "Audience2Media", + "categoryId": 4, + "url": "http://www.audience2media.com/", + "companyId": "audience2media" + }, + "audience_ad_network": { + "name": "Audience Ad Network", + "categoryId": 4, + "url": "http://www.audienceadnetwork.com", + "companyId": "bridgeline_digital" + }, + "audience_science": { + "name": "Audience Science", + "categoryId": 4, + "url": "http://www.audiencescience.com/", + "companyId": "audiencescience" + }, + "audiencerate": { + "name": "AudienceRate", + "categoryId": 4, + "url": "http://www.audiencerate.com/", + "companyId": "audiencerate" + }, + "audiencesquare.com": { + "name": "Audience Square", + "categoryId": 4, + "url": "http://www.audiencesquare.fr/", + "companyId": "audience_square" + }, + "auditude": { + "name": "Auditude", + "categoryId": 0, + "url": "http://www.auditude.com/", + "companyId": "adobe" + }, + "audtd.com": { + "name": "Auditorius", + "categoryId": 4, + "url": "http://www.auditorius.ru/", + "companyId": "auditorius" + }, + "augur": { + "name": "Augur", + "categoryId": 6, + "url": "https://www.augur.io/", + "companyId": "augur" + }, + "aumago": { + "name": "Aumago", + "categoryId": 4, + "url": "http://www.aumago.com/", + "companyId": "aumago" + }, + "aurea_clicktracks": { + "name": "Aurea ClickTracks", + "categoryId": 4, + "url": "http://www.clicktracks.com/", + "companyId": "aurea" + }, + "ausgezeichnet_org": { + "name": "ausgezeichnet.org", + "categoryId": 2, + "url": "http://ausgezeichnet.org/", + "companyId": null + }, + "australia.gov": { + "name": "Australia.gov", + "categoryId": 4, + "url": "http://www.australia.gov.au/", + "companyId": "australian_government" + }, + "auth0": { + "name": "Auth0 Inc.", + "categoryId": 6, + "url": "https://auth0.com/", + "companyId": "auth0" + }, + "autoid": { + "name": "AutoID", + "categoryId": 6, + "url": "http://www.autoid.com/", + "companyId": "autoid" + }, + "autonomy": { + "name": "Autonomy", + "categoryId": 4, + "url": "http://www.optimost.com/", + "companyId": "hp" + }, + "autonomy_campaign": { + "name": "Autonomy Campaign", + "categoryId": 4, + "url": "http://www.autonomy.com/", + "companyId": "hp" + }, + "autopilothq": { + "name": "Auto Pilot", + "categoryId": 4, + "url": "https://www.autopilothq.com/", + "companyId": "autopilothq" + }, + "autoscout24.com": { + "name": "Autoscout24", + "categoryId": 8, + "url": "http://www.scout24.com/", + "companyId": "scout24" + }, + "avail": { + "name": "Avail", + "categoryId": 4, + "url": "http://avail.com", + "companyId": "richrelevance" + }, + "avanser": { + "name": "AVANSER", + "categoryId": 2, + "url": "http://www.avanser.com.au/", + "companyId": "avanser" + }, + "avant_metrics": { + "name": "Avant Metrics", + "categoryId": 6, + "url": "http://www.avantlink.com/", + "companyId": "avantlink" + }, + "avantlink": { + "name": "AvantLink", + "categoryId": 4, + "url": "http://www.avantlink.com/", + "companyId": "avantlink" + }, + "avazu_network": { + "name": "Avazu Network", + "categoryId": 4, + "url": "http://www.avazudsp.net/", + "companyId": "avazu_network" + }, + "avenseo": { + "name": "Avenseo", + "categoryId": 4, + "url": "http://avenseo.com", + "companyId": "avenseo" + }, + "avid_media": { + "name": "Avid Media", + "categoryId": 0, + "url": "http://www.avidglobalmedia.com/", + "companyId": "avid_media" + }, + "avocet": { + "name": "Avocet", + "categoryId": 8, + "url": "https://avocet.io/", + "companyId": "avocet" + }, + "aweber": { + "name": "AWeber", + "categoryId": 4, + "url": "http://www.aweber.com/", + "companyId": "aweber_communications" + }, + "awin": { + "name": "AWIN", + "categoryId": 4, + "url": "https://www.awin.com", + "companyId": "axel_springer" + }, + "axill": { + "name": "Axill", + "categoryId": 4, + "url": "http://www.axill.com/", + "companyId": "axill" + }, + "azadify": { + "name": "Azadify", + "categoryId": 4, + "url": "http://azadify.com/engage/index.php", + "companyId": "azadify" + }, + "azure": { + "name": "Microsoft Azure", + "categoryId": 10, + "url": "https://azure.microsoft.com/", + "companyId": "microsoft", + "source": "AdGuard" + }, + "azure_blob_storage": { + "name": "Azure Blob Storage", + "categoryId": 8, + "url": "https://azure.microsoft.com/en-us/products/storage/blobs", + "companyId": "microsoft", + "source": "AdGuard" + }, + "azureedge.net": { + "name": "Azure CDN", + "categoryId": 9, + "url": "https://www.microsoft.com/", + "companyId": "microsoft" + }, + "b2bcontext": { + "name": "B2BContext", + "categoryId": 4, + "url": "http://b2bcontext.ru/", + "companyId": "b2bcontext" + }, + "b2bvideo": { + "name": "B2Bvideo", + "categoryId": 4, + "url": "http://b2bvideo.ru/", + "companyId": "b2bvideo" + }, + "babator.com": { + "name": "Babator", + "categoryId": 6, + "url": "https://www.babator.com/", + "companyId": null + }, + "back_beat_media": { + "name": "Back Beat Media", + "categoryId": 4, + "url": "http://www.backbeatmedia.com", + "companyId": "backbeat_media" + }, + "backtype_widgets": { + "name": "BackType Widgets", + "categoryId": 4, + "url": "http://www.backtype.com/widgets", + "companyId": "backtype" + }, + "bahn_de": { + "name": "Deutsche Bahn", + "categoryId": 8, + "url": null, + "companyId": null + }, + "baidu_ads": { + "name": "百度", + "categoryId": 4, + "url": "http://www.baidu.com/", + "companyId": "baidu" + }, + "baidu_static": { + "name": "百度统计", + "categoryId": 8, + "url": "https://www.baidu.com/", + "companyId": "baidu" + }, + "baletingo.com": { + "name": "baletingo.com", + "categoryId": 11, + "url": null, + "companyId": null + }, + "bangdom.com": { + "name": "BangBros", + "categoryId": 3, + "url": null, + "companyId": null + }, + "bankrate": { + "name": "Bankrate", + "categoryId": 4, + "url": "https://www.bankrate.com/", + "companyId": "bankrate" + }, + "banner_connect": { + "name": "Banner Connect", + "categoryId": 4, + "url": "http://www.bannerconnect.net/", + "companyId": "bannerconnect" + }, + "bannerflow.com": { + "name": "Bannerflow", + "categoryId": 4, + "url": "https://www.bannerflow.com/", + "companyId": "bannerflow" + }, + "bannerplay": { + "name": "BannerPlay", + "categoryId": 4, + "url": "http://www.bannerplay.com/", + "companyId": "bannerplay" + }, + "bannersnack": { + "name": "Bannersnack", + "categoryId": 4, + "url": "http://www.bannersnack.com/", + "companyId": "bannersnack" + }, + "barilliance": { + "name": "Barilliance", + "categoryId": 4, + "url": "http://www.barilliance.com/", + "companyId": "barilliance" + }, + "barometer": { + "name": "Barometer", + "categoryId": 2, + "url": "http://getbarometer.com/", + "companyId": "barometer" + }, + "basilic.io": { + "name": "basilic.io", + "categoryId": 6, + "url": "https://basilic.io/", + "companyId": null + }, + "batanga_network": { + "name": "Batanga Network", + "categoryId": 4, + "url": "http://www.batanganetwork.com/", + "companyId": "batanga_network" + }, + "batch_media": { + "name": "Batch Media", + "categoryId": 4, + "url": "http://batch.ba/", + "companyId": "prosieben_sat1" + }, + "bauer_media": { + "name": "Bauer Media", + "categoryId": 4, + "url": "http://www.bauermedia.com", + "companyId": "bauer_media" + }, + "baur.de": { + "name": "baur.de", + "categoryId": 8, + "url": null, + "companyId": null + }, + "baynote_observer": { + "name": "Baynote Observer", + "categoryId": 4, + "url": "http://www.baynote.com/", + "companyId": "baynote" + }, + "bazaarvoice": { + "name": "Bazaarvoice", + "categoryId": 2, + "url": "http://www.bazaarvoice.com/", + "companyId": "bazaarvoice" + }, + "bbci": { + "name": "BBC", + "categoryId": 10, + "url": "https://bbc.co.uk", + "companyId": null + }, + "bd4travel": { + "name": "bd4travel", + "categoryId": 4, + "url": "https://bd4travel.com/", + "companyId": "bd4travel" + }, + "be_opinion": { + "name": "Be Opinion", + "categoryId": 2, + "url": "http://beopinion.com/", + "companyId": "be_opinion" + }, + "beachfront": { + "name": "Beachfront Media", + "categoryId": 4, + "url": "http://beachfrontmedia.com/", + "companyId": null + }, + "beacon_ad_network": { + "name": "Beacon Ad Network", + "categoryId": 4, + "url": "http://beaconads.com/", + "companyId": "beacon_ad_network" + }, + "beampulse.com": { + "name": "BeamPulse", + "categoryId": 4, + "url": "https://en.beampulse.com/", + "companyId": null + }, + "beanstalk_data": { + "name": "Beanstalk Data", + "categoryId": 4, + "url": "http://www.beanstalkdata.com/", + "companyId": "beanstalk_data" + }, + "bebi": { + "name": "Bebi Media", + "categoryId": 4, + "url": "https://www.bebi.com/", + "companyId": "bebi_media" + }, + "beeketing.com": { + "name": "Beeketing", + "categoryId": 4, + "url": "https://beeketing.com/", + "companyId": "beeketing" + }, + "beeline.ru": { + "name": "Beeline", + "categoryId": 4, + "url": "https://moskva.beeline.ru/", + "companyId": null + }, + "beeswax": { + "name": "Beeswax", + "categoryId": 4, + "url": "http://beeswax.com/", + "companyId": "beeswax" + }, + "beezup": { + "name": "BeezUP", + "categoryId": 4, + "url": "http://www.beezup.co.uk/", + "companyId": "beezup" + }, + "begun": { + "name": "Begun", + "categoryId": 4, + "url": "http://begun.ru/", + "companyId": "begun" + }, + "behavioralengine": { + "name": "BehavioralEngine", + "categoryId": 4, + "url": "http://www.behavioralengine.com/", + "companyId": "behavioralengine" + }, + "belboon_gmbh": { + "name": "belboon GmbH", + "categoryId": 8, + "url": null, + "companyId": null + }, + "belco": { + "name": "Belco", + "categoryId": 2, + "url": "https://www.belco.io/", + "companyId": "belco" + }, + "belstat": { + "name": "BelStat", + "categoryId": 6, + "url": "http://www.belstat.com/", + "companyId": "belstat" + }, + "bemobile.ua": { + "name": "Bemobile", + "categoryId": 10, + "url": "http://bemobile.ua/en/", + "companyId": "bemobile" + }, + "bench_platform": { + "name": "Bench Platform", + "categoryId": 4, + "url": "https://benchplatform.com", + "companyId": "bench_platform" + }, + "betterttv": { + "name": "BetterTTV", + "categoryId": 7, + "url": "https://nightdev.com/betterttv/", + "companyId": "nightdev" + }, + "betweendigital.com": { + "name": "Between Digital", + "categoryId": 4, + "url": "http://betweendigital.ru/ssp", + "companyId": "between_digital" + }, + "bid.run": { + "name": "Bid Run", + "categoryId": 4, + "url": "http://bid.run/", + "companyId": "bid.run" + }, + "bidgear": { + "name": "BidGear", + "categoryId": 6, + "url": "https://bidgear.com/", + "companyId": "bidgear" + }, + "bidswitch": { + "name": "Bidswitch", + "categoryId": 4, + "url": "http://www.iponweb.com/", + "companyId": "iponweb" + }, + "bidtellect": { + "name": "Bidtellect", + "categoryId": 4, + "url": "https://www.bidtellect.com/", + "companyId": "bidtellect" + }, + "bidtheatre": { + "name": "BidTheatre", + "categoryId": 4, + "url": "http://www.bidtheatre.com/", + "companyId": "bidtheatre" + }, + "bidvertiser": { + "name": "BidVertiser", + "categoryId": 4, + "url": "http://www.bidvertiser.com/", + "companyId": "bidvertiser" + }, + "big_mobile": { + "name": "Big Mobile", + "categoryId": 4, + "url": "http://www.bigmobile.com/", + "companyId": "big_mobile" + }, + "bigcommerce.com": { + "name": "BigCommerce", + "categoryId": 6, + "url": "https://www.bigcommerce.com/", + "companyId": "bigcommerce" + }, + "bigmir.net": { + "name": "bigmir", + "categoryId": 6, + "url": "https://www.bigmir.net/", + "companyId": "bigmir-internet" + }, + "bigpoint": { + "name": "Bigpoint", + "categoryId": 8, + "url": null, + "companyId": null + }, + "bild": { + "name": "Bild.de", + "categoryId": 8, + "url": null, + "companyId": null + }, + "bilgin_pro": { + "name": "Bilgin Pro", + "categoryId": 4, + "url": "http://bilgin.pro/", + "companyId": "bilginpro" + }, + "bilin": { + "name": "Bilin", + "categoryId": 4, + "url": "http://www.bilintechnology.com/", + "companyId": "bilin" + }, + "bing_ads": { + "name": "Bing Ads", + "categoryId": 4, + "url": "https://bingads.microsoft.com/", + "companyId": "microsoft" + }, + "bing_maps": { + "name": "Bing Maps", + "categoryId": 2, + "url": "https://www.microsoft.com/", + "companyId": "microsoft" + }, + "binge": { + "name": "Binge", + "categoryId": 0, + "url": "https://binge.com.au/", + "companyId": "news_corp", + "source": "AdGuard" + }, + "binlayer": { + "name": "BinLayer", + "categoryId": 4, + "url": "http://binlayer.com/", + "companyId": "binlayer" + }, + "binotel": { + "name": "Binotel", + "categoryId": 4, + "url": "http://www.binotel.ua/", + "companyId": "binotel" + }, + "bisnode": { + "name": "Bisnode", + "categoryId": 4, + "url": "http://www.esendra.fi/", + "companyId": "bisnode" + }, + "bitcoin_miner": { + "name": "Bitcoin Miner", + "categoryId": 2, + "url": "http://www.bitcoinplus.com/", + "companyId": "bitcoin_plus" + }, + "bitly": { + "name": "Bitly", + "categoryId": 6, + "url": "https://bitly.com/", + "companyId": null + }, + "bitrix": { + "name": "Bitrix24", + "categoryId": 4, + "url": "https://www.bitrix24.com/", + "companyId": "bitrix24" + }, + "bitwarden": { + "name": "Bitwarden", + "categoryId": 8, + "url": "https://bitwarden.com/", + "companyId": "bitwarden", + "source": "AdGuard" + }, + "bizcn": { + "name": "Bizcn", + "categoryId": 4, + "url": "http://www.bizcn.com/", + "companyId": "bizcn" + }, + "blackdragon": { + "name": "BlackDragon", + "categoryId": 4, + "url": "http://www.jd.com/", + "companyId": "jing_dong" + }, + "blau.de": { + "name": "Blau", + "categoryId": 8, + "url": "https://www.blau.de/", + "companyId": null + }, + "blink_new_media": { + "name": "Blink New Media", + "categoryId": 4, + "url": "http://engagebdr.com/", + "companyId": "engage_bdr" + }, + "blis": { + "name": "Blis", + "categoryId": 6, + "url": "http://www.blis.com/index.php", + "companyId": "blis" + }, + "blogad": { + "name": "BlogAD", + "categoryId": 4, + "url": "http://www.blogad.com.tw/", + "companyId": "blogad" + }, + "blogbang": { + "name": "BlogBang", + "categoryId": 4, + "url": "http://www.blogbang.com/", + "companyId": "blogbang" + }, + "blogcatalog": { + "name": "BlogCatalog", + "categoryId": 2, + "url": "http://www.blogcatalog.com/", + "companyId": "blogcatalog" + }, + "blogcounter": { + "name": "BlogCounter", + "categoryId": 6, + "url": "http://blogcounter.com/", + "companyId": "adfire_gmbh" + }, + "blogfoster.com": { + "name": "Blogfoster", + "categoryId": 8, + "url": "http://www.blogfoster.com/", + "companyId": "blogfoster" + }, + "bloggerads": { + "name": "BloggerAds", + "categoryId": 4, + "url": "http://www.bloggerads.net/", + "companyId": "bloggerads" + }, + "blogher": { + "name": "BlogHer Ads", + "categoryId": 4, + "url": "https://www.blogher.com/", + "companyId": "penske_media_corp" + }, + "blogimg.jp": { + "name": "blogimg.jp", + "categoryId": 9, + "url": "https://line.me/", + "companyId": "line" + }, + "blogsmithmedia.com": { + "name": "blogsmithmedia.com", + "categoryId": 8, + "url": "https://www.verizon.com/", + "companyId": "verizon" + }, + "blogspot_com": { + "name": "blogspot.com", + "categoryId": 8, + "url": "http://www.google.com", + "companyId": "google" + }, + "bloomreach": { + "name": "BloomReach", + "categoryId": 4, + "url": "https://www.bloomreach.com/en", + "companyId": "bloomreach" + }, + "blue_cherry_group": { + "name": "Blue Cherry Group", + "categoryId": 4, + "url": "http://www.bluecherrygroup.com", + "companyId": "blue_cherry_group" + }, + "blue_seed": { + "name": "Blue Seed", + "categoryId": 4, + "url": "http://blueseed.tv/#/en/platform", + "companyId": "blue_seed" + }, + "blueconic.net": { + "name": "BlueConic Plugin", + "categoryId": 6, + "url": "https://www.blueconic.com/", + "companyId": "blueconic" + }, + "bluecore": { + "name": "Bluecore", + "categoryId": 4, + "url": "https://www.bluecore.com/", + "companyId": "triggermail" + }, + "bluekai": { + "name": "BlueKai", + "categoryId": 4, + "url": "http://www.bluekai.com/", + "companyId": "oracle" + }, + "bluelithium": { + "name": "Bluelithium", + "categoryId": 4, + "url": "http://www.bluelithium.com/", + "companyId": "verizon" + }, + "bluemetrix": { + "name": "Bluemetrix", + "categoryId": 4, + "url": "http://www.bluemetrix.ie/", + "companyId": "bluemetrix" + }, + "bluenewsupdate.info": { + "name": "bluenewsupdate.info", + "categoryId": 11, + "url": null, + "companyId": null + }, + "bluestreak": { + "name": "BlueStreak", + "categoryId": 4, + "url": "http://www.bluestreak.com/", + "companyId": "dentsu_aegis_network" + }, + "bluetriangle": { + "name": "Blue Triangle", + "categoryId": 6, + "url": "https://www.bluetriangle.com/", + "companyId": "blue_triangle" + }, + "bodelen.com": { + "name": "bodelen.com", + "categoryId": 4, + "url": null, + "companyId": null + }, + "bol_affiliate_program": { + "name": "BOL Affiliate Program", + "categoryId": 4, + "url": "http://www.bol.com", + "companyId": "bol.com" + }, + "bold": { + "name": "Bold", + "categoryId": 4, + "url": "https://boldcommerce.com/", + "companyId": "bold" + }, + "boldchat": { + "name": "Boldchat", + "categoryId": 2, + "url": "http://www.boldchat.com/", + "companyId": "boldchat" + }, + "boltdns.net": { + "name": "boltdns.net", + "categoryId": 11, + "url": null, + "companyId": null + }, + "bom": { + "name": "Bureau of Meteorology", + "categoryId": 9, + "url": "http://bom.gov.au/", + "companyId": "australian_government", + "source": "AdGuard" + }, + "bombora": { + "name": "Bombora", + "categoryId": 6, + "url": "http://bombora.com/", + "companyId": "bombora" + }, + "bongacams.com": { + "name": "bongacams.com", + "categoryId": 3, + "url": null, + "companyId": null + }, + "bonial": { + "name": "Bonial Connect", + "categoryId": 2, + "url": "http://www.bonial.com/", + "companyId": null + }, + "boo-box": { + "name": "boo-box", + "categoryId": 4, + "url": "http://boo-box.com/", + "companyId": "boo-box" + }, + "booking.com": { + "name": "Booking.com", + "categoryId": 8, + "url": null, + "companyId": null + }, + "boost_box": { + "name": "Boost Box", + "categoryId": 6, + "url": "http://www.boostbox.com.br/", + "companyId": "boost_box" + }, + "booster_video": { + "name": "Booster Video", + "categoryId": 0, + "url": "https://boostervideo.ru/", + "companyId": "booster_video" + }, + "bootstrap": { + "name": "Bootstrap CDN", + "categoryId": 9, + "url": "http://getbootstrap.com/", + "companyId": "bootstrap_cdn" + }, + "borrango.com": { + "name": "borrango.com", + "categoryId": 11, + "url": null, + "companyId": null + }, + "botscanner": { + "name": "BotScanner", + "categoryId": 6, + "url": "http://botscanner.com", + "companyId": "botscanner" + }, + "boudja.com": { + "name": "boudja.com", + "categoryId": 11, + "url": null, + "companyId": null + }, + "bounce_exchange": { + "name": "Bounce Exchange", + "categoryId": 4, + "url": "http://bounceexchange.com", + "companyId": "bounce_exchange" + }, + "bouncex": { + "name": "BounceX", + "categoryId": 4, + "url": "https://www.bouncex.com/", + "companyId": null + }, + "box_uk": { + "name": "Box UK", + "categoryId": 6, + "url": "http://www.clickdensity.com", + "companyId": "box_uk" + }, + "boxever": { + "name": "Boxever", + "categoryId": 4, + "url": "https://www.boxever.com/", + "companyId": "boxever" + }, + "brainient": { + "name": "Brainient", + "categoryId": 4, + "url": "http://www.brainient.com/", + "companyId": "brainient" + }, + "brainsins": { + "name": "BrainSINS", + "categoryId": 4, + "url": "http://www.brainsins.com/", + "companyId": "brainsins" + }, + "branch": { + "name": "Branch.io", + "categoryId": 101, + "url": "https://branch.io/", + "companyId": "branch_metrics_inc", + "source": "AdGuard" + }, + "branch_metrics": { + "name": "Branch", + "categoryId": 4, + "url": "https://branch.io/", + "companyId": "branch_metrics_inc" + }, + "brand_affinity": { + "name": "Brand Affinity", + "categoryId": 4, + "url": "http://brandaffinity.net/about", + "companyId": "yoonla" + }, + "brand_networks": { + "name": "Brand Networks", + "categoryId": 4, + "url": "http://www.xa.net/", + "companyId": "brand_networks" + }, + "brandmetrics.com": { + "name": "Brandmetrics.com", + "categoryId": 4, + "url": "https://www.brandmetrics.com/", + "companyId": null + }, + "brandreach": { + "name": "BrandReach", + "categoryId": 4, + "url": "http://www.brandreach.com/", + "companyId": "brandreach" + }, + "brandscreen": { + "name": "Brandscreen", + "categoryId": 4, + "url": "http://www.brandscreen.com/", + "companyId": "zenovia" + }, + "brandwire.tv": { + "name": "BrandWire", + "categoryId": 4, + "url": "https://brandwire.tv/", + "companyId": null + }, + "branica": { + "name": "Branica", + "categoryId": 4, + "url": "http://www.branica.com/", + "companyId": "branica" + }, + "braze": { + "name": "Braze, Inc.", + "categoryId": 6, + "url": "https://www.braze.com/", + "companyId": "braze", + "source": "AdGuard" + }, + "brealtime": { + "name": "EMX Digital", + "categoryId": 4, + "url": "https://emxdigital.com/", + "companyId": null + }, + "bridgetrack": { + "name": "BridgeTrack", + "categoryId": 4, + "url": "http://www.bridgetrack.com/", + "companyId": "bridgetrack" + }, + "brightcove": { + "name": "Brightcove", + "categoryId": 0, + "url": "http://www.brightcove.com/en/", + "companyId": "brightcove" + }, + "brightcove_player": { + "name": "Brightcove Player", + "categoryId": 0, + "url": "http://www.brightcove.com/en/", + "companyId": "brightcove" + }, + "brightedge": { + "name": "BrightEdge", + "categoryId": 4, + "url": "http://www.brightedge.com/", + "companyId": "brightedge" + }, + "brightfunnel": { + "name": "BrightFunnel", + "categoryId": 6, + "url": "http://www.brightfunnel.com/", + "companyId": "brightfunnel" + }, + "brightonclick.com": { + "name": "brightonclick.com", + "categoryId": 4, + "url": null, + "companyId": null + }, + "brightroll": { + "name": "BrightRoll", + "categoryId": 4, + "url": "http://www.brightroll.com/", + "companyId": "verizon" + }, + "brilig": { + "name": "Brilig", + "categoryId": 4, + "url": "http://www.brilig.com/", + "companyId": "dentsu_aegis_network" + }, + "brillen.de": { + "name": "brillen.de", + "categoryId": 8, + "url": "https://www.brillen.de/", + "companyId": null + }, + "broadstreet": { + "name": "Broadstreet", + "categoryId": 4, + "url": "http://broadstreetads.com/", + "companyId": "broadstreet" + }, + "bronto": { + "name": "Bronto", + "categoryId": 4, + "url": "http://bronto.com/", + "companyId": "bronto" + }, + "brow.si": { + "name": "Brow.si", + "categoryId": 4, + "url": "https://brow.si/", + "companyId": "brow.si" + }, + "browser-statistik": { + "name": "Browser-Statistik", + "categoryId": 6, + "url": "http://www.browser-statistik.de/", + "companyId": "browser-statistik" + }, + "browser_update": { + "name": "Browser Update", + "categoryId": 2, + "url": "http://www.browser-update.org/", + "companyId": "browser-update" + }, + "btncdn.com": { + "name": "btncdn.com", + "categoryId": 9, + "url": null, + "companyId": null + }, + "bubblestat": { + "name": "Bubblestat", + "categoryId": 4, + "url": "http://www.bubblestat.com/", + "companyId": "bubblestat" + }, + "buddy_media": { + "name": "Buddy Media", + "categoryId": 7, + "url": "http://www.salesforce.com/", + "companyId": "salesforce" + }, + "buffer_button": { + "name": "Buffer Button", + "categoryId": 7, + "url": "http://www.bufferapp.com/", + "companyId": "buffer" + }, + "bugherd.com": { + "name": "BugHerd", + "categoryId": 2, + "url": "https://bugherd.com", + "companyId": "bugherd" + }, + "bugsnag": { + "name": "Bugsnag", + "categoryId": 6, + "url": "https://bugsnag.com", + "companyId": "bugsnag" + }, + "bulkhentai.com": { + "name": "bulkhentai.com", + "categoryId": 3, + "url": null, + "companyId": null + }, + "bumlam.com": { + "name": "bumlam.com", + "categoryId": 11, + "url": null, + "companyId": null + }, + "bunchbox": { + "name": "Bunchbox", + "categoryId": 6, + "url": "https://app.bunchbox.co/login", + "companyId": "bunchbox" + }, + "burda": { + "name": "BurdaForward", + "categoryId": 4, + "url": "http://www.hubert-burda-media.com/", + "companyId": "hubert_burda_media" + }, + "burda_digital_systems": { + "name": "Burda Digital Systems", + "categoryId": 4, + "url": "http://www.hubert-burda-media.com/", + "companyId": "hubert_burda_media" + }, + "burst_media": { + "name": "Burst Media", + "categoryId": 4, + "url": "http://www.burstmedia.com/", + "companyId": "rhythmone" + }, + "burt": { + "name": "Burt", + "categoryId": 4, + "url": "http://www.burtcorp.com/", + "companyId": "burt" + }, + "businessonline_analytics": { + "name": "BusinessOnLine Analytics", + "categoryId": 6, + "url": "http://www.businessol.com/", + "companyId": "businessonline" + }, + "button": { + "name": "Button", + "categoryId": 4, + "url": "https://www.usebutton.com/", + "companyId": "button", + "source": "AdGuard" + }, + "buysellads": { + "name": "BuySellAds", + "categoryId": 4, + "url": "http://buysellads.com/", + "companyId": "buysellads.com" + }, + "buzzadexchange.com": { + "name": "buzzadexchange.com", + "categoryId": 4, + "url": null, + "companyId": null + }, + "buzzador": { + "name": "Buzzador", + "categoryId": 7, + "url": "http://www.buzzador.com", + "companyId": "buzzador" + }, + "buzzfeed": { + "name": "BuzzFeed", + "categoryId": 2, + "url": "http://www.buzzfeed.com", + "companyId": "buzzfeed" + }, + "bwbx.io": { + "name": "Bloomberg CDN", + "categoryId": 9, + "url": "https://www.bloomberg.com/", + "companyId": null + }, + "bypass": { + "name": "Bypass", + "categoryId": 4, + "url": "http://bypass.jp/", + "companyId": "united_inc" + }, + "c1_exchange": { + "name": "C1 Exchange", + "categoryId": 4, + "url": "http://c1exchange.com/", + "companyId": "c1_exchange" + }, + "c3_metrics": { + "name": "C3 Metrics", + "categoryId": 6, + "url": "http://c3metrics.com/", + "companyId": "c3_metrics" + }, + "c8_network": { + "name": "C8 Network", + "categoryId": 4, + "url": "http://c8.net.ua/", + "companyId": "c8_network" + }, + "cackle.me": { + "name": "Cackle", + "categoryId": 3, + "url": "https://cackle.me/", + "companyId": null + }, + "cadreon": { + "name": "Cadreon", + "categoryId": 4, + "url": "http://www.cadreon.com/", + "companyId": "cadreon" + }, + "call_page": { + "name": "Call Page", + "categoryId": 2, + "url": "https://www.callpage.io/", + "companyId": "call_page" + }, + "callbackhunter": { + "name": "CallbackHunter", + "categoryId": 2, + "url": "http://callbackhunter.com/main", + "companyId": "callbackhunter" + }, + "callbox": { + "name": "CallBox", + "categoryId": 2, + "url": "http://www.centuryinteractive.com", + "companyId": "callbox" + }, + "callibri": { + "name": "Callibri", + "categoryId": 4, + "url": "https://callibri.ru/", + "companyId": "callibri" + }, + "callrail": { + "name": "CallRail", + "categoryId": 2, + "url": "http://www.callrail.com/", + "companyId": "callrail" + }, + "calltracking": { + "name": "Calltracking", + "categoryId": 2, + "url": "https://calltracking.ru", + "companyId": "calltracking" + }, + "caltat.com": { + "name": "Caltat", + "categoryId": 2, + "url": "https://caltat.com/", + "companyId": null + }, + "cam-content.com": { + "name": "Cam-Content.com", + "categoryId": 3, + "url": "https://www.cam-content.com/", + "companyId": null + }, + "camakaroda.com": { + "name": "camakaroda.com", + "categoryId": 11, + "url": null, + "companyId": null + }, + "campus_explorer": { + "name": "Campus Explorer", + "categoryId": 6, + "url": "http://www.campusexplorer.com/", + "companyId": "campus_explorer" + }, + "canddi": { + "name": "CANDDI", + "categoryId": 6, + "url": "https://www.canddi.com/", + "companyId": "canddi" + }, + "canonical": { + "name": "Canonical", + "categoryId": 8, + "url": "https://canonical.com/", + "companyId": "canonical", + "source": "AdGuard" + }, + "canvas": { + "name": "Canvas", + "categoryId": 2, + "url": "https://www.canvas.net/", + "companyId": null + }, + "capitaldata": { + "name": "CapitalData", + "categoryId": 6, + "url": "https://www.capitaldata.fr/", + "companyId": "highco" + }, + "captora": { + "name": "Captora", + "categoryId": 4, + "url": "http://www.captora.com/", + "companyId": "captora" + }, + "capture_media": { + "name": "Capture Media", + "categoryId": 4, + "url": "http://capturemedia.ch/", + "companyId": "capture_media" + }, + "capturly": { + "name": "Capturly", + "categoryId": 6, + "url": "http://capturly.com/", + "companyId": "capturly" + }, + "carambola": { + "name": "Carambola", + "categoryId": 4, + "url": "http://carambo.la/", + "companyId": "carambola" + }, + "carbonads": { + "name": "Carbon Ads", + "categoryId": 4, + "url": "https://www.carbonads.net/", + "companyId": "buysellads.com" + }, + "cardinal": { + "name": "Cardinal", + "categoryId": 6, + "url": "https://www.cardinalcommerce.com/", + "companyId": "visa" + }, + "cardlytics": { + "name": "Cardlytics", + "categoryId": 6, + "url": "http://www.cardlytics.com/", + "companyId": null + }, + "carrot_quest": { + "name": "Carrot Quest", + "categoryId": 6, + "url": "http://www.carrotquest.io/", + "companyId": "carrot_quest" + }, + "cartstack": { + "name": "CartStack", + "categoryId": 2, + "url": "http://cartstack.com/", + "companyId": "cartstack" + }, + "caspion": { + "name": "Caspion", + "categoryId": 6, + "url": "http://caspion.com/", + "companyId": "caspion" + }, + "castle": { + "name": "Castle", + "categoryId": 2, + "url": "https://castle.io", + "companyId": "castle" + }, + "catchpoint": { + "name": "Catchpoint", + "categoryId": 6, + "url": "http://www.catchpoint.com/", + "companyId": "catchpoint_systems" + }, + "cbox": { + "name": "Cbox", + "categoryId": 2, + "url": "http://cbox.ws", + "companyId": "cbox" + }, + "cbs_interactive": { + "name": "CBS Interactive", + "categoryId": 0, + "url": "http://www.cbsinteractive.com/", + "companyId": "cbs_interactive" + }, + "ccm_benchmark": { + "name": "CCM Benchmark", + "categoryId": 4, + "url": "http://www.ccmbenchmark.com/", + "companyId": null + }, + "cdk_digital_marketing": { + "name": "CDK Digital Marketing", + "categoryId": 4, + "url": "http://www.cobaltgroup.com", + "companyId": "cdk_digital_marketing" + }, + "cdn-net.com": { + "name": "cdn-net.com", + "categoryId": 11, + "url": null, + "companyId": null + }, + "cdn13.com": { + "name": "cdn13.com", + "categoryId": 8, + "url": null, + "companyId": null + }, + "cdn77": { + "name": "CDN77", + "categoryId": 9, + "url": "https://www.cdn77.com/", + "companyId": null + }, + "cdnetworks.net": { + "name": "cdnetworks.net", + "categoryId": 9, + "url": "https://www.cdnetworks.com/", + "companyId": null + }, + "cdnnetwok_xyz": { + "name": "cdnnetwok.xyz", + "categoryId": 12, + "url": null, + "companyId": null + }, + "cdnondemand.org": { + "name": "cdnondemand.org", + "categoryId": 11, + "url": null, + "companyId": null + }, + "cdnsure.com": { + "name": "cdnsure.com", + "categoryId": 11, + "url": null, + "companyId": null + }, + "cdnvideo.com": { + "name": "CDNvideo", + "categoryId": 9, + "url": "https://www.cdnvideo.com/", + "companyId": "cdnvideo" + }, + "cdnwidget.com": { + "name": "cdnwidget.com", + "categoryId": 9, + "url": null, + "companyId": null + }, + "cedexis_radar": { + "name": "Cedexis Radar", + "categoryId": 6, + "url": "http://www.cedexis.com/products_radar.html", + "companyId": "cedexis" + }, + "celebrus": { + "name": "Celebrus", + "categoryId": 6, + "url": "https://www.celebrus.com/", + "companyId": "celebrus" + }, + "celtra": { + "name": "Celtra", + "categoryId": 0, + "url": "http://www.celtra.com/", + "companyId": "celtra" + }, + "cendyn": { + "name": "Cendyn", + "categoryId": 4, + "url": "http://www.cendyn.com/", + "companyId": "cendyn" + }, + "centraltag": { + "name": "CentralTag", + "categoryId": 4, + "url": "http://www.centraltag.com/", + "companyId": "centraltag" + }, + "centro": { + "name": "Centro", + "categoryId": 4, + "url": "http://centro.net/", + "companyId": "centro" + }, + "cerberus_speed-trap": { + "name": "Cerberus Speed-Trap", + "categoryId": 6, + "url": "http://cerberusip.com/", + "companyId": "cerberus" + }, + "certainsource": { + "name": "CertainSource", + "categoryId": 4, + "url": "http://www.ewaydirect.com", + "companyId": "certainsource" + }, + "certifica_metric": { + "name": "Certifica Metric", + "categoryId": 4, + "url": "http://www.comscore.com/Products_Services/Product_Index/Certifica_Metric", + "companyId": "comscore" + }, + "certona": { + "name": "Certona", + "categoryId": 4, + "url": "http://www.certona.com/products/recommendation.php", + "companyId": "certona" + }, + "chameleon": { + "name": "Chameleon", + "categoryId": 4, + "url": "http://chameleon.ad/", + "companyId": "chamaleon" + }, + "chango": { + "name": "Chango", + "categoryId": 4, + "url": "http://www.chango.com/", + "companyId": "rubicon_project" + }, + "channel_intelligence": { + "name": "Channel Intelligence", + "categoryId": 4, + "url": "http://www.channelintelligence.com/", + "companyId": "google" + }, + "channel_pilot_solutions": { + "name": "ChannelPilot Solutions", + "categoryId": 6, + "url": "https://www.channelpilot.de/", + "companyId": null + }, + "channeladvisor": { + "name": "ChannelAdvisor", + "categoryId": 4, + "url": "http://www.channeladvisor.com/", + "companyId": "channeladvisor" + }, + "channelfinder": { + "name": "ChannelFinder", + "categoryId": 4, + "url": "http://www.kpicentral.com/", + "companyId": "kaleidoscope_promotions" + }, + "chaordic": { + "name": "Chaordic", + "categoryId": 4, + "url": "https://www.chaordic.com.br/", + "companyId": "chaordic" + }, + "chartbeat": { + "name": "ChartBeat", + "categoryId": 6, + "url": "http://chartbeat.com/", + "companyId": "chartbeat" + }, + "chartboost": { + "name": "Chartboost", + "categoryId": 4, + "url": "http://chartboost.com/", + "companyId": "take-two", + "source": "AdGuard" + }, + "chaser": { + "name": "Chaser", + "categoryId": 2, + "url": "http://chaser.ru/", + "companyId": "chaser" + }, + "chat_beacon": { + "name": "Chat Beacon", + "categoryId": 2, + "url": "https://www.chatbeacon.io/", + "companyId": "chat_beacon" + }, + "chatango": { + "name": "Chatango", + "categoryId": 2, + "url": "http://www.chatango.com/", + "companyId": "chatango" + }, + "chatra": { + "name": "Chatra", + "categoryId": 2, + "url": "https://chatra.io", + "companyId": "chatra" + }, + "chaturbate.com": { + "name": "chaturbate.com", + "categoryId": 3, + "url": null, + "companyId": null + }, + "chatwing": { + "name": "ChatWing", + "categoryId": 2, + "url": "http://chatwing.com/", + "companyId": "chatwing" + }, + "checkmystats": { + "name": "CheckMyStats", + "categoryId": 4, + "url": "http://checkmystats.com.au", + "companyId": "checkmystats" + }, + "chefkoch_de": { + "name": "chefkoch.de", + "categoryId": 8, + "url": "http://chefkoch.de/", + "companyId": null + }, + "chin_media": { + "name": "Chin Media", + "categoryId": 4, + "url": "http://www.chinmedia.vn/#", + "companyId": "chin_media" + }, + "chinesean": { + "name": "ChineseAN", + "categoryId": 4, + "url": "http://www.chinesean.com/", + "companyId": "chinesean" + }, + "chitika": { + "name": "Chitika", + "categoryId": 4, + "url": "http://chitika.com/", + "companyId": "chitika" + }, + "choicestream": { + "name": "ChoiceStream", + "categoryId": 4, + "url": "http://www.choicestream.com/", + "companyId": "choicestream" + }, + "chute": { + "name": "Chute", + "categoryId": 5, + "url": "https://www.getchute.com/", + "companyId": "esw_capital" + }, + "circit": { + "name": "circIT", + "categoryId": 6, + "url": "http://www.circit.de/", + "companyId": null + }, + "circulate": { + "name": "Circulate", + "categoryId": 6, + "url": "http://circulate.com/", + "companyId": "circulate" + }, + "city_spark": { + "name": "City Spark", + "categoryId": 4, + "url": "http://www.cityspark.com/", + "companyId": "city_spark" + }, + "cityads": { + "name": "CityAds", + "categoryId": 4, + "url": "http://cityads.ru/", + "companyId": "cityads" + }, + "ciuvo.com": { + "name": "ciuvo.com", + "categoryId": 12, + "url": "https://www.ciuvo.com/", + "companyId": null + }, + "civey_widgets": { + "name": "Civey Widgets", + "categoryId": 2, + "url": "https://civey.com/", + "companyId": "civey" + }, + "civicscience.com": { + "name": "CivicScience", + "categoryId": 6, + "url": "https://civicscience.com/", + "companyId": "civicscience" + }, + "ciwebgroup": { + "name": "CIWebGroup", + "categoryId": 4, + "url": "http://www.ciwebgroup.com/", + "companyId": "ciwebgroup" + }, + "clcknads.pro": { + "name": "clcknads.pro", + "categoryId": 3, + "url": null, + "companyId": null + }, + "clear_pier": { + "name": "ClearPier", + "categoryId": 4, + "url": "http://clearpier.com/", + "companyId": "clear_pier" + }, + "clearbit.com": { + "name": "Clearbit", + "categoryId": 6, + "url": "https://clearbit.com/", + "companyId": "clearbit" + }, + "clearsale": { + "name": "clearsale", + "categoryId": 4, + "url": "https://www.clear.sale/", + "companyId": null + }, + "clearstream.tv": { + "name": "Clearstream.TV", + "categoryId": 4, + "url": "http://clearstream.tv/", + "companyId": "clearstream.tv" + }, + "clerk.io": { + "name": "Clerk.io", + "categoryId": 4, + "url": "https://clerk.io/", + "companyId": "clerk.io" + }, + "clever_push": { + "name": "Clever Push", + "categoryId": 6, + "url": "https://clevertap.com/", + "companyId": "clever_push" + }, + "clever_tap": { + "name": "CleverTap", + "categoryId": 6, + "url": "https://clevertap.com/", + "companyId": "clever_tap" + }, + "cleversite": { + "name": "Cleversite", + "categoryId": 2, + "url": "http://cleversite.ru/", + "companyId": "cleversite" + }, + "click360": { + "name": "Click360", + "categoryId": 6, + "url": "https://www.click360.io/", + "companyId": "click360" + }, + "click_and_chat": { + "name": "Click and Chat", + "categoryId": 2, + "url": "http://www.clickandchat.com/", + "companyId": "clickandchat" + }, + "click_back": { + "name": "Click Back", + "categoryId": 4, + "url": "http://www.clickback.com/", + "companyId": "clickback" + }, + "clickaider": { + "name": "ClickAider", + "categoryId": 4, + "url": "http://clickaider.com/", + "companyId": "clickaider" + }, + "clickaine": { + "name": "Clickaine", + "categoryId": 4, + "url": "https://clickaine.com/", + "companyId": "clickaine", + "source": "AdGuard" + }, + "clickbank": { + "name": "ClickBank", + "categoryId": 4, + "url": "http://www.clickbank.com/", + "companyId": "clickbank" + }, + "clickbank_proads": { + "name": "ClickBank ProAds", + "categoryId": 4, + "url": "http://www.cbproads.com/", + "companyId": "clickbank_proads" + }, + "clickbooth": { + "name": "Clickbooth", + "categoryId": 4, + "url": "http://www.clickbooth.com/", + "companyId": "clickbooth" + }, + "clickcease": { + "name": "ClickCease", + "categoryId": 2, + "url": "https://www.clickcease.com/", + "companyId": "click_cease" + }, + "clickcertain": { + "name": "ClickCertain", + "categoryId": 4, + "url": "http://www.clickcertain.com", + "companyId": "clickcertain" + }, + "clickdesk": { + "name": "ClickDesk", + "categoryId": 2, + "url": "https://www.clickdesk.com/", + "companyId": "clickdesk" + }, + "clickdimensions": { + "name": "ClickDimensions", + "categoryId": 4, + "url": "http://www.clickdimensions.com/", + "companyId": "clickdimensions" + }, + "clickequations": { + "name": "ClickEquations", + "categoryId": 4, + "url": "http://www.clickequations.com/", + "companyId": "acquisio" + }, + "clickexperts": { + "name": "ClickExperts", + "categoryId": 4, + "url": "http://clickexperts.com/corp/index.php?lang=en", + "companyId": "clickexperts" + }, + "clickforce": { + "name": "ClickForce", + "categoryId": 4, + "url": "http://www.clickforce.com.tw/", + "companyId": "clickforce" + }, + "clickinc": { + "name": "ClickInc", + "categoryId": 4, + "url": "http://www.clickinc.com", + "companyId": "clickinc" + }, + "clickintext": { + "name": "ClickInText", + "categoryId": 4, + "url": "http://www.clickintext.com/", + "companyId": "clickintext" + }, + "clickky": { + "name": "Clickky", + "categoryId": 4, + "url": "http://www.clickky.biz/", + "companyId": "clickky" + }, + "clickmeter": { + "name": "ClickMeter", + "categoryId": 4, + "url": "http://www.clickmeter.com", + "companyId": "clickmeter" + }, + "clickonometrics": { + "name": "Clickonometrics", + "categoryId": 4, + "url": "http://clickonometrics.pl/", + "companyId": "clickonometrics" + }, + "clickpoint": { + "name": "Clickpoint", + "categoryId": 4, + "url": "http://clickpoint.com/", + "companyId": "clickpoint" + }, + "clickprotector": { + "name": "ClickProtector", + "categoryId": 6, + "url": "http://www.clickprotector.com/", + "companyId": "clickprotector" + }, + "clickreport": { + "name": "ClickReport", + "categoryId": 6, + "url": "http://clickreport.com/", + "companyId": "clickreport" + }, + "clicks_thru_networks": { + "name": "Clicks Thru Networks", + "categoryId": 4, + "url": "http://www.clicksthrunetwork.com/", + "companyId": "clicksthrunetwork" + }, + "clicksor": { + "name": "Clicksor", + "categoryId": 4, + "url": "http://clicksor.com/", + "companyId": "clicksor" + }, + "clicktale": { + "name": "ClickTale", + "categoryId": 6, + "url": "http://www.clicktale.com/", + "companyId": "clicktale" + }, + "clicktripz": { + "name": "ClickTripz", + "categoryId": 4, + "url": "https://www.clicktripz.com", + "companyId": "clicktripz" + }, + "clickwinks": { + "name": "Clickwinks", + "categoryId": 4, + "url": "http://www.clickwinks.com/", + "companyId": "clickwinks" + }, + "clicky": { + "name": "Clicky", + "categoryId": 6, + "url": "http://getclicky.com/", + "companyId": "clicky" + }, + "clickyab": { + "name": "Clickyab", + "categoryId": 4, + "url": "https://www.clickyab.com/", + "companyId": "clickyab" + }, + "clicmanager": { + "name": "ClicManager", + "categoryId": 4, + "url": "http://www.clicmanager.fr/", + "companyId": "clicmanager" + }, + "clip_syndicate": { + "name": "Clip Syndicate", + "categoryId": 4, + "url": "http://www.clipsyndicate.com/", + "companyId": "clip_syndicate" + }, + "clixgalore": { + "name": "clixGalore", + "categoryId": 4, + "url": "http://www.clixgalore.com/", + "companyId": "clixgalore" + }, + "clixmetrix": { + "name": "ClixMetrix", + "categoryId": 4, + "url": "http://www.clixmetrix.com/", + "companyId": "clixmedia" + }, + "clixsense": { + "name": "ClixSense", + "categoryId": 4, + "url": "http://www.clixsense.com/", + "companyId": "clixsense" + }, + "cloud-media.fr": { + "name": "CloudMedia", + "categoryId": 4, + "url": "https://cloudmedia.fr/", + "companyId": null + }, + "cloudflare": { + "name": "CloudFlare", + "categoryId": 9, + "url": "https://www.cloudflare.com/", + "companyId": "cloudflare" + }, + "cloudimage.io": { + "name": "Cloudimage.io", + "categoryId": 9, + "url": "https://www.cloudimage.io/en/home", + "companyId": "scaleflex_sas" + }, + "cloudinary": { + "name": "Cloudinary", + "categoryId": 9, + "url": "https://cloudinary.com/", + "companyId": null + }, + "clove_network": { + "name": "Clove Network", + "categoryId": 4, + "url": "http://www.clovenetwork.com/", + "companyId": "clove_network" + }, + "clustrmaps": { + "name": "ClustrMaps", + "categoryId": 4, + "url": "http://www.clustrmaps.com/", + "companyId": "clustrmaps" + }, + "cnbc": { + "name": "CNBC", + "categoryId": 8, + "url": "https://www.cnbc.com/", + "companyId": "nbcuniversal" + }, + "cnetcontent.com": { + "name": "Cnetcontent", + "categoryId": 8, + "url": "http://cnetcontent.com/", + "companyId": "cbs_interactive" + }, + "cnstats": { + "name": "CNStats", + "categoryId": 6, + "url": "http://cnstats.ru/", + "companyId": "cnstats" + }, + "cnzz.com": { + "name": "Umeng", + "categoryId": 6, + "url": "http://www.umeng.com/", + "companyId": "umeng" + }, + "coadvertise": { + "name": "COADVERTISE", + "categoryId": 4, + "url": "http://www.coadvertise.com/", + "companyId": "coadvertise" + }, + "cobrowser": { + "name": "CoBrowser", + "categoryId": 2, + "url": "https://www.cobrowser.net/", + "companyId": "cobrowser.net" + }, + "codeonclick.com": { + "name": "codeonclick.com", + "categoryId": 11, + "url": null, + "companyId": null + }, + "cogocast": { + "name": "CogoCast", + "categoryId": 4, + "url": "http://www.cogocast.com", + "companyId": "cogocast" + }, + "coin_have": { + "name": "Coin Have", + "categoryId": 4, + "url": "https://coin-have.com/", + "companyId": "coin_have" + }, + "coin_traffic": { + "name": "Coin Traffic", + "categoryId": 2, + "url": "https://cointraffic.io/", + "companyId": "coin_traffic" + }, + "coinhive": { + "name": "Coinhive", + "categoryId": 8, + "url": "https://coinhive.com/", + "companyId": "coinhive" + }, + "coinurl": { + "name": "CoinURL", + "categoryId": 4, + "url": "https://coinurl.com/", + "companyId": "coinurl" + }, + "coll1onf.com": { + "name": "coll1onf.com", + "categoryId": 11, + "url": null, + "companyId": null + }, + "coll2onf.com": { + "name": "coll2onf.com", + "categoryId": 11, + "url": null, + "companyId": null + }, + "collarity": { + "name": "Collarity", + "categoryId": 4, + "url": "http://www.collarity.com/", + "companyId": "collarity" + }, + "columbia_online": { + "name": "Columbia Online", + "categoryId": 4, + "url": "https://www.colombiaonline.com/", + "companyId": "columbia_online" + }, + "combotag": { + "name": "ComboTag", + "categoryId": 4, + "url": "https://www.combotag.com/", + "companyId": null + }, + "comcast_technology_solutions": { + "name": "Comcast Technology Solutions", + "categoryId": 0, + "url": "https://www.comcasttechnologysolutions.com/", + "companyId": "comcast_technology_solutions" + }, + "comm100": { + "name": "Comm100", + "categoryId": 2, + "url": "http://www.comm100.com/", + "companyId": "comm100" + }, + "commerce_sciences": { + "name": "Commerce Sciences", + "categoryId": 4, + "url": "http://commercesciences.com/", + "companyId": "commerce_sciences" + }, + "commercehub": { + "name": "CommerceHub", + "categoryId": 4, + "url": "http://www.mercent.com/", + "companyId": "commercehub" + }, + "commercialvalue.org": { + "name": "commercialvalue.org", + "categoryId": 11, + "url": null, + "companyId": null + }, + "commission_junction": { + "name": "CJ Affiliate", + "categoryId": 4, + "url": "http://www.cj.com/", + "companyId": "conversant" + }, + "communicator_corp": { + "name": "Communicator Corp", + "categoryId": 4, + "url": "http://www.communicatorcorp.com/", + "companyId": "communicator_corp" + }, + "communigator": { + "name": "CommuniGator", + "categoryId": 6, + "url": "http://www.wowanalytics.co.uk/", + "companyId": "communigator" + }, + "competexl": { + "name": "CompeteXL", + "categoryId": 6, + "url": "http://www.compete.com/help/s12", + "companyId": "wpp" + }, + "complex_media_network": { + "name": "Complex Media", + "categoryId": 4, + "url": "https://www.complex.com/", + "companyId": "verizon" + }, + "comprigo": { + "name": "comprigo", + "categoryId": 12, + "url": "https://www.comprigo.com/", + "companyId": null + }, + "comscore": { + "name": "ComScore, Inc.", + "categoryId": 6, + "url": "https://www.comscore.com/", + "companyId": "comscore" + }, + "conative.de": { + "name": "CoNative", + "categoryId": 4, + "url": "http://www.conative.de/", + "companyId": null + }, + "condenastdigital.com": { + "name": "Condé Nast Digital", + "categoryId": 8, + "url": "http://www.condenast.com/", + "companyId": "conde_nast" + }, + "conduit": { + "name": "Conduit", + "categoryId": 4, + "url": "http://www.conduit.com/", + "companyId": "conduit" + }, + "confirmit": { + "name": "Confirmit", + "categoryId": 4, + "url": "http://confirmit.com/", + "companyId": "confirmit" + }, + "congstar.de": { + "name": "congstar.de", + "categoryId": 4, + "url": null, + "companyId": null + }, + "connatix.com": { + "name": "Connatix", + "categoryId": 4, + "url": "https://connatix.com/", + "companyId": "connatix" + }, + "connectad": { + "name": "ConnectAd", + "categoryId": 4, + "url": "https://connectad.io/", + "companyId": "connectad" + }, + "connecto": { + "name": "Connecto", + "categoryId": 6, + "url": "http://www.connecto.io/", + "companyId": "connecto" + }, + "connexity": { + "name": "Connexity", + "categoryId": 4, + "url": "http://www.connexity.com", + "companyId": "shopzilla" + }, + "connextra": { + "name": "Connextra", + "categoryId": 4, + "url": "http://connextra.com/", + "companyId": "connextra" + }, + "constant_contact": { + "name": "Constant Contact", + "categoryId": 4, + "url": "http://www.constantcontact.com/index.jsp", + "companyId": "constant_contact" + }, + "consumable": { + "name": "Consumable", + "categoryId": 4, + "url": "http://consumable.com/index.html", + "companyId": "giftconnect" + }, + "contact_at_once": { + "name": "Contact At Once!", + "categoryId": 2, + "url": "http://www.contactatonce.com/", + "companyId": "contact_at_once!" + }, + "contact_impact": { + "name": "Contact Impact", + "categoryId": 4, + "url": "https://www.contactimpact.de/", + "companyId": "axel_springer" + }, + "contactme": { + "name": "ContactMe", + "categoryId": 4, + "url": "http://www.contactme.com", + "companyId": "contactme" + }, + "contaxe": { + "name": "Contaxe", + "categoryId": 5, + "url": "http://www.contaxe.com/", + "companyId": "contaxe" + }, + "content.ad": { + "name": "Content.ad", + "categoryId": 4, + "url": "https://www.content.ad/", + "companyId": "content.ad" + }, + "content_insights": { + "name": "Content Insights", + "categoryId": 6, + "url": "https://contentinsights.com/", + "companyId": "content_insights" + }, + "contentexchange.me": { + "name": "Content Exchange", + "categoryId": 6, + "url": "https://www.contentexchange.me/", + "companyId": "i.r.v." + }, + "contentful_gmbh": { + "name": "Contentful GmbH", + "categoryId": 9, + "url": "https://www.contentful.com/", + "companyId": "contentful_gmbh" + }, + "contentpass": { + "name": "ContentPass", + "categoryId": 6, + "url": "https://www.contentpass.de/", + "companyId": "contentpass" + }, + "contentsquare.net": { + "name": "ContentSquare", + "categoryId": 4, + "url": "https://www.contentsquare.com/", + "companyId": "content_square" + }, + "contentwrx": { + "name": "Contentwrx", + "categoryId": 6, + "url": "http://contentwrx.com/", + "companyId": "contentwrx" + }, + "context": { + "name": "C|ON|TEXT", + "categoryId": 4, + "url": "http://c-on-text.com", + "companyId": "c_on_text" + }, + "context.ad": { + "name": "Context.ad", + "categoryId": 4, + "url": "http://contextad.pl/", + "companyId": "context.ad" + }, + "continum_net": { + "name": "continum.net", + "categoryId": 10, + "url": "http://continum.net/", + "companyId": null + }, + "contribusource": { + "name": "Contribusource", + "categoryId": 4, + "url": "https://www.contribusource.com/", + "companyId": "contribusource" + }, + "convergetrack": { + "name": "ConvergeTrack", + "categoryId": 6, + "url": "http://www.convergedirect.com/technology/convergetrack.shtml", + "companyId": "convergedirect" + }, + "conversant": { + "name": "Conversant", + "categoryId": 4, + "url": "https://www.conversantmedia.eu/", + "companyId": "conversant" + }, + "conversio": { + "name": "CM Commerce", + "categoryId": 6, + "url": "https://cm-commerce.com/", + "companyId": "conversio" + }, + "conversion_logic": { + "name": "Conversion Logic", + "categoryId": 6, + "url": "http://www.conversionlogic.com/", + "companyId": "conversion_logic" + }, + "conversionruler": { + "name": "ConversionRuler", + "categoryId": 4, + "url": "http://www.conversionruler.com/", + "companyId": "market_ruler" + }, + "conversions_box": { + "name": "Conversions Box", + "categoryId": 7, + "url": "http://www.conversionsbox.com/", + "companyId": "conversions_box" + }, + "conversions_on_demand": { + "name": "Conversions On Demand", + "categoryId": 5, + "url": "https://www.conversionsondemand.com/", + "companyId": "conversions_on_demand" + }, + "conversive": { + "name": "Conversive", + "categoryId": 4, + "url": "http://www.conversive.nl/", + "companyId": "conversive" + }, + "convert": { + "name": "Convert", + "categoryId": 6, + "url": "https://www.convert.com/", + "companyId": "convert" + }, + "convertfox": { + "name": "ConvertFox", + "categoryId": 2, + "url": "https://convertfox.com/", + "companyId": "convertfox" + }, + "convertro": { + "name": "Convertro", + "categoryId": 4, + "url": "http://www.convertro.com/", + "companyId": "verizon" + }, + "conviva": { + "name": "Conviva", + "categoryId": 6, + "url": "http://www.conviva.com/", + "companyId": "conviva" + }, + "cookie_consent": { + "name": "Cookie Consent", + "categoryId": 5, + "url": "https://silktide.com/", + "companyId": "silktide" + }, + "cookie_script": { + "name": "Cookie Script", + "categoryId": 5, + "url": "https://cookie-script.com/", + "companyId": "cookie_script" + }, + "cookiebot": { + "name": "Cookiebot", + "categoryId": 5, + "url": "https://www.cookiebot.com/en/", + "companyId": "cybot" + }, + "cookieq": { + "name": "CookieQ", + "categoryId": 5, + "url": "http://cookieq.com/CookieQ", + "companyId": "baycloud" + }, + "cooliris": { + "name": "Cooliris", + "categoryId": 2, + "url": "http://www.cooliris.com", + "companyId": "cooliris" + }, + "copacet": { + "name": "Copacet", + "categoryId": 4, + "url": "http://copacet.com/", + "companyId": "copacet" + }, + "coreaudience": { + "name": "CoreAudience", + "categoryId": 4, + "url": "http://www.redaril.com/", + "companyId": "hearst" + }, + "coremotives": { + "name": "CoreMotives", + "categoryId": 4, + "url": "http://coremotives.com/", + "companyId": "coremotives" + }, + "coull": { + "name": "Coull", + "categoryId": 4, + "url": "http://coull.com/", + "companyId": "coull" + }, + "cpm_rocket": { + "name": "CPM Rocket", + "categoryId": 4, + "url": "http://www.cpmrocket.com/", + "companyId": "cpm_rocket" + }, + "cpmprofit": { + "name": "CPMProfit", + "categoryId": 4, + "url": "http://www.cpmprofit.com/", + "companyId": "cpmprofit" + }, + "cpmstar": { + "name": "CPMStar", + "categoryId": 4, + "url": "http://www.cpmstar.com", + "companyId": "cpmstar" + }, + "cpx.to": { + "name": "Captify", + "categoryId": 4, + "url": "https://www.captify.co.uk/", + "companyId": "captify" + }, + "cq_counter": { + "name": "CQ Counter", + "categoryId": 6, + "url": "http://www.cqcounter.com/", + "companyId": "cq_counter" + }, + "cqq5id8n.com": { + "name": "cqq5id8n.com", + "categoryId": 11, + "url": null, + "companyId": null + }, + "cquotient.com": { + "name": "CQuotient", + "categoryId": 6, + "url": "https://www.demandware.com/#cquotient", + "companyId": "salesforce" + }, + "craftkeys": { + "name": "CraftKeys", + "categoryId": 4, + "url": "http://craftkeys.com/", + "companyId": "craftkeys" + }, + "crakmedia_network": { + "name": "Crakmedia Network", + "categoryId": 4, + "url": "http://crakmedia.com/", + "companyId": "crakmedia_network" + }, + "crankyads": { + "name": "CrankyAds", + "categoryId": 4, + "url": "http://www.crankyads.com", + "companyId": "crankyads" + }, + "crashlytics": { + "name": "Crashlytics", + "categoryId": 101, + "url": "https://crashlytics.com/", + "companyId": "google", + "source": "AdGuard" + }, + "crazy_egg": { + "name": "Crazy Egg", + "categoryId": 6, + "url": "http://crazyegg.com/", + "companyId": "crazy_egg" + }, + "creafi": { + "name": "Creafi", + "categoryId": 4, + "url": "http://www.creafi.com/en/home/", + "companyId": "crazy4media" + }, + "createjs": { + "name": "CreateJS", + "categoryId": 9, + "url": "https://createjs.com/", + "companyId": null + }, + "creative_commons": { + "name": "Creative Commons", + "categoryId": 8, + "url": "https://creativecommons.org/", + "companyId": "creative_commons_corp" + }, + "crimsonhexagon_com": { + "name": "Brandwatch", + "categoryId": 6, + "url": "https://www.brandwatch.com/", + "companyId": "brandwatch" + }, + "crimtan": { + "name": "Crimtan", + "categoryId": 4, + "url": "http://www.crimtan.com/", + "companyId": "crimtan" + }, + "crisp": { + "name": "Crisp", + "categoryId": 2, + "url": "https://crisp.chat/", + "companyId": "crisp" + }, + "criteo": { + "name": "Criteo", + "categoryId": 4, + "url": "http://www.criteo.com/", + "companyId": "criteo" + }, + "crm4d": { + "name": "CRM4D", + "categoryId": 6, + "url": "https://crm4d.com/", + "companyId": "crm4d" + }, + "crossengage": { + "name": "CrossEngage", + "categoryId": 6, + "url": "https://www.crossengage.io/", + "companyId": "crossengage" + }, + "crosspixel": { + "name": "Cross Pixel", + "categoryId": 4, + "url": "http://crosspixel.net/", + "companyId": "cross_pixel" + }, + "crosssell.info": { + "name": "econda Cross Sell", + "categoryId": 4, + "url": "https://www.econda.de/en/solutions/personalization/cross-sell/", + "companyId": "econda" + }, + "crossss": { + "name": "Crossss", + "categoryId": 4, + "url": "http://crossss.ru/", + "companyId": "crossss" + }, + "crowd_ignite": { + "name": "Crowd Ignite", + "categoryId": 4, + "url": "http://get.crowdignite.com/", + "companyId": "gorilla_nation_media" + }, + "crowd_science": { + "name": "Crowd Science", + "categoryId": 4, + "url": "http://www.crowdscience.com/", + "companyId": "crowd_science" + }, + "crowdprocess": { + "name": "CrowdProcess", + "categoryId": 2, + "url": "https://crowdprocess.com", + "companyId": "crowdprocess" + }, + "crowdynews": { + "name": "Crowdynews", + "categoryId": 7, + "url": "http://www.crowdynews.com/", + "companyId": "crowdynews" + }, + "crownpeak": { + "name": "Crownpeak", + "categoryId": 5, + "url": "https://www.crownpeak.com/", + "companyId": "crownpeak" + }, + "cryptoloot_miner": { + "name": "CryptoLoot Miner", + "categoryId": 4, + "url": "https://crypto-loot.com/", + "companyId": "cryptoloot" + }, + "ctnetwork": { + "name": "CTnetwork", + "categoryId": 4, + "url": "http://ctnetwork.hu/", + "companyId": "ctnetwork" + }, + "ctrlshift": { + "name": "CtrlShift", + "categoryId": 4, + "url": "http://www.adzcentral.com/", + "companyId": "ctrlshift" + }, + "cubed": { + "name": "Cubed", + "categoryId": 6, + "url": "http://withcubed.com/", + "companyId": "cubed_attribution" + }, + "cuelinks": { + "name": "CueLinks", + "categoryId": 4, + "url": "http://www.cuelinks.com/", + "companyId": "cuelinks" + }, + "cup_interactive": { + "name": "Cup Interactive", + "categoryId": 4, + "url": "http://www.cupinteractive.com/", + "companyId": "cup_interactive" + }, + "curse.com": { + "name": "Curse", + "categoryId": 8, + "url": "https://www.curse.com/", + "companyId": "amazon_associates" + }, + "cursecdn.com": { + "name": "Curse CDN", + "categoryId": 9, + "url": "https://www.curse.com/", + "companyId": "amazon_associates" + }, + "customer.io": { + "name": "Customer.io", + "categoryId": 2, + "url": "http://www.customer.io/", + "companyId": "customer.io" + }, + "customerly": { + "name": "Customerly", + "categoryId": 2, + "url": "https://www.customerly.io/", + "companyId": "customerly" + }, + "cxense": { + "name": "cXense", + "categoryId": 4, + "url": "http://www.cxense.com/", + "companyId": "cxense" + }, + "cxo.name": { + "name": "Chip Analytics", + "categoryId": 6, + "url": "http://www.chip.de/", + "companyId": null + }, + "cyber_wing": { + "name": "Cyber Wing", + "categoryId": 4, + "url": "http://www.cyberwing.co.jp/", + "companyId": "cyberwing" + }, + "cybersource": { + "name": "CyberSource", + "categoryId": 6, + "url": "https://www.cybersource.com/en-gb.html", + "companyId": "visa" + }, + "cygnus": { + "name": "Cygnus", + "categoryId": 4, + "url": "http://www.cygnus.com/", + "companyId": "cygnus" + }, + "da-ads.com": { + "name": "da-ads.com", + "categoryId": 4, + "url": null, + "companyId": null + }, + "dailymail.co.uk": { + "name": "Daily Mail", + "categoryId": 8, + "url": "http://www.dailymail.co.uk/home/index.html", + "companyId": "dmg_media" + }, + "dailymotion": { + "name": "Dailymotion", + "categoryId": 8, + "url": "https://vivendi.com/", + "companyId": "vivendi" + }, + "dailymotion_advertising": { + "name": "Dailymotion Advertising", + "categoryId": 4, + "url": "http://advertising.dailymotion.com/", + "companyId": "vivendi" + }, + "daisycon": { + "name": "Daisycon", + "categoryId": 4, + "url": "http://www.daisycon.com", + "companyId": "daisycon" + }, + "dantrack.net": { + "name": "DANtrack", + "categoryId": 4, + "url": "http://media.dantrack.net/privacy/", + "companyId": "dentsu_aegis_network" + }, + "darwin_marketing": { + "name": "Darwin Marketing", + "categoryId": 4, + "url": "http://www.darwinmarketing.com/", + "companyId": "darwin_marketing" + }, + "dashboard_ad": { + "name": "Dashboard Ad", + "categoryId": 4, + "url": "http://www.dashboardad.com/", + "companyId": "premium_access" + }, + "datacaciques.com": { + "name": "DataCaciques", + "categoryId": 6, + "url": "http://www.datacaciques.com/", + "companyId": null + }, + "datacoral": { + "name": "Datacoral", + "categoryId": 4, + "url": "https://datacoral.com/", + "companyId": "datacoral" + }, + "datacrushers": { + "name": "Datacrushers", + "categoryId": 6, + "url": "https://www.datacrushers.com/", + "companyId": "datacrushers" + }, + "datadome": { + "name": "DataDome", + "categoryId": 6, + "url": "https://datadome.co/", + "companyId": "datadome" + }, + "datalicious_datacollector": { + "name": "Datalicious DataCollector", + "categoryId": 6, + "url": "http://www.datalicious.com/", + "companyId": "datalicious" + }, + "datalicious_supertag": { + "name": "Datalicious SuperTag", + "categoryId": 5, + "url": "http://www.datalicious.com/", + "companyId": "datalicious" + }, + "datalogix": { + "name": "Datalogix", + "categoryId": 4, + "url": "https://www.oracle.com/corporate/acquisitions/datalogix/", + "companyId": "oracle" + }, + "datamind.ru": { + "name": "DataMind", + "categoryId": 4, + "url": "http://datamind.ru/", + "companyId": "datamind" + }, + "datatables": { + "name": "DataTables", + "categoryId": 2, + "url": "https://datatables.net/", + "companyId": null + }, + "datawrkz": { + "name": "Datawrkz", + "categoryId": 4, + "url": "http://datawrkz.com/", + "companyId": "datawrkz" + }, + "dataxpand": { + "name": "Dataxpand", + "categoryId": 4, + "url": "http://dataxpand.com/", + "companyId": "dataxpand" + }, + "dataxu": { + "name": "DataXu", + "categoryId": 4, + "url": "http://www.dataxu.com/", + "companyId": "dataxu" + }, + "datds.net": { + "name": "datds.net", + "categoryId": 12, + "url": null, + "companyId": null + }, + "datonics": { + "name": "Datonics", + "categoryId": 4, + "url": "http://datonics.com/", + "companyId": "almondnet" + }, + "datran": { + "name": "Pulsepoint", + "categoryId": 4, + "url": "https://www.pulsepoint.com/", + "companyId": "pulsepoint_ad_exchange" + }, + "davebestdeals.com": { + "name": "davebestdeals.com", + "categoryId": 12, + "url": null, + "companyId": null + }, + "dawandastatic.com": { + "name": "Dawanda CDN", + "categoryId": 8, + "url": "https://dawanda.com/", + "companyId": null + }, + "dc_stormiq": { + "name": "DC StormIQ", + "categoryId": 4, + "url": "http://www.dc-storm.com/", + "companyId": "dc_storm" + }, + "dcbap.com": { + "name": "dcbap.com", + "categoryId": 12, + "url": null, + "companyId": null + }, + "dcmn.com": { + "name": "DCMN", + "categoryId": 4, + "url": "https://www.dcmn.com/", + "companyId": null + }, + "de_persgroep": { + "name": "De Persgroep", + "categoryId": 4, + "url": "https://www.persgroep.nl", + "companyId": "de_persgroep" + }, + "deadline_funnel": { + "name": "Deadline Funnel", + "categoryId": 6, + "url": "https://deadlinefunnel.com/", + "companyId": "deadline_funnel" + }, + "dealer.com": { + "name": "Dealer.com", + "categoryId": 6, + "url": "http://www.dealer.com/", + "companyId": "dealer.com" + }, + "decibel_insight": { + "name": "Decibel Insight", + "categoryId": 6, + "url": "https://www.decibelinsight.com/", + "companyId": "decibel_insight" + }, + "dedicated_media": { + "name": "Dedicated Media", + "categoryId": 4, + "url": "http://www.dedicatedmedia.com/", + "companyId": "dedicated_media" + }, + "deep.bi": { + "name": "Deep.BI", + "categoryId": 6, + "url": "http://www.deep.bi/#", + "companyId": "deep.bi" + }, + "deepintent.com": { + "name": "DeepIntent", + "categoryId": 4, + "url": "https://www.deepintent.com/", + "companyId": "deep_intent" + }, + "defpush.com": { + "name": "defpush.com", + "categoryId": 11, + "url": null, + "companyId": null + }, + "deichmann.com": { + "name": "deichmann.com", + "categoryId": 4, + "url": null, + "companyId": null + }, + "delacon": { + "name": "Delacon", + "categoryId": 6, + "url": "http://www.delacon.com.au/", + "companyId": "delacon" + }, + "delivr": { + "name": "Delivr", + "categoryId": 6, + "url": "http://www.percentmobile.com/", + "companyId": "delivr" + }, + "delta_projects": { + "name": "Delta Projects", + "categoryId": 4, + "url": "http://www.adaction.se/", + "companyId": "delta_projects" + }, + "deluxe": { + "name": "Deluxe", + "categoryId": 6, + "url": "https://ww.deluxe.com/", + "companyId": "deluxe" + }, + "delve_networks": { + "name": "Delve Networks", + "categoryId": 7, + "url": "http://www.delvenetworks.com/", + "companyId": "limelight_networks" + }, + "demandbase": { + "name": "Demandbase", + "categoryId": 4, + "url": "http://www.demandbase.com/", + "companyId": "demandbase" + }, + "demandmedia": { + "name": "DemandMedia", + "categoryId": 4, + "url": "http://www.demandmedia.com", + "companyId": "leaf_group" + }, + "deqwas": { + "name": "Deqwas", + "categoryId": 6, + "url": "http://www.deqwas.com/", + "companyId": "deqwas" + }, + "devatics": { + "name": "Devatics", + "categoryId": 2, + "url": "http://www.devatics.co.uk/", + "companyId": "devatics" + }, + "developer_media": { + "name": "Developer Media", + "categoryId": 4, + "url": "http://www.developermedia.com/", + "companyId": "developer_media" + }, + "deviantart.net": { + "name": "deviantart.net", + "categoryId": 8, + "url": null, + "companyId": null + }, + "dex_platform": { + "name": "DEX Platform", + "categoryId": 4, + "url": "http://blueadvertise.com/", + "companyId": "dex_platform" + }, + "dgm": { + "name": "dgm", + "categoryId": 4, + "url": "http://www.dgm-au.com/", + "companyId": "apd" + }, + "dialogtech": { + "name": "Dialogtech", + "categoryId": 6, + "url": "https://www.dialogtech.com/", + "companyId": "dialogtech" + }, + "dianomi": { + "name": "Dianomi", + "categoryId": 4, + "url": "http://www.dianomi.com/cms/", + "companyId": "dianomi" + }, + "didit_blizzard": { + "name": "Didit Blizzard", + "categoryId": 4, + "url": "http://www.didit.com/blizzard", + "companyId": "didit" + }, + "didit_maestro": { + "name": "Didit Maestro", + "categoryId": 4, + "url": "http://www.didit.com/maestro", + "companyId": "didit" + }, + "didomi": { + "name": "Didomi", + "categoryId": 5, + "url": "https://www.didomi.io/en/", + "companyId": "didomi" + }, + "digg_widget": { + "name": "Digg Widget", + "categoryId": 2, + "url": "http://digg.com/apple/Digg_Widget", + "companyId": "buysellads.com" + }, + "digicert_trust_seal": { + "name": "Digicert Trust Seal", + "categoryId": 5, + "url": "http://www.digicert.com/", + "companyId": "digicert" + }, + "digidip": { + "name": "Digidip", + "categoryId": 4, + "url": "http://www.digidip.net/", + "companyId": "digidip" + }, + "digiglitz": { + "name": "Digiglitz", + "categoryId": 6, + "url": "http://www.digiglitz.com/", + "companyId": "digiglitz" + }, + "digilant": { + "name": "Digilant", + "categoryId": 4, + "url": "https://www.digilant.com/", + "companyId": "digilant" + }, + "digioh": { + "name": "Digioh", + "categoryId": 4, + "url": "https://digioh.com/", + "companyId": "digioh", + "source": "AdGuard" + }, + "digital.gov": { + "name": "Digital.gov", + "categoryId": 6, + "url": "https://digital.gov/", + "companyId": "us_government" + }, + "digital_control_room": { + "name": "Digital Control Room", + "categoryId": 5, + "url": "http://www.cookiereports.com/", + "companyId": "digital_control_room" + }, + "digital_nomads": { + "name": "Digital Nomads", + "categoryId": 4, + "url": "http://dnomads.net/", + "companyId": null + }, + "digital_remedy": { + "name": "Digital Remedy", + "categoryId": 4, + "url": "https://www.digitalremedy.com/", + "companyId": "digital_remedy" + }, + "digital_river": { + "name": "Digital River", + "categoryId": 4, + "url": "http://corporate.digitalriver.com", + "companyId": "digital_river" + }, + "digital_window": { + "name": "Digital Window", + "categoryId": 4, + "url": "http://www.digitalwindow.com/", + "companyId": "axel_springer" + }, + "digiteka": { + "name": "Digiteka", + "categoryId": 4, + "url": "http://digiteka.com/", + "companyId": "digiteka" + }, + "digitrust": { + "name": "DigiTrust", + "categoryId": 4, + "url": "http://www.digitru.st/", + "companyId": "iab" + }, + "dihitt_badge": { + "name": "diHITT Badge", + "categoryId": 7, + "url": "http://www.dihitt.com.br/", + "companyId": "dihitt" + }, + "dimml": { + "name": "DimML", + "categoryId": 8, + "url": null, + "companyId": null + }, + "direct_keyword_link": { + "name": "Direct Keyword Link", + "categoryId": 4, + "url": "http://www.keywordsconnect.com/", + "companyId": "direct_keyword_link" + }, + "directadvert": { + "name": "Direct/ADVERT", + "categoryId": 4, + "url": "http://www.directadvert.ru/", + "companyId": "directadvert" + }, + "directrev": { + "name": "DirectREV", + "categoryId": 4, + "url": "http://www.directrev.com/", + "companyId": "directrev" + }, + "discord": { + "name": "Discord", + "categoryId": 2, + "url": "https://discordapp.com/", + "companyId": null + }, + "disneyplus": { + "name": "Disney+", + "categoryId": 0, + "url": "https://www.disneyplus.com/", + "companyId": "disney", + "source": "AdGuard" + }, + "disneystreaming": { + "name": "Disney Streaming", + "categoryId": 0, + "url": "https://press.disneyplus.com", + "companyId": "disney", + "source": "AdGuard" + }, + "display_block": { + "name": "display block", + "categoryId": 4, + "url": "https://www.displayblock.com/", + "companyId": "display_block" + }, + "disqus": { + "name": "Disqus", + "categoryId": 1, + "url": "https://disqus.com/", + "companyId": "zeta" + }, + "disqus_ads": { + "name": "Disqus Ads", + "categoryId": 4, + "url": "https://disqusads.com/", + "companyId": "zeta" + }, + "distil_tag": { + "name": "Distil Networks", + "categoryId": 5, + "url": "https://www.distilnetworks.com/", + "companyId": "distil_networks" + }, + "districtm.io": { + "name": "district m", + "categoryId": 4, + "url": "https://districtm.net/", + "companyId": "district_m" + }, + "distroscale": { + "name": "Distroscale", + "categoryId": 6, + "url": "http://www.distroscale.com/", + "companyId": "distroscale" + }, + "div.show": { + "name": "div.show", + "categoryId": 12, + "url": null, + "companyId": null + }, + "diva": { + "name": "DiVa", + "categoryId": 6, + "url": "http://www.vertriebsassistent.de/", + "companyId": "diva" + }, + "divvit": { + "name": "Divvit", + "categoryId": 6, + "url": "https://www.divvit.com/", + "companyId": "divvit" + }, + "dm2": { + "name": "DM2", + "categoryId": 4, + "url": "http://digitalmediamanagement.com/", + "companyId": "digital_media_management" + }, + "dmg_media": { + "name": "DMG Media", + "categoryId": 8, + "url": "https://www.dmgmedia.co.uk/", + "companyId": "dmgt" + }, + "dmm": { + "name": "DMM", + "categoryId": 3, + "url": "http://www.dmm.co.jp", + "companyId": "dmm.r18" + }, + "dmwd": { + "name": "DMWD", + "categoryId": 8, + "url": null, + "companyId": null + }, + "dockvine": { + "name": "dockvine", + "categoryId": 2, + "url": "https://www.dockvine.com", + "companyId": "dockvine" + }, + "docler": { + "name": "Docler", + "categoryId": 0, + "url": "https://www.doclerholding.com/en/about/companies/33/", + "companyId": "docler_ip" + }, + "dogannet": { + "name": "Dogannet", + "categoryId": 4, + "url": "http://s.dogannet.tv/", + "companyId": "dogannet" + }, + "domainglass": { + "name": "Domain Glass", + "categoryId": 8, + "url": "https://domain.glass/", + "companyId": "domainglass", + "source": "AdGuard" + }, + "domodomain": { + "name": "DomoDomain", + "categoryId": 6, + "url": "http://www.domodomain.com/", + "companyId": "intelligencefocus" + }, + "donationtools": { + "name": "iRobinHood", + "categoryId": 12, + "url": "http://www.irobinhood.org", + "companyId": null + }, + "doofinder.com": { + "name": "doofinder", + "categoryId": 2, + "url": "https://www.doofinder.com/", + "companyId": null + }, + "doorbell.io": { + "name": "Doorbell.io", + "categoryId": 5, + "url": "https://doorbell.io/", + "companyId": "doorbell.io" + }, + "dotandmedia": { + "name": "DotAndMedia", + "categoryId": 4, + "url": "http://www.dotandmedia.com", + "companyId": "dotandmedia" + }, + "dotmailer": { + "name": "dotMailer", + "categoryId": 2, + "url": "http://www.dotdigitalgroup.com/", + "companyId": "dotdigital_group" + }, + "dotmetrics.net": { + "name": "Dotmetrics", + "categoryId": 6, + "url": "https://dotmetrics.net/", + "companyId": null + }, + "dotomi": { + "name": "Dotomi", + "categoryId": 4, + "url": "http://www.dotomi.com/", + "companyId": "conversant" + }, + "double.net": { + "name": "Double.net", + "categoryId": 4, + "url": "http://double.net/en/", + "companyId": "double.net" + }, + "doubleclick": { + "name": "DoubleClick", + "categoryId": 4, + "url": "http://www.doubleclick.com", + "companyId": "google" + }, + "doubleclick_ad_buyer": { + "name": "DoubleClick Ad Exchange-Buyer", + "categoryId": 4, + "url": "http://www.google.com", + "companyId": "google" + }, + "doubleclick_bid_manager": { + "name": "DoubleClick Bid Manager", + "categoryId": 4, + "url": "http://www.invitemedia.com", + "companyId": "google" + }, + "doubleclick_floodlight": { + "name": "DoubleClick Floodlight", + "categoryId": 4, + "url": "http://www.google.com/support/dfa/partner/bin/topic.py?topic=23943", + "companyId": "google" + }, + "doubleclick_spotlight": { + "name": "DoubleClick Spotlight", + "categoryId": 4, + "url": "http://www.doubleclick.com/products/richmedia", + "companyId": "google" + }, + "doubleclick_video_stats": { + "name": "Doubleclick Video Stats", + "categoryId": 4, + "url": "http://www.google.com", + "companyId": "google" + }, + "doublepimp": { + "name": "DoublePimp", + "categoryId": 3, + "url": "http://www.doublepimp.com/", + "companyId": "doublepimp" + }, + "doubleverify": { + "name": "DoubleVerify", + "categoryId": 4, + "url": "http://www.doubleverify.com/", + "companyId": "doubleverify" + }, + "dratio": { + "name": "Dratio", + "categoryId": 6, + "url": "http://www.dratio.com/", + "companyId": "dratio" + }, + "drawbridge": { + "name": "Drawbridge", + "categoryId": 4, + "url": "http://www.drawbrid.ge/", + "companyId": "drawbridge" + }, + "dreame_tech": { + "name": "Dreame Technology", + "categoryId": 8, + "url": "https://www.dreame.tech/", + "companyId": "xiaomi", + "source": "AdGuard" + }, + "dreamlab.pl": { + "name": "DreamLab.pl", + "categoryId": 4, + "url": "https://www.dreamlab.pl/", + "companyId": "onet.pl" + }, + "drift": { + "name": "Drift", + "categoryId": 2, + "url": "https://www.drift.com/", + "companyId": "drift" + }, + "drip": { + "name": "Drip", + "categoryId": 2, + "url": "https://www.getdrip.com", + "companyId": "drip" + }, + "dropbox.com": { + "name": "Dropbox", + "categoryId": 2, + "url": "https://www.dropbox.com/", + "companyId": null + }, + "dsnr_media_group": { + "name": "DSNR Media Group", + "categoryId": 4, + "url": "http://www.dsnrmg.com/", + "companyId": "dsnr_media_group" + }, + "dsp_rambler": { + "name": "Rambler DSP", + "categoryId": 4, + "url": "http://dsp.rambler.ru/", + "companyId": "rambler" + }, + "dstillery": { + "name": "Dstillery", + "categoryId": 4, + "url": "https://dstillery.com/", + "companyId": "dstillery" + }, + "dtscout.com": { + "name": "DTScout", + "categoryId": 4, + "url": "http://www.dtscout.com/", + "companyId": "dtscout" + }, + "dudamobile": { + "name": "DudaMobile", + "categoryId": 4, + "url": "https://www.dudamobile.com/", + "companyId": "dudamobile" + }, + "dun_and_bradstreet": { + "name": "Dun and Bradstreet", + "categoryId": 6, + "url": "http://www.dnb.com/#", + "companyId": "dun_&_bradstreet" + }, + "dwstat.cn": { + "name": "dwstat.cn", + "categoryId": 6, + "url": "http://www.dwstat.cn/", + "companyId": "dwstat" + }, + "dynad": { + "name": "DynAd", + "categoryId": 4, + "url": "http://dynad.net/", + "companyId": "dynad" + }, + "dynadmic": { + "name": "DynAdmic", + "categoryId": 4, + "url": null, + "companyId": null + }, + "dynamic_1001_gmbh": { + "name": "Dynamic 1001 GmbH", + "categoryId": 8, + "url": null, + "companyId": null + }, + "dynamic_logic": { + "name": "Dynamic Logic", + "categoryId": 4, + "url": "http://www.dynamiclogic.com/", + "companyId": "millward_brown" + }, + "dynamic_yield": { + "name": "Dynamic Yield", + "categoryId": 5, + "url": "https://www.dynamicyield.com/", + "companyId": "dynamic_yield" + }, + "dynamic_yield_analytics": { + "name": "Dynamic Yield Analytics", + "categoryId": 6, + "url": "http://www.dynamicyield.com/", + "companyId": "dynamic_yield" + }, + "dynata": { + "name": "Dynata", + "categoryId": 4, + "url": "http://hottraffic.nl/en", + "companyId": "dynata" + }, + "dynatrace.com": { + "name": "Dynatrace", + "categoryId": 6, + "url": "https://www.dynatrace.com/", + "companyId": "thoma_bravo" + }, + "dyncdn.me": { + "name": "dyncdn.me", + "categoryId": 11, + "url": null, + "companyId": null + }, + "e-planning": { + "name": "e-planning", + "categoryId": 4, + "url": "http://www.e-planning.net/", + "companyId": "e-planning" + }, + "eadv": { + "name": "eADV", + "categoryId": 4, + "url": "http://eadv.it/", + "companyId": "eadv" + }, + "eanalyzer.de": { + "name": "eanalyzer.de", + "categoryId": 11, + "url": null, + "companyId": null + }, + "early_birds": { + "name": "Early Birds", + "categoryId": 4, + "url": "http://www.early-birds.fr/", + "companyId": "early_birds" + }, + "earnify": { + "name": "Earnify", + "categoryId": 4, + "url": "https://www.earnify.com/", + "companyId": "earnify" + }, + "earnify_tracker": { + "name": "Earnify Tracker", + "categoryId": 6, + "url": "https://www.earnify.com/", + "companyId": "earnify" + }, + "easyads": { + "name": "EasyAds", + "categoryId": 4, + "url": "https://easyads.bg/", + "companyId": "easyads" + }, + "easylist_club": { + "name": "easylist.club", + "categoryId": 11, + "url": null, + "companyId": null + }, + "ebay": { + "name": "eBay Stats", + "categoryId": 4, + "url": "https://partnernetwork.ebay.com/", + "companyId": "ebay_partner_network" + }, + "ebay_korea": { + "name": "eBay Korea", + "categoryId": 4, + "url": "http://www.ebay.com/", + "companyId": "ebay" + }, + "ebay_partner_network": { + "name": "eBay Partner Network", + "categoryId": 4, + "url": "https://www.ebaypartnernetwork.com/files/hub/en-US/index.html", + "companyId": "ebay_partner_network" + }, + "ebuzzing": { + "name": "eBuzzing", + "categoryId": 4, + "url": "http://www.ebuzzing.com/", + "companyId": "ebuzzing" + }, + "echo": { + "name": "Echo", + "categoryId": 4, + "url": "http://js-kit.com/", + "companyId": "echo" + }, + "eclick": { + "name": "eClick", + "categoryId": 4, + "url": "http://eclick.vn", + "companyId": "eclick" + }, + "econda": { + "name": "Econda", + "categoryId": 6, + "url": "http://www.econda.de/", + "companyId": "econda" + }, + "ecotag": { + "name": "ecotag", + "categoryId": 4, + "url": "http://www.eco-tag.jp/", + "companyId": "ecotag" + }, + "edgio": { + "name": "Edgio", + "categoryId": 9, + "url": "https://edg.io/", + "companyId": "edgio", + "source": "AdGuard" + }, + "edigitalresearch": { + "name": "eDigitalResearch", + "categoryId": 4, + "url": "http://www.edigitalresearch.com/", + "companyId": "edigitalresearch" + }, + "effective_measure": { + "name": "Effective Measure", + "categoryId": 4, + "url": "http://www.effectivemeasure.com/", + "companyId": "effective_measure" + }, + "effiliation": { + "name": "Effiliation", + "categoryId": 4, + "url": "http://www.effiliation.com/", + "companyId": "effiliation" + }, + "egain": { + "name": "eGain", + "categoryId": 2, + "url": "http://www.egain.com/", + "companyId": "egain" + }, + "egain_analytics": { + "name": "eGain Analytics", + "categoryId": 6, + "url": "http://www.egain.com/", + "companyId": "egain" + }, + "ehi-siegel_de": { + "name": "ehi-siegel.de", + "categoryId": 2, + "url": "http://ehi-siegel.de/", + "companyId": null + }, + "ekmpinpoint": { + "name": "ekmPinPoint", + "categoryId": 6, + "url": "http://ekmpinpoint.com/", + "companyId": "ekmpinpoint" + }, + "ekomi": { + "name": "eKomi", + "categoryId": 1, + "url": "http://www.ekomi.co.uk", + "companyId": "ekomi" + }, + "elastic_ad": { + "name": "Elastic Ad", + "categoryId": 4, + "url": "http://www.elasticad.com", + "companyId": "elastic_ad" + }, + "elastic_beanstalk": { + "name": "Elastic Beanstalk", + "categoryId": 6, + "url": "http://www.amazon.com/", + "companyId": "amazon_associates" + }, + "electronic_arts": { + "name": "Electronic Arts", + "categoryId": 2, + "url": "https://www.ea.com/", + "companyId": "electronic_arts", + "source": "AdGuard" + }, + "element": { + "name": "Element", + "categoryId": 7, + "url": "https://element.io/", + "companyId": "element", + "source": "AdGuard" + }, + "elicit": { + "name": "elicit", + "categoryId": 4, + "url": "http://www.elicitsearch.com/", + "companyId": "elicit" + }, + "eloqua": { + "name": "Eloqua", + "categoryId": 4, + "url": "http://www.eloqua.com/", + "companyId": "oracle" + }, + "eluxer_net": { + "name": "eluxer.net", + "categoryId": 12, + "url": null, + "companyId": null + }, + "email_aptitude": { + "name": "Email Aptitude", + "categoryId": 4, + "url": "http://www.emailaptitude.com/", + "companyId": "email_aptitude" + }, + "email_attitude": { + "name": "Email Attitude", + "categoryId": 4, + "url": "http://us.email-attitude.com/Default.aspx", + "companyId": "1000mercis" + }, + "emarketeer": { + "name": "emarketeer", + "categoryId": 4, + "url": "http://www.emarketeer.com/", + "companyId": "emarketeer" + }, + "embed.ly": { + "name": "Embedly", + "categoryId": 6, + "url": "http://embed.ly/", + "companyId": "medium" + }, + "emediate": { + "name": "Emediate", + "categoryId": 4, + "url": "http://www.emediate.biz/", + "companyId": "cxense" + }, + "emetriq": { + "name": "emetriq", + "categoryId": 4, + "url": "http://www.emetriq.com", + "companyId": "emetriq" + }, + "emma": { + "name": "Emma", + "categoryId": 4, + "url": "http://myemma.com/", + "companyId": "emma" + }, + "emnet": { + "name": "eMnet", + "categoryId": 4, + "url": "http://www.emnet.co.kr", + "companyId": "emnet" + }, + "empathy": { + "name": "Empathy", + "categoryId": 4, + "url": "http://www.colbenson.com", + "companyId": "empathy" + }, + "emsmobile.de": { + "name": "EMS Mobile", + "categoryId": 8, + "url": "http://www.emsmobile.com/", + "companyId": null + }, + "encore_metrics": { + "name": "Encore Metrics", + "categoryId": 4, + "url": "http://sitecompass.com", + "companyId": "flashtalking" + }, + "enecto_analytics": { + "name": "Enecto Analytics", + "categoryId": 6, + "url": "http://www.enecto.com/en/", + "companyId": "enecto" + }, + "engage_sciences": { + "name": "Engage Sciences", + "categoryId": 6, + "url": "http://www.engagesciences.com/", + "companyId": "engagesciences" + }, + "engageya_widget": { + "name": "Engageya Widget", + "categoryId": 4, + "url": "http://www.engageya.com/home/", + "companyId": "engageya" + }, + "engagio": { + "name": "Engagio", + "categoryId": 6, + "url": "https://www.engagio.com/", + "companyId": "engagio" + }, + "engineseeker": { + "name": "EngineSeeker", + "categoryId": 4, + "url": "http://www.engineseeker.com/", + "companyId": "engineseeker" + }, + "enquisite": { + "name": "Enquisite", + "categoryId": 4, + "url": "http://www.enquisite.com/", + "companyId": "inboundwriter" + }, + "enreach": { + "name": "Enreach", + "categoryId": 4, + "url": "https://enreach.me/", + "companyId": "enreach" + }, + "ensemble": { + "name": "Ensemble", + "categoryId": 4, + "url": "http://www.tumri.com", + "companyId": "ensemble" + }, + "ensighten": { + "name": "Ensighten", + "categoryId": 5, + "url": "http://www.ensighten.com", + "companyId": "ensighten" + }, + "envolve": { + "name": "Envolve", + "categoryId": 2, + "url": "https://www.envolve.com/", + "companyId": "envolve" + }, + "envybox": { + "name": "Envybox", + "categoryId": 2, + "url": "https://envybox.io/", + "companyId": "envybox" + }, + "eperflex": { + "name": "Eperflex", + "categoryId": 4, + "url": "https://eperflex.com/", + "companyId": "ividence" + }, + "epic_game_ads": { + "name": "Epic Game Ads", + "categoryId": 4, + "url": "http://www.epicgameads.com/", + "companyId": "epic_game_ads" + }, + "epic_marketplace": { + "name": "Epic Marketplace", + "categoryId": 4, + "url": "http://www.trafficmarketplace.com/", + "companyId": "epic_advertising" + }, + "epom": { + "name": "Epom", + "categoryId": 4, + "url": "http://epom.com/", + "companyId": "epom" + }, + "epoq": { + "name": "epoq", + "categoryId": 2, + "url": "http://www.epoq.de/", + "companyId": "epoq" + }, + "eprice": { + "name": "ePrice", + "categoryId": 4, + "url": "http://banzaiadv.it/", + "companyId": "eprice" + }, + "eproof": { + "name": "eProof", + "categoryId": 6, + "url": "http://www.eproof.com/", + "companyId": "eproof" + }, + "eqs_group": { + "name": "EQS Group", + "categoryId": 6, + "url": "https://www.eqs.com/", + "companyId": "eqs_group" + }, + "eqworks": { + "name": "EQWorks", + "categoryId": 4, + "url": "http://eqads.com", + "companyId": "eq_works" + }, + "eroadvertising": { + "name": "EroAdvertising", + "categoryId": 3, + "url": "http://www.ero-advertising.com/", + "companyId": "ero_advertising" + }, + "errorception": { + "name": "Errorception", + "categoryId": 6, + "url": "http://errorception.com/", + "companyId": "errorception" + }, + "eshopcomp.com": { + "name": "eshopcomp.com", + "categoryId": 12, + "url": null, + "companyId": null + }, + "espn_cdn": { + "name": "ESPN CDN", + "categoryId": 9, + "url": "http://www.espn.com/", + "companyId": "disney" + }, + "esprit.de": { + "name": "esprit.de", + "categoryId": 8, + "url": null, + "companyId": null + }, + "estat": { + "name": "eStat", + "categoryId": 6, + "url": "http://www.mediametrie-estat.com/", + "companyId": "mediametrie" + }, + "etag": { + "name": "etag", + "categoryId": 4, + "url": "http://etagdigital.com.br/", + "companyId": "etag" + }, + "etahub.com": { + "name": "etahub.com", + "categoryId": 11, + "url": null, + "companyId": null + }, + "etarget": { + "name": "Etarget", + "categoryId": 4, + "url": "http://etargetnet.com/", + "companyId": "etarget" + }, + "ethnio": { + "name": "Ethnio", + "categoryId": 4, + "url": "http://ethn.io/", + "companyId": "ethnio" + }, + "etology": { + "name": "Etology", + "categoryId": 4, + "url": "http://www.etology.com", + "companyId": "etology" + }, + "etp": { + "name": "ETP", + "categoryId": 6, + "url": "https://www.etpgroup.com", + "companyId": "etp" + }, + "etracker": { + "name": "etracker", + "categoryId": 6, + "url": "http://www.etracker.com/en/", + "companyId": "etracker_gmbh" + }, + "etrigue": { + "name": "eTrigue", + "categoryId": 4, + "url": "http://www.etrigue.com/", + "companyId": "etrigue" + }, + "etsystatic": { + "name": "Etsy CDN", + "categoryId": 9, + "url": "https://www.etsy.com/", + "companyId": "etsy" + }, + "eulerian": { + "name": "Eulerian", + "categoryId": 6, + "url": "https://www.eulerian.com/", + "companyId": "eulerian" + }, + "euroads": { + "name": "Euroads", + "categoryId": 4, + "url": "http://euroads.com/en/", + "companyId": "euroads" + }, + "europecash": { + "name": "Europecash", + "categoryId": 4, + "url": "https://www.europacash.com/", + "companyId": "europacash" + }, + "euroweb_counter": { + "name": "Euroweb Counter", + "categoryId": 4, + "url": "http://www.euroweb.de/", + "companyId": "euroweb" + }, + "evergage.com": { + "name": "Evergage", + "categoryId": 2, + "url": "https://www.evergage.com", + "companyId": "evergage" + }, + "everstring": { + "name": "Everstring", + "categoryId": 6, + "url": "http://www.everstring.com/", + "companyId": "everstring" + }, + "everyday_health": { + "name": "Everyday Health", + "categoryId": 7, + "url": "http://www.everydayhealth.com/", + "companyId": "everyday_health" + }, + "evidon": { + "name": "Evidon", + "categoryId": 5, + "url": "https://www.evidon.com/", + "companyId": "crownpeak" + }, + "evisit_analyst": { + "name": "eVisit Analyst", + "categoryId": 4, + "url": "http://www.evisitanalyst.com", + "companyId": "evisit_analyst" + }, + "exact_drive": { + "name": "Exact Drive", + "categoryId": 4, + "url": "http://www.exactdrive.com/", + "companyId": "exact_drive" + }, + "exactag": { + "name": "Exactag", + "categoryId": 6, + "url": "http://www.exactag.com", + "companyId": "exactag" + }, + "exelate": { + "name": "eXelate", + "categoryId": 4, + "url": "http://www.exelate.com/", + "companyId": "nielsen" + }, + "exitjunction": { + "name": "ExitJunction", + "categoryId": 4, + "url": "https://secure.exitjunction.com", + "companyId": "exitjunction" + }, + "exoclick": { + "name": "ExoClick", + "categoryId": 3, + "url": "http://exoclick.com/", + "companyId": "exoclick" + }, + "exoticads.com": { + "name": "exoticads", + "categoryId": 3, + "url": "https://exoticads.com/welcome/", + "companyId": null + }, + "expedia": { + "name": "Expedia", + "categoryId": 8, + "url": "https://www.trvl-px.com/", + "companyId": "iac_apps" + }, + "experian": { + "name": "Experian", + "categoryId": 8, + "url": "https://www.experian.com/", + "companyId": "experian_inc" + }, + "experian_marketing_services": { + "name": "Experian Marketing Services", + "categoryId": 4, + "url": "http://www.experian.com/", + "companyId": "experian_inc" + }, + "expo-max": { + "name": "expo-MAX", + "categoryId": 4, + "url": "http://expo-max.com/", + "companyId": "expo-max" + }, + "expose_box": { + "name": "Expose Box", + "categoryId": 4, + "url": "http://www.exposebox.com/", + "companyId": "expose_box" + }, + "expose_box_widgets": { + "name": "Expose Box Widgets", + "categoryId": 2, + "url": "http://www.exposebox.com/", + "companyId": "expose_box" + }, + "express.co.uk": { + "name": "express.co.uk", + "categoryId": 8, + "url": "https://www.express.co.uk/", + "companyId": null + }, + "expressvpn": { + "name": "ExpressVPN", + "categoryId": 2, + "url": "https://www.expressvpn.com/", + "companyId": "expressvpn" + }, + "extreme_tracker": { + "name": "eXTReMe Tracker", + "categoryId": 6, + "url": "http://www.extremetracking.com/", + "companyId": "extreme_digital" + }, + "eye_newton": { + "name": "Eye Newton", + "categoryId": 2, + "url": "http://eyenewton.ru/", + "companyId": "eyenewton" + }, + "eyeota": { + "name": "Eyeota", + "categoryId": 4, + "url": "http://www.eyeota.com/", + "companyId": "eyeota" + }, + "eyereturnmarketing": { + "name": "Eyereturn Marketing", + "categoryId": 4, + "url": "https://eyereturnmarketing.com/", + "companyId": "torstar_corp" + }, + "eyeview": { + "name": "Eyeview", + "categoryId": 4, + "url": "http://www.eyeviewdigital.com/", + "companyId": "eyeview" + }, + "ezakus": { + "name": "Ezakus", + "categoryId": 4, + "url": "http://www.ezakus.com/", + "companyId": "np6" + }, + "f11-ads.com": { + "name": "Factor Eleven", + "categoryId": 4, + "url": null, + "companyId": null + }, + "facebook": { + "name": "Facebook", + "categoryId": 4, + "url": "https://www.facebook.com", + "companyId": "meta", + "source": "AdGuard" + }, + "facebook_audience": { + "name": "Facebook Audience Network", + "categoryId": 4, + "url": "https://www.facebook.com/business/products/audience-network", + "companyId": "meta", + "source": "AdGuard" + }, + "facebook_beacon": { + "name": "Facebook Beacon", + "categoryId": 7, + "url": "http://www.facebook.com/beacon/faq.php", + "companyId": "meta", + "source": "AdGuard" + }, + "facebook_cdn": { + "name": "Facebook CDN", + "categoryId": 9, + "url": "https://www.facebook.com", + "companyId": "meta", + "source": "AdGuard" + }, + "facebook_connect": { + "name": "Facebook Connect", + "categoryId": 6, + "url": "https://developers.facebook.com/connect.php", + "companyId": "meta", + "source": "AdGuard" + }, + "facebook_conversion_tracking": { + "name": "Facebook Conversion Tracking", + "categoryId": 4, + "url": "http://www.facebook.com/", + "companyId": "meta", + "source": "AdGuard" + }, + "facebook_custom_audience": { + "name": "Facebook Custom Audience", + "categoryId": 4, + "url": "https://www.facebook.com", + "companyId": "meta", + "source": "AdGuard" + }, + "facebook_graph": { + "name": "Facebook Social Graph", + "categoryId": 7, + "url": "https://developers.facebook.com/docs/reference/api/", + "companyId": "meta", + "source": "AdGuard" + }, + "facebook_impressions": { + "name": "Facebook Impressions", + "categoryId": 4, + "url": "https://www.facebook.com/", + "companyId": "meta", + "source": "AdGuard" + }, + "facebook_social_plugins": { + "name": "Facebook Social Plugins", + "categoryId": 7, + "url": "https://developers.facebook.com/plugins", + "companyId": "meta", + "source": "AdGuard" + }, + "facetz.dca": { + "name": "Facetz.DCA", + "categoryId": 4, + "url": "http://facetz.net", + "companyId": "dca" + }, + "facilitate_digital": { + "name": "Facilitate Digital", + "categoryId": 4, + "url": "http://www.facilitatedigital.com/", + "companyId": "adslot" + }, + "faktor.io": { + "name": "faktor.io", + "categoryId": 6, + "url": "https://faktor.io/", + "companyId": "faktor.io" + }, + "fancy_widget": { + "name": "Fancy Widget", + "categoryId": 7, + "url": "http://www.thefancy.com/", + "companyId": "fancy" + }, + "fanplayr": { + "name": "Fanplayr", + "categoryId": 4, + "url": "http://www.fanplayr.com/", + "companyId": "fanplayr" + }, + "fap.to": { + "name": "Imagefap", + "categoryId": 8, + "url": null, + "companyId": null + }, + "farlight_pte_ltd": { + "name": "Farlight Pte Ltd.", + "categoryId": 8, + "url": "https://farlightgames.com/", + "companyId": "farlight", + "source": "AdGuard" + }, + "fastly_insights": { + "name": "Fastly Insights", + "categoryId": 6, + "url": "https://insights.fastlylabs.com/", + "companyId": "fastly" + }, + "fastlylb.net": { + "name": "Fastly", + "categoryId": 9, + "url": "https://www.fastly.com/", + "companyId": "fastly" + }, + "fastpic.ru": { + "name": "FastPic", + "categoryId": 10, + "url": "http://fastpic.ru/", + "companyId": "fastpic" + }, + "federated_media": { + "name": "Federated Media", + "categoryId": 4, + "url": "http://www.federatedmedia.net/", + "companyId": "hyfn" + }, + "feedbackify": { + "name": "Feedbackify", + "categoryId": 2, + "url": "http://www.feedbackify.com/", + "companyId": "feedbackify" + }, + "feedburner.com": { + "name": "FeedBurner", + "categoryId": 4, + "url": "https://feedburner.com", + "companyId": "google" + }, + "feedify": { + "name": "Feedify", + "categoryId": 7, + "url": "http://feedify.de/", + "companyId": "feedify" + }, + "feedjit": { + "name": "Feedjit", + "categoryId": 4, + "url": "http://feedjit.com/", + "companyId": "feedjit" + }, + "feedperfect": { + "name": "FeedPerfect", + "categoryId": 4, + "url": "http://www.feedperfect.com/", + "companyId": "feedperfect" + }, + "feedsportal": { + "name": "Feedsportal", + "categoryId": 4, + "url": "http://www.mediafed.com/", + "companyId": "mediafed" + }, + "feefo": { + "name": "Feefo", + "categoryId": 2, + "url": "http://www.feefo.com/web/en/us/", + "companyId": "feefo" + }, + "fidelity_media": { + "name": "Fidelity Media", + "categoryId": 4, + "url": "http://fidelity-media.com/", + "companyId": "fidelity_media" + }, + "fiksu": { + "name": "Fiksu", + "categoryId": 4, + "url": "https://fiksu.com/", + "companyId": "noosphere" + }, + "filament.io": { + "name": "Filament.io", + "categoryId": 4, + "url": "http://sharethis.com/", + "companyId": "sharethis" + }, + "fileserve": { + "name": "FileServe", + "categoryId": 10, + "url": "http://fileserve.com/", + "companyId": "fileserve" + }, + "financeads": { + "name": "FinanceADs", + "categoryId": 4, + "url": "https://www.financeads.net/", + "companyId": "financeads_gmbh_&_co._kg" + }, + "financial_content": { + "name": "Financial Content", + "categoryId": 4, + "url": "http://www.financialcontent.com", + "companyId": "financial_content" + }, + "findizer.fr": { + "name": "Findizer", + "categoryId": 8, + "url": "http://www.findizer.fr/", + "companyId": null + }, + "findologic.com": { + "name": "Findologic", + "categoryId": 2, + "url": "https://www.findologic.com/", + "companyId": "findologic" + }, + "firebase": { + "name": "Firebase", + "categoryId": 101, + "url": "https://firebase.google.com/", + "companyId": "google", + "source": "AdGuard" + }, + "firebaseio.com": { + "name": "Firebase", + "categoryId": 8, + "url": "https://firebase.google.com/", + "companyId": "google" + }, + "first_impression": { + "name": "First Impression", + "categoryId": 4, + "url": "http://www.firstimpression.io", + "companyId": "first_impression" + }, + "fit_analytics": { + "name": "Fit Analytics", + "categoryId": 6, + "url": "http://www.fitanalytics.com/", + "companyId": "fit_analytics" + }, + "fivetran": { + "name": "Fivetran", + "categoryId": 6, + "url": "https://fivetran.com/", + "companyId": "fivetran" + }, + "flag_ads": { + "name": "Flag Ads", + "categoryId": 4, + "url": "http://www.flagads.net/", + "companyId": "flag_ads" + }, + "flag_counter": { + "name": "Flag Counter", + "categoryId": 4, + "url": "http://flagcounter.com/", + "companyId": "flag_counter" + }, + "flash": { + "name": "Flash", + "categoryId": 0, + "url": "https://flashnews.com.au/", + "companyId": "news_corp", + "source": "AdGuard" + }, + "flashtalking": { + "name": "Flashtalking", + "categoryId": 4, + "url": "http://www.flashtalking.com/", + "companyId": "flashtalking" + }, + "flattr_button": { + "name": "Flattr Button", + "categoryId": 7, + "url": "http://flattr.com/", + "companyId": "flattr" + }, + "flexoffers": { + "name": "FlexOffers", + "categoryId": 4, + "url": "http://www.flexoffers.com/", + "companyId": "flexoffers.com" + }, + "flickr_badge": { + "name": "Flickr Badge", + "categoryId": 7, + "url": "http://www.flickr.com/", + "companyId": "smugmug" + }, + "flipboard": { + "name": "Flipboard", + "categoryId": 6, + "url": "http://www.flipboard.com/", + "companyId": "flipboard" + }, + "flite": { + "name": "Flite", + "categoryId": 4, + "url": "http://www.flite.com/", + "companyId": "flite" + }, + "flixcdn.com": { + "name": "flixcdn.com", + "categoryId": 9, + "url": null, + "companyId": null + }, + "flixmedia": { + "name": "Flixmedia", + "categoryId": 8, + "url": "https://flixmedia.eu", + "companyId": "flixmedia" + }, + "flocktory.com": { + "name": "Flocktory", + "categoryId": 6, + "url": "https://www.flocktory.com/", + "companyId": "flocktory" + }, + "flowplayer": { + "name": "Flowplayer", + "categoryId": 4, + "url": "https://flowplayer.org/", + "companyId": "flowplayer" + }, + "fluct": { + "name": "Fluct", + "categoryId": 4, + "url": "https://corp.fluct.jp/", + "companyId": "fluct" + }, + "fluent": { + "name": "Fluent", + "categoryId": 4, + "url": "http://www.fluentco.com/", + "companyId": "fluent" + }, + "fluid": { + "name": "Fluid", + "categoryId": 4, + "url": "http://www.8thbridge.com/", + "companyId": "fluid" + }, + "fluidads": { + "name": "FluidAds", + "categoryId": 4, + "url": "http://www.fluidads.co/", + "companyId": "fluidads" + }, + "fluidsurveys": { + "name": "FluidSurveys", + "categoryId": 2, + "url": "http://fluidsurveys.com/", + "companyId": "fluidware" + }, + "flurry": { + "name": "Flurry", + "categoryId": 101, + "url": "http://www.flurry.com/", + "companyId": "apollo_global_management", + "source": "AdGuard" + }, + "flxone": { + "name": "FLXONE", + "categoryId": 4, + "url": "http://www.flxone.com/", + "companyId": "flxone" + }, + "flyertown": { + "name": "Flyertown", + "categoryId": 6, + "url": "http://www.flyertown.ca/", + "companyId": "flyertown" + }, + "fmadserving": { + "name": "FMAdserving", + "categoryId": 4, + "url": "http://www.fmadserving.dk/", + "companyId": "fm_adserving" + }, + "fonbet": { + "name": "Fonbet", + "categoryId": 6, + "url": "https://www.fonbet.ru", + "companyId": "fonbet" + }, + "fonecta": { + "name": "Fonecta", + "categoryId": 2, + "url": "http://www.fonecta.com/", + "companyId": "fonecta" + }, + "fontawesome_com": { + "name": "fontawesome.com", + "categoryId": 9, + "url": "http://fontawesome.com/", + "companyId": null + }, + "foodie_blogroll": { + "name": "Foodie Blogroll", + "categoryId": 7, + "url": "http://www.foodieblogroll.com", + "companyId": "foodie_blogroll" + }, + "footprint": { + "name": "Footprint", + "categoryId": 4, + "url": "http://www.footprintlive.com/", + "companyId": "opentracker" + }, + "footprintdns.com": { + "name": "Footprint DNS", + "categoryId": 11, + "url": "https://www.microsoft.com/", + "companyId": "microsoft" + }, + "forcetrac": { + "name": "ForceTrac", + "categoryId": 2, + "url": "http://www.forcetrac.com/", + "companyId": "force_marketing" + }, + "forensiq": { + "name": "Forensiq", + "categoryId": 4, + "url": "http://www.cpadetective.com/", + "companyId": "impact" + }, + "foresee": { + "name": "ForeSee", + "categoryId": 5, + "url": "https://www.foresee.com/", + "companyId": "foresee_results" + }, + "formisimo": { + "name": "Formisimo", + "categoryId": 4, + "url": "https://www.formisimo.com/", + "companyId": "formisimo" + }, + "forter": { + "name": "Forter", + "categoryId": 4, + "url": "https://www.forter.com/", + "companyId": "forter" + }, + "fortlachanhecksof.info": { + "name": "fortlachanhecksof.info", + "categoryId": 11, + "url": null, + "companyId": null + }, + "foursquare_widget": { + "name": "Foursquare Widget", + "categoryId": 4, + "url": "https://foursquare.com/", + "companyId": "foursquare" + }, + "fout.jp": { + "name": "FreakOut", + "categoryId": 4, + "url": "https://www.fout.co.jp/", + "companyId": "freakout" + }, + "fox_audience_network": { + "name": "Fox Audience Network", + "categoryId": 4, + "url": "https://publishers.foxaudiencenetwork.com/", + "companyId": "fox_audience_network" + }, + "fox_sports": { + "name": "Fox Sports", + "categoryId": 0, + "url": "https://foxsports.com.au/", + "companyId": "news_corp", + "source": "AdGuard" + }, + "foxnews_static": { + "name": "Fox News CDN", + "categoryId": 9, + "url": "http://www.foxnews.com/", + "companyId": "fox_news" + }, + "foxpush": { + "name": "FoxPush", + "categoryId": 4, + "url": "https://www.foxpush.com/", + "companyId": "foxpush" + }, + "foxtel": { + "name": "Foxtel", + "categoryId": 0, + "url": "https://foxtel.com.au/", + "companyId": "news_corp", + "source": "AdGuard" + }, + "foxydeal_com": { + "name": "foxydeal.com", + "categoryId": 12, + "url": "https://www.foxydeal.de", + "companyId": null + }, + "fraudlogix": { + "name": "FraudLogix", + "categoryId": 4, + "url": "https://www.fraudlogix.com/", + "companyId": null + }, + "free_counter": { + "name": "Free Counter", + "categoryId": 6, + "url": "http://www.statcounterfree.com/", + "companyId": "free_counter" + }, + "free_online_users": { + "name": "Free Online Users", + "categoryId": 6, + "url": "http://www.freeonlineusers.com", + "companyId": "free_online_users" + }, + "free_pagerank": { + "name": "Free PageRank", + "categoryId": 6, + "url": "http://www.free-pagerank.com/", + "companyId": "free_pagerank" + }, + "freedom_mortgage": { + "name": "Freedom Mortgage", + "categoryId": 6, + "url": "https://www.freedommortgage.com/", + "companyId": "freedom_mortgage" + }, + "freegeoip_net": { + "name": "freegeoip.net", + "categoryId": 6, + "url": "http://freegeoip.net/", + "companyId": null + }, + "freenet_de": { + "name": "freenet.de", + "categoryId": 4, + "url": "http://freenet.de/", + "companyId": "debitel" + }, + "freeview": { + "name": "Freeview", + "categoryId": 0, + "url": "https://freeview.com.au/", + "companyId": "freeview", + "source": "AdGuard" + }, + "freewheel": { + "name": "FreeWheel", + "categoryId": 4, + "url": "http://www.freewheel.tv/", + "companyId": "comcast" + }, + "fresh8": { + "name": "Fresh8", + "categoryId": 6, + "url": "http://fresh8gaming.com/", + "companyId": "fresh_8_gaming" + }, + "freshdesk": { + "name": "Freshdesk", + "categoryId": 2, + "url": "http://www.freshdesk.com", + "companyId": "freshdesk" + }, + "freshplum": { + "name": "Freshplum", + "categoryId": 4, + "url": "https://freshplum.com/", + "companyId": "freshplum" + }, + "friendbuy": { + "name": "FriendBuy", + "categoryId": 6, + "url": "https://www.friendbuy.com", + "companyId": "friendbuy" + }, + "friendfeed": { + "name": "FriendFeed", + "categoryId": 7, + "url": "http://friendfeed.com/", + "companyId": "facebook" + }, + "friendfinder_network": { + "name": "FriendFinder Network", + "categoryId": 3, + "url": "http://www.ffn.com/", + "companyId": "friendfinder_networks" + }, + "frosmo_optimizer": { + "name": "Frosmo Optimizer", + "categoryId": 4, + "url": "http://frosmo.com/", + "companyId": "frosmo" + }, + "fruitflan": { + "name": "FruitFlan", + "categoryId": 4, + "url": "http://flan-tech.com/", + "companyId": "keytiles" + }, + "fstrk.net": { + "name": "24metrics Fraudshield", + "categoryId": 6, + "url": "https://24metrics.com/", + "companyId": "24metrics" + }, + "fuelx": { + "name": "FuelX", + "categoryId": 4, + "url": "http://fuelx.com/", + "companyId": "fuelx" + }, + "fullstory": { + "name": "FullStory", + "categoryId": 6, + "url": "http://fullstory.com", + "companyId": "fullstory" + }, + "funnelytics": { + "name": "Funnelytics", + "categoryId": 6, + "url": "https://funnelytics.io/", + "companyId": "funnelytics" + }, + "fyber": { + "name": "Fyber", + "categoryId": 4, + "url": "https://www.fyber.com/", + "companyId": "fyber" + }, + "ga_audiences": { + "name": "GA Audiences", + "categoryId": 6, + "url": "http://www.google.com", + "companyId": "google" + }, + "game_advertising_online": { + "name": "Game Advertising Online", + "categoryId": 4, + "url": "http://www.game-advertising-online.com/", + "companyId": "game_advertising_online" + }, + "gameanalytics": { + "name": "GameAnalytics", + "categoryId": 101, + "url": "https://gameanalytics.com/", + "companyId": "mobvista", + "source": "AdGuard" + }, + "gamedistribution.com": { + "name": "Gamedistribution.com", + "categoryId": 8, + "url": "http://gamedistribution.com/", + "companyId": null + }, + "gamerdna": { + "name": "gamerDNA", + "categoryId": 7, + "url": "http://www.gamerdnamedia.com/", + "companyId": "gamerdna_media" + }, + "gannett": { + "name": "Gannett Media", + "categoryId": 0, + "url": "https://www.gannett.com/", + "companyId": "gannett_digital_media_network" + }, + "gaug.es": { + "name": "Gaug.es", + "categoryId": 6, + "url": "http://get.gaug.es/", + "companyId": "euroweb" + }, + "gazprom-media_digital": { + "name": "Gazprom-Media Digital", + "categoryId": 0, + "url": "http://www.gpm-digital.com/", + "companyId": "gazprom-media_digital" + }, + "gb-world": { + "name": "GB-World", + "categoryId": 7, + "url": "http://www.gb-world.net/", + "companyId": "gb-world" + }, + "gdeslon": { + "name": "GdeSlon", + "categoryId": 4, + "url": "http://www.gdeslon.ru/", + "companyId": "gdeslon" + }, + "gdm_digital": { + "name": "GDM Digital", + "categoryId": 4, + "url": "http://www.gdmdigital.com/", + "companyId": "ve_interactive" + }, + "geeen": { + "name": "Geeen", + "categoryId": 6, + "url": "https://www.geeen.co.jp/", + "companyId": "geeen" + }, + "gemius": { + "name": "Gemius", + "categoryId": 4, + "url": "http://www.gemius.com", + "companyId": "gemius_sa" + }, + "generaltracking_de": { + "name": "generaltracking.de", + "categoryId": 11, + "url": null, + "companyId": null + }, + "genesis": { + "name": "Genesis", + "categoryId": 4, + "url": "http://genesismedia.com/", + "companyId": "genesis_media" + }, + "geniee": { + "name": "GENIEE", + "categoryId": 4, + "url": "http://geniee.co.jp/", + "companyId": null + }, + "genius": { + "name": "Genius", + "categoryId": 6, + "url": "http://www.genius.com/", + "companyId": "genius" + }, + "genoo": { + "name": "Genoo", + "categoryId": 4, + "url": "http://www.genoo.com/", + "companyId": "genoo" + }, + "geoads": { + "name": "GeoAds", + "categoryId": 4, + "url": "http://www.geoads.com", + "companyId": "geoads" + }, + "geolify": { + "name": "Geolify", + "categoryId": 4, + "url": "http://geolify.com/", + "companyId": "geolify" + }, + "geoplugin": { + "name": "geoPlugin", + "categoryId": 6, + "url": "http://www.geoplugin.com/", + "companyId": "geoplugin" + }, + "geotrust": { + "name": "GeoTrust", + "categoryId": 5, + "url": "http://www.geotrust.com/", + "companyId": "symantec" + }, + "geovisite": { + "name": "Geovisite", + "categoryId": 6, + "url": "http://www.geovisite.com/", + "companyId": "geovisite" + }, + "gestionpub": { + "name": "GestionPub", + "categoryId": 4, + "url": "http://www.gestionpub.com/", + "companyId": "gestionpub" + }, + "get_response": { + "name": "Get Response", + "categoryId": 2, + "url": "https://www.getresponse.com/?marketing_gv=v2", + "companyId": "getresponse" + }, + "get_site_control": { + "name": "Get Site Control", + "categoryId": 4, + "url": "https://getsitecontrol.com/", + "companyId": "getsitecontrol" + }, + "getconversion": { + "name": "GetConversion", + "categoryId": 2, + "url": "http://www.getconversion.net/", + "companyId": "getconversion" + }, + "getglue": { + "name": "GetGlue", + "categoryId": 0, + "url": "http://getglue.com", + "companyId": "telfie" + }, + "getintent": { + "name": "GetIntent", + "categoryId": 4, + "url": "http://www.getintent.com/", + "companyId": "getintent" + }, + "getkudos": { + "name": "GetKudos", + "categoryId": 1, + "url": "https://www.getkudos.me/", + "companyId": "zendesk" + }, + "getmyad": { + "name": "GetMyAd", + "categoryId": 4, + "url": "http://yottos.com", + "companyId": "yottos" + }, + "getsatisfaction": { + "name": "GetSatisfaction", + "categoryId": 1, + "url": "http://getsatisfaction.com/", + "companyId": "get_satisfaction" + }, + "gettyimages": { + "name": "Getty Images", + "categoryId": 8, + "url": "https://www.gettyimages.com/", + "companyId": null + }, + "gfk": { + "name": "GfK", + "categoryId": 4, + "url": "http://nurago.com/", + "companyId": "gfk_nurago" + }, + "gfycat.com": { + "name": "gfycat", + "categoryId": 7, + "url": "https://gfycat.com/", + "companyId": null + }, + "giant_realm": { + "name": "Giant Realm", + "categoryId": 4, + "url": "http://corp.giantrealm.com/", + "companyId": "giant_realm" + }, + "giantmedia": { + "name": "GiantMedia", + "categoryId": 4, + "url": "http://giantmedia.com/", + "companyId": "adknowledge" + }, + "giga": { + "name": "Giga", + "categoryId": 4, + "url": "https://gigaonclick.com", + "companyId": "giga" + }, + "gigya": { + "name": "Gigya", + "categoryId": 6, + "url": "https://www.sap.com/index.html", + "companyId": "sap" + }, + "gigya_beacon": { + "name": "Gigya Beacon", + "categoryId": 2, + "url": "http://www.gigya.com", + "companyId": "sap" + }, + "gigya_socialize": { + "name": "Gigya Socialize", + "categoryId": 2, + "url": "http://www.gigya.com", + "companyId": "sap" + }, + "gigya_toolbar": { + "name": "Gigya Toolbar", + "categoryId": 2, + "url": "http://www.gigya.com/", + "companyId": "sap" + }, + "giosg": { + "name": "Giosg", + "categoryId": 6, + "url": "https://www.giosg.com/", + "companyId": "giosg" + }, + "giphy.com": { + "name": "Giphy", + "categoryId": 7, + "url": "https://giphy.com/", + "companyId": null + }, + "giraff.io": { + "name": "Giraff.io", + "categoryId": 4, + "url": "https://www.giraff.io/", + "companyId": null + }, + "github": { + "name": "GitHub, Inc.", + "categoryId": 2, + "url": "https://github.com/", + "companyId": "microsoft", + "source": "AdGuard" + }, + "github_apps": { + "name": "GitHub Apps", + "categoryId": 2, + "url": "https://github.com/", + "companyId": "github" + }, + "github_pages": { + "name": "Github Pages", + "categoryId": 10, + "url": "https://pages.github.com/", + "companyId": "github" + }, + "gittigidiyor_affiliate_program": { + "name": "GittiGidiyor Affiliate Program", + "categoryId": 4, + "url": "http://www.ebay.com/", + "companyId": "ebay" + }, + "gittip": { + "name": "Gittip", + "categoryId": 2, + "url": "https://www.gittip.com/", + "companyId": "gittip" + }, + "glad_cube": { + "name": "Glad Cube", + "categoryId": 6, + "url": "http://www.glad-cube.com/", + "companyId": "glad_cube_inc." + }, + "glganltcs.space": { + "name": "glganltcs.space", + "categoryId": 12, + "url": null, + "companyId": null + }, + "global_web_index": { + "name": "GlobalWebIndex", + "categoryId": 6, + "url": "https://www.globalwebindex.com/", + "companyId": "global_web_index" + }, + "globalnotifier.com": { + "name": "globalnotifier.com", + "categoryId": 11, + "url": null, + "companyId": null + }, + "globalsign": { + "name": "GlobalSign", + "categoryId": 8, + "url": null, + "companyId": null + }, + "globaltakeoff": { + "name": "GlobalTakeoff", + "categoryId": 4, + "url": "http://www.globaltakeoff.net/", + "companyId": "globaltakeoff" + }, + "glomex.com": { + "name": "Glomex", + "categoryId": 0, + "url": "https://www.glomex.com/", + "companyId": "glomex" + }, + "glotgrx.com": { + "name": "glotgrx.com", + "categoryId": 11, + "url": null, + "companyId": null + }, + "gm_delivery": { + "name": "GM Delivery", + "categoryId": 4, + "url": "http://a.gmdelivery.com/", + "companyId": "gm_delivery" + }, + "gmail": { + "name": "Gmail", + "categoryId": 13, + "url": "https://mail.google.com/", + "companyId": "google", + "source": "AdGuard" + }, + "gmo": { + "name": "GMO", + "categoryId": 4, + "url": "https://www.gmo.media/", + "companyId": "gmo_media" + }, + "gmx_net": { + "name": "gmx.net", + "categoryId": 8, + "url": null, + "companyId": null + }, + "go.com": { + "name": "go.com", + "categoryId": 8, + "url": "go.com", + "companyId": "disney" + }, + "godaddy_affiliate_program": { + "name": "GoDaddy Affiliate Program", + "categoryId": 4, + "url": "http://www.godaddy.com/", + "companyId": "godaddy" + }, + "godaddy_site_analytics": { + "name": "GoDaddy Site Analytics", + "categoryId": 6, + "url": "https://www.godaddy.com/gdshop/hosting/stats_", + "companyId": "godaddy" + }, + "godaddy_site_seal": { + "name": "GoDaddy Site Seal", + "categoryId": 5, + "url": "http://www.godaddy.com/", + "companyId": "godaddy" + }, + "godatafeed": { + "name": "GoDataFeed", + "categoryId": 6, + "url": "http://www.godatafeed.com", + "companyId": "godatafeed" + }, + "goingup": { + "name": "GoingUp", + "categoryId": 6, + "url": "http://www.goingup.com/", + "companyId": "goingup" + }, + "gomez": { + "name": "Gomez", + "categoryId": 6, + "url": "http://www.gomez.com/", + "companyId": "dynatrace" + }, + "goodadvert": { + "name": "GoodADVERT", + "categoryId": 4, + "url": "http://goodadvert.ru/", + "companyId": "goodadvert" + }, + "google": { + "name": "Google", + "categoryId": 4, + "url": "https://www.google.com/", + "companyId": "google" + }, + "google_ads_measurement": { + "name": "Google Ads Measurement", + "categoryId": 4, + "url": "http://www.google.com", + "companyId": "google" + }, + "google_adsense": { + "name": "Google Adsense", + "categoryId": 4, + "url": "https://www.google.com/adsense/", + "companyId": "google" + }, + "google_adservices": { + "name": "Google AdServices", + "categoryId": 4, + "url": "http://www.google.com", + "companyId": "google" + }, + "google_adwords_conversion": { + "name": "Google AdWords Conversion", + "categoryId": 4, + "url": "https://adwords.google.com/", + "companyId": "google" + }, + "google_adwords_user_lists": { + "name": "Google Adwords User Lists", + "categoryId": 4, + "url": "http://www.google.com", + "companyId": "google" + }, + "google_analytics": { + "name": "Google Analytics", + "categoryId": 6, + "url": "http://www.google.com/analytics/", + "companyId": "google" + }, + "google_appspot": { + "name": "Google Appspot", + "categoryId": 10, + "url": "http://www.google.com", + "companyId": "google" + }, + "google_auth": { + "name": "Google Auth", + "categoryId": 2, + "url": "https://myaccount.google.com/", + "companyId": "google", + "source": "AdGuard" + }, + "google_beacons": { + "name": "Google Beacons", + "categoryId": 6, + "url": "https://google.xyz", + "companyId": "google" + }, + "google_chat": { + "name": "Google Chat", + "categoryId": 7, + "url": "https://mail.google.com/chat/", + "companyId": "google", + "source": "AdGuard" + }, + "google_cloud_platform": { + "name": "Google Cloud Platform", + "categoryId": 10, + "url": "https://cloud.google.com/", + "companyId": "google", + "source": "AdGuard" + }, + "google_cloud_storage": { + "name": "Google Cloud Storage", + "categoryId": 10, + "url": "https://cloud.google.com/storage/", + "companyId": "google", + "source": "AdGuard" + }, + "google_custom_search": { + "name": "Google Custom Search Ads", + "categoryId": 4, + "url": "https://developers.google.com/custom-search-ads/", + "companyId": "google" + }, + "google_custom_search_engine": { + "name": "Google Programmable Search Engine", + "categoryId": 5, + "url": "https://programmablesearchengine.google.com/about/", + "companyId": "google" + }, + "google_dns": { + "name": "Google DNS", + "categoryId": 10, + "url": "https://dns.google/", + "companyId": "google", + "source": "AdGuard" + }, + "google_domains": { + "name": "Google Domains", + "categoryId": 10, + "url": "https://domains.google/", + "companyId": "google", + "source": "AdGuard" + }, + "google_edge": { + "name": "Google Edge CDN", + "categoryId": 9, + "url": "https://peering.google.com/", + "companyId": "google", + "source": "AdGuard" + }, + "google_email": { + "name": "Google Email", + "categoryId": 13, + "url": "http://www.google.com", + "companyId": "google" + }, + "google_fonts": { + "name": "Google Fonts", + "categoryId": 9, + "url": "https://fonts.google.com/", + "companyId": "google" + }, + "google_hosted": { + "name": "Google Hosted", + "categoryId": 10, + "url": "https://workspace.google.com/", + "companyId": "google", + "source": "AdGuard" + }, + "google_ima": { + "name": "Google IMA", + "categoryId": 4, + "url": "http://www.google.com", + "companyId": "google" + }, + "google_location": { + "name": "Google Location", + "categoryId": 8, + "url": "https://patents.google.com/patent/WO2007025143A1/", + "companyId": "google", + "source": "AdGuard" + }, + "google_maps": { + "name": "Google Maps", + "categoryId": 2, + "url": "https://www.google.com/maps/", + "companyId": "google", + "source": "AdGuard" + }, + "google_marketing": { + "name": "Google Marketing", + "categoryId": 4, + "url": "https://marketingplatform.google.com/about/enterprise", + "companyId": "google", + "source": "AdGuard" + }, + "google_meet": { + "name": "Google Meet", + "categoryId": 2, + "url": "https://meet.google.com/", + "companyId": "google", + "source": "AdGuard" + }, + "google_photos": { + "name": "Google Photos", + "categoryId": 9, + "url": "https://photos.google.com/", + "companyId": "google" + }, + "google_pingback": { + "name": "Google Pingback", + "categoryId": 4, + "url": "http://www.google.com", + "companyId": "google" + }, + "google_play": { + "name": "Google Play", + "categoryId": 8, + "url": "https://play.google.com/", + "companyId": "google", + "source": "AdGuard" + }, + "google_plus": { + "name": "Google+ Platform", + "categoryId": 7, + "url": "http://www.google.com/+1/button/", + "companyId": "google" + }, + "google_publisher_tags": { + "name": "Google Publisher Tags", + "categoryId": 6, + "url": "http://www.google.com", + "companyId": "google" + }, + "google_remarketing": { + "name": "Google Dynamic Remarketing", + "categoryId": 4, + "url": "http://adwords.google.com/", + "companyId": "google" + }, + "google_safeframe": { + "name": "Google Safeframe", + "categoryId": 4, + "url": "http://www.google.com", + "companyId": "google" + }, + "google_servers": { + "name": "Google Servers", + "categoryId": 8, + "url": "https://support.google.com/faqs/answer/174717?hl=en", + "companyId": "google" + }, + "google_shopping_reviews": { + "name": "Google Shopping Reviews", + "categoryId": 2, + "url": "http://www.google.com", + "companyId": "google" + }, + "google_syndication": { + "name": "Google Syndication", + "categoryId": 4, + "url": "http://www.google.com", + "companyId": "google" + }, + "google_tag_manager": { + "name": "Google Tag Manager", + "categoryId": 5, + "url": "https://marketingplatform.google.com/about/tag-manager/", + "companyId": "google" + }, + "google_translate": { + "name": "Google Translate", + "categoryId": 2, + "url": "https://translate.google.com/manager", + "companyId": "google" + }, + "google_travel_adds": { + "name": "Google Travel Adds", + "categoryId": 4, + "url": "http://www.google.com", + "companyId": "google" + }, + "google_trust_services": { + "name": "Google Trust Services", + "categoryId": 5, + "url": "https://pki.goog/", + "companyId": "google", + "source": "AdGuard" + }, + "google_trusted_stores": { + "name": "Google Trusted Stores", + "categoryId": 6, + "url": "http://www.google.com", + "companyId": "google" + }, + "google_users": { + "name": "Google User Content", + "categoryId": 9, + "url": "http://www.google.com", + "companyId": "google" + }, + "google_voice": { + "name": "Google Voice", + "categoryId": 2, + "url": "https://voice.google.com/", + "companyId": "google", + "source": "AdGuard" + }, + "google_website_optimizer": { + "name": "Google Website Optimizer", + "categoryId": 6, + "url": "https://www.google.com/analytics/siteopt/prev", + "companyId": "google" + }, + "google_widgets": { + "name": "Google Widgets", + "categoryId": 2, + "url": "http://www.google.com", + "companyId": "google" + }, + "google_workspace": { + "name": "Google Workspace", + "categoryId": 2, + "url": "https://workspace.google.com/", + "companyId": "google", + "source": "AdGuard" + }, + "googleapis.com": { + "name": "Google APIs", + "categoryId": 9, + "url": "https://www.googleapis.com/", + "companyId": "google" + }, + "goooal": { + "name": "Goooal", + "categoryId": 6, + "url": "http://mailchimp.com/", + "companyId": "mailchimp" + }, + "gorilla_nation": { + "name": "Gorilla Nation", + "categoryId": 4, + "url": "http://www.gorillanationmedia.com", + "companyId": "gorilla_nation_media" + }, + "gosquared": { + "name": "GoSquared", + "categoryId": 6, + "url": "http://www.gosquared.com/livestats/", + "companyId": "gosquared" + }, + "gostats": { + "name": "GoStats", + "categoryId": 6, + "url": "http://gostats.com/", + "companyId": "gostats" + }, + "govmetric": { + "name": "GovMetric", + "categoryId": 6, + "url": "http://www.govmetric.com/", + "companyId": "govmetric" + }, + "grabo_affiliate": { + "name": "Grabo Affiliate", + "categoryId": 4, + "url": "http://grabo.bg/", + "companyId": "grabo_media" + }, + "grandslammedia": { + "name": "GrandSlamMedia", + "categoryId": 4, + "url": "http://www.grandslammedia.com/", + "companyId": "grand_slam_media" + }, + "granify": { + "name": "Granify", + "categoryId": 6, + "url": "http://granify.com/", + "companyId": "granify" + }, + "grapeshot": { + "name": "Grapeshot", + "categoryId": 4, + "url": "https://www.grapeshot.com/", + "companyId": "oracle" + }, + "graph_comment": { + "name": "Graph Comment", + "categoryId": 5, + "url": "https://graphcomment.com/en/", + "companyId": "graph_comment" + }, + "gravatar": { + "name": "Gravatar", + "categoryId": 7, + "url": "http://en.gravatar.com/", + "companyId": "automattic" + }, + "gravitec": { + "name": "Gravitec", + "categoryId": 6, + "url": "https://gravitec.net/", + "companyId": "gravitec" + }, + "gravity_insights": { + "name": "Gravity Insights", + "categoryId": 6, + "url": "http://www.gravity.com/", + "companyId": "verizon" + }, + "greatviews.de": { + "name": "GreatViews", + "categoryId": 4, + "url": "http://greatviews.de/", + "companyId": "parship" + }, + "green_and_red": { + "name": "Green and Red", + "categoryId": 4, + "url": "http://www.green-red.com/", + "companyId": "green_&_red_technologies" + }, + "green_certified_site": { + "name": "Green Certified Site", + "categoryId": 2, + "url": "http://www.advenity.com/", + "companyId": "advenity" + }, + "green_story": { + "name": "Green Story", + "categoryId": 6, + "url": "https://greenstory.ca/", + "companyId": "green_story" + }, + "greentube.com": { + "name": "Greentube Internet Entertainment Solutions", + "categoryId": 7, + "url": "https://www.greentube.com/", + "companyId": null + }, + "greystripe": { + "name": "Greystripe", + "categoryId": 4, + "url": "http://www.greystripe.com/", + "companyId": "conversant" + }, + "groove": { + "name": "Groove", + "categoryId": 2, + "url": "http://www.groovehq.com/", + "companyId": "groove_networks" + }, + "groovinads": { + "name": "GroovinAds", + "categoryId": 4, + "url": "http://www.groovinads.com/en", + "companyId": "groovinads" + }, + "groundtruth": { + "name": "GroundTruth", + "categoryId": 4, + "url": "http://www.groundtruth.com/", + "companyId": "groundtruth" + }, + "groupm_server": { + "name": "GroupM Server", + "categoryId": 4, + "url": "http://www.groupm.com/", + "companyId": "wpp" + }, + "gsi_media": { + "name": "GSI Media", + "categoryId": 4, + "url": "http://gsimedia.net", + "companyId": "gsi_media_network" + }, + "gstatic": { + "name": "Google Static", + "categoryId": 9, + "url": "http://www.google.com", + "companyId": "google" + }, + "gtop": { + "name": "GTop", + "categoryId": 6, + "url": "http://www.gtopstats.com", + "companyId": "gtopstats" + }, + "gugaboo": { + "name": "Gugaboo", + "categoryId": 4, + "url": "https://www.gubagoo.com/", + "companyId": "gubagoo" + }, + "guj.de": { + "name": "Gruner + Jahr", + "categoryId": 4, + "url": "https://www.guj.de/", + "companyId": "gruner_jahr_ag" + }, + "gujems": { + "name": "G+J e|MS", + "categoryId": 4, + "url": "http://www.gujmedia.de/", + "companyId": "gruner_jahr_ag" + }, + "gumgum": { + "name": "gumgum", + "categoryId": 4, + "url": "http://gumgum.com/", + "companyId": "gumgum" + }, + "gumroad": { + "name": "Gumroad", + "categoryId": 7, + "url": "https://gumroad.com/", + "companyId": "gumroad" + }, + "gunggo": { + "name": "Gunggo", + "categoryId": 4, + "url": "http://www.gunggo.com/", + "companyId": "gunggo" + }, + "h12_ads": { + "name": "H12 Ads", + "categoryId": 4, + "url": "http://www.h12-media.com/", + "companyId": "h12_media_ads" + }, + "hacker_news_button": { + "name": "Hacker News Button", + "categoryId": 7, + "url": "http://news.ycombinator.com/", + "companyId": "hacker_news" + }, + "haendlerbund.de": { + "name": "Händlerbund", + "categoryId": 2, + "url": "https://www.haendlerbund.de/en", + "companyId": null + }, + "halogen_network": { + "name": "Halogen Network", + "categoryId": 7, + "url": "http://www.halogennetwork.com/", + "companyId": "social_chorus" + }, + "happy_fox_chat": { + "name": "Happy Fox Chat", + "categoryId": 2, + "url": "https://happyfoxchat.com/", + "companyId": "happy_fox_chat" + }, + "harren_media": { + "name": "Harren Media", + "categoryId": 4, + "url": "http://www.harrenmedia.com/index.html", + "companyId": "harren_media" + }, + "hatchbuck": { + "name": "Hatchbuck", + "categoryId": 6, + "url": "http://www.hatchbuck.com/", + "companyId": "hatchbuck" + }, + "head_hunter": { + "name": "Head Hunter", + "categoryId": 6, + "url": "https://hh.ru/", + "companyId": "head_hunter" + }, + "healte.de": { + "name": "healte.de", + "categoryId": 11, + "url": null, + "companyId": null + }, + "heap": { + "name": "Heap", + "categoryId": 6, + "url": "https://heapanalytics.com/", + "companyId": "heap" + }, + "heatmap": { + "name": "Heatmap", + "categoryId": 6, + "url": "https://heatmap.me/", + "companyId": "heatmap" + }, + "heimspiel": { + "name": "HEIM:SPIEL Medien GmbH", + "categoryId": 8, + "url": "http://www.heimspiel.de", + "companyId": null + }, + "hello_bar": { + "name": "Hello Bar", + "categoryId": 7, + "url": "https://www.hellobar.com/", + "companyId": "crazy_egg" + }, + "hellosociety": { + "name": "HelloSociety", + "categoryId": 6, + "url": "http://hellosociety.com", + "companyId": "hellosociety" + }, + "here": { + "name": "HERE", + "categoryId": 8, + "url": "https://www.here.com/", + "companyId": null + }, + "heroku": { + "name": "Heroku", + "categoryId": 10, + "url": null, + "companyId": null + }, + "heureka-widget": { + "name": "Heureka-Widget", + "categoryId": 4, + "url": "https://www.heurekashopping.cz/", + "companyId": "heureka" + }, + "heybubble": { + "name": "HeyBubble", + "categoryId": 2, + "url": "https://www.heybubble.com/", + "companyId": "heybubble" + }, + "heyos": { + "name": "Heyos", + "categoryId": 4, + "url": "http://www.heyos.com/", + "companyId": "heyos" + }, + "hi-media_performance": { + "name": "Hi-Media Performance", + "categoryId": 4, + "url": "http://www.hi-mediaperformance.co.uk/", + "companyId": "hi-media_performance" + }, + "hiconversion": { + "name": "HiConversion", + "categoryId": 4, + "url": "http://www.hiconversion.com", + "companyId": "hiconversion" + }, + "highwebmedia.com": { + "name": "highwebmedia.com", + "categoryId": 3, + "url": null, + "companyId": null + }, + "highwinds": { + "name": "Highwinds", + "categoryId": 6, + "url": "https://www.highwinds.com/", + "companyId": "highwinds" + }, + "hiiir": { + "name": "Hiiir", + "categoryId": 4, + "url": "http://adpower.hiiir.com/", + "companyId": "hiiir" + }, + "hiro": { + "name": "HIRO", + "categoryId": 4, + "url": "http://www.hiro-media.com/", + "companyId": "hiro_media" + }, + "histats": { + "name": "Histats", + "categoryId": 4, + "url": "http://www.histats.com/", + "companyId": "histats" + }, + "hit-parade": { + "name": "Hit-Parade", + "categoryId": 4, + "url": "http://www.hit-parade.com/", + "companyId": "hit-parade" + }, + "hit.ua": { + "name": "HIT.UA", + "categoryId": 4, + "url": "http://hit.ua/", + "companyId": "hit.ua" + }, + "hitslink": { + "name": "HitsLink", + "categoryId": 4, + "url": "http://www.hitslink.com/", + "companyId": "net_applications" + }, + "hitsniffer": { + "name": "HitSniffer", + "categoryId": 4, + "url": "http://hitsniffer.com/", + "companyId": "hit_sniffer" + }, + "hittail": { + "name": "HitTail", + "categoryId": 4, + "url": "http://www.hittail.com/", + "companyId": "hittail" + }, + "hivedx.com": { + "name": "hiveDX", + "categoryId": 4, + "url": "https://www.hivedx.com/", + "companyId": null + }, + "hiveworks": { + "name": "Hive Networks", + "categoryId": 4, + "url": "https://hiveworkscomics.com/", + "companyId": "hive_works" + }, + "hockeyapp": { + "name": "HockeyApp", + "categoryId": 101, + "url": "https://hockeyapp.net/", + "companyId": "microsoft", + "source": "AdGuard" + }, + "hoholikik.club": { + "name": "hoholikik.club", + "categoryId": 12, + "url": null, + "companyId": null + }, + "hola_player": { + "name": "Hola Player", + "categoryId": 0, + "url": "https://holacdn.com/", + "companyId": "hola_cdn" + }, + "homeaway": { + "name": "HomeAway", + "categoryId": 8, + "url": null, + "companyId": null + }, + "honeybadger": { + "name": "Honeybadger", + "categoryId": 6, + "url": "https://www.honeybadger.io/", + "companyId": "honeybadger" + }, + "hooklogic": { + "name": "HookLogic", + "categoryId": 4, + "url": "http://hooklogic.com/", + "companyId": "criteo" + }, + "hop-cube": { + "name": "Hop-Cube", + "categoryId": 4, + "url": "http://www.hop-cube.com/", + "companyId": "hop-cube" + }, + "hotdogsandads.com": { + "name": "hotdogsandads.com", + "categoryId": 11, + "url": null, + "companyId": null + }, + "hotjar": { + "name": "Hotjar", + "categoryId": 6, + "url": "http://www.hotjar.com/", + "companyId": "hotjar" + }, + "hotkeys": { + "name": "HotKeys", + "categoryId": 4, + "url": "http://www.demandmedia.com/", + "companyId": "leaf_group" + }, + "hotlog.ru": { + "name": "HotLog", + "categoryId": 4, + "url": "https://hotlog.ru/", + "companyId": "hotlog" + }, + "hotwords": { + "name": "HOTWords", + "categoryId": 4, + "url": "http://hotwords.com/", + "companyId": "hotwords" + }, + "howtank.com": { + "name": "howtank", + "categoryId": 7, + "url": "https://www.howtank.com/", + "companyId": null + }, + "hqentertainmentnetwork.com": { + "name": "HQ Entertainment Network", + "categoryId": 4, + "url": "https://hqentertainmentnetwork.com/", + "companyId": null + }, + "hsoub": { + "name": "Hsoub", + "categoryId": 4, + "url": "http://www.hsoub.com/", + "companyId": "hsoub" + }, + "hstrck.com": { + "name": "HEIM:SPIEL Medien GmbH", + "categoryId": 8, + "url": "https://www.heimspiel.de/", + "companyId": null + }, + "httpool": { + "name": "HTTPool", + "categoryId": 4, + "url": "http://www.httpool.com/", + "companyId": "httpool" + }, + "hubrus": { + "name": "HUBRUS", + "categoryId": 4, + "url": "http://www.hubrus.com/", + "companyId": "hubrus" + }, + "hubspot": { + "name": "HubSpot", + "categoryId": 6, + "url": "http://www.hubspot.com/", + "companyId": "hubspot" + }, + "hubspot_forms": { + "name": "HubSpot Forms", + "categoryId": 2, + "url": "http://www.hubspot.com", + "companyId": "hubspot" + }, + "hubvisor.io": { + "name": "Hubvisor", + "categoryId": 4, + "url": "https://hubvisor.io/", + "companyId": null + }, + "hucksterbot": { + "name": "HucksterBot", + "categoryId": 4, + "url": "http://hucksterbot.ru/", + "companyId": "hucksterbot" + }, + "hupso": { + "name": "Hupso", + "categoryId": 7, + "url": "http://www.hupso.com/", + "companyId": "hupso" + }, + "hurra_tracker": { + "name": "Hurra Tracker", + "categoryId": 4, + "url": "http://www.hurra.com/en/", + "companyId": "hurra_communications" + }, + "hybrid.ai": { + "name": "Hybrid.ai", + "categoryId": 4, + "url": "https://hybrid.ai/", + "companyId": "hybrid_adtech" + }, + "hype_exchange": { + "name": "Hype Exchange", + "categoryId": 4, + "url": "http://www.hypeexchange.com/", + "companyId": "hype_exchange" + }, + "hypercomments": { + "name": "HyperComments", + "categoryId": 1, + "url": "http://www.hypercomments.com/", + "companyId": "hypercomments" + }, + "hyves_widgets": { + "name": "Hyves Widgets", + "categoryId": 4, + "url": "http://www.hyves.nl/", + "companyId": "hyves" + }, + "hyvyd": { + "name": "Hyvyd GmbH", + "categoryId": 8, + "url": null, + "companyId": null + }, + "i-behavior": { + "name": "i-Behavior", + "categoryId": 4, + "url": "http://www.i-behavior.com/", + "companyId": "kbm_group" + }, + "i-mobile": { + "name": "i-mobile", + "categoryId": 4, + "url": "https://www2.i-mobile.co.jp/en/index.aspx", + "companyId": "i-mobile" + }, + "i.ua": { + "name": "i.ua", + "categoryId": 4, + "url": "http://www.i.ua/", + "companyId": "i.ua" + }, + "i10c.net": { + "name": "i10c.net", + "categoryId": 11, + "url": null, + "companyId": null + }, + "i2i.jp": { + "name": "i2i.jp", + "categoryId": 6, + "url": "http://www.i2i.jp/", + "companyId": "i2i.jp" + }, + "iab_consent": { + "name": "IAB Consent", + "categoryId": 5, + "url": "https://iabtechlab.com/standards/gdpr-transparency-and-consent-framework/", + "companyId": "iab" + }, + "iadvize": { + "name": "iAdvize", + "categoryId": 2, + "url": "http://www.iadvize.com/", + "companyId": "iadvize" + }, + "ibm_customer_experience": { + "name": "IBM Digital Analytics", + "categoryId": 6, + "url": "http://www.coremetrics.com/", + "companyId": "ibm" + }, + "icerocket_tracker": { + "name": "IceRocket Tracker", + "categoryId": 7, + "url": "http://tracker.icerocket.com/", + "companyId": "meltwater_icerocket" + }, + "icf_technology": { + "name": "ICF Technology", + "categoryId": 2, + "url": "http://www.icftechnology.com/", + "companyId": null + }, + "iclick": { + "name": "iClick", + "categoryId": 4, + "url": "http://optimix.asia/", + "companyId": "iclick_interactive" + }, + "icrossing": { + "name": "iCrossing", + "categoryId": 4, + "url": "http://www.icrossing.com/", + "companyId": "hearst" + }, + "icstats": { + "name": "ICStats", + "categoryId": 6, + "url": "http://www.icstats.nl/", + "companyId": "icstats" + }, + "icuazeczpeoohx.com": { + "name": "icuazeczpeoohx.com", + "categoryId": 11, + "url": null, + "companyId": null + }, + "id-news.net": { + "name": "Ippen Digital", + "categoryId": 4, + "url": "https://www.ippen-digital.de/", + "companyId": null + }, + "id5-sync": { + "name": "ID5 Sync", + "categoryId": 4, + "url": "https://id5.io/", + "companyId": "id5-sync", + "source": "AdGuard" + }, + "id_services": { + "name": "ID Services", + "categoryId": 6, + "url": "https://id.services/", + "companyId": "id_services" + }, + "ideal_media": { + "name": "Ideal Media", + "categoryId": 4, + "url": "http://idealmedia.com/", + "companyId": "ideal_media" + }, + "idealo_com": { + "name": "idealo.com", + "categoryId": 4, + "url": "http://idealo.com/", + "companyId": null + }, + "identrust": { + "name": "IdenTrust, Inc.", + "categoryId": 5, + "url": "https://identrust.com/", + "companyId": "identrust", + "source": "AdGuard" + }, + "ideoclick": { + "name": "IdeoClick", + "categoryId": 4, + "url": "http://ideoclick.com", + "companyId": "ideoclick" + }, + "idio": { + "name": "Idio", + "categoryId": 4, + "url": "https://www.idio.ai/", + "companyId": "idio" + }, + "ie8eamus.com": { + "name": "ie8eamus.com", + "categoryId": 11, + "url": null, + "companyId": null + }, + "ientry": { + "name": "iEntry", + "categoryId": 4, + "url": "http://www.ientry.com/", + "companyId": "ientry" + }, + "iflychat": { + "name": "iFlyChat", + "categoryId": 2, + "url": "https://iflychat.com/", + "companyId": "iflychat" + }, + "ignitionone": { + "name": "IgnitionOne", + "categoryId": 6, + "url": "https://www.ignitionone.com/", + "companyId": "zeta" + }, + "igodigital": { + "name": "iGoDigital", + "categoryId": 2, + "url": "http://igodigital.com/", + "companyId": "salesforce" + }, + "ihs_markit": { + "name": "IHS Markit", + "categoryId": 6, + "url": "https://ihsmarkit.com/index.html", + "companyId": "ihs" + }, + "ihs_markit_online_shopper_insigh": { + "name": "IHS Markit Online Shopper Insigh", + "categoryId": 6, + "url": "http://www.visicogn.com/vcu.htm", + "companyId": "ihs" + }, + "ihvmcqojoj.com": { + "name": "ihvmcqojoj.com", + "categoryId": 11, + "url": null, + "companyId": null + }, + "iias.eu": { + "name": "Insight Image", + "categoryId": 3, + "url": "http://insightimage.com/", + "companyId": null + }, + "ijento": { + "name": "iJento", + "categoryId": 6, + "url": "http://www.ijento.com/", + "companyId": "ijento" + }, + "imad": { + "name": "imad", + "categoryId": 4, + "url": "http://www.imad.co.kr/", + "companyId": "i'mad_republic" + }, + "image_advantage": { + "name": "Image Advantage", + "categoryId": 4, + "url": "http://www.worthathousandwords.com/", + "companyId": "image_advantage" + }, + "image_space_media": { + "name": "Image Space Media", + "categoryId": 4, + "url": "http://www.imagespacemedia.com/", + "companyId": "image_space_media" + }, + "imgix.net": { + "name": "ImgIX", + "categoryId": 9, + "url": "https://www.imgix.com/", + "companyId": null + }, + "imgur": { + "name": "Imgur", + "categoryId": 8, + "url": "https://imgur.com/", + "companyId": "medialab", + "source": "AdGuard" + }, + "imho_vi": { + "name": "imho vi", + "categoryId": 4, + "url": "http://www.imho.ru", + "companyId": "imho" + }, + "immanalytics": { + "name": "Immanalytics", + "categoryId": 2, + "url": "https://www.roku.com/", + "companyId": "roku" + }, + "immobilienscout24_de": { + "name": "immobilienscout24.de", + "categoryId": 8, + "url": "http://www.scout24.com/", + "companyId": "scout24" + }, + "imonomy": { + "name": "imonomy", + "categoryId": 6, + "url": "http://imonomy.com/", + "companyId": "imonomy" + }, + "impact_radius": { + "name": "Impact Radius", + "categoryId": 5, + "url": "http://www.impactradius.com/", + "companyId": "impact_radius" + }, + "impresiones_web": { + "name": "Impresiones Web", + "categoryId": 4, + "url": "http://www.iw-advertising.com/", + "companyId": "impresiones_web" + }, + "improve_digital": { + "name": "Improve Digital", + "categoryId": 4, + "url": "http://www.improvedigital.com/", + "companyId": "improve_digital" + }, + "improvely": { + "name": "Improvely", + "categoryId": 6, + "url": "https://www.improvely.com/", + "companyId": "awio_web_services" + }, + "inbenta": { + "name": "Inbenta", + "categoryId": 6, + "url": "https://www.inbenta.com/en/", + "companyId": "inbenta" + }, + "inboxsdk.com": { + "name": "Inbox SDK", + "categoryId": 8, + "url": "https://www.inboxsdk.com/", + "companyId": null + }, + "indeed": { + "name": "Indeed", + "categoryId": 4, + "url": "http://www.indeed.com/", + "companyId": "indeed" + }, + "index_exchange": { + "name": "Index Exchange", + "categoryId": 4, + "url": "http://www.casalemedia.com/", + "companyId": "index_exchange" + }, + "indieclick": { + "name": "IndieClick", + "categoryId": 4, + "url": "http://www.indieclick.com/", + "companyId": "leaf_group" + }, + "industry_brains": { + "name": "Industry Brains", + "categoryId": 4, + "url": "http://www.industrybrains.com/", + "companyId": "industrybrains" + }, + "infectious_media": { + "name": "Impression Desk", + "categoryId": 4, + "url": "https://impressiondesk.com/", + "companyId": "infectious_media" + }, + "infinite_analytics": { + "name": "Infinite Analytics", + "categoryId": 6, + "url": "http://infiniteanalytics.com/products/", + "companyId": "infinite_analytics" + }, + "infinity_tracking": { + "name": "Infinity Tracking", + "categoryId": 6, + "url": "http://www.infinity-tracking.com", + "companyId": "infinity_tracking" + }, + "influads": { + "name": "InfluAds", + "categoryId": 4, + "url": "http://www.influads.com/", + "companyId": "influads" + }, + "infolinks": { + "name": "InfoLinks", + "categoryId": 4, + "url": "http://www.infolinks.com/", + "companyId": "infolinks" + }, + "infonline": { + "name": "INFOnline", + "categoryId": 6, + "url": "http://www.infonline.de/", + "companyId": "infonline" + }, + "informer_technologies": { + "name": "Informer Technologies", + "categoryId": 6, + "url": "http://www.informer.com/", + "companyId": "informer_technologies" + }, + "infusionsoft": { + "name": "Infusionsoft by Keap", + "categoryId": 4, + "url": "https://keap.com/", + "companyId": "infusionsoft" + }, + "innity": { + "name": "Innity", + "categoryId": 4, + "url": "http://www.innity.com/", + "companyId": "innity" + }, + "innogames.de": { + "name": "InnoGames", + "categoryId": 8, + "url": "https://www.innogames.com/", + "companyId": null + }, + "innovid": { + "name": "Innovid", + "categoryId": 4, + "url": "https://www.innovid.com/", + "companyId": "innovid" + }, + "inside": { + "name": "inside", + "categoryId": 7, + "url": "http://www.inside.tm/", + "companyId": "powerfront" + }, + "insider": { + "name": "Insider", + "categoryId": 6, + "url": "http://useinsider.com/", + "companyId": "insider" + }, + "insightexpress": { + "name": "InsightExpress", + "categoryId": 6, + "url": "https://www.millwardbrowndigital.com/", + "companyId": "millward_brown" + }, + "inskin_media": { + "name": "InSkin Media", + "categoryId": 4, + "url": "http://www.inskinmedia.com/", + "companyId": "inskin_media" + }, + "inspectlet": { + "name": "Inspectlet", + "categoryId": 6, + "url": "https://www.inspectlet.com/", + "companyId": "inspectlet" + }, + "inspsearchapi.com": { + "name": "Infospace Search", + "categoryId": 4, + "url": "http://infospace.com/", + "companyId": "system1" + }, + "instagram_com": { + "name": "Instagram", + "categoryId": 8, + "url": "https://www.facebook.com/", + "companyId": "meta", + "source": "AdGuard" + }, + "instant_check_mate": { + "name": "Instant Check Mate", + "categoryId": 2, + "url": "https://www.instantcheckmate.com/", + "companyId": "instant_check_mate" + }, + "instart_logic": { + "name": "Instart Logic", + "categoryId": 4, + "url": "https://www.instartlogic.com/", + "companyId": "instart_logic_inc" + }, + "insticator": { + "name": "Insticator", + "categoryId": 4, + "url": "https://www.insticator.com/landingpage", + "companyId": "insticator" + }, + "instinctive": { + "name": "Instinctive", + "categoryId": 4, + "url": "https://instinctive.io/", + "companyId": "instinctive" + }, + "intango": { + "name": "Intango", + "categoryId": 4, + "url": "https://intango.com/", + "companyId": "intango" + }, + "integral_ad_science": { + "name": "Integral Ad Science", + "categoryId": 4, + "url": "https://integralads.com/", + "companyId": "integral_ad_science" + }, + "integral_marketing": { + "name": "Integral Marketing", + "categoryId": 4, + "url": "http://integral-marketing.com/", + "companyId": "integral_marketing" + }, + "intelliad": { + "name": "intelliAd", + "categoryId": 6, + "url": "http://www.intelliad.de/", + "companyId": "intelliad" + }, + "intelligencefocus": { + "name": "IntelligenceFocus", + "categoryId": 6, + "url": "http://www.intelligencefocus.com", + "companyId": "intelligencefocus" + }, + "intelligent_reach": { + "name": "Intelligent Reach", + "categoryId": 4, + "url": "http://www.intelligentreach.com/", + "companyId": "intelligent_reach" + }, + "intense_debate": { + "name": "Intense Debate", + "categoryId": 2, + "url": "http://intensedebate.com/", + "companyId": "automattic" + }, + "intent_iq": { + "name": "Intent IQ", + "categoryId": 4, + "url": "http://datonics.com/", + "companyId": "almondnet" + }, + "intent_media": { + "name": "Intent", + "categoryId": 4, + "url": "https://intent.com/", + "companyId": "intent_media" + }, + "intercom": { + "name": "Intercom", + "categoryId": 2, + "url": "http://intercom.io/", + "companyId": "intercom" + }, + "interedy.info": { + "name": "interedy.info", + "categoryId": 11, + "url": null, + "companyId": null + }, + "intergi": { + "name": "Intergi", + "categoryId": 4, + "url": "http://www.intergi.com/", + "companyId": "intergi_entertainment" + }, + "intermarkets.net": { + "name": "Intermarkets", + "categoryId": 4, + "url": "http://intermarkets.net/", + "companyId": "intermarkets" + }, + "intermundo_media": { + "name": "InterMundo Media", + "categoryId": 4, + "url": "http://intermundomedia.com/", + "companyId": "intermundo_media" + }, + "internet_billboard": { + "name": "Internet BillBoard", + "categoryId": 4, + "url": "http://www.ibillboard.com/en/", + "companyId": "internet_billboard" + }, + "internetaudioads": { + "name": "InternetAudioAds", + "categoryId": 0, + "url": "http://www.internetaudioads.com/", + "companyId": "internetaudioads" + }, + "internetbrands": { + "name": "InternetBrands", + "categoryId": 7, + "url": "http://www.internetbrands.com/", + "companyId": "internet_brands" + }, + "interpolls": { + "name": "Interpolls", + "categoryId": 4, + "url": "http://www.interpolls.com/", + "companyId": "interpolls" + }, + "interyield": { + "name": "Interyield", + "categoryId": 4, + "url": "http://www.advertise.com/publisher-solutions/", + "companyId": "advertise.com" + }, + "intilery": { + "name": "Intilery", + "categoryId": 6, + "url": "http://www.intilery.com", + "companyId": "intilery" + }, + "intimate_merger": { + "name": "Intimate Merger", + "categoryId": 6, + "url": "https://corp.intimatemerger.com/", + "companyId": "intimate_merger" + }, + "investingchannel": { + "name": "Investing Channel", + "categoryId": 8, + "url": "http://www.investingchannel.com/", + "companyId": "investingchannel" + }, + "inviziads": { + "name": "InviziAds", + "categoryId": 4, + "url": "http://www.inviziads.com", + "companyId": "inviziads" + }, + "invoca": { + "name": "Invoca", + "categoryId": 4, + "url": "http://www.invoca.com/", + "companyId": "invoca" + }, + "invodo": { + "name": "Invodo", + "categoryId": 6, + "url": "http://www.invodo.com/", + "companyId": "invodo" + }, + "ionicframework.com": { + "name": "Ionic", + "categoryId": 8, + "url": "https://ionicframework.com/", + "companyId": null + }, + "iotec": { + "name": "iotec", + "categoryId": 4, + "url": "https://www.iotecglobal.com/", + "companyId": "iotec" + }, + "iovation": { + "name": "iovation", + "categoryId": 5, + "url": "http://www.iovation.com/", + "companyId": "iovation" + }, + "ip-label": { + "name": "ip-label", + "categoryId": 6, + "url": "http://www.ip-label.co.uk/", + "companyId": "ip-label" + }, + "ip_targeting": { + "name": "IP Targeting", + "categoryId": 6, + "url": "https://www.iptargeting.com/", + "companyId": "el_toro" + }, + "ip_tracker": { + "name": "IP Tracker", + "categoryId": 6, + "url": "http://www.ip-tracker.org/", + "companyId": "ip_tracker" + }, + "iperceptions": { + "name": "iPerceptions", + "categoryId": 2, + "url": "http://www.iperceptions.com/", + "companyId": "iperceptions" + }, + "ipfingerprint": { + "name": "IPFingerprint", + "categoryId": 6, + "url": "http://www.ipfingerprint.com/", + "companyId": "ipfingerprint" + }, + "ipg_mediabrands": { + "name": "IPG Mediabrands", + "categoryId": 4, + "url": "https://www.ipgmediabrands.com/", + "companyId": "ipg_mediabrands" + }, + "ipify": { + "name": "ipify", + "categoryId": 8, + "url": "https://www.ipify.org/", + "companyId": null + }, + "ipinfo": { + "name": "Ipinfo", + "categoryId": 2, + "url": "https://ipinfo.io/", + "companyId": "ipinfo.io" + }, + "iplogger": { + "name": "IPLogger", + "categoryId": 6, + "url": "http://iplogger.ru/", + "companyId": "iplogger" + }, + "iprom": { + "name": "iprom", + "categoryId": 4, + "url": "http://www.iprom.si/", + "companyId": "iprom" + }, + "ipromote": { + "name": "iPromote", + "categoryId": 4, + "url": "http://www.ipromote.com/", + "companyId": "ipromote" + }, + "iprospect": { + "name": "iProspect", + "categoryId": 4, + "url": "http://www.iprospect.com/", + "companyId": "dentsu_aegis_network" + }, + "iqiyi": { + "name": "iQiyi", + "categoryId": 0, + "url": "https://www.iqiyi.com/", + "companyId": "iqiyi", + "source": "AdGuard" + }, + "ironsource": { + "name": "ironSource Ltd.", + "categoryId": 4, + "url": "https://www.is.com", + "companyId": "unity", + "source": "AdGuard" + }, + "isocket": { + "name": "isocket", + "categoryId": 4, + "url": "http://www.isocket.com/", + "companyId": "rubicon_project" + }, + "isolarcloud": { + "name": "iSolarCloud", + "categoryId": 6, + "url": "https://isolarcloud.com/", + "companyId": "sungrow", + "source": "AdGuard" + }, + "ispot.tv": { + "name": "iSpot.tv", + "categoryId": 4, + "url": "https://www.ispot.tv/", + "companyId": null + }, + "itineraire.info": { + "name": "itineraire.info", + "categoryId": 2, + "url": "https://www.itineraire.info/", + "companyId": null + }, + "itunes_link_maker": { + "name": "iTunes Link Maker", + "categoryId": 4, + "url": "https://www.apple.com/", + "companyId": "apple" + }, + "ity.im": { + "name": "ity.im", + "categoryId": 4, + "url": "http://ity.im/", + "companyId": "ity.im" + }, + "iubenda.com": { + "name": "iubenda", + "categoryId": 5, + "url": "https://www.iubenda.com/", + "companyId": "iubenda" + }, + "ivcbrasil.org.br": { + "name": "IVC Brasil", + "categoryId": 6, + "url": "https://ivcbrasil.org.br/#/home", + "companyId": null + }, + "ividence": { + "name": "Ividence", + "categoryId": 4, + "url": "https://www.ividence.com/home/", + "companyId": "sien" + }, + "iwiw_widgets": { + "name": "iWiW Widgets", + "categoryId": 2, + "url": "http://iwiw.hu", + "companyId": "iwiw" + }, + "ixi_digital": { + "name": "IXI Digital", + "categoryId": 4, + "url": "http://www.equifax.com/home/en_us", + "companyId": "equifax" + }, + "ixquick.com": { + "name": "ixquick", + "categoryId": 8, + "url": "https://www.ixquick.com/", + "companyId": "startpage" + }, + "izooto": { + "name": "iZooto", + "categoryId": 6, + "url": "https://www.izooto.com/", + "companyId": "izooto" + }, + "j-list_affiliate_program": { + "name": "J-List Affiliate Program", + "categoryId": 4, + "url": "http://www.jlist.com/page/affiliates.html", + "companyId": "j-list" + }, + "jaco": { + "name": "Jaco", + "categoryId": 6, + "url": "https://www.walkme.com/", + "companyId": "walkme" + }, + "janrain": { + "name": "Janrain", + "categoryId": 6, + "url": "http://www.janrain.com/", + "companyId": "akamai" + }, + "jeeng": { + "name": "Jeeng", + "categoryId": 4, + "url": "https://jeeng.com/", + "companyId": "jeeng" + }, + "jeeng_widgets": { + "name": "Jeeng Widgets", + "categoryId": 4, + "url": "https://jeeng.com/", + "companyId": "jeeng" + }, + "jet_interactive": { + "name": "Jet Interactive", + "categoryId": 6, + "url": "http://www.jetinteractive.com.au/", + "companyId": "jet_interactive" + }, + "jetbrains": { + "name": "JetBrains", + "categoryId": 8, + "url": "https://www.jetbrains.com/", + "companyId": "jetbrains", + "source": "AdGuard" + }, + "jetlore": { + "name": "Jetlore", + "categoryId": 6, + "url": "http://www.jetlore.com/", + "companyId": "jetlore" + }, + "jetpack": { + "name": "Jetpack", + "categoryId": 6, + "url": "https://jetpack.com/", + "companyId": "automattic" + }, + "jetpack_digital": { + "name": "Jetpack Digital", + "categoryId": 6, + "url": "http://www.jetpack.com/", + "companyId": "jetpack_digital" + }, + "jimdo.com": { + "name": "jimdo.com", + "categoryId": 10, + "url": null, + "companyId": null + }, + "jink": { + "name": "Jink", + "categoryId": 4, + "url": "http://www.jink.de/", + "companyId": "jink" + }, + "jirafe": { + "name": "Jirafe", + "categoryId": 6, + "url": "http://jirafe.com/", + "companyId": "jirafe" + }, + "jivochat": { + "name": "JivoSite", + "categoryId": 2, + "url": "https://www.jivochat.com/", + "companyId": "jivochat" + }, + "jivox": { + "name": "Jivox", + "categoryId": 4, + "url": "http://www.jivox.com/", + "companyId": "jivox" + }, + "jobs_2_careers": { + "name": "Jobs 2 Careers", + "categoryId": 4, + "url": "http://www.jobs2careers.com/", + "companyId": "jobs_2_careers" + }, + "joinhoney": { + "name": "Honey", + "categoryId": 8, + "url": "https://www.joinhoney.com/", + "companyId": null + }, + "jornaya": { + "name": "Jornaya", + "categoryId": 6, + "url": "http://leadid.com/", + "companyId": "jornaya" + }, + "jquery": { + "name": "jQuery", + "categoryId": 9, + "url": "https://jquery.org/", + "companyId": "js_foundation" + }, + "js_communications": { + "name": "JS Communications", + "categoryId": 4, + "url": "http://www.jssearch.net/", + "companyId": "js_communications" + }, + "jsdelivr": { + "name": "jsDelivr", + "categoryId": 9, + "url": "https://www.jsdelivr.com/", + "companyId": null + }, + "jse_coin": { + "name": "JSE Coin", + "categoryId": 4, + "url": "https://jsecoin.com/", + "companyId": "jse_coin" + }, + "jsuol.com.br": { + "name": "jsuol.com.br", + "categoryId": 4, + "url": null, + "companyId": null + }, + "juggcash": { + "name": "JuggCash", + "categoryId": 3, + "url": "http://www.juggcash.com", + "companyId": "juggcash" + }, + "juiceadv": { + "name": "JuiceADV", + "categoryId": 4, + "url": "http://juiceadv.com/", + "companyId": "juiceadv" + }, + "juicyads": { + "name": "JuicyAds", + "categoryId": 3, + "url": "http://www.juicyads.com/", + "companyId": "juicyads" + }, + "jumplead": { + "name": "Jumplead", + "categoryId": 6, + "url": "https://jumplead.com/", + "companyId": "jumplead" + }, + "jumpstart_tagging_solutions": { + "name": "Jumpstart Tagging Solutions", + "categoryId": 6, + "url": "http://www.hearst.com/", + "companyId": "hearst" + }, + "jumptap": { + "name": "Jumptap", + "categoryId": 4, + "url": "http://www.jumptap.com/", + "companyId": "verizon" + }, + "jumptime": { + "name": "JumpTime", + "categoryId": 6, + "url": "http://www.jumptime.com/", + "companyId": "openx" + }, + "just_answer": { + "name": "Just Answer", + "categoryId": 2, + "url": "https://www.justanswer.com/", + "companyId": "just_answer" + }, + "just_premium": { + "name": "Just Premium", + "categoryId": 4, + "url": "http://justpremium.com/", + "companyId": "just_premium" + }, + "just_relevant": { + "name": "Just Relevant", + "categoryId": 4, + "url": "http://www.justrelevant.com/", + "companyId": "just_relevant" + }, + "jvc.gg": { + "name": "Jeuxvideo CDN", + "categoryId": 9, + "url": "http://www.jeuxvideo.com/", + "companyId": null + }, + "jw_player": { + "name": "JW Player", + "categoryId": 0, + "url": "https://www.jwplayer.com/", + "companyId": "jw_player" + }, + "jw_player_ad_solutions": { + "name": "JW Player Ad Solutions", + "categoryId": 4, + "url": "http://www.longtailvideo.com/adsolution/", + "companyId": "jw_player" + }, + "kaeufersiegel.de": { + "name": "Käufersiegel", + "categoryId": 2, + "url": "https://www.kaeufersiegel.de/", + "companyId": null + }, + "kairion.de": { + "name": "kairion", + "categoryId": 4, + "url": "https://kairion.de/", + "companyId": "prosieben_sat1" + }, + "kaloo.ga": { + "name": "Kalooga", + "categoryId": 4, + "url": "https://www.kalooga.com/", + "companyId": "kalooga" + }, + "kalooga_widget": { + "name": "Kalooga Widget", + "categoryId": 4, + "url": "http://kalooga.com/", + "companyId": "kalooga" + }, + "kaltura": { + "name": "Kaltura", + "categoryId": 0, + "url": "http://corp.kaltura.com/", + "companyId": "kaltura" + }, + "kameleoon": { + "name": "Kameleoon", + "categoryId": 6, + "url": "http://www.kameleoon.com/", + "companyId": "kameleoon" + }, + "kampyle": { + "name": "Medallia", + "categoryId": 2, + "url": "http://www.kampyle.com/", + "companyId": "medallia" + }, + "kanoodle": { + "name": "Kanoodle", + "categoryId": 4, + "url": "http://www.kanoodle.com/", + "companyId": "kanoodle" + }, + "kantar_media": { + "name": "Kantar Media", + "categoryId": 4, + "url": "https://www.kantarmedia.com/", + "companyId": "wpp" + }, + "karambasecurity": { + "name": "Karamba Security", + "categoryId": 8, + "url": "https://karambasecurity.com/", + "companyId": "karambasecurity", + "source": "AdGuard" + }, + "kargo": { + "name": "Kargo", + "categoryId": 4, + "url": "http://www.kargo.com/", + "companyId": "kargo" + }, + "kaspersky-labs.com": { + "name": "Kaspersky Labs", + "categoryId": 12, + "url": "https://www.kaspersky.com/", + "companyId": "AO Kaspersky Lab" + }, + "kataweb.it": { + "name": "KataWeb", + "categoryId": 4, + "url": "http://www.kataweb.it/", + "companyId": null + }, + "katchup": { + "name": "Katchup", + "categoryId": 4, + "url": "http://www.katchup.fr/", + "companyId": "katchup" + }, + "kauli": { + "name": "Kauli", + "categoryId": 4, + "url": "http://kau.li/", + "companyId": "kauli" + }, + "kavanga": { + "name": "Kavanga", + "categoryId": 4, + "url": "http://kavanga.ru/", + "companyId": "kavanga" + }, + "kayo_sports": { + "name": "Kayo Sports", + "categoryId": 0, + "url": "https://kayosports.com.au/", + "companyId": "news_corp", + "source": "AdGuard" + }, + "keen_io": { + "name": "Keen IO", + "categoryId": 6, + "url": "https://keen.io", + "companyId": "keen_io" + }, + "kelkoo": { + "name": "Kelkoo", + "categoryId": 4, + "url": "http://www.kelkoo.com/", + "companyId": "kelkoo" + }, + "kenshoo": { + "name": "Kenshoo", + "categoryId": 6, + "url": "http://www.kenshoo.com/", + "companyId": "kenshoo" + }, + "keymetric": { + "name": "KeyMetric", + "categoryId": 6, + "url": "http://keymetric.net/", + "companyId": "keymetric" + }, + "keytiles": { + "name": "Keytiles", + "categoryId": 6, + "url": "http://keytiles.com/", + "companyId": "keytiles" + }, + "keywee": { + "name": "Keywee", + "categoryId": 6, + "url": "https://keywee.co/", + "companyId": "keywee" + }, + "keywordmax": { + "name": "KeywordMax", + "categoryId": 4, + "url": "http://www.keywordmax.com/", + "companyId": "digital_river" + }, + "khoros": { + "name": "Khoros", + "categoryId": 7, + "url": "http://www.massrelevance.com/", + "companyId": "khoros" + }, + "khzbeucrltin.com": { + "name": "khzbeucrltin.com", + "categoryId": 11, + "url": null, + "companyId": null + }, + "kickfactory": { + "name": "Kickfactory", + "categoryId": 4, + "url": "https://kickfactory.com/", + "companyId": "kickfactory" + }, + "kickfire": { + "name": "Kickfire", + "categoryId": 4, + "url": "http://www.visistat.com/", + "companyId": "kickfire" + }, + "kik": { + "name": "Kik", + "categoryId": 7, + "url": "https://kik.com/", + "companyId": "medialab", + "source": "AdGuard" + }, + "king.com": { + "name": "King.com", + "categoryId": 4, + "url": "http://www.king.com/", + "companyId": "king.com" + }, + "king_com": { + "name": "King.com", + "categoryId": 8, + "url": "https://king.com/", + "companyId": "activision_blizzard" + }, + "kinja.com": { + "name": "Kinja", + "categoryId": 6, + "url": "https://kinja.com/", + "companyId": "gizmodo" + }, + "kiosked": { + "name": "Kiosked", + "categoryId": 4, + "url": "http://www.kiosked.com/", + "companyId": "kiosked" + }, + "kissmetrics.com": { + "name": "Kissmetrics", + "categoryId": 6, + "url": "https://www.kissmetrics.com/", + "companyId": "kissmetrics" + }, + "kitara_media": { + "name": "Kitara Media", + "categoryId": 4, + "url": "http://www.kitaramedia.com/", + "companyId": "kitara_media" + }, + "kixer": { + "name": "Kixer", + "categoryId": 4, + "url": "http://www.kixer.com", + "companyId": "kixer" + }, + "klarna.com": { + "name": "Klarna", + "categoryId": 2, + "url": "https://www.klarna.com/", + "companyId": null + }, + "klaviyo": { + "name": "Klaviyo", + "categoryId": 6, + "url": "https://www.klaviyo.com/", + "companyId": "klaviyo" + }, + "klikki": { + "name": "Klikki", + "categoryId": 4, + "url": "http://www.klikki.com/", + "companyId": "klikki" + }, + "kliksaya": { + "name": "KlikSaya", + "categoryId": 4, + "url": "http://www.kliksaya.com", + "companyId": "kliksaya" + }, + "kmeleo": { + "name": "Kméléo", + "categoryId": 4, + "url": "http://www.6peo.com/", + "companyId": "6peo" + }, + "knoopstat": { + "name": "Knoopstat", + "categoryId": 6, + "url": "http://www.knoopstat.nl", + "companyId": "knoopstat" + }, + "knotch": { + "name": "Knotch", + "categoryId": 2, + "url": "http://knotch.it", + "companyId": "knotch" + }, + "komoona": { + "name": "Komoona", + "categoryId": 4, + "url": "http://www.komoona.com/", + "companyId": "komoona" + }, + "kontera_contentlink": { + "name": "Kontera ContentLink", + "categoryId": 4, + "url": "http://www.kontera.com/", + "companyId": "singtel" + }, + "kontextr": { + "name": "Kontextr", + "categoryId": 4, + "url": "https://www.kontextr.com/", + "companyId": "kontext" + }, + "kontextua": { + "name": "Kontextua", + "categoryId": 4, + "url": "http://www.kontextua.com/", + "companyId": "kontextua" + }, + "korrelate": { + "name": "Korrelate", + "categoryId": 4, + "url": "http://korrelate.com/", + "companyId": "korrelate" + }, + "kortx": { + "name": "Kortx", + "categoryId": 6, + "url": "http://www.kortx.io/", + "companyId": "kortx" + }, + "kount": { + "name": "Kount", + "categoryId": 6, + "url": "https://kount.com/", + "companyId": null + }, + "krux_digital": { + "name": "Salesforce DMP", + "categoryId": 4, + "url": "https://www.salesforce.com/products/marketing-cloud/data-management/?mc=DMP", + "companyId": "salesforce" + }, + "kupona": { + "name": "Kupona", + "categoryId": 4, + "url": "http://www.kupona-media.de/en/retargeting-and-performance-media-width-kupona", + "companyId": "kupona" + }, + "kxcdn.com": { + "name": "Keycdn", + "categoryId": 9, + "url": "https://www.keycdn.com/", + "companyId": null + }, + "kyto": { + "name": "Kyto", + "categoryId": 6, + "url": "https://www.kyto.com/", + "companyId": "kyto" + }, + "ladsp.com": { + "name": "Logicad", + "categoryId": 4, + "url": "https://www.logicad.com/", + "companyId": "logicad" + }, + "lanista_concepts": { + "name": "Lanista Concepts", + "categoryId": 4, + "url": "http://lanistaconcepts.com/", + "companyId": "lanista_concepts" + }, + "latimes": { + "name": "Los Angeles Times", + "categoryId": 8, + "url": "http://www.latimes.com/", + "companyId": "latimes" + }, + "launch_darkly": { + "name": "Launch Darkly", + "categoryId": 5, + "url": "https://launchdarkly.com/index.html", + "companyId": "launch_darkly" + }, + "launchbit": { + "name": "LaunchBit", + "categoryId": 4, + "url": "https://www.launchbit.com/", + "companyId": "launchbit" + }, + "launchpad": { + "name": "Launchpad", + "categoryId": 8, + "url": "https://launchpad.net/", + "companyId": "canonical", + "source": "AdGuard" + }, + "layer-ad.org": { + "name": "Layer-ADS.net", + "categoryId": 4, + "url": "http://layer-ads.net/", + "companyId": null + }, + "lazada": { + "name": "Lazada", + "categoryId": 4, + "url": "https://www.lazada.com/", + "companyId": "lazada" + }, + "lcx_digital": { + "name": "LCX Digital", + "categoryId": 4, + "url": "http://www.lcx.com/", + "companyId": "lcx_digital" + }, + "le_monde.fr": { + "name": "Le Monde.fr", + "categoryId": 8, + "url": "http://www.lemonde.fr/", + "companyId": "le_monde.fr" + }, + "lead_liaison": { + "name": "Lead Liaison", + "categoryId": 6, + "url": "https://www.leadliaison.com", + "companyId": "lead_liaison" + }, + "leadback": { + "name": "Leadback", + "categoryId": 6, + "url": "http://leadback.ru/?utm_source=leadback_widget&utm_medium=eas-balt.ru&utm_campaign=self_ad", + "companyId": "leadback" + }, + "leaddyno": { + "name": "LeadDyno", + "categoryId": 4, + "url": "http://www.leaddyno.com", + "companyId": "leaddyno" + }, + "leadforensics": { + "name": "LeadForensics", + "categoryId": 4, + "url": "http://www.leadforensics.com/", + "companyId": "lead_forensics" + }, + "leadgenic": { + "name": "LeadGENIC", + "categoryId": 4, + "url": "https://leadgenic.com/", + "companyId": "leadgenic" + }, + "leadhit": { + "name": "LeadHit", + "categoryId": 2, + "url": "http://leadhit.ru/", + "companyId": "leadhit" + }, + "leadin": { + "name": "Leadin", + "categoryId": 6, + "url": "https://www.hubspot.com/", + "companyId": "hubspot" + }, + "leading_reports": { + "name": "Leading Reports", + "categoryId": 4, + "url": "https://www.leadingreports.de/", + "companyId": "leading_reports" + }, + "leadinspector": { + "name": "LeadInspector", + "categoryId": 6, + "url": "https://www.leadinspector.de/", + "companyId": "leadinspector" + }, + "leadlander": { + "name": "LeadLander", + "categoryId": 6, + "url": "http://www.leadlander.com/", + "companyId": "leadlander" + }, + "leadlife": { + "name": "LeadLife", + "categoryId": 2, + "url": "http://leadlife.com/", + "companyId": "leadlife" + }, + "leadpages": { + "name": "Leadpages", + "categoryId": 6, + "url": "https://www.leadpages.net/", + "companyId": "leadpages" + }, + "leadplace": { + "name": "LeadPlace", + "categoryId": 6, + "url": "https://temelio.com", + "companyId": "leadplace" + }, + "leads_by_web.com": { + "name": "Leads by Web.com", + "categoryId": 4, + "url": "http://www.leadsbyweb.com", + "companyId": "web.com_group" + }, + "leadscoreapp": { + "name": "LeadScoreApp", + "categoryId": 2, + "url": "http://leadscoreapp.com", + "companyId": "leadscoreapp" + }, + "leadsius": { + "name": "Leadsius", + "categoryId": 4, + "url": "http://www.leadsius.com/", + "companyId": "leadsius" + }, + "leady": { + "name": "Leady", + "categoryId": 4, + "url": "http://www.leady.cz/", + "companyId": "leady" + }, + "leiki": { + "name": "Leiki", + "categoryId": 4, + "url": "http://www.leiki.com", + "companyId": "leiki" + }, + "lengow": { + "name": "Lengow", + "categoryId": 4, + "url": "http://www.lengow.com/", + "companyId": "lengow" + }, + "lenmit.com": { + "name": "lenmit.com", + "categoryId": 11, + "url": null, + "companyId": null + }, + "lentainform.com": { + "name": "lentainform.com", + "categoryId": 8, + "url": "https://www.lentainform.com/", + "companyId": null + }, + "lenua.de": { + "name": "Lenua System", + "categoryId": 4, + "url": "http://lenua.de/", + "companyId": "synatix" + }, + "let_reach": { + "name": "Let Reach", + "categoryId": 2, + "url": "https://letreach.com/", + "companyId": "let_reach" + }, + "lets_encrypt": { + "name": "Let's Encrypt", + "categoryId": 5, + "url": "https://letsencrypt.org/", + "companyId": "isrg", + "source": "AdGuard" + }, + "letv": { + "name": "LeTV", + "categoryId": 6, + "url": "http://www.le.com/", + "companyId": "letv" + }, + "level3_communications": { + "name": "Level 3 Communications, Inc.", + "categoryId": 8, + "url": "http://www.level3.com/en/", + "companyId": "level3_communications" + }, + "lgads": { + "name": "LG Ad Solutions", + "categoryId": 4, + "url": "https://lgads.tv/", + "companyId": "lgcorp", + "source": "AdGuard" + }, + "lgtv": { + "name": "LG TV", + "categoryId": 8, + "url": "https://www.lg.com/", + "companyId": "lgcorp", + "source": "AdGuard" + }, + "licensebuttons.net": { + "name": "licensebuttons.net", + "categoryId": 9, + "url": "https://licensebuttons.net/", + "companyId": null + }, + "lifestreet_media": { + "name": "LifeStreet Media", + "categoryId": 4, + "url": "http://lifestreetmedia.com/", + "companyId": "lifestreet_media" + }, + "ligatus": { + "name": "Ligatus", + "categoryId": 4, + "url": "http://www.ligatus.com/", + "companyId": "outbrain" + }, + "limk": { + "name": "Limk", + "categoryId": 4, + "url": "https://limk.com/", + "companyId": "limk" + }, + "line_apps": { + "name": "Line", + "categoryId": 6, + "url": "https://line.me/en-US/", + "companyId": "line" + }, + "linezing": { + "name": "LineZing", + "categoryId": 4, + "url": "http://www.linezing.com/", + "companyId": "linezing" + }, + "linkbucks": { + "name": "Linkbucks", + "categoryId": 4, + "url": "http://www.linkbucks.com/", + "companyId": "linkbucks" + }, + "linkconnector": { + "name": "LinkConnector", + "categoryId": 4, + "url": "http://www.linkconnector.com", + "companyId": "linkconnector" + }, + "linkedin": { + "name": "LinkedIn", + "categoryId": 8, + "url": "https://www.linkedin.com/", + "companyId": "microsoft" + }, + "linkedin_ads": { + "name": "LinkedIn Ads", + "categoryId": 4, + "url": "http://www.linkedin.com/", + "companyId": "microsoft" + }, + "linkedin_analytics": { + "name": "LinkedIn Analytics", + "categoryId": 6, + "url": "https://www.microsoft.com/", + "companyId": "microsoft" + }, + "linkedin_marketing_solutions": { + "name": "LinkedIn Marketing Solutions", + "categoryId": 4, + "url": "https://business.linkedin.com/marketing-solutions", + "companyId": "microsoft" + }, + "linkedin_widgets": { + "name": "LinkedIn Widgets", + "categoryId": 7, + "url": "https://www.linkedin.com", + "companyId": "microsoft" + }, + "linker": { + "name": "Linker", + "categoryId": 4, + "url": "https://linker.hr/", + "companyId": "linker" + }, + "linkprice": { + "name": "LinkPrice", + "categoryId": 4, + "url": "http://www.linkprice.com/", + "companyId": "linkprice" + }, + "linkpulse": { + "name": "Linkpulse", + "categoryId": 6, + "url": "http://www.linkpulse.com/", + "companyId": "linkpulse" + }, + "linksalpha": { + "name": "LinksAlpha", + "categoryId": 7, + "url": "http://www.linksalpha.com", + "companyId": "linksalpha" + }, + "linksmart": { + "name": "LinkSmart", + "categoryId": 4, + "url": "http://www.linksmart.com/", + "companyId": "sovrn" + }, + "linkstorm": { + "name": "Linkstorm", + "categoryId": 2, + "url": "http://www.linkstorms.com/", + "companyId": "linkstorm" + }, + "linksynergy.com": { + "name": "Rakuten LinkShare", + "categoryId": 4, + "url": "https://rakutenmarketing.com/affiliate", + "companyId": "rakuten" + }, + "linkup": { + "name": "LinkUp", + "categoryId": 6, + "url": "http://www.linkup.com/", + "companyId": "linkup" + }, + "linkwise": { + "name": "Linkwise", + "categoryId": 4, + "url": "http://linkwi.se/global-en/", + "companyId": "linkwise" + }, + "linkwithin": { + "name": "LinkWithin", + "categoryId": 7, + "url": "http://www.linkwithin.com/", + "companyId": "linkwithin" + }, + "liquidm_technology_gmbh": { + "name": "LiquidM Technology GmbH", + "categoryId": 4, + "url": "https://liquidm.com/", + "companyId": "liquidm" + }, + "liqwid": { + "name": "Liqwid", + "categoryId": 4, + "url": "https://liqwid.com/", + "companyId": "liqwid" + }, + "list.ru": { + "name": "Rating@Mail.Ru", + "categoryId": 7, + "url": "http://list.ru/", + "companyId": "megafon" + }, + "listrak": { + "name": "Listrak", + "categoryId": 2, + "url": "http://www.listrak.com/", + "companyId": "listrak" + }, + "live2support": { + "name": "Live2Support", + "categoryId": 2, + "url": "http://www.live2support.com/", + "companyId": "live2support" + }, + "live800": { + "name": "Live800", + "categoryId": 2, + "url": "http://live800.com", + "companyId": "live800" + }, + "live_agent": { + "name": "Live Agent", + "categoryId": 2, + "url": "https://www.ladesk.com/", + "companyId": "liveagent" + }, + "live_help_now": { + "name": "Live Help Now", + "categoryId": 2, + "url": "http://www.livehelpnow.net/", + "companyId": "live_help_now" + }, + "live_intent": { + "name": "Live Intent", + "categoryId": 6, + "url": "http://www.liveintent.com/", + "companyId": "liveintent" + }, + "live_journal": { + "name": "Live Journal", + "categoryId": 6, + "url": "http://www.livejournal.com/", + "companyId": "livejournal" + }, + "liveadexchanger.com": { + "name": "liveadexchanger.com", + "categoryId": 11, + "url": null, + "companyId": null + }, + "livechat": { + "name": "LiveChat", + "categoryId": 2, + "url": "http://www.livechatinc.com", + "companyId": "livechat" + }, + "livechatnow": { + "name": "LiveChatNow", + "categoryId": 2, + "url": "http://www.livechatnow.com/", + "companyId": "livechatnow!" + }, + "liveclicker": { + "name": "Liveclicker", + "categoryId": 2, + "url": "http://www.liveclicker.com", + "companyId": "liveclicker" + }, + "livecounter": { + "name": "Livecounter", + "categoryId": 6, + "url": "http://www.livecounter.dk/", + "companyId": "livecounter" + }, + "livefyre": { + "name": "Livefyre", + "categoryId": 1, + "url": "http://www.livefyre.com/", + "companyId": "adobe" + }, + "liveinternet": { + "name": "LiveInternet", + "categoryId": 1, + "url": "http://www.liveinternet.ru/", + "companyId": "liveinternet" + }, + "liveperson": { + "name": "LivePerson", + "categoryId": 2, + "url": "http://www.liveperson.com/", + "companyId": "liveperson" + }, + "liveramp": { + "name": "LiveRamp", + "categoryId": 4, + "url": "https://liveramp.com/", + "companyId": "acxiom" + }, + "livere": { + "name": "LiveRe", + "categoryId": 7, + "url": "http://www.livere.com/", + "companyId": "livere" + }, + "livesportmedia.eu": { + "name": "Livesport Media", + "categoryId": 8, + "url": "http://www.livesportmedia.eu/", + "companyId": null + }, + "livestream": { + "name": "Livestream", + "categoryId": 0, + "url": "http://vimeo.com/", + "companyId": "vimeo" + }, + "livetex.ru": { + "name": "LiveTex", + "categoryId": 2, + "url": "https://livetex.ru/", + "companyId": "livetex" + }, + "lkqd": { + "name": "LKQD", + "categoryId": 4, + "url": "http://www.lkqd.com/", + "companyId": "nexstar" + }, + "loadbee.com": { + "name": "Loadbee", + "categoryId": 4, + "url": "https://company.loadbee.com/de/loadbee-home", + "companyId": null + }, + "loadercdn.com": { + "name": "loadercdn.com", + "categoryId": 11, + "url": null, + "companyId": null + }, + "loadsource.org": { + "name": "loadsource.org", + "categoryId": 11, + "url": null, + "companyId": null + }, + "localytics": { + "name": "Localytics", + "categoryId": 101, + "url": "https://uplandsoftware.com/localytics/", + "companyId": "upland", + "source": "AdGuard" + }, + "lockerdome": { + "name": "LockerDome", + "categoryId": 7, + "url": "https://lockerdome.com", + "companyId": "lockerdome" + }, + "lockerz_share": { + "name": "AddToAny", + "categoryId": 7, + "url": "http://www.addtoany.com/", + "companyId": "addtoany" + }, + "logan_media": { + "name": "Logan Media", + "categoryId": 6, + "url": "http://loganmedia.mobi/", + "companyId": "logan_media" + }, + "logdna": { + "name": "LogDNA", + "categoryId": 4, + "url": "http://www.answerbook.com/", + "companyId": "logdna" + }, + "loggly": { + "name": "Loggly", + "categoryId": 6, + "url": "http://loggly.com/", + "companyId": "loggly" + }, + "logly": { + "name": "logly", + "categoryId": 6, + "url": "http://logly.co.jp/", + "companyId": "logly" + }, + "logsss.com": { + "name": "logsss.com", + "categoryId": 11, + "url": null, + "companyId": null + }, + "lomadee": { + "name": "Lomadee", + "categoryId": 4, + "url": "http://lomadee.com", + "companyId": "lomadee" + }, + "longtail_video_analytics": { + "name": "JW Player Analytics", + "categoryId": 4, + "url": "http://www.longtailvideo.com/", + "companyId": "jw_player" + }, + "loomia": { + "name": "Loomia", + "categoryId": 4, + "url": "http://www.loomia.com/", + "companyId": "loomia" + }, + "loop11": { + "name": "Loop11", + "categoryId": 6, + "url": "https://360i.com/", + "companyId": "360i" + }, + "loopfuse_oneview": { + "name": "LoopFuse OneView", + "categoryId": 4, + "url": "http://www.loopfuse.com/", + "companyId": "loopfuse" + }, + "lotame": { + "name": "Lotame", + "categoryId": 4, + "url": "http://www.lotame.com/", + "companyId": "lotame" + }, + "lottex_inc": { + "name": "vidcpm.com", + "categoryId": 11, + "url": null, + "companyId": null + }, + "lucid": { + "name": "Lucid", + "categoryId": 4, + "url": "https://luc.id/", + "companyId": "luc.id" + }, + "lucid_media": { + "name": "Lucid Media", + "categoryId": 4, + "url": "http://www.lucidmedia.com/", + "companyId": "singtel" + }, + "lucini": { + "name": "Lucini", + "categoryId": 4, + "url": "http://www.lucinilucini.com/", + "companyId": "lucini_&_lucini_communications" + }, + "lucky_orange": { + "name": "Lucky Orange", + "categoryId": 6, + "url": "http://www.luckyorange.com/", + "companyId": "lucky_orange" + }, + "luckypushh.com": { + "name": "luckypushh.com", + "categoryId": 11, + "url": null, + "companyId": null + }, + "lxr100": { + "name": "LXR100", + "categoryId": 4, + "url": "http://www.netelixir.com/lxr100_PPC_management_tool.html", + "companyId": "netelixir" + }, + "lynchpin_analytics": { + "name": "Lynchpin Analytics", + "categoryId": 4, + "url": "http://www.lynchpin.com/", + "companyId": "lynchpin_analytics" + }, + "lytics": { + "name": "Lytics", + "categoryId": 6, + "url": "https://www.lytics.com/", + "companyId": "lytics" + }, + "lyuoaxruaqdo.com": { + "name": "lyuoaxruaqdo.com", + "categoryId": 11, + "url": null, + "companyId": null + }, + "m-pathy": { + "name": "m-pathy", + "categoryId": 4, + "url": "http://www.m-pathy.com/", + "companyId": "m-pathy" + }, + "m._p._newmedia": { + "name": "M. P. NEWMEDIA", + "categoryId": 4, + "url": "http://www.mp-newmedia.com/", + "companyId": "sticky" + }, + "m4n": { + "name": "M4N", + "categoryId": 4, + "url": "http://www.zanox.com/us/", + "companyId": "axel_springer" + }, + "mad_ads_media": { + "name": "Mad Ads Media", + "categoryId": 4, + "url": "http://www.madadsmedia.com/", + "companyId": "mad_ads_media" + }, + "madeleine.de": { + "name": "madeleine.de", + "categoryId": 4, + "url": null, + "companyId": null + }, + "madison_logic": { + "name": "Madison Logic", + "categoryId": 4, + "url": "http://www.madisonlogic.com/", + "companyId": "madison_logic" + }, + "madnet": { + "name": "MADNET", + "categoryId": 4, + "url": "http://madnet.ru/en", + "companyId": "madnet" + }, + "mads": { + "name": "MADS", + "categoryId": 4, + "url": "http://www.mads.com/", + "companyId": "mads" + }, + "magna_advertise": { + "name": "Magna Advertise", + "categoryId": 4, + "url": "http://magna.ru/", + "companyId": "magna_advertise" + }, + "magnetic": { + "name": "Magnetic", + "categoryId": 4, + "url": "http://www.magnetic.is", + "companyId": "magnetic" + }, + "magnetise_group": { + "name": "Magnetise Group", + "categoryId": 4, + "url": "http://magnetisegroup.com/", + "companyId": "magnetise_group" + }, + "magnify360": { + "name": "Magnify360", + "categoryId": 6, + "url": "http://www.magnify360.com/", + "companyId": "magnify360" + }, + "magnuum.com": { + "name": "magnuum.com", + "categoryId": 11, + "url": null, + "companyId": null + }, + "mail.ru_banner": { + "name": "Mail.Ru Banner Network", + "categoryId": 4, + "url": "http://mail.ru/", + "companyId": "vk", + "source": "AdGuard" + }, + "mail.ru_counter": { + "name": "Mail.Ru Counter", + "categoryId": 2, + "url": "http://mail.ru/", + "companyId": "vk", + "source": "AdGuard" + }, + "mail.ru_group": { + "name": "Mail.Ru Group", + "categoryId": 7, + "url": "http://mail.ru/", + "companyId": "vk", + "source": "AdGuard" + }, + "mailchimp_tracking": { + "name": "MailChimp Tracking", + "categoryId": 4, + "url": "http://mailchimp.com/", + "companyId": "mailchimp" + }, + "mailerlite.com": { + "name": "Mailerlite", + "categoryId": 10, + "url": "https://www.mailerlite.com/", + "companyId": "mailerlite" + }, + "mailtrack.io": { + "name": "MailTrack.io", + "categoryId": 4, + "url": "https://mailtrack.io", + "companyId": "mailtrack" + }, + "mainadv": { + "name": "mainADV", + "categoryId": 4, + "url": "http://www.mainadv.com/", + "companyId": "mainadv" + }, + "makazi": { + "name": "Makazi", + "categoryId": 4, + "url": "http://www.makazi.com/en/", + "companyId": "makazi_group" + }, + "makeappdev.xyz": { + "name": "makeappdev.xyz", + "categoryId": 12, + "url": null, + "companyId": null + }, + "makesource.cool": { + "name": "makesource.cool", + "categoryId": 11, + "url": null, + "companyId": null + }, + "mango": { + "name": "Mango", + "categoryId": 4, + "url": "https://www.mango-office.ru/", + "companyId": "mango_office" + }, + "manycontacts": { + "name": "ManyContacts", + "categoryId": 4, + "url": "https://www.manycontacts.com/", + "companyId": "manycontacts" + }, + "mapandroute.de": { + "name": "Map and Route", + "categoryId": 2, + "url": "http://www.mapandroute.de/", + "companyId": null + }, + "mapbox": { + "name": "Mapbox", + "categoryId": 2, + "url": "https://www.mapbox.com/", + "companyId": null + }, + "maploco": { + "name": "MapLoco", + "categoryId": 4, + "url": "http://www.maploco.com/", + "companyId": "maploco" + }, + "marchex": { + "name": "Marchex", + "categoryId": 4, + "url": "http://www.industrybrains.com/", + "companyId": "marchex" + }, + "marimedia": { + "name": "Marimedia", + "categoryId": 4, + "url": "http://www.marimedia.net/", + "companyId": "tremor_video" + }, + "marin_search_marketer": { + "name": "Marin Search Marketer", + "categoryId": 4, + "url": "http://www.marinsoftware.com/", + "companyId": "marin_software" + }, + "mark_+_mini": { + "name": "Mark & Mini", + "categoryId": 4, + "url": "http://www.markandmini.com/index.cfm", + "companyId": "edm_group" + }, + "market_thunder": { + "name": "Market Thunder", + "categoryId": 4, + "url": "https://www.makethunder.com/", + "companyId": "market_thunder" + }, + "marketgid": { + "name": "MarketGid", + "categoryId": 4, + "url": "http://www.mgid.com/", + "companyId": "marketgid_usa" + }, + "marketing_automation": { + "name": "Marketing Automation", + "categoryId": 4, + "url": "https://en.frodx.com", + "companyId": "frodx" + }, + "marketo": { + "name": "Marketo", + "categoryId": 4, + "url": "http://www.marketo.com/", + "companyId": "marketo" + }, + "markmonitor": { + "name": "MarkMonitor", + "categoryId": 4, + "url": "https://www.markmonitor.com/", + "companyId": "markmonitor", + "source": "AdGuard" + }, + "marktest": { + "name": "Marktest", + "categoryId": 4, + "url": "http://www.marktest.com/", + "companyId": "marktest_group" + }, + "marshadow.io": { + "name": "marshadow.io", + "categoryId": 4, + "url": null, + "companyId": null + }, + "martini_media": { + "name": "Martini Media", + "categoryId": 4, + "url": "http://martinimediainc.com/", + "companyId": "martini_media" + }, + "maru-edu": { + "name": "Maru-EDU", + "categoryId": 2, + "url": "https://www.maruedr.com", + "companyId": "maruedr" + }, + "marvellous_machine": { + "name": "Marvellous Machine", + "categoryId": 6, + "url": "https://www.marvellousmachine.net/", + "companyId": "marvellous_machine" + }, + "master_banner_network": { + "name": "Master Banner Network", + "categoryId": 4, + "url": "http://www.mbn.com.ua/", + "companyId": "master_banner_network" + }, + "mastertarget": { + "name": "MasterTarget", + "categoryId": 4, + "url": "http://mastertarget.ru/", + "companyId": "mastertarget" + }, + "matelso": { + "name": "Matelso", + "categoryId": 6, + "url": "https://www.matelso.de", + "companyId": "matelso" + }, + "mather_analytics": { + "name": "Mather Analytics", + "categoryId": 6, + "url": "https://www.mathereconomics.com/", + "companyId": "mather_economics" + }, + "mathjax.org": { + "name": "MathJax", + "categoryId": 9, + "url": "https://www.mathjax.org/", + "companyId": null + }, + "matiro": { + "name": "Matiro", + "categoryId": 6, + "url": "http://matiro.com/", + "companyId": "matiro" + }, + "matomo": { + "name": "Matomo", + "categoryId": 6, + "url": "https://matomo.org/s", + "companyId": "matomo" + }, + "matomy_market": { + "name": "Matomy Market", + "categoryId": 4, + "url": "http://www.matomymarket.com/", + "companyId": "matomy_media" + }, + "matrix": { + "name": "Matrix", + "categoryId": 5, + "url": "https://matrix.org/", + "companyId": "matrix", + "source": "AdGuard" + }, + "maxbounty": { + "name": "MaxBounty", + "categoryId": 5, + "url": "http://www.maxbounty.com/", + "companyId": "maxbounty" + }, + "maxcdn": { + "name": "MaxCDN", + "categoryId": 9, + "url": "https://www.maxcdn.com/", + "companyId": null + }, + "maxlab": { + "name": "Maxlab", + "categoryId": 4, + "url": "http://maxlab.ru", + "companyId": "maxlab" + }, + "maxmind": { + "name": "MaxMind", + "categoryId": 4, + "url": "http://www.maxmind.com/", + "companyId": "maxmind" + }, + "maxonclick_com": { + "name": "maxonclick.com", + "categoryId": 11, + "url": null, + "companyId": null + }, + "maxpoint_interactive": { + "name": "MaxPoint Interactive", + "categoryId": 4, + "url": "http://www.maxpointinteractive.com/", + "companyId": "maxpoint_interactive" + }, + "maxymiser": { + "name": "Oracle Maxymiser", + "categoryId": 4, + "url": "https://www.oracle.com/marketingcloud/products/testing-and-optimization/index.html", + "companyId": "oracle" + }, + "mbr_targeting": { + "name": "mbr targeting", + "categoryId": 4, + "url": "https://mbr-targeting.com/", + "companyId": "stroer" + }, + "mbuy": { + "name": "MBuy", + "categoryId": 4, + "url": "http://www.adbuyer.com/", + "companyId": "mbuy" + }, + "mcabi": { + "name": "mCabi", + "categoryId": 4, + "url": "https://mcabi.mcloudglobal.com/#", + "companyId": "mcabi" + }, + "mcafee_secure": { + "name": "McAfee Secure", + "categoryId": 5, + "url": "http://www.mcafeesecure.com/us/", + "companyId": "mcafee" + }, + "mconet": { + "name": "MCOnet", + "categoryId": 4, + "url": "http://mconet.biz/", + "companyId": "mconet" + }, + "mdotlabs": { + "name": "MdotLabs", + "categoryId": 4, + "url": "http://www.mdotlabs.com/", + "companyId": "comscore" + }, + "media-clic": { + "name": "Media-clic", + "categoryId": 4, + "url": "http://www.media-clic.com/", + "companyId": "media-click" + }, + "media-imdb.com": { + "name": "IMDB CDN", + "categoryId": 9, + "url": "https://www.imdb.com/", + "companyId": "amazon_associates" + }, + "media.net": { + "name": "Media.net", + "categoryId": 4, + "url": "http://www.media.net/", + "companyId": "media.net" + }, + "media_impact": { + "name": "Media Impact", + "categoryId": 4, + "url": "https://mediaimpact.de/index.html", + "companyId": "media_impact" + }, + "media_innovation_group": { + "name": "Xaxis", + "categoryId": 4, + "url": "https://www.xaxis.com/", + "companyId": "media_innovation_group" + }, + "media_today": { + "name": "Media Today", + "categoryId": 4, + "url": "http://mediatoday.ru/", + "companyId": "media_today" + }, + "mediaad": { + "name": "MediaAd", + "categoryId": 4, + "url": "https://mediaad.org", + "companyId": "mediaad" + }, + "mediaglu": { + "name": "MediaGlu", + "categoryId": 4, + "url": "https://www.mediaglu.com/", + "companyId": "microsoft", + "source": "AdGuard" + }, + "mediahub": { + "name": "MediaHub", + "categoryId": 4, + "url": "http://www.mediahub.com/", + "companyId": "mediahub" + }, + "medialab": { + "name": "MediaLab.AI Inc.", + "categoryId": 8, + "url": "https://medialab.la/", + "companyId": "medialab", + "source": "AdGuard" + }, + "medialand": { + "name": "Medialand", + "categoryId": 4, + "url": "http://medialand.ru", + "companyId": "medialand" + }, + "medialead": { + "name": "Medialead", + "categoryId": 4, + "url": "https://www.medialead.de/", + "companyId": "the_reach_group" + }, + "mediamath": { + "name": "MediaMath", + "categoryId": 4, + "url": "http://www.mediamath.com/", + "companyId": "mediamath" + }, + "mediametrics": { + "name": "Mediametrics", + "categoryId": 7, + "url": "http://mediametrics.ru", + "companyId": "mediametrics" + }, + "median": { + "name": "Median", + "categoryId": 4, + "url": "http://median.hu", + "companyId": "median" + }, + "mediapass": { + "name": "MediaPass", + "categoryId": 4, + "url": "http://www.mediapass.com/", + "companyId": "mediapass" + }, + "mediapost_communications": { + "name": "Mediapost Communications", + "categoryId": 6, + "url": "https://vrm.mediapostcommunication.net/", + "companyId": "mediapost_communications" + }, + "mediarithmics.com": { + "name": "Mediarithmics", + "categoryId": 4, + "url": "http://www.mediarithmics.com/en/", + "companyId": "mediarithmics" + }, + "mediascope": { + "name": "Mediascope", + "categoryId": 6, + "url": "http://mediascope.net/", + "companyId": "mediascope" + }, + "mediashakers": { + "name": "MediaShakers", + "categoryId": 4, + "url": "http://www.mediashakers.com/", + "companyId": "mediashakers" + }, + "mediashift": { + "name": "MediaShift", + "categoryId": 4, + "url": "http://www.mediashift.com/", + "companyId": "mediashift" + }, + "mediator.media": { + "name": "Mediator", + "categoryId": 6, + "url": "https://mediator.media/", + "companyId": "mycom_bv" + }, + "mediav": { + "name": "MediaV", + "categoryId": 4, + "url": "https://www.mediav.com/", + "companyId": "mediav" + }, + "mediawhiz": { + "name": "Mediawhiz", + "categoryId": 4, + "url": "http://www.mediawhiz.com/", + "companyId": "matomy_media" + }, + "medigo": { + "name": "Medigo", + "categoryId": 4, + "url": "https://www.mediego.com/en/", + "companyId": "mediego" + }, + "medley": { + "name": "Medley", + "categoryId": 4, + "url": "http://medley.com/", + "companyId": "friendfinder_networks" + }, + "medyanet": { + "name": "MedyaNet", + "categoryId": 4, + "url": "http://www.medyanet.com.tr/", + "companyId": "medyanet" + }, + "meebo_bar": { + "name": "Meebo Bar", + "categoryId": 7, + "url": "http://bar.meebo.com/", + "companyId": "google" + }, + "meetrics": { + "name": "Meetrics", + "categoryId": 4, + "url": "http://www.meetrics.de/", + "companyId": "meetrics" + }, + "megaindex": { + "name": "MegaIndex", + "categoryId": 4, + "url": "http://www.megaindex.ru", + "companyId": "megaindex" + }, + "meganz": { + "name": "Mega Ltd.", + "categoryId": 8, + "url": "https://mega.io/", + "companyId": "meganz", + "source": "AdGuard" + }, + "mein-bmi.com": { + "name": "mein-bmi.com", + "categoryId": 12, + "url": "https://www.mein-bmi.com/", + "companyId": null + }, + "melissa": { + "name": "Melissa", + "categoryId": 6, + "url": "https://www.melissa.com/", + "companyId": "melissa_global_intelligence" + }, + "melt": { + "name": "Melt", + "categoryId": 4, + "url": "http://meltdsp.com/", + "companyId": "melt" + }, + "menlo": { + "name": "Menlo", + "categoryId": 4, + "url": "http://www.menlotechnologies.cn/", + "companyId": "menlotechnologies" + }, + "mentad": { + "name": "MentAd", + "categoryId": 4, + "url": "http://www.mentad.com/", + "companyId": "mentad" + }, + "mercado": { + "name": "Mercado", + "categoryId": 4, + "url": "https://www.mercadolivre.com.br/", + "companyId": "mercado_livre" + }, + "merchantadvantage": { + "name": "MerchantAdvantage", + "categoryId": 4, + "url": "http://www.merchantadvantage.com/channelmanagement.cfm", + "companyId": "merchantadvantage" + }, + "merchenta": { + "name": "Merchenta", + "categoryId": 4, + "url": "http://www.merchenta.com/", + "companyId": "merchenta" + }, + "mercury_media": { + "name": "Mercury Media", + "categoryId": 4, + "url": "http://trackingsoft.com/", + "companyId": "mercury_media" + }, + "merkle_research": { + "name": "Merkle Research", + "categoryId": 6, + "url": "http://www.dentsuaegisnetwork.com/", + "companyId": "dentsu_aegis_network" + }, + "merkle_rkg": { + "name": "Merkle RKG", + "categoryId": 6, + "url": "https://www.merkleinc.com/what-we-do/digital-agency-services/rkg-now-fully-integrated-merkle", + "companyId": "dentsu_aegis_network" + }, + "messenger.com": { + "name": "Facebook Messenger", + "categoryId": 7, + "url": "https://messenger.com", + "companyId": "facebook" + }, + "meta_network": { + "name": "Meta Network", + "categoryId": 7, + "url": "http://www.metanetwork.com/", + "companyId": "meta_network" + }, + "metaffiliation.com": { + "name": "Netaffiliation", + "categoryId": 4, + "url": "http://netaffiliation.com/", + "companyId": "kwanko" + }, + "metapeople": { + "name": "Metapeople", + "categoryId": 4, + "url": "http://www.metapeople.com/us/", + "companyId": "metapeople" + }, + "metrigo": { + "name": "Metrigo", + "categoryId": 4, + "url": "http://metrigo.com/", + "companyId": "metrigo" + }, + "metriweb": { + "name": "MetriWeb", + "categoryId": 4, + "url": "http://www.metriware.be/", + "companyId": "metriware" + }, + "miaozhen": { + "name": "Miaozhen", + "categoryId": 4, + "url": "http://miaozhen.com/en/index.html", + "companyId": "miaozhen" + }, + "microad": { + "name": "MicroAd", + "categoryId": 4, + "url": "https://www.microad.co.jp/", + "companyId": "microad" + }, + "microsoft": { + "name": "Microsoft Services", + "categoryId": 8, + "url": "http://www.microsoft.com/", + "companyId": "microsoft" + }, + "microsoft_adcenter_conversion": { + "name": "Microsoft adCenter Conversion", + "categoryId": 4, + "url": "https://adcenter.microsoft.com/", + "companyId": "microsoft" + }, + "microsoft_analytics": { + "name": "Microsoft Analytics", + "categoryId": 4, + "url": "https://adcenter.microsoft.com", + "companyId": "microsoft" + }, + "microsoft_clarity": { + "name": "Microsoft Clarity", + "categoryId": 6, + "url": "https://clarity.microsoft.com/", + "companyId": "microsoft" + }, + "mindset_media": { + "name": "Mindset Media", + "categoryId": 4, + "url": "http://www.mindset-media.com/", + "companyId": "google" + }, + "mindspark": { + "name": "Mindspark", + "categoryId": 6, + "url": "http://www.mindspark.com/", + "companyId": "iac_apps" + }, + "mindviz_tracker": { + "name": "MindViz Tracker", + "categoryId": 4, + "url": "http://mvtracker.com/", + "companyId": "mindviz" + }, + "minewhat": { + "name": "MineWhat", + "categoryId": 4, + "url": "http://www.minewhat.com", + "companyId": "minewhat" + }, + "mints_app": { + "name": "Mints App", + "categoryId": 2, + "url": "https://mintsapp.io/", + "companyId": "mints_app" + }, + "minute.ly": { + "name": "minute.ly", + "categoryId": 0, + "url": "http://minute.ly/", + "companyId": "minute.ly" + }, + "minute.ly_video": { + "name": "minute.ly video", + "categoryId": 0, + "url": "http://minute.ly/", + "companyId": "minute.ly" + }, + "mirando": { + "name": "Mirando", + "categoryId": 4, + "url": "http://mirando.de", + "companyId": "mirando" + }, + "mirtesen.ru": { + "name": "mirtesen.ru", + "categoryId": 7, + "url": "https://mirtesen.ru/", + "companyId": null + }, + "mister_bell": { + "name": "Mister Bell", + "categoryId": 4, + "url": "http://misterbell.fr/", + "companyId": "mister_bell" + }, + "mixi": { + "name": "mixi", + "categoryId": 7, + "url": "http://mixi.jp/", + "companyId": "mixi" + }, + "mixpanel": { + "name": "Mixpanel", + "categoryId": 6, + "url": "http://mixpanel.com/", + "companyId": "mixpanel" + }, + "mixpo": { + "name": "Mixpo", + "categoryId": 4, + "url": "http://dynamicvideoad.mixpo.com/", + "companyId": "mixpo" + }, + "mluvii": { + "name": "Mluvii", + "categoryId": 2, + "url": "https://www.mluvii.com", + "companyId": "mluvii" + }, + "mncdn.com": { + "name": "MediaNova CDN", + "categoryId": 9, + "url": "https://www.medianova.com/", + "companyId": null + }, + "moat": { + "name": "Moat", + "categoryId": 4, + "url": "http://www.moat.com/", + "companyId": "oracle" + }, + "mobicow": { + "name": "Mobicow", + "categoryId": 4, + "url": "http://www.mobicow.com/", + "companyId": "mobicow" + }, + "mobify": { + "name": "Mobify", + "categoryId": 4, + "url": "http://www.mobify.com/", + "companyId": "mobify" + }, + "mobtrks.com": { + "name": "mobtrks.com", + "categoryId": 11, + "url": null, + "companyId": null + }, + "mocean_mobile": { + "name": "mOcean Mobile", + "categoryId": 4, + "url": "http://www.moceanmobile.com/", + "companyId": "pubmatic" + }, + "mochapp": { + "name": "MoChapp", + "categoryId": 2, + "url": "http://www.mochapp.com/", + "companyId": "mochapp" + }, + "modern_impact": { + "name": "Modern Impact", + "categoryId": 4, + "url": "http://www.modernimpact.com/", + "companyId": "modern_impact" + }, + "modernus": { + "name": "Modernus", + "categoryId": 6, + "url": "http://www.modernus.is", + "companyId": "modernus" + }, + "modulepush.com": { + "name": "modulepush.com", + "categoryId": 4, + "url": null, + "companyId": null + }, + "mogo_interactive": { + "name": "Mogo Interactive", + "categoryId": 4, + "url": "http://www.mogomarketing.com/", + "companyId": "mogo_interactive" + }, + "mokono_analytics": { + "name": "Mokono Analytics", + "categoryId": 4, + "url": "http://www.populis.com", + "companyId": "populis" + }, + "monero_miner": { + "name": "Monero Miner", + "categoryId": 8, + "url": "http://devappgrant.space/", + "companyId": null + }, + "monetate": { + "name": "Monetate", + "categoryId": 6, + "url": "http://monetate.com", + "companyId": "monetate" + }, + "monetize_me": { + "name": "Monetize Me", + "categoryId": 4, + "url": "http://www.monetize-me.com/", + "companyId": "monetize_me" + }, + "moneytizer": { + "name": "Moneytizer", + "categoryId": 4, + "url": "https://www.themoneytizer.com/", + "companyId": "the_moneytizer" + }, + "mongoose_metrics": { + "name": "Mongoose Metrics", + "categoryId": 4, + "url": "http://www.mongoosemetrics.com/", + "companyId": "mongoose_metrics" + }, + "monitis": { + "name": "Monitis", + "categoryId": 6, + "url": "http://www.monitis.com/", + "companyId": "monitis" + }, + "monitus": { + "name": "Monitus", + "categoryId": 6, + "url": "http://www.monitus.net/", + "companyId": "monitus" + }, + "monotype_gmbh": { + "name": "Monotype GmbH", + "categoryId": 9, + "url": "http://www.monotype.com/", + "companyId": "monotype" + }, + "monotype_imaging": { + "name": "Fonts.com Store", + "categoryId": 2, + "url": "https://www.fonts.com/", + "companyId": "monotype" + }, + "monsido": { + "name": "Monsido", + "categoryId": 6, + "url": "https://monsido.com/", + "companyId": "monsido" + }, + "monster_advertising": { + "name": "Monster Advertising", + "categoryId": 4, + "url": "http://www.monster.com/", + "companyId": "monster_worldwide" + }, + "mooxar": { + "name": "Mooxar", + "categoryId": 4, + "url": "http://mooxar.com/", + "companyId": "mooxar" + }, + "mopinion.com": { + "name": "Mopinion", + "categoryId": 2, + "url": "https://mopinion.com/", + "companyId": "mopinion" + }, + "mopub": { + "name": "MoPub", + "categoryId": 4, + "url": "https://www.mopub.com/", + "companyId": "twitter" + }, + "more_communication": { + "name": "More Communication", + "categoryId": 4, + "url": "http://www.more-com.co.jp/", + "companyId": "more_communication" + }, + "moreads": { + "name": "moreAds", + "categoryId": 4, + "url": "https://www.moras.jp", + "companyId": "moreads" + }, + "motigo_webstats": { + "name": "Motigo Webstats", + "categoryId": 7, + "url": "http://webstats.motigo.com/", + "companyId": "motigo" + }, + "motionpoint": { + "name": "MotionPoint", + "categoryId": 6, + "url": "http://www.motionpoint.com/", + "companyId": "motionpoint_corporation" + }, + "mouseflow": { + "name": "Mouseflow", + "categoryId": 6, + "url": "http://mouseflow.com/", + "companyId": "mouseflow" + }, + "mousestats": { + "name": "MouseStats", + "categoryId": 4, + "url": "http://www.mousestats.com/", + "companyId": "mousestats" + }, + "mousetrace": { + "name": "MouseTrace", + "categoryId": 6, + "url": "http://www.mousetrace.com/", + "companyId": "mousetrace" + }, + "mov.ad": { + "name": "Mov.ad ", + "categoryId": 8, + "url": null, + "companyId": null + }, + "movable_ink": { + "name": "Movable Ink", + "categoryId": 2, + "url": "https://movableink.com/", + "companyId": "movable_ink" + }, + "movable_media": { + "name": "Movable Media", + "categoryId": 4, + "url": "http://www.movablemedia.com/", + "companyId": "movable_media" + }, + "moz": { + "name": "Moz", + "categoryId": 8, + "url": "https://moz.com/", + "companyId": null + }, + "mozilla": { + "name": "Mozilla Foundation", + "categoryId": 8, + "url": "https://www.mozilla.org/", + "companyId": "mozilla", + "source": "AdGuard" + }, + "mozoo": { + "name": "MoZoo", + "categoryId": 4, + "url": "http://mozoo.com/", + "companyId": "mozoo" + }, + "mrp": { + "name": "MRP", + "categoryId": 4, + "url": "https://www.mrpfd.com/", + "companyId": "mrp" + }, + "mrpdata": { + "name": "MRP", + "categoryId": 6, + "url": "http://mrpdata.com/Account/Login?ReturnUrl=%2F", + "companyId": "fifth_story" + }, + "mrskincash": { + "name": "MrSkinCash", + "categoryId": 3, + "url": "http://mrskincash.com/", + "companyId": "mrskincash.com" + }, + "msedge": { + "name": "Microsoft Edge", + "categoryId": 8, + "url": "https://www.microsoft.com/en-us/edge", + "companyId": "microsoft", + "source": "AdGuard" + }, + "msn": { + "name": "Microsoft Network", + "categoryId": 8, + "url": "https://www.microsoft.com/", + "companyId": "microsoft" + }, + "muscula": { + "name": "Muscula", + "categoryId": 4, + "url": "https://www.universe-surf.de/", + "companyId": "universe_surf" + }, + "mux_inc": { + "name": "Mux", + "categoryId": 0, + "url": "https://mux.com/", + "companyId": "mux_inc" + }, + "mybloglog": { + "name": "MyBlogLog", + "categoryId": 7, + "url": "http://www.mybloglog.com/", + "companyId": "verizon" + }, + "mybuys": { + "name": "MyBuys", + "categoryId": 4, + "url": "http://www.mybuys.com/", + "companyId": "magnetic" + }, + "mycdn.me": { + "name": "Mail.Ru CDN", + "categoryId": 9, + "url": "https://corp.megafon.com/", + "companyId": "megafon" + }, + "mycliplister.com": { + "name": "Cliplister", + "categoryId": 2, + "url": "https://www.cliplister.com/", + "companyId": null + }, + "mycounter.ua": { + "name": "MyCounter.ua", + "categoryId": 6, + "url": "http://mycounter.ua", + "companyId": "mycounter.ua" + }, + "myfonts": { + "name": "MyFonts", + "categoryId": 6, + "url": "http://www.myfonts.com/", + "companyId": "myfonts" + }, + "myfonts_counter": { + "name": "MyFonts", + "categoryId": 6, + "url": "http://www.myfonts.com/", + "companyId": "myfonts" + }, + "mypagerank": { + "name": "MyPagerank", + "categoryId": 6, + "url": "http://www.mypagerank.net/", + "companyId": "mypagerank" + }, + "mystat": { + "name": "MyStat", + "categoryId": 7, + "url": "http://mystat.hu/", + "companyId": "myst_statistics" + }, + "mythings": { + "name": "myThings", + "categoryId": 4, + "url": "http://www.mythings.com/", + "companyId": "mythings" + }, + "mytop_counter": { + "name": "Mytop Counter", + "categoryId": 7, + "url": "http://mytop-in.net/", + "companyId": "mytop-in" + }, + "nab": { + "name": "National Australia Bank", + "categoryId": 8, + "url": "https://www.nab.com.au/", + "companyId": "nab", + "source": "AdGuard" + }, + "nakanohito.jp": { + "name": "Nakanohito", + "categoryId": 4, + "url": "http://nakanohito.jp/", + "companyId": "userinsight" + }, + "namogoo": { + "name": "Namoogoo", + "categoryId": 4, + "url": "https://www.namogoo.com/", + "companyId": null + }, + "nanigans": { + "name": "Nanigans", + "categoryId": 4, + "url": "http://www.nanigans.com/", + "companyId": "nanigans" + }, + "nano_interactive": { + "name": "Nano Interactive", + "categoryId": 4, + "url": "http://www.nanointeractive.com/home/de", + "companyId": "nano_interactive" + }, + "nanorep": { + "name": "nanoRep", + "categoryId": 2, + "url": "http://www.nanorep.com/", + "companyId": "logmein" + }, + "narando": { + "name": "Narando", + "categoryId": 0, + "url": "https://narando.com/", + "companyId": "narando" + }, + "narrativ": { + "name": "Narrativ", + "categoryId": 4, + "url": "https://narrativ.com/", + "companyId": "narrativ" + }, + "narrative_io": { + "name": "Narrative", + "categoryId": 6, + "url": "http://www.narrative.io/", + "companyId": "narrative.io" + }, + "natimatica": { + "name": "Natimatica", + "categoryId": 4, + "url": "http://natimatica.com/", + "companyId": "natimatica" + }, + "nativeads.com": { + "name": "native ads", + "categoryId": 4, + "url": "https://nativeads.com/", + "companyId": null + }, + "nativeroll": { + "name": "Nativeroll", + "categoryId": 0, + "url": "http://nativeroll.tv/", + "companyId": "native_roll" + }, + "nativo": { + "name": "Nativo", + "categoryId": 4, + "url": "http://www.nativo.net/", + "companyId": "nativo" + }, + "navegg_dmp": { + "name": "Navegg", + "categoryId": 6, + "url": "https://www.navegg.com/en/", + "companyId": "navegg" + }, + "naver.com": { + "name": "Naver", + "categoryId": 4, + "url": "https://www.naver.com/", + "companyId": "naver" + }, + "naver_search": { + "name": "Naver Search", + "categoryId": 2, + "url": "http://www.naver.com/", + "companyId": "naver" + }, + "nbc_news": { + "name": "NBC News", + "categoryId": 8, + "url": "https://www.nbcnews.com/", + "companyId": null + }, + "ncol": { + "name": "NCOL", + "categoryId": 4, + "url": "http://www.ncol.com/", + "companyId": "ncol" + }, + "needle": { + "name": "Needle", + "categoryId": 2, + "url": "http://www.needle.com", + "companyId": "needle" + }, + "nekudo.com": { + "name": "Nekudo", + "categoryId": 2, + "url": "https://nekudo.com/", + "companyId": "nekudo" + }, + "neodata": { + "name": "Neodata", + "categoryId": 4, + "url": "http://neodatagroup.com/", + "companyId": "neodata" + }, + "neory": { + "name": "NEORY ", + "categoryId": 4, + "url": "https://www.neory.com/", + "companyId": "neory" + }, + "nerfherdersolo_com": { + "name": "nerfherdersolo.com", + "categoryId": 8, + "url": null, + "companyId": null + }, + "net-metrix": { + "name": "NET-Metrix", + "categoryId": 6, + "url": "http://www.net-metrix.ch/", + "companyId": "net-metrix" + }, + "net-results": { + "name": "Net-Results", + "categoryId": 4, + "url": "http://www.net-results.com/", + "companyId": "net-results" + }, + "net_avenir": { + "name": "Net Avenir", + "categoryId": 4, + "url": "http://www.netavenir.com/", + "companyId": "net_avenir" + }, + "net_communities": { + "name": "Net Communities", + "categoryId": 4, + "url": "http://www.netcommunities.com/", + "companyId": "net_communities" + }, + "net_visibility": { + "name": "NET Visibility", + "categoryId": 4, + "url": "http://www.netvisibility.co.uk", + "companyId": "net_visibility" + }, + "netbiscuits": { + "name": "Netbiscuits", + "categoryId": 6, + "url": "http://www.netbiscuits.net/", + "companyId": "netbiscuits" + }, + "netbooster_group": { + "name": "NetBooster Group", + "categoryId": 4, + "url": "http://www.netbooster.com/", + "companyId": "netbooster_group" + }, + "netflix": { + "name": "Netflix", + "categoryId": 0, + "url": "https://www.netflix.com/", + "companyId": "netflix", + "source": "AdGuard" + }, + "netify": { + "name": "Netify", + "categoryId": 8, + "url": "https://www.netify.ai/", + "companyId": "netify", + "source": "AdGuard" + }, + "netletix": { + "name": "Netletix", + "categoryId": 4, + "url": "http://www.netletix.com//", + "companyId": "ip_de" + }, + "netminers": { + "name": "Netminers", + "categoryId": 6, + "url": "http://netminers.dk/", + "companyId": "netminers" + }, + "netmining": { + "name": "Netmining", + "categoryId": 4, + "url": "http://www.netmining.com/", + "companyId": "zeta" + }, + "netmonitor": { + "name": "NetMonitor", + "categoryId": 6, + "url": "http://www.netmanager.net/en/", + "companyId": "netmonitor" + }, + "netratings_sitecensus": { + "name": "NetRatings SiteCensus", + "categoryId": 4, + "url": "http://www.nielsen-online.com/intlpage.html", + "companyId": "nielsen" + }, + "netrk.net": { + "name": "nfxTrack", + "categoryId": 6, + "url": "https://netrk.net/", + "companyId": "netzeffekt" + }, + "netseer": { + "name": "NetSeer", + "categoryId": 4, + "url": "http://www.netseer.com/", + "companyId": "netseer" + }, + "netshelter": { + "name": "NetShelter", + "categoryId": 4, + "url": "http://www.netshelter.net/", + "companyId": "netshelter" + }, + "netsprint_audience": { + "name": "Netsprint Audience", + "categoryId": 6, + "url": "http://audience.netsprint.eu/", + "companyId": "netsprint" + }, + "networkedblogs": { + "name": "NetworkedBlogs", + "categoryId": 7, + "url": "http://w.networkedblogs.com/", + "companyId": "networkedblogs" + }, + "neustar_adadvisor": { + "name": "Neustar AdAdvisor", + "categoryId": 4, + "url": "http://www.targusinfo.com/", + "companyId": "neustar" + }, + "new_relic": { + "name": "New Relic", + "categoryId": 6, + "url": "http://newrelic.com/", + "companyId": "new_relic" + }, + "newscgp.com": { + "name": "News Connect", + "categoryId": 4, + "url": "https://newscorp.com/", + "companyId": "news_corp" + }, + "newsmax": { + "name": "Newsmax", + "categoryId": 4, + "url": "http://www.newsmax.com/", + "companyId": "newsmax" + }, + "newstogram": { + "name": "Newstogram", + "categoryId": 4, + "url": "http://www.newstogram.com/", + "companyId": "dailyme" + }, + "newsupdatedir.info": { + "name": "newsupdatedir.info", + "categoryId": 11, + "url": null, + "companyId": null + }, + "newsupdatewe.info": { + "name": "newsupdatewe.info", + "categoryId": 12, + "url": null, + "companyId": null + }, + "newtention": { + "name": "Newtention", + "categoryId": 4, + "url": "http://www.newtention.de/", + "companyId": "next_audience" + }, + "nexage": { + "name": "Nexage", + "categoryId": 4, + "url": "http://www.nexage.com/", + "companyId": "verizon" + }, + "nexeps.com": { + "name": "neXeps", + "categoryId": 4, + "url": "http://nexeps.com/", + "companyId": null + }, + "next_performance": { + "name": "Next Performance", + "categoryId": 4, + "url": "http://www.nextperformance.com/", + "companyId": "nextperf" + }, + "next_user": { + "name": "Next User", + "categoryId": 4, + "url": "https://www.nextuser.com/", + "companyId": "next_user" + }, + "nextag_roi_optimizer": { + "name": "Nextag ROI Optimizer", + "categoryId": 4, + "url": "http://www.nextag.com/", + "companyId": "nextag" + }, + "nextclick": { + "name": "Nextclick", + "categoryId": 4, + "url": "http://nextclick.pl/", + "companyId": "leadbullet" + }, + "nextstat": { + "name": "NextSTAT", + "categoryId": 6, + "url": "http://www.nextstat.com/", + "companyId": "nextstat" + }, + "neytiv": { + "name": "Neytiv", + "categoryId": 6, + "url": "http://neytiv.com/", + "companyId": "neytiv" + }, + "ngage_inc.": { + "name": "NGage INC.", + "categoryId": 6, + "url": "https://www.nginx.com/", + "companyId": "nginx" + }, + "nice264.com": { + "name": "Nice264", + "categoryId": 0, + "url": "http://nice264.com/", + "companyId": null + }, + "nimblecommerce": { + "name": "NimbleCommerce", + "categoryId": 4, + "url": "http://www.nimblecommerce.com/", + "companyId": "nimblecommerce" + }, + "nine_direct_digital": { + "name": "Nine Digital Direct", + "categoryId": 4, + "url": "https://ninedigitaldirect.com.au/", + "companyId": "nine_entertainment", + "source": "AdGuard" + }, + "ninja_access_analysis": { + "name": "Ninja Access Analysis", + "categoryId": 6, + "url": "http://www.ninja.co.jp/analysis/", + "companyId": "samurai_factory" + }, + "nirror": { + "name": "Nirror", + "categoryId": 6, + "url": "https://www.nirror.com/", + "companyId": "nirror" + }, + "nitropay": { + "name": "NitroPay", + "categoryId": 4, + "url": "https://nitropay.com/", + "companyId": "gg_software" + }, + "nk.pl_widgets": { + "name": "NK.pl Widgets", + "categoryId": 4, + "url": "http://nk.pl", + "companyId": "nk.pl" + }, + "noaa.gov": { + "name": "National Oceanic and Atmospheric Administration", + "categoryId": 8, + "url": "https://noaa.gov/", + "companyId": null + }, + "noddus": { + "name": "Noddus", + "categoryId": 4, + "url": "https://www.enterprise.noddus.com/", + "companyId": "noddus" + }, + "nolix": { + "name": "Nolix", + "categoryId": 4, + "url": "http://nolix.ru/", + "companyId": "nolix" + }, + "nonli": { + "name": "Nonli", + "categoryId": 4, + "url": "https://www.nonli.com/", + "companyId": "nonli", + "source": "AdGuard" + }, + "nonstop_consulting": { + "name": "Resolution Media", + "categoryId": 4, + "url": "https://resolutionmedia.com/", + "companyId": "resolution_media" + }, + "noop.style": { + "name": "noop.style", + "categoryId": 11, + "url": null, + "companyId": null + }, + "nosto.com": { + "name": "nosto", + "categoryId": 6, + "url": "http://www.nosto.com/", + "companyId": null + }, + "notify": { + "name": "Notify", + "categoryId": 4, + "url": "http://notify.ag/en/", + "companyId": null + }, + "notifyfox": { + "name": "Notifyfox", + "categoryId": 6, + "url": "https://notifyfox.com/", + "companyId": "notifyfox" + }, + "notion": { + "name": "Notion", + "categoryId": 8, + "url": "https://www.notion.so/", + "companyId": "notion", + "source": "AdGuard" + }, + "now_interact": { + "name": "Now Interact", + "categoryId": 6, + "url": "http://nowinteract.com/", + "companyId": "now_interact" + }, + "npario": { + "name": "nPario", + "categoryId": 6, + "url": "http://npario.com/", + "companyId": "npario" + }, + "nplexmedia": { + "name": "nPlexMedia", + "categoryId": 4, + "url": "http://www.nplexmedia.com/", + "companyId": "nplexmedia" + }, + "nrelate": { + "name": "nRelate", + "categoryId": 2, + "url": "http://nrelate.com/", + "companyId": "iac_apps" + }, + "ns8": { + "name": "NS8", + "categoryId": 4, + "url": "https://www.ns8.com/", + "companyId": null + }, + "nt.vc": { + "name": "Next Tuesday GmbH", + "categoryId": 8, + "url": "http://www.nexttuesday.de/", + "companyId": null + }, + "ntent": { + "name": "NTENT", + "categoryId": 4, + "url": "http://www.verticalsearchworks.com", + "companyId": "ntent" + }, + "ntppool": { + "name": "Network Time Protocol", + "categoryId": 5, + "url": "https://ntp.org/", + "companyId": "network_time_foundation", + "source": "AdGuard" + }, + "nttcom_online_marketing_solutions": { + "name": "NTTCom Online Marketing Solutions", + "categoryId": 6, + "url": "http://www.digitalforest.co.jp/", + "companyId": "nttcom_online_marketing_solutions" + }, + "nuffnang": { + "name": "Nuffnang", + "categoryId": 4, + "url": "http://nuffnang.com/", + "companyId": "nuffnang" + }, + "nugg.ad": { + "name": "Nugg.Ad", + "categoryId": 4, + "url": "http://www.nugg.ad/", + "companyId": "nugg.ad" + }, + "nui_media": { + "name": "NUI Media", + "categoryId": 4, + "url": "http://adjuggler.com/", + "companyId": "nui_media" + }, + "numbers.md": { + "name": "Numbers.md", + "categoryId": 6, + "url": "https://numbers.md/", + "companyId": "numbers.md" + }, + "numerator": { + "name": "Numerator", + "categoryId": 5, + "url": "http://www.channeliq.com/", + "companyId": "numerator" + }, + "ny_times_tagx": { + "name": "NY Times TagX", + "categoryId": 6, + "url": "https://www.nytimes.com/", + "companyId": "the_new_york_times" + }, + "nyacampwk.com": { + "name": "nyacampwk.com", + "categoryId": 11, + "url": null, + "companyId": null + }, + "nyetm2mkch.com": { + "name": "nyetm2mkch.com", + "categoryId": 11, + "url": null, + "companyId": null + }, + "nyt.com": { + "name": "The New York Times", + "categoryId": 8, + "url": "https://www.nytimes.com/", + "companyId": "the_new_york_times" + }, + "o12zs3u2n.com": { + "name": "o12zs3u2n.com", + "categoryId": 11, + "url": null, + "companyId": null + }, + "o2.pl": { + "name": "o2.pl", + "categoryId": 8, + "url": "https://www.o2.pl/", + "companyId": "o2.pl" + }, + "o2online.de": { + "name": "o2online.de", + "categoryId": 8, + "url": "https://www.o2online.de/", + "companyId": null + }, + "oath_inc": { + "name": "Oath", + "categoryId": 8, + "url": "https://www.oath.com/", + "companyId": "verizon" + }, + "observer": { + "name": "Observer", + "categoryId": 4, + "url": "http://www.observerapp.com", + "companyId": "observer" + }, + "ocioso": { + "name": "Ocioso", + "categoryId": 7, + "url": "http://ocioso.com.br/", + "companyId": "ocioso" + }, + "oclasrv.com": { + "name": "oclasrv.com", + "categoryId": 11, + "url": null, + "companyId": null + }, + "octapi.net": { + "name": "octapi.net", + "categoryId": 11, + "url": null, + "companyId": null + }, + "octavius": { + "name": "Octavius", + "categoryId": 4, + "url": "http://octavius.rocks/", + "companyId": "octavius" + }, + "office.com": { + "name": "office.com", + "categoryId": 8, + "url": "https://www.microsoft.com/", + "companyId": "microsoft" + }, + "office.net": { + "name": "office.net", + "categoryId": 8, + "url": "https://www.microsoft.com/", + "companyId": "microsoft" + }, + "office365.com": { + "name": "office365.com", + "categoryId": 8, + "url": "https://www.microsoft.com/", + "companyId": "microsoft" + }, + "oghub.io": { + "name": "OG Hub", + "categoryId": 11, + "url": null, + "companyId": null + }, + "oh_my_stats": { + "name": "Oh My Stats", + "categoryId": 6, + "url": "https://ohmystats.com/", + "companyId": "oh_my_stats" + }, + "ohana_advertising_network": { + "name": "Ohana Advertising Network", + "categoryId": 4, + "url": "http://adohana.com/", + "companyId": "ohana_advertising_network" + }, + "olapic": { + "name": "Olapic", + "categoryId": 4, + "url": "https://www.olapic.com/", + "companyId": "olapic" + }, + "olark": { + "name": "Olark", + "categoryId": 2, + "url": "http://www.olark.com/", + "companyId": "olark" + }, + "olx-st.com": { + "name": "OLX", + "categoryId": 8, + "url": "http://www.olx.com/", + "companyId": null + }, + "omarsys.com": { + "name": "Omarsys", + "categoryId": 4, + "url": "http://omarsys.com/", + "companyId": "xcaliber" + }, + "ometria": { + "name": "Ometria", + "categoryId": 4, + "url": "http://www.ometria.com/", + "companyId": "ometria" + }, + "omg": { + "name": "OMG", + "categoryId": 7, + "url": "http://uk.omgpm.com/", + "companyId": "optimise_media" + }, + "omniconvert.com": { + "name": "Omniconvert", + "categoryId": 4, + "url": "https://www.omniconvert.com/", + "companyId": "omniconvert" + }, + "omniscienta": { + "name": "Omniscienta", + "categoryId": 4, + "url": "http://www.omniscienta.com/", + "companyId": null + }, + "oms": { + "name": "OMS", + "categoryId": 4, + "url": "http://oms.eu/", + "companyId": null + }, + "onaudience": { + "name": "OnAudience", + "categoryId": 4, + "url": "http://www.onaudience.com/", + "companyId": "cloud_technologies" + }, + "oneall": { + "name": "Oneall", + "categoryId": 7, + "url": "http://www.oneall.com/", + "companyId": "oneall" + }, + "onefeed": { + "name": "Onefeed", + "categoryId": 6, + "url": "http://www.onefeed.co.uk", + "companyId": "onefeed" + }, + "onesignal": { + "name": "OneSignal", + "categoryId": 5, + "url": "https://onesignal.com/", + "companyId": "onesignal" + }, + "onestat": { + "name": "OneStat", + "categoryId": 6, + "url": "http://www.onestat.com/", + "companyId": "onestat_international_b.v." + }, + "onet.pl": { + "name": "onet", + "categoryId": 8, + "url": "https://www.onet.pl/", + "companyId": null + }, + "onetag": { + "name": "OneTag", + "categoryId": 4, + "url": "https://www.onetag.com/", + "companyId": "onetag" + }, + "onetrust": { + "name": "OneTrust", + "categoryId": 5, + "url": "https://www.onetrust.com/", + "companyId": "onetrust" + }, + "onfocus.io": { + "name": "OnFocus", + "categoryId": 4, + "url": "http://onfocus.io/", + "companyId": "onfocus" + }, + "onlinewebstat": { + "name": "Onlinewebstat", + "categoryId": 6, + "url": "http://www.onlinewebstats.com/index.php?lang=en", + "companyId": "onlinewebstat" + }, + "onswipe": { + "name": "Onswipe", + "categoryId": 4, + "url": "http://www.onswipe.com/", + "companyId": "onswipe" + }, + "onthe.io": { + "name": "OnThe.io", + "categoryId": 6, + "url": "https://t.onthe.io/media", + "companyId": "onthe.io" + }, + "ontraport_autopilot": { + "name": "Ontraport Autopilot", + "categoryId": 4, + "url": "http://www.moon-ray.com/", + "companyId": "ontraport" + }, + "ooyala.com": { + "name": "Ooyala Player", + "categoryId": 0, + "url": "https://www.ooyala.com/", + "companyId": "telstra" + }, + "ooyala_analytics": { + "name": "Ooyala Analytics", + "categoryId": 6, + "url": "https://www.telstraglobal.com/", + "companyId": "telstra" + }, + "open_adexchange": { + "name": "Open AdExchange", + "categoryId": 4, + "url": "http://openadex.dk/", + "companyId": "open_adexchange" + }, + "open_adstream": { + "name": "Open Adstream", + "categoryId": 4, + "url": "https://about.ads.microsoft.com/en-us/solutions/xandr/xandr-premium-programmatic-advertising", + "companyId": "microsoft", + "source": "AdGuard" + }, + "open_share_count": { + "name": "Open Share Count", + "categoryId": 4, + "url": "http://opensharecount.com/", + "companyId": "open_share_count" + }, + "openai": { + "name": "OpenAI", + "categoryId": 8, + "url": "https://openai.com/", + "companyId": "openai", + "source": "AdGuard" + }, + "openload": { + "name": "Openload", + "categoryId": 9, + "url": "https://openload.co/", + "companyId": null + }, + "openstat": { + "name": "OpenStat", + "categoryId": 6, + "url": "https://www.openstat.ru/", + "companyId": "openstat" + }, + "opentracker": { + "name": "Opentracker", + "categoryId": 6, + "url": "http://www.opentracker.net/", + "companyId": "opentracker" + }, + "openwebanalytics": { + "name": "Open Web Analytics", + "categoryId": 6, + "url": "http://www.openwebanalytics.com/", + "companyId": "open_web_analytics" + }, + "openx": { + "name": "OpenX", + "categoryId": 4, + "url": "https://www.openx.com", + "companyId": "openx" + }, + "operative_media": { + "name": "Operative Media", + "categoryId": 4, + "url": "http://www.operative.com/", + "companyId": "operative_media" + }, + "opinary": { + "name": "Opinary", + "categoryId": 2, + "url": "http://opinary.com/", + "companyId": "opinary" + }, + "opinionbar": { + "name": "OpinionBar", + "categoryId": 2, + "url": "http://www.metrixlab.com", + "companyId": "metrixlab" + }, + "oplytic": { + "name": "Oplytic", + "categoryId": 6, + "url": "http://www.oplytic.com", + "companyId": "oplytic" + }, + "oppo": { + "name": "OPPO", + "categoryId": 101, + "url": "https://www.oppo.com/", + "companyId": "bbk", + "source": "AdGuard" + }, + "opta.net": { + "name": "Opta", + "categoryId": 6, + "url": "http://www.optasports.de/", + "companyId": "opta_sports" + }, + "optaim": { + "name": "OptAim", + "categoryId": 4, + "url": "http://optaim.com/", + "companyId": "optaim" + }, + "optanaon": { + "name": "Optanaon by OneTrust", + "categoryId": 5, + "url": "https://www.cookielaw.org/", + "companyId": "onetrust" + }, + "optify": { + "name": "Optify", + "categoryId": 4, + "url": "http://www.optify.net", + "companyId": "optify" + }, + "optimatic": { + "name": "Optimatic", + "categoryId": 0, + "url": "http://www.optimatic.com/", + "companyId": "optimatic" + }, + "optimax_media_delivery": { + "name": "Optimax Media Delivery", + "categoryId": 4, + "url": "http://optmd.com/", + "companyId": "optimax_media_delivery" + }, + "optimicdn.com": { + "name": "OptimiCDN", + "categoryId": 9, + "url": "https://en.optimicdn.com/", + "companyId": null + }, + "optimizely": { + "name": "Optimizely", + "categoryId": 6, + "url": "https://www.optimizely.com/", + "companyId": "optimizely" + }, + "optimizely_error_log": { + "name": "Optimizely Error Log", + "categoryId": 6, + "url": "https://www.optimizely.com/", + "companyId": "optimizely" + }, + "optimizely_geo_targeting": { + "name": "Optimizely Geographical Targeting", + "categoryId": 6, + "url": "https://www.optimizely.com/", + "companyId": "optimizely" + }, + "optimizely_logging": { + "name": "Optimizely Logging", + "categoryId": 6, + "url": "https://www.optimizely.com/", + "companyId": "optimizely" + }, + "optimonk": { + "name": "Optimonk", + "categoryId": 6, + "url": "https://www.optimonk.com/", + "companyId": "optimonk" + }, + "optinmonster": { + "name": "OptInMonster", + "categoryId": 2, + "url": "https://optinmonster.com/", + "companyId": "optinmonster" + }, + "optinproject.com": { + "name": "OptinProject", + "categoryId": 4, + "url": "https://www.optincollect.com/en", + "companyId": "optincollect" + }, + "optomaton": { + "name": "Optomaton", + "categoryId": 4, + "url": "http://www.optomaton.com/", + "companyId": "ve" + }, + "ora.tv": { + "name": "Ora.TV", + "categoryId": 4, + "url": "http://www.ora.tv/", + "companyId": "ora.tv" + }, + "oracle_infinity": { + "name": "Oracle Infinity Behavioral Intelligence", + "categoryId": 6, + "url": "https://www.oracle.com/au/cx/marketing/digital-intelligence/", + "companyId": "oracle", + "source": "AdGuard" + }, + "oracle_live_help": { + "name": "Oracle Live Help", + "categoryId": 2, + "url": "http://www.oracle.com/us/products/applications/atg/live-help-on-demand/index.html", + "companyId": "oracle" + }, + "oracle_rightnow": { + "name": "Oracle RightNow", + "categoryId": 8, + "url": "http://www.oracle.com/", + "companyId": "oracle" + }, + "orange": { + "name": "Orange", + "categoryId": 4, + "url": "http://www.orange.co.uk/", + "companyId": "orange_mobile" + }, + "orange142": { + "name": "Orange142", + "categoryId": 4, + "url": "http://www.orange142.com/", + "companyId": "orange142" + }, + "orange_france": { + "name": "Orange France", + "categoryId": 8, + "url": "https://www.orange.fr/", + "companyId": "orange_france" + }, + "orangesoda": { + "name": "OrangeSoda", + "categoryId": 4, + "url": "http://www.orangesoda.com/", + "companyId": "orangesoda" + }, + "orc_international": { + "name": "ORC International", + "categoryId": 4, + "url": "https://orcinternational.com/", + "companyId": "engine_group" + }, + "order_groove": { + "name": "Order Groove", + "categoryId": 4, + "url": "http://ordergroove.com/", + "companyId": "order_groove" + }, + "orel_site": { + "name": "Orel Site", + "categoryId": 2, + "url": "https://www.orelsite.ru/", + "companyId": "orel_site" + }, + "otclick": { + "name": "otClick", + "categoryId": 4, + "url": "http://otclick-adv.ru/", + "companyId": "otclick" + }, + "othersearch.info": { + "name": "FlowSurf", + "categoryId": 8, + "url": null, + "companyId": null + }, + "otm-r.com": { + "name": "OTM", + "categoryId": 4, + "url": "http://otm-r.com/", + "companyId": null + }, + "otto.de": { + "name": "Otto Group", + "categoryId": 8, + "url": null, + "companyId": null + }, + "outbrain": { + "name": "Outbrain", + "categoryId": 4, + "url": "https://www.outbrain.com/", + "companyId": "outbrain" + }, + "outbrain_amplify": { + "name": "Outbrain Amplify", + "categoryId": 4, + "url": "http://www.outbrain.com/", + "companyId": "outbrain" + }, + "outbrain_analytics": { + "name": "Outbrain Analytics", + "categoryId": 6, + "url": "http://www.outbrain.com/", + "companyId": "outbrain" + }, + "outbrain_logger": { + "name": "Outbrain Logger", + "categoryId": 4, + "url": "http://www.outbrain.com/", + "companyId": "outbrain" + }, + "outbrain_pixel": { + "name": "Outbrain Pixel", + "categoryId": 4, + "url": "http://www.outbrain.com/", + "companyId": "outbrain" + }, + "outbrain_utilities": { + "name": "Outbrain Utilities", + "categoryId": 6, + "url": "http://www.outbrain.com/", + "companyId": "outbrain" + }, + "outbrain_widgets": { + "name": "Outbrain Widgets", + "categoryId": 4, + "url": "http://www.outbrain.com/", + "companyId": "outbrain" + }, + "outlook": { + "name": "Microsoft Outlook", + "categoryId": 13, + "url": "https://outlook.live.com/", + "companyId": "microsoft", + "source": "AdGuard" + }, + "overheat.it": { + "name": "overheat", + "categoryId": 6, + "url": "https://overheat.io/", + "companyId": null + }, + "owa": { + "name": "OWA", + "categoryId": 6, + "url": "http://oewa.at/", + "companyId": "the_austrian_web_analysis" + }, + "owneriq": { + "name": "OwnerIQ", + "categoryId": 4, + "url": "http://www.owneriq.com/", + "companyId": "owneriq" + }, + "ownpage": { + "name": "Ownpage", + "categoryId": 2, + "url": "http://www.ownpage.fr/index.en.html", + "companyId": null + }, + "owox.com": { + "name": "OWOX", + "categoryId": 6, + "url": "https://www.owox.com/", + "companyId": "owox_inc" + }, + "oxamedia": { + "name": "OxaMedia", + "categoryId": 2, + "url": "http://www.oxamedia.com/", + "companyId": "oxamedia" + }, + "oxomi.com": { + "name": "Oxomi", + "categoryId": 4, + "url": "https://oxomi.com/", + "companyId": null + }, + "oztam": { + "name": "OzTAM", + "categoryId": 8, + "url": "https://oztam.com.au/", + "companyId": "oztam", + "source": "AdGuard" + }, + "pageanalytics.space": { + "name": "pageanalytics.space", + "categoryId": 11, + "url": null, + "companyId": null + }, + "pagefair": { + "name": "PageFair", + "categoryId": 2, + "url": "https://pagefair.com/", + "companyId": "blockthrough" + }, + "pagescience": { + "name": "PageScience", + "categoryId": 4, + "url": "http://www.precisionhealthmedia.com/index.html", + "companyId": "pagescience" + }, + "paid-to-promote": { + "name": "Paid-To-Promote", + "categoryId": 4, + "url": "http://www.paid-to-promote.net/", + "companyId": "paid-to-promote" + }, + "paperg": { + "name": "PaperG", + "categoryId": 4, + "url": "http://www.paperg.com/", + "companyId": "paperg" + }, + "pardot": { + "name": "Pardot", + "categoryId": 6, + "url": "http://www.pardot.com/", + "companyId": "pardot" + }, + "parsely": { + "name": "Parse.ly", + "categoryId": 6, + "url": "https://www.parse.ly/", + "companyId": "parse.ly" + }, + "partner-ads": { + "name": "Partner-Ads", + "categoryId": 4, + "url": "http://www.partner-ads.com/", + "companyId": "partner-ads" + }, + "passionfruit": { + "name": "Passionfruit", + "categoryId": 4, + "url": "http://passionfruitads.com/", + "companyId": "passionfruit" + }, + "pathful": { + "name": "Pathful", + "categoryId": 6, + "url": "http://www.pathful.com/", + "companyId": "pathful" + }, + "pay-hit": { + "name": "Pay-Hit", + "categoryId": 4, + "url": "http://pay-hit.com/", + "companyId": "pay-hit" + }, + "payclick": { + "name": "PayClick", + "categoryId": 4, + "url": "http://payclick.it/", + "companyId": "payclick" + }, + "paykickstart": { + "name": "PayKickstart", + "categoryId": 6, + "url": "https://paykickstart.com/", + "companyId": "paykickstart" + }, + "paypal": { + "name": "PayPal", + "categoryId": 2, + "url": "https://www.paypal.com", + "companyId": "ebay" + }, + "pcvark.com": { + "name": "pcvark.com", + "categoryId": 11, + "url": "https://pcvark.com/", + "companyId": null + }, + "peer39": { + "name": "Peer39", + "categoryId": 4, + "url": "http://www.peer39.com/", + "companyId": "peer39" + }, + "peer5.com": { + "name": "Peer5", + "categoryId": 9, + "url": "https://www.peer5.com/", + "companyId": "peer5" + }, + "peerius": { + "name": "Peerius", + "categoryId": 2, + "url": "http://www.peerius.com/", + "companyId": "peerius" + }, + "pendo.io": { + "name": "pendo", + "categoryId": 6, + "url": "https://www.pendo.io/", + "companyId": null + }, + "pepper.com": { + "name": "Pepper", + "categoryId": 4, + "url": "https://www.pepper.com/", + "companyId": "6minutes" + }, + "pepperjam": { + "name": "Pepperjam", + "categoryId": 4, + "url": "http://www.pepperjam.com", + "companyId": "pepperjam" + }, + "pepsia": { + "name": "Pepsia", + "categoryId": 6, + "url": "http://pepsia.com/en/", + "companyId": "pepsia" + }, + "perfdrive.com": { + "name": "perfdrive.com", + "categoryId": 11, + "url": null, + "companyId": null + }, + "perfect_audience": { + "name": "Perfect Audience", + "categoryId": 4, + "url": "https://www.perfectaudience.com/", + "companyId": "perfect_audience" + }, + "perfect_market": { + "name": "Perfect Market", + "categoryId": 4, + "url": "http://perfectmarket.com/", + "companyId": "perfect_market" + }, + "perfops": { + "name": "PerfOps", + "categoryId": 6, + "url": "https://perfops.net/", + "companyId": "perfops", + "source": "AdGuard" + }, + "perform_group": { + "name": "Perform Group", + "categoryId": 5, + "url": "http://www.performgroup.co.uk/", + "companyId": "perform_group" + }, + "performable": { + "name": "Performable", + "categoryId": 6, + "url": "http://www.performable.com/", + "companyId": "hubspot" + }, + "performancing_metrics": { + "name": "Performancing Metrics", + "categoryId": 6, + "url": "http://pmetrics.performancing.com", + "companyId": "performancing" + }, + "performax": { + "name": "Performax", + "categoryId": 4, + "url": "https://www.performax.cz/", + "companyId": "performax" + }, + "perimeterx.net": { + "name": "Perimeterx", + "categoryId": 6, + "url": "https://www.perimeterx.com/", + "companyId": null + }, + "permutive": { + "name": "Permutive", + "categoryId": 4, + "url": "http://permutive.com/", + "companyId": "permutive" + }, + "persgroep": { + "name": "De Persgroep", + "categoryId": 4, + "url": "https://www.persgroep.be/", + "companyId": "de_persgroep" + }, + "persianstat": { + "name": "PersianStat", + "categoryId": 6, + "url": "http://www.persianstat.com", + "companyId": "persianstat" + }, + "persio": { + "name": "Persio", + "categoryId": 4, + "url": "http://www.pers.io/", + "companyId": "pers.io" + }, + "personyze": { + "name": "Personyze", + "categoryId": 2, + "url": "http://personyze.com/", + "companyId": "personyze" + }, + "petametrics": { + "name": "LiftIgniter", + "categoryId": 2, + "url": "https://www.liftigniter.com/", + "companyId": "liftigniter" + }, + "pheedo": { + "name": "Pheedo", + "categoryId": 4, + "url": "http://pheedo.com/", + "companyId": "pheedo" + }, + "phonalytics": { + "name": "Phonalytics", + "categoryId": 2, + "url": "http://www.phonalytics.com/", + "companyId": "phonalytics" + }, + "phunware": { + "name": "Phunware", + "categoryId": 4, + "url": "https://www.phunware.com", + "companyId": "phunware" + }, + "piguiqproxy.com": { + "name": "piguiqproxy.com", + "categoryId": 11, + "url": null, + "companyId": null + }, + "pilot": { + "name": "Pilot", + "categoryId": 6, + "url": "http://www.pilot.de/en/home.html", + "companyId": "pilot_gmbh" + }, + "pingdom": { + "name": "Pingdom", + "categoryId": 6, + "url": "https://www.pingdom.com/", + "companyId": "pingdom" + }, + "pinterest": { + "name": "Pinterest", + "categoryId": 7, + "url": "http://pinterest.com/", + "companyId": "pinterest" + }, + "pinterest_conversion_tracker": { + "name": "Pinterest Conversion Tracker", + "categoryId": 6, + "url": "http://pinterest.com/", + "companyId": "pinterest" + }, + "pipz": { + "name": "Pipz", + "categoryId": 4, + "url": "https://pipz.com/br/", + "companyId": "pipz_automation" + }, + "piwik": { + "name": "Tombstone (Matomo/Piwik before the split)", + "categoryId": 6, + "url": "http://piwik.org/", + "companyId": "matomo" + }, + "piwik_pro_analytics_suite": { + "name": "Piwik PRO Analytics Suite", + "categoryId": 6, + "url": "https://piwik.pro/", + "companyId": "piwik_pro" + }, + "pixalate": { + "name": "Pixalate", + "categoryId": 4, + "url": "http://www.pixalate.com/", + "companyId": "pixalate" + }, + "pixel_union": { + "name": "Pixel Union", + "categoryId": 4, + "url": "https://www.pixelunion.net/", + "companyId": "pixel_union" + }, + "pixfuture": { + "name": "PixFuture", + "categoryId": 4, + "url": "http://www.pixfuture.com", + "companyId": "pixfuture" + }, + "piximedia": { + "name": "Piximedia", + "categoryId": 4, + "url": "http://www.piximedia.com/piximedia?en", + "companyId": "piximedia" + }, + "pizzaandads_com": { + "name": "pizzaandads.com", + "categoryId": 11, + "url": null, + "companyId": null + }, + "placester": { + "name": "Placester", + "categoryId": 4, + "url": "https://placester.com/", + "companyId": "placester" + }, + "pladform.ru": { + "name": "Pladform", + "categoryId": 4, + "url": "https://distribution.pladform.ru/", + "companyId": "pladform" + }, + "plan.net_experience_cloud": { + "name": "Plan.net Experience Cloud", + "categoryId": 6, + "url": "https://www.serviceplan.com/", + "companyId": "serviceplan" + }, + "platform360": { + "name": "Platform360", + "categoryId": 4, + "url": "http://www.platform360.co/#home", + "companyId": null + }, + "platformone": { + "name": "Platform One", + "categoryId": 4, + "url": "https://www.platform-one.co.jp/", + "companyId": "daconsortium" + }, + "play_by_mamba": { + "name": "Play by Mamba", + "categoryId": 4, + "url": "http://play.mamba.ru/", + "companyId": "mamba" + }, + "playbuzz.com": { + "name": "Playbuzz", + "categoryId": 2, + "url": "https://www.playbuzz.com/", + "companyId": "playbuzz" + }, + "plenty_of_fish": { + "name": "Plenty Of Fish", + "categoryId": 6, + "url": "http://www.pof.com/", + "companyId": "plentyoffish" + }, + "plex": { + "name": "Plex", + "categoryId": 0, + "url": "https://www.plex.tv/", + "companyId": "plex", + "source": "AdGuard" + }, + "plex_metrics": { + "name": "Plex Metrics", + "categoryId": 6, + "url": "https://www.plex.tv/", + "companyId": "plex" + }, + "plista": { + "name": "Plista", + "categoryId": 4, + "url": "http://www.plista.com", + "companyId": "plista" + }, + "plugrush": { + "name": "PlugRush", + "categoryId": 4, + "url": "http://www.plugrush.com/", + "companyId": "plugrush" + }, + "pluso.ru": { + "name": "Pluso", + "categoryId": 7, + "url": "https://share.pluso.ru/", + "companyId": "pluso" + }, + "plutusads": { + "name": "Plutusads", + "categoryId": 4, + "url": "http://plutusads.com", + "companyId": "plutusads" + }, + "pmddby.com": { + "name": "pmddby.com", + "categoryId": 12, + "url": null, + "companyId": null + }, + "pnamic.com": { + "name": "pnamic.com", + "categoryId": 12, + "url": null, + "companyId": null + }, + "po.st": { + "name": "Po.st", + "categoryId": 7, + "url": "https://www.po.st/", + "companyId": "rythmone" + }, + "pocket": { + "name": "Pocket", + "categoryId": 6, + "url": "http://getpocket.com/", + "companyId": "pocket" + }, + "pocketcents": { + "name": "PocketCents", + "categoryId": 4, + "url": "http://pocketcents.com/", + "companyId": "pocketcents" + }, + "pointific": { + "name": "Pointific", + "categoryId": 6, + "url": "http://www.pontiflex.com/", + "companyId": "pontiflex" + }, + "pointroll": { + "name": "PointRoll", + "categoryId": 4, + "url": "http://www.pointroll.com/", + "companyId": "gannett_digital_media_network" + }, + "poirreleast.club": { + "name": "poirreleast.club", + "categoryId": 11, + "url": null, + "companyId": null + }, + "polar.me": { + "name": "Polar", + "categoryId": 4, + "url": "https://polar.me/", + "companyId": "polar_inc" + }, + "polldaddy": { + "name": "Polldaddy", + "categoryId": 2, + "url": "http://polldaddy.com/", + "companyId": "automattic" + }, + "polyad": { + "name": "PolyAd", + "categoryId": 4, + "url": "http://polyad.net", + "companyId": "polyad" + }, + "polyfill.io": { + "name": "Polyfill", + "categoryId": 8, + "url": "https://polyfill.io/", + "companyId": "polyfill.io" + }, + "popads": { + "name": "PopAds", + "categoryId": 4, + "url": "https://www.popads.net/", + "companyId": "popads" + }, + "popcash": { + "name": "Popcash", + "categoryId": 4, + "url": "http://popcash.net/", + "companyId": "popcash_network" + }, + "popcorn_metrics": { + "name": "Popcorn Metrics", + "categoryId": 6, + "url": "https://www.popcornmetrics.com/", + "companyId": "popcorn_metrics" + }, + "popin.cc": { + "name": "popIn", + "categoryId": 7, + "url": "https://www.popin.cc/", + "companyId": "popin" + }, + "popmyads": { + "name": "PopMyAds", + "categoryId": 4, + "url": "http://popmyads.com/", + "companyId": "popmyads" + }, + "poponclick": { + "name": "PopOnClick", + "categoryId": 4, + "url": "http://poponclick.com", + "companyId": "poponclick" + }, + "populis": { + "name": "Populis", + "categoryId": 4, + "url": "http://www.populis.com", + "companyId": "populis" + }, + "pornhub": { + "name": "PornHub", + "categoryId": 3, + "url": "https://www.pornhub.com/", + "companyId": "pornhub" + }, + "pornwave": { + "name": "Pornwave", + "categoryId": 3, + "url": "http://pornwave.com", + "companyId": "pornwave.com" + }, + "porta_brazil": { + "name": "Porta Brazil", + "categoryId": 4, + "url": "http://brasil.gov.br/", + "companyId": "portal_brazil" + }, + "post_affiliate_pro": { + "name": "Post Affiliate Pro", + "categoryId": 4, + "url": "http://www.qualityunit.com/", + "companyId": "qualityunit" + }, + "powerlinks": { + "name": "PowerLinks", + "categoryId": 4, + "url": "http://www.powerlinks.com/", + "companyId": "powerlinks" + }, + "powerreviews": { + "name": "PowerReviews", + "categoryId": 2, + "url": "http://www.powerreviews.com/", + "companyId": "powerreviews" + }, + "powr.io": { + "name": "POWr", + "categoryId": 6, + "url": "https://www.powr.io/", + "companyId": "powr" + }, + "pozvonim": { + "name": "Pozvonim", + "categoryId": 4, + "url": "https://pozvonim.com/", + "companyId": "pozvonim" + }, + "prebid": { + "name": "Prebid", + "categoryId": 4, + "url": "http://prebid.org/", + "companyId": null + }, + "precisionclick": { + "name": "PrecisionClick", + "categoryId": 4, + "url": "http://www.precisionclick.com/", + "companyId": "precisionclick" + }, + "predicta": { + "name": "Predicta", + "categoryId": 4, + "url": "http://predicta.com.br/", + "companyId": "predicta" + }, + "premonix": { + "name": "Premonix", + "categoryId": 4, + "url": "http://www.premonix.com/", + "companyId": "premonix" + }, + "press": { + "name": "Press+", + "categoryId": 4, + "url": "http://www.mypressplus.com/", + "companyId": "press+" + }, + "pressly": { + "name": "Pressly", + "categoryId": 4, + "url": "https://www.pressly.com/", + "companyId": "pressly" + }, + "pricegrabber": { + "name": "PriceGrabber", + "categoryId": 4, + "url": "http://www.pricegrabber.com", + "companyId": "pricegrabber" + }, + "pricespider": { + "name": "Pricespider", + "categoryId": 4, + "url": "http://www.pricespider.com/", + "companyId": "price_spider" + }, + "prismamediadigital.com": { + "name": "Prisma Media Digital", + "categoryId": 4, + "url": "http://www.pmdrecrute.com/", + "companyId": "prisma_media_digital" + }, + "privy.com": { + "name": "Privy", + "categoryId": 2, + "url": "https://privy.com/", + "companyId": "privy" + }, + "proclivity": { + "name": "Proclivity", + "categoryId": 4, + "url": "http://www.proclivitysystems.com/", + "companyId": "proclivity_media" + }, + "prodperfect": { + "name": "ProdPerfect", + "categoryId": 6, + "url": "https://prodperfect.com/", + "companyId": "prodperfect" + }, + "productsup": { + "name": "ProductsUp", + "categoryId": 4, + "url": "https://productsup.io/", + "companyId": "productsup" + }, + "profiliad": { + "name": "Profiliad", + "categoryId": 6, + "url": "http://profiliad.com/", + "companyId": "profiliad" + }, + "profitshare": { + "name": "Profitshare", + "categoryId": 6, + "url": "https://profitshare.ro/", + "companyId": "profitshare" + }, + "proformics": { + "name": "Proformics", + "categoryId": 6, + "url": "http://proformics.com/", + "companyId": "proformics_digital" + }, + "programattik": { + "name": "Programattik", + "categoryId": 4, + "url": "http://www.programattik.com/", + "companyId": "ttnet" + }, + "project_wonderful": { + "name": "Project Wonderful", + "categoryId": 4, + "url": "http://www.projectwonderful.com/", + "companyId": "project_wonderful" + }, + "propel_marketing": { + "name": "Propel Marketing", + "categoryId": 4, + "url": "http://propelmarketing.com/", + "companyId": "propel_marketing" + }, + "propeller_ads": { + "name": "Propeller Ads", + "categoryId": 4, + "url": "http://www.propellerads.com/", + "companyId": "propeller_ads" + }, + "propermedia": { + "name": "Proper Media", + "categoryId": 4, + "url": "https://proper.io/", + "companyId": "propermedia" + }, + "props": { + "name": "Props", + "categoryId": 4, + "url": "http://props.id/", + "companyId": "props" + }, + "propvideo_net": { + "name": "propvideo.net", + "categoryId": 11, + "url": null, + "companyId": null + }, + "prospecteye": { + "name": "ProspectEye", + "categoryId": 4, + "url": "https://www.prospecteye.com/", + "companyId": "prospecteye" + }, + "prosperent": { + "name": "Prosperent", + "categoryId": 4, + "url": "http://prosperent.com", + "companyId": "prosperent" + }, + "prostor": { + "name": "Prostor", + "categoryId": 4, + "url": "http://prostor-lite.ru/", + "companyId": "prostor" + }, + "proton_ag": { + "name": "Proton AG", + "categoryId": 2, + "url": "https://proton.me/", + "companyId": "proton_foundation", + "source": "AdGuard" + }, + "provide_support": { + "name": "Provide Support", + "categoryId": 2, + "url": "http://www.providesupport.com/", + "companyId": "provide_support" + }, + "proximic": { + "name": "Proximic", + "categoryId": 4, + "url": "http://www.proximic.com/", + "companyId": "proximic" + }, + "proxistore.com": { + "name": "Proxistore", + "categoryId": 4, + "url": "https://www.proxistore.com/", + "companyId": "proxistore" + }, + "pscp.tv": { + "name": "Periscope", + "categoryId": 7, + "url": "https://www.pscp.tv/", + "companyId": "periscope" + }, + "pstatic.net": { + "name": "Naver CDN", + "categoryId": 9, + "url": "https://www.naver.com/", + "companyId": "naver" + }, + "psyma": { + "name": "Psyma", + "categoryId": 4, + "url": "http://www.psyma.com/", + "companyId": "psyma" + }, + "pt_engine": { + "name": "Pt engine", + "categoryId": 6, + "url": "http://www.ptengine.jp/", + "companyId": "pt_engine" + }, + "pub-fit": { + "name": "Pub-Fit", + "categoryId": 4, + "url": "http://www.pub-fit.com/", + "companyId": "pub-fit" + }, + "pub.network": { + "name": "pub.network", + "categoryId": 4, + "url": null, + "companyId": null + }, + "pubble": { + "name": "Pubble", + "categoryId": 2, + "url": "http://www.pubble.co/", + "companyId": "pubble" + }, + "pubdirecte": { + "name": "Pubdirecte", + "categoryId": 4, + "url": "http://www.pubdirecte.com/", + "companyId": "pubdirecte" + }, + "pubgears": { + "name": "PubGears", + "categoryId": 4, + "url": "http://pubgears.com/", + "companyId": "pubgears" + }, + "public_ideas": { + "name": "Public Ideas", + "categoryId": 4, + "url": "http://www.publicidees.co.uk/", + "companyId": "public-idees" + }, + "publicidad.net": { + "name": "Publicidad.net", + "categoryId": 4, + "url": "http://www.en.publicidad.net/", + "companyId": "publicidad.net" + }, + "publir": { + "name": "Publir", + "categoryId": 4, + "url": "http://www.publir.com", + "companyId": "publir" + }, + "pubmatic": { + "name": "PubMatic", + "categoryId": 4, + "url": "http://www.pubmatic.com/", + "companyId": "pubmatic" + }, + "pubnub.com": { + "name": "PubNub", + "categoryId": 8, + "url": "https://www.pubnub.com/", + "companyId": null + }, + "puboclic": { + "name": "Puboclic", + "categoryId": 4, + "url": "http://www.puboclic.com/", + "companyId": "puboclic" + }, + "pulpix.com": { + "name": "Pulpix", + "categoryId": 4, + "url": "https://www.pulpix.com/", + "companyId": "adyoulike" + }, + "pulpo_media": { + "name": "Pulpo Media", + "categoryId": 4, + "url": "http://www.pulpomedia.com/home.html", + "companyId": "pulpo_media" + }, + "pulse360": { + "name": "Pulse360", + "categoryId": 4, + "url": "http://www.pulse360.com", + "companyId": "pulse360" + }, + "pulse_insights": { + "name": "Pulse Insights", + "categoryId": 6, + "url": "http://pulseinsights.com/", + "companyId": "pulse_insights" + }, + "pulsepoint": { + "name": "PulsePoint", + "categoryId": 4, + "url": "http://www.contextweb.com/", + "companyId": "pulsepoint_ad_exchange" + }, + "punchtab": { + "name": "PunchTab", + "categoryId": 4, + "url": "http://www.punchtab.com/", + "companyId": "punchtab" + }, + "purch": { + "name": "Purch", + "categoryId": 4, + "url": "http://www.purch.com/", + "companyId": "purch" + }, + "pure_chat": { + "name": "Pure Chat", + "categoryId": 2, + "url": "https://www.purechat.com", + "companyId": "pure_chat" + }, + "pureprofile": { + "name": "Pureprofile", + "categoryId": 6, + "url": "https://www.pureprofile.com/us/", + "companyId": "pureprofile" + }, + "purlive": { + "name": "PurLive", + "categoryId": 4, + "url": "http://www.purlive.com/", + "companyId": "purlive" + }, + "puserving.com": { + "name": "puserving.com", + "categoryId": 11, + "url": null, + "companyId": null + }, + "push.world": { + "name": "Push.world", + "categoryId": 2, + "url": "https://push.world/en", + "companyId": "push.world" + }, + "push_engage": { + "name": "Push Engage", + "categoryId": 2, + "url": "https://www.pushengage.com/", + "companyId": "push_engage" + }, + "pushame.com": { + "name": "pushame.com", + "categoryId": 11, + "url": null, + "companyId": null + }, + "pushbullet": { + "name": "Pushbullet", + "categoryId": 2, + "url": "https://www.pushbullet.com/", + "companyId": "pushbullet" + }, + "pushcrew": { + "name": "VWO Engage", + "categoryId": 2, + "url": "https://vwo.com/engage/", + "companyId": "wingify" + }, + "pusher.com": { + "name": "Pusher", + "categoryId": 6, + "url": "https://pusher.com/", + "companyId": null + }, + "pushnative.com": { + "name": "pushnative.com", + "categoryId": 11, + "url": null, + "companyId": null + }, + "pushnews": { + "name": "Pushnews", + "categoryId": 4, + "url": "https://www.pushnews.eu/", + "companyId": "pushnews" + }, + "pushno.com": { + "name": "pushno.com", + "categoryId": 11, + "url": null, + "companyId": null + }, + "pushwhy.com": { + "name": "pushwhy.com", + "categoryId": 11, + "url": null, + "companyId": null + }, + "pushwoosh.com": { + "name": "Pushwoosh", + "categoryId": 2, + "url": "https://www.pushwoosh.com/", + "companyId": "pushwoosh" + }, + "pvclouds.com": { + "name": "pvclouds.com", + "categoryId": 11, + "url": null, + "companyId": null + }, + "q1media": { + "name": "Q1Media", + "categoryId": 4, + "url": "http://q1media.com/", + "companyId": "q1media" + }, + "q_division": { + "name": "Q-Division", + "categoryId": 4, + "url": "https://q-division.de/", + "companyId": null + }, + "qbaka": { + "name": "Qbaka", + "categoryId": 6, + "url": "https://qbaka.com/", + "companyId": "qbaka" + }, + "qcri_analytics": { + "name": "QCRI Analytics", + "categoryId": 6, + "url": "http://qcri.org/", + "companyId": "qatar_computing_research_institute" + }, + "qeado": { + "name": "Qeado", + "categoryId": 6, + "url": "https://www.qeado.com/", + "companyId": "qeado" + }, + "qihoo_360": { + "name": "Qihoo 360", + "categoryId": 6, + "url": "https://www.360totalsecurity.com/en/", + "companyId": "qihoo_360_technology" + }, + "qq.com": { + "name": "QQ International", + "categoryId": 2, + "url": "https://www.qq.com/", + "companyId": "tencent", + "source": "AdGuard" + }, + "weixin":{ + "name": "微信广告", + "categoryId": 12, + "url": "https://wxsnsdythumb.wxs.qq.com", + "companyId": "tencent", + "source": "本地" + }, + "qrius": { + "name": "Qrius", + "categoryId": 7, + "url": "http://www.qrius.me/", + "companyId": "mediafed" + }, + "qualaroo": { + "name": "Qualaroo", + "categoryId": 6, + "url": null, + "companyId": null + }, + "qualcomm": { + "name": "Qualcomm", + "categoryId": 8, + "url": "https://www.qualcomm.com/", + "companyId": "qualcomm", + "source": "AdGuard" + }, + "qualcomm_location_service": { + "name": "Qualcomm Location Service", + "categoryId": 15, + "url": "https://www.qualcomm.com/site/privacy/services", + "companyId": "qualcomm", + "source": "AdGuard" + }, + "qualia": { + "name": "Qualia", + "categoryId": 4, + "url": "http://www.bluecava.com/", + "companyId": "qualia" + }, + "qualtrics": { + "name": "Qualtrics", + "categoryId": 6, + "url": "http://www.qualtrics.com/", + "companyId": "qualtrics" + }, + "quantcast": { + "name": "Quantcast", + "categoryId": 4, + "url": "http://www.quantcast.com/", + "companyId": "quantcast" + }, + "quantcount": { + "name": "Quantcount", + "categoryId": 6, + "url": "http://www.quantcast.com", + "companyId": "quantcast" + }, + "quantum_metric": { + "name": "Quantum Metric", + "categoryId": 6, + "url": "https://www.quantummetric.com/", + "companyId": "quantum_metric" + }, + "quartic.pl": { + "name": "Quartic", + "categoryId": 6, + "url": "https://www.quarticon.com/", + "companyId": "quarticon" + }, + "qubit": { + "name": "Qubit Opentag", + "categoryId": 6, + "url": "http://www.qubit.com/", + "companyId": "qubit" + }, + "questback": { + "name": "Questback", + "categoryId": 2, + "url": "http://www1.questback.com/", + "companyId": "questback" + }, + "queue-it": { + "name": "Queue-it", + "categoryId": 6, + "url": "https://queue-it.com/", + "companyId": null + }, + "quick-counter.net": { + "name": "Quick-counter.net", + "categoryId": 6, + "url": "http://www.quick-counter.net/", + "companyId": "quick-counter.net" + }, + "quigo_adsonar": { + "name": "Quigo AdSonar", + "categoryId": 4, + "url": "http://www.quigo.com", + "companyId": "verizon" + }, + "quinstreet": { + "name": "QuinStreet", + "categoryId": 4, + "url": "http://www.quinstreet.com/", + "companyId": "quinstreet" + }, + "quintelligence": { + "name": "Quintelligence", + "categoryId": 6, + "url": "http://www.quintelligence.com/", + "companyId": "quintelligence" + }, + "quisma": { + "name": "Quisma", + "categoryId": 4, + "url": "http://www.quisma.com/en/", + "companyId": "wpp" + }, + "quora.com": { + "name": "Quora", + "categoryId": 7, + "url": "https://quora.com/", + "companyId": null + }, + "r_advertising": { + "name": "R-Advertising", + "categoryId": 4, + "url": "http://www.r-advertising.com/", + "companyId": "r-advertising" + }, + "rackcdn.com": { + "name": "Rackspace", + "categoryId": 9, + "url": "https://www.rackspace.com/", + "companyId": null + }, + "radarurl": { + "name": "RadarURL", + "categoryId": 6, + "url": "http://radarurl.com/", + "companyId": "radarurl" + }, + "radial": { + "name": "Radial", + "categoryId": 4, + "url": "http://www.clearsaleing.com/", + "companyId": "radial" + }, + "radiumone": { + "name": "RadiumOne", + "categoryId": 4, + "url": "http://www.radiumone.com/index.html", + "companyId": "rythmone" + }, + "raisenow": { + "name": "RaiseNow", + "categoryId": 6, + "url": "https://www.raisenow.com/de", + "companyId": "raisenow" + }, + "rakuten_display": { + "name": "Rakuten Display", + "categoryId": 4, + "url": "https://rakutenmarketing.com/display", + "companyId": "rakuten" + }, + "rakuten_globalmarket": { + "name": "Rakuten", + "categoryId": 4, + "url": "https://www.rakuten.co.jp/", + "companyId": "rakuten" + }, + "rakuten_widget": { + "name": "Rakuten Widget", + "categoryId": 4, + "url": "http://global.rakuten.com/corp/", + "companyId": "rakuten" + }, + "rambler": { + "name": "Rambler", + "categoryId": 6, + "url": "https://www.rambler.ru/", + "companyId": "rambler" + }, + "rambler_count": { + "name": "Rambler Count", + "categoryId": 2, + "url": "http://www.rambler.ru/", + "companyId": "rambler" + }, + "rambler_widget": { + "name": "Rambler Widget", + "categoryId": 2, + "url": "http://www.rambler.ru/", + "companyId": "rambler" + }, + "rapidspike": { + "name": "RapidSpike", + "categoryId": 6, + "url": "https://www.rapidspike.com", + "companyId": "rapidspike" + }, + "ravelin": { + "name": "Ravelin", + "categoryId": 6, + "url": "https://www.ravelin.com/", + "companyId": null + }, + "rawgit": { + "name": "RawGit", + "categoryId": 9, + "url": "http://rawgit.com/", + "companyId": null + }, + "raygun": { + "name": "Raygun", + "categoryId": 4, + "url": "https://raygun.com/", + "companyId": "raygun" + }, + "rbc_counter": { + "name": "RBC Counter", + "categoryId": 6, + "url": "http://www.rbc.ru/", + "companyId": "rbc_group" + }, + "rcs.it": { + "name": "RCS", + "categoryId": 4, + "url": "http://www.rcsmediagroup.it/", + "companyId": "rcs" + }, + "rd_station": { + "name": "RD Station", + "categoryId": 6, + "url": "http://www.rdstation.com/en/", + "companyId": "rd_station" + }, + "rea_group": { + "name": "REA Group Ltd.", + "categoryId": 4, + "url": "https://www.rea-group.com/", + "companyId": "news_corp", + "source": "AdGuard" + }, + "reachforce": { + "name": "ReachForce", + "categoryId": 6, + "url": "http://www.reachforce.com/", + "companyId": "reachforce" + }, + "reachjunction": { + "name": "ReachJunction", + "categoryId": 4, + "url": "http://www.reachjunction.com/", + "companyId": "reachjunction" + }, + "reachlocal": { + "name": "ReachLocal", + "categoryId": 4, + "url": "http://www.reachlocal.com/", + "companyId": "reachlocal" + }, + "reactful": { + "name": "Reactful", + "categoryId": 4, + "url": "http://www.reactful.com/", + "companyId": "reactful" + }, + "reactivpub": { + "name": "Reactivpub", + "categoryId": 6, + "url": "http://www.reactivpub.com/", + "companyId": "r-advertising" + }, + "reactx": { + "name": "ReactX", + "categoryId": 4, + "url": "http://home.skinected.com", + "companyId": "reactx" + }, + "readerboard": { + "name": "ReaderBoard", + "categoryId": 7, + "url": "http://www.readrboard.com", + "companyId": "centre_phi" + }, + "readme": { + "name": "ReadMe", + "categoryId": 6, + "url": "https://readme.com/", + "companyId": "readme" + }, + "readspeaker.com": { + "name": "ReadSpeaker", + "categoryId": 2, + "url": "https://www.readspeaker.com/", + "companyId": null + }, + "realclick": { + "name": "RealClick", + "categoryId": 4, + "url": "http://www.realclick.co.kr/", + "companyId": "realclick" + }, + "realestate.com.au": { + "name": "realestate.com.au Pty Limited", + "categoryId": 4, + "url": "https://www.realestate.com.au/", + "companyId": "news_corp", + "source": "AdGuard" + }, + "realperson.de": { + "name": "Realperson Chat", + "categoryId": 2, + "url": "http://www.optimise-it.de/", + "companyId": "optimise_it" + }, + "realtime": { + "name": "Realtime", + "categoryId": 2, + "url": "http://www.realtime.co/", + "companyId": "realtime" + }, + "realytics": { + "name": "Realytics", + "categoryId": 6, + "url": "https://www.realytics.io/", + "companyId": "realytics" + }, + "rebel_mouse": { + "name": "Rebel Mouse", + "categoryId": 6, + "url": "https://www.rebelmouse.com/", + "companyId": "rebelmouse" + }, + "recaptcha": { + "name": "reCAPTCHA", + "categoryId": 8, + "url": "https://www.google.com/recaptcha/about/", + "companyId": "google", + "source": "AdGuard" + }, + "recettes.net": { + "name": "Recettes.net", + "categoryId": 8, + "url": "http://www.recettes.net/", + "companyId": "recettes.net" + }, + "recopick": { + "name": "RecoPick", + "categoryId": 4, + "url": "https://recopick.com/", + "companyId": "recopick" + }, + "recreativ": { + "name": "Recreativ", + "categoryId": 4, + "url": "http://recreativ.ru/", + "companyId": "recreativ" + }, + "recruitics": { + "name": "Recruitics", + "categoryId": 6, + "url": "http://recruitics.com/", + "companyId": "recruitics" + }, + "red_ventures": { + "name": "Red Ventures", + "categoryId": 6, + "url": "https://www.redventures.com/", + "companyId": "red_ventures" + }, + "redblue_de": { + "name": "redblue", + "categoryId": 6, + "url": "https://www.redblue.de/", + "companyId": null + }, + "redcdn.pl": { + "name": "redGalaxy CDN", + "categoryId": 9, + "url": "http://www.atendesoftware.pl/", + "companyId": "atende_software" + }, + "reddit": { + "name": "Reddit", + "categoryId": 7, + "url": "https://www.reddit.com", + "companyId": "advance", + "source": "AdGuard" + }, + "redhelper": { + "name": "RedHelper", + "categoryId": 2, + "url": "http://redhelper.com/", + "companyId": "redhelper" + }, + "redlotus": { + "name": "RedLotus", + "categoryId": 4, + "url": "http://triggit.com/", + "companyId": "redlotus" + }, + "redtram": { + "name": "RedTram", + "categoryId": 4, + "url": "http://www.redtram.com/", + "companyId": "redtram" + }, + "redtube.com": { + "name": "redtube.com", + "categoryId": 9, + "url": null, + "companyId": null + }, + "redux_media": { + "name": "Redux Media", + "categoryId": 4, + "url": "http://reduxmedia.com/", + "companyId": "redux_media" + }, + "reed_business_information": { + "name": "Reed Business Information", + "categoryId": 6, + "url": "http://www.reedbusiness.com/", + "companyId": "andera_partners" + }, + "reembed.com": { + "name": "reEmbed", + "categoryId": 0, + "url": "https://www.reembed.com/", + "companyId": "reembed" + }, + "reevoo.com": { + "name": "Reevoo", + "categoryId": 4, + "url": "https://www.reevoo.com/en/", + "companyId": "reevoo" + }, + "refericon": { + "name": "Refericon", + "categoryId": 4, + "url": "https://refericon.pl/#", + "companyId": "refericon" + }, + "referlocal": { + "name": "ReferLocal", + "categoryId": 4, + "url": "http://referlocal.com/", + "companyId": "referlocal" + }, + "refersion": { + "name": "Refersion", + "categoryId": 4, + "url": "https://www.refersion.com/", + "companyId": "refersion" + }, + "refined_labs": { + "name": "Refined Labs", + "categoryId": 4, + "url": "http://www.refinedlabs.com", + "companyId": "refined_labs" + }, + "reflektion": { + "name": "Reflektion", + "categoryId": 4, + "url": "http://", + "companyId": "reflektion" + }, + "reformal": { + "name": "Reformal", + "categoryId": 2, + "url": "http://reformal.ru/", + "companyId": "reformal" + }, + "reinvigorate": { + "name": "Reinvigorate", + "categoryId": 6, + "url": "http://www.reinvigorate.net/", + "companyId": "media_temple" + }, + "rekko": { + "name": "Rekko", + "categoryId": 4, + "url": "http://convert.us/", + "companyId": "rekko" + }, + "reklam_store": { + "name": "Reklam Store", + "categoryId": 4, + "url": "http://www.reklamstore.com", + "companyId": "reklam_store" + }, + "reklamport": { + "name": "Reklamport", + "categoryId": 4, + "url": "http://www.reklamport.com/", + "companyId": "reklamport" + }, + "reklamz": { + "name": "ReklamZ", + "categoryId": 4, + "url": "http://www.reklamz.com/", + "companyId": "reklamz" + }, + "rekmob": { + "name": "Rekmob", + "categoryId": 4, + "url": "https://www.rekmob.com/", + "companyId": "rekmob" + }, + "relap": { + "name": "Relap", + "categoryId": 4, + "url": "https://relap.io/", + "companyId": "relap" + }, + "relay42": { + "name": "Relay42", + "categoryId": 5, + "url": "http://synovite.com", + "companyId": "relay42" + }, + "relestar": { + "name": "Relestar", + "categoryId": 6, + "url": "https://relestar.com/", + "companyId": "relestar" + }, + "relevant4.com": { + "name": "relevant4 GmbH", + "categoryId": 8, + "url": "https://www.relevant4.com/", + "companyId": null + }, + "remintrex": { + "name": "Remintrex", + "categoryId": 4, + "url": "http://www.remintrex.com/", + "companyId": null + }, + "remove.video": { + "name": "remove.video", + "categoryId": 12, + "url": null, + "companyId": null + }, + "repost.us": { + "name": "Repost.us", + "categoryId": 4, + "url": "http://www.freerangecontent.com/", + "companyId": "repost" + }, + "republer.com": { + "name": "Republer", + "categoryId": 4, + "url": "http://republer.com/", + "companyId": "republer" + }, + "res-meter": { + "name": "Res-meter", + "categoryId": 6, + "url": "http://respublica.al/res-meter", + "companyId": "respublica" + }, + "research_now": { + "name": "Research Now", + "categoryId": 4, + "url": "http://www.researchnow.com/", + "companyId": "research_now" + }, + "resonate_networks": { + "name": "Resonate Networks", + "categoryId": 4, + "url": "http://www.resonatenetworks.com/", + "companyId": "resonate" + }, + "respond": { + "name": "Respond", + "categoryId": 4, + "url": "http://respondhq.com/", + "companyId": "respond" + }, + "responsetap": { + "name": "ResponseTap", + "categoryId": 4, + "url": "http://www.adinsight.eu/", + "companyId": "responsetap" + }, + "result_links": { + "name": "Result Links", + "categoryId": 4, + "url": "http://www.resultlinks.com/", + "companyId": "result_links" + }, + "resultspage.com": { + "name": "SLI Systems", + "categoryId": 6, + "url": "https://www.sli-systems.com/", + "companyId": "sli_systems" + }, + "retailrocket.net": { + "name": "Retail Rocket", + "categoryId": 4, + "url": "https://retailrocket.net/", + "companyId": "retail_rocket" + }, + "retarget_app": { + "name": "Retarget App", + "categoryId": 4, + "url": "https://retargetapp.com/", + "companyId": "retargetapp" + }, + "retargeter_beacon": { + "name": "ReTargeter Beacon", + "categoryId": 4, + "url": "http://www.retargeter.com/", + "companyId": "retargeter" + }, + "retargeting.cl": { + "name": "Retargeting.cl", + "categoryId": 4, + "url": "http://retargeting.cl/", + "companyId": "retargeting" + }, + "retention_science": { + "name": "Retention Science", + "categoryId": 4, + "url": "http://retentionscience.com/", + "companyId": "retention_science" + }, + "reuters_media": { + "name": "Reuters media", + "categoryId": 9, + "url": "https://reuters.com", + "companyId": null + }, + "revcontent": { + "name": "RevContent", + "categoryId": 4, + "url": "https://www.revcontent.com/", + "companyId": "revcontent" + }, + "reve_marketing": { + "name": "Reve Marketing", + "categoryId": 4, + "url": "http://tellafriend.socialtwist.com/", + "companyId": "reve_marketing" + }, + "revenue": { + "name": "Revenue", + "categoryId": 4, + "url": "https://revenue.com/", + "companyId": "revenue" + }, + "revenuehits": { + "name": "RevenueHits", + "categoryId": 4, + "url": "http://www.revenuehits.com/", + "companyId": "revenuehits" + }, + "revenuemantra": { + "name": "RevenueMantra", + "categoryId": 4, + "url": "http://www.revenuemantra.com/", + "companyId": "revenuemantra" + }, + "revive_adserver": { + "name": "Revive Adserver", + "categoryId": 4, + "url": "https://www.revive-adserver.com/", + "companyId": "revive_adserver" + }, + "revolver_maps": { + "name": "Revolver Maps", + "categoryId": 6, + "url": "http://www.revolvermaps.com/", + "companyId": "revolver_maps" + }, + "revresponse": { + "name": "RevResponse", + "categoryId": 4, + "url": "http://www.netline.com/", + "companyId": "netline" + }, + "rewords": { + "name": "ReWords", + "categoryId": 4, + "url": "http://www.rewords.pl/", + "companyId": "rewords" + }, + "rhythmone": { + "name": "RhythmOne", + "categoryId": 4, + "url": "http://www.adconductor.com/", + "companyId": "rhythmone" + }, + "rhythmone_beacon": { + "name": "Rhythmone Beacon", + "categoryId": 4, + "url": "https://www.rhythmone.com/", + "companyId": "rythmone" + }, + "ria.ru": { + "name": "ria.ru", + "categoryId": 8, + "url": "https://ria.ru/", + "companyId": null + }, + "rich_media_banner_network": { + "name": "Rich Media Banner Network", + "categoryId": 4, + "url": "http://rmbn.ru/", + "companyId": "rich_media_banner_network" + }, + "richrelevance": { + "name": "RichRelevance", + "categoryId": 2, + "url": "http://www.richrelevance.com/", + "companyId": "richrelevance" + }, + "ringier.ch": { + "name": "Ringier", + "categoryId": 6, + "url": "http://ringier.ch/en", + "companyId": "ringier" + }, + "rio_seo": { + "name": "Rio SEO", + "categoryId": 7, + "url": "http://www.meteorsolutions.com", + "companyId": "rio_seo" + }, + "riskfield.com": { + "name": "Riskified", + "categoryId": 2, + "url": "https://www.riskified.com/", + "companyId": "riskfield" + }, + "rncdn3.com": { + "name": "Reflected Networks", + "categoryId": 9, + "url": "http://www.rncdn3.com/", + "companyId": null + }, + "ro2.biz": { + "name": "Ro2.biz", + "categoryId": 4, + "url": "http://ro2.biz/index.php?r=adikku", + "companyId": "ro2.biz" + }, + "roblox": { + "name": "Roblox", + "categoryId": 8, + "url": "https://www.roblox.com/", + "companyId": null + }, + "rockerbox": { + "name": "Rockerbox", + "categoryId": 6, + "url": "https://www.rockerbox.com/privacy", + "companyId": "rockerbox" + }, + "rocket.ia": { + "name": "Rocket.ia", + "categoryId": 4, + "url": "https://rocket.la/", + "companyId": "rocket.la" + }, + "roi_trax": { + "name": "ROI trax", + "categoryId": 4, + "url": "http://www.oneupweb.com/", + "companyId": "oneupweb" + }, + "roistat": { + "name": "Roistat", + "categoryId": 6, + "url": "https://roistat.com", + "companyId": "roistat" + }, + "rollad": { + "name": "Rollad", + "categoryId": 4, + "url": "http://rollad.ru", + "companyId": "rollad" + }, + "rollbar": { + "name": "Rollbar", + "categoryId": 6, + "url": "http://www.rollbar.com/", + "companyId": "rollbar" + }, + "roost": { + "name": "Roost", + "categoryId": 6, + "url": "http://roost.me/", + "companyId": "roost" + }, + "rooster": { + "name": "Rooster", + "categoryId": 6, + "url": "http://www.getrooster.com/", + "companyId": "rooster" + }, + "roq.ad": { + "name": "Roq.ad", + "categoryId": 4, + "url": "https://www.roq.ad/", + "companyId": "roq.ad" + }, + "rotaban": { + "name": "RotaBan", + "categoryId": 4, + "url": "http://www.rotaban.ru/", + "companyId": "rotaban" + }, + "routenplaner-karten.com": { + "name": "Routenplaner Karten", + "categoryId": 2, + "url": "https://www.routenplaner-karten.com/", + "companyId": null + }, + "rovion": { + "name": "Rovion", + "categoryId": 4, + "url": "http://www.rovion.com/", + "companyId": "rovion" + }, + "rsspump": { + "name": "RSSPump", + "categoryId": 2, + "url": "http://www.rsspump.com", + "companyId": "rsspump" + }, + "rtb_house": { + "name": "RTB House", + "categoryId": 4, + "url": "http://en.adpilot.com/", + "companyId": "rtb_house" + }, + "rtblab": { + "name": "RTBmarkt", + "categoryId": 4, + "url": "http://www.rtbmarkt.de/en/home/", + "companyId": "rtbmarkt" + }, + "rtbsuperhub.com": { + "name": "rtbsuperhub.com", + "categoryId": 4, + "url": null, + "companyId": null + }, + "rtl_group": { + "name": "RTL Group", + "categoryId": 8, + "url": "http://www.rtlgroup.com/www/htm/home.aspx", + "companyId": "rtl_group" + }, + "rtmark.net": { + "name": "Advertising Technologies Ltd", + "categoryId": 4, + "url": "http://rtmark.net/", + "companyId": "big_wall_vision" + }, + "rubicon": { + "name": "Rubicon", + "categoryId": 4, + "url": "http://rubiconproject.com/", + "companyId": "rubicon_project" + }, + "ruhrgebiet": { + "name": "Ruhrgebiet", + "categoryId": 4, + "url": "https://www.ruhrgebiet-onlineservices.de/", + "companyId": "ruhrgebiet" + }, + "rummycircle": { + "name": "RummyCircle", + "categoryId": 4, + "url": "https://www.rummycircle.com/", + "companyId": "rummycircle" + }, + "run": { + "name": "RUN", + "categoryId": 4, + "url": "http://www.rundsp.com/", + "companyId": "run" + }, + "runative": { + "name": "Runative", + "categoryId": 4, + "url": "https://runative.com/", + "companyId": null + }, + "rune": { + "name": "Rune", + "categoryId": 6, + "url": "http://www.secretrune.com/", + "companyId": "rune_inc." + }, + "runmewivel.com": { + "name": "runmewivel.com", + "categoryId": 10, + "url": null, + "companyId": null + }, + "rythmxchange": { + "name": "Rythmxchange", + "categoryId": 0, + "url": "https://www.rhythmone.com/", + "companyId": "rythmone" + }, + "s24_com": { + "name": "Shopping24 internet group", + "categoryId": 4, + "url": "https://www.s24.com/", + "companyId": null + }, + "s3xified.com": { + "name": "s3xified.com", + "categoryId": 11, + "url": null, + "companyId": null + }, + "sabavision": { + "name": "SabaVision", + "categoryId": 4, + "url": "http://www.sabavision.com/en/", + "companyId": "sabavision" + }, + "sagemetrics": { + "name": "SageMetrics", + "categoryId": 4, + "url": "http://www.sagemetrics.com", + "companyId": "ipmg" + }, + "sailthru_horizon": { + "name": "Sailthru Horizon", + "categoryId": 4, + "url": "https://www.sailthru.com", + "companyId": "sailthru" + }, + "salecycle": { + "name": "SaleCycle", + "categoryId": 4, + "url": "http://www.salecycle.com/", + "companyId": "salecycle" + }, + "sales_feed": { + "name": "Sales Feed", + "categoryId": 4, + "url": "https://www.salesfeed.com/", + "companyId": "sales_feed" + }, + "sales_manago": { + "name": "SALESmanago", + "categoryId": 6, + "url": "https://www.salesmanago.com/", + "companyId": "sales_manago" + }, + "salesforce.com": { + "name": "Salesforce", + "categoryId": 4, + "url": "https://www.salesforce.com/eu/", + "companyId": "salesforce" + }, + "salesforce_live_agent": { + "name": "Salesforce Live Agent", + "categoryId": 2, + "url": "http://www.salesforce.com/", + "companyId": "salesforce" + }, + "salesfusion": { + "name": "SalesFUSION", + "categoryId": 4, + "url": "http://salesfusion.com/", + "companyId": "salesfusion" + }, + "salespider_media": { + "name": "SaleSpider Media", + "categoryId": 4, + "url": "http://salespidermedia.com/", + "companyId": "salespider_media" + }, + "salesviewer": { + "name": "SalesViewer", + "categoryId": 6, + "url": "https://www.salesviewer.com/", + "companyId": "salesviewer" + }, + "samba.tv": { + "name": "Samba TV", + "categoryId": 4, + "url": "https://samba.tv/", + "companyId": "samba_tv" + }, + "samsung": { + "name": "Samsung", + "categoryId": 8, + "url": "https://www.samsung.com/", + "companyId": "samsung", + "source": "AdGuard" + }, + "samsungads": { + "name": "Samsung Ads", + "categoryId": 4, + "url": "https://www.samsung.com/business/samsungads/", + "companyId": "samsung", + "source": "AdGuard" + }, + "samsungapps": { + "name": "Samsung Apps", + "categoryId": 101, + "url": "https://www.samsung.com/au/apps/", + "companyId": "samsung", + "source": "AdGuard" + }, + "samsungmobile": { + "name": "Samsung Mobile", + "categoryId": 101, + "url": "https://www.samsung.com/mobile/", + "companyId": "samsung", + "source": "AdGuard" + }, + "samsungpush": { + "name": "Samsung Push", + "categoryId": 8, + "url": null, + "companyId": "samsung", + "source": "AdGuard" + }, + "samsungsds": { + "name": "Samsung SDS", + "categoryId": 10, + "url": "https://www.samsungsds.com/", + "companyId": "samsung", + "source": "AdGuard" + }, + "samsungtv": { + "name": "Samsung TV", + "categoryId": 15, + "url": "https://www.samsung.com/au/tvs/", + "companyId": "samsung", + "source": "AdGuard" + }, + "sanoma.fi": { + "name": "Sanoma", + "categoryId": 4, + "url": "https://sanoma.com/", + "companyId": "sanoma" + }, + "sap_crm": { + "name": "SAP CRM", + "categoryId": 6, + "url": "https://www.sap.com/products/crm.html", + "companyId": "sap" + }, + "sap_sales_cloud": { + "name": "SAP Sales Cloud", + "categoryId": 2, + "url": "http://leadforce1.com/", + "companyId": "sap" + }, + "sap_xm": { + "name": "SAP Exchange Media", + "categoryId": 4, + "url": "http://sapexchange.media/", + "companyId": null + }, + "sape.ru": { + "name": "Sape", + "categoryId": 6, + "url": "https://www.sape.ru/en", + "companyId": "sape" + }, + "sapo_ads": { + "name": "SAPO Ads", + "categoryId": 4, + "url": "http://www.sapo.pt/", + "companyId": "sapo" + }, + "sas": { + "name": "SAS", + "categoryId": 6, + "url": "http://www.sas.com/", + "companyId": "sas" + }, + "say.ac": { + "name": "Say.ac", + "categoryId": 4, + "url": "http://say.ac", + "companyId": "say.ac" + }, + "say_media": { + "name": "Say Media", + "categoryId": 4, + "url": "http://www.saymedia.com/", + "companyId": "say_media" + }, + "sayyac": { + "name": "Sayyac", + "categoryId": 6, + "url": "http://www.sayyac.com/", + "companyId": "sayyac" + }, + "scarabresearch": { + "name": "Scarab Research", + "categoryId": 4, + "url": "https://www.scarabresearch.com/", + "companyId": "emarsys" + }, + "schibsted": { + "name": "Schibsted Media Group", + "categoryId": 8, + "url": "http://www.schibsted.com/", + "companyId": "schibsted_asa" + }, + "schneevonmorgen.com": { + "name": "Schnee von Morgen", + "categoryId": 0, + "url": "http://www.schneevonmorgen.com/", + "companyId": null + }, + "scoota": { + "name": "Scoota", + "categoryId": 4, + "url": "http://scoota.com/", + "companyId": "rockabox" + }, + "scorecard_research_beacon": { + "name": "ScoreCard Research Beacon", + "categoryId": 6, + "url": "https://www.scorecardresearch.com/", + "companyId": "comscore" + }, + "scout_analytics": { + "name": "Scout Analytics", + "categoryId": 4, + "url": "http://scoutanalytics.com/", + "companyId": "scout_analytics" + }, + "scribblelive": { + "name": "ScribbleLive", + "categoryId": 8, + "url": null, + "companyId": null + }, + "scribol": { + "name": "Scribol", + "categoryId": 4, + "url": "http://scribol.com/", + "companyId": "scribol" + }, + "scripps_analytics": { + "name": "Scripps Analytics", + "categoryId": 6, + "url": "http://www.scrippsnetworksinteractive.com/", + "companyId": "scripps_networks" + }, + "scroll": { + "name": "Scroll", + "categoryId": 5, + "url": "https://scroll.com/", + "companyId": "scroll" + }, + "scupio": { + "name": "Scupio", + "categoryId": 4, + "url": "http://ad.scupio.com/", + "companyId": "bridgewell" + }, + "search123": { + "name": "Search123", + "categoryId": 4, + "url": "http://www.search123.com/", + "companyId": "search123" + }, + "searchforce": { + "name": "SearchForce", + "categoryId": 4, + "url": "http://www.searchforce.com/", + "companyId": "searchforce" + }, + "searchignite": { + "name": "SearchIgnite", + "categoryId": 4, + "url": "https://searchignite.com/", + "companyId": "zeta" + }, + "searchrev": { + "name": "SearchRev", + "categoryId": 4, + "url": "http://www.searchrev.com/", + "companyId": "searchrev" + }, + "second_media": { + "name": "Second Media", + "categoryId": 4, + "url": "http://www.secondmedia.com/", + "companyId": "second_media" + }, + "sectigo": { + "name": "Sectigo Limited", + "categoryId": 5, + "url": "https://www.sectigo.com", + "companyId": "sectigo", + "source": "AdGuard" + }, + "securedtouch": { + "name": "SecuredTouch", + "categoryId": 6, + "url": "https://www.securedtouch.com/", + "companyId": null + }, + "securedvisit": { + "name": "SecuredVisit", + "categoryId": 4, + "url": "http://securedvisit.com/", + "companyId": "securedvisit" + }, + "seeding_alliance": { + "name": "Seeding Alliance", + "categoryId": 4, + "url": "http://seeding-alliance.de", + "companyId": "stroer" + }, + "seedtag.com": { + "name": "Seedtag", + "categoryId": 4, + "url": "https://www.seedtag.com/en/", + "companyId": "seedtag" + }, + "seevolution": { + "name": "SeeVolution", + "categoryId": 6, + "url": "http://www.seevolution.com", + "companyId": "seevolution" + }, + "segment": { + "name": "Segment", + "categoryId": 6, + "url": "https://segment.io/", + "companyId": "segment" + }, + "segmento": { + "name": "Segmento", + "categoryId": 4, + "url": "https://segmento.ru/en", + "companyId": "segmento" + }, + "segmint": { + "name": "Segmint", + "categoryId": 6, + "url": "http://www.segmint.com/", + "companyId": "segmint" + }, + "sekindo": { + "name": "Sekindo", + "categoryId": 4, + "url": "http://www.sekindo.com/", + "companyId": "sekindo" + }, + "sellpoints": { + "name": "Sellpoints", + "categoryId": 4, + "url": "https://www.sellpoints.com/", + "companyId": "sellpoints" + }, + "semantiqo.com": { + "name": "Semantiqo", + "categoryId": 4, + "url": "https://semantiqo.com/", + "companyId": null + }, + "semasio": { + "name": "Semasio", + "categoryId": 4, + "url": "http://semasio.com/", + "companyId": "semasio" + }, + "semilo": { + "name": "Semilo", + "categoryId": 4, + "url": "http://www.semilo.nl/", + "companyId": "semilo" + }, + "semknox.com": { + "name": "SEMKNOX GmbH", + "categoryId": 5, + "url": "https://semknox.com/", + "companyId": null + }, + "sendinblue": { + "name": "sendinblue", + "categoryId": 4, + "url": "https://fr.sendinblue.com/", + "companyId": "sendinblue" + }, + "sendpulse.com": { + "name": "SendPulse", + "categoryId": 3, + "url": "https://sendpulse.com/", + "companyId": null + }, + "sendsay": { + "name": "Sendsay", + "categoryId": 2, + "url": "https://sendsay.ru", + "companyId": "sendsay" + }, + "sense_digital": { + "name": "Sense Digital", + "categoryId": 6, + "url": "http://sensedigital.in/", + "companyId": "sense_digital" + }, + "sensors_data": { + "name": "Sensors Data", + "categoryId": 6, + "url": "https://www.sensorsdata.cn/", + "companyId": "sensors_data" + }, + "sentifi.com": { + "name": "Sentifi", + "categoryId": 6, + "url": "https://sentifi.com/", + "companyId": "sentifi" + }, + "sentry": { + "name": "Sentry", + "categoryId": 6, + "url": "https://sentry.io/", + "companyId": "sentry" + }, + "sepyra": { + "name": "Sepyra", + "categoryId": 4, + "url": "http://sepyra.com/", + "companyId": "sepyra" + }, + "sessioncam": { + "name": "SessionCam", + "categoryId": 6, + "url": "http://www.sessioncam.com/", + "companyId": "sessioncam" + }, + "sessionly": { + "name": "Sessionly", + "categoryId": 2, + "url": "https://www.sessionly.io/", + "companyId": "sessionly" + }, + "sevenone_media": { + "name": "SevenOne Media", + "categoryId": 4, + "url": null, + "companyId": null + }, + "sexadnetwork": { + "name": "SexAdNetwork", + "categoryId": 3, + "url": "http://www.sexadnetwork.com/", + "companyId": "sexadnetwork" + }, + "sexinyourcity": { + "name": "SexInYourCity", + "categoryId": 3, + "url": "http://www.sexinyourcity.com/", + "companyId": "sexinyourcity" + }, + "sextracker": { + "name": "SexTracker", + "categoryId": 3, + "url": "http://webmasters.sextracker.com/", + "companyId": "sextracker" + }, + "sexypartners.net": { + "name": "sexypartners.net", + "categoryId": 3, + "url": null, + "companyId": null + }, + "seznam": { + "name": "Seznam", + "categoryId": 6, + "url": "https://onas.seznam.cz/cz/", + "companyId": "seznam" + }, + "shareaholic": { + "name": "Shareaholic", + "categoryId": 6, + "url": "https://www.shareaholic.com/", + "companyId": "shareaholic" + }, + "shareasale": { + "name": "ShareASale", + "categoryId": 4, + "url": "http://www.shareasale.com/", + "companyId": "shareasale" + }, + "sharecompany": { + "name": "ShareCompany", + "categoryId": 2, + "url": "http://sharecompany.nl", + "companyId": "sharecompany" + }, + "sharepoint": { + "name": "SharePoint", + "categoryId": 8, + "url": "https://www.microsoft.com/microsoft-365/sharepoint/collaboration", + "companyId": "microsoft", + "source": "AdGuard" + }, + "sharethis": { + "name": "ShareThis", + "categoryId": 4, + "url": "http://sharethis.com/", + "companyId": "sharethis" + }, + "sharethrough": { + "name": "ShareThrough", + "categoryId": 4, + "url": "http://www.sharethrough.com/", + "companyId": "sharethrough" + }, + "sharpspring": { + "name": "Sharpspring", + "categoryId": 6, + "url": "https://sharpspring.com/", + "companyId": "sharpspring" + }, + "sheego.de": { + "name": "sheego.de", + "categoryId": 8, + "url": null, + "companyId": null + }, + "sheerid": { + "name": "SheerID", + "categoryId": 4, + "url": "http://www.sheerid.com/", + "companyId": "sheerid" + }, + "shinystat": { + "name": "ShinyStat", + "categoryId": 6, + "url": "http://www.shinystat.com/", + "companyId": "shinystat" + }, + "shop_target": { + "name": "Shop Target", + "categoryId": 4, + "url": "http://shoptarget.com.br/", + "companyId": "shopback" + }, + "shopauskunft.de": { + "name": "ShopAuskunft.de", + "categoryId": 2, + "url": "https://shopauskunft.de/", + "companyId": null + }, + "shopgate.com": { + "name": "Shopgate", + "categoryId": 2, + "url": "https://www.shopgate.com/", + "companyId": null + }, + "shopify": { + "name": "Shopify Inc.", + "categoryId": 2, + "url": "https://www.shopify.com/", + "companyId": "shopify", + "source": "AdGuard" + }, + "shopify_stats": { + "name": "Shopify Stats", + "categoryId": 6, + "url": "http://www.shopify.com/", + "companyId": "shopify", + "source": "AdGuard" + }, + "shopifycdn.com": { + "name": "Shopify CDN", + "categoryId": 9, + "url": "https://www.shopify.com/", + "companyId": "shopify" + }, + "shopifycloud.com": { + "name": "Shopify Cloud", + "categoryId": 2, + "url": "https://www.shopify.com/", + "companyId": "shopify" + }, + "shopper_approved": { + "name": "Shopper Approved", + "categoryId": 2, + "url": "http://www.shopperapproved.com", + "companyId": "shopper_approved" + }, + "shopping_com": { + "name": "Shopping.com", + "categoryId": 4, + "url": "https://partnernetwork.ebay.com/", + "companyId": "ebay_partner_network" + }, + "shopping_flux": { + "name": "Shopping Flux", + "categoryId": 6, + "url": "http://www.shopping-flux.com/", + "companyId": "shopping_flux" + }, + "shoprunner": { + "name": "ShopRunner", + "categoryId": 2, + "url": "https://www.shoprunner.com", + "companyId": "shoprunner" + }, + "shopsocially": { + "name": "ShopSocially", + "categoryId": 2, + "url": "http://shopsocially.com/", + "companyId": "shopsocially" + }, + "shopzilla": { + "name": "Shopzilla", + "categoryId": 4, + "url": "http://www.shopzilla.com/", + "companyId": "shopzilla" + }, + "shortnews": { + "name": "ShortNews.de", + "categoryId": 8, + "url": "http://www.shortnews.de/#", + "companyId": null + }, + "showrss": { + "name": "showRSS", + "categoryId": 8, + "url": "https://showrss.info/", + "companyId": "showrss", + "source": "AdGuard" + }, + "shrink": { + "name": "Shrink", + "categoryId": 2, + "url": "http://shink.in/", + "companyId": "shrink.in" + }, + "shutterstock": { + "name": "Shutterstock", + "categoryId": 8, + "url": "https://www.shutterstock.com/", + "companyId": "shutterstock_inc" + }, + "siblesectiveal.club": { + "name": "siblesectiveal.club", + "categoryId": 11, + "url": null, + "companyId": null + }, + "sidecar": { + "name": "Sidecar", + "categoryId": 6, + "url": "http://hello.getsidecar.com/", + "companyId": "sidecar" + }, + "sift_science": { + "name": "Sift Science", + "categoryId": 6, + "url": "https://siftscience.com/", + "companyId": "sift_science" + }, + "signal": { + "name": "Signal", + "categoryId": 5, + "url": "https://www.signal.co/", + "companyId": "signal_digital" + }, + "signifyd": { + "name": "Signifyd", + "categoryId": 6, + "url": "https://www.signifyd.com/", + "companyId": "signifyd" + }, + "silverpop": { + "name": "Silverpop", + "categoryId": 2, + "url": "http://www.silverpop.com/", + "companyId": "ibm" + }, + "similardeals.net": { + "name": "SimilarDeals", + "categoryId": 8, + "url": "http://www.similardeals.net/", + "companyId": null + }, + "similarweb": { + "name": "SimilarWeb", + "categoryId": 6, + "url": "https://www.similarweb.com/", + "companyId": "similarweb", + "source": "AdGuard" + }, + "simplereach": { + "name": "SimpleReach", + "categoryId": 6, + "url": "https://www.nativo.com/simplereach", + "companyId": "nativo" + }, + "simpli.fi": { + "name": "Simpli.fi", + "categoryId": 4, + "url": "http://www.simpli.fi", + "companyId": "simpli.fi" + }, + "sina": { + "name": "Sina", + "categoryId": 6, + "url": "http://www.sina.com/", + "companyId": "sina" + }, + "sina_cdn": { + "name": "Sina CDN", + "categoryId": 9, + "url": "https://www.sina.com.cn/", + "companyId": "sina" + }, + "singlefeed": { + "name": "SingleFeed", + "categoryId": 4, + "url": "https://www.singlefeed.com/", + "companyId": "singlefeed" + }, + "sirdata": { + "name": "Sirdata", + "categoryId": 6, + "url": "http://www.sirdata.com/home/", + "companyId": "sirdata" + }, + "site24x7": { + "name": "Site24x7", + "categoryId": 6, + "url": "https://www.site24x7.com/", + "companyId": "zoho_corp" + }, + "site_booster": { + "name": "Site Booster", + "categoryId": 7, + "url": "https://sitebooster.com/", + "companyId": "site_booster" + }, + "site_stratos": { + "name": "Site Stratos", + "categoryId": 4, + "url": "http://www.infocube.co.jp/", + "companyId": "infocube" + }, + "siteapps": { + "name": "SiteApps", + "categoryId": 2, + "url": "http://siteapps.com", + "companyId": "siteapps" + }, + "sitebro": { + "name": "SiteBro", + "categoryId": 6, + "url": "http://www.sitebro.net/", + "companyId": "sitebro" + }, + "siteheart": { + "name": "SiteHeart", + "categoryId": 2, + "url": "http://siteheart.com/", + "companyId": "siteheart" + }, + "siteimprove": { + "name": "Siteimprove", + "categoryId": 6, + "url": "http://siteimprove.com", + "companyId": "siteimprove" + }, + "siteimprove_analytics": { + "name": "SiteImprove Analytics", + "categoryId": 6, + "url": "http://siteimprove.com", + "companyId": "siteimprove" + }, + "sitelabweb.com": { + "name": "sitelabweb.com", + "categoryId": 11, + "url": null, + "companyId": null + }, + "sitemeter": { + "name": "SiteMeter", + "categoryId": 6, + "url": "http://www.sitemeter.com/", + "companyId": "sitemeter,_inc." + }, + "sitescout": { + "name": "SiteScout by Centro", + "categoryId": 4, + "url": "http://www.sitescout.com", + "companyId": "centro" + }, + "sitetag": { + "name": "SiteTag", + "categoryId": 2, + "url": "http://www.sitetag.us/", + "companyId": "sitetag" + }, + "sitewit": { + "name": "SiteWit", + "categoryId": 4, + "url": "http://www.sitewit.com/", + "companyId": "sitewit" + }, + "six_apart_advertising": { + "name": "Six Apart Advertising", + "categoryId": 4, + "url": "http://www.sixapart.com/advertising/", + "companyId": "six_apart" + }, + "sixt-neuwagen.de": { + "name": "sixt-neuwagen.de", + "categoryId": 8, + "url": null, + "companyId": null + }, + "skadtec.com": { + "name": "GP One GmbH", + "categoryId": 6, + "url": "http://www.gp-one.com/", + "companyId": null + }, + "skimlinks": { + "name": "SkimLinks", + "categoryId": 4, + "url": "http://www.skimlinks.com/", + "companyId": "skimlinks" + }, + "skroutz": { + "name": "Skroutz", + "categoryId": 6, + "url": "https://www.skroutz.gr/", + "companyId": "skroutz" + }, + "skyglue": { + "name": "SkyGlue", + "categoryId": 6, + "url": "http://www.skyglue.com/", + "companyId": "skyglue_technology" + }, + "skype": { + "name": "Skype", + "categoryId": 2, + "url": "http://www.skype.com", + "companyId": "microsoft" + }, + "skysa": { + "name": "Skysa", + "categoryId": 2, + "url": "http://www.skysa.com/", + "companyId": "skysa" + }, + "skyscnr.com": { + "name": "Skyscanner CDN", + "categoryId": 9, + "url": "https://www.skyscanner.net/", + "companyId": null + }, + "slack": { + "name": "Slack", + "categoryId": 8, + "url": "https://www.slack.com/", + "companyId": "salesforce", + "source": "AdGuard" + }, + "slashdot_widget": { + "name": "Slashdot Widget", + "categoryId": 2, + "url": "http://slashdot.org", + "companyId": "slashdot" + }, + "sleeknote": { + "name": "Sleeknote", + "categoryId": 2, + "url": "https://sleeknote.com/", + "companyId": "sleeknote" + }, + "sli_systems": { + "name": "SLI Systems", + "categoryId": 2, + "url": "http://www.sli-systems.com", + "companyId": "sli_systems" + }, + "slice_factory": { + "name": "Slice Factory", + "categoryId": 2, + "url": "http://www.slicefactory.com/", + "companyId": "slice_factory" + }, + "slimcutmedia": { + "name": "SlimCutMedia", + "categoryId": 6, + "url": "http://www.slimcutmedia.com/", + "companyId": "slimcutmedia" + }, + "slingpic": { + "name": "Slingpic", + "categoryId": 4, + "url": "http://slingpic.com/", + "companyId": "affectv" + }, + "smaato": { + "name": "Smaato", + "categoryId": 4, + "url": "http://www.smaato.com/", + "companyId": "smaato" + }, + "smart4ads": { + "name": "smart4ads", + "categoryId": 4, + "url": "http://www.smart4ads.com", + "companyId": "smart4ads" + }, + "smart_adserver": { + "name": "SMART AdServer", + "categoryId": 4, + "url": "https://smartadserver.com/", + "companyId": "smart_adserver" + }, + "smart_call": { + "name": "Smart Call", + "categoryId": 2, + "url": "https://smartcall.kz/", + "companyId": "smart_call" + }, + "smart_content": { + "name": "Smart Content", + "categoryId": 4, + "url": "http://www.getsmartcontent.com", + "companyId": "get_smart_content" + }, + "smart_device_media": { + "name": "Smart Device Media", + "categoryId": 4, + "url": "http://www.smartdevicemedia.com/", + "companyId": "smart_device_media" + }, + "smart_leads": { + "name": "Smart Leads", + "categoryId": 4, + "url": "http://www.cnt.my/", + "companyId": "smart_leads" + }, + "smart_selling": { + "name": "Smart Selling", + "categoryId": 2, + "url": "https://smartselling.cz/", + "companyId": "smart_selling" + }, + "smartad": { + "name": "smartAD", + "categoryId": 4, + "url": "http://smartad.eu/", + "companyId": "smartad" + }, + "smartbn": { + "name": "SmartBN", + "categoryId": 4, + "url": "http://smartbn.ru/", + "companyId": "smartbn" + }, + "smartclick.net": { + "name": "SmartClick", + "categoryId": 4, + "url": "http://smartclick.net/", + "companyId": null + }, + "smartclip": { + "name": "SmartClip", + "categoryId": 4, + "url": "http://www.smartclip.com/", + "companyId": "smartclip" + }, + "smartcontext": { + "name": "SmartContext", + "categoryId": 4, + "url": "http://smartcontext.pl/", + "companyId": "smartcontext" + }, + "smarter_remarketer": { + "name": "SmarterHQ", + "categoryId": 4, + "url": "https://smarterhq.com", + "companyId": "smarterhq" + }, + "smarter_travel": { + "name": "Smarter Travel Media", + "categoryId": 4, + "url": "https://www.smartertravel.com/", + "companyId": "iac_apps" + }, + "smarterclick": { + "name": "Smarterclick", + "categoryId": 4, + "url": "http://www.smarterclick.co.uk/", + "companyId": "smarter_click" + }, + "smartertrack": { + "name": "SmarterTrack", + "categoryId": 4, + "url": "http://www.smartertrack.com/", + "companyId": "smartertrack" + }, + "smartlink.cool": { + "name": "smartlink.cool", + "categoryId": 11, + "url": null, + "companyId": null + }, + "smartlook": { + "name": "Smartlook", + "categoryId": 2, + "url": "https://www.smartlook.com/", + "companyId": "smartlook" + }, + "smartstream.tv": { + "name": "SmartStream.TV", + "categoryId": 4, + "url": "https://www.smartstream.tv/en", + "companyId": "smartstream" + }, + "smartsupp_chat": { + "name": "Smartsupp Chat", + "categoryId": 2, + "url": "https://www.smartsupp.com/", + "companyId": "smartsuppp" + }, + "smi2.ru": { + "name": "smi2.ru", + "categoryId": 6, + "url": "https://smi2.net/", + "companyId": "media2_stat.media" + }, + "smooch": { + "name": "Smooch", + "categoryId": 2, + "url": "https://smooch.io/", + "companyId": "smooch" + }, + "smowtion": { + "name": "Smowtion", + "categoryId": 4, + "url": "http://www.smowtion.com/", + "companyId": "smowtion" + }, + "smx_ventures": { + "name": "SMX Ventures", + "categoryId": 6, + "url": "http://smxeventures.com/", + "companyId": "smx_ventures" + }, + "smyte": { + "name": "Smyte", + "categoryId": 6, + "url": "https://www.smyte.com/", + "companyId": "smyte" + }, + "snacktv": { + "name": "SnackTV", + "categoryId": 6, + "url": "https://www.verizon.com/", + "companyId": "verizon" + }, + "snacktv_player": { + "name": "SnackTV-Player", + "categoryId": 0, + "url": "https://www.verizon.com/", + "companyId": "verizon" + }, + "snap": { + "name": "Snap", + "categoryId": 2, + "url": "http://www.snap.com/", + "companyId": "snap_technologies" + }, + "snap_engage": { + "name": "Snap Engage", + "categoryId": 2, + "url": "https://snapengage.com/", + "companyId": "snap_engage" + }, + "snapchat": { + "name": "Snapchat For Business", + "categoryId": 4, + "url": "https://www.snapchat.com/", + "companyId": "snap_technologies" + }, + "snapcraft": { + "name": "Snapcraft", + "categoryId": 8, + "url": "https://snapcraft.io", + "companyId": "canonical", + "source": "AdGuard" + }, + "snigelweb": { + "name": "SnigelWeb, Inc.", + "categoryId": 4, + "url": "http://www.snigelweb.com/", + "companyId": "snigelweb_inc" + }, + "snoobi": { + "name": "Snoobi", + "categoryId": 6, + "url": "http://www.snoobi.eu/", + "companyId": "snoobi" + }, + "snoobi_analytics": { + "name": "Snoobi Analytics", + "categoryId": 6, + "url": "http://www.snoobi.com/", + "companyId": "snoobi_oy" + }, + "snowplow": { + "name": "Snowplow", + "categoryId": 6, + "url": "http://snowplowanalytics.com/", + "companyId": "snowplow" + }, + "soasta_mpulse": { + "name": "SOASTA mPulse", + "categoryId": 6, + "url": "http://www.soasta.com/", + "companyId": "akamai" + }, + "sociable_labs": { + "name": "Sociable Labs", + "categoryId": 4, + "url": "http://www.sociablelabs.com/", + "companyId": "sociable_labs" + }, + "social_amp": { + "name": "Social Amp", + "categoryId": 4, + "url": "http://www.merkleinc.com/", + "companyId": "dentsu_aegis_network" + }, + "social_annex": { + "name": "Social Annex", + "categoryId": 4, + "url": "http://www.socialannex.com", + "companyId": "social_annex" + }, + "social_miner": { + "name": "Social Miner", + "categoryId": 7, + "url": "https://socialminer.com/", + "companyId": "social_miner" + }, + "socialbeat": { + "name": "socialbeat", + "categoryId": 4, + "url": "http://www.socialbeat.it/", + "companyId": "socialbeat" + }, + "socialrms": { + "name": "SocialRMS", + "categoryId": 7, + "url": "http://socialinterface.com/socialrms/", + "companyId": "socialinterface" + }, + "sociaplus.com": { + "name": "SociaPlus", + "categoryId": 6, + "url": "https://sociaplus.com/", + "companyId": null + }, + "sociomantic": { + "name": "Sociomantic", + "categoryId": 4, + "url": "http://www.sociomantic.com/", + "companyId": "sociomantic_labs_gmbh" + }, + "sohu": { + "name": "Sohu", + "categoryId": 7, + "url": "http://www.sohu.com", + "companyId": "sohu" + }, + "sojern": { + "name": "Sojern", + "categoryId": 4, + "url": "http://www.sojern.com/", + "companyId": "sojern" + }, + "sokrati": { + "name": "Sokrati", + "categoryId": 4, + "url": "http://sokrati.com/", + "companyId": "sokrati" + }, + "solads.media": { + "name": "solads.media", + "categoryId": 4, + "url": "http://solads.media/", + "companyId": null + }, + "solaredge": { + "name": "SolarEdge Technologies, Inc.", + "categoryId": 8, + "url": "https://www.solaredge.com/", + "companyId": "solaredge", + "source": "AdGuard" + }, + "solidopinion": { + "name": "SolidOpinion", + "categoryId": 2, + "url": "https://solidopinion.com/", + "companyId": "solidopinion" + }, + "solve_media": { + "name": "Solve Media", + "categoryId": 4, + "url": "http://solvemedia.com/", + "companyId": "solve_media" + }, + "soma_2": { + "name": "SOMA 2", + "categoryId": 4, + "url": "http://www.webcombi.de/", + "companyId": "soma_2_gmbh" + }, + "somoaudience": { + "name": "SoMo Audience", + "categoryId": 4, + "url": "https://somoaudience.com/", + "companyId": "somoaudience" + }, + "sonobi": { + "name": "Sonobi", + "categoryId": 4, + "url": "http://sonobi.com/", + "companyId": "sonobi" + }, + "sonos": { + "name": "Sonos", + "categoryId": 8, + "url": "https://www.sonos.com/", + "companyId": "sonos", + "source": "AdGuard" + }, + "sophus3": { + "name": "Sophus3", + "categoryId": 4, + "url": "http://www.sophus3.com/", + "companyId": "sophus3" + }, + "sortable": { + "name": "Sortable", + "categoryId": 4, + "url": "https://sortable.com/", + "companyId": "sortable" + }, + "soundcloud": { + "name": "SoundCloud", + "categoryId": 0, + "url": "http://soundcloud.com/", + "companyId": "soundcloud" + }, + "sourceknowledge_pixel": { + "name": "SourceKnowledge Pixel", + "categoryId": 4, + "url": "http://www.provenpixel.com/", + "companyId": "sourceknowledge" + }, + "sourcepoint": { + "name": "Sourcepoint", + "categoryId": 4, + "url": "https://www.sourcepoint.com/", + "companyId": "sourcepoint" + }, + "sovrn": { + "name": "sovrn", + "categoryId": 4, + "url": "https://www.sovrn.com/", + "companyId": "sovrn" + }, + "sovrn_viewability_solutions": { + "name": "Sovrn Signal", + "categoryId": 4, + "url": "https://www.sovrn.com/publishers/signal/", + "companyId": "sovrn" + }, + "spark_studios": { + "name": "Spark Studios", + "categoryId": 0, + "url": "http://www.sparkstudios.com/", + "companyId": "spark_studios" + }, + "sparkasse.de": { + "name": "sparkasse.de", + "categoryId": 8, + "url": null, + "companyId": null + }, + "speakpipe": { + "name": "SpeakPipe", + "categoryId": 2, + "url": "http://www.speakpipe.com/", + "companyId": "speakpipe" + }, + "specific_media": { + "name": "Specific Media", + "categoryId": 4, + "url": "http://www.specificmedia.com", + "companyId": "specific_media" + }, + "spectate": { + "name": "Spectate", + "categoryId": 6, + "url": "http://spectate.com/", + "companyId": "spectate" + }, + "speed_shift_media": { + "name": "Speed Shift Media", + "categoryId": 4, + "url": "http://www.speedshiftmedia.com/", + "companyId": "speed_shift_media" + }, + "speedcurve": { + "name": "SpeedCurve", + "categoryId": 6, + "url": "https://speedcurve.com/", + "companyId": null + }, + "speedyads": { + "name": "SpeedyAds", + "categoryId": 4, + "url": "http://www.entireweb.com/speedyads/", + "companyId": "entireweb" + }, + "speee": { + "name": "Speee", + "categoryId": 4, + "url": "https://speee.jp", + "companyId": "speee" + }, + "sphere": { + "name": "Sphere", + "categoryId": 4, + "url": "http://www.sphere.com/", + "companyId": "verizon" + }, + "spheremall": { + "name": "SphereMall", + "categoryId": 6, + "url": "https://spheremall.com", + "companyId": "spheremall" + }, + "sphereup": { + "name": "SphereUp", + "categoryId": 2, + "url": "http://zoomd.com/", + "companyId": "zoomd" + }, + "spicy": { + "name": "Spicy", + "categoryId": 4, + "url": "http://sspicy.ru/#main", + "companyId": "spicy_ssp" + }, + "spider.ad": { + "name": "Spider.Ad", + "categoryId": 4, + "url": "http://spider.ad/", + "companyId": "spider.ad" + }, + "spider_ads": { + "name": "Spider Ads", + "categoryId": 4, + "url": "http://www.spiderads.eu/", + "companyId": "spiderads" + }, + "spinnakr": { + "name": "Spinnakr", + "categoryId": 6, + "url": "http://spinnakr.com/", + "companyId": "spinnakr" + }, + "spokenlayer": { + "name": "SpokenLayer", + "categoryId": 0, + "url": "http://www.spokenlayer.com", + "companyId": "spokenlayer" + }, + "spongecell": { + "name": "Spongecell", + "categoryId": 4, + "url": "http://www.spongecell.com/", + "companyId": "spongecell" + }, + "sponsorads.de": { + "name": "SponsorAds.de", + "categoryId": 4, + "url": "http://sponsorads.de", + "companyId": "sponsorads.de" + }, + "sportsbet_affiliates": { + "name": "Sportsbet Affiliates", + "categoryId": 4, + "url": "http://www.sportsbetaffiliates.com.au/", + "companyId": "sportsbet_affiliates" + }, + "spot.im": { + "name": "Spot.IM", + "categoryId": 7, + "url": "https://www.spot.im/", + "companyId": "spot.im" + }, + "spoteffect": { + "name": "Spoteffect", + "categoryId": 6, + "url": "http://www.spoteffects.com/home/", + "companyId": "spoteffect" + }, + "spotify": { + "name": "Spotify", + "categoryId": 0, + "url": "https://www.spotify.com/", + "companyId": "spotify" + }, + "spotify_embed": { + "name": "Spotify Embed", + "categoryId": 0, + "url": "https://www.spotify.com", + "companyId": "spotify" + }, + "spotscenered.info": { + "name": "spotscenered.info", + "categoryId": 11, + "url": null, + "companyId": null + }, + "spotxchange": { + "name": "SpotX", + "categoryId": 4, + "url": "https://www.spotx.tv/", + "companyId": "rtl_group" + }, + "spoutable": { + "name": "Spoutable", + "categoryId": 4, + "url": "http://spoutable.com/", + "companyId": "spoutable" + }, + "springboard": { + "name": "SpringBoard", + "categoryId": 4, + "url": "http://home.springboardplatform.com/", + "companyId": "springboard" + }, + "springserve": { + "name": "SpringServe", + "categoryId": 4, + "url": "http://springserve.com/", + "companyId": "springserve" + }, + "sprinklr": { + "name": "Sprinklr", + "categoryId": 4, + "url": "https://www.sprinklr.com/", + "companyId": "sprinklr" + }, + "sputnik": { + "name": "Sputnik", + "categoryId": 6, + "url": "https://cnt.sputnik.ru/", + "companyId": "sputnik" + }, + "squadata": { + "name": "Squadata", + "categoryId": 4, + "url": "http://www.email-match.net/", + "companyId": "squadata" + }, + "squarespace.com": { + "name": "Squarespace", + "categoryId": 6, + "url": "https://www.squarespace.com/", + "companyId": null + }, + "srvtrck.com": { + "name": "srvtrck.com", + "categoryId": 12, + "url": null, + "companyId": null + }, + "srvvtrk.com": { + "name": "srvvtrk.com", + "categoryId": 11, + "url": null, + "companyId": null + }, + "sstatic.net": { + "name": "Stack Exchange", + "categoryId": 9, + "url": "https://sstatic.net/", + "companyId": null + }, + "st-hatena": { + "name": "Hatena", + "categoryId": 7, + "url": "http://www.hatena.ne.jp/", + "companyId": "hatena_jp" + }, + "stackadapt": { + "name": "StackAdapt", + "categoryId": 4, + "url": "http://www.stackadapt.com/", + "companyId": "stackadapt" + }, + "stackpathdns.com": { + "name": "StackPath", + "categoryId": 9, + "url": "https://www.stackpath.com/", + "companyId": null + }, + "stailamedia_com": { + "name": "stailamedia.com", + "categoryId": 4, + "url": "http://stailamedia.com/", + "companyId": null + }, + "stalluva.pro": { + "name": "stalluva.pro", + "categoryId": 11, + "url": null, + "companyId": null + }, + "startapp": { + "name": "StartApp", + "categoryId": 4, + "url": "https://www.startapp.com/", + "companyId": null + }, + "stat24": { + "name": "Stat24", + "categoryId": 6, + "url": "http://www.stat24.com/en/", + "companyId": "stat24" + }, + "stat4u": { + "name": "stat4u", + "categoryId": 6, + "url": "http://stat.4u.pl/", + "companyId": "stat4u" + }, + "statcounter": { + "name": "Statcounter", + "categoryId": 6, + "url": "http://www.statcounter.com/", + "companyId": "statcounter" + }, + "stathat": { + "name": "StatHat", + "categoryId": 6, + "url": "http://www.stathat.com/", + "companyId": "stathat" + }, + "statisfy": { + "name": "Statisfy", + "categoryId": 6, + "url": "http://www.statisfy.com/", + "companyId": "statisfy" + }, + "statsy.net": { + "name": "statsy.net", + "categoryId": 11, + "url": null, + "companyId": null + }, + "statuscake": { + "name": "StatusCake", + "categoryId": 6, + "url": "https://www.statuscake.com/", + "companyId": "statuscake" + }, + "statuspage.io": { + "name": "Statuspage", + "categoryId": 2, + "url": "https://www.statuspage.io/", + "companyId": "atlassian" + }, + "stayfriends.de": { + "name": "stayfriends.de", + "categoryId": 8, + "url": "https://www.stayfriends.de/", + "companyId": null + }, + "steelhouse": { + "name": "Steel House Media", + "categoryId": 4, + "url": "https://steelhouse.com/", + "companyId": "steelhouse" + }, + "steepto.com": { + "name": "Steepto", + "categoryId": 4, + "url": "https://www.steepto.com/", + "companyId": null + }, + "stepstone.com": { + "name": "StepStone", + "categoryId": 8, + "url": "https://www.stepstone.com/", + "companyId": null + }, + "stetic": { + "name": "Stetic", + "categoryId": 6, + "url": "https://www.stetic.com/", + "companyId": "stetic" + }, + "stickyads": { + "name": "StickyAds", + "categoryId": 4, + "url": "http://corporate.comcast.com/", + "companyId": "comcast" + }, + "stocktwits": { + "name": "StockTwits", + "categoryId": 2, + "url": "http://stocktwits.com", + "companyId": "stocktwits" + }, + "storify": { + "name": "Storify", + "categoryId": 4, + "url": "https://storify.com/", + "companyId": "adobe" + }, + "storygize": { + "name": "Storygize", + "categoryId": 4, + "url": "http://www.storygize.com/", + "companyId": null + }, + "strands_recommender": { + "name": "Strands Recommender", + "categoryId": 4, + "url": "http://recommender.strands.com", + "companyId": "strands" + }, + "strava": { + "name": "Strava", + "categoryId": 6, + "url": "https://strava.com", + "companyId": "strava" + }, + "streak": { + "name": "Streak", + "categoryId": 2, + "url": "http://www.streak.com/", + "companyId": "streak" + }, + "streamotion": { + "name": "Streamotion", + "categoryId": 0, + "url": "https://streamotion.com.au/", + "companyId": "news_corp", + "source": "AdGuard" + }, + "streamrail.com": { + "name": "StreamRail", + "categoryId": 4, + "url": "https://www.streamrail.com/", + "companyId": "ironsource" + }, + "stride": { + "name": "Stride", + "categoryId": 6, + "url": "https://www.getstride.com/", + "companyId": "stride_software" + }, + "stripchat.com": { + "name": "stripchat.com", + "categoryId": 3, + "url": null, + "companyId": null + }, + "stripe.com": { + "name": "Stripe", + "categoryId": 2, + "url": "https://stripe.com/", + "companyId": null + }, + "stripst.com": { + "name": "stripst.com", + "categoryId": 3, + "url": null, + "companyId": null + }, + "stroer_digital_media": { + "name": "Stroer Digital Media", + "categoryId": 4, + "url": "http://www.stroeer.de/", + "companyId": "stroer" + }, + "strossle": { + "name": "Strossle", + "categoryId": 4, + "url": "https://strossle.com/", + "companyId": "strossle" + }, + "struq": { + "name": "Struq", + "categoryId": 4, + "url": "http://www.struq.com/", + "companyId": "quantcast" + }, + "stumbleupon_widgets": { + "name": "StumbleUpon Widgets", + "categoryId": 7, + "url": "http://www.stumbleupon.com/", + "companyId": "stumbleupon" + }, + "sub2": { + "name": "Sub2", + "categoryId": 4, + "url": "http://www.sub2tech.com/", + "companyId": "sub2" + }, + "sublime_skinz": { + "name": "Sublime", + "categoryId": 4, + "url": "https://sublimeskinz.com/home", + "companyId": "sublime_skinz" + }, + "suggest.io": { + "name": "Suggest.io", + "categoryId": 4, + "url": "https://suggest.io/", + "companyId": "suggest.io" + }, + "sumologic.com": { + "name": "Sumologic", + "categoryId": 6, + "url": "https://www.sumologic.com/", + "companyId": null + }, + "sumome": { + "name": "Sumo", + "categoryId": 6, + "url": "https://sumo.com/", + "companyId": "sumome" + }, + "sundaysky": { + "name": "SundaySky", + "categoryId": 4, + "url": "http://www.sundaysky.com/", + "companyId": "sundaysky" + }, + "supercell": { + "name": "Supercell", + "categoryId": 2, + "url": "https://supercell.com/", + "companyId": "supercell", + "source": "AdGuard" + }, + "supercounters": { + "name": "SuperCounters", + "categoryId": 6, + "url": "http://www.supercounters.com/", + "companyId": "supercounters" + }, + "superfastcdn.com": { + "name": "superfastcdn.com", + "categoryId": 11, + "url": null, + "companyId": null + }, + "supership": { + "name": "Supership", + "categoryId": 4, + "url": "https://supership.jp/en/", + "companyId": "supership" + }, + "supplyframe": { + "name": "SupplyFrame", + "categoryId": 4, + "url": "https://supplyframe.com/", + "companyId": "supplyframe" + }, + "surf_by_surfingbird": { + "name": "Surf by Surfingbird", + "categoryId": 2, + "url": "http://surfingbird.ru/", + "companyId": "surfingbird" + }, + "survata": { + "name": "Survata", + "categoryId": 4, + "url": "https://www.survata.com/", + "companyId": "survata" + }, + "sweettooth": { + "name": "Sweettooth", + "categoryId": 2, + "url": "https://www.sweettoothrewards.com/", + "companyId": "sweet_tooth_rewards" + }, + "swiftype": { + "name": "Swiftype", + "categoryId": 9, + "url": "https://swiftype.com/", + "companyId": "elastic" + }, + "swisscom": { + "name": "Swisscom", + "categoryId": 8, + "url": null, + "companyId": null + }, + "switch_concepts": { + "name": "Switch Concepts", + "categoryId": 4, + "url": "http://www.switchconcepts.co.uk/", + "companyId": "switch_concepts" + }, + "switchtv": { + "name": "Switch Media", + "categoryId": 8, + "url": "https://www.switch.tv/", + "companyId": "switchtv", + "source": "AdGuard" + }, + "swoop": { + "name": "Swoop", + "categoryId": 4, + "url": "http://swoop.com/", + "companyId": "swoop" + }, + "sykes": { + "name": "Sykes", + "categoryId": 6, + "url": "http://www.sykescottages.co.uk/", + "companyId": "sykes_cottages" + }, + "symantec": { + "name": "Symantec (Norton Secured Seal)", + "categoryId": 5, + "url": "https://www.symantec.com/page.jsp?id=ssl-resources&tabID=3#", + "companyId": "symantec" + }, + "symphony_talent": { + "name": "Symphony Talent", + "categoryId": 2, + "url": "http://www.symphonytalent.com/", + "companyId": "symphony_talent" + }, + "synacor": { + "name": "Synacor", + "categoryId": 4, + "url": "https://www.synacor.com/", + "companyId": "synacor" + }, + "syncapse": { + "name": "Syncapse", + "categoryId": 4, + "url": "http://www.clickable.com/", + "companyId": "syncapse" + }, + "synergy-e": { + "name": "Synergy-E", + "categoryId": 4, + "url": "http://synergy-e.com/", + "companyId": "synergy-e" + }, + "t-mobile": { + "name": "Deutsche Telekom", + "categoryId": 8, + "url": null, + "companyId": null + }, + "t8cdn.com": { + "name": "t8cdn.com", + "categoryId": 11, + "url": null, + "companyId": null + }, + "tableteducation.com": { + "name": "tableteducation.com", + "categoryId": 11, + "url": null, + "companyId": null + }, + "taboola": { + "name": "Taboola", + "categoryId": 4, + "url": "http://www.taboola.com", + "companyId": "taboola" + }, + "tacoda": { + "name": "Tacoda", + "categoryId": 4, + "url": "http://www.tacoda.com/", + "companyId": "verizon" + }, + "tag_commander": { + "name": "Commanders Act", + "categoryId": 5, + "url": "https://www.commandersact.com/en/", + "companyId": "tag_commander" + }, + "tagcade": { + "name": "Tagcade", + "categoryId": 4, + "url": "https://www.pubvantage.com/", + "companyId": "pubvantage" + }, + "taggify": { + "name": "Taggify", + "categoryId": 4, + "url": "http://new.taggify.net/", + "companyId": "taggify" + }, + "taggy": { + "name": "TAGGY", + "categoryId": 4, + "url": "http://taggy.jp/", + "companyId": "taggy" + }, + "tagman": { + "name": "TagMan", + "categoryId": 5, + "url": "http://www.tagman.com/", + "companyId": "ensighten" + }, + "tail_target": { + "name": "Tail", + "categoryId": 6, + "url": "https://www.tail.digital/", + "companyId": "tail.digital" + }, + "tailsweep": { + "name": "Tailsweep", + "categoryId": 4, + "url": "http://www.tailsweep.se/", + "companyId": "tailsweep" + }, + "tamedia.ch": { + "name": "Tamedia", + "categoryId": 4, + "url": "https://www.tamedia.ch/", + "companyId": null + }, + "tanx": { + "name": "Tanx", + "categoryId": 4, + "url": "http://tanx.com/", + "companyId": "tanx" + }, + "taobao": { + "name": "Taobao", + "categoryId": 4, + "url": "https://world.taobao.com/", + "companyId": "softbank", + "source": "AdGuard" + }, + "tapad": { + "name": "Tapad", + "categoryId": 4, + "url": "http://www.tapad.com/", + "companyId": "telenor" + }, + "tapinfluence": { + "name": "TapInfluence", + "categoryId": 4, + "url": "http://theblogfrog.com/", + "companyId": "tapinfluence" + }, + "tarafdari": { + "name": "Tarafdari", + "categoryId": 4, + "url": "https://www.tarafdari.com/", + "companyId": "tarafdari" + }, + "target_2_sell": { + "name": "Target 2 Sell", + "categoryId": 4, + "url": "http://www.target2sell.com/en/", + "companyId": "target_2_sell" + }, + "target_circle": { + "name": "Target Circle", + "categoryId": 6, + "url": "http://targetcircle.com", + "companyId": "target_circle" + }, + "target_fuel": { + "name": "Target Fuel", + "categoryId": 6, + "url": "http://targetfuel.com/", + "companyId": "target_fuel" + }, + "tawk": { + "name": "Tawk", + "categoryId": 2, + "url": "https://www.tawk.to/", + "companyId": "tawk" + }, + "tbn.ru": { + "name": "TBN.ru", + "categoryId": 4, + "url": "http://www.agava.ru", + "companyId": "agava" + }, + "tchibo_de": { + "name": "tchibo.de", + "categoryId": 8, + "url": "http://tchibo.de/", + "companyId": null + }, + "tdsrmbl_net": { + "name": "tdsrmbl.net", + "categoryId": 8, + "url": null, + "companyId": null + }, + "teads": { + "name": "Teads", + "categoryId": 4, + "url": "http://teads.tv/", + "companyId": "teads" + }, + "tealeaf": { + "name": "Tealeaf", + "categoryId": 6, + "url": "https://www.ibm.com/digital-marketing", + "companyId": "ibm" + }, + "tealium": { + "name": "Tealium", + "categoryId": 5, + "url": "http://www.tealium.com/", + "companyId": "tealium" + }, + "teaser.cc": { + "name": "Teaser.cc", + "categoryId": 4, + "url": "http://www.teaser.cc/", + "companyId": "teaser.cc" + }, + "tedemis": { + "name": "Tedemis", + "categoryId": 4, + "url": "http://www.tedemis.com", + "companyId": "tedemis" + }, + "teletech": { + "name": "TeleTech", + "categoryId": 4, + "url": "http://www.webmetro.com/whoweare/technology.aspx", + "companyId": "teletech" + }, + "telstra": { + "name": "Telstra", + "categoryId": 8, + "url": "https://www.telstra.com.au/", + "companyId": "telstra", + "source": "AdGuard" + }, + "tender": { + "name": "Tender", + "categoryId": 2, + "url": "http://www.tenderapp.com/", + "companyId": "tender" + }, + "tensitionschoo.club": { + "name": "tensitionschoo.club", + "categoryId": 11, + "url": null, + "companyId": null + }, + "teroti": { + "name": "Teroti", + "categoryId": 4, + "url": "http://www.teroti.com/", + "companyId": "teroti" + }, + "terren": { + "name": "Terren", + "categoryId": 4, + "url": "http://www.webterren.com/", + "companyId": "terren" + }, + "teufel.de": { + "name": "teufel.de", + "categoryId": 8, + "url": "https://www.teufel.de/", + "companyId": null + }, + "the_adex": { + "name": "The ADEX", + "categoryId": 4, + "url": "http://www.theadex.com/", + "companyId": "prosieben_sat1" + }, + "the_deck": { + "name": "The DECK", + "categoryId": 4, + "url": "http://decknetwork.net/", + "companyId": "the_deck" + }, + "the_guardian": { + "name": "The Guardian", + "categoryId": 8, + "url": "https://www.theguardian.com/", + "companyId": "the_guardian" + }, + "the_reach_group": { + "name": "The Reach Group", + "categoryId": 4, + "url": "http://www.redvertisment.com", + "companyId": "the_reach_group" + }, + "the_search_agency": { + "name": "The Search Agency", + "categoryId": 4, + "url": "http://www.thesearchagency.com/", + "companyId": "the_search_agency" + }, + "the_sun": { + "name": "The Sun", + "categoryId": 8, + "url": "https://www.thesun.co.uk/", + "companyId": "the_sun" + }, + "the_weather_company": { + "name": "The Weather Company", + "categoryId": 4, + "url": "http://www.theweathercompany.com/", + "companyId": "ibm" + }, + "themoviedb": { + "name": "The Movie DB", + "categoryId": 8, + "url": "https://www.themoviedb.org/", + "companyId": "themoviedb" + }, + "thinglink": { + "name": "ThingLink", + "categoryId": 4, + "url": "http://www.thinglink.com/", + "companyId": "thinglink" + }, + "threatmetrix": { + "name": "ThreatMetrix", + "categoryId": 6, + "url": "http://threatmetrix.com/", + "companyId": "threatmetrix" + }, + "tidbit": { + "name": "Tidbit", + "categoryId": 2, + "url": "http://tidbit.co.in/", + "companyId": "tidbit" + }, + "tidio": { + "name": "Tidio", + "categoryId": 2, + "url": "https://www.tidio.com/", + "companyId": "tidio_chat" + }, + "tiktok_analytics": { + "name": "TikTok Analytics", + "categoryId": 6, + "url": "https://analytics.tiktok.com", + "companyId": "bytedance_inc" + }, + "tiller": { + "name": "Tiller", + "categoryId": 4, + "url": "https://www.tiller.com/", + "companyId": "tiller" + }, + "timezondb": { + "name": "TimezonDB", + "categoryId": 4, + "url": "https://timezonedb.com/", + "companyId": "timezonedb" + }, + "tinypass": { + "name": "Piano", + "categoryId": 5, + "url": "https://piano.io/", + "companyId": "piano" + }, + "tisoomi": { + "name": "Tisoomi", + "categoryId": 4, + "url": "https://tisoomi-services.com/", + "companyId": null + }, + "tlv_media": { + "name": "TLV Media", + "categoryId": 4, + "url": "http://www.tlvmedia.com", + "companyId": "tlvmedia" + }, + "tns": { + "name": "TNS", + "categoryId": 6, + "url": "http://www.tnsglobal.com/", + "companyId": "wpp" + }, + "tomnewsupdate.info": { + "name": "tomnewsupdate.info", + "categoryId": 12, + "url": null, + "companyId": null + }, + "tomorrow_focus": { + "name": "Tomorrow Focus", + "categoryId": 4, + "url": "http://www.tomorrow-focus.com", + "companyId": "hubert_burda_media" + }, + "tonefuse": { + "name": "ToneFuse", + "categoryId": 4, + "url": "http://www.tonefuse.com/", + "companyId": "tonefuse" + }, + "top_mail": { + "name": "Top Mail", + "categoryId": 6, + "url": "https://corp.megafon.com/", + "companyId": "megafon" + }, + "toplist.cz": { + "name": "toplist.cz", + "categoryId": 11, + "url": null, + "companyId": null + }, + "toponclick_com": { + "name": "toponclick.com", + "categoryId": 11, + "url": null, + "companyId": null + }, + "topsy": { + "name": "Topsy", + "categoryId": 4, + "url": "http://topsy.com/", + "companyId": "topsy" + }, + "torbit": { + "name": "Torbit", + "categoryId": 6, + "url": "http://torbit.com/", + "companyId": "torbit" + }, + "toro": { + "name": "TORO", + "categoryId": 4, + "url": "http://toroadvertising.com/", + "companyId": "toro_advertising" + }, + "tororango.com": { + "name": "tororango.com", + "categoryId": 11, + "url": null, + "companyId": null + }, + "total_media": { + "name": "Total Media", + "categoryId": 4, + "url": "http://www.totalmedia.co.il/eng/", + "companyId": "total_media" + }, + "touchcommerce": { + "name": "Nuance", + "categoryId": 2, + "url": "https://www.nuance.com/omni-channel-customer-engagement/digital.html", + "companyId": "touchcommerce" + }, + "tovarro.com": { + "name": "Tovarro", + "categoryId": 4, + "url": "https://www.tovarro.com/", + "companyId": null + }, + "tp-cdn.com": { + "name": "TrialPay", + "categoryId": 4, + "url": "https://www.trialpay.com/", + "companyId": null + }, + "tracc.it": { + "name": "Kiwe.io", + "categoryId": 6, + "url": "https://www.kiwe.io/", + "companyId": null + }, + "tracemyip": { + "name": "TraceMyIP", + "categoryId": 4, + "url": "http://www.tracemyip.org/", + "companyId": "tracemyip" + }, + "traceview": { + "name": "TraceView", + "categoryId": 6, + "url": "http://www.appneta.com/", + "companyId": "appneta" + }, + "track_duck": { + "name": "Track Duck", + "categoryId": 6, + "url": "https://trackduck.com/", + "companyId": "track_duck" + }, + "trackjs": { + "name": "TrackJS", + "categoryId": 6, + "url": "http://www.trackjs.com/", + "companyId": "trackjs" + }, + "trackset_conversionlab": { + "name": "Trackset ConversionLab", + "categoryId": 4, + "url": "http://www.trackset.com/", + "companyId": "trackset" + }, + "trackuity": { + "name": "Trackuity", + "categoryId": 2, + "url": "http://www.trackuity.com/", + "companyId": "trackuity" + }, + "tradedesk": { + "name": "TradeDesk", + "categoryId": 4, + "url": "http://www.thetradedesk.com/", + "companyId": "the_trade_desk" + }, + "tradedoubler": { + "name": "TradeDoubler", + "categoryId": 4, + "url": "http://www.tradedoubler.com/", + "companyId": "tradedoubler" + }, + "tradelab": { + "name": "Tradelab", + "categoryId": 4, + "url": "http://www.tradelab.fr/", + "companyId": "tradelab" + }, + "tradetracker": { + "name": "TradeTracker", + "categoryId": 4, + "url": "http://www.tradetracker.com", + "companyId": "tradetracker" + }, + "traffective": { + "name": "Traffective", + "categoryId": 4, + "url": "https://traffective.com/", + "companyId": null + }, + "traffic_fuel": { + "name": "Traffic Fuel", + "categoryId": 4, + "url": "https://trafficfuel.com/", + "companyId": "traffic_fuel" + }, + "traffic_revenue": { + "name": "Traffic Revenue", + "categoryId": 4, + "url": "http://www.trafficrevenue.net/", + "companyId": "traffic_revenue" + }, + "traffic_stars": { + "name": "Traffic Stars", + "categoryId": 3, + "url": "https://trafficstars.com/#index_page", + "companyId": "traffic_stars" + }, + "trafficbroker": { + "name": "TrafficBroker", + "categoryId": 4, + "url": "http://trafficbroker.com/", + "companyId": "trafficbroker" + }, + "trafficfabrik.com": { + "name": "Traffic Fabrik", + "categoryId": 3, + "url": "https://www.trafficfabrik.com/", + "companyId": null + }, + "trafficfactory": { + "name": "Traffic Factory", + "categoryId": 4, + "url": "https://www.trafficfactory.biz/", + "companyId": null + }, + "trafficforce": { + "name": "TrafficForce", + "categoryId": 4, + "url": "http://www.trafficforce.com/", + "companyId": "trafficforce" + }, + "traffichaus": { + "name": "TrafficHaus", + "categoryId": 3, + "url": "http://www.traffichaus.com", + "companyId": "traffichaus" + }, + "trafficjunky": { + "name": "TrafficJunky", + "categoryId": 3, + "url": "http://www.trafficjunky.net/", + "companyId": "trafficjunky" + }, + "traffiliate": { + "name": "Traffiliate", + "categoryId": 4, + "url": "http://www.traffiliate.com/", + "companyId": "dsnr_media_group" + }, + "trafic": { + "name": "Trafic", + "categoryId": 6, + "url": "http://www.trafic.ro/", + "companyId": "trafic" + }, + "trafmag.com": { + "name": "TrafMag", + "categoryId": 4, + "url": "https://trafmag.com/", + "companyId": "trafmag" + }, + "transcend": { + "name": "Transcend Consent", + "categoryId": 14, + "url": "https://transcend.io/consent/", + "companyId": "transcend" + }, + "transcend_telemetry": { + "name": "Transcend Telemetry", + "categoryId": 6, + "url": "https://transcend.io", + "companyId": "transcend" + }, + "transmatic": { + "name": "Transmatic", + "categoryId": 6, + "url": "http://www.transmatico.com/en/", + "companyId": "transmatico" + }, + "travel_audience": { + "name": "Travel Audience", + "categoryId": 6, + "url": "https://travelaudience.com/", + "companyId": "travel_audience" + }, + "trbo": { + "name": "trbo", + "categoryId": 4, + "url": "http://www.trbo.com/", + "companyId": "trbo" + }, + "treasuredata": { + "name": "Treasure Data", + "categoryId": 6, + "url": "https://www.treasuredata.com/", + "companyId": "arm" + }, + "tremor_video": { + "name": "Tremor Video", + "categoryId": 0, + "url": "http://www.tremormedia.com/", + "companyId": "tremor_video" + }, + "trendcounter": { + "name": "trendcounter", + "categoryId": 6, + "url": "http://www.trendcounter.com/", + "companyId": "trendcounter" + }, + "trendemon": { + "name": "TrenDemon", + "categoryId": 6, + "url": "http://trendemon.com", + "companyId": "trendemon" + }, + "tribal_fusion": { + "name": "Tribal Fusion", + "categoryId": 4, + "url": "http://www.tribalfusion.com/", + "companyId": "exponential_interactive" + }, + "tribal_fusion_notice": { + "name": "Tribal Fusion Notice", + "categoryId": 4, + "url": "http://www.tribalfusion.com", + "companyId": "exponential_interactive" + }, + "triblio": { + "name": "Triblio", + "categoryId": 6, + "url": "https://triblio.com/", + "companyId": "triblio" + }, + "trigger_mail_marketing": { + "name": "Trigger Mail Marketing", + "categoryId": 4, + "url": "http://www.triggeremailmarketing.com/", + "companyId": "trigger_mail_marketing" + }, + "triggerbee": { + "name": "Triggerbee", + "categoryId": 2, + "url": "https://triggerbee.com/", + "companyId": "triggerbee" + }, + "tripadvisor": { + "name": "TripAdvisor", + "categoryId": 8, + "url": "http://iac.com/", + "companyId": "iac_apps" + }, + "triplelift": { + "name": "TripleLift", + "categoryId": 4, + "url": "http://triplelift.com/", + "companyId": "triplelift" + }, + "triptease": { + "name": "Triptease", + "categoryId": 2, + "url": "https://www.triptease.com", + "companyId": "triptease" + }, + "triton_digital": { + "name": "Triton Digital", + "categoryId": 0, + "url": "http://www.tritondigital.com/", + "companyId": "triton_digital" + }, + "trovus_revelations": { + "name": "Trovus Revelations", + "categoryId": 4, + "url": "http://www.trovus.co.uk/", + "companyId": "trovus_revelations" + }, + "trsv3.com": { + "name": "trsv3.com", + "categoryId": 11, + "url": null, + "companyId": null + }, + "true_fit": { + "name": "True Fit", + "categoryId": 4, + "url": "https://www.truefit.com/", + "companyId": "true_fit" + }, + "trueanthem": { + "name": "True Anthem", + "categoryId": 4, + "url": "https://www.trueanthem.com/", + "companyId": "trueanthem" + }, + "trueffect": { + "name": "TruEffect", + "categoryId": 4, + "url": "http://www.trueffect.com/", + "companyId": "trueffect" + }, + "truehits.net": { + "name": "Truehits.net", + "categoryId": 6, + "url": "http://truehits.net/", + "companyId": "truehits.net" + }, + "trumba": { + "name": "Trumba", + "categoryId": 4, + "url": "http://www.trumba.com", + "companyId": "trumba" + }, + "truoptik": { + "name": "Tru Optik", + "categoryId": 6, + "url": "http://truoptik.com/", + "companyId": null + }, + "trustarc": { + "name": "TrustArc", + "categoryId": 5, + "url": "http://www.trustarc.com/", + "companyId": "trustarc" + }, + "truste_consent": { + "name": "Truste Consent", + "categoryId": 5, + "url": "http://www.trustarc.com/", + "companyId": "trustarc" + }, + "truste_notice": { + "name": "TRUSTe Notice", + "categoryId": 5, + "url": "http://www.truste.com/", + "companyId": "trustarc" + }, + "truste_seal": { + "name": "TRUSTe Seal", + "categoryId": 5, + "url": "http://www.truste.com/", + "companyId": "trustarc" + }, + "trusted_shops": { + "name": "Trusted Shops", + "categoryId": 5, + "url": "http://www.trustedshops.com/", + "companyId": "trusted_shops" + }, + "trustev": { + "name": "Trustev", + "categoryId": 6, + "url": "http://www.trustev.com/", + "companyId": "trustev" + }, + "trustlogo": { + "name": "TrustLogo", + "categoryId": 5, + "url": "http://www.comodo.com/", + "companyId": "comodo" + }, + "trustpilot": { + "name": "Trustpilot", + "categoryId": 2, + "url": "http://www.trustpilot.com", + "companyId": "trustpilot" + }, + "trustwave.com": { + "name": "Trustwave", + "categoryId": 8, + "url": "https://www.trustwave.com/home/", + "companyId": null + }, + "tubecorporate": { + "name": "Tube Corporate", + "categoryId": 3, + "url": "https://tubecorporate.com/", + "companyId": null + }, + "tubecup.org": { + "name": "tubecup.org", + "categoryId": 3, + "url": null, + "companyId": null + }, + "tubemogul": { + "name": "TubeMogul", + "categoryId": 4, + "url": "http://tubemogul.com/", + "companyId": "tubemogul" + }, + "tumblr_analytics": { + "name": "Tumblr Analytics", + "categoryId": 6, + "url": "https://www.verizon.com/", + "companyId": "verizon" + }, + "tumblr_buttons": { + "name": "Tumblr Buttons", + "categoryId": 7, + "url": "http://www.tumblr.com/", + "companyId": "verizon" + }, + "tumblr_dashboard": { + "name": "Tumblr Dashboard", + "categoryId": 7, + "url": "http://www.tumblr.com/", + "companyId": "verizon" + }, + "tune_in": { + "name": "Tune In", + "categoryId": 0, + "url": "http://tunein.com/", + "companyId": "tunein" + }, + "turbo": { + "name": "Turbo", + "categoryId": 4, + "url": "http://www.turboadv.com/", + "companyId": "turbo" + }, + "turn_inc.": { + "name": "Turn Inc.", + "categoryId": 4, + "url": "https://www.amobee.com/company/", + "companyId": "singtel" + }, + "turner": { + "name": "Warner Media", + "categoryId": 6, + "url": "https://www.warnermedia.com/", + "companyId": "turner" + }, + "turnsocial": { + "name": "TurnSocial", + "categoryId": 7, + "url": "http://turnsocial.com/", + "companyId": "turnsocial" + }, + "turnto": { + "name": "TurnTo", + "categoryId": 2, + "url": "http://www.turntonetworks.com/", + "companyId": "turnto_networks" + }, + "tvsquared.com": { + "name": "TVSquared", + "categoryId": 4, + "url": "http://tvsquared.com/", + "companyId": "tvsquared" + }, + "tweetboard": { + "name": "Tweetboard", + "categoryId": 7, + "url": "http://tweetboard.com/alpha/", + "companyId": "tweetboard" + }, + "tweetmeme": { + "name": "TweetMeme", + "categoryId": 7, + "url": "http://tweetmeme.com/", + "companyId": "tweetmeme" + }, + "twenga": { + "name": "Twenga Solutions", + "categoryId": 4, + "url": "https://www.twenga-solutions.com/", + "companyId": null + }, + "twiago": { + "name": "Twiago", + "categoryId": 4, + "url": "https://www.twiago.com/", + "companyId": "twiago" + }, + "twine": { + "name": "Twine", + "categoryId": 6, + "url": "http://twinedigital.com/", + "companyId": "twine_digital" + }, + "twitch.tv": { + "name": "Twitch", + "categoryId": 0, + "url": "https://www.twitch.tv/", + "companyId": "amazon_associates" + }, + "twitch_cdn": { + "name": "Twitch CDN", + "categoryId": 0, + "url": "https://www.twitch.tv/", + "companyId": "amazon_associates" + }, + "twitter": { + "name": "X (formerly Twitter)", + "categoryId": 7, + "url": "https://twitter.com", + "companyId": "twitter", + "source": "AdGuard" + }, + "twitter_ads": { + "name": "Twitter Advertising", + "categoryId": 4, + "url": "http://twitter.com/widgets", + "companyId": "twitter" + }, + "twitter_analytics": { + "name": "Twitter Analytics", + "categoryId": 6, + "url": "https://twitter.com", + "companyId": "twitter" + }, + "twitter_badge": { + "name": "Twitter Badge", + "categoryId": 7, + "url": "http://twitter.com/widgets", + "companyId": "twitter" + }, + "twitter_button": { + "name": "Twitter Button", + "categoryId": 7, + "url": "http://twitter.com", + "companyId": "twitter" + }, + "twitter_conversion_tracking": { + "name": "Twitter Conversion Tracking", + "categoryId": 4, + "url": "https://twitter.com/", + "companyId": "twitter" + }, + "twitter_for_business": { + "name": "Twitter for Business", + "categoryId": 4, + "url": "https://business.twitter.com/", + "companyId": "twitter" + }, + "twitter_syndication": { + "name": "Twitter Syndication", + "categoryId": 7, + "url": "https://twitter.com", + "companyId": "twitter" + }, + "twittercounter": { + "name": "TwitterCounter", + "categoryId": 6, + "url": "http://twittercounter.com/", + "companyId": "twitter_counter" + }, + "twyn": { + "name": "Twyn", + "categoryId": 4, + "url": "http://www.twyn.com", + "companyId": "twyn" + }, + "txxx.com": { + "name": "txxx.com", + "categoryId": 8, + "url": "https://txxx.com", + "companyId": null + }, + "tynt": { + "name": "33Across", + "categoryId": 4, + "url": "http://www.tynt.com/", + "companyId": "33across" + }, + "typeform": { + "name": "Typeform", + "categoryId": 2, + "url": "https://www.typeform.com/", + "companyId": null + }, + "typepad_stats": { + "name": "Typepad Stats", + "categoryId": 6, + "url": "http://www.typepad.com/features/statistics.ht", + "companyId": "typepad" + }, + "typography.com": { + "name": "Webfonts by Hoefler&Co", + "categoryId": 9, + "url": "https://www.typography.com/", + "companyId": null + }, + "tyroo": { + "name": "Tyroo", + "categoryId": 7, + "url": "http://www.tyroo.com/", + "companyId": "tyroo" + }, + "tzetze": { + "name": "TzeTze", + "categoryId": 2, + "url": "http://www.tzetze.it/", + "companyId": "tzetze" + }, + "ubersetzung-app.com": { + "name": "ubersetzung-app.com", + "categoryId": 12, + "url": "https://www.ubersetzung-app.com/", + "companyId": null + }, + "ubuntu": { + "name": "Ubuntu", + "categoryId": 8, + "url": "https://ubuntu.com/", + "companyId": "canonical", + "source": "AdGuard" + }, + "ucfunnel": { + "name": "ucfunnel", + "categoryId": 4, + "url": "https://www.ucfunnel.com/", + "companyId": "ucfunnel" + }, + "ucoz": { + "name": "uCoz", + "categoryId": 6, + "url": "http://www.ucoz.net/", + "companyId": "ucoz" + }, + "uliza": { + "name": "Uliza", + "categoryId": 4, + "url": "http://uliza.jp/index.html", + "companyId": "uliza" + }, + "umbel": { + "name": "Umbel", + "categoryId": 6, + "url": "http://umbel.com", + "companyId": "umbel" + }, + "umebiggestern.club": { + "name": "umebiggestern.club", + "categoryId": 11, + "url": null, + "companyId": null + }, + "unanimis": { + "name": "Unanimis", + "categoryId": 4, + "url": "http://www.unanimis.co.uk/", + "companyId": "switch_concepts" + }, + "unbounce": { + "name": "Unbounce", + "categoryId": 6, + "url": "http://unbounce.com/", + "companyId": "unbounce" + }, + "unbxd": { + "name": "UNBXD", + "categoryId": 6, + "url": "http://unbxd.com/", + "companyId": "unbxd" + }, + "under-box.com": { + "name": "under-box.com", + "categoryId": 12, + "url": null, + "companyId": null + }, + "undercomputer.com": { + "name": "undercomputer.com", + "categoryId": 11, + "url": null, + "companyId": null + }, + "underdog_media": { + "name": "Underdog Media", + "categoryId": 4, + "url": "http://www.underdogmedia.com", + "companyId": "underdog_media" + }, + "undertone": { + "name": "Undertone", + "categoryId": 4, + "url": "https://www.undertone.com/", + "companyId": "perion" + }, + "unica": { + "name": "Unica", + "categoryId": 2, + "url": "http://www.unica.com/", + "companyId": "ibm" + }, + "unister": { + "name": "Unister", + "categoryId": 6, + "url": "http://www.unister.de/", + "companyId": "unister" + }, + "unite": { + "name": "Unite", + "categoryId": 4, + "url": "http://unite.me/#", + "companyId": "unite" + }, + "united_digital_group": { + "name": "United Digital Group", + "categoryId": 4, + "url": "https://www.udg.de/", + "companyId": "united_digital_group" + }, + "united_internet_media_gmbh": { + "name": "United Internet Media GmbH", + "categoryId": 4, + "url": "https://www.united-internet.de/", + "companyId": "united_internet" + }, + "unity": { + "name": "Unity", + "categoryId": 8, + "url": "https://unity.com/", + "companyId": "unity", + "source": "AdGuard" + }, + "unity_ads": { + "name": "Unity Ads", + "categoryId": 4, + "url": "https://unity.com/products/unity-ads", + "companyId": "unity", + "source": "AdGuard" + }, + "univide": { + "name": "Univide", + "categoryId": 4, + "url": "http://www.oracle.com/", + "companyId": "oracle" + }, + "unpkg.com": { + "name": "unpkg", + "categoryId": 9, + "url": "https://unpkg.com/#/", + "companyId": null + }, + "unruly_media": { + "name": "Unruly Media", + "categoryId": 4, + "url": "http://www.unrulymedia.com/", + "companyId": "unruly" + }, + "untriel_finger_printing": { + "name": "Untriel Finger Printing", + "categoryId": 6, + "url": "https://www.untriel.nl/", + "companyId": "untriel" + }, + "upland_clickability_beacon": { + "name": "Upland Clickability Beacon", + "categoryId": 4, + "url": "http://www.clickability.com/", + "companyId": "upland_software" + }, + "uppr.de": { + "name": "uppr GmbH", + "categoryId": 4, + "url": "https://uppr.de/", + "companyId": null + }, + "upravel.com": { + "name": "upravel.com", + "categoryId": 11, + "url": null, + "companyId": null + }, + "upsellit": { + "name": "UpSellit", + "categoryId": 2, + "url": "http://www.upsellit.com", + "companyId": "upsellit" + }, + "upsight": { + "name": "Upsight", + "categoryId": 6, + "url": "http://www.upsight.com/", + "companyId": "upsight" + }, + "uptain": { + "name": "Uptain", + "categoryId": 6, + "url": "http://www.uptain.de/en/regaining-lost-customers/", + "companyId": "uptain" + }, + "uptolike.com": { + "name": "Uptolike", + "categoryId": 7, + "url": "https://www.uptolike.com/", + "companyId": "uptolike" + }, + "uptrends": { + "name": "Uptrends", + "categoryId": 6, + "url": "http://www.uptrends.com/", + "companyId": "uptrends" + }, + "urban-media.com": { + "name": "Urban Media GmbH", + "categoryId": 4, + "url": "https://www.urban-media.com/", + "companyId": null + }, + "urban_airship": { + "name": "Urban Airship", + "categoryId": 6, + "url": "https://www.urbanairship.com/", + "companyId": "urban_airship" + }, + "usability_tools": { + "name": "Usability Tools", + "categoryId": 6, + "url": "http://usabilitytools.com/", + "companyId": "usability_tools" + }, + "usabilla": { + "name": "Usabilla", + "categoryId": 2, + "url": "https://usabilla.com/", + "companyId": "usabilla" + }, + "usemax": { + "name": "Usemax", + "categoryId": 4, + "url": "http://www.usemax.de", + "companyId": "usemax" + }, + "usemessages.com": { + "name": "usemessages.com", + "categoryId": 11, + "url": null, + "companyId": null + }, + "usercycle": { + "name": "USERcycle", + "categoryId": 6, + "url": "http://usercycle.com/", + "companyId": "usercycle" + }, + "userdive": { + "name": "USERDIVE", + "categoryId": 6, + "url": "http://userdive.com/", + "companyId": "userdive" + }, + "userecho": { + "name": "UserEcho", + "categoryId": 2, + "url": "http://userecho.com", + "companyId": "userecho" + }, + "userlike.com": { + "name": "Userlike", + "categoryId": 2, + "url": "https://www.userlike.com/", + "companyId": "userlike" + }, + "userpulse": { + "name": "UserPulse", + "categoryId": 2, + "url": "http://www.userpulse.com/", + "companyId": "userpulse" + }, + "userreplay": { + "name": "UserReplay", + "categoryId": 6, + "url": "https://www.userreplay.com/", + "companyId": "userreplay" + }, + "userreport": { + "name": "UserReport", + "categoryId": 2, + "url": "http://www.userreport.com/", + "companyId": "userreport" + }, + "userrules": { + "name": "UserRules", + "categoryId": 2, + "url": "http://www.userrules.com/", + "companyId": "userrules_software" + }, + "usersnap": { + "name": "Usersnap", + "categoryId": 2, + "url": "http://usersnap.com/", + "companyId": "usersnap" + }, + "uservoice": { + "name": "UserVoice", + "categoryId": 2, + "url": "http://uservoice.com/", + "companyId": "uservoice" + }, + "userzoom.com": { + "name": "UserZoom", + "categoryId": 2, + "url": "https://www.userzoom.com/", + "companyId": "userzoom" + }, + "usocial": { + "name": "Usocial", + "categoryId": 7, + "url": "https://usocial.pro/en", + "companyId": "usocial" + }, + "utarget": { + "name": "uTarget", + "categoryId": 4, + "url": "http://utarget.ru/", + "companyId": "utarget" + }, + "uuidksinc.net": { + "name": "uuidksinc.net", + "categoryId": 11, + "url": null, + "companyId": null + }, + "v12_group": { + "name": "V12 Group", + "categoryId": 6, + "url": null, + "companyId": null + }, + "vacaneedasap.com": { + "name": "vacaneedasap.com", + "categoryId": 11, + "url": null, + "companyId": null + }, + "valassis": { + "name": "Valassis", + "categoryId": 4, + "url": "http://www.brand.net/", + "companyId": "valassis" + }, + "validclick": { + "name": "ValidClick", + "categoryId": 4, + "url": "http://inuvo.com/", + "companyId": "inuvo" + }, + "valiton": { + "name": "Valiton", + "categoryId": 4, + "url": "https://www.valiton.com/", + "companyId": "hubert_burda_media" + }, + "valueclick_media": { + "name": "ValueClick Media", + "categoryId": 4, + "url": "https://www.conversantmedia.eu/", + "companyId": "conversant" + }, + "valuecommerce": { + "name": "ValueCommerce", + "categoryId": 4, + "url": "https://www.valuecommerce.ne.jp", + "companyId": "valuecommerce" + }, + "valued_opinions": { + "name": "Valued Opinions", + "categoryId": 4, + "url": "http://valuedopinions.com", + "companyId": "valued_opinions" + }, + "vanksen": { + "name": "Vanksen", + "categoryId": 4, + "url": "http://www.buzzparadise.com/", + "companyId": "vanksen" + }, + "varick_media_management": { + "name": "Varick Media Management", + "categoryId": 4, + "url": "http://www.varickmm.com/", + "companyId": "varick_media_management" + }, + "vcita": { + "name": "Vcita", + "categoryId": 6, + "url": "https://www.vcita.com/", + "companyId": "vcita" + }, + "vcommission": { + "name": "vCommission", + "categoryId": 4, + "url": "http://www.vcommission.com/", + "companyId": "vcommission" + }, + "vdopia": { + "name": "Vdopia", + "categoryId": 4, + "url": "http://mobile.vdopia.com/", + "companyId": "vdopia" + }, + "ve_interactive": { + "name": "Ve Interactive", + "categoryId": 4, + "url": "https://www.veinteractive.com", + "companyId": "ve_interactive" + }, + "vee24": { + "name": "VEE24", + "categoryId": 0, + "url": "https://www.vee24.com/", + "companyId": "vee24" + }, + "velocecdn.com": { + "name": "velocecdn.com", + "categoryId": 11, + "url": null, + "companyId": null + }, + "velti_mgage_visualize": { + "name": "Velti mGage Visualize", + "categoryId": 4, + "url": "http://www.velti.com/", + "companyId": "velti" + }, + "vendemore": { + "name": "Vendemore", + "categoryId": 1, + "url": "https://vendemore.com/", + "companyId": "ratos" + }, + "venturead.com": { + "name": "venturead.com", + "categoryId": 11, + "url": null, + "companyId": null + }, + "venyoo": { + "name": "Venyoo", + "categoryId": 2, + "url": "http://venyoo.ru/", + "companyId": "venyoo" + }, + "veoxa": { + "name": "Veoxa", + "categoryId": 4, + "url": "http://www.veoxa.com/", + "companyId": "veoxa" + }, + "vergic.com": { + "name": "Vergic", + "categoryId": 1, + "url": "https://www.vergic.com/", + "companyId": null + }, + "vero": { + "name": "Vero", + "categoryId": 4, + "url": "http://www.getvero.com/", + "companyId": "vero" + }, + "vertical_acuity": { + "name": "Vertical Acuity", + "categoryId": 4, + "url": "http://www.verticalacuity.com/", + "companyId": "outbrain" + }, + "vertical_leap": { + "name": "Vertical Leap", + "categoryId": 4, + "url": "http://www.vertical-leap.co.uk/", + "companyId": "vertical_leap" + }, + "verticalresponse": { + "name": "VerticalResponse", + "categoryId": 4, + "url": "http://www.verticalresponse.com", + "companyId": "verticalresponse" + }, + "verticalscope": { + "name": "VerticalScope", + "categoryId": 4, + "url": "http://www.verticalscope.com", + "companyId": "verticalscope" + }, + "vertoz": { + "name": "Vertoz", + "categoryId": 4, + "url": "http://www.vertoz.com/", + "companyId": "vertoz" + }, + "veruta": { + "name": "Veruta", + "categoryId": 4, + "url": "http://www.veruta.com/", + "companyId": "veruta" + }, + "verve_mobile": { + "name": "Verve Mobile", + "categoryId": 4, + "url": "http://www.vervemobile.com/", + "companyId": "verve_mobile" + }, + "vg_wort": { + "name": "VG Wort", + "categoryId": 6, + "url": "https://tom.vgwort.de/portal/showHelp", + "companyId": "vg_wort" + }, + "vi": { + "name": "Vi", + "categoryId": 4, + "url": "http://www.vi.ru/", + "companyId": "vi" + }, + "viacom_tag_container": { + "name": "Viacom Tag Container", + "categoryId": 4, + "url": "http://www.viacom.com/", + "companyId": "viacom" + }, + "viafoura": { + "name": "Viafoura", + "categoryId": 4, + "url": "http://www.viafoura.com/", + "companyId": "viafoura" + }, + "vibrant_ads": { + "name": "Vibrant Ads", + "categoryId": 4, + "url": "http://www.vibrantmedia.com/", + "companyId": "vibrant_media" + }, + "vicomi.com": { + "name": "Vicomi", + "categoryId": 6, + "url": "http://www.vicomi.com/", + "companyId": "vicomi" + }, + "vidazoo.com": { + "name": "Vidazoo", + "categoryId": 4, + "url": "https://www.vidazoo.com/", + "companyId": null + }, + "video_desk": { + "name": "Video Desk", + "categoryId": 0, + "url": "https://www.videodesk.com/", + "companyId": "video_desk" + }, + "video_potok": { + "name": "Video Potok", + "categoryId": 0, + "url": "http://videopotok.pro/", + "companyId": "videopotok" + }, + "videoadex.com": { + "name": "VideoAdX", + "categoryId": 4, + "url": "https://www.videoadex.com/", + "companyId": "digiteka" + }, + "videology": { + "name": "Videology", + "categoryId": 4, + "url": "https://videologygroup.com/", + "companyId": "singtel" + }, + "videonow": { + "name": "VideoNow", + "categoryId": 4, + "url": "https://videonow.ru/", + "companyId": "videonow" + }, + "videoplayerhub.com": { + "name": "videoplayerhub.com", + "categoryId": 11, + "url": null, + "companyId": null + }, + "videoplaza": { + "name": "Videoplaza", + "categoryId": 4, + "url": "http://www.videoplaza.com/", + "companyId": "videoplaza" + }, + "videostep": { + "name": "VideoStep", + "categoryId": 4, + "url": "https://www.videostep.com/", + "companyId": "videostep" + }, + "vidgyor": { + "name": "Vidgyor", + "categoryId": 0, + "url": "http://vidgyor.com/", + "companyId": "vidgyor" + }, + "vidible": { + "name": "Vidible", + "categoryId": 4, + "url": "http://vidible.tv/", + "companyId": "verizon" + }, + "vidora": { + "name": "Vidora", + "categoryId": 0, + "url": "https://www.vidora.com/", + "companyId": "vidora" + }, + "vietad": { + "name": "VietAd", + "categoryId": 4, + "url": "http://vietad.vn/", + "companyId": "vietad" + }, + "viglink": { + "name": "VigLink", + "categoryId": 4, + "url": "http://www.viglink.com", + "companyId": "viglink" + }, + "vigo": { + "name": "Vigo", + "categoryId": 6, + "url": "https://vigo.one/", + "companyId": "vigo" + }, + "vimeo": { + "name": "Vimeo", + "categoryId": 0, + "url": "http://vimeo.com/", + "companyId": "vimeo" + }, + "vindico_group": { + "name": "Vindico Group", + "categoryId": 4, + "url": "http://www.vindicogroup.com/", + "companyId": "vindico_group" + }, + "vinted": { + "name": "Vinted", + "categoryId": 8, + "url": "https://www.vinted.com/", + "companyId": null + }, + "viral_ad_network": { + "name": "Viral Ad Network", + "categoryId": 4, + "url": "http://viraladnetwork.joinvan.com/", + "companyId": "viral_ad_network" + }, + "viral_loops": { + "name": "Viral Loops", + "categoryId": 2, + "url": "https://viral-loops.com/", + "companyId": "viral-loops" + }, + "viralgains": { + "name": "ViralGains", + "categoryId": 4, + "url": "https://www.viralgains.com/", + "companyId": null + }, + "viralmint": { + "name": "ViralMint", + "categoryId": 7, + "url": "http://www.viralmint.com", + "companyId": "viralmint" + }, + "virgul": { + "name": "Virgul", + "categoryId": 4, + "url": "http://www.virgul.com/", + "companyId": "virgul" + }, + "virool_player": { + "name": "Virool Player", + "categoryId": 4, + "url": "https://www.virool.com/", + "companyId": "virool" + }, + "virtusize": { + "name": "Virtusize", + "categoryId": 5, + "url": "http://www.virtusize.com/", + "companyId": "virtusize" + }, + "visible_measures": { + "name": "Visible Measures", + "categoryId": 4, + "url": "http://www.visiblemeasures.com/", + "companyId": "visible_measures" + }, + "vision_critical": { + "name": "Vision Critical", + "categoryId": 6, + "url": "http://visioncritical.com/", + "companyId": "vision_critical" + }, + "visit_streamer": { + "name": "Visit Streamer", + "categoryId": 6, + "url": "http://www.visitstreamer.com/", + "companyId": "visit_streamer" + }, + "visitortrack": { + "name": "VisitorTrack", + "categoryId": 4, + "url": "http://www.netfactor.com/", + "companyId": "netfactor" + }, + "visitorville": { + "name": "VisitorVille", + "categoryId": 6, + "url": "http://www.visitorville.com", + "companyId": "visitorville" + }, + "visscore": { + "name": "VisScore", + "categoryId": 4, + "url": "http://withcubed.com/", + "companyId": "cubed_attribution" + }, + "visual_iq": { + "name": "Visual IQ", + "categoryId": 6, + "url": "http://visualiq.com/", + "companyId": "visualiq" + }, + "visual_revenue": { + "name": "Visual Revenue", + "categoryId": 6, + "url": "http://visualrevenue.com/", + "companyId": "outbrain" + }, + "visual_website_optimizer": { + "name": "VWO", + "categoryId": 6, + "url": "https://vwo.com/", + "companyId": "wingify" + }, + "visualdna": { + "name": "VisualDNA", + "categoryId": 4, + "url": "http://www.visualdna.com/", + "companyId": "nielsen" + }, + "visualstudio.com": { + "name": "Visualstudio.com", + "categoryId": 8, + "url": "https://www.visualstudio.com/", + "companyId": "microsoft" + }, + "visualvisitor": { + "name": "VisualVisitor", + "categoryId": 6, + "url": "http://www.visualvisitor.com/", + "companyId": "visualvisitor" + }, + "vivalu": { + "name": "VIVALU", + "categoryId": 4, + "url": "https://www.vivalu.com/", + "companyId": "vivalu" + }, + "vivistats": { + "name": "ViviStats", + "categoryId": 6, + "url": "http://en.vivistats.com/", + "companyId": "vivistats" + }, + "vizury": { + "name": "Vizury", + "categoryId": 4, + "url": "http://www.vizury.com/website/", + "companyId": "vizury" + }, + "vizzit": { + "name": "Vizzit", + "categoryId": 4, + "url": "http://www.vizzit.se/h/en/", + "companyId": "vizzit" + }, + "vk.com": { + "name": "Vk.com", + "categoryId": 7, + "url": "https://vk.com/", + "companyId": "vk", + "source": "AdGuard" + }, + "vkontakte": { + "name": "VKontakte", + "categoryId": 7, + "url": "https://vk.com/", + "companyId": "vk", + "source": "AdGuard" + }, + "vkontakte_widgets": { + "name": "VKontakte Widgets", + "categoryId": 7, + "url": "https://dev.vk.com/", + "companyId": "vk", + "source": "AdGuard" + }, + "vntsm.com": { + "name": "Venatus Media", + "categoryId": 4, + "url": "https://www.venatusmedia.com/", + "companyId": "venatus" + }, + "vodafone.de": { + "name": "vodafone.de", + "categoryId": 8, + "url": null, + "companyId": null + }, + "voicefive": { + "name": "VoiceFive", + "categoryId": 6, + "url": "https://www.voicefive.com", + "companyId": "comscore" + }, + "volusion_chat": { + "name": "Volusion Chat", + "categoryId": 2, + "url": "https://www.volusion.com/", + "companyId": "volusion" + }, + "voluum": { + "name": "Voluum", + "categoryId": 4, + "url": "https://voluum.com/", + "companyId": "codewise" + }, + "vooxe.com": { + "name": "vooxe.com", + "categoryId": 8, + "url": "http://www.vooxe.com/", + "companyId": null + }, + "vorwerk.de": { + "name": "vorwerk.de", + "categoryId": 8, + "url": "https://corporate.vorwerk.de/home/", + "companyId": null + }, + "vox": { + "name": "Vox", + "categoryId": 2, + "url": "https://www.voxmedia.com/", + "companyId": "vox" + }, + "voxus": { + "name": "Voxus", + "categoryId": 4, + "url": "http://www.voxus.tv/", + "companyId": "voxus" + }, + "vpon": { + "name": "VPON", + "categoryId": 4, + "url": "http://www.vpon.com/en/", + "companyId": "vpon" + }, + "vpscash": { + "name": "VPSCash", + "categoryId": 4, + "url": "http://vpscash.nl/home", + "companyId": "vps_cash" + }, + "vs": { + "name": "Visual Studio", + "categoryId": 8, + "url": "https://visualstudio.microsoft.com", + "companyId": "microsoft", + "source": "AdGuard" + }, + "vscode": { + "name": "Visual Studio Code", + "categoryId": 8, + "url": "https://code.visualstudio.com/", + "companyId": "microsoft", + "source": "AdGuard" + }, + "vtracy.de": { + "name": "vtracy.de", + "categoryId": 11, + "url": null, + "companyId": null + }, + "vungle": { + "name": "Vungle", + "categoryId": 4, + "url": "https://vungle.com/", + "companyId": "blackstone", + "source": "AdGuard" + }, + "vuukle": { + "name": "Vuukle", + "categoryId": 6, + "url": "http://vuukle.com/", + "companyId": "vuukle" + }, + "vzaar": { + "name": "Vzaar", + "categoryId": 0, + "url": "http://vzaar.com/", + "companyId": "vzaar" + }, + "w3counter": { + "name": "W3Counter", + "categoryId": 6, + "url": "http://www.w3counter.com/", + "companyId": "awio_web_services" + }, + "w3roi": { + "name": "w3roi", + "categoryId": 6, + "url": "http://www.w3roi.com/", + "companyId": "w3roi" + }, + "wahoha": { + "name": "Wahoha", + "categoryId": 2, + "url": "http://wahoha.com/", + "companyId": "wahoha" + }, + "walkme.com": { + "name": "WalkMe", + "categoryId": 2, + "url": "https://www.walkme.com/", + "companyId": "walkme" + }, + "wall_street_on_demand": { + "name": "Wall Street on Demand", + "categoryId": 4, + "url": "http://www.wallst.com", + "companyId": "markit_on_demand" + }, + "walmart": { + "name": "Walmart", + "categoryId": 8, + "url": null, + "companyId": null + }, + "wamcash": { + "name": "Wamcash", + "categoryId": 3, + "url": "http://wamcash.com/", + "companyId": "wamcash" + }, + "wanelo": { + "name": "Wanelo", + "categoryId": 2, + "url": "https://wanelo.com/", + "companyId": "wanelo" + }, + "warp.ly": { + "name": "Warp.ly", + "categoryId": 6, + "url": "https://warp.ly/", + "companyId": "warp.ly" + }, + "way2traffic": { + "name": "Way2traffic", + "categoryId": 4, + "url": "http://www.way2traffic.com/", + "companyId": "way2traffic" + }, + "wayfair_com": { + "name": "Wayfair", + "categoryId": 8, + "url": "https://www.wayfair.com/", + "companyId": null + }, + "wdr.de": { + "name": "wdr.de", + "categoryId": 8, + "url": "https://www1.wdr.de/index.html", + "companyId": null + }, + "web-stat": { + "name": "Web-Stat", + "categoryId": 6, + "url": "http://www.web-stat.net/", + "companyId": "web-stat" + }, + "web.de": { + "name": "web.de", + "categoryId": 8, + "url": "https://web.de/", + "companyId": null + }, + "web.stat": { + "name": "Web.STAT", + "categoryId": 6, + "url": "http://webstat.net/", + "companyId": "web.stat" + }, + "web_service_award": { + "name": "Web Service Award", + "categoryId": 6, + "url": "http://webserviceaward.com/english/", + "companyId": "web_service_award" + }, + "web_traxs": { + "name": "Web Traxs", + "categoryId": 6, + "url": "http://websolutions.thomasnet.com/web-traxs-analytics.php", + "companyId": "thomasnet_websolutions" + }, + "web_wipe_analytics": { + "name": "Web Wipe Analytics", + "categoryId": 6, + "url": "http://tensquare.de", + "companyId": "tensquare" + }, + "webads": { + "name": "WebAds", + "categoryId": 4, + "url": "http://www.webads.co.uk/", + "companyId": "webads" + }, + "webantenna": { + "name": "WebAntenna", + "categoryId": 6, + "url": "http://www.bebit.co.jp/webantenna/", + "companyId": "webantenna" + }, + "webclicks24_com": { + "name": "webclicks24.com", + "categoryId": 11, + "url": null, + "companyId": null + }, + "webclose.net": { + "name": "webclose.net", + "categoryId": 12, + "url": null, + "companyId": null + }, + "webcollage": { + "name": "Webcollage", + "categoryId": 2, + "url": "http://www.webcollage.com/", + "companyId": "webcollage" + }, + "webedia": { + "name": "Webedia", + "categoryId": 4, + "url": "http://fr.webedia-group.com/", + "companyId": "fimalac_group" + }, + "webeffective": { + "name": "WebEffective", + "categoryId": 6, + "url": "http://www.keynote.com/", + "companyId": "keynote_systems" + }, + "webengage": { + "name": "WebEngage", + "categoryId": 2, + "url": "http://webengage.com/", + "companyId": "webengage" + }, + "webgains": { + "name": "Webgains", + "categoryId": 8, + "url": null, + "companyId": null + }, + "webgozar": { + "name": "WebGozar", + "categoryId": 6, + "url": "http://webgozar.com/", + "companyId": "webgozar" + }, + "webhelpje": { + "name": "Webhelpje", + "categoryId": 2, + "url": "http://www.webhelpje.nl/", + "companyId": "webhelpje" + }, + "webleads_tracker": { + "name": "Webleads Tracker", + "categoryId": 6, + "url": "http://www.webleads-tracker.fr/", + "companyId": "webleads_tracker" + }, + "webmecanik": { + "name": "Webmecanik", + "categoryId": 6, + "url": "http://www.webmecanik.com/en/", + "companyId": "webmecanik" + }, + "weborama": { + "name": "Weborama", + "categoryId": 4, + "url": "https://weborama.com/", + "companyId": "weborama" + }, + "webprospector": { + "name": "WebProspector", + "categoryId": 6, + "url": "http://www.webprospector.de/", + "companyId": "webprospector" + }, + "webstat": { + "name": "WebSTAT", + "categoryId": 6, + "url": "http://www.webstat.com/", + "companyId": "webstat" + }, + "webstat.se": { + "name": "Webstat.se", + "categoryId": 6, + "url": "http://www.webstat.se/", + "companyId": "webstat.se" + }, + "webtrack": { + "name": "webtrack", + "categoryId": 6, + "url": "http://www.webtrack.biz/", + "companyId": "webtrack" + }, + "webtraffic": { + "name": "Webtraffic", + "categoryId": 6, + "url": "http://www.webtraffic.se/", + "companyId": "schibsted_asa" + }, + "webtrekk": { + "name": "Webtrekk", + "categoryId": 6, + "url": "http://www.webtrekk.com/", + "companyId": "webtrekk" + }, + "webtrekk_cc": { + "name": "Webtrek Control Cookie", + "categoryId": 6, + "url": "https://www.webtrekk.com/en/home/", + "companyId": "webtrekk" + }, + "webtrends": { + "name": "Webtrends", + "categoryId": 6, + "url": "http://www.webtrends.com/", + "companyId": "webtrends" + }, + "webtrends_ads": { + "name": "Webtrends Ads", + "categoryId": 4, + "url": "http://www.webtrends.com", + "companyId": "webtrends" + }, + "webvisor": { + "name": "WebVisor", + "categoryId": 6, + "url": "http://webvisor.ru", + "companyId": "yandex" + }, + "wedcs": { + "name": "WEDCS", + "categoryId": 4, + "url": "https://www.microsoft.com/", + "companyId": "microsoft" + }, + "weebly_ads": { + "name": "Weebly Ads", + "categoryId": 4, + "url": "http://www.weebly.com", + "companyId": "weebly" + }, + "weibo_widget": { + "name": "Weibo Widget", + "categoryId": 4, + "url": "http://www.sina.com/", + "companyId": "sina" + }, + "westlotto_com": { + "name": "westlotto.com", + "categoryId": 8, + "url": "http://westlotto.com/", + "companyId": null + }, + "wetter_com": { + "name": "Wetter.com", + "categoryId": 8, + "url": "http://www.wetter.com/", + "companyId": null + }, + "whatbroadcast": { + "name": "Whatbroadcast", + "categoryId": 2, + "url": "https://www.whatsbroadcast.com/", + "companyId": "whatsbroadcast" + }, + "whatsapp": { + "name": "WhatsApp", + "categoryId": 8, + "url": "https://www.whatsapp.com/", + "companyId": "meta", + "source": "AdGuard" + }, + "whisper": { + "name": "Whisper", + "categoryId": 7, + "url": "https://whisper.sh/", + "companyId": "medialab", + "source": "AdGuard" + }, + "whos.amung.us": { + "name": "Whos.amung.us", + "categoryId": 6, + "url": "http://whos.amung.us/", + "companyId": "whos.amung.us" + }, + "whoson": { + "name": "WhosOn", + "categoryId": 6, + "url": "http://www.whoson.com/", + "companyId": "whoson" + }, + "wibbitz": { + "name": "Wibbitz", + "categoryId": 0, + "url": "http://www.wibbitz.com/", + "companyId": "wibbitz" + }, + "wibiya_toolbar": { + "name": "Wibiya Toolbar", + "categoryId": 7, + "url": "http://www.wibiya.com/", + "companyId": "wibiya" + }, + "widdit": { + "name": "Widdit", + "categoryId": 2, + "url": "http://www.predictad.com/", + "companyId": "widdit" + }, + "widerplanet": { + "name": "WiderPlanet", + "categoryId": 4, + "url": "http://widerplanet.com/", + "companyId": "wider_planet" + }, + "widespace": { + "name": "Widespace", + "categoryId": 4, + "url": "https://www.widespace.com/", + "companyId": "widespace" + }, + "widgetbox": { + "name": "WidgetBox", + "categoryId": 2, + "url": "http://www.widgetbox.com/", + "companyId": "widgetbox" + }, + "wiget_media": { + "name": "Wiget Media", + "categoryId": 4, + "url": "http://wigetmedia.com", + "companyId": "wiget_media" + }, + "wigzo": { + "name": "Wigzo", + "categoryId": 4, + "url": "https://www.wigzo.com/", + "companyId": "wigzo" + }, + "wikia-services.com": { + "name": "Wikia Services", + "categoryId": 8, + "url": "http://www.wikia.com/fandom", + "companyId": "wikia" + }, + "wikia_beacon": { + "name": "Wikia Beacon", + "categoryId": 6, + "url": "http://www.wikia.com/", + "companyId": "wikia" + }, + "wikia_cdn": { + "name": "Wikia CDN", + "categoryId": 9, + "url": "http://www.wikia.com/fandom", + "companyId": "wikia" + }, + "wikimedia.org": { + "name": "WikiMedia", + "categoryId": 9, + "url": "https://wikimediafoundation.org/", + "companyId": "wikimedia_foundation" + }, + "winaffiliates": { + "name": "Winaffiliates", + "categoryId": 6, + "url": "http://www.winaffiliates.com/", + "companyId": "winaffiliates" + }, + "windows_maps": { + "name": "Windows Maps", + "categoryId": 8, + "url": "https://www.microsoft.com/store/apps/9wzdncrdtbvb", + "companyId": "microsoft", + "source": "AdGuard" + }, + "windows_notifications": { + "name": "The Windows Push Notification Services", + "categoryId": 8, + "url": "https://learn.microsoft.com/en-us/windows/apps/design/shell/tiles-and-notifications/windows-push-notification-services--wns--overview", + "companyId": "microsoft", + "source": "AdGuard" + }, + "windows_time": { + "name": "Windows Time Service", + "categoryId": 8, + "url": "https://learn.microsoft.com/en-us/windows-server/networking/windows-time-service/how-the-windows-time-service-works", + "companyId": "microsoft", + "source": "AdGuard" + }, + "windowsupdate": { + "name": "Windows Update", + "categoryId": 9, + "url": "https://support.microsoft.com/en-us/windows/windows-update-faq-8a903416-6f45-0718-f5c7-375e92dddeb2", + "companyId": "microsoft", + "source": "AdGuard" + }, + "wipmania": { + "name": "WIPmania", + "categoryId": 6, + "url": "http://www.wipmania.com/", + "companyId": "wipmania" + }, + "wiqhit": { + "name": "WiQhit", + "categoryId": 6, + "url": "https://wiqhit.com/nl/", + "companyId": "wiqhit" + }, + "wirecard": { + "name": "Wirecard", + "categoryId": 2, + "url": "https://www.wirecard.com/", + "companyId": null + }, + "wiredminds": { + "name": "WiredMinds", + "categoryId": 6, + "url": "http://www.wiredminds.de/", + "companyId": "wiredminds" + }, + "wirtualna_polska": { + "name": "Wirtualna Polska", + "categoryId": 4, + "url": "http://reklama.wp.pl/", + "companyId": "wirtualna_polska" + }, + "wisepops": { + "name": "WisePops", + "categoryId": 4, + "url": "http://wisepops.com/", + "companyId": "wisepops" + }, + "wishpond": { + "name": "Wishpond", + "categoryId": 2, + "url": "http://wishpond.com", + "companyId": "wishpond" + }, + "wistia": { + "name": "Wistia", + "categoryId": 6, + "url": "http://wistia.com/", + "companyId": "wistia" + }, + "wix.com": { + "name": "Wix", + "categoryId": 8, + "url": "https://www.wix.com/", + "companyId": "wix" + }, + "wixab": { + "name": "Wixab", + "categoryId": 6, + "url": "http://wixab.com/en/", + "companyId": "wixab" + }, + "wixmp": { + "name": "Wix Media Platform", + "categoryId": 9, + "url": "https://www.wixmp.com/", + "companyId": "wix" + }, + "wnzmauurgol.com": { + "name": "wnzmauurgol.com", + "categoryId": 11, + "url": null, + "companyId": null + }, + "wonderpush": { + "name": "WonderPush", + "categoryId": 2, + "url": "https://www.wonderpush.com/", + "companyId": "wonderpush" + }, + "woopic.com": { + "name": "woopic.com", + "categoryId": 8, + "url": null, + "companyId": null + }, + "woopra": { + "name": "Woopra", + "categoryId": 6, + "url": "http://www.woopra.com/", + "companyId": "woopra" + }, + "wordpress_ads": { + "name": "Wordpress Ads", + "categoryId": 4, + "url": "https://wordpress.com/", + "companyId": "automattic" + }, + "wordpress_stats": { + "name": "WordPress Stats", + "categoryId": 6, + "url": "http://wordpress.org/extend/plugins/stats/", + "companyId": "automattic" + }, + "wordstream": { + "name": "WordStream", + "categoryId": 6, + "url": "http://www.wordstream.com/", + "companyId": "wordstream" + }, + "worldnaturenet_xyz": { + "name": "worldnaturenet.xyz", + "categoryId": 12, + "url": null, + "companyId": null + }, + "wp.pl": { + "name": "Wirtualna Polska ", + "categoryId": 4, + "url": "https://www.wp.pl/", + "companyId": "wp" + }, + "wp_engine": { + "name": "WP Engine", + "categoryId": 5, + "url": "https://wpengine.com/", + "companyId": "wp_engine" + }, + "writeup_clickanalyzer": { + "name": "WriteUp ClickAnalyzer", + "categoryId": 6, + "url": "http://www.writeup.co.jp/", + "companyId": "writeup" + }, + "wurfl": { + "name": "WURFL", + "categoryId": 6, + "url": "https://web.wurfl.io/", + "companyId": "scientiamobile" + }, + "wwwpromoter": { + "name": "WWWPromoter", + "categoryId": 4, + "url": "http://wwwpromoter.com/", + "companyId": "wwwpromoter" + }, + "wykop": { + "name": "Wykop", + "categoryId": 7, + "url": "http://www.wykop.pl", + "companyId": "wykop" + }, + "wysistat.com": { + "name": "WysiStat", + "categoryId": 6, + "url": "https://www.wysistat.net/", + "companyId": "wysistat" + }, + "wywy.com": { + "name": "wywy", + "categoryId": 4, + "url": "http://wywy.com/", + "companyId": "tvsquared" + }, + "x-lift": { + "name": "X-lift", + "categoryId": 4, + "url": "https://www.x-lift.jp/", + "companyId": "x-lift" + }, + "xapads": { + "name": "Xapads", + "categoryId": 4, + "url": "http://www.xapads.com/", + "companyId": "xapads" + }, + "xen-media.com": { + "name": "Xen Media", + "categoryId": 11, + "url": "https://www.xenmedia.net/", + "companyId": "xenmedia", + "source": "AdGuard" + }, + "xfreeservice.com": { + "name": "xfreeservice.com", + "categoryId": 11, + "url": null, + "companyId": null + }, + "xhamster": { + "name": "xHamster", + "categoryId": 3, + "url": "https://xhamster.com/", + "companyId": "xhamster", + "source": "AdGuard" + }, + "xiaomi": { + "name": "Xiaomi", + "categoryId": 8, + "url": "https://www.mi.com/", + "companyId": "xiaomi", + "source": "AdGuard" + }, + "xing": { + "name": "Xing", + "categoryId": 6, + "url": "http://www.xing.com/", + "companyId": "xing" + }, + "xmediaclicks": { + "name": "XmediaClicks", + "categoryId": 3, + "url": "http://exoclick.com/", + "companyId": "exoclick" + }, + "xnxx_cdn": { + "name": "XNXX", + "categoryId": 9, + "url": "https://www.xnxx.com", + "companyId": "xnxx", + "source": "AdGuard" + }, + "xplosion": { + "name": "xplosion", + "categoryId": 4, + "url": "http://www.xplosion.de/", + "companyId": "xplosion_interactive" + }, + "xtend": { + "name": "XTEND", + "categoryId": 4, + "url": "http://www.xtendmedia.com/", + "companyId": "matomy_media" + }, + "xvideos_com": { + "name": "Xvideos", + "categoryId": 8, + "url": "https://www.xvideos.com", + "companyId": "xvideos", + "source": "AdGuard" + }, + "xxxlshop.de": { + "name": "XXXLutz", + "categoryId": 8, + "url": "https://www.xxxlutz.de/", + "companyId": "xxxlutz", + "source": "AdGuard" + }, + "xxxlutz": { + "name": "XXXLutz", + "categoryId": 8, + "url": "https://www.xxxlutz.de/", + "companyId": "xxxlutz" + }, + "yabbi": { + "name": "Yabbi", + "categoryId": 4, + "url": "https://yabbi.me/", + "companyId": "yabbi", + "source": "AdGuard" + }, + "yabuka": { + "name": "Yabuka", + "categoryId": 4, + "url": "http://www.yabuka.com/", + "companyId": "yabuka" + }, + "yahoo": { + "name": "Yahoo!", + "categoryId": 6, + "url": "https://yahoo.com/", + "companyId": "apollo_global_management", + "source": "AdGuard" + }, + "yahoo_ad_exchange": { + "name": "Yahoo! Ad Exchange", + "categoryId": 4, + "url": "https://www.verizonmedia.com/advertising", + "companyId": "verizon" + }, + "yahoo_ad_manager": { + "name": "Yahoo! Ad Manager Plus", + "categoryId": 4, + "url": "https://developer.yahoo.com/analytics/", + "companyId": "verizon" + }, + "yahoo_advertising": { + "name": "Yahoo! Advertising", + "categoryId": 4, + "url": "https://www.advertising.yahooinc.com/", + "companyId": "apollo_global_management", + "source": "AdGuard" + }, + "yahoo_analytics": { + "name": "Yahoo! Analytics", + "categoryId": 6, + "url": "http://web.analytics.yahoo.com/", + "companyId": "verizon" + }, + "yahoo_commerce_central": { + "name": "Yahoo! Commerce Central", + "categoryId": 4, + "url": "http://lexity.com/", + "companyId": "verizon" + }, + "yahoo_dot_tag": { + "name": "Yahoo! DOT tag", + "categoryId": 4, + "url": "https://www.verizon.com/", + "companyId": "verizon" + }, + "yahoo_japan_retargeting": { + "name": "Yahoo! Japan Retargeting", + "categoryId": 4, + "url": "http://www.yahoo.com/", + "companyId": "yahoo_japan" + }, + "yahoo_overture": { + "name": "Yahoo! Overture", + "categoryId": 4, + "url": "http://searchmarketing.yahoo.com", + "companyId": "verizon" + }, + "yahoo_search": { + "name": "Yahoo! Search", + "categoryId": 4, + "url": "https://search.yahooinc.com/", + "companyId": "apollo_global_management", + "source": "AdGuard" + }, + "yahoo_small_business": { + "name": "Yahoo! Small Business", + "categoryId": 4, + "url": "http://www.pixazza.com/", + "companyId": "verizon" + }, + "yandex": { + "name": "Yandex", + "categoryId": 4, + "url": "https://www.yandex.com/", + "companyId": "yandex" + }, + "yandex.api": { + "name": "Yandex.API", + "categoryId": 2, + "url": "http://api.yandex.ru/", + "companyId": "yandex" + }, + "yandex_adexchange": { + "name": "Yandex AdExchange", + "categoryId": 4, + "url": "https://www.yandex.com/", + "companyId": "yandex" + }, + "yandex_advisor": { + "name": "Yandex.Advisor", + "categoryId": 12, + "url": "https://sovetnik.yandex.ru/", + "companyId": "yandex" + }, + "yandex_appmetrica": { + "name": "Yandex AppMetrica", + "categoryId": 101, + "url": "https://appmetrica.yandex.com/", + "companyId": "yandex", + "source": "AdGuard" + }, + "yandex_direct": { + "name": "Yandex.Direct", + "categoryId": 6, + "url": "https://direct.yandex.com/", + "companyId": "yandex" + }, + "yandex_metrika": { + "name": "Yandex Metrika", + "categoryId": 6, + "url": "https://metrica.yandex.com/", + "companyId": "yandex" + }, + "yandex_passport": { + "name": "Yandex Passport", + "categoryId": 2, + "url": "https://www.yandex.com/", + "companyId": "yandex" + }, + "yapfiles.ru": { + "name": "yapfiles.ru", + "categoryId": 8, + "url": "https://www.yapfiles.ru/", + "companyId": null + }, + "yashi": { + "name": "Yashi", + "categoryId": 4, + "url": "http://www.yashi.com/", + "companyId": "mass2" + }, + "ybrant_media": { + "name": "Ybrant Media", + "categoryId": 4, + "url": "http://www.addynamix.com/index.html", + "companyId": "ybrant_media" + }, + "ycontent": { + "name": "Ycontent", + "categoryId": 0, + "url": "http://ycontent.com.br/", + "companyId": "ycontent" + }, + "yektanet": { + "name": "Yektanet", + "categoryId": 4, + "url": "https://yektanet.com/", + "companyId": "yektanet" + }, + "yengo": { + "name": "Yengo", + "categoryId": 4, + "url": "http://www.yengo.com/", + "companyId": "yengo" + }, + "yesmail": { + "name": "Yesmail", + "categoryId": 4, + "url": "http://www.yesmail.com/", + "companyId": "yes_mail" + }, + "yesup_advertising": { + "name": "YesUp Advertising", + "categoryId": 4, + "url": "http://yesup.net/", + "companyId": "yesup" + }, + "yesware": { + "name": "Yesware", + "categoryId": 2, + "url": "http://www.yesware.com/", + "companyId": "yesware" + }, + "yieldbot": { + "name": "Yieldbot", + "categoryId": 6, + "url": "https://www.yieldbot.com/", + "companyId": "yieldbot" + }, + "yieldify": { + "name": "Yieldify", + "categoryId": 4, + "url": "http://www.yieldify.com/", + "companyId": "yieldify" + }, + "yieldlab": { + "name": "Yieldlab", + "categoryId": 4, + "url": "http://www.yieldlab.de/", + "companyId": "prosieben_sat1" + }, + "yieldlove": { + "name": "Yieldlove", + "categoryId": 4, + "url": "https://www.yieldlove.com/", + "companyId": "yieldlove" + }, + "yieldmo": { + "name": "Yieldmo", + "categoryId": 4, + "url": "https://www.yieldmo.com/", + "companyId": "yieldmo" + }, + "yieldr": { + "name": "Yieldr Ads", + "categoryId": 4, + "url": "https://www.yieldr.com/", + "companyId": "yieldr" + }, + "yieldr_air": { + "name": "Yieldr Air", + "categoryId": 6, + "url": "https://www.yieldr.com/", + "companyId": "yieldr" + }, + "yieldsquare": { + "name": "YieldSquare", + "categoryId": 4, + "url": "http://www.yieldsquare.com/", + "companyId": "yieldsquare" + }, + "yle": { + "name": "YLE", + "categoryId": 6, + "url": "http://yle.fi/", + "companyId": "yle" + }, + "yllixmedia": { + "name": "YllixMedia", + "categoryId": 4, + "url": "http://yllix.com/", + "companyId": "yllixmedia" + }, + "ymetrica1.com": { + "name": "ymetrica1.com", + "categoryId": 11, + "url": null, + "companyId": null + }, + "ymzrrizntbhde.com": { + "name": "ymzrrizntbhde.com", + "categoryId": 11, + "url": null, + "companyId": null + }, + "yo_button": { + "name": "Yo Button", + "categoryId": 2, + "url": "http://www.justyo.co/", + "companyId": "yo" + }, + "yodle": { + "name": "Yodle", + "categoryId": 4, + "url": "http://www.yodle.com/", + "companyId": "yodle" + }, + "yola_analytics": { + "name": "Yola Analytics", + "categoryId": 6, + "url": "https://www.yola.com/", + "companyId": "yola" + }, + "yomedia": { + "name": "Yomedia", + "categoryId": 4, + "url": "http://www.pinetech.vn/", + "companyId": "yomedia" + }, + "yoochoose.net": { + "name": "Ibexa Personalizaton Software", + "categoryId": 4, + "url": "https://yoochoose.net/", + "companyId": "ibexa", + "source": "AdGuard" + }, + "yotpo": { + "name": "Yotpo", + "categoryId": 1, + "url": "https://www.yotpo.com/", + "companyId": "yotpo" + }, + "yottaa": { + "name": "Yottaa", + "categoryId": 6, + "url": "https://www.yottaa.com/", + "companyId": "yottaa" + }, + "yottly": { + "name": "Yottly", + "categoryId": 4, + "url": "https://yottly.com/", + "companyId": "yottly" + }, + "youcanbookme": { + "name": "YouCanBookMe", + "categoryId": 2, + "url": "https://youcanbook.me/", + "companyId": "youcanbookme" + }, + "youku": { + "name": "Youku", + "categoryId": 0, + "url": "http://www.youku.com/", + "companyId": "youku" + }, + "youporn": { + "name": "YouPorn", + "categoryId": 3, + "url": "https://www.youporn.com/", + "companyId": "youporn", + "source": "AdGuard" + }, + "youtube": { + "name": "YouTube", + "categoryId": 0, + "url": "https://www.youtube.com/", + "companyId": "google" + }, + "youtube_subscription": { + "name": "YouTube Subscription", + "categoryId": 2, + "url": "http://www.youtube.com/", + "companyId": "google" + }, + "yp": { + "name": "YellowPages", + "categoryId": 4, + "url": "https://www.yellowpages.com/", + "companyId": "thryv" + }, + "ysance": { + "name": "YSance", + "categoryId": 4, + "url": "http://www.ysance.com/en/index.html", + "companyId": "ysance" + }, + "yume": { + "name": "YuMe", + "categoryId": 4, + "url": "http://www.yume.com/", + "companyId": "yume" + }, + "yume,_inc.": { + "name": "YuMe, Inc.", + "categoryId": 4, + "url": "http://www.yume.com/", + "companyId": "yume" + }, + "yusp": { + "name": "Yusp", + "categoryId": 6, + "url": "https://www.yusp.com/", + "companyId": "yusp" + }, + "zadarma": { + "name": "Zadarma", + "categoryId": 2, + "url": "https://zadarma.com/", + "companyId": "zadarma" + }, + "zalando_de": { + "name": "zalando.de", + "categoryId": 8, + "url": "https://zalando.de/", + "companyId": "zalando" + }, + "zalo": { + "name": "Zalo", + "categoryId": 2, + "url": "https://zaloapp.com/", + "companyId": "zalo" + }, + "zanox": { + "name": "Zanox", + "categoryId": 4, + "url": "http://www.zanox.com/us/", + "companyId": "axel_springer" + }, + "zaparena": { + "name": "zaparena", + "categoryId": 4, + "url": "http://www.zaparena.com/", + "companyId": "zapunited" + }, + "zappos": { + "name": "Zappos", + "categoryId": 4, + "url": "http://www.zappos.com/", + "companyId": "zappos" + }, + "zdassets.com": { + "name": "Zendesk CDN", + "categoryId": 8, + "url": "http://www.zendesk.com/", + "companyId": "zendesk" + }, + "zebestof.com": { + "name": "Zebestof", + "categoryId": 4, + "url": "http://www.zebestof.com/en/home/", + "companyId": "zebestof" + }, + "zedo": { + "name": "Zedo", + "categoryId": 4, + "url": "http://www.zedo.com/", + "companyId": "zedo" + }, + "zemanta": { + "name": "Zemanta", + "categoryId": 2, + "url": "http://www.zemanta.com/", + "companyId": "zemanta" + }, + "zencoder": { + "name": "Zencoder", + "categoryId": 0, + "url": "https://zencoder.com/en/", + "companyId": "zencoder" + }, + "zendesk": { + "name": "Zendesk", + "categoryId": 2, + "url": "http://www.zendesk.com/", + "companyId": "zendesk" + }, + "zergnet": { + "name": "ZergNet", + "categoryId": 2, + "url": "http://www.zergnet.com/info", + "companyId": "zergnet" + }, + "zero.kz": { + "name": "ZERO.kz", + "categoryId": 6, + "url": "http://zero.kz/", + "companyId": "neolabs_zero" + }, + "zeta": { + "name": "Zeta", + "categoryId": 2, + "url": "https://zetaglobal.com/", + "companyId": "zeta" + }, + "zeusclicks": { + "name": "ZeusClicks", + "categoryId": 4, + "url": "http://zeusclicks.com/", + "companyId": "zeusclicks", + "source": "AdGuard" + }, + "ziff_davis": { + "name": "Ziff Davis", + "categoryId": 4, + "url": "https://www.ziffdavis.com/", + "companyId": "ziff_davis" + }, + "zift_solutions": { + "name": "Zift Solutions", + "categoryId": 6, + "url": "https://ziftsolutions.com/", + "companyId": "zift_solutions" + }, + "zimbio.com": { + "name": "Zimbio", + "categoryId": 8, + "url": "http://www.zimbio.com/", + "companyId": "livinglymedia", + "source": "AdGuard" + }, + "zippyshare_widget": { + "name": "Zippyshare Widget", + "categoryId": 2, + "url": "http://www.zippyshare.com", + "companyId": "zippyshare" + }, + "zmags": { + "name": "Zmags", + "categoryId": 6, + "url": "https://zmags.com/", + "companyId": "zmags" + }, + "zmctrack.net": { + "name": "zmctrack.net", + "categoryId": 11, + "url": null, + "companyId": null + }, + "zog.link": { + "name": "zog.link", + "categoryId": 11, + "url": null, + "companyId": null + }, + "zoho": { + "name": "Zoho", + "categoryId": 6, + "url": "https://www.zohocorp.com/index.html", + "companyId": "zoho_corp" + }, + "zononi.com": { + "name": "zononi.com", + "categoryId": 3, + "url": null, + "companyId": null + }, + "zopim": { + "name": "Zopim", + "categoryId": 2, + "url": "http://www.zopim.com/", + "companyId": "zendesk" + }, + "zukxd6fkxqn.com": { + "name": "zukxd6fkxqn.com", + "categoryId": 11, + "url": null, + "companyId": null + }, + "zwaar": { + "name": "Zwaar", + "categoryId": 4, + "url": "http://www.zwaar.org", + "companyId": "zwaar" + }, + "zypmedia": { + "name": "ZypMedia", + "categoryId": 4, + "url": "http://www.zypmedia.com/", + "companyId": "zypmedia" + } + }, + "trackerDomains": { + "mmtro.com": "1000mercis", + "creative-serving.com": "161media", + "p161.net": "161media", + "analytics.163.com": "163", + "1822direkt.de": "1822direkt.de", + "1dmp.io": "1dmp.io", + "opecloud.com": "1plusx", + "1sponsor.com": "1sponsor", + "tm.dentsu.de": "1tag", + "1and1.com": "1und1", + "1und1.de": "1und1", + "uicdn.com": "1und1", + "website-start.de": "1und1", + "24-ads.com": "24-ads.com", + "247-inc.net": "24_7", + "d1af033869koo7.cloudfront.net": "24_7", + "counter.24log.ru": "24log", + "24smi.net": "24smi", + "24smi.org": "24smi", + "2leep.com": "2leep", + "33across.com": "33across", + "3dstats.com": "3dstats", + "3gpp.org": "3gpp", + "3gppnetwork.org": "3gpp", + "4cdn.org": "4chan", + "4finance.com": "4finance_com", + "4wnet.com": "4w_marketplace", + "d3aa0ztdn3oibi.cloudfront.net": "500friends", + "51.la": "51.la", + "5min.com": "5min_media", + "d1lm7kd3bd3yo9.cloudfront.net": "6sense", + "grepdata.com": "6sense", + "77tracking.com": "77tracking", + "swm.digital": "7plus", + "7tv.de": "7tv.de", + "888media.net": "888media", + "hit.8digits.com": "8digits", + "94j7afz2nr.xyz": "94j7afz2nr.xyz", + "statsanalytics.com": "99stats", + "a3cloud.net": "a3cloud_net", + "a8.net": "a8", + "aaxads.com": "aaxads.com", + "abtasty.com": "ab_tasty", + "d1447tq2m68ekg.cloudfront.net": "ab_tasty", + "ab.co": "abc", + "abc-cdn.net.au": "abc", + "abc-host.net": "abc", + "abc-host.net.au": "abc", + "abc-prod.net.au": "abc", + "abc-stage.net.au": "abc", + "abc-test.net.au": "abc", + "abc.net.au": "abc", + "abcaustralia.net.au": "abc", + "abcradio.net.au": "abc", + "ablida.de": "ablida", + "ablida.net": "ablida", + "durasite.net": "accelia", + "accengage.net": "accengage", + "ax.xrea.com": "accessanalyzer", + "accesstrade.net": "accesstrade", + "agcdn.com": "accord_group", + "accmgr.com": "accordant_media", + "p-td.com": "accuen_media", + "acestream.net": "acestream.net", + "acint.net": "acint.net", + "acloudimages.com": "acloudimages", + "acpm.fr": "acpm.fr", + "acquia.com": "acquia.com", + "ziyu.net": "acrweb", + "actionpay.ru": "actionpay", + "adnwb.ru": "actionpay", + "adonweb.ru": "actionpay", + "active-agent.com": "active_agent", + "trackcmp.net": "active_campaign", + "active-srv02.de": "active_performance", + "active-tracking.de": "active_performance", + "activeconversion.com": "activeconversion", + "a-cast.jp": "activecore", + "activemeter.com": "activemeter", + "go.activengage.com": "activengage", + "actonsoftware.com": "acton", + "acuityplatform.com": "acuity_ads", + "acxiom-online.com": "acxiom", + "acxiom.com": "acxiom", + "ad-blocker.org": "ad-blocker.org", + "ads.ad-center.com": "ad-center", + "ad-delivery.net": "ad-delivery.net", + "ad-sys.com": "ad-sys", + "adagionet.com": "ad.agio", + "ad2click.go2cloud.org": "ad2click", + "ad2games.com": "ad2games", + "ad360.vn": "ad360", + "ads.ad4game.com": "ad4game", + "ad4mat.ar": "ad4mat", + "ad4mat.at": "ad4mat", + "ad4mat.be": "ad4mat", + "ad4mat.bg": "ad4mat", + "ad4mat.br": "ad4mat", + "ad4mat.ch": "ad4mat", + "ad4mat.co.uk": "ad4mat", + "ad4mat.cz": "ad4mat", + "ad4mat.de": "ad4mat", + "ad4mat.dk": "ad4mat", + "ad4mat.es": "ad4mat", + "ad4mat.fi": "ad4mat", + "ad4mat.fr": "ad4mat", + "ad4mat.gr": "ad4mat", + "ad4mat.hu": "ad4mat", + "ad4mat.it": "ad4mat", + "ad4mat.mx": "ad4mat", + "ad4mat.net": "ad4mat", + "ad4mat.nl": "ad4mat", + "ad4mat.no": "ad4mat", + "ad4mat.pl": "ad4mat", + "ad4mat.ro": "ad4mat", + "ad4mat.ru": "ad4mat", + "ad4mat.se": "ad4mat", + "ad4mat.tr": "ad4mat", + "ad6.fr": "ad6media", + "ad6media.co.uk": "ad6media", + "ad6media.com": "ad6media", + "ad6media.es": "ad6media", + "ad6media.fr": "ad6media", + "a2dfp.net": "ad_decisive", + "addynamo.net": "ad_dynamo", + "ebis.ne.jp": "ad_ebis", + "adlightning.com": "ad_lightning", + "admagnet.net": "ad_magnet", + "amimg.net": "ad_magnet", + "adspirit.de": "ad_spirit", + "adspirit.net": "ad_spirit", + "adac.de": "adac_de", + "adacado.com": "adacado", + "ozonemedia.com": "adadyn", + "adrtx.net": "adality_gmbh", + "adalliance.io": "adalliance.io", + "adalyser.com": "adalyser.com", + "adaos-ads.net": "adaos", + "adap.tv": "adap.tv", + "smrtlnks.com": "adaptiveblue_smartlinks", + "yieldoptimizer.com": "adara_analytics", + "adnetwork.adasiaholdings.com": "adasia_holdings", + "adbetclickin.pink": "adbetclickin.pink", + "adbetnet.com": "adbetnet.com", + "adblade.com": "adblade.com", + "adbooth.com": "adbooth", + "adbooth.net": "adbooth", + "adbox.lv": "adbox", + "adbrn.com": "adbrain", + "adbrite.com": "adbrite", + "adbull.com": "adbull", + "adbutler.com": "adbutler", + "adc-serv.net": "adc_media", + "adc-srv.net": "adc_media", + "adcash.com": "adcash", + "vuroll.in": "adchakra", + "acs86.com": "adchina", + "csbew.com": "adchina", + "irs09.com": "adchina", + "adcito.com": "adcito", + "adcitomedia.com": "adcito", + "adclear.net": "adclear", + "swift.adclerks.com": "adclerks", + "adclickmedia.com": "adclickmedia", + "adclickzone.go2cloud.org": "adclickzone", + "ad-cloud.jp": "adcloud", + "admarvel.s3.amazonaws.com": "adcolony", + "ads.admarvel.com": "adcolony", + "adcolony.com": "adcolony", + "adrdgt.com": "adconion", + "amgdgt.com": "adconion", + "adcrowd.com": "adcrowd", + "shop2market.com": "adcurve", + "addtocalendar.com": "add_to_calendar", + "dpmsrv.com": "addaptive", + "yagiay.com": "addefend", + "addfreestats.com": "addfreestats", + "addinto.com": "addinto", + "addshoppers.com": "addshoppers", + "shop.pe": "addshoppers", + "addthis.com": "addthis", + "addthiscdn.com": "addthis", + "addthisedge.com": "addthis", + "b2btracking.addvalue.de": "addvalue", + "addyon.com": "addyon", + "adeasy.ru": "adeasy", + "ipredictive.com": "adelphic", + "adengage.com": "adengage", + "adespresso.com": "adespresso", + "adexcite.com": "adexcite", + "adextent.com": "adextent", + "adf.ly": "adf.ly", + "adfalcon.com": "adfalcon", + "adfoc.us": "adfocus", + "js.adforgames.com": "adforgames", + "adform.net": "adform", + "adformdsp.net": "adform", + "seadform.net": "adform", + "adfox.ru": "adfox", + "adwolf.ru": "adfox", + "adfreestyle.pl": "adfreestyle", + "adfront.org": "adfront", + "adfrontiers.com": "adfrontiers", + "adgebra.co.in": "adgebra", + "adgenie.co.uk": "adgenie", + "ad.adgile.com": "adgile", + "ad.antventure.com": "adgile", + "adglare.net": "adglare.net", + "adsafety.net": "adglue", + "smartadcheck.de": "adgoal", + "smartredirect.de": "adgoal", + "adgorithms.com": "adgorithms", + "adgoto.com": "adgoto", + "adguard.com": "adguard", + "adguard.app": "adguard", + "adguard.info": "adguard", + "adguard.io": "adguard", + "adguard.org": "adguard", + "adtidy.org": "adguard", + "agrd.io": "adguard", + "agrd.eu": "adguard", + "adguard-dns.com": "adguard_dns", + "adguard-dns.io": "adguard_dns", + "adguard-vpn.com": "adguard_vpn", + "adguard-vpn.online": "adguard_vpn", + "adguardvpn.com": "adguard_vpn", + "adhands.ru": "adhands", + "adhese.be": "adhese", + "adhese.com": "adhese", + "adhese.net": "adhese", + "adhitzads.com": "adhitz", + "adhood.com": "adhood", + "afy11.net": "adify", + "cdn.adikteev.com": "adikteev", + "adimpact.com": "adimpact", + "adinch.com": "adinch", + "adition.com": "adition", + "adjal.com": "adjal", + "cdn.adjs.net": "adjs", + "adjug.com": "adjug", + "adjust.com": "adjust", + "adj.st": "adjust", + "adjust.io": "adjust", + "adjust.net.in": "adjust", + "adjust.world": "adjust", + "apptrace.com": "adjust", + "adk2.com": "adk2", + "cdn.adsrvmedia.com": "adk2", + "cdn.cdnrl.com": "adk2", + "adklip.com": "adklip", + "adkengage.com": "adknowledge", + "adknowledge.com": "adknowledge", + "bidsystem.com": "adknowledge", + "blogads.com": "adknowledge", + "cubics.com": "adknowledge", + "yarpp.org": "adknowledge", + "adsearch.adkontekst.pl": "adkontekst", + "netsprint.eu": "adkontekst.pl", + "adlabs.ru": "adlabs", + "clickiocdn.com": "adlabs", + "luxup.ru": "adlabs", + "mixmarket.biz": "adlabs", + "ad-serverparc.nl": "adlantic", + "adimg.net": "adlantis", + "adlantis.jp": "adlantis", + "cdn.adless.io": "adless", + "api.publishers.adlive.io": "adlive_header_bidding", + "adlooxtracking.com": "adloox", + "adx1.com": "admachine", + "adman.gr": "adman", + "adman.in.gr": "adman", + "admanmedia.com": "adman_media", + "admantx.com": "admantx.com", + "admaster.net": "admaster", + "cdnmaster.com": "admaster", + "admaster.com.cn": "admaster.cn", + "admasterapi.com": "admaster.cn", + "admatic.com.tr": "admatic", + "ads5.admatic.com.tr": "admatic", + "cdn2.admatic.com.tr": "admatic", + "lib-3pas.admatrix.jp": "admatrix", + "admaxserver.com": "admax", + "admaxim.com": "admaxim", + "admaya.in": "admaya", + "admedia.com": "admedia", + "adizio.com": "admedo_com", + "admedo.com": "admedo_com", + "admeira.ch": "admeira.ch", + "admeld.com": "admeld", + "admeo.ru": "admeo", + "admaym.com": "admeta", + "atemda.com": "admeta", + "admicro.vn": "admicro", + "vcmedia.vn": "admicro", + "admitad.com": "admitad.com", + "admixer.net": "admixer", + "admixer.com": "admixer", + "admized.com": "admized", + "admo.tv": "admo.tv", + "a.admob.com": "admob", + "mm.admob.com": "admob", + "mmv.admob.com": "admob", + "p.admob.com": "admob", + "run.admost.com": "admost", + "dmmotion.com": "admotion", + "nspmotion.com": "admotion", + "admulti.com": "admulti", + "adnegah.net": "adnegah", + "adnet.vn": "adnet", + "adnet.biz": "adnet.de", + "adnet.de": "adnet.de", + "adclick.lt": "adnet_media", + "adnet.lt": "adnet_media", + "ad.adnetwork.net": "adnetwork.net", + "adnetworkperformance.com": "adnetworkperformance.com", + "adserver.adnexio.com": "adnexio", + "adnium.com": "adnium.com", + "heias.com": "adnologies", + "smaclick.com": "adnow", + "st-n.ads3-adnow.com": "adnow", + "adnymics.com": "adnymics", + "adobe.com": "adobe_audience_manager", + "demdex.net": "adobe_audience_manager", + "everestjs.net": "adobe_audience_manager", + "everesttech.net": "adobe_audience_manager", + "adobe.io": "adobe_developer", + "scene7.com": "adobe_dynamic_media", + "adobedtm.com": "adobe_dynamic_tag_management", + "2o7.net": "adobe_experience_cloud", + "du8783wkf05yr.cloudfront.net": "adobe_experience_cloud", + "hitbox.com": "adobe_experience_cloud", + "imageg.net": "adobe_experience_cloud", + "nedstat.com": "adobe_experience_cloud", + "omtrdc.net": "adobe_experience_cloud", + "sitestat.com": "adobe_experience_cloud", + "adobedc.net": "adobe_experience_league", + "adobelogin.com": "adobe_login", + "adobetag.com": "adobe_tagmanager", + "typekit.com": "adobe_typekit", + "typekit.net": "adobe_typekit", + "adocean.pl": "adocean", + "dmtry.com": "adometry", + "adomik.com": "adomik", + "adcde.com": "adon_network", + "addlvr.com": "adon_network", + "adfeedstrk.com": "adon_network", + "adtrgt.com": "adon_network", + "bannertgt.com": "adon_network", + "cptgt.com": "adon_network", + "cpvfeed.com": "adon_network", + "cpvtgt.com": "adon_network", + "mygeek.com": "adon_network", + "popcde.com": "adon_network", + "sdfje.com": "adon_network", + "urtbk.com": "adon_network", + "adonion.com": "adonion", + "t.adonly.com": "adonly", + "adoperator.com": "adoperator", + "adoric.com": "adoric", + "adorika.com": "adorika", + "adorika.net": "adorika", + "adosia.com": "adosia", + "adotmob.com": "adotmob.com", + "adotube.com": "adotube", + "adparlor.com": "adparlor", + "adparlour.com": "adparlor", + "a4p.adpartner.pro": "adpartner", + "adpeepshosted.com": "adpeeps", + "adperfect.com": "adperfect", + "adperium.com": "adperium", + "adpilot.at": "adpilot", + "erne.co": "adpilot", + "adplan-ds.com": "adplan", + "advg.jp": "adplan", + "c.p-advg.com": "adplan", + "adplus.co.id": "adplus", + "adprofex.com": "adprofex", + "ads2.bid": "adprofex", + "adframesrc.com": "adprofy", + "adserve.adpulse.ir": "adpulse", + "ads.adpv.com": "adpv", + "adreactor.com": "adreactor", + "adrecord.com": "adrecord", + "adrecover.com": "adrecover", + "ad.vcm.jp": "adresult", + "adresult.jp": "adresult", + "adriver.ru": "adriver", + "adroll.com": "adroll", + "adrom.net": "adrom", + "txt.eu": "adrom", + "adru.net": "adru.net", + "adrunnr.com": "adrunnr", + "adsame.com": "adsame", + "adsbookie.com": "adsbookie", + "adscale.de": "adscale", + "adscience.nl": "adscience", + "adsco.re": "adsco.re", + "adsensecamp.com": "adsensecamp", + "adserverpub.com": "adserverpub", + "online.adservicemedia.dk": "adservice_media", + "adsfactor.net": "adsfactor", + "ads.doclix.com": "adside", + "adskeeper.co.uk": "adskeeper", + "ssp.adskom.com": "adskom", + "adslot.com": "adslot", + "adsnative.com": "adsnative", + "adsniper.ru": "adsniper.ru", + "adspeed.com": "adspeed", + "adspeed.net": "adspeed", + "o333o.com": "adspyglass", + "adstage-analytics.herokuapp.com": "adstage", + "code.adstanding.com": "adstanding", + "adstars.co.id": "adstars", + "ad-stir.com": "adstir", + "4dsply.com": "adsupply", + "cdn.engine.adsupply.com": "adsupply", + "trklnks.com": "adsupply", + "adswizz.com": "adswizz", + "adtaily.com": "adtaily", + "adtaily.pl": "adtaily", + "adtarget.me": "adtarget.me", + "adtech.de": "adtech", + "adtechus.com": "adtech", + "adtegrity.net": "adtegrity", + "adtpix.com": "adtegrity", + "adtelligence.de": "adtelligence.de", + "adentifi.com": "adtheorent", + "adthink.com": "adthink", + "advertstream.com": "adthink", + "audienceinsights.net": "adthink", + "adtiger.de": "adtiger", + "adtimaserver.vn": "adtima", + "adtng.com": "adtng.com", + "adtoma.com": "adtoma", + "adtomafusion.com": "adtoma", + "adtr02.com": "adtr02.com", + "track.adtraction.com": "adtraction", + "adtraxx.de": "adtraxx", + "adtriba.com": "adtriba.com", + "adtrue.com": "adtrue", + "adtrustmedia.com": "adtrustmedia", + "ad.adtube.ir": "adtube", + "awempire.com": "adult_webmaster_empire", + "dditscdn.com": "adult_webmaster_empire", + "livejasmin.com": "adult_webmaster_empire", + "adultadworld.com": "adultadworld", + "adworldmedia.com": "adultadworld", + "adup-tech.com": "adup-tech.com", + "advaction.ru": "advaction", + "aucourant.info": "advaction", + "schetu.net": "advaction", + "dqfw2hlp4tfww.cloudfront.net": "advalo", + "ahcdn.com": "advanced_hosters", + "pix-cdn.org": "advanced_hosters", + "s3.advarkads.com": "advark", + "adventori.com": "adventori", + "adnext.fr": "adverline", + "adverline.com": "adverline", + "surinter.net": "adverline", + "adversaldisplay.com": "adversal", + "adversalservers.com": "adversal", + "go.adversal.com": "adversal", + "adverserve.net": "adverserve", + "ad.adverteerdirect.nl": "adverteerdirect", + "adverticum.net": "adverticum", + "advertise.com": "advertise.com", + "advertisespace.com": "advertisespace", + "adsdk.com": "advertising.com", + "advertising.com": "advertising.com", + "aol.com": "advertising.com", + "atwola.com": "advertising.com", + "pictela.net": "advertising.com", + "verizonmedia.com": "advertising.com", + "advertlets.com": "advertlets", + "advertserve.com": "advertserve", + "advidi.com": "advidi", + "am10.ru": "advmaker.ru", + "am15.net": "advmaker.ru", + "advolution.de": "advolution", + "adwebster.com": "adwebster", + "ads.adwitserver.com": "adwit", + "adworx.at": "adworx.at", + "adworxs.net": "adworxs.net", + "adxion.com": "adxion", + "adxpansion.com": "adxpansion", + "ads.adxpose.com": "adxpose", + "event.adxpose.com": "adxpose", + "servedby.adxpose.com": "adxpose", + "adxprtz.com": "adxprtz.com", + "adyoulike.com": "adyoulike", + "omnitagjs.com": "adyoulike", + "adzerk.net": "adzerk", + "adzly.com": "adzly", + "aemediatraffic.com": "aemediatraffic", + "hprofits.com": "aemediatraffic", + "amxdt.com": "aerify_media", + "aerisapi.com": "aeris_weather", + "aerisweather.com": "aeris_weather", + "affectv.com": "affectv", + "go.affec.tv": "affectv", + "hybridtheory.com": "affectv", + "affilbox.com": "affilbox", + "affilbox.cz": "affilbox", + "track.affiliate-b.com": "affiliate-b", + "affiliate4you.nl": "affiliate4you", + "ads.affbuzzads.com": "affiliatebuzz", + "affiliatefuture.com": "affiliatefuture", + "affiliatelounge.com": "affiliatelounge", + "affiliation-france.com": "affiliation_france", + "affiliator.com": "affiliator", + "affiliaweb.fr": "affiliaweb", + "banner-rotation.com": "affilinet", + "webmasterplan.com": "affilinet", + "affimax.de": "affimax", + "affinity.com": "affinity", + "countby.com": "affinity.by", + "affiz.net": "affiz_cpm", + "pml.afftrack.com": "afftrack", + "afgr2.com": "afgr2.com", + "v2.afilio.com.br": "afilio", + "afsanalytics.com": "afs_analystics", + "ads.aftonbladet.se": "aftonbladet_ads", + "aftv-serving.bid": "aftv-serving.bid", + "agkn.com": "aggregate_knowledge", + "agilone.com": "agilone", + "adview.pl": "agora", + "pingagenow.com": "ahalogy", + "aimediagroup.com": "ai_media_group", + "advombat.ru": "aidata", + "aidata.io": "aidata", + "aim4media.com": "aim4media", + "muscache.com": "airbnb", + "musthird.com": "airbnb", + "airbrake.io": "airbrake", + "airpr.com": "airpr.com", + "ab.airpush.com": "airpush", + "abmr.net": "akamai_technologies", + "akamai.net": "akamai_technologies", + "akamaihd.net": "akamai_technologies", + "akamaized.net": "akamai_technologies", + "akstat.io": "akamai_technologies", + "edgekey.net": "akamai_technologies", + "edgesuite.net": "akamai_technologies", + "imiclk.com": "akamai_technologies", + "akadns.net": "akamai_technologies", + "akamaiedge.net": "akamai_technologies", + "akaquill.net": "akamai_technologies", + "akamoihd.net": "akamoihd.net", + "adn-d.sp.gmossp-sp.jp": "akane", + "akanoo.com": "akanoo", + "akavita.com": "akavita", + "ads.albawaba.com": "al_bawaba_advertising", + "serve.albacross.com": "albacross", + "aldi-international.com": "aldi-international.com", + "alenty.com": "alenty", + "alephd.com": "alephd.com", + "alexametrics.com": "alexa_metrics", + "d31qbv1cthcecs.cloudfront.net": "alexa_metrics", + "d5nxst8fruw4z.cloudfront.net": "alexa_metrics", + "alexa.com": "alexa_traffic_rank", + "algolia.com": "algolia.net", + "algolia.net": "algolia.net", + "algovid.com": "algovid.com", + "alibaba.com": "alibaba.com", + "alicdn.com": "alibaba.com", + "aliapp.org": "alibaba.com", + "alibabachengdun.com": "alibaba.com", + "alibabausercontent.com": "alibaba.com", + "aliexpress.com": "alibaba.com", + "alikunlun.com": "alibaba.com", + "aliyuncs.com": "alibaba.com", + "alibabacloud.com": "alibaba_cloud", + "alibabadns.com": "alibaba_cloud", + "aliyun.com": "alibaba_cloud", + "ucweb.com": "alibaba_ucbrowser", + "alipay.com": "alipay.com", + "alipayobjects.com": "alipay.com", + "websitealive.com": "alivechat", + "allegroimg.com": "allegro.pl", + "allegrostatic.com": "allegro.pl", + "allegrostatic.pl": "allegro.pl", + "ngacm.com": "allegro.pl", + "ngastatic.com": "allegro.pl", + "i.btg360.com.br": "allin", + "allo-pages.fr": "allo-pages.fr", + "allotraffic.com": "allotraffic", + "edge.alluremedia.com.au": "allure_media", + "allyes.com": "allyes", + "inputs.alooma.com": "alooma", + "arena.altitude-arena.com": "altitude_digital", + "amadesa.com": "amadesa", + "amap.com": "amap", + "amazon.ca": "amazon", + "amazon.co.jp": "amazon", + "amazon.co.uk": "amazon", + "amazon.com": "amazon", + "amazon.de": "amazon", + "amazon.es": "amazon", + "amazon.fr": "amazon", + "amazon.it": "amazon", + "d3io1k5o0zdpqr.cloudfront.net": "amazon", + "a2z.com": "amazon", + "aamazoncognito.com": "amazon", + "amazon-corp.com": "amazon", + "amazon-dss.com": "amazon", + "amazon.com.au": "amazon", + "amazon.com.mx": "amazon", + "amazon.dev": "amazon", + "amazon.in": "amazon", + "amazon.nl": "amazon", + "amazon.sa": "amazon", + "amazonbrowserapp.co.uk": "amazon", + "amazonbrowserapp.es": "amazon", + "amazoncrl.com": "amazon", + "firetvcaptiveportal.com": "amazon", + "ntp-fireos.com": "amazon", + "amazon-adsystem.com": "amazon_adsystem", + "serving-sys.com": "amazon_adsystem", + "sizmek.com": "amazon_adsystem", + "assoc-amazon.ca": "amazon_associates", + "assoc-amazon.co.uk": "amazon_associates", + "assoc-amazon.com": "amazon_associates", + "assoc-amazon.de": "amazon_associates", + "assoc-amazon.fr": "amazon_associates", + "assoc-amazon.jp": "amazon_associates", + "images-amazon.com": "amazon_cdn", + "media-amazon.com": "amazon_cdn", + "ssl-images-amazon.com": "amazon_cdn", + "amazontrust.com": "amazon_cdn", + "associates-amazon.com": "amazon_cdn", + "cloudfront.net": "amazon_cloudfront", + "ota-cloudfront.net": "amazon_cloudfront", + "axx-eu.amazon-adsystem.com": "amazon_mobile_ads", + "amazonpay.com": "amazon_payments", + "payments-amazon.com": "amazon_payments", + "amazonpay.in": "amazon_payments", + "aiv-cdn.net": "amazon_video", + "aiv-delivery.net": "amazon_video", + "amazonvideo.com": "amazon_video", + "pv-cdn.net": "amazon_video", + "primevideo.com": "amazon_video", + "amazonaws.com": "amazon_web_services", + "amazonwebservices.com": "amazon_web_services", + "awsstatic.com": "amazon_web_services", + "adnetwork.net.vn": "ambient_digital", + "adnetwork.vn": "ambient_digital", + "ambientplatform.vn": "ambient_digital", + "amgload.net": "amgload.net", + "amoad.com": "amoad", + "ad.amgdgt.com": "amobee", + "ads.amgdgt.com": "amobee", + "amobee.com": "amobee", + "collective-media.net": "amp_platform", + "amplitude.com": "amplitude", + "d24n15hnbwhuhn.cloudfront.net": "amplitude", + "ampproject.org": "ampproject.org", + "anametrix.net": "anametrix", + "ancestrycdn.com": "ancestry_cdn", + "ancoraplatform.com": "ancora", + "android.com": "android", + "anetwork.ir": "anetwork", + "aniview.com": "aniview.com", + "a-ads.com": "anonymousads", + "anormal-tracker.de": "anormal_tracker", + "answerscloud.com": "answers_cloud_service", + "anthill.vn": "ants", + "ants.vn": "ants", + "rt.analytics.anvato.net": "anvato", + "tkx2-prod.anvato.net": "anvato", + "w3.cdn.anvato.net": "anvato", + "player.anyclip.com": "anyclip", + "video-loader.com": "aol_be_on", + "aolcdn.com": "aol_cdn", + "isp.netscape.com": "aol_cdn", + "apa.at": "apa.at", + "apester.com": "apester", + "apicit.net": "apicit.net", + "carrierzone.com": "aplus_analytics", + "appcenter.ms": "appcenter", + "appcues.com": "appcues", + "appdynamics.com": "appdynamics", + "de8of677fyt0b.cloudfront.net": "appdynamics", + "eum-appdynamics.com": "appdynamics", + "jscdn.appier.net": "appier", + "apple.com": "apple", + "aaplimg.com": "apple", + "apple-cloudkit.com": "apple", + "apple-dns.net": "apple", + "apple-livephotoskit.com": "apple", + "apple-mapkit.com": "apple", + "apple.news": "apple", + "apzones.com": "apple", + "cdn-apple.com": "apple", + "icloud-content.com": "apple", + "icloud.com": "apple", + "icons.axm-usercontent-apple.com": "apple", + "itunes.com": "apple", + "me.com": "apple", + "mzstatic.com": "apple", + "safebrowsing.apple": "apple", + "safebrowsing.g.applimg.com": "apple", + "iadsdk.apple.com": "apple_ads", + "applifier.com": "applifier", + "assets.applovin.com": "applovin", + "applovin.com": "applovin", + "applvn.com": "applovin", + "appmetrx.com": "appmetrx", + "adnxs.com": "appnexus", + "adnxs.net": "appnexus", + "appsflyer.com": "appsflyer", + "appsflyersdk.com": "appsflyer", + "adne.tv": "apptv", + "readserver.net": "apptv", + "www.apture.com": "apture", + "arcpublishing.com": "arcpublishing", + "ard.de": "ard.de", + "areyouahuman.com": "are_you_a_human", + "arkoselabs.com": "arkoselabs.com", + "art19.com": "art19", + "banners.advsnx.net": "artimedia", + "artlebedev.ru": "artlebedev.ru", + "ammadv.it": "aruba_media_marketing", + "arubamediamarketing.it": "aruba_media_marketing", + "cya2.net": "arvato_canvas_fp", + "asambeauty.com": "asambeauty.com", + "ask.com": "ask.com", + "aspnetcdn.com": "aspnetcdn", + "ads.assemblyexchange.com": "assemblyexchange", + "cdn.astronomer.io": "astronomer", + "ati-host.net": "at_internet", + "aticdn.net": "at_internet", + "xiti.com": "at_internet", + "atedra.com": "atedra", + "oadts.com": "atg_group", + "as00.estara.com": "atg_optimization", + "atgsvcs.com": "atg_recommendations", + "adbureau.net": "atlas", + "atdmt.com": "atlas", + "atlassbx.com": "atlas", + "track.roiservice.com": "atlas_profitbuilder", + "atl-paas.net": "atlassian.net", + "atlassian.com": "atlassian.net", + "atlassian.net": "atlassian.net", + "d12ramskps3070.cloudfront.net": "atlassian.net", + "bitbucket.org": "atlassian.net", + "jira.com": "atlassian.net", + "ss-inf.net": "atlassian.net", + "d1xfq2052q7thw.cloudfront.net": "atlassian_marketplace", + "marketplace.atlassian.com": "atlassian_marketplace", + "atomz.com": "atomz_search", + "atsfi.de": "atsfi_de", + "cdn.attracta.com": "attracta", + "locayta.com": "attraqt", + "ads.audience2media.com": "audience2media", + "qwobl.net": "audience_ad_network", + "revsci.net": "audience_science", + "wunderloop.net": "audience_science", + "12mlbe.com": "audiencerate", + "audiencesquare.com": "audiencesquare.com", + "ad.gt": "audiencesquare.com", + "audigent.com": "audiencesquare.com", + "hadronid.net": "audiencesquare.com", + "auditude.com": "auditude", + "audtd.com": "audtd.com", + "cdn.augur.io": "augur", + "aumago.com": "aumago", + "clicktracks.com": "aurea_clicktracks", + "ausgezeichnet.org": "ausgezeichnet_org", + "advertising.gov.au": "australia.gov", + "auth0.com": "auth0", + "ai.autoid.com": "autoid", + "optimost.com": "autonomy", + "oc-track.autonomycloud.com": "autonomy_campaign", + "track.yieldsoftware.com": "autonomy_campaign", + "api.autopilothq.com": "autopilothq", + "autoscout24.com": "autoscout24.com", + "autoscout24.net": "autoscout24.com", + "avail.net": "avail", + "analytics.avanser.com.au": "avanser", + "avmws.com": "avant_metrics", + "avantlink.com": "avantlink", + "ads.avazu.net": "avazu_network", + "avenseo.com": "avenseo", + "adspdbl.com": "avid_media", + "avocet.io": "avocet", + "aweber.com": "aweber", + "awin.com": "awin", + "awin1.com": "awin", + "perfb.com": "awin", + "ad.globe7.com": "axill", + "azadify.com": "azadify", + "azure.com": "azure", + "azure.net": "azure", + "azurefd.net": "azure", + "trafficmanager.net": "azure", + "blob.core.windows.net": "azure_blob_storage", + "azureedge.net": "azureedge.net", + "b2bcontext.ru": "b2bcontext", + "b2bvideo.ru": "b2bvideo", + "babator.com": "babator.com", + "backbeatmedia.com": "back_beat_media", + "widgets.backtype.com": "backtype_widgets", + "bahn.de": "bahn_de", + "img-bahn.de": "bahn_de", + "baidu.com": "baidu_ads", + "baidustatic.com": "baidu_ads", + "bdimg.com": "baidu_static", + "bdstatic.com": "baidu_static", + "baletingo.com": "baletingo.com", + "bangdom.com": "bangdom.com", + "widgets.bankrate.com": "bankrate", + "bannerconnect.net": "banner_connect", + "bannerflow.com": "bannerflow.com", + "bannerplay.com": "bannerplay", + "cdn.bannersnack.com": "bannersnack", + "dn3y71tq7jf07.cloudfront.net": "barilliance", + "getbarometer.s3.amazonaws.com": "barometer", + "basilic.io": "basilic.io", + "batanga.com": "batanga_network", + "t4ft.de": "batch_media", + "bauernative.com": "bauer_media", + "baur.de": "baur.de", + "baynote.net": "baynote_observer", + "bazaarvoice.com": "bazaarvoice", + "bbci.co.uk": "bbci", + "tracking.bd4travel.com": "bd4travel", + "beopinion.com": "be_opinion", + "bfmio.com": "beachfront", + "beaconads.com": "beacon_ad_network", + "beampulse.com": "beampulse.com", + "beanstalkdata.com": "beanstalk_data", + "bebi.com": "bebi", + "beeketing.com": "beeketing.com", + "beeline.ru": "beeline.ru", + "bidr.io": "beeswax", + "tracker.beezup.com": "beezup", + "begun.ru": "begun", + "behavioralengine.com": "behavioralengine", + "belboon.de": "belboon_gmbh", + "cdn.belco.io": "belco", + "belstat.be": "belstat", + "belstat.com": "belstat", + "belstat.de": "belstat", + "belstat.fr": "belstat", + "belstat.nl": "belstat", + "bemobile.ua": "bemobile.ua", + "tag.benchplatform.com": "bench_platform", + "betterttv.net": "betterttv", + "betweendigital.com": "betweendigital.com", + "intencysrv.com": "betweendigital.com", + "bid.run": "bid.run", + "bidgear.com": "bidgear", + "bidswitch.net": "bidswitch", + "exe.bid": "bidswitch", + "bttrack.com": "bidtellect", + "bidtheatre.com": "bidtheatre", + "bidvertiser.com": "bidvertiser", + "bigmobileads.com": "big_mobile", + "bigcommerce.com": "bigcommerce.com", + "bigmir.net": "bigmir.net", + "bigpoint-payment.com": "bigpoint", + "bigpoint.com": "bigpoint", + "bigpoint.net": "bigpoint", + "bpcdn.net": "bigpoint", + "bpsecure.com": "bigpoint", + "bildstatic.de": "bild", + "ad-cdn.bilgin.pro": "bilgin_pro", + "pixel.bilinmedia.net": "bilin", + "bat.r.msn.com": "bing_ads", + "bing.com": "bing_ads", + "bing.net": "bing_ads", + "virtualearth.net": "bing_maps", + "binge.com.au": "binge", + "view.binlayer.com": "binlayer", + "widgets.binotel.com": "binotel", + "esendra.fi": "bisnode", + "bitcoinplus.com": "bitcoin_miner", + "bit.ly": "bitly", + "bitrix.de": "bitrix", + "bitrix.info": "bitrix", + "bitrix.ru": "bitrix", + "bitrix24.com": "bitrix", + "bitrix24.com.br": "bitrix", + "bitwarden.com": "bitwarden", + "traffic.adxprts.com": "bizcn", + "jssr.jd.com": "blackdragon", + "blau.de": "blau.de", + "bnmla.com": "blink_new_media", + "blismedia.com": "blis", + "blogad.com.tw": "blogad", + "blogbang.com": "blogbang", + "www.blogcatalog.com": "blogcatalog", + "track.blogcounter.de": "blogcounter", + "blogfoster.com": "blogfoster.com", + "bloggerads.net": "bloggerads", + "blogher.com": "blogher", + "blogherads.com": "blogher", + "blogimg.jp": "blogimg.jp", + "blogsmithmedia.com": "blogsmithmedia.com", + "blogblog.com": "blogspot_com", + "blogger.com": "blogspot_com", + "blogspot.com": "blogspot_com", + "brcdn.com": "bloomreach", + "brsrvr.com": "bloomreach", + "brtstats.com": "bloomreach", + "offerpoint.net": "blue_cherry_group", + "blueserving.com": "blue_seed", + "blueconic.net": "blueconic.net", + "bluecore.com": "bluecore", + "triggeredmail.appspot.com": "bluecore", + "bkrtx.com": "bluekai", + "bluekai.com": "bluekai", + "adrevolver.com": "bluelithium", + "bluelithium.com": "bluelithium", + "bmmetrix.com": "bluemetrix", + "japanmetrix.jp": "bluemetrix", + "bluenewsupdate.info": "bluenewsupdate.info", + "bluestreak.com": "bluestreak", + "bluetriangletech.com": "bluetriangle", + "btttag.com": "bluetriangle", + "bodelen.com": "bodelen.com", + "tracking.bol.com": "bol_affiliate_program", + "qb.boldapps.net": "bold", + "secure.apps.shappify.com": "bold", + "boldchat.com": "boldchat", + "boltdns.net": "boltdns.net", + "bom.gov.au": "bom", + "ml314.com": "bombora", + "bongacams.com": "bongacams.com", + "bonial.com": "bonial", + "bonialconnect.com": "bonial", + "bonialserviceswidget.de": "bonial", + "boo-box.com": "boo-box", + "booking.com": "booking.com", + "bstatic.com": "booking.com", + "boostbox.com.br": "boost_box", + "boostervideo.ru": "booster_video", + "bootstrapcdn.com": "bootstrap", + "borrango.com": "borrango.com", + "scan.botscanner.com": "botscanner", + "boudja.com": "boudja.com", + "bounceexchange.com": "bounce_exchange", + "bouncex.com": "bouncex", + "bouncex.net": "bouncex", + "j.clickdensity.com": "box_uk", + "boxever.com": "boxever", + "brainient.com": "brainient", + "brainsins.com": "brainsins", + "d2xkqxdy6ewr93.cloudfront.net": "brainsins", + "mobileapptracking.com": "branch", + "app.link": "branch_metrics", + "branch.io": "branch_metrics", + "brandaffinity.net": "brand_affinity", + "go.cpmadvisors.com": "brand_networks", + "optorb.com": "brand_networks", + "brandmetrics.com": "brandmetrics.com", + "brandreachsys.com": "brandreach", + "rtbidder.net": "brandscreen", + "brandwire.tv": "brandwire.tv", + "branica.com": "branica", + "appboycdn.com": "braze", + "braze.com": "braze", + "brealtime.com": "brealtime", + "bridgetrack.com": "bridgetrack", + "brightcove.com": "brightcove", + "brightcove.net": "brightcove_player", + "analytics.brightedge.com": "brightedge", + "munchkin.brightfunnel.com": "brightfunnel", + "brightonclick.com": "brightonclick.com", + "btrll.com": "brightroll", + "p.brilig.com": "brilig", + "brillen.de": "brillen.de", + "broadstreetads.com": "broadstreet", + "bm23.com": "bronto", + "brow.si": "brow.si", + "browser-statistik.de": "browser-statistik", + "browser-update.org": "browser_update", + "btncdn.com": "btncdn.com", + "in.bubblestat.com": "bubblestat", + "brighteroption.com": "buddy_media", + "bufferapp.com": "buffer_button", + "bugherd.com": "bugherd.com", + "bugsnag.com": "bugsnag", + "d2wy8f7a9ursnm.cloudfront.net": "bugsnag", + "bulkhentai.com": "bulkhentai.com", + "bumlam.com": "bumlam.com", + "bunchbox.co": "bunchbox", + "bf-ad.net": "burda", + "bf-tools.net": "burda", + "bstatic.de": "burda_digital_systems", + "burstbeacon.com": "burst_media", + "burstnet.com": "burst_media", + "burt.io": "burt", + "d3q6px0y2suh5n.cloudfront.net": "burt", + "rich-agent.s3.amazonaws.com": "burt", + "richmetrics.com": "burt", + "stats.businessol.com": "businessonline_analytics", + "bttn.io": "button", + "buysellads.com": "buysellads", + "servedby-buysellads.com": "buysellads", + "buzzadexchange.com": "buzzadexchange.com", + "buzzador.com": "buzzador", + "buzzfed.com": "buzzfeed", + "bwbx.io": "bwbx.io", + "bypass.jp": "bypass", + "c1exchange.com": "c1_exchange", + "c3metrics.com": "c3_metrics", + "c3tag.com": "c3_metrics", + "c8.net.ua": "c8_network", + "cackle.me": "cackle.me", + "d1cerpgff739r9.cloudfront.net": "cadreon", + "d1qpxk1wfeh8v1.cloudfront.net": "cadreon", + "callpage.io": "call_page", + "callbackhunter.com": "callbackhunter", + "callmeasurement.com": "callbox", + "callibri.ru": "callibri", + "callrail.com": "callrail", + "calltracking.ru": "calltracking", + "caltat.com": "caltat.com", + "cam-content.com": "cam-content.com", + "camakaroda.com": "camakaroda.com", + "s.edkay.com": "campus_explorer", + "canddi.com": "canddi", + "canonical.com": "canonical", + "canvas.net": "canvas", + "canvasnetwork.com": "canvas", + "du11hjcvx0uqb.cloudfront.net": "canvas", + "kdata.fr": "capitaldata", + "captora.com": "captora", + "edge.capturemedia.network": "capture_media", + "cdn.capturly.com": "capturly", + "route.carambo.la": "carambola", + "carbonads.com": "carbonads", + "carbonads.net": "carbonads", + "fusionads.net": "carbonads", + "cardinalcommerce.com": "cardinal", + "cardlytics.com": "cardlytics", + "cdn.carrotquest.io": "carrot_quest", + "api.cartstack.com": "cartstack", + "caspion.com": "caspion", + "t.castle.io": "castle", + "3gl.net": "catchpoint", + "cbox.ws": "cbox", + "adlog.com.com": "cbs_interactive", + "cbsinteractive.com": "cbs_interactive", + "dw.com.com": "cbs_interactive", + "ccmbg.com": "ccm_benchmark", + "admission.net": "cdk_digital_marketing", + "cdn-net.com": "cdn-net.com", + "cdn13.com": "cdn13.com", + "cdn77.com": "cdn77", + "cdn77.org": "cdn77", + "cdnetworks.com": "cdnetworks.net", + "cdnetworks.net": "cdnetworks.net", + "cdnnetwok.xyz": "cdnnetwok_xyz", + "cdnondemand.org": "cdnondemand.org", + "cdnsure.com": "cdnsure.com", + "cdnvideo.com": "cdnvideo.com", + "cdnwidget.com": "cdnwidget.com", + "cedexis-radar.net": "cedexis_radar", + "cedexis-test.com": "cedexis_radar", + "cedexis.com": "cedexis_radar", + "cedexis.fastlylb.net": "cedexis_radar", + "cedexis.net": "cedexis_radar", + "celebrus.com": "celebrus", + "celtra.com": "celtra", + "cendyn.adtrack.calls.net": "cendyn", + "centraltag.com": "centraltag", + "brand-server.com": "centro", + "speed-trap.nl": "cerberus_speed-trap", + "link.ixs1.net": "certainsource", + "hits.e.cl": "certifica_metric", + "certona.net": "certona", + "res-x.com": "certona", + "gsn.chameleon.ad": "chameleon", + "chango.ca": "chango", + "chango.com": "chango", + "channelintelligence.com": "channel_intelligence", + "cptrack.de": "channel_pilot_solutions", + "channeladvisor.com": "channeladvisor", + "searchmarketing.com": "channeladvisor", + "channelfinder.net": "channelfinder", + "chaordicsystems.com": "chaordic", + "chartbeat.com": "chartbeat", + "chartbeat.net": "chartbeat", + "chartboost.com": "chartboost", + "chaser.ru": "chaser", + "cloud.chatbeacon.io": "chat_beacon", + "chatango.com": "chatango", + "call.chatra.io": "chatra", + "chaturbate.com": "chaturbate.com", + "chatwing.com": "chatwing", + "checkmystats.com.au": "checkmystats", + "chefkoch-cdn.de": "chefkoch_de", + "chefkoch.de": "chefkoch_de", + "tracker.chinmedia.vn": "chin_media", + "chinesean.com": "chinesean", + "chitika.net": "chitika", + "choicestream.com": "choicestream", + "api.getchute.com": "chute", + "media.chute.io": "chute", + "iqcontentplatform.de": "circit", + "data.circulate.com": "circulate", + "p.cityspark.com": "city_spark", + "cityads.ru": "cityads", + "gameleads.ru": "cityads", + "ciuvo.com": "ciuvo.com", + "widget.civey.com": "civey_widgets", + "civicscience.com": "civicscience.com", + "ciweb.ciwebgroup.com": "ciwebgroup", + "clcknads.pro": "clcknads.pro", + "pulseradius.com": "clear_pier", + "clearbit.com": "clearbit.com", + "clearsale.com.br": "clearsale", + "tag.clrstm.com": "clearstream.tv", + "api.clerk.io": "clerk.io", + "cleverpush.com": "clever_push", + "wzrkt.com": "clever_tap", + "cleversite.ru": "cleversite", + "script.click360.io": "click360", + "clickandchat.com": "click_and_chat", + "software.clickback.com": "click_back", + "hit.clickaider.com": "clickaider", + "clickaine.com": "clickaine", + "clickbank.net": "clickbank", + "cbproads.com": "clickbank_proads", + "adtoll.com": "clickbooth", + "clickbooth.com": "clickbooth", + "clickboothlnk.com": "clickbooth", + "clickcease.com": "clickcease", + "clickcertain.com": "clickcertain", + "remarketstats.com": "clickcertain", + "clickdesk.com": "clickdesk", + "analytics.clickdimensions.com": "clickdimensions", + "clickequations.net": "clickequations", + "clickexperts.net": "clickexperts", + "doublemax.net": "clickforce", + "clickinc.com": "clickinc", + "clickintext.net": "clickintext", + "clickky.biz": "clickky", + "9nl.be": "clickmeter", + "9nl.com": "clickmeter", + "9nl.eu": "clickmeter", + "9nl.it": "clickmeter", + "9nl.me": "clickmeter", + "clickmeter.com": "clickmeter", + "clickonometrics.pl": "clickonometrics", + "clickpoint.com": "clickpoint", + "clickpoint.it": "clickpoint", + "clickprotector.com": "clickprotector", + "clickreport.com": "clickreport", + "doogleonduty.com": "clickreport", + "ctn.go2cloud.org": "clicks_thru_networks", + "clicksor.com": "clicksor", + "hatid.com": "clicksor", + "lzjl.com": "clicksor", + "myroitracking.com": "clicksor", + "clicktale.com": "clicktale", + "clicktale.net": "clicktale", + "clicktale.pantherssl.com": "clicktale", + "clicktalecdn.sslcs.cdngc.net": "clicktale", + "clicktripz.com": "clicktripz", + "clickwinks.com": "clickwinks", + "getclicky.com": "clicky", + "staticstuff.net": "clicky", + "clickyab.com": "clickyab", + "clicmanager.fr": "clicmanager", + "eplayer.clipsyndicate.com": "clip_syndicate", + "www.is1.clixgalore.com": "clixgalore", + "clixmetrix.com": "clixmetrix", + "clixsense.com": "clixsense", + "cloud-media.fr": "cloud-media.fr", + "cloudflare.com": "cloudflare", + "cloudflare.net": "cloudflare", + "cloudflare-dm-cmpimg.com": "cloudflare", + "cloudflare-dns.com": "cloudflare", + "cloudflare-ipfs.com": "cloudflare", + "cloudflare-quic.com": "cloudflare", + "cloudflare-terms-of-service-abuse.com": "cloudflare", + "cloudflare.tv": "cloudflare", + "cloudflareaccess.com": "cloudflare", + "cloudflareclient.com": "cloudflare", + "cloudflareinsights.com": "cloudflare", + "cloudflareok.com": "cloudflare", + "cloudflareportal.com": "cloudflare", + "cloudflareresolve.com": "cloudflare", + "cloudflaressl.com": "cloudflare", + "cloudflarestatus.com": "cloudflare", + "cloudflarestream.com": "cloudflare", + "pacloudflare.com": "cloudflare", + "sn-cloudflare.com": "cloudflare", + "videodelivery.net": "cloudflare", + "cloudimg.io": "cloudimage.io", + "cloudinary.com": "cloudinary", + "clovenetwork.com": "clove_network", + "clustrmaps.com": "clustrmaps", + "cnbc.com": "cnbc", + "cnetcontent.com": "cnetcontent.com", + "cnstats.ru": "cnstats", + "cnzz.com": "cnzz.com", + "umeng.com": "cnzz.com", + "acc-hd.de": "coadvertise", + "client.cobrowser.net": "cobrowser", + "codeonclick.com": "codeonclick.com", + "cogocast.net": "cogocast", + "coin-have.com": "coin_have", + "appsha1.cointraffic.io": "coin_traffic", + "authedmine.com": "coinhive", + "coin-hive.com": "coinhive", + "coinhive.com": "coinhive", + "coinurl.com": "coinurl", + "coll1onf.com": "coll1onf.com", + "coll2onf.com": "coll2onf.com", + "service.collarity.com": "collarity", + "static.clmbtech.com": "columbia_online", + "combotag.com": "combotag", + "pdk.theplatform.com": "comcast_technology_solutions", + "theplatform.com": "comcast_technology_solutions", + "comm100.cn": "comm100", + "comm100.com": "comm100", + "cdn-cs.com": "commerce_sciences", + "cdn.mercent.com": "commercehub", + "link.mercent.com": "commercehub", + "commercialvalue.org": "commercialvalue.org", + "afcyhf.com": "commission_junction", + "anrdoezrs.net": "commission_junction", + "apmebf.com": "commission_junction", + "awltovhc.com": "commission_junction", + "emjcd.com": "commission_junction", + "ftjcfx.com": "commission_junction", + "lduhtrp.net": "commission_junction", + "qksz.net": "commission_junction", + "tkqlhce.com": "commission_junction", + "tqlkg.com": "commission_junction", + "yceml.net": "commission_junction", + "communicatorcorp.com": "communicator_corp", + "wowanalytics.co.uk": "communigator", + "c-col.com": "competexl", + "c.compete.com": "competexl", + "complex.com": "complex_media_network", + "complexmedianetwork.com": "complex_media_network", + "comprigo.com": "comprigo", + "comscore.com": "comscore", + "zqtk.net": "comscore", + "conative.de": "conative.de", + "condenast.com": "condenastdigital.com", + "conduit-banners.com": "conduit", + "conduit-data.com": "conduit", + "conduit.com": "conduit", + "confirmit.com": "confirmit", + "congstar.de": "congstar.de", + "connatix.com": "connatix.com", + "connected-by.connectad.io": "connectad", + "cdn.connecto.io": "connecto", + "connexity.net": "connexity", + "cxt.ms": "connexity", + "connextra.com": "connextra", + "rs6.net": "constant_contact", + "serverbid.com": "consumable", + "contactatonce.com": "contact_at_once", + "adrolays.de": "contact_impact", + "c-i.as": "contact_impact", + "df-srv.de": "contact_impact", + "d1uwd25yvxu96k.cloudfront.net": "contactme", + "static.contactme.com": "contactme", + "contaxe.com": "contaxe", + "content.ad": "content.ad", + "ingestion.contentinsights.com": "content_insights", + "contentexchange.me": "contentexchange.me", + "ctfassets.net": "contentful_gmbh", + "contentpass.de": "contentpass", + "contentpass.net": "contentpass", + "contentsquare.net": "contentsquare.net", + "d1aug3dv5magti.cloudfront.net": "contentwrx", + "d39se0h2uvfakd.cloudfront.net": "contentwrx", + "c-on-text.com": "context", + "intext.contextad.pl": "context.ad", + "continum.net": "continum_net", + "s2.contribusourcesyndication.com": "contribusource", + "hits.convergetrack.com": "convergetrack", + "fastclick.net": "conversant", + "mediaplex.com": "conversant", + "mplxtms.com": "conversant", + "cm-commerce.com": "conversio", + "media.conversio.com": "conversio", + "c.conversionlogic.net": "conversion_logic", + "conversionruler.com": "conversionruler", + "conversionsbox.com": "conversions_box", + "conversionsondemand.com": "conversions_on_demand", + "ant.conversive.nl": "conversive", + "convertexperiments.com": "convert", + "d3sjgucddk68ji.cloudfront.net": "convertfox", + "convertro.com": "convertro", + "d1ivexoxmp59q7.cloudfront.net": "convertro", + "conviva.com": "conviva", + "cookieconsent.silktide.com": "cookie_consent", + "cookie-script.com": "cookie_script", + "cookiebot.com": "cookiebot", + "cookieq.com": "cookieq", + "lite.piclens.com": "cooliris", + "copacet.com": "copacet", + "raasnet.com": "coreaudience", + "coremotives.com": "coremotives", + "coull.com": "coull", + "cpmrocket.com": "cpm_rocket", + "cpmprofit.com": "cpmprofit", + "cpmstar.com": "cpmstar", + "captifymedia.com": "cpx.to", + "cpx.to": "cpx.to", + "cqcounter.com": "cq_counter", + "cqq5id8n.com": "cqq5id8n.com", + "cquotient.com": "cquotient.com", + "craftkeys.com": "craftkeys", + "ads.crakmedia.com": "crakmedia_network", + "craktraffic.com": "crakmedia_network", + "crankyads.com": "crankyads", + "crashlytics.com": "crashlytics", + "cetrk.com": "crazy_egg", + "crazyegg.com": "crazy_egg", + "dnn506yrbagrg.cloudfront.net": "crazy_egg", + "creafi-online-media.com": "creafi", + "createjs.com": "createjs", + "creativecommons.org": "creative_commons", + "brandwatch.com": "crimsonhexagon_com", + "crimsonhexagon.com": "crimsonhexagon_com", + "hexagon-analytics.com": "crimsonhexagon_com", + "ctnsnet.com": "crimtan", + "crisp.chat": "crisp", + "crisp.im": "crisp", + "criteo.com": "criteo", + "criteo.net": "criteo", + "p.crm4d.com": "crm4d", + "crossengage.io": "crossengage", + "crosspixel.net": "crosspixel", + "crsspxl.com": "crosspixel", + "crosssell.info": "crosssell.info", + "crossss.com": "crossss", + "widget.crowdignite.com": "crowd_ignite", + "static.crowdscience.com": "crowd_science", + "ss.crowdprocess.com": "crowdprocess", + "our.glossip.nl": "crowdynews", + "widget.breakingburner.com": "crowdynews", + "widget.crowdynews.com": "crowdynews", + "searchg2.crownpeak.net": "crownpeak", + "snippet.omm.crownpeak.com": "crownpeak", + "cryptoloot.pro": "cryptoloot_miner", + "ctnetwork.hu": "ctnetwork", + "adzhub.com": "ctrlshift", + "data.withcubed.com": "cubed", + "cuelinks.com": "cuelinks", + "cdn.cupinteractive.com": "cup_interactive", + "curse.com": "curse.com", + "cursecdn.com": "cursecdn.com", + "assets.customer.io": "customer.io", + "widget.customerly.io": "customerly", + "cxense.com": "cxense", + "cxo.name": "cxo.name", + "cyberwing.co.jp": "cyber_wing", + "cybersource.com": "cybersource", + "cygnus.com": "cygnus", + "da-ads.com": "da-ads.com", + "dailymail.co.uk": "dailymail.co.uk", + "dailymotion.com": "dailymotion", + "dailymotionbus.com": "dailymotion", + "dm-event.net": "dailymotion", + "dmcdn.net": "dailymotion", + "dmxleo.com": "dailymotion_advertising", + "ds1.nl": "daisycon", + "dantrack.net": "dantrack.net", + "dmclick.cn": "darwin_marketing", + "tags.dashboardad.net": "dashboard_ad", + "datacaciques.com": "datacaciques.com", + "datacoral.com": "datacoral", + "abandonaid.com": "datacrushers", + "datacrushers.com": "datacrushers", + "datadome.co": "datadome", + "optimahub.com": "datalicious_datacollector", + "supert.ag": "datalicious_supertag", + "inextaction.net": "datalogix", + "nexac.com": "datalogix", + "datamind.ru": "datamind.ru", + "datatables.net": "datatables", + "adunits.datawrkz.com": "datawrkz", + "dataxpand.script.ag": "dataxpand", + "tc.dataxpand.com": "dataxpand", + "w55c.net": "dataxu", + "datds.net": "datds.net", + "pro-market.net": "datonics", + "displaymarketplace.com": "datran", + "davebestdeals.com": "davebestdeals.com", + "dawandastatic.com": "dawandastatic.com", + "dc-storm.com": "dc_stormiq", + "h4k5.com": "dc_stormiq", + "stormcontainertag.com": "dc_stormiq", + "stormiq.com": "dc_stormiq", + "dcbap.com": "dcbap.com", + "dcmn.com": "dcmn.com", + "statslogger.rocket.persgroep.cloud": "de_persgroep", + "deadlinefunnel.com": "deadline_funnel", + "cc2.dealer.com": "dealer.com", + "d9lq0o81skkdj.cloudfront.net": "dealer.com", + "esm1.net": "dealer.com", + "static.dealer.com": "dealer.com", + "decibelinsight.net": "decibel_insight", + "ads.dedicatedmedia.com": "dedicated_media", + "api.deep.bi": "deep.bi", + "deepintent.com": "deepintent.com", + "defpush.com": "defpush.com", + "deichmann.com": "deichmann.com", + "vxml4.delacon.com.au": "delacon", + "tracking.percentmobile.com": "delivr", + "adaction.se": "delta_projects", + "de17a.com": "delta_projects", + "deluxe.script.ag": "deluxe", + "delvenetworks.com": "delve_networks", + "company-target.com": "demandbase", + "demandbase.com": "demandbase", + "dmd53.com": "demandmedia", + "dmtracker.com": "demandmedia", + "deqwas.net": "deqwas", + "devatics.com": "devatics", + "developermedia.com": "developer_media", + "dapxl.com": "deviantart.net", + "deviantart.net": "deviantart.net", + "my.blueadvertise.com": "dex_platform", + "dgm-au.com": "dgm", + "s2d6.com": "dgm", + "d31y97ze264gaa.cloudfront.net": "dialogtech", + "d3von6il1wr7wo.cloudfront.net": "dianomi", + "dianomi.com": "dianomi", + "dianomioffers.co.uk": "dianomi", + "tag.didit.com": "didit_blizzard", + "track.did-it.com": "didit_maestro", + "privacy-center.org": "didomi", + "digg.com": "digg_widget", + "digicert.com": "digicert_trust_seal", + "phicdn.net": "digicert_trust_seal", + "digidip.net": "digidip", + "digiglitzmarketing.go2cloud.org": "digiglitz", + "wtp101.com": "digilant", + "digioh.com": "digioh", + "lightboxcdn.com": "digioh", + "digitalgov.gov": "digital.gov", + "cookiereports.com": "digital_control_room", + "adtag.cc": "digital_nomads", + "adready.com": "digital_remedy", + "adreadytractions.com": "digital_remedy", + "cpxinteractive.com": "digital_remedy", + "directtrack.com": "digital_river", + "onenetworkdirect.net": "digital_river", + "track.digitalriver.com": "digital_river", + "dwin1.com": "digital_window", + "digiteka.net": "digiteka", + "ultimedia.com": "digiteka", + "digitru.st": "digitrust", + "widget.dihitt.com.br": "dihitt_badge", + "dimml.io": "dimml", + "keywordsconnect.com": "direct_keyword_link", + "directadvert.ru": "directadvert", + "directrev.com": "directrev", + "discordapp.com": "discord", + "disneyplus.com": "disneyplus", + "bamgrid.com": "disneystreaming", + "dssedge.com": "disneystreaming", + "dssott.com": "disneystreaming", + "d81mfvml8p5ml.cloudfront.net": "display_block", + "disqus.com": "disqus", + "disquscdn.com": "disqus", + "disqusads.com": "disqus_ads", + "distiltag.com": "distil_tag", + "districtm.ca": "districtm.io", + "districtm.io": "districtm.io", + "jsrdn.com": "distroscale", + "div.show": "div.show", + "stats.vertriebsassistent.de": "diva", + "tag.divvit.com": "divvit", + "d-msquared.com": "dm2", + "and.co.uk": "dmg_media", + "dmm.co.jp": "dmm", + "ctret.de": "dmwd", + "toolbar.dockvine.com": "dockvine", + "awecr.com": "docler", + "fwbntw.com": "docler", + "s.dogannet.tv": "dogannet", + "domain.glass": "domainglass", + "www.domodomain.com": "domodomain", + "donation-tools.org": "donationtools", + "doofinder.com": "doofinder.com", + "embed.doorbell.io": "doorbell.io", + "dotandad.com": "dotandmedia", + "trackedlink.net": "dotmailer", + "dotmetrics.net": "dotmetrics.net", + "dotomi.com": "dotomi", + "dtmc.com": "dotomi", + "dtmpub.com": "dotomi", + "double.net": "double.net", + "2mdn.net": "doubleclick", + "doublepimp.com": "doublepimp", + "doublepimpssl.com": "doublepimp", + "redcourtside.com": "doublepimp", + "xeontopa.com": "doublepimp", + "zerezas.com": "doublepimp", + "doubleverify.com": "doubleverify", + "wrating.com": "dratio", + "adsymptotic.com": "drawbridge", + "dreame.tech": "dreame_tech", + "dreametech.com": "dreame_tech", + "dreamlab.pl": "dreamlab.pl", + "drift.com": "drift", + "js.driftt.com": "drift", + "getdrip.com": "drip", + "dropbox.com": "dropbox.com", + "dropboxstatic.com": "dropbox.com", + "z5x.net": "dsnr_media_group", + "dsp-rambler.ru": "dsp_rambler", + "m6d.com": "dstillery", + "media6degrees.com": "dstillery", + "dtscout.com": "dtscout.com", + "dd-cdn.multiscreensite.com": "dudamobile", + "px.multiscreensite.com": "dudamobile", + "cdn-0.d41.co": "dun_and_bradstreet", + "cn01.dwstat.cn": "dwstat.cn", + "dynad.net": "dynad", + "dyntrk.com": "dynadmic", + "dyntracker.de": "dynamic_1001_gmbh", + "media01.eu": "dynamic_1001_gmbh", + "content.dl-rms.com": "dynamic_logic", + "dlqm.net": "dynamic_logic", + "questionmarket.com": "dynamic_logic", + "dynamicyield.com": "dynamic_yield", + "beacons.hottraffic.nl": "dynata", + "dynatrace.com": "dynatrace.com", + "dyncdn.me": "dyncdn.me", + "e-planning.net": "e-planning", + "eadv.it": "eadv", + "eanalyzer.de": "eanalyzer.de", + "early-birds.fr": "early_birds", + "cdn.earnify.com": "earnify", + "earnify.com": "earnify_tracker", + "easyads.bg": "easyads", + "easylist.club": "easylist_club", + "classistatic.de": "ebay", + "ebay-us.com": "ebay", + "ebay.com": "ebay", + "ebay.de": "ebay", + "ebayclassifiedsgroup.com": "ebay", + "ebaycommercenetwork.com": "ebay", + "ebaydesc.com": "ebay", + "ebayimg.com": "ebay", + "ebayrtm.com": "ebay", + "ebaystatic.com": "ebay", + "ad.about.co.kr": "ebay_korea", + "adcheck.about.co.kr": "ebay_korea", + "adn.ebay.com": "ebay_partner_network", + "beead.co.uk": "ebuzzing", + "beead.fr": "ebuzzing", + "beead.net": "ebuzzing", + "ebuzzing.com": "ebuzzing", + "ebz.io": "ebuzzing", + "echoenabled.com": "echo", + "eclick.vn": "eclick", + "econda-monitor.de": "econda", + "eco-tag.jp": "ecotag", + "alphacdn.net": "edgio", + "edg.io": "edgio", + "edgecast.com": "edgio", + "edgecastcdn.net": "edgio", + "edgecastdns.net": "edgio", + "sigmacdn.net": "edgio", + "ecustomeropinions.com": "edigitalresearch", + "effectivemeasure.net": "effective_measure", + "effiliation.com": "effiliation", + "egain.net": "egain", + "cloud-emea.analytics-egain.com": "egain_analytics", + "ehi-siegel.de": "ehi-siegel_de", + "ekmpinpoint.com": "ekmpinpoint", + "ekomi.de": "ekomi", + "elasticad.net": "elastic_ad", + "elasticbeanstalk.com": "elastic_beanstalk", + "cloudcell.com": "electronic_arts", + "ea.com": "electronic_arts", + "eamobile.com": "electronic_arts", + "element.io": "element", + "riot.im": "element", + "elicitapp.com": "elicit", + "eloqua.com": "eloqua", + "en25.com": "eloqua", + "eluxer.net": "eluxer_net", + "tracker.emailaptitude.com": "email_aptitude", + "tag.email-attitude.com": "email_attitude", + "app.emarketeer.com": "emarketeer", + "embed.ly": "embed.ly", + "embedly.com": "embed.ly", + "emediate.dk": "emediate", + "emediate.eu": "emediate", + "emediate.se": "emediate", + "emetriq.de": "emetriq", + "e2ma.net": "emma", + "adinsight.co.kr": "emnet", + "colbenson.es": "empathy", + "emsmobile.de": "emsmobile.de", + "sitecompass.com": "encore_metrics", + "enectoanalytics.com": "enecto_analytics", + "trk.enecto.com": "enecto_analytics", + "track.engagesciences.com": "engage_sciences", + "widget.engageya.com": "engageya_widget", + "engagio.com": "engagio", + "engineseeker.com": "engineseeker", + "enquisite.com": "enquisite", + "adtlgc.com": "enreach", + "ats.tumri.net": "ensemble", + "ensighten.com": "ensighten", + "envolve.com": "envolve", + "cdn.callbackkiller.com": "envybox", + "email-reflex.com": "eperflex", + "epicgameads.com": "epic_game_ads", + "trafficmp.com": "epic_marketplace", + "adshost1.com": "epom", + "adshost2.com": "epom", + "epom.com": "epom", + "epoq.de": "epoq", + "banzaiadv.it": "eprice", + "eproof.com": "eproof", + "equitystory.com": "eqs_group", + "eqads.com": "eqworks", + "ero-advertising.com": "eroadvertising", + "eroadvertising.com": "eroadvertising", + "d15qhc0lu1ghnk.cloudfront.net": "errorception", + "errorception.com": "errorception", + "eshopcomp.com": "eshopcomp.com", + "espncdn.com": "espn_cdn", + "esprit.de": "esprit.de", + "cybermonitor.com": "estat", + "estat.com": "estat", + "teste-s3-maycon.s3.amazonaws.com": "etag", + "etahub.com": "etahub.com", + "etargetnet.com": "etarget", + "ethn.io": "ethnio", + "pages.etology.com": "etology", + "sa.etp-prod.com": "etp", + "etracker.com": "etracker", + "etracker.de": "etracker", + "sedotracker.com": "etracker", + "etrigue.com": "etrigue", + "etsystatic.com": "etsystatic", + "eulerian.net": "eulerian", + "eultech.fnac.com": "eulerian", + "ew3.io": "eulerian", + "euroads.dk": "euroads", + "euroads.fi": "euroads", + "euroads.no": "euroads", + "newpromo.europacash.com": "europecash", + "tracker.euroweb.net": "euroweb_counter", + "apptegic.com": "evergage.com", + "evergage.com": "evergage.com", + "listener.everstring.com": "everstring", + "waterfrontmedia.com": "everyday_health", + "betrad.com": "evidon", + "evidon.com": "evidon", + "evisitanalyst.com": "evisit_analyst", + "evisitcs.com": "evisit_analyst", + "websiteperform.com": "evisit_analyst", + "ads.exactdrive.com": "exact_drive", + "exactag.com": "exactag", + "exelator.com": "exelate", + "dynamicoxygen.com": "exitjunction", + "exitjunction.com": "exitjunction", + "exdynsrv.com": "exoclick", + "exoclick.com": "exoclick", + "exosrv.com": "exoclick", + "exoticads.com": "exoticads.com", + "expedia.com": "expedia", + "trvl-px.com": "expedia", + "eccmp.com": "experian", + "audienceiq.com": "experian_marketing_services", + "techlightenment.com": "experian_marketing_services", + "expo-max.com": "expo-max", + "server.exposebox.com": "expose_box", + "sf.exposebox.com": "expose_box_widgets", + "express.co.uk": "express.co.uk", + "d1lp05q4sghme9.cloudfront.net": "expressvpn", + "extreme-dm.com": "extreme_tracker", + "eyenewton.ru": "eye_newton", + "eyeota.net": "eyeota", + "eyereturn.com": "eyereturnmarketing", + "eyeviewads.com": "eyeview", + "ezakus.net": "ezakus", + "f11-ads.com": "f11-ads.com", + "facebook.com": "facebook", + "facebook.net": "facebook", + "graph.facebook.com": "facebook_audience", + "fbcdn.net": "facebook_cdn", + "fbsbx.com": "facebook_cdn", + "facetz.net": "facetz.dca", + "adsfac.eu": "facilitate_digital", + "adsfac.net": "facilitate_digital", + "adsfac.sg": "facilitate_digital", + "adsfac.us": "facilitate_digital", + "faktor.io": "faktor.io", + "thefancy.com": "fancy_widget", + "d1q7pknmpq2wkm.cloudfront.net": "fanplayr", + "fap.to": "fap.to", + "farlightgames.com": "farlight_pte_ltd", + "fastly-insights.com": "fastly_insights", + "fastly.net": "fastlylb.net", + "fastlylb.net": "fastlylb.net", + "fastly-edge.com": "fastlylb.net", + "fastly-masque.net": "fastlylb.net", + "fastpic.ru": "fastpic.ru", + "fmpub.net": "federated_media", + "fby.s3.amazonaws.com": "feedbackify", + "feedbackify.com": "feedbackify", + "feedburner.com": "feedburner.com", + "feedify.de": "feedify", + "feedjit.com": "feedjit", + "log.feedjit.com": "feedjit", + "tracking.feedperfect.com": "feedperfect", + "feedsportal.com": "feedsportal", + "feefo.com": "feefo", + "fidelity-media.com": "fidelity_media", + "fiksu.com": "fiksu", + "filamentapp.s3.amazonaws.com": "filament.io", + "fileserve.xyz": "fileserve", + "tools.financeads.net": "financeads", + "tracker.financialcontent.com": "financial_content", + "findizer.fr": "findizer.fr", + "findologic.com": "findologic.com", + "app-measurement.com": "firebase", + "fcm.googleapis.com": "firebase", + "firebase.com": "firebase", + "firebase.google.com": "firebase", + "firebase.googleapis.com": "firebase", + "firebaseapp.com": "firebase", + "firebaseappcheck.googleapis.com": "firebase", + "firebasedynamiclinks-ipv4.googleapis.com": "firebase", + "firebasedynamiclinks-ipv6.googleapis.com": "firebase", + "firebasedynamiclinks.googleapis.com": "firebase", + "firebaseinappmessaging.googleapis.com": "firebase", + "firebaseinstallations.googleapis.com": "firebase", + "firebaselogging-pa.googleapis.com": "firebase", + "firebaselogging.googleapis.com": "firebase", + "firebaseperusertopics-pa.googleapis.com": "firebase", + "firebaseremoteconfig.googleapis.com": "firebase", + "firebaseio.com": "firebaseio.com", + "firstimpression.io": "first_impression", + "fitanalytics.com": "fit_analytics", + "fivetran.com": "fivetran", + "flagads.net": "flag_ads", + "flagcounter.com": "flag_counter", + "flashnews.com.au": "flash", + "flashtalking.com": "flashtalking", + "flattr.com": "flattr_button", + "flexlinks.com": "flexoffers", + "linkoffers.net": "flexoffers", + "flickr.com": "flickr_badge", + "staticflickr.com": "flickr_badge", + "lflipboard.com": "flipboard", + "flipboard.com": "flipboard", + "flite.com": "flite", + "flixcdn.com": "flixcdn.com", + "flix360.com": "flixmedia", + "flixcar.com": "flixmedia", + "flocktory.com": "flocktory.com", + "flowplayer.org": "flowplayer", + "adingo.jp": "fluct", + "clicken.us": "fluent", + "strcst.net": "fluid", + "fluidads.co": "fluidads", + "fluidsurveys.com": "fluidsurveys", + "cdn.flurry.com": "flurry", + "data.flurry.com": "flurry", + "flurry.com": "flurry", + "flx1.com": "flxone", + "flxpxl.com": "flxone", + "api.flyertown.ca": "flyertown", + "adservinghost.com": "fmadserving", + "adservinginternational.com": "fmadserving", + "special.matchtv.ru": "fonbet", + "kavijaseuranta.fi": "fonecta", + "fontawesome.com": "fontawesome_com", + "foodieblogroll.com": "foodie_blogroll", + "footprintlive.com": "footprint", + "footprintdns.com": "footprintdns.com", + "forcetrac.com": "forcetrac", + "fqsecure.com": "forensiq", + "fqtag.com": "forensiq", + "securepaths.com": "forensiq", + "4seeresults.com": "foresee", + "foresee.com": "foresee", + "cdn-static.formisimo.com": "formisimo", + "forter.com": "forter", + "fortlachanhecksof.info": "fortlachanhecksof.info", + "platform.foursquare.com": "foursquare_widget", + "fout.jp": "fout.jp", + "fimserve.com": "fox_audience_network", + "foxsports.com.au": "fox_sports", + "fncstatic.com": "foxnews_static", + "cdn.foxpush.net": "foxpush", + "foxpush.com": "foxpush", + "foxtel.com.au": "foxtel", + "foxtelgroupcdn.net.au": "foxtel", + "foxydeal.com": "foxydeal_com", + "yabidos.com": "fraudlogix", + "besucherstatistiken.com": "free_counter", + "compteurdevisite.com": "free_counter", + "contadorvisitasgratis.com": "free_counter", + "contatoreaccessi.com": "free_counter", + "freecounterstat.com": "free_counter", + "statcounterfree.com": "free_counter", + "webcontadores.com": "free_counter", + "fastonlineusers.com": "free_online_users", + "fastwebcounter.com": "free_online_users", + "freeonlineusers.com": "free_online_users", + "atoomic.com": "free_pagerank", + "free-pagerank.com": "free_pagerank", + "freedom.com": "freedom_mortgage", + "freegeoip.net": "freegeoip_net", + "freenet.de": "freenet_de", + "freent.de": "freenet_de", + "freeview.com": "freeview", + "freeview.com.au": "freeview", + "freeviewaustralia.tv": "freeview", + "fwmrm.net": "freewheel", + "heimdall.fresh8.co": "fresh8", + "d36mpcpuzc4ztk.cloudfront.net": "freshdesk", + "freshdesk.com": "freshdesk", + "freshplum.com": "freshplum", + "friendbuy.com": "friendbuy", + "friendfeed.com": "friendfeed", + "adultfriendfinder.com": "friendfinder_network", + "amigos.com": "friendfinder_network", + "board-books.com": "friendfinder_network", + "cams.com": "friendfinder_network", + "facebookofsex.com": "friendfinder_network", + "getiton.com": "friendfinder_network", + "nostringsattached.com": "friendfinder_network", + "pop6.com": "friendfinder_network", + "streamray.com": "friendfinder_network", + "inpref.com": "frosmo_optimizer", + "inpref.s3-external-3.amazonaws.com": "frosmo_optimizer", + "inpref.s3.amazonaws.com": "frosmo_optimizer", + "adflan.com": "fruitflan", + "fruitflan.com": "fruitflan", + "fstrk.net": "fstrk.net", + "cookie.fuel451.com": "fuelx", + "fullstory.com": "fullstory", + "track.funnelytics.io": "funnelytics", + "angsrvr.com": "fyber", + "fyber.com": "fyber", + "game-advertising-online.com": "game_advertising_online", + "gameanalytics.com": "gameanalytics", + "gamedistribution.com": "gamedistribution.com", + "gamerdna.com": "gamerdna", + "gannett-cdn.com": "gannett", + "gaug.es": "gaug.es", + "gpm-digital.com": "gazprom-media_digital", + "js.gb-world.net": "gb-world", + "gdeslon.ru": "gdeslon", + "gdmdigital.com": "gdm_digital", + "gntm.geeen.co.jp": "geeen", + "lpomax.net": "geeen", + "gemius.pl": "gemius", + "generaltracking.de": "generaltracking_de", + "genesismedia.com": "genesis", + "gssprt.jp": "geniee", + "rsvpgenius.com": "genius", + "genoo.com": "genoo", + "js.geoads.com": "geoads", + "geolify.com": "geolify", + "geoplugin.net": "geoplugin", + "geotrust.com": "geotrust", + "geovisite.com": "geovisite", + "gestionpub.com": "gestionpub", + "app.getresponse.com": "get_response", + "getsitecontrol.com": "get_site_control", + "getconversion.net": "getconversion", + "widgets.getglue.com": "getglue", + "adhigh.net": "getintent", + "static.getkudos.me": "getkudos", + "yottos.com": "getmyad", + "gsfn.us": "getsatisfaction", + "gettyimages.com": "gettyimages", + "sensic.net": "gfk", + "gfycat.com": "gfycat.com", + "a.giantrealm.com": "giant_realm", + "videostat.com": "giantmedia", + "gigaonclick.com": "giga", + "analytics.gigyahosting1.com": "gigya", + "gigcount.com": "gigya", + "gigya.com": "gigya", + "service.giosg.com": "giosg", + "giphy.com": "giphy.com", + "giraff.io": "giraff.io", + "github.com": "github", + "githubassets.com": "github", + "githubusercontent.com": "github", + "ghcr.io": "github", + "github.blog": "github", + "github.dev": "github", + "octocaptcha.com": "github", + "githubapp.com": "github_apps", + "github.io": "github_pages", + "aff3.gittigidiyor.com": "gittigidiyor_affiliate_program", + "gittip.com": "gittip", + "sitest.jp": "glad_cube", + "glganltcs.space": "glganltcs.space", + "globalwebindex.net": "global_web_index", + "globalnotifier.com": "globalnotifier.com", + "globalsign.com": "globalsign", + "ad.globaltakeoff.net": "globaltakeoff", + "glomex.cloud": "glomex.com", + "glomex.com": "glomex.com", + "glotgrx.com": "glotgrx.com", + "a.gmdelivery.com": "gm_delivery", + "gmail.com": "gmail", + "ad.atown.jp": "gmo", + "gmx.net": "gmx_net", + "gmxpro.net": "gmx_net", + "go.com": "go.com", + "affiliate.godaddy.com": "godaddy_affiliate_program", + "trafficfacts.com": "godaddy_site_analytics", + "seal.godaddy.com": "godaddy_site_seal", + "tracking.godatafeed.com": "godatafeed", + "counter.goingup.com": "goingup", + "axf8.net": "gomez", + "goodadvert.ru": "goodadvert", + "google.at": "google", + "google.be": "google", + "google.ca": "google", + "google.ch": "google", + "google.co.id": "google", + "google.co.in": "google", + "google.co.jp": "google", + "google.co.ma": "google", + "google.co.th": "google", + "google.co.uk": "google", + "google.com": "google", + "google.com.ar": "google", + "google.com.au": "google", + "google.com.br": "google", + "google.com.mx": "google", + "google.com.tr": "google", + "google.com.tw": "google", + "google.com.ua": "google", + "google.cz": "google", + "google.de": "google", + "google.dk": "google", + "google.dz": "google", + "google.es": "google", + "google.fi": "google", + "google.fr": "google", + "google.gr": "google", + "google.hu": "google", + "google.ie": "google", + "google.it": "google", + "google.nl": "google", + "google.no": "google", + "google.pl": "google", + "google.pt": "google", + "google.ro": "google", + "google.rs": "google", + "google.ru": "google", + "google.se": "google", + "google.tn": "google", + "1e100.net": "google", + "agnss.goog": "google", + "channel.status.request.url": "google", + "g.cn": "google", + "g.co": "google", + "google.ad": "google", + "google.ae": "google", + "google.al": "google", + "google.am": "google", + "google.as": "google", + "google.az": "google", + "google.ba": "google", + "google.bf": "google", + "google.bg": "google", + "google.bi": "google", + "google.bj": "google", + "google.bs": "google", + "google.bt": "google", + "google.by": "google", + "google.cat": "google", + "google.cd": "google", + "google.cf": "google", + "google.cg": "google", + "google.ci": "google", + "google.cl": "google", + "google.cm": "google", + "google.cn": "google", + "google.co.ao": "google", + "google.co.bw": "google", + "google.co.ck": "google", + "google.co.cr": "google", + "google.co.il": "google", + "google.co.ke": "google", + "google.co.kr": "google", + "google.co.ls": "google", + "google.co.mz": "google", + "google.co.nz": "google", + "google.co.tz": "google", + "google.co.ug": "google", + "google.co.uz": "google", + "google.co.ve": "google", + "google.co.vi": "google", + "google.co.za": "google", + "google.co.zm": "google", + "google.co.zw": "google", + "google.com.af": "google", + "google.com.ag": "google", + "google.com.ai": "google", + "google.com.bd": "google", + "google.com.bh": "google", + "google.com.bn": "google", + "google.com.bo": "google", + "google.com.bz": "google", + "google.com.co": "google", + "google.com.cu": "google", + "google.com.cy": "google", + "google.com.ec": "google", + "google.com.eg": "google", + "google.com.et": "google", + "google.com.fj": "google", + "google.com.gh": "google", + "google.com.gi": "google", + "google.com.gt": "google", + "google.com.hk": "google", + "google.com.jm": "google", + "google.com.kh": "google", + "google.com.kw": "google", + "google.com.lb": "google", + "google.com.my": "google", + "google.com.na": "google", + "google.com.nf": "google", + "google.com.ng": "google", + "google.com.ni": "google", + "google.com.np": "google", + "google.com.om": "google", + "google.com.pa": "google", + "google.com.pe": "google", + "google.com.pg": "google", + "google.com.ph": "google", + "google.com.pk": "google", + "google.com.pr": "google", + "google.com.py": "google", + "google.com.qa": "google", + "google.com.sa": "google", + "google.com.sb": "google", + "google.com.sg": "google", + "google.com.sl": "google", + "google.com.sv": "google", + "google.com.tj": "google", + "google.com.uy": "google", + "google.com.vc": "google", + "google.com.vn": "google", + "google.cv": "google", + "google.dj": "google", + "google.dm": "google", + "google.ee": "google", + "google.fm": "google", + "google.ga": "google", + "google.ge": "google", + "google.gg": "google", + "google.gl": "google", + "google.gm": "google", + "google.gp": "google", + "google.gy": "google", + "google.hn": "google", + "google.hr": "google", + "google.ht": "google", + "google.im": "google", + "google.in": "google", + "google.iq": "google", + "google.is": "google", + "google.je": "google", + "google.jo": "google", + "google.kg": "google", + "google.ki": "google", + "google.kz": "google", + "google.la": "google", + "google.li": "google", + "google.lk": "google", + "google.lt": "google", + "google.lu": "google", + "google.lv": "google", + "google.md": "google", + "google.me": "google", + "google.mg": "google", + "google.mk": "google", + "google.ml": "google", + "google.mn": "google", + "google.ms": "google", + "google.mu": "google", + "google.mv": "google", + "google.mw": "google", + "google.ne": "google", + "google.net": "google", + "google.nr": "google", + "google.nu": "google", + "google.org": "google", + "google.pn": "google", + "google.ps": "google", + "google.rw": "google", + "google.sc": "google", + "google.sh": "google", + "google.si": "google", + "google.sk": "google", + "google.sm": "google", + "google.sn": "google", + "google.so": "google", + "google.sr": "google", + "google.st": "google", + "google.td": "google", + "google.tg": "google", + "google.tk": "google", + "google.tl": "google", + "google.tm": "google", + "google.to": "google", + "google.tt": "google", + "google.us": "google", + "google.vg": "google", + "google.vu": "google", + "google.ws": "google", + "googleapis.cn": "google", + "googlecode.com": "google", + "googledownloads.cn": "google", + "googleoptimize.com": "google", + "googleweblight.in": "google", + "googlezip.net": "google", + "gstatic.cn": "google", + "news.google.com": "google", + "oo.gl": "google", + "withgoogle.com": "google", + "googleadservices.com": "google_adservices", + "google-analytics.com": "google_analytics", + "app-analytics-services.com": "google_analytics", + "ssl-google-analytics.l.google.com": "google_analytics", + "www-googletagmanager.l.google.com": "google_analytics", + "appspot.com": "google_appspot", + "googlehosted.com": "google_appspot", + "accounts.google.com": "google_auth", + "myaccount.google.com": "google_auth", + "oauth2.googleapis.com": "google_auth", + "ogs.google.com": "google_auth", + "securetoken.googleapis.com": "google_auth", + "beacons-google.com": "google_beacons", + "alt1-mtalk.google.com": "google_chat", + "alt2-mtalk.google.com": "google_chat", + "alt3-mtalk.google.com": "google_chat", + "alt4-mtalk.google.com": "google_chat", + "alt5-mtalk.google.com": "google_chat", + "alt6-mtalk.google.com": "google_chat", + "alt7-mtalk.google.com": "google_chat", + "alt8-mtalk.google.com": "google_chat", + "chat.google.com": "google_chat", + "mobile-gtalk.l.google.com": "google_chat", + "mobile-gtalk4.l.google.com": "google_chat", + "mtalk.google.com": "google_chat", + "mtalk4.google.com": "google_chat", + "talk.google.com": "google_chat", + "talk.l.google.com": "google_chat", + "talkx.l.google.com": "google_chat", + "cloud.google.com": "google_cloud_platform", + "gcp.gvt2.com": "google_cloud_platform", + "storage.googleapis.com": "google_cloud_storage", + "adsensecustomsearchads.com": "google_custom_search", + "dns.google": "google_dns", + "dns.google.com": "google_dns", + "google-public-dns-a.google.com": "google_dns", + "google-public-dns-b.google.com": "google_dns", + "domains.google": "google_domains", + "googledomains.com": "google_domains", + "nic.google": "google_domains", + "registry.google": "google_domains", + "edge.google.com": "google_edge", + "mail-ads.google.com": "google_email", + "fonts.googleapis.com": "google_fonts", + "cloudfunctions.net": "google_hosted", + "ghs.googlehosted.com": "google_hosted", + "ghs4.googlehosted.com": "google_hosted", + "ghs46.googlehosted.com": "google_hosted", + "ghs6.googlehosted.com": "google_hosted", + "googlehosted.l.googleusercontent.com": "google_hosted", + "run.app": "google_hosted", + "supl.google.com": "google_location", + "earth.app.goo.gl": "google_maps", + "geo0.ggpht.com": "google_maps", + "geo1.ggpht.com": "google_maps", + "geo2.ggpht.com": "google_maps", + "geo3.ggpht.com": "google_maps", + "kh.google.com": "google_maps", + "maps.app.goo.gl": "google_maps", + "maps.google.ca": "google_maps", + "maps.google.ch": "google_maps", + "maps.google.co.jp": "google_maps", + "maps.google.co.uk": "google_maps", + "maps.google.com": "google_maps", + "maps.google.com.mx": "google_maps", + "maps.google.es": "google_maps", + "maps.google.se": "google_maps", + "maps.gstatic.com": "google_maps", + "doubleclick.net": "google_marketing", + "invitemedia.com": "google_marketing", + "adsense.google.com": "google_marketing", + "adservice.google.ca": "google_marketing", + "adservice.google.co.in": "google_marketing", + "adservice.google.co.kr": "google_marketing", + "adservice.google.co.uk": "google_marketing", + "adservice.google.co.za": "google_marketing", + "adservice.google.com": "google_marketing", + "adservice.google.com.ar": "google_marketing", + "adservice.google.com.au": "google_marketing", + "adservice.google.com.br": "google_marketing", + "adservice.google.com.co": "google_marketing", + "adservice.google.com.gt": "google_marketing", + "adservice.google.com.mx": "google_marketing", + "adservice.google.com.pe": "google_marketing", + "adservice.google.com.ph": "google_marketing", + "adservice.google.com.pk": "google_marketing", + "adservice.google.com.tr": "google_marketing", + "adservice.google.com.tw": "google_marketing", + "adservice.google.com.vn": "google_marketing", + "adservice.google.de": "google_marketing", + "adservice.google.dk": "google_marketing", + "adservice.google.es": "google_marketing", + "adservice.google.fr": "google_marketing", + "adservice.google.nl": "google_marketing", + "adservice.google.no": "google_marketing", + "adservice.google.pl": "google_marketing", + "adservice.google.ru": "google_marketing", + "adservice.google.vg": "google_marketing", + "adtrafficquality.google": "google_marketing", + "dai.google.com": "google_marketing", + "doubleclick.com": "google_marketing", + "doubleclickbygoogle.com": "google_marketing", + "googlesyndication-cn.com": "google_marketing", + "duo.google.com": "google_meet", + "hangouts.clients6.google.com": "google_meet", + "hangouts.google.com": "google_meet", + "hangouts.googleapis.com": "google_meet", + "meet.google.com": "google_meet", + "meetings.googleapis.com": "google_meet", + "stun.l.google.com": "google_meet", + "stun1.l.google.com": "google_meet", + "ggpht.com": "google_photos", + "play-fe.googleapis.com": "google_play", + "play-lh.googleusercontent.com": "google_play", + "play.google.com": "google_play", + "play.googleapis.com": "google_play", + "1e100cdn.net": "google_servers", + "gvt1.com": "google_servers", + "gvt2.com": "google_servers", + "gvt3.com": "google_servers", + "googlesyndication.com": "google_syndication", + "googletagmanager.com": "google_tag_manager", + "googletagservices.com": "google_tag_manager", + "translate.google.com": "google_translate", + "googletraveladservices.com": "google_travel_adds", + "pki.goog": "google_trust_services", + "googlecommerce.com": "google_trusted_stores", + "googleusercontent.com": "google_users", + "telephony.goog": "google_voice", + "voice.google.com": "google_voice", + "gmodules.com": "google_widgets", + "calendar.google.com": "google_workspace", + "contacts.google.com": "google_workspace", + "currents.google.com": "google_workspace", + "docs.google.com": "google_workspace", + "drive.google.com": "google_workspace", + "forms.google.com": "google_workspace", + "gsuite.google.com": "google_workspace", + "jamboard.google.com": "google_workspace", + "keep.google.com": "google_workspace", + "plus.google.com": "google_workspace", + "sheets.google.com": "google_workspace", + "slides.google.com": "google_workspace", + "spreadsheets.google.com": "google_workspace", + "googleapis.com": "googleapis.com", + "gooal.herokuapp.com": "goooal", + "gooo.al": "goooal", + "cdn.triggertag.gorillanation.com": "gorilla_nation", + "evolvemediametrics.com": "gorilla_nation", + "d1l6p2sc9645hc.cloudfront.net": "gosquared", + "gosquared.com": "gosquared", + "gostats.com": "gostats", + "govmetric.com": "govmetric", + "servmetric.com": "govmetric", + "b.grabo.bg": "grabo_affiliate", + "trw12.com": "grandslammedia", + "tuberewards.com": "grandslammedia", + "d2bw638ufki166.cloudfront.net": "granify", + "granify.com": "granify", + "grapeshot.co.uk": "grapeshot", + "gscontxt.net": "grapeshot", + "graphcomment.com": "graph_comment", + "gravatar.com": "gravatar", + "cdn.gravitec.net": "gravitec", + "gravity.com": "gravity_insights", + "grvcdn.com": "gravity_insights", + "greatviews.de": "greatviews.de", + "gandrad.org": "green_and_red", + "green-red.com": "green_and_red", + "co2stats.com": "green_certified_site", + "greenstory.ca": "green_story", + "greentube.com": "greentube.com", + "gt-cdn.net": "greentube.com", + "greystripe.com": "greystripe", + "groovehq.com": "groove", + "groovinads.com": "groovinads", + "bidagent.xad.com": "groundtruth", + "gmads.net": "groupm_server", + "grmtech.net": "groupm_server", + "media.gsimedia.net": "gsi_media", + "gstatic.com": "gstatic", + "fx.gtop.ro": "gtop", + "fx.gtopstats.com": "gtop", + "gubagootracking.com": "gugaboo", + "guj.de": "guj.de", + "emsservice.de": "gujems", + "gumgum.com": "gumgum", + "gumroad.com": "gumroad", + "gunggo.com": "gunggo", + "h12-media.com": "h12_ads", + "h12-media.net": "h12_ads", + "hnbutton.appspot.com": "hacker_news_button", + "haendlerbund.de": "haendlerbund.de", + "halogennetwork.com": "halogen_network", + "d1l7z5ofrj6ab8.cloudfront.net": "happy_fox_chat", + "ad.harrenmedianetwork.com": "harren_media", + "ads.networkhm.com": "harren_media", + "app.hatchbuck.com": "hatchbuck", + "hhcdn.ru": "head_hunter", + "healte.de": "healte.de", + "d36lvucg9kzous.cloudfront.net": "heap", + "heapanalytics.com": "heap", + "heatmap.it": "heatmap", + "weltsport.net": "heimspiel", + "hellobar.com": "hello_bar", + "hellosociety.com": "hellosociety", + "here.com": "here", + "herokuapp.com": "heroku", + "heureka.cz": "heureka-widget", + "heybubble.com": "heybubble", + "heyos.com": "heyos", + "adlink.net": "hi-media_performance", + "comclick.com": "hi-media_performance", + "hi-mediaserver.com": "hi-media_performance", + "himediads.com": "hi-media_performance", + "himediadx.com": "hi-media_performance", + "hiconversion.com": "hiconversion", + "highwebmedia.com": "highwebmedia.com", + "hwcdn.net": "highwinds", + "hiiir.com": "hiiir", + "hiro.tv": "hiro", + "histats.com": "histats", + "hit-parade.com": "hit-parade", + "hit.ua": "hit.ua", + "hitslink.com": "hitslink", + "hitsprocessor.com": "hitslink", + "hitsniffer.com": "hitsniffer", + "hittail.com": "hittail", + "hivedx.com": "hivedx.com", + "ads.thehiveworks.com": "hiveworks", + "hockeyapp.net": "hockeyapp", + "hoholikik.club": "hoholikik.club", + "h-cdn.com": "hola_player", + "homeaway.com": "homeaway", + "honeybadger.io": "honeybadger", + "hlserve.com": "hooklogic", + "apiae.hopscore.com": "hop-cube", + "hotdogsandads.com": "hotdogsandads.com", + "hotjar.com": "hotjar", + "hotkeys.com": "hotkeys", + "hotlog.ru": "hotlog.ru", + "hotwords.com": "hotwords", + "hotwords.es": "hotwords", + "howtank.com": "howtank.com", + "hqentertainmentnetwork.com": "hqentertainmentnetwork.com", + "justservingfiles.net": "hqentertainmentnetwork.com", + "hsoub.com": "hsoub", + "hstrck.com": "hstrck.com", + "httpool.com": "httpool", + "toboads.com": "httpool", + "hubrus.com": "hubrus", + "hs-analytics.net": "hubspot", + "hs-scripts.com": "hubspot", + "hsleadflows.net": "hubspot", + "hubapi.com": "hubspot", + "hubspot.com": "hubspot", + "forms.hubspot.com": "hubspot_forms", + "hubvisor.io": "hubvisor.io", + "files.hucksterbot.com": "hucksterbot", + "hupso.com": "hupso", + "hurra.com": "hurra_tracker", + "hybrid.ai": "hybrid.ai", + "targetix.net": "hybrid.ai", + "hypeads.org": "hype_exchange", + "hypercomments.com": "hypercomments", + "hyves.nl": "hyves_widgets", + "hyvyd.com": "hyvyd", + "ib-ibi.com": "i-behavior", + "i-mobile.co.jp": "i-mobile", + "r.i.ua": "i.ua", + "i10c.net": "i10c.net", + "i2i.jp": "i2i.jp", + "i2idata.com": "i2i.jp", + "consensu.org": "iab_consent", + "iadvize.com": "iadvize", + "cmcore.com": "ibm_customer_experience", + "coremetrics.com": "ibm_customer_experience", + "coremetrics.eu": "ibm_customer_experience", + "tracker.icerocket.com": "icerocket_tracker", + "nsimg.net": "icf_technology", + "optimix.asia": "iclick", + "ic-live.com": "icrossing", + "icstats.nl": "icstats", + "icuazeczpeoohx.com": "icuazeczpeoohx.com", + "id-news.net": "id-news.net", + "idcdn.de": "id-news.net", + "eu-1-id5-sync.com": "id5-sync", + "id5-sync.com": "id5-sync", + "id5.io": "id5-sync", + "cdn.id.services": "id_services", + "e-generator.com": "ideal_media", + "idealo.com": "idealo_com", + "identrust.com": "identrust", + "ideoclick.com": "ideoclick", + "s.idio.co": "idio", + "ie8eamus.com": "ie8eamus.com", + "600z.com": "ientry", + "api.iflychat.com": "iflychat", + "ignitionone.com": "ignitionone", + "knotice.net": "ignitionone", + "igodigital.com": "igodigital", + "ad.wsod.com": "ihs_markit", + "collserve.com": "ihs_markit_online_shopper_insigh", + "ihvmcqojoj.com": "ihvmcqojoj.com", + "iias.eu": "iias.eu", + "ijento.com": "ijento", + "adv.imadrep.co.kr": "imad", + "worthathousandwords.com": "image_advantage", + "picadmedia.com": "image_space_media", + "imgix.net": "imgix.net", + "imgur.com": "imgur", + "vidigital.ru": "imho_vi", + "immanalytics.com": "immanalytics", + "immobilienscout24.de": "immobilienscout24_de", + "static-immobilienscout24.de": "immobilienscout24_de", + "imonomy.com": "imonomy", + "7eer.net": "impact_radius", + "d3cxv97fi8q177.cloudfront.net": "impact_radius", + "evyy.net": "impact_radius", + "impactradius-event.com": "impact_radius", + "impactradius-tag.com": "impact_radius", + "impactradius.com": "impact_radius", + "ojrq.net": "impact_radius", + "r7ls.net": "impact_radius", + "impresionesweb.com": "impresiones_web", + "360yield.com": "improve_digital", + "iljmp.com": "improvely", + "inbenta.com": "inbenta", + "inboxsdk.com": "inboxsdk.com", + "indeed.com": "indeed", + "casalemedia.com": "index_exchange", + "indexww.com": "index_exchange", + "indieclick.com": "indieclick", + "industrybrains.com": "industry_brains", + "impdesk.com": "infectious_media", + "impressiondesk.com": "infectious_media", + "zachysprod.infiniteanalytics.com": "infinite_analytics", + "infinity-tracking.net": "infinity_tracking", + "engine.influads.com": "influads", + "infolinks.com": "infolinks", + "intextscript.com": "infolinks", + "ioam.de": "infonline", + "iocnt.net": "infonline", + "ivwbox.de": "infonline", + "informer.com": "informer_technologies", + "infusionsoft.com": "infusionsoft", + "keap.com": "infusionsoft", + "innity.com": "innity", + "innity.net": "innity", + "innogames.com": "innogames.de", + "innogames.de": "innogames.de", + "innogamescdn.com": "innogames.de", + "innovid.com": "innovid", + "inside-graph.com": "inside", + "useinsider.com": "insider", + "insightexpressai.com": "insightexpress", + "inskinad.com": "inskin_media", + "inskinmedia.com": "inskin_media", + "inspectlet.com": "inspectlet", + "inspsearchapi.com": "inspsearchapi.com", + "cdninstagram.com": "instagram_com", + "instagram.com": "instagram_com", + "tcgtrkr.com": "instant_check_mate", + "sdad.guru": "instart_logic", + "insticator.com": "insticator", + "load.instinctiveads.com": "instinctive", + "intango.com": "intango", + "adsafeprotected.com": "integral_ad_science", + "iasds01.com": "integral_ad_science", + "integral-marketing.com": "integral_marketing", + "intelliad.com": "intelliad", + "intelliad.de": "intelliad", + "saas.intelligencefocus.com": "intelligencefocus", + "ist-track.com": "intelligent_reach", + "intensedebate.com": "intense_debate", + "intentiq.com": "intent_iq", + "intentmedia.net": "intent_media", + "intercom.com": "intercom", + "intercom.io": "intercom", + "intercomassets.com": "intercom", + "intercomcdn.com": "intercom", + "interedy.info": "interedy.info", + "ads.intergi.com": "intergi", + "intermarkets.net": "intermarkets.net", + "intermundomedia.com": "intermundo_media", + "bbelements.com": "internet_billboard", + "goadservices.com": "internet_billboard", + "ibillboard.com": "internet_billboard", + "mediainter.net": "internet_billboard", + "voice2page.com": "internetaudioads", + "ibpxl.com": "internetbrands", + "ibsrv.net": "internetbrands", + "interpolls.com": "interpolls", + "ps7894.com": "interyield", + "intilery-analytics.com": "intilery", + "im-apps.net": "intimate_merger", + "investingchannel.com": "investingchannel", + "inviziads.com": "inviziads", + "js12.invoca.net": "invoca", + "ringrevenue.com": "invoca", + "invodo.com": "invodo", + "ionicframework.com": "ionicframework.com", + "dsp.io": "iotec", + "iesnare.com": "iovation", + "iovation.com": "iovation", + "ip-label.net": "ip-label", + "eltoro.com": "ip_targeting", + "iptargeting.com": "ip_targeting", + "ip-tracker.org": "ip_tracker", + "iptrack.io": "ip_tracker", + "iperceptions.com": "iperceptions", + "dust.ipfingerprint.com": "ipfingerprint", + "mbww.com": "ipg_mediabrands", + "ipify.org": "ipify", + "ipinfo.io": "ipinfo", + "iplogger.ru": "iplogger", + "centraliprom.com": "iprom", + "iprom.net": "iprom", + "ipromote.com": "ipromote", + "clickmanage.com": "iprospect", + "iq.com": "iqiyi", + "iqiyi.com": "iqiyi", + "qy.net": "iqiyi", + "addelive.com": "ironsource", + "afdads.com": "ironsource", + "delivery47.com": "ironsource", + "ironsrc.com": "ironsource", + "ironsrc.net": "ironsource", + "is.com": "ironsource", + "soom.la": "ironsource", + "supersonicads.com": "ironsource", + "tapjoy.com": "ironsource", + "adsbyisocket.com": "isocket", + "isocket.com": "isocket", + "isolarcloud.com": "isolarcloud", + "isolarcloud.com.a.lahuashanbx.com": "isolarcloud", + "isolarcloud.com.w.cdngslb.com": "isolarcloud", + "isolarcloud.com.w.kunlunsl.com": "isolarcloud", + "ispot.tv": "ispot.tv", + "itineraire.info": "itineraire.info", + "autolinkmaker.itunes.apple.com": "itunes_link_maker", + "ity.im": "ity.im", + "iubenda.com": "iubenda.com", + "ivcbrasil.org.br": "ivcbrasil.org.br", + "ivitrack.com": "ividence", + "iwiw.hu": "iwiw_widgets", + "ixiaa.com": "ixi_digital", + "ixquick.com": "ixquick.com", + "cdn.izooto.com": "izooto", + "jlist.com": "j-list_affiliate_program", + "getjaco.com": "jaco", + "janrainbackplane.com": "janrain", + "rpxnow.com": "janrain", + "jeeng.com": "jeeng", + "api.jeeng.com": "jeeng_widgets", + "phone-analytics.com": "jet_interactive", + "grazie.ai": "jetbrains", + "intellij.net": "jetbrains", + "jb.gg": "jetbrains", + "jetbrains.ai": "jetbrains", + "jetbrains.com": "jetbrains", + "jetbrains.com.cn": "jetbrains", + "jetbrains.dev": "jetbrains", + "jetbrains.net": "jetbrains", + "jetbrains.org": "jetbrains", + "jetbrains.ru": "jetbrains", + "jetbrains.space": "jetbrains", + "kotl.in": "jetbrains", + "kotlinconf.com": "jetbrains", + "kotlinlang.org": "jetbrains", + "myjetbrains.com": "jetbrains", + "talkingkotlin.com": "jetbrains", + "jetlore.com": "jetlore", + "pixel.wp.com": "jetpack", + "stats.wp.com": "jetpack", + "jetpackdigital.com": "jetpack_digital", + "jimcdn.com": "jimdo.com", + "jimdo.com": "jimdo.com", + "jimstatic.com": "jimdo.com", + "ads.jinkads.com": "jink", + "jirafe.com": "jirafe", + "jivosite.com": "jivochat", + "jivox.com": "jivox", + "jobs2careers.com": "jobs_2_careers", + "joinhoney.com": "joinhoney", + "create.leadid.com": "jornaya", + "d1tprjo2w7krrh.cloudfront.net": "jornaya", + "cdnjquery.com": "jquery", + "jquery.com": "jquery", + "cjmooter.xcache.kinxcdn.com": "js_communications", + "jsdelivr.net": "jsdelivr", + "jsecoin.com": "jse_coin", + "jsuol.com.br": "jsuol.com.br", + "contentabc.com": "juggcash", + "mofos.com": "juggcash", + "juiceadv.com": "juiceadv", + "juicyads.com": "juicyads", + "cdn.jumplead.com": "jumplead", + "jumpstarttaggingsolutions.com": "jumpstart_tagging_solutions", + "jumptap.com": "jumptap", + "jump-time.net": "jumptime", + "jumptime.com": "jumptime", + "components.justanswer.com": "just_answer", + "justpremium.com": "just_premium", + "justpremium.nl": "just_premium", + "justrelevant.com": "just_relevant", + "jvc.gg": "jvc.gg", + "d21rhj7n383afu.cloudfront.net": "jw_player", + "jwpcdn.com": "jw_player", + "jwplatform.com": "jw_player", + "jwplayer.com": "jw_player", + "jwpltx.com": "jw_player", + "jwpsrv.com": "jw_player", + "ltassrv.com": "jw_player_ad_solutions", + "kaeufersiegel.de": "kaeufersiegel.de", + "kairion.de": "kairion.de", + "kctag.net": "kairion.de", + "kaloo.ga": "kaloo.ga", + "kaltura.com": "kaltura", + "kameleoon.com": "kameleoon", + "kameleoon.eu": "kameleoon", + "kampyle.com": "kampyle", + "kanoodle.com": "kanoodle", + "kmi-us.com": "kantar_media", + "tnsinternet.be": "kantar_media", + "karambasecurity.com": "karambasecurity", + "kargo.com": "kargo", + "kaspersky-labs.com": "kaspersky-labs.com", + "kataweb.it": "kataweb.it", + "cen.katchup.fr": "katchup", + "kau.li": "kauli", + "kavanga.ru": "kavanga", + "kayosports.com.au": "kayo_sports", + "dc8na2hxrj29i.cloudfront.net": "keen_io", + "keen.io": "keen_io", + "widget.kelkoo.com": "kelkoo", + "xg4ken.com": "kenshoo", + "keymetric.net": "keymetric", + "lb.keytiles.com": "keytiles", + "keywee.co": "keywee", + "keywordmax.com": "keywordmax", + "massrelevance.com": "khoros", + "tweetriver.com": "khoros", + "khzbeucrltin.com": "khzbeucrltin.com", + "ping.kickfactory.com": "kickfactory", + "sa-as.com": "kickfire", + "sniff.visistat.com": "kickfire", + "stats.visistat.com": "kickfire", + "apikik.com": "kik", + "kik-gateway-use1.meetme.com": "kik", + "kik-live.com": "kik", + "kik-stream.meetme.com": "kik", + "kik.com": "kik", + "king.com": "king.com", + "midasplayer.com": "king_com", + "kinja-img.com": "kinja.com", + "kinja-static.com": "kinja.com", + "kinja.com": "kinja.com", + "kiosked.com": "kiosked", + "doug1izaerwt3.cloudfront.net": "kissmetrics.com", + "kissmetrics.com": "kissmetrics.com", + "ad.103092804.com": "kitara_media", + "kmdisplay.com": "kitara_media", + "kixer.com": "kixer", + "klarna.com": "klarna.com", + "a.klaviyo.com": "klaviyo", + "klaviyo.com": "klaviyo", + "klikki.com": "klikki", + "scr.kliksaya.com": "kliksaya", + "mediapeo2.com": "kmeleo", + "knoopstat.nl": "knoopstat", + "knotch.it": "knotch", + "komoona.com": "komoona", + "kona.kontera.com": "kontera_contentlink", + "ktxtr.com": "kontextr", + "kontextua.com": "kontextua", + "cleanrm.net": "korrelate", + "korrelate.net": "korrelate", + "trackit.ktxlytics.io": "kortx", + "kaptcha.com": "kount", + "krxd.net": "krux_digital", + "d31bfnnwekbny6.cloudfront.net": "kupona", + "kpcustomer.de": "kupona", + "q-sis.de": "kupona", + "kxcdn.com": "kxcdn.com", + "cdn.kyto.com": "kyto", + "cd-ladsp-com.s3.amazonaws.com": "ladsp.com", + "ladmp.com": "ladsp.com", + "ladsp.com": "ladsp.com", + "lanistaads.com": "lanista_concepts", + "latimes.com": "latimes", + "events.launchdarkly.com": "launch_darkly", + "launchdarkly.com": "launch_darkly", + "launchbit.com": "launchbit", + "launchpad.net": "launchpad", + "launchpadcontent.net": "launchpad", + "layer-ad.org": "layer-ad.org", + "ph-live.slatic.net": "lazada", + "slatic.net": "lazada", + "lcxdigital.com": "lcx_digital", + "lemde.fr": "le_monde.fr", + "t1.llanalytics.com": "lead_liaison", + "leadback.ru": "leadback", + "leaddyno.com": "leaddyno", + "123-tracker.com": "leadforensics", + "55-trk-srv.com": "leadforensics", + "business-path-55.com": "leadforensics", + "click-to-trace.com": "leadforensics", + "cloud-exploration.com": "leadforensics", + "cloud-journey.com": "leadforensics", + "cloud-trail.com": "leadforensics", + "cloudpath82.com": "leadforensics", + "cloudtracer101.com": "leadforensics", + "discover-path.com": "leadforensics", + "discovertrail.net": "leadforensics", + "domainanalytics.net": "leadforensics", + "dthvdr9.com": "leadforensics", + "explore-123.com": "leadforensics", + "finger-info.net": "leadforensics", + "forensics1000.com": "leadforensics", + "ip-route.net": "leadforensics", + "ipadd-path.com": "leadforensics", + "iproute66.com": "leadforensics", + "lead-123.com": "leadforensics", + "lead-analytics-1000.com": "leadforensics", + "lead-watcher.com": "leadforensics", + "leadforensics.com": "leadforensics", + "ledradn.com": "leadforensics", + "letterbox-path.com": "leadforensics", + "letterboxtrail.com": "leadforensics", + "network-handle.com": "leadforensics", + "path-follower.com": "leadforensics", + "path-trail.com": "leadforensics", + "scan-trail.com": "leadforensics", + "site-research.net": "leadforensics", + "srv1010elan.com": "leadforensics", + "the-lead-tracker.com": "leadforensics", + "trace-2000.com": "leadforensics", + "track-web.net": "leadforensics", + "trackdiscovery.net": "leadforensics", + "trackercloud.net": "leadforensics", + "trackinvestigate.net": "leadforensics", + "trail-viewer.com": "leadforensics", + "trail-web.com": "leadforensics", + "trailbox.net": "leadforensics", + "trailinvestigator.com": "leadforensics", + "web-path.com": "leadforensics", + "webforensics.co.uk": "leadforensics", + "websiteexploration.com": "leadforensics", + "www-path.com": "leadforensics", + "gate.leadgenic.com": "leadgenic", + "leadhit.ru": "leadhit", + "js.leadin.com": "leadin", + "io.leadingreports.de": "leading_reports", + "js.leadinspector.de": "leadinspector", + "formalyzer.com": "leadlander", + "trackalyzer.com": "leadlander", + "analytics.leadlifesolutions.net": "leadlife", + "my.leadpages.net": "leadpages", + "leadplace.fr": "leadplace", + "scorecard.wspisp.net": "leads_by_web.com", + "www.leadscoreapp.dk": "leadscoreapp", + "tracker.leadsius.com": "leadsius", + "leady.com": "leady", + "leady.cz": "leady", + "leiki.com": "leiki", + "lengow.com": "lengow", + "lenmit.com": "lenmit.com", + "lentainform.com": "lentainform.com", + "lenua.de": "lenua.de", + "letreach.com": "let_reach", + "lencr.org": "lets_encrypt", + "letsencrypt.org": "lets_encrypt", + "js.letvcdn.com": "letv", + "footprint.net": "level3_communications", + "alphonso.tv": "lgads", + "lgads.tv": "lgads", + "lg.com": "lgtv", + "lge.com": "lgtv", + "lgsmartad.com": "lgtv", + "lgtvcommon.com": "lgtv", + "lgtvsdp.com": "lgtv", + "licensebuttons.net": "licensebuttons.net", + "lfstmedia.com": "lifestreet_media", + "content-recommendation.net": "ligatus", + "ligadx.com": "ligatus", + "ligatus.com": "ligatus", + "ligatus.de": "ligatus", + "veeseo.com": "ligatus", + "limk.com": "limk", + "line-apps.com": "line_apps", + "line-scdn.net": "line_apps", + "line.me": "line_apps", + "tongji.linezing.com": "linezing", + "linkbucks.com": "linkbucks", + "linkconnector.com": "linkconnector", + "bizo.com": "linkedin", + "licdn.com": "linkedin", + "linkedin.com": "linkedin", + "lynda.com": "linkedin", + "ads.linkedin.com": "linkedin_ads", + "snap.licdn.com": "linkedin_analytics", + "bizographics.com": "linkedin_marketing_solutions", + "platform.linkedin.com": "linkedin_widgets", + "linker.hr": "linker", + "linkprice.com": "linkprice", + "lp4.io": "linkpulse", + "linksalpha.com": "linksalpha", + "erovinmo.com": "linksmart", + "linksmart.com": "linksmart", + "linkstorm.net": "linkstorm", + "linksynergy.com": "linksynergy.com", + "linkup.com": "linkup", + "linkwi.se": "linkwise", + "linkwithin.com": "linkwithin", + "lqm.io": "liquidm_technology_gmbh", + "lqmcdn.com": "liquidm_technology_gmbh", + "liqwid.net": "liqwid", + "list.ru": "list.ru", + "listrakbi.com": "listrak", + "live2support.com": "live2support", + "live800.com": "live800", + "ladesk.com": "live_agent", + "livehelpnow.net": "live_help_now", + "liadm.com": "live_intent", + "l-stat.livejournal.net": "live_journal", + "liveadexchanger.com": "liveadexchanger.com", + "livechat.s3.amazonaws.com": "livechat", + "livechatinc.com": "livechat", + "livechatinc.net": "livechat", + "livechatnow.com": "livechatnow", + "livechatnow.net": "livechatnow", + "liveclicker.net": "liveclicker", + "livecounter.dk": "livecounter", + "fyre.co": "livefyre", + "livefyre.com": "livefyre", + "yadro.ru": "liveinternet", + "liveperson.net": "liveperson", + "lpsnmedia.net": "liveperson", + "pippio.com": "liveramp", + "rapleaf.com": "liveramp", + "rlcdn.com": "liveramp", + "livere.co.kr": "livere", + "livere.co.kr.cizion.ixcloud.net": "livere", + "livesportmedia.eu": "livesportmedia.eu", + "analytics.livestream.com": "livestream", + "livetex.ru": "livetex.ru", + "lkqd.net": "lkqd", + "loadbee.com": "loadbee.com", + "loadercdn.com": "loadercdn.com", + "loadsource.org": "loadsource.org", + "web.localytics.com": "localytics", + "localytics.com": "localytics", + "cdn2.lockerdome.com": "lockerdome", + "addtoany.com": "lockerz_share", + "pixel.loganmedia.mobi": "logan_media", + "ping.answerbook.com": "logdna", + "loggly.com": "loggly", + "logly.co.jp": "logly", + "logsss.com": "logsss.com", + "lomadee.com": "lomadee", + "assets.loomia.com": "loomia", + "loop11.com": "loop11", + "lfov.net": "loopfuse_oneview", + "crwdcntrl.net": "lotame", + "vidcpm.com": "lottex_inc", + "tracker.samplicio.us": "lucid", + "lucidmedia.com": "lucid_media", + "lead.adsender.us": "lucini", + "livestatserver.com": "lucky_orange", + "luckyorange.com": "lucky_orange", + "luckyorange.net": "lucky_orange", + "luckypushh.com": "luckypushh.com", + "adelixir.com": "lxr100", + "lypn.com": "lynchpin_analytics", + "lypn.net": "lynchpin_analytics", + "lytics.io": "lytics", + "lyuoaxruaqdo.com": "lyuoaxruaqdo.com", + "m-pathy.com": "m-pathy", + "mpnrs.com": "m._p._newmedia", + "m4n.nl": "m4n", + "madadsmedia.com": "mad_ads_media", + "madeleine.de": "madeleine.de", + "dinclinx.com": "madison_logic", + "madisonlogic.com": "madison_logic", + "madnet.ru": "madnet", + "eu2.madsone.com": "mads", + "magna.ru": "magna_advertise", + "d3ezl4ajpp2zy8.cloudfront.net": "magnetic", + "domdex.com": "magnetic", + "domdex.net": "magnetic", + "magnetisemedia.com": "magnetise_group", + "magnify360.com": "magnify360", + "magnuum.com": "magnuum.com", + "ad.mail.ru": "mail.ru_banner", + "imgsmail.ru": "mail.ru_group", + "mail.ru": "mail.ru_group", + "mradx.net": "mail.ru_group", + "odnoklassniki.ru": "mail.ru_group", + "ok.ru": "mail.ru_group", + "chimpstatic.com": "mailchimp_tracking", + "list-manage.com": "mailchimp_tracking", + "mailchimp.com": "mailchimp_tracking", + "mailerlite.com": "mailerlite.com", + "mailtrack.io": "mailtrack.io", + "mainadv.com": "mainadv", + "makazi.com": "makazi", + "makeappdev.xyz": "makeappdev.xyz", + "makesource.cool": "makesource.cool", + "widgets.mango-office.ru": "mango", + "manycontacts.com": "manycontacts", + "mapandroute.de": "mapandroute.de", + "mapbox.com": "mapbox", + "www.maploco.com": "maploco", + "px.marchex.io": "marchex", + "voicestar.com": "marchex", + "mmadsgadget.com": "marimedia", + "qadabra.com": "marimedia", + "qadserve.com": "marimedia", + "qadservice.com": "marimedia", + "marinsm.com": "marin_search_marketer", + "markandmini.com": "mark_+_mini", + "ak-cdn.placelocal.com": "market_thunder", + "dt00.net": "marketgid", + "dt07.net": "marketgid", + "marketgid.com": "marketgid", + "mgid.com": "marketgid", + "marketingautomation.si": "marketing_automation", + "marketo.com": "marketo", + "marketo.net": "marketo", + "mktoresp.com": "marketo", + "caanalytics.com": "markmonitor", + "mmstat.com": "markmonitor", + "markmonitor.com": "markmonitor", + "netscope.data.marktest.pt": "marktest", + "marshadow.io": "marshadow.io", + "martiniadnetwork.com": "martini_media", + "edigitalsurvey.com": "maru-edu", + "marvellousmachine.net": "marvellous_machine", + "mbn.com.ua": "master_banner_network", + "mastertarget.ru": "mastertarget", + "rns.matelso.de": "matelso", + "matheranalytics.com": "mather_analytics", + "mathjax.org": "mathjax.org", + "nzaza.com": "matiro", + "matomo.cloud": "matomo", + "matomo.org": "matomo", + "piwik.org": "matomo", + "adsmarket.com": "matomy_market", + "m2pub.com": "matomy_market", + "matrix.org": "matrix", + "mb01.com": "maxbounty", + "maxcdn.com": "maxcdn", + "netdna-cdn.com": "maxcdn", + "netdna-ssl.com": "maxcdn", + "maxlab.ru": "maxlab", + "maxmind.com": "maxmind", + "maxonclick.com": "maxonclick_com", + "mxptint.net": "maxpoint_interactive", + "maxymiser.hs.llnwd.net": "maxymiser", + "maxymiser.net": "maxymiser", + "m6r.eu": "mbr_targeting", + "pixel.adbuyer.com": "mbuy", + "mcabi.mcloudglobal.com": "mcabi", + "scanalert.com": "mcafee_secure", + "ywxi.net": "mcafee_secure", + "mconet.biz": "mconet", + "mdotlabs.com": "mdotlabs", + "media-clic.com": "media-clic", + "media-imdb.com": "media-imdb.com", + "media.net": "media.net", + "mediaimpact.de": "media_impact", + "mookie1.com": "media_innovation_group", + "idntfy.ru": "media_today", + "s1.mediaad.org": "mediaad", + "mlnadvertising.com": "mediaglu", + "fhserve.com": "mediahub", + "media-lab.ai": "medialab", + "medialab.la": "medialab", + "adnet.ru": "medialand", + "medialand.ru": "medialand", + "medialead.de": "medialead", + "mathads.com": "mediamath", + "mathtag.com": "mediamath", + "mediametrics.ru": "mediametrics", + "audit.median.hu": "median", + "mediapass.com": "mediapass", + "mt.mediapostcommunication.net": "mediapost_communications", + "mediarithmics.com": "mediarithmics.com", + "tns-counter.ru": "mediascope", + "ad.media-servers.net": "mediashakers", + "adsvc1107131.net": "mediashift", + "mediator.media": "mediator.media", + "mediav.com": "mediav", + "adnetinteractive.com": "mediawhiz", + "adnetinteractive.net": "mediawhiz", + "mediego.com": "medigo", + "medleyads.com": "medley", + "adnet.com.tr": "medyanet", + "e-kolay.net": "medyanet", + "medyanetads.com": "medyanet", + "cim.meebo.com": "meebo_bar", + "meetrics.net": "meetrics", + "mxcdn.net": "meetrics", + "research.de.com": "meetrics", + "counter.megaindex.ru": "megaindex", + "mega.co.nz": "meganz", + "mega.io": "meganz", + "mega.nz": "meganz", + "mein-bmi.com": "mein-bmi.com", + "webvisitor.melissadata.net": "melissa", + "meltdsp.com": "melt", + "mlt01.com": "menlo", + "mentad.com": "mentad", + "mercadoclics.com": "mercado", + "mercadolivre.com.br": "mercado", + "mlstatic.com": "mercado", + "merchantadvantage.com": "merchantadvantage", + "merchenta.com": "merchenta", + "roia.biz": "mercury_media", + "cdn.merklesearch.com": "merkle_research", + "rkdms.com": "merkle_rkg", + "messenger.com": "messenger.com", + "ad.metanetwork.com": "meta_network", + "metaffiliation.com": "metaffiliation.com", + "netaffiliation.com": "metaffiliation.com", + "metalyzer.com": "metapeople", + "mlsat02.de": "metapeople", + "metrigo.com": "metrigo", + "metriweb.be": "metriweb", + "miaozhen.com": "miaozhen", + "microad.co.jp": "microad", + "microad.jp": "microad", + "microad.net": "microad", + "microadinc.com": "microad", + "azurewebsites.net": "microsoft", + "cloudapp.net": "microsoft", + "gfx.ms": "microsoft", + "microsoft.com": "microsoft", + "microsoftonline-p.com": "microsoft", + "microsoftonline.com": "microsoft", + "microsofttranslator.com": "microsoft", + "msecnd.net": "microsoft", + "msedge.net": "microsoft", + "msocdn.com": "microsoft", + "onestore.ms": "microsoft", + "s-microsoft.com": "microsoft", + "trouter.io": "microsoft", + "windows.net": "microsoft", + "aka.ms": "microsoft", + "microsoftazuread-sso.com": "microsoft", + "bingapis.com": "microsoft", + "msauth.net": "microsoft", + "msauthimages.net": "microsoft", + "msftauth.net": "microsoft", + "msftstatic.com": "microsoft", + "msidentity.com": "microsoft", + "nelreports.net": "microsoft", + "windowscentral.com": "microsoft", + "analytics.live.com": "microsoft_analytics", + "a.clarity.ms": "microsoft_clarity", + "b.clarity.ms": "microsoft_clarity", + "c.clarity.ms": "microsoft_clarity", + "d.clarity.ms": "microsoft_clarity", + "e.clarity.ms": "microsoft_clarity", + "f.clarity.ms": "microsoft_clarity", + "g.clarity.ms": "microsoft_clarity", + "h.clarity.ms": "microsoft_clarity", + "i.clarity.ms": "microsoft_clarity", + "j.clarity.ms": "microsoft_clarity", + "log.clarity.ms": "microsoft_clarity", + "www.clarity.ms": "microsoft_clarity", + "mmismm.com": "mindset_media", + "imgfarm.com": "mindspark", + "mindspark.com": "mindspark", + "staticimgfarm.com": "mindspark", + "mvtracker.com": "mindviz_tracker", + "minewhat.com": "minewhat", + "mintsapp.io": "mints_app", + "snackly.co": "minute.ly", + "snippet.minute.ly": "minute.ly", + "apv.configuration.minute.ly": "minute.ly_video", + "get.mirando.de": "mirando", + "mirtesen.ru": "mirtesen.ru", + "misterbell.com": "mister_bell", + "mixi.jp": "mixi", + "mixpanel.com": "mixpanel", + "mxpnl.com": "mixpanel", + "mxpnl.net": "mixpanel", + "swf.mixpo.com": "mixpo", + "app.mluvii.com": "mluvii", + "mncdn.com": "mncdn.com", + "moatads.com": "moat", + "moatpixel.com": "moat", + "mobicow.com": "mobicow", + "a.mobify.com": "mobify", + "mobtrks.com": "mobtrks.com", + "ads.mocean.mobi": "mocean_mobile", + "ads.moceanads.com": "mocean_mobile", + "chat.mochapp.com": "mochapp", + "intelligentpixel.modernimpact.com": "modern_impact", + "teljari.is": "modernus", + "modulepush.com": "modulepush.com", + "mogointeractive.com": "mogo_interactive", + "mokonocdn.com": "mokono_analytics", + "devappgrant.space": "monero_miner", + "monetate.net": "monetate", + "monetize-me.com": "monetize_me", + "ads.themoneytizer.com": "moneytizer", + "mongoosemetrics.com": "mongoose_metrics", + "track.monitis.com": "monitis", + "monitus.net": "monitus", + "fonts.net": "monotype_gmbh", + "fonts.com": "monotype_imaging", + "cdn.monsido.com": "monsido", + "monster.com": "monster_advertising", + "mooxar.com": "mooxar", + "mopinion.com": "mopinion.com", + "mopub.com": "mopub", + "ad.ad-arata.com": "more_communication", + "moras.jp": "moreads", + "nedstatbasic.net": "motigo_webstats", + "webstats.motigo.com": "motigo_webstats", + "analytics.convertlanguage.com": "motionpoint", + "mouseflow.com": "mouseflow", + "mousestats.com": "mousestats", + "s.mousetrace.com": "mousetrace", + "movad.de": "mov.ad", + "movad.net": "mov.ad", + "micpn.com": "movable_ink", + "mvb.me": "movable_media", + "moz.com": "moz", + "firefox.com": "mozilla", + "mozaws.net": "mozilla", + "mozgcp.net": "mozilla", + "mozilla.com": "mozilla", + "mozilla.net": "mozilla", + "mozilla.org": "mozilla", + "storage.mozoo.com": "mozoo", + "tracker.mrpfd.com": "mrp", + "mrpdata.com": "mrpdata", + "mrpdata.net": "mrpdata", + "mrskincash.com": "mrskincash", + "a-msedge.net": "msedge", + "b-msedge.net": "msedge", + "dual-s-msedge.net": "msedge", + "e-msedge.net": "msedge", + "k-msedge.net": "msedge", + "l-msedge.net": "msedge", + "s-msedge.net": "msedge", + "spo-msedge.net": "msedge", + "t-msedge.net": "msedge", + "wac-msedge.net": "msedge", + "msn.com": "msn", + "s-msn.com": "msn", + "musculahq.appspot.com": "muscula", + "litix.io": "mux_inc", + "mybloglog.com": "mybloglog", + "t.p.mybuys.com": "mybuys", + "mycdn.me": "mycdn.me", + "mycliplister.com": "mycliplister.com", + "mycounter.com.ua": "mycounter.ua", + "mycounter.ua": "mycounter.ua", + "myfonts.net": "myfonts", + "mypagerank.net": "mypagerank", + "stat.mystat.hu": "mystat", + "mythings.com": "mythings", + "mystat-in.net": "mytop_counter", + "nab.com": "nab", + "nab.com.au": "nab", + "nab.net": "nab", + "nabgroup.com": "nab", + "national.com.au": "nab", + "nationalaustraliabank.com.au": "nab", + "nationalbank.com.au": "nab", + "nakanohito.jp": "nakanohito.jp", + "namogoo.coom": "namogoo", + "nanigans.com": "nanigans", + "audiencemanager.de": "nano_interactive", + "nanorep.com": "nanorep", + "narando.com": "narando", + "static.bam-x.com": "narrativ", + "narrative.io": "narrative_io", + "p1.ntvk1.ru": "natimatica", + "nativeads.com": "nativeads.com", + "cdn01.nativeroll.tv": "nativeroll", + "ntv.io": "nativo", + "postrelease.com": "nativo", + "navdmp.com": "navegg_dmp", + "naver.com": "naver.com", + "naver.net": "naver.com", + "s-nbcnews.com": "nbc_news", + "richmedia247.com": "ncol", + "needle.com": "needle", + "nekudo.com": "nekudo.com", + "neodatagroup.com": "neodata", + "ad-srv.net": "neory", + "contentspread.net": "neory", + "neory-tm.com": "neory", + "simptrack.com": "neory", + "nerfherdersolo.com": "nerfherdersolo_com", + "wemfbox.ch": "net-metrix", + "cdnma.com": "net-results", + "nr7.us": "net-results", + "netavenir.com": "net_avenir", + "netcommunities.com": "net_communities", + "visibility-stats.com": "net_visibility", + "netbiscuits.net": "netbiscuits", + "bbtrack.net": "netbooster_group", + "netbooster.com": "netbooster_group", + "netflix.com": "netflix", + "nflxext.com": "netflix", + "nflximg.net": "netflix", + "nflxso.net": "netflix", + "nflxvideo.net": "netflix", + "flxvpn.net": "netflix", + "netflix.ca": "netflix", + "netflix.com.au": "netflix", + "netflix.net": "netflix", + "netflixdnstest1.com": "netflix", + "netflixdnstest10.com": "netflix", + "netflixdnstest2.com": "netflix", + "netflixdnstest3.com": "netflix", + "netflixdnstest4.com": "netflix", + "netflixdnstest5.com": "netflix", + "netflixdnstest6.com": "netflix", + "netflixdnstest7.com": "netflix", + "netflixdnstest8.com": "netflix", + "netflixdnstest9.com": "netflix", + "netflixinvestor.com": "netflix", + "netflixstudios.com": "netflix", + "netflixtechblog.com": "netflix", + "nflximg.com": "netflix", + "netify.ai": "netify", + "netzathleten-media.de": "netletix", + "netminers.dk": "netminers", + "netmining.com": "netmining", + "netmng.com": "netmining", + "stat.netmonitor.fi": "netmonitor", + "glanceguide.com": "netratings_sitecensus", + "imrworldwide.com": "netratings_sitecensus", + "vizu.com": "netratings_sitecensus", + "netrk.net": "netrk.net", + "netseer.com": "netseer", + "netshelter.net": "netshelter", + "nsaudience.pl": "netsprint_audience", + "nwidget.networkedblogs.com": "networkedblogs", + "adadvisor.net": "neustar_adadvisor", + "d1ros97qkrwjf5.cloudfront.net": "new_relic", + "newrelic.com": "new_relic", + "nr-data.net": "new_relic", + "codestream.com": "new_relic", + "newscgp.com": "newscgp.com", + "nmcdn.us": "newsmax", + "newstogram.com": "newstogram", + "newsupdatedir.info": "newsupdatedir.info", + "newsupdatewe.info": "newsupdatewe.info", + "ads.newtention.net": "newtention", + "ads.newtentionassets.net": "newtention", + "nexage.com": "nexage", + "nexeps.com": "nexeps.com", + "nxtck.com": "next_performance", + "track.nextuser.com": "next_user", + "imgsrv.nextag.com": "nextag_roi_optimizer", + "nextclick.pl": "nextclick", + "nextstat.com": "nextstat", + "d1d8vn0fpluuz7.cloudfront.net": "neytiv", + "ads.ngageinc.com": "ngage_inc.", + "nice264.com": "nice264.com", + "nimblecommerce.com": "nimblecommerce", + "nineanalytics.io": "nine_direct_digital", + "cho-chin.com": "ninja_access_analysis", + "donburako.com": "ninja_access_analysis", + "hishaku.com": "ninja_access_analysis", + "shinobi.jp": "ninja_access_analysis", + "static.nirror.com": "nirror", + "nitropay.com": "nitropay", + "nk.pl": "nk.pl_widgets", + "noaa.gov": "noaa.gov", + "track.noddus.com": "noddus", + "contextbar.ru": "nolix", + "nonli.com": "nonli", + "non.li": "nonli", + "trkme.net": "nonstop_consulting", + "noop.style": "noop.style", + "nosto.com": "nosto.com", + "adleadevent.com": "notify", + "notifyfox.com": "notifyfox", + "notion.so": "notion", + "nowinteract.com": "now_interact", + "npario-inc.net": "npario", + "nplexmedia.com": "nplexmedia", + "nrelate.com": "nrelate", + "ns8.com": "ns8", + "nt.vc": "nt.vc", + "featurelink.com": "ntent", + "ntp.org": "ntppool", + "ntppool.org": "ntppool", + "tracer.jp": "nttcom_online_marketing_solutions", + "nuffnang.com": "nuffnang", + "nuggad.net": "nugg.ad", + "rotator.adjuggler.com": "nui_media", + "numbers.md": "numbers.md", + "channeliq.com": "numerator", + "nyacampwk.com": "nyacampwk.com", + "nyetm2mkch.com": "nyetm2mkch.com", + "nyt.com": "nyt.com", + "nytimes.com": "nyt.com", + "o12zs3u2n.com": "o12zs3u2n.com", + "o2.pl": "o2.pl", + "o2online.de": "o2online.de", + "oath.com": "oath_inc", + "observerapp.com": "observer", + "ocioso.com.br": "ocioso", + "oclasrv.com": "oclasrv.com", + "octapi.net": "octapi.net", + "service.octavius.rocks": "octavius", + "office.com": "office.com", + "office.net": "office.net", + "office365.com": "office365.com", + "oghub.io": "oghub.io", + "ohmystats.com": "oh_my_stats", + "adohana.com": "ohana_advertising_network", + "photorank.me": "olapic", + "olark.com": "olark", + "olx-st.com": "olx-st.com", + "onap.io": "olx-st.com", + "omarsys.com": "omarsys.com", + "ometria.com": "ometria", + "omgpm.com": "omg", + "omniconvert.com": "omniconvert.com", + "omnidsp.com": "omniscienta", + "oms.eu": "oms", + "omsnative.de": "oms", + "onaudience.com": "onaudience", + "btc-echode.api.oneall.com": "oneall", + "tracking.onefeed.co.uk": "onefeed", + "onesignal.com": "onesignal", + "os.tc": "onesignal", + "stat.onestat.com": "onestat", + "ocdn.eu": "onet.pl", + "onet.pl": "onet.pl", + "onetag.com": "onetag", + "s-onetag.com": "onetag", + "onetrust.com": "onetrust", + "fogl1onf.com": "onfocus.io", + "onfocus.io": "onfocus.io", + "onlinewebstat.com": "onlinewebstat", + "onlinewebstats.com": "onlinewebstat", + "onswipe.com": "onswipe", + "onthe.io": "onthe.io", + "moon-ray.com": "ontraport_autopilot", + "moonraymarketing.com": "ontraport_autopilot", + "ooyala.com": "ooyala.com", + "openadex.dk": "open_adexchange", + "247realmedia.com": "open_adstream", + "oaserve.com": "open_adstream", + "realmedia.com": "open_adstream", + "realmediadigital.com": "open_adstream", + "opensharecount.com": "open_share_count", + "chatgpt.com": "openai", + "oaistatic.com": "openai", + "oaiusercontent.com": "openai", + "openai.com": "openai", + "oloadcdn.net": "openload", + "openload.co": "openload", + "openstat.net": "openstat", + "spylog.com": "openstat", + "spylog.ru": "openstat", + "opentracker.net": "opentracker", + "openwebanalytics.com": "openwebanalytics", + "odnxs.net": "openx", + "openx.net": "openx", + "openx.org": "openx", + "openxenterprise.com": "openx", + "servedbyopenx.com": "openx", + "adsummos.net": "operative_media", + "opinary.com": "opinary", + "opinionbar.com": "opinionbar", + "emagazines.com": "oplytic", + "allawnos.com": "oppo", + "allawntech.com": "oppo", + "heytapdl.com": "oppo", + "heytapmobi.com": "oppo", + "heytapmobile.com": "oppo", + "oppomobile.com": "oppo", + "opta.net": "opta.net", + "optaim.com": "optaim", + "cookielaw.org": "optanaon", + "service.optify.net": "optify", + "optimatic.com": "optimatic", + "optmd.com": "optimax_media_delivery", + "optimicdn.com": "optimicdn.com", + "optimizely.com": "optimizely", + "episerver.net": "optimizely", + "optimonk.com": "optimonk", + "mstrlytcs.com": "optinmonster", + "optmnstr.com": "optinmonster", + "optmstr.com": "optinmonster", + "optnmstr.com": "optinmonster", + "optincollect.com": "optinproject.com", + "volvelle.tech": "optomaton", + "ora.tv": "ora.tv", + "oracleinfinity.io": "oracle_infinity", + "instantservice.com": "oracle_live_help", + "ts.istrack.com": "oracle_live_help", + "rightnowtech.com": "oracle_rightnow", + "rnengage.com": "oracle_rightnow", + "orange.fr": "orange", + "orangeads.fr": "orange", + "ads.orange142.com": "orange142", + "wanadoo.fr": "orange_france", + "otracking.com": "orangesoda", + "emxdgt.com": "orc_international", + "static.ordergroove.com": "order_groove", + "orelsite.ru": "orel_site", + "otclick-adv.ru": "otclick", + "othersearch.info": "othersearch.info", + "otm-r.com": "otm-r.com", + "otto.de": "otto.de", + "ottogroup.media": "otto.de", + "outbrain.com": "outbrain", + "outbrainimg.com": "outbrain", + "live.com": "outlook", + "cloud.microsoft": "outlook", + "hotmail.com": "outlook", + "outlook.com": "outlook", + "svc.ms": "outlook", + "overheat.it": "overheat.it", + "oewabox.at": "owa", + "owneriq.net": "owneriq", + "ownpage.fr": "ownpage", + "owox.com": "owox.com", + "adconnexa.com": "oxamedia", + "adsbwm.com": "oxamedia", + "oxomi.com": "oxomi.com", + "oztam.com.au": "oztam", + "pageanalytics.space": "pageanalytics.space", + "blockmetrics.com": "pagefair", + "pagefair.com": "pagefair", + "pagefair.net": "pagefair", + "btloader.com": "pagefair", + "ghmedia.com": "pagescience", + "777seo.com": "paid-to-promote", + "paid-to-promote.net": "paid-to-promote", + "ptp22.com": "paid-to-promote", + "ptp33.com": "paid-to-promote", + "paperg.com": "paperg", + "pardot.com": "pardot", + "d1z2jf7jlzjs58.cloudfront.net": "parsely", + "parsely.com": "parsely", + "partner-ads.com": "partner-ads", + "passionfruitads.com": "passionfruit", + "pathful.com": "pathful", + "pay-hit.com": "pay-hit", + "payclick.it": "payclick", + "app.paykickstart.com": "paykickstart", + "paypal.com": "paypal", + "paypalobjects.com": "paypal", + "pcvark.com": "pcvark.com", + "peer39.com": "peer39", + "peer39.net": "peer39", + "peer5.com": "peer5.com", + "peerius.com": "peerius", + "pendo.io": "pendo.io", + "pepper.com": "pepper.com", + "gopjn.com": "pepperjam", + "pjatr.com": "pepperjam", + "pjtra.com": "pepperjam", + "pntra.com": "pepperjam", + "pntrac.com": "pepperjam", + "pntrs.com": "pepperjam", + "player.pepsia.com": "pepsia", + "perfdrive.com": "perfdrive.com", + "perfectaudience.com": "perfect_audience", + "prfct.co": "perfect_audience", + "perfectmarket.com": "perfect_market", + "perfops.io": "perfops", + "performgroup.com": "perform_group", + "analytics.performable.com": "performable", + "performancing.com": "performancing_metrics", + "performax.cz": "performax", + "perimeterx.net": "perimeterx.net", + "permutive.com": "permutive", + "persgroep.net": "persgroep", + "persianstat.com": "persianstat", + "code.pers.io": "persio", + "counter.personyze.com": "personyze", + "petametrics.com": "petametrics", + "ads.pheedo.com": "pheedo", + "app.phonalytics.com": "phonalytics", + "d2bgg7rjywcwsy.cloudfront.net": "phunware", + "piguiqproxy.com": "piguiqproxy.com", + "trgt.eu": "pilot", + "pingdom.net": "pingdom", + "pinimg.com": "pinterest", + "pinterest.com": "pinterest", + "app.pipz.io": "pipz", + "disabled.invalid": "piwik", + "piwik.pro": "piwik_pro_analytics_suite", + "adrta.com": "pixalate", + "app.pixelpop.co": "pixel_union", + "pixfuture.net": "pixfuture", + "vast1.pixfuture.com": "pixfuture", + "piximedia.com": "piximedia", + "pizzaandads.com": "pizzaandads_com", + "ads.placester.net": "placester", + "d3uemyw1e5n0jw.cloudfront.net": "placester", + "pladform.com": "pladform.ru", + "tag.bi.serviceplan.com": "plan.net_experience_cloud", + "pfrm.co": "platform360", + "impact-ad.jp": "platformone", + "loveadvert.ru": "play_by_mamba", + "playbuzz.com": "playbuzz.com", + "pof.com": "plenty_of_fish", + "plex.bz": "plex", + "plex.direct": "plex", + "plex.tv": "plex", + "analytics.plex.tv": "plex_metrics", + "metrics.plex.tv": "plex_metrics", + "plista.com": "plista", + "plugrush.com": "plugrush", + "pluso.ru": "pluso.ru", + "plutusads.com": "plutusads", + "pmddby.com": "pmddby.com", + "pnamic.com": "pnamic.com", + "po.st": "po.st", + "widgets.getpocket.com": "pocket", + "pocketcents.com": "pocketcents", + "pointificsecure.com": "pointific", + "pointroll.com": "pointroll", + "poirreleast.club": "poirreleast.club", + "mediavoice.com": "polar.me", + "polar.me": "polar.me", + "polarmobile.com": "polar.me", + "polldaddy.com": "polldaddy", + "polyad.net": "polyad", + "polyfill.io": "polyfill.io", + "popads.net": "popads", + "popadscdn.net": "popads", + "popcash.net": "popcash", + "popcashjs.b-cdn.net": "popcash", + "desv383oqqc0.cloudfront.net": "popcorn_metrics", + "popin.cc": "popin.cc", + "cdn.popmyads.com": "popmyads", + "poponclick.com": "poponclick", + "populis.com": "populis", + "populisengage.com": "populis", + "phncdn.com": "pornhub", + "pornhub.com": "pornhub", + "prscripts.com": "pornwave", + "prstatics.com": "pornwave", + "prwidgets.com": "pornwave", + "barra.brasil.gov.br": "porta_brazil", + "postaffiliatepro.com": "post_affiliate_pro", + "powerlinks.com": "powerlinks", + "powerreviews.com": "powerreviews", + "powr.io": "powr.io", + "api.pozvonim.com": "pozvonim", + "prebid.org": "prebid", + "precisionclick.com": "precisionclick", + "adserver.com.br": "predicta", + "predicta.net": "predicta", + "prnx.net": "premonix", + "ppjol.com": "press", + "ppjol.net": "press", + "api.pressly.com": "pressly", + "pricegrabber.com": "pricegrabber", + "cdn.pricespider.com": "pricespider", + "pmdrecrute.com": "prismamediadigital.com", + "prismamediadigital.com": "prismamediadigital.com", + "privy.com": "privy.com", + "pswec.com": "proclivity", + "prodperfect.com": "prodperfect", + "lib.productsup.io": "productsup", + "proadsnet.com": "profiliad", + "profitshare.ro": "profitshare", + "tracking.proformics.com": "proformics", + "programattik.com": "programattik", + "projectwonderful.com": "project_wonderful", + "propelmarketing.com": "propel_marketing", + "oclaserver.com": "propeller_ads", + "onclasrv.com": "propeller_ads", + "onclickads.net": "propeller_ads", + "onclkds.com": "propeller_ads", + "propellerads.com": "propeller_ads", + "propellerpops.com": "propeller_ads", + "proper.io": "propermedia", + "st-a.props.id": "props", + "propvideo.net": "propvideo_net", + "tr.prospecteye.com": "prospecteye", + "prosperent.com": "prosperent", + "prostor-lite.ru": "prostor", + "reports.proton.me": "proton_ag", + "providesupport.com": "provide_support", + "proximic.com": "proximic", + "proxistore.com": "proxistore.com", + "pscp.tv": "pscp.tv", + "pstatic.net": "pstatic.net", + "psyma.com": "psyma", + "ptengine.jp": "pt_engine", + "pub-fit.com": "pub-fit", + "pub.network": "pub.network", + "learnpipe.com": "pubble", + "pubble.co": "pubble", + "pubdirecte.com": "pubdirecte", + "pubgears.com": "pubgears", + "publicidees.com": "public_ideas", + "publicidad.net": "publicidad.net", + "intgr.net": "publir", + "pubmatic.com": "pubmatic", + "pubnub.com": "pubnub.com", + "puboclic.com": "puboclic", + "pulpix.com": "pulpix.com", + "tentaculos.net": "pulpo_media", + "pulse360.com": "pulse360", + "pulseinsights.com": "pulse_insights", + "contextweb.com": "pulsepoint", + "pulsepoint.com": "pulsepoint", + "punchtab.com": "punchtab", + "purch.com": "purch", + "servebom.com": "purch", + "purechat.com": "pure_chat", + "cdn.pprl.io": "pureprofile", + "oopt.fr": "purlive", + "puserving.com": "puserving.com", + "push.world": "push.world", + "pushengage.com": "push_engage", + "pushame.com": "pushame.com", + "zebra.pushbullet.com": "pushbullet", + "pushcrew.com": "pushcrew", + "pusher.com": "pusher.com", + "pusherapp.com": "pusher.com", + "pushnative.com": "pushnative.com", + "cdn.pushnews.eu": "pushnews", + "pushno.com": "pushno.com", + "pushwhy.com": "pushwhy.com", + "pushwoosh.com": "pushwoosh.com", + "pvclouds.com": "pvclouds.com", + "ads.q1media.com": "q1media", + "q1mediahydraplatform.com": "q1media", + "q-divisioncdn.de": "q_division", + "qbaka.net": "qbaka", + "track.qcri.org": "qcri_analytics", + "collect.qeado.com": "qeado", + "s.lianmeng.360.cn": "qihoo_360", + "qq.com": "qq.com", + "qrius.me": "qrius", + "qualaroo.com": "qualaroo", + "qualcomm.com": "qualcomm", + "gpsonextra.net": "qualcomm_location_service", + "izatcloud.net": "qualcomm_location_service", + "xtracloud.net": "qualcomm_location_service", + "bluecava.com": "qualia", + "qualtrics.com": "qualtrics", + "quantcast.com": "quantcast", + "quantserve.com": "quantcast", + "quantcount.com": "quantcount", + "quantummetric.com": "quantum_metric", + "quartic.pl": "quartic.pl", + "quarticon.com": "quartic.pl", + "d3c3cq33003psk.cloudfront.net": "qubit", + "qubit.com": "qubit", + "easyresearch.se": "questback", + "queue-it.net": "queue-it", + "quick-counter.net": "quick-counter.net", + "adsonar.com": "quigo_adsonar", + "qnsr.com": "quinstreet", + "quinstreet.com": "quinstreet", + "thecounter.com": "quinstreet", + "quintelligence.com": "quintelligence", + "qservz.com": "quisma", + "quisma.com": "quisma", + "quora.com": "quora.com", + "ads-digitalkeys.com": "r_advertising", + "rackcdn.com": "rackcdn.com", + "radarurl.com": "radarurl", + "dsa.csdata1.com": "radial", + "gwallet.com": "radiumone", + "r1-cdn.net": "radiumone", + "widget.raisenow.com": "raisenow", + "mediaforge.com": "rakuten_display", + "rmtag.com": "rakuten_display", + "rakuten.co.jp": "rakuten_globalmarket", + "trafficgate.net": "rakuten_globalmarket", + "mtwidget04.affiliate.rakuten.co.jp": "rakuten_widget", + "xml.affilliate.rakuten.co.jp": "rakuten_widget", + "rambler.ru": "rambler", + "top100.ru": "rambler", + "rapidspike.com": "rapidspike", + "ravelin.com": "ravelin", + "rawgit.com": "rawgit", + "raygun.io": "raygun", + "count.rbc.ru": "rbc_counter", + "rcs.it": "rcs.it", + "rcsmediagroup.it": "rcs.it", + "d335luupugsy2.cloudfront.net": "rd_station", + "rea-group.com": "rea_group", + "reagroupdata.com.au": "rea_group", + "reastatic.net": "rea_group", + "d12ulf131zb0yj.cloudfront.net": "reachforce", + "reachforce.com": "reachforce", + "reachjunction.com": "reachjunction", + "cdn.rlets.com": "reachlocal", + "reachlocal.com": "reachlocal", + "reachlocallivechat.com": "reachlocal", + "rlcdn.net": "reachlocal", + "plugin.reactful.com": "reactful", + "reactivpub.fr": "reactivpub", + "skinected.com": "reactx", + "readrboard.com": "readerboard", + "readme.com": "readme", + "readme.io": "readme", + "readspeaker.com": "readspeaker.com", + "realclick.co.kr": "realclick", + "realestate.com.au": "realestate.com.au", + "realperson.de": "realperson.de", + "powermarketing.com": "realtime", + "realtime.co": "realtime", + "webspectator.com": "realtime", + "dcniko1cv0rz.cloudfront.net": "realytics", + "realytics.io": "realytics", + "static.rbl.ms": "rebel_mouse", + "recaptcha.net": "recaptcha", + "recettes.net": "recettes.net", + "static.recopick.com": "recopick", + "recreativ.ru": "recreativ", + "analytics.recruitics.com": "recruitics", + "analytics.cohesionapps.com": "red_ventures", + "cdn.cohesionapps.com": "red_ventures", + "redblue.de": "redblue_de", + "atendesoftware.pl": "redcdn.pl", + "redd.it": "reddit", + "reddit-image.s3.amazonaws.com": "reddit", + "reddit.com": "reddit", + "redditmedia.com": "reddit", + "redditstatic.com": "reddit", + "redhelper.ru": "redhelper", + "pixelinteractivemedia.com": "redlotus", + "triggit.com": "redlotus", + "grt01.com": "redtram", + "grt02.com": "redtram", + "redtram.com": "redtram", + "rdtcdn.com": "redtube.com", + "redtube.com": "redtube.com", + "reduxmedia.com": "redux_media", + "reduxmediagroup.com": "redux_media", + "reedbusiness.net": "reed_business_information", + "reembed.com": "reembed.com", + "reevoo.com": "reevoo.com", + "refericon.pl": "refericon", + "ads.referlocal.com": "referlocal", + "refersion.com": "refersion", + "refinedads.com": "refined_labs", + "product.reflektion.com": "reflektion", + "reformal.ru": "reformal", + "reinvigorate.net": "reinvigorate", + "convertglobal.com": "rekko", + "convertglobal.s3.amazonaws.com": "rekko", + "dnhgz729v27ca.cloudfront.net": "rekko", + "reklamstore.com": "reklam_store", + "ad.reklamport.com": "reklamport", + "delivery.reklamz.com": "reklamz", + "adimg.rekmob.com": "rekmob", + "relap.io": "relap", + "svtrd.com": "relay42", + "synovite-scripts.com": "relay42", + "tdn.r42tag.com": "relay42", + "relestar.com": "relestar", + "relevant4.com": "relevant4.com", + "remintrex.com": "remintrex", + "remove.video": "remove.video", + "rp-api.com": "repost.us", + "republer.com": "republer.com", + "resmeter.respublica.al": "res-meter", + "researchnow.com": "research_now", + "reson8.com": "resonate_networks", + "respondhq.com": "respond", + "adinsight.com": "responsetap", + "adinsight.eu": "responsetap", + "responsetap.com": "responsetap", + "data.resultlinks.com": "result_links", + "sli-system.com": "resultspage.com", + "retailrocket.net": "retailrocket.net", + "retailrocket.ru": "retailrocket.net", + "shopify.retargetapp.com": "retarget_app", + "retargeter.com": "retargeter_beacon", + "retargeting.cl": "retargeting.cl", + "d1stxfv94hrhia.cloudfront.net": "retention_science", + "waves.retentionscience.com": "retention_science", + "reutersmedia.net": "reuters_media", + "revcontent.com": "revcontent", + "socialtwist.com": "reve_marketing", + "revenue.com": "revenue", + "clkads.com": "revenuehits", + "clkmon.com": "revenuehits", + "clkrev.com": "revenuehits", + "clksite.com": "revenuehits", + "eclkspbn.com": "revenuehits", + "imageshack.host": "revenuehits", + "revenuemantra.com": "revenuemantra", + "revive-adserver.com": "revive_adserver", + "revolvermaps.com": "revolver_maps", + "cts.tradepub.com": "revresponse", + "revresponse.com": "revresponse", + "incontext.pl": "rewords", + "pl-engine.intextad.net": "rewords", + "addesktop.com": "rhythmone", + "1rx.io": "rhythmone_beacon", + "ria.ru": "ria.ru", + "rmbn.ru": "rich_media_banner_network", + "ics0.com": "richrelevance", + "richrelevance.com": "richrelevance", + "ringier.ch": "ringier.ch", + "meteorsolutions.com": "rio_seo", + "riskified.com": "riskfield.com", + "rncdn3.com": "rncdn3.com", + "ro2.biz": "ro2.biz", + "rbxcdn.com": "roblox", + "getrockerbox.com": "rockerbox", + "rocket.la": "rocket.ia", + "trk.sodoit.com": "roi_trax", + "collector.roistat.com": "roistat", + "rollad.ru": "rollad", + "d37gvrvc0wt4s1.cloudfront.net": "rollbar", + "get.roost.me": "roost", + "getrooster.com": "rooster", + "rqtrk.eu": "roq.ad", + "rotaban.ru": "rotaban", + "routenplaner-karten.com": "routenplaner-karten.com", + "rovion.com": "rovion", + "rsspump.com": "rsspump", + "creativecdn.com": "rtb_house", + "rvty.net": "rtblab", + "rtbsuperhub.com": "rtbsuperhub.com", + "rtl.de": "rtl_group", + "static-fra.de": "rtl_group", + "technical-service.net": "rtl_group", + "rtmark.net": "rtmark.net", + "dpclk.com": "rubicon", + "mobsmith.com": "rubicon", + "nearbyad.com": "rubicon", + "rubiconproject.com": "rubicon", + "tracker.ruhrgebiet-onlineservices.de": "ruhrgebiet", + "click.rummycircle.com": "rummycircle", + "runadtag.com": "run", + "rundsp.com": "run", + "un-syndicate.com": "runative", + "cdn.secretrune.com": "rune", + "runmewivel.com": "runmewivel.com", + "rhythmxchange.com": "rythmxchange", + "s24.com": "s24_com", + "s3xified.com": "s3xified.com", + "camp.sabavision.com": "sabavision", + "sageanalyst.net": "sagemetrics", + "sail-horizon.com": "sailthru_horizon", + "sail-personalize.com": "sailthru_horizon", + "sailthru.com": "sailthru_horizon", + "d16fk4ms6rqz1v.cloudfront.net": "salecycle", + "salecycle.com": "salecycle", + "api.salesfeed.com": "sales_feed", + "salesmanago.com": "sales_manago", + "salesmanago.pl": "sales_manago", + "force.com": "salesforce.com", + "salesforce.com": "salesforce.com", + "liveagentforsalesforce.com": "salesforce_live_agent", + "salesforceliveagent.com": "salesforce_live_agent", + "msgapp.com": "salesfusion", + "salespidermedia.com": "salespider_media", + "salesviewer.com": "salesviewer", + "samba.tv": "samba.tv", + "game-mode.net": "samsung", + "gos-gsp.io": "samsung", + "lldns.net": "samsung", + "pavv.co.kr": "samsung", + "remotesamsung.com": "samsung", + "samsung-gamelauncher.com": "samsung", + "samsung.co.kr": "samsung", + "samsung.com": "samsung", + "samsung.com.cn": "samsung", + "samsungcloud.com": "samsung", + "samsungcloudcdn.com": "samsung", + "samsungcloudprint.com": "samsung", + "samsungcloudsolution.com": "samsung", + "samsungcloudsolution.net": "samsung", + "samsungelectronics.com": "samsung", + "samsunghealth.com": "samsung", + "samsungiotcloud.com": "samsung", + "samsungknox.com": "samsung", + "samsungnyc.com": "samsung", + "samsungosp.com": "samsung", + "samsungotn.net": "samsung", + "samsungpositioning.com": "samsung", + "samsungqbe.com": "samsung", + "samsungrm.net": "samsung", + "samsungrs.com": "samsung", + "samsungsemi.com": "samsung", + "samsungsetup.com": "samsung", + "samsungusa.com": "samsung", + "secb2b.com": "samsung", + "smartthings.com": "samsung", + "adgear.com": "samsungads", + "adgrx.com": "samsungads", + "samsungacr.com": "samsungads", + "samsungadhub.com": "samsungads", + "samsungads.com": "samsungads", + "samsungtifa.com": "samsungads", + "aibixby.com": "samsungapps", + "findmymobile.samsung.com": "samsungapps", + "samsapps.cust.lldns.net": "samsungapps", + "samsung-omc.com": "samsungapps", + "samsungapps.com": "samsungapps", + "samsungdiroute.net": "samsungapps", + "samsungdive.com": "samsungapps", + "samsungdm.com": "samsungapps", + "samsungdmroute.com": "samsungapps", + "samsungmdec.com": "samsungapps", + "samsungvisioncloud.com": "samsungapps", + "sbixby.com": "samsungapps", + "ospserver.net": "samsungmobile", + "samsungdms.net": "samsungmobile", + "samsungmax.com": "samsungmobile", + "samsungmobile.com": "samsungmobile", + "secmobilesvc.com": "samsungmobile", + "push.samsungosp.com": "samsungpush", + "pushmessage.samsung.com": "samsungpush", + "scs.samsungqbe.com": "samsungpush", + "ssp.samsung.com": "samsungpush", + "samsungsds.com": "samsungsds", + "internetat.tv": "samsungtv", + "samsungcloud.tv": "samsungtv", + "tizenservice.com": "samsungtv", + "ilsemedia.nl": "sanoma.fi", + "sanoma.fi": "sanoma.fi", + "d13im3ek7neeqp.cloudfront.net": "sap_crm", + "d28ethi6slcjbm.cloudfront.net": "sap_crm", + "d2uevgmgh16uk4.cloudfront.net": "sap_crm", + "d3m83gvgzupli.cloudfront.net": "sap_crm", + "saas.seewhy.com": "sap_crm", + "leadforce1.com": "sap_sales_cloud", + "vlog.leadformix.com": "sap_sales_cloud", + "sap-xm.org": "sap_xm", + "sape.ru": "sape.ru", + "js.sl.pt": "sapo_ads", + "aimatch.com": "sas", + "sas.com": "sas", + "say.ac": "say.ac", + "ads.saymedia.com": "say_media", + "srv.sayyac.net": "sayyac", + "scarabresearch.com": "scarabresearch", + "schibsted.com": "schibsted", + "schibsted.io": "schibsted", + "schneevonmorgen.com": "schneevonmorgen.com", + "svonm.com": "schneevonmorgen.com", + "rockabox.co": "scoota", + "scorecardresearch.com": "scorecard_research_beacon", + "scoreresearch.com": "scorecard_research_beacon", + "scrsrch.com": "scorecard_research_beacon", + "securestudies.com": "scorecard_research_beacon", + "scout.scoutanalytics.net": "scout_analytics", + "scribblelive.com": "scribblelive", + "scribol.com": "scribol", + "analytics.snidigital.com": "scripps_analytics", + "scroll.com": "scroll", + "scupio.com": "scupio", + "search123.uk.com": "search123", + "searchforce.net": "searchforce", + "searchignite.com": "searchignite", + "srtk.net": "searchrev", + "tacticalrepublic.com": "second_media", + "sectigo.com": "sectigo", + "securedtouch.com": "securedtouch", + "securedvisit.com": "securedvisit", + "bacontent.de": "seeding_alliance", + "nativendo.de": "seeding_alliance", + "seedtag.com": "seedtag.com", + "svlu.net": "seevolution", + "d2dq2ahtl5zl1z.cloudfront.net": "segment", + "d47xnnr8b1rki.cloudfront.net": "segment", + "segment.com": "segment", + "segment.io": "segment", + "rutarget.ru": "segmento", + "segmint.net": "segmint", + "sekindo.com": "sekindo", + "sellpoint.net": "sellpoints", + "sellpoints.com": "sellpoints", + "semantiqo.com": "semantiqo.com", + "semasio.net": "semasio", + "semilo.com": "semilo", + "semknox.com": "semknox.com", + "sibautomation.com": "sendinblue", + "sendpulse.com": "sendpulse.com", + "sendsay.ru": "sendsay", + "track.sensedigital.in": "sense_digital", + "static.sensorsdata.cn": "sensors_data", + "sentifi.com": "sentifi.com", + "d3nslu0hdya83q.cloudfront.net": "sentry", + "getsentry.com": "sentry", + "ravenjs.com": "sentry", + "sentry.io": "sentry", + "sepyra.com": "sepyra", + "d2oh4tlt9mrke9.cloudfront.net": "sessioncam", + "sessioncam.com": "sessioncam", + "sessionly.io": "sessionly", + "71i.de": "sevenone_media", + "sexad.net": "sexadnetwork", + "ads.sexinyourcity.com": "sexinyourcity", + "sextracker.com": "sextracker", + "sexypartners.net": "sexypartners.net", + "im.cz": "seznam", + "imedia.cz": "seznam", + "szn.cz": "seznam", + "dtym7iokkjlif.cloudfront.net": "shareaholic", + "shareaholic.com": "shareaholic", + "shareasale.com": "shareasale", + "quintrics.nl": "sharecompany", + "sharecompany.nl": "sharecompany", + "sharepointonline.com": "sharepoint", + "onmicrosoft.com": "sharepoint", + "sharepoint.com": "sharepoint", + "sharethis.com": "sharethis", + "shareth.ru": "sharethrough", + "sharethrough.com": "sharethrough", + "marketingautomation.services": "sharpspring", + "sharpspring.com": "sharpspring", + "sheego.de": "sheego.de", + "services.sheerid.com": "sheerid", + "shinystat.com": "shinystat", + "shinystat.it": "shinystat", + "app.shoptarget.com.br": "shop_target", + "retargeter.com.br": "shop_target", + "shopauskunft.de": "shopauskunft.de", + "shopgate.com": "shopgate.com", + "shopify.com": "shopify", + "shopifycdn.com": "shopify", + "cdn.shopify.com": "shopify", + "myshopify.com": "shopify", + "shop.app": "shopify", + "shopify.co.za": "shopify", + "shopify.com.au": "shopify", + "shopify.com.mx": "shopify", + "shopify.dev": "shopify", + "shopifyapps.com": "shopify", + "shopifycdn.net": "shopify", + "shopifynetwork.com": "shopify", + "shopifypreview.com": "shopify", + "shopifysvc.com": "shopify_stats", + "stats.shopify.com": "shopify_stats", + "v.shopify.com": "shopify_stats", + "shopifycloud.com": "shopifycloud.com", + "shopperapproved.com": "shopper_approved", + "shoppingshadow.com": "shopping_com", + "tracking.shopping-flux.com": "shopping_flux", + "shoprunner.com": "shoprunner", + "shopsocially.com": "shopsocially", + "shopzilla.com": "shopzilla", + "shortnews.de": "shortnews", + "showrss.info": "showrss", + "shink.in": "shrink", + "shutterstock.com": "shutterstock", + "siblesectiveal.club": "siblesectiveal.club", + "d3v27wwd40f0xu.cloudfront.net": "sidecar", + "getsidecar.com": "sidecar", + "dtlilztwypawv.cloudfront.net": "sift_science", + "siftscience.com": "sift_science", + "btstatic.com": "signal", + "signal.co": "signal", + "thebrighttag.com": "signal", + "cdn-scripts.signifyd.com": "signifyd", + "signifyd.com": "signifyd", + "gw-services.vtrenz.net": "silverpop", + "mkt51.net": "silverpop", + "mkt912.com": "silverpop", + "mkt922.com": "silverpop", + "mkt941.com": "silverpop", + "pages01.net": "silverpop", + "pages02.net": "silverpop", + "pages04.net": "silverpop", + "pages05.net": "silverpop", + "similardeals.net": "similardeals.net", + "similarweb.com": "similarweb", + "similarweb.io": "similarweb", + "d8rk54i4mohrb.cloudfront.net": "simplereach", + "simplereach.com": "simplereach", + "simpli.fi": "simpli.fi", + "sina.com.cn": "sina", + "sinaimg.cn": "sina_cdn", + "reporting.singlefeed.com": "singlefeed", + "sddan.com": "sirdata", + "site24x7rum.com": "site24x7", + "site24x7rum.eu": "site24x7", + "sitebooster-fjfmworld-production.azureedge.net": "site_booster", + "a5.ogt.jp": "site_stratos", + "siteapps.com": "siteapps", + "sitebro.com": "sitebro", + "sitebro.com.tw": "sitebro", + "sitebro.net": "sitebro", + "sitebro.tw": "sitebro", + "siteheart.com": "siteheart", + "siteimprove.com": "siteimprove", + "siteimproveanalytics.com": "siteimprove_analytics", + "sitelabweb.com": "sitelabweb.com", + "sitemeter.com": "sitemeter", + "pixel.ad": "sitescout", + "sitescout.com": "sitescout", + "ad.sitemaji.com": "sitetag", + "sitetag.us": "sitetag", + "analytics.sitewit.com": "sitewit", + "ads.sixapart.com": "six_apart_advertising", + "sixt-neuwagen.de": "sixt-neuwagen.de", + "skadtec.com": "skadtec.com", + "redirectingat.com": "skimlinks", + "skimlinks.com": "skimlinks", + "skimresources.com": "skimlinks", + "analytics.skroutz.gr": "skroutz", + "skyglue.com": "skyglue", + "skype.com": "skype", + "skypeassets.com": "skype", + "skysa.com": "skysa", + "skyscnr.com": "skyscnr.com", + "slack-edge.com": "slack", + "slack-imgs.com": "slack", + "slack.com": "slack", + "slackb.com": "slack", + "slashdot.org": "slashdot_widget", + "sleeknotestaticcontent.sleeknote.com": "sleeknote", + "resultspage.com": "sli_systems", + "builder.extensionfactory.com": "slice_factory", + "freeskreen.com": "slimcutmedia", + "slingpic.com": "slingpic", + "smaato.net": "smaato", + "smart4ads.com": "smart4ads", + "sascdn.com": "smart_adserver", + "smartadserver.com": "smart_adserver", + "styria-digital.com": "smart_adserver", + "yoc-adserver.com": "smart_adserver", + "smartcall.kz": "smart_call", + "getsmartcontent.com": "smart_content", + "smartdevicemedia.com": "smart_device_media", + "x.cnt.my": "smart_leads", + "tracking.smartselling.cz": "smart_selling", + "bepolite.eu": "smartad", + "smartbn.ru": "smartbn", + "smartclick.net": "smartclick.net", + "smartclip.net": "smartclip", + "smartcontext.pl": "smartcontext", + "d1n00d49gkbray.cloudfront.net": "smarter_remarketer", + "dhxtx5wtu812h.cloudfront.net": "smarter_remarketer", + "smartertravel.com": "smarter_travel", + "travelsmarter.net": "smarter_travel", + "smct.co": "smarterclick", + "smartertrack.com": "smartertrack", + "smartlink.cool": "smartlink.cool", + "getsmartlook.com": "smartlook", + "smartlook.com": "smartlook", + "smartstream.tv": "smartstream.tv", + "smartsuppchat.com": "smartsupp_chat", + "smi2.net": "smi2.ru", + "smi2.ru": "smi2.ru", + "stat.media": "smi2.ru", + "cdn.smooch.io": "smooch", + "smowtion.com": "smowtion", + "smxindia.in": "smx_ventures", + "smyte.com": "smyte", + "snacktv.de": "snacktv", + "snap.com": "snap", + "addlive.io": "snap", + "feelinsonice.com": "snap", + "sc-cdn.net": "snap", + "sc-corp.net": "snap", + "sc-gw.com": "snap", + "sc-jpl.com": "snap", + "sc-prod.net": "snap", + "snap-dev.net": "snap", + "snapads.com": "snap", + "snapkit.com": "snap", + "snapengage.com": "snap_engage", + "sc-static.net": "snapchat", + "snapchat.com": "snapchat", + "snapcraft.io": "snapcraft", + "snapcraftcontent.com": "snapcraft", + "h-bid.com": "snigelweb", + "eu2.snoobi.eu": "snoobi", + "snoobi.com": "snoobi_analytics", + "d346whrrklhco7.cloudfront.net": "snowplow", + "d78fikflryjgj.cloudfront.net": "snowplow", + "dc8xl0ndzn2cb.cloudfront.net": "snowplow", + "playwire.com": "snowplow", + "snplow.net": "snowplow", + "go-mpulse.net": "soasta_mpulse", + "mpstat.us": "soasta_mpulse", + "tiaa-cref.org": "soasta_mpulse", + "sociablelabs.com": "sociable_labs", + "socialamp.com": "social_amp", + "socialannex.com": "social_annex", + "soclminer.com.br": "social_miner", + "duu8lzqdm8tsz.cloudfront.net": "socialbeat", + "ratevoice.com": "socialrms", + "sociaplus.com": "sociaplus.com", + "sociomantic.com": "sociomantic", + "images.sohu.com": "sohu", + "sojern.com": "sojern", + "sokrati.com": "sokrati", + "solads.media": "solads.media", + "solaredge.com": "solaredge", + "solidopinion.com": "solidopinion", + "pixel.solvemedia.com": "solve_media", + "soma2.de": "soma_2", + "mobileadtrading.com": "somoaudience", + "sonobi.com": "sonobi", + "sonos.com": "sonos", + "sophus3.com": "sophus3", + "deployads.com": "sortable", + "sndcdn.com": "soundcloud", + "soundcloud.com": "soundcloud", + "provenpixel.com": "sourceknowledge_pixel", + "decenthat.com": "sourcepoint", + "summerhamster.com": "sourcepoint", + "d3pkae9owd2lcf.cloudfront.net": "sovrn", + "lijit.com": "sovrn", + "onscroll.com": "sovrn_viewability_solutions", + "rts.sparkstudios.com": "spark_studios", + "sparkasse.de": "sparkasse.de", + "speakpipe.com": "speakpipe", + "adviva.net": "specific_media", + "specificclick.net": "specific_media", + "specificmedia.com": "specific_media", + "spectate.com": "spectate", + "speedshiftmedia.com": "speed_shift_media", + "speedcurve.com": "speedcurve", + "admarket.entireweb.com": "speedyads", + "affiliate.entireweb.com": "speedyads", + "sa.entireweb.com": "speedyads", + "speee-ad.akamaized.net": "speee", + "sphere.com": "sphere", + "surphace.com": "sphere", + "api.spheremall.com": "spheremall", + "zdwidget3-bs.sphereup.com": "sphereup", + "static.sspicy.ru": "spicy", + "spider.ad": "spider.ad", + "metrics.spiderads.eu": "spider_ads", + "spn.ee": "spinnakr", + "embed.spokenlayer.com": "spokenlayer", + "spongecell.com": "spongecell", + "sponsorads.de": "sponsorads.de", + "sportsbetaffiliates.com.au": "sportsbet_affiliates", + "spot.im": "spot.im", + "spoteffects.net": "spoteffect", + "scdn.co": "spotify", + "spotify.com": "spotify", + "pscdn.co": "spotify", + "spotifycdn.com": "spotify", + "spotifycdn.net": "spotify", + "spotilocal.com": "spotify", + "embed.spotify.com": "spotify_embed", + "spotscenered.info": "spotscenered.info", + "spotx.tv": "spotxchange", + "spotxcdn.com": "spotxchange", + "spotxchange.com": "spotxchange", + "spoutable.com": "spoutable", + "cdn.springboardplatform.com": "springboard", + "springserve.com": "springserve", + "pixel.sprinklr.com": "sprinklr", + "stat.sputnik.ru": "sputnik", + "email-match.com": "squadata", + "squarespace.com": "squarespace.com", + "srvtrck.com": "srvtrck.com", + "srvvtrk.com": "srvvtrk.com", + "sstatic.net": "sstatic.net", + "hatena.ne.jp": "st-hatena", + "st-hatena.com": "st-hatena", + "stackadapt.com": "stackadapt", + "stackpathdns.com": "stackpathdns.com", + "stailamedia.com": "stailamedia_com", + "stalluva.pro": "stalluva.pro", + "startappservice.com": "startapp", + "hit.stat24.com": "stat24", + "adstat.4u.pl": "stat4u", + "stat.4u.pl": "stat4u", + "statcounter.com": "statcounter", + "stathat.com": "stathat", + "statisfy.net": "statisfy", + "statsy.net": "statsy.net", + "statuscake.com": "statuscake", + "statuspage.io": "statuspage.io", + "stspg-customer.com": "statuspage.io", + "stayfriends.de": "stayfriends.de", + "steelhousemedia.com": "steelhouse", + "steepto.com": "steepto.com", + "stepstone.com": "stepstone.com", + "4stats.de": "stetic", + "stetic.com": "stetic", + "stickyadstv.com": "stickyads", + "stocktwits.com": "stocktwits", + "storify.com": "storify", + "storygize.net": "storygize", + "bizsolutions.strands.com": "strands_recommender", + "strava.com": "strava", + "mailfoogae.appspot.com": "streak", + "streamotion.com.au": "streamotion", + "streamrail.com": "streamrail.com", + "streamrail.net": "streamrail.com", + "stridespark.com": "stride", + "stripcdn.com": "stripchat.com", + "stripchat.com": "stripchat.com", + "stripe.com": "stripe.com", + "stripe.network": "stripe.com", + "stripst.com": "stripst.com", + "interactivemedia.net": "stroer_digital_media", + "stroeerdigitalgroup.de": "stroer_digital_media", + "stroeerdigitalmedia.de": "stroer_digital_media", + "stroeerdp.de": "stroer_digital_media", + "stroeermediabrands.de": "stroer_digital_media", + "spklw.com": "strossle", + "sprinklecontent.com": "strossle", + "strossle.it": "strossle", + "struq.com": "struq", + "stumble-upon.com": "stumbleupon_widgets", + "stumbleupon.com": "stumbleupon_widgets", + "su.pr": "stumbleupon_widgets", + "sub2tech.com": "sub2", + "ayads.co": "sublime_skinz", + "suggest.io": "suggest.io", + "sumologic.com": "sumologic.com", + "sumo.com": "sumome", + "sumome.com": "sumome", + "sundaysky.com": "sundaysky", + "supercell.com": "supercell", + "supercellsupport.com": "supercell", + "supercounters.com": "supercounters", + "superfastcdn.com": "superfastcdn.com", + "socdm.com": "supership", + "supplyframe.com": "supplyframe", + "surfingbird.ru": "surf_by_surfingbird", + "px.surveywall-api.survata.com": "survata", + "cdn.sweettooth.io": "sweettooth", + "swiftypecdn.com": "swiftype", + "swisscom.ch": "swisscom", + "myswitchads.com": "switch_concepts", + "switchadhub.com": "switch_concepts", + "switchads.com": "switch_concepts", + "switchafrica.com": "switch_concepts", + "switch.tv": "switchtv", + "shopximity.com": "swoop", + "swoop.com": "swoop", + "analytics-cdn.sykescottages.co.uk": "sykes", + "norton.com": "symantec", + "seal.verisign.com": "symantec", + "symantec.com": "symantec", + "d.hodes.com": "symphony_talent", + "technorati.com": "synacor", + "technoratimedia.com": "synacor", + "cn.clickable.net": "syncapse", + "synergy-e.com": "synergy-e", + "sdp-campaign.de": "t-mobile", + "t-online.de": "t-mobile", + "telekom-dienste.de": "t-mobile", + "telekom.com": "t-mobile", + "telekom.de": "t-mobile", + "toi.de": "t-mobile", + "t8cdn.com": "t8cdn.com", + "tableteducation.com": "tableteducation.com", + "basebanner.com": "taboola", + "taboola.com": "taboola", + "taboolasyndication.com": "taboola", + "tacoda.net": "tacoda", + "commander1.com": "tag_commander", + "tagcommander.com": "tag_commander", + "tags.tagcade.com": "tagcade", + "taggify.net": "taggify", + "taggyad.jp": "taggy", + "levexis.com": "tagman", + "tailtarget.com": "tail_target", + "tailsweep.com": "tailsweep", + "tamedia.ch": "tamedia.ch", + "tanx.com": "tanx", + "alipcsec.com": "taobao", + "taobao.com": "taobao", + "tapad.com": "tapad", + "theblogfrog.com": "tapinfluence", + "tarafdari.com": "tarafdari", + "target2sell.com": "target_2_sell", + "trackmytarget.com": "target_circle", + "cdn.targetfuel.com": "target_fuel", + "tawk.to": "tawk", + "tbn.ru": "tbn.ru", + "tchibo-content.de": "tchibo_de", + "tchibo.de": "tchibo_de", + "tdsrmbl.net": "tdsrmbl_net", + "teads.tv": "teads", + "tealeaf.ibmcloud.com": "tealeaf", + "tealium.com": "tealium", + "tealium.hs.llnwd.net": "tealium", + "tealiumiq.com": "tealium", + "tiqcdn.com": "tealium", + "teaser.cc": "teaser.cc", + "emailretargeting.com": "tedemis", + "tracking.dsmmadvantage.com": "teletech", + "telstra.com": "telstra", + "telstra.com.au": "telstra", + "tenderapp.com": "tender", + "tensitionschoo.club": "tensitionschoo.club", + "watch.teroti.com": "teroti", + "webterren.com": "terren", + "teufel.de": "teufel.de", + "theadex.com": "the_adex", + "connect.decknetwork.net": "the_deck", + "gu-web.net": "the_guardian", + "guardianapps.co.uk": "the_guardian", + "guim.co.uk": "the_guardian", + "deepthought.online": "the_reach_group", + "reachgroup.com": "the_reach_group", + "redintelligence.net": "the_reach_group", + "thesearchagency.net": "the_search_agency", + "thesun.co.uk": "the_sun", + "w-x.co": "the_weather_company", + "weather.com": "the_weather_company", + "wfxtriggers.com": "the_weather_company", + "tmdb.org": "themoviedb", + "thinglink.com": "thinglink", + "online-metrix.net": "threatmetrix", + "tidbit.co.in": "tidbit", + "code.tidio.co": "tidio", + "widget-v4.tidiochat.com": "tidio", + "analytics.tiktok.com": "tiktok_analytics", + "optimized.by.tiller.co": "tiller", + "vip.timezonedb.com": "timezondb", + "npttech.com": "tinypass", + "tinypass.com": "tinypass", + "tisoomi-services.com": "tisoomi", + "ad.tlvmedia.com": "tlv_media", + "ads.tlvmedia.com": "tlv_media", + "tag.tlvmedia.com": "tlv_media", + "research-int.se": "tns", + "sesamestats.com": "tns", + "spring-tns.net": "tns", + "statistik-gallup.net": "tns", + "tns-cs.net": "tns", + "tns-gallup.dk": "tns", + "tomnewsupdate.info": "tomnewsupdate.info", + "tfag.de": "tomorrow_focus", + "srv.clickfuse.com": "tonefuse", + "toplist.cz": "toplist.cz", + "toponclick.com": "toponclick_com", + "topsy.com": "topsy", + "insight.torbit.com": "torbit", + "toro-tags.com": "toro", + "toroadvertising.com": "toro", + "toroadvertisingmedia.com": "toro", + "tororango.com": "tororango.com", + "i.total-media.net": "total_media", + "inq.com": "touchcommerce", + "tovarro.com": "tovarro.com", + "rialpay.com": "tp-cdn.com", + "tp-cdn.com": "tp-cdn.com", + "kiwe.io": "tracc.it", + "tracc.it": "tracc.it", + "ipnoid.com": "tracemyip", + "tracemyip.org": "tracemyip", + "d2gfdmu30u15x7.cloudfront.net": "traceview", + "tracelytics.com": "traceview", + "cdn.trackduck.com": "track_duck", + "d2zah9y47r7bi2.cloudfront.net": "trackjs", + "dl1d2m8ri9v3j.cloudfront.net": "trackjs", + "trackjs.com": "trackjs", + "conversionlab.trackset.com": "trackset_conversionlab", + "trackuity.com": "trackuity", + "adsrvr.org": "tradedesk", + "tradedoubler.com": "tradedoubler", + "tradelab.fr": "tradelab", + "tradetracker.net": "tradetracker", + "cdntrf.com": "traffective", + "traffective.com": "traffective", + "my.trafficfuel.com": "traffic_fuel", + "trafficrevenue.net": "traffic_revenue", + "trafficstars.com": "traffic_stars", + "tsyndicate.com": "traffic_stars", + "trafficbroker.com": "trafficbroker", + "trafficfabrik.com": "trafficfabrik.com", + "trafficfactory.biz": "trafficfactory", + "trafficforce.com": "trafficforce", + "traffichaus.com": "traffichaus", + "trafficjunky.net": "trafficjunky", + "traffiliate.com": "traffiliate", + "storage.trafic.ro": "trafic", + "trafmag.com": "trafmag.com", + "api.transcend.io": "transcend", + "cdn.transcend.io": "transcend", + "sync-transcend-cdn.com": "transcend", + "transcend-cdn.com": "transcend", + "transcend.io": "transcend", + "telemetry.transcend.io": "transcend_telemetry", + "backoffice.transmatico.com": "transmatic", + "travelaudience.com": "travel_audience", + "trbo.com": "trbo", + "treasuredata.com": "treasuredata", + "scanscout.com": "tremor_video", + "tremorhub.com": "tremor_video", + "tremormedia.com": "tremor_video", + "tremorvideo.com": "tremor_video", + "videohub.tv": "tremor_video", + "s.tcimg.com": "trendcounter", + "tcimg.com": "trendcounter", + "trendemon.com": "trendemon", + "exponential.com": "tribal_fusion", + "tribalfusion.com": "tribal_fusion", + "tribl.io": "triblio", + "api.temails.com": "trigger_mail_marketing", + "t.myvisitors.se": "triggerbee", + "jscache.com": "tripadvisor", + "tacdn.com": "tripadvisor", + "tamgrt.com": "tripadvisor", + "tripadvisor.co.uk": "tripadvisor", + "tripadvisor.com": "tripadvisor", + "tripadvisor.de": "tripadvisor", + "3lift.com": "triplelift", + "d3iwjrnl4m67rd.cloudfront.net": "triplelift", + "triplelift.com": "triplelift", + "static.triptease.io": "triptease", + "andomedia.com": "triton_digital", + "tritondigital.com": "triton_digital", + "revelations.trovus.co.uk": "trovus_revelations", + "trsv3.com": "trsv3.com", + "truefitcorp.com": "true_fit", + "tru.am": "trueanthem", + "adlegend.com": "trueffect", + "addoer.com": "truehits.net", + "truehits.in.th": "truehits.net", + "truehits.net": "truehits.net", + "trumba.com": "trumba", + "truoptik.com": "truoptik", + "trustarc.com": "trustarc", + "truste.com": "trustarc", + "consent.truste.com": "truste_consent", + "choices-or.truste.com": "truste_notice", + "choices.truste.com": "truste_notice", + "privacy-policy.truste.com": "truste_seal", + "trustedshops.com": "trusted_shops", + "trustev.com": "trustev", + "secure.comodo.net": "trustlogo", + "trustlogo.com": "trustlogo", + "usertrust.com": "trustlogo", + "trustpilot.com": "trustpilot", + "trustwave.com": "trustwave.com", + "tubecorporate.com": "tubecorporate", + "tubecup.org": "tubecup.org", + "tubemogul.com": "tubemogul", + "sre-perim.com": "tumblr_analytics", + "txmblr.com": "tumblr_analytics", + "platform.tumblr.com": "tumblr_buttons", + "lib.tunein.com": "tune_in", + "adagio.turboadv.com": "turbo", + "turn.com": "turn_inc.", + "ngtv.io": "turner", + "turner.com": "turner", + "warnermedia.com": "turner", + "turnsocial.com": "turnsocial", + "turnto.com": "turnto", + "tvsquared.com": "tvsquared.com", + "tweetboard.com": "tweetboard", + "tweetmeme.com": "tweetmeme", + "c4tw.net": "twenga", + "twiago.com": "twiago", + "twinedigital.go2cloud.org": "twine", + "ext-twitch.tv": "twitch.tv", + "twitch.tv": "twitch.tv", + "jtvnw.net": "twitch_cdn", + "ttvnw.net": "twitch_cdn", + "twitchcdn.net": "twitch_cdn", + "twitchsvc.net": "twitch_cdn", + "t.co": "twitter", + "twimg.com": "twitter", + "twitter.com": "twitter", + "twttr.com": "twitter", + "x.com": "twitter", + "ads-twitter.com": "twitter_ads", + "analytics.twitter.com": "twitter_analytics", + "tellapart.com": "twitter_for_business", + "syndication.twitter.com": "twitter_syndication", + "twittercounter.com": "twittercounter", + "twyn.com": "twyn", + "txxx.com": "txxx.com", + "tynt.com": "tynt", + "typeform.com": "typeform", + "typepad.com": "typepad_stats", + "typography.com": "typography.com", + "tyroodirect.com": "tyroo", + "tyroodr.com": "tyroo", + "tzetze.it": "tzetze", + "ubersetzung-app.com": "ubersetzung-app.com", + "ubuntu.com": "ubuntu", + "ubuntucompanyservices.co.za": "ubuntu", + "aralego.net": "ucfunnel", + "ucfunnel.com": "ucfunnel", + "at.ua": "ucoz", + "do.am": "ucoz", + "ucoz.net": "ucoz", + "ad-api-v01.uliza.jp": "uliza", + "api.umbel.com": "umbel", + "umebiggestern.club": "umebiggestern.club", + "unanimis.co.uk": "unanimis", + "d3pkntwtp2ukl5.cloudfront.net": "unbounce", + "t.unbounce.com": "unbounce", + "d21gpk1vhmjuf5.cloudfront.net": "unbxd", + "tracker.unbxdapi.com": "unbxd", + "under-box.com": "under-box.com", + "undercomputer.com": "undercomputer.com", + "udmserve.net": "underdog_media", + "undertone.com": "undertone", + "roitesting.com": "unica", + "unica.com": "unica", + "unister-adservices.com": "unister", + "unister-gmbh.de": "unister", + "uadx.com": "unite", + "nonstoppartner.net": "united_digital_group", + "tifbs.net": "united_internet_media_gmbh", + "ui-portal.de": "united_internet_media_gmbh", + "uimserv.net": "united_internet_media_gmbh", + "unity.com": "unity", + "unity3d.com": "unity", + "unity3dusercontent.com": "unity", + "unityads.unity3d.com": "unity_ads", + "univide.com": "univide", + "unpkg.com": "unpkg.com", + "unrulymedia.com": "unruly_media", + "src.kitcode.net": "untriel_finger_printing", + "s.clickability.com": "upland_clickability_beacon", + "uppr.de": "uppr.de", + "upravel.com": "upravel.com", + "upsellit.com": "upsellit", + "kontagent.net": "upsight", + "app.uptain.de": "uptain", + "uptolike.com": "uptolike.com", + "uptrends.com": "uptrends", + "urban-media.com": "urban-media.com", + "urbanairship.com": "urban_airship", + "mobile.usabilitytools.com": "usability_tools", + "usabilla.com": "usabilla", + "usemax.de": "usemax", + "usemaxserver.de": "usemax", + "usemessages.com": "usemessages.com", + "api.usercycle.com": "usercycle", + "userdive.com": "userdive", + "userecho.com": "userecho", + "dq4irj27fs462.cloudfront.net": "userlike.com", + "userlike-cdn-widgets.s3-eu-west-1.amazonaws.com": "userlike.com", + "userlike.com": "userlike.com", + "contactusplus.com": "userpulse", + "user-pulse.appspot.com": "userpulse", + "userpulse.com": "userpulse", + "userreplay.net": "userreplay", + "sdsbucket.s3.amazonaws.com": "userreport", + "userreport.com": "userreport", + "dtkm4pd19nw6z.cloudfront.net": "userrules", + "api.usersnap.com": "usersnap", + "d3mvnvhjmkxpjz.cloudfront.net": "usersnap", + "uservoice.com": "uservoice", + "userzoom.com": "userzoom.com", + "usocial.pro": "usocial", + "utarget.ru": "utarget", + "uuidksinc.net": "uuidksinc.net", + "v12group.com": "v12_group", + "vacaneedasap.com": "vacaneedasap.com", + "ads.brand.net": "valassis", + "vdrn.redplum.com": "valassis", + "api.searchlinks.com": "validclick", + "js.searchlinks.com": "validclick", + "vinsight.de": "valiton", + "valueclick.net": "valueclick_media", + "valuecommerce.com": "valuecommerce", + "valuedopinions.co.uk": "valued_opinions", + "buzzparadise.com": "vanksen", + "vmmpxl.com": "varick_media_management", + "vcita.com": "vcita", + "tracking.vcommission.com": "vcommission", + "vdopia.com": "vdopia", + "veinteractive.com": "ve_interactive", + "vee24.com": "vee24", + "velocecdn.com": "velocecdn.com", + "mdcn.mobi": "velti_mgage_visualize", + "velti.com": "velti_mgage_visualize", + "vendemore.com": "vendemore", + "venturead.com": "venturead.com", + "api.venyoo.ru": "venyoo", + "veoxa.com": "veoxa", + "vergic.com": "vergic.com", + "d3qxef4rp70elm.cloudfront.net": "vero", + "getvero.com": "vero", + "verticalacuity.com": "vertical_acuity", + "roi.vertical-leap.co.uk": "vertical_leap", + "cts.vresp.com": "verticalresponse", + "verticalscope.com": "verticalscope", + "ads.vertoz.com": "vertoz", + "banner.vrtzads.com": "vertoz", + "veruta.com": "veruta", + "vrvm.com": "verve_mobile", + "vgwort.de": "vg_wort", + "digitaltarget.ru": "vi", + "btg.mtvnservices.com": "viacom_tag_container", + "viafoura.com": "viafoura", + "viafoura.net": "viafoura", + "intellitxt.com": "vibrant_ads", + "vicomi.com": "vicomi.com", + "vidazoo.com": "vidazoo.com", + "module-videodesk.com": "video_desk", + "vidtok.ru": "video_potok", + "videoadex.com": "videoadex.com", + "tidaltv.com": "videology", + "videonow.ru": "videonow", + "videoplayerhub.com": "videoplayerhub.com", + "videoplaza.tv": "videoplaza", + "kweb.videostep.com": "videostep", + "content.vidgyor.com": "vidgyor", + "vidible.tv": "vidible", + "assets.vidora.com": "vidora", + "vietad.vn": "vietad", + "viglink.com": "viglink", + "vigo.one": "vigo", + "vigo.ru": "vigo", + "vimeo.com": "vimeo", + "vimeocdn.com": "vimeo", + "vindicosuite.com": "vindico_group", + "vinted.net": "vinted", + "viraladnetwork.net": "viral_ad_network", + "app.viral-loops.com": "viral_loops", + "viralgains.com": "viralgains", + "viralmint.com": "viralmint", + "virgul.com": "virgul", + "ssp.virool.com": "virool_player", + "virtusize.com": "virtusize", + "viewablemedia.net": "visible_measures", + "visiblemeasures.com": "visible_measures", + "visioncriticalpanels.com": "vision_critical", + "visitstreamer.com": "visit_streamer", + "visitortracklog.com": "visitortrack", + "visitorville.com": "visitorville", + "d2hkbi3gan6yg6.cloudfront.net": "visscore", + "myvisualiq.net": "visual_iq", + "visualrevenue.com": "visual_revenue", + "d5phz18u4wuww.cloudfront.net": "visual_website_optimizer", + "visualwebsiteoptimizer.com": "visual_website_optimizer", + "wingify.com": "visual_website_optimizer", + "vdna-assets.com": "visualdna", + "visualdna.com": "visualdna", + "visualstudio.com": "visualstudio.com", + "id-visitors.com": "visualvisitor", + "vi-tag.net": "vivalu", + "vivistats.com": "vivistats", + "vizury.com": "vizury", + "vizzit.se": "vizzit", + "cdn-vk.com": "vk.com", + "vk-analytics.com": "vk.com", + "vkuservideo.net": "vk.com", + "userapi.com": "vkontakte", + "vk.com": "vkontakte", + "vkontakte.ru": "vkontakte", + "vntsm.com": "vntsm.com", + "vodafone.de": "vodafone.de", + "voicefive.com": "voicefive", + "volusion.com": "volusion_chat", + "cwkuki.com": "voluum", + "volumtrk.com": "voluum", + "voluumtrk3.com": "voluum", + "vooxe.com": "vooxe.com", + "vorwerk.de": "vorwerk.de", + "vox-cdn.com": "vox", + "embed.voxus.tv": "voxus", + "voxus-targeting-voxusmidia.netdna-ssl.com": "voxus", + "c-dsp.vpadn.com": "vpon", + "tools.vpscash.nl": "vpscash", + "vsassets.io": "vs", + "exp-tas.com": "vscode", + "v0cdn.net": "vscode", + "vscode-cdn.net": "vscode", + "vscode-unpkg.net": "vscode", + "vtracy.de": "vtracy.de", + "liftoff.io": "vungle", + "vungle.com": "vungle", + "vuukle.com": "vuukle", + "view.vzaar.com": "vzaar", + "w3counter.com": "w3counter", + "w3roi.com": "w3roi", + "contentwidgets.net": "wahoha", + "wahoha.com": "wahoha", + "walkme.com": "walkme.com", + "wsod.com": "wall_street_on_demand", + "walmart.com": "walmart", + "wamcash.com": "wamcash", + "cdn-saveit.wanelo.com": "wanelo", + "static.warp.ly": "warp.ly", + "way2traffic.com": "way2traffic", + "wayfair.com": "wayfair_com", + "wdr.de": "wdr.de", + "web-stat.com": "web-stat", + "web.de": "web.de", + "webde.de": "web.de", + "webstat.net": "web.stat", + "ssl.webserviceaward.com": "web_service_award", + "webtraxs.com": "web_traxs", + "wipe.de": "web_wipe_analytics", + "webads.nl": "webads", + "tr.webantenna.info": "webantenna", + "webclicks24.com": "webclicks24_com", + "webclose.net": "webclose.net", + "webcollage.net": "webcollage", + "goutee.top": "webedia", + "mediaathay.org.uk": "webedia", + "wbdx.fr": "webedia", + "webeffective.keynote.com": "webeffective", + "widgets.webengage.com": "webengage", + "webgains.com": "webgains", + "webgozar.com": "webgozar", + "webgozar.ir": "webgozar", + "webhelpje.be": "webhelpje", + "webhelpje.nl": "webhelpje", + "webleads-tracker.com": "webleads_tracker", + "automation.webmecanik.com": "webmecanik", + "adrcdn.com": "weborama", + "adrcntr.com": "weborama", + "weborama.com": "weborama", + "weborama.fr": "weborama", + "webprospector.de": "webprospector", + "webstat.com": "webstat", + "webstat.se": "webstat.se", + "stat.webtrack.biz": "webtrack", + "webtraffic.no": "webtraffic", + "webtraffic.se": "webtraffic", + "d1r27qvpjiaqj3.cloudfront.net": "webtrekk", + "mateti.net": "webtrekk", + "wbtrk.net": "webtrekk", + "wcfbc.net": "webtrekk", + "webtrekk-asia.net": "webtrekk", + "webtrekk.com": "webtrekk", + "webtrekk.de": "webtrekk", + "webtrekk.net": "webtrekk", + "wt-eu02.net": "webtrekk", + "wt-safetag.com": "webtrekk", + "webtrends.com": "webtrends", + "webtrendslive.com": "webtrends", + "rd.clickshift.com": "webtrends_ads", + "web-visor.com": "webvisor", + "weebly.com": "weebly_ads", + "widget.weibo.com": "weibo_widget", + "westlotto.com": "westlotto_com", + "wetter.com": "wetter_com", + "wettercomassets.com": "wetter_com", + "whatsbroadcast.com": "whatbroadcast", + "whatsapp.com": "whatsapp", + "whatsapp.net": "whatsapp", + "whisper.onelink.me": "whisper", + "whisper.sh": "whisper", + "amung.us": "whos.amung.us", + "whoson.com": "whoson", + "api.wibbitz.com": "wibbitz", + "cdn4.wibbitz.com": "wibbitz", + "cdn.wibiya.com": "wibiya_toolbar", + "predictad.com": "widdit", + "widerplanet.com": "widerplanet", + "widespace.com": "widespace", + "widgetserver.com": "widgetbox", + "3c45d848d99.se": "wiget_media", + "wigetmedia.com": "wiget_media", + "tracker.wigzopush.com": "wigzo", + "wikia-services.com": "wikia-services.com", + "wikia-beacon.com": "wikia_beacon", + "nocookie.net": "wikia_cdn", + "wikimedia.org": "wikimedia.org", + "wikipedia.org": "wikimedia.org", + "wikiquote.org": "wikimedia.org", + "tracking.winaffiliates.com": "winaffiliates", + "maps.windows.com": "windows_maps", + "client.wns.windows.com": "windows_notifications", + "time.windows.com": "windows_time", + "windowsupdate.com": "windowsupdate", + "api.wipmania.com": "wipmania", + "col1.wiqhit.com": "wiqhit", + "wirecard.com": "wirecard", + "wirecard.de": "wirecard", + "leadlab.click": "wiredminds", + "wiredminds.com": "wiredminds", + "wiredminds.de": "wiredminds", + "adtotal.pl": "wirtualna_polska", + "wisepops.com": "wisepops", + "cdn.wishpond.net": "wishpond", + "wistia.com": "wistia", + "wistia.net": "wistia", + "parastorage.com": "wix.com", + "wix.com": "wix.com", + "public.wixab-cloud.com": "wixab", + "wixmp.com": "wixmp", + "wnzmauurgol.com": "wnzmauurgol.com", + "wonderpush.com": "wonderpush", + "woopic.com": "woopic.com", + "woopra.com": "woopra", + "pubmine.com": "wordpress_ads", + "w.org": "wordpress_stats", + "wordpress.com": "wordpress_stats", + "wp.com": "wordpress_stats", + "tracker.wordstream.com": "wordstream", + "worldnaturenet.xyz": "worldnaturenet_xyz", + "wp.pl": "wp.pl", + "wpimg.pl": "wp.pl", + "wpengine.com": "wp_engine", + "clickanalyzer.jp": "writeup_clickanalyzer", + "wurfl.io": "wurfl", + "wwwpromoter.com": "wwwpromoter", + "imgwykop.pl": "wykop", + "wykop.pl": "wykop", + "wysistat.com": "wysistat.com", + "wysistat.net": "wysistat.com", + "wywy.com": "wywy.com", + "wywyuserservice.com": "wywy.com", + "cdn.x-lift.jp": "x-lift", + "xapads.com": "xapads", + "xen-media.com": "xen-media.com", + "xfreeservice.com": "xfreeservice.com", + "xhamster.com": "xhamster", + "xhamsterlive.com": "xhamster", + "xhamsterpremium.com": "xhamster", + "xhcdn.com": "xhamster", + "huami.com": "xiaomi", + "mi-img.com": "xiaomi", + "mi.com": "xiaomi", + "miui.com": "xiaomi", + "xiaomi.com": "xiaomi", + "xiaomi.net": "xiaomi", + "xiaomiyoupin.com": "xiaomi", + "xing-share.com": "xing", + "xing.com": "xing", + "xmediaclicks.com": "xmediaclicks", + "xnxx-cdn.com": "xnxx_cdn", + "xplosion.de": "xplosion", + "xtendmedia.com": "xtend", + "xvideos-cdn.com": "xvideos_com", + "xvideos.com": "xvideos_com", + "xxxlshop.de": "xxxlshop.de", + "xxxlutz.de": "xxxlutz", + "adx.com.ru": "yabbi", + "yabbi.me": "yabbi", + "yabuka.com": "yabuka", + "tumblr.com": "yahoo", + "yahoo.com": "yahoo", + "yahooapis.com": "yahoo", + "yimg.com": "yahoo", + "oath.cloud": "yahoo", + "yahoo.net": "yahoo", + "yahooinc.com": "yahoo", + "yahoodns.net": "yahoo", + "yads.yahoo.com": "yahoo_ad_exchange", + "yieldmanager.com": "yahoo_ad_exchange", + "pr-bh.ybp.yahoo.com": "yahoo_ad_manager", + "ads.yahoo.com": "yahoo_advertising", + "adtech.yahooinc.com": "yahoo_advertising", + "analytics.yahoo.com": "yahoo_analytics", + "np.lexity.com": "yahoo_commerce_central", + "storage-yahoo.jp": "yahoo_japan_retargeting", + "yahoo.co.jp": "yahoo_japan_retargeting", + "yahooapis.jp": "yahoo_japan_retargeting", + "yimg.jp": "yahoo_japan_retargeting", + "yjtag.jp": "yahoo_japan_retargeting", + "ov.yahoo.co.jp": "yahoo_overture", + "overture.com": "yahoo_overture", + "search.yahooinc.com": "yahoo_search", + "luminate.com": "yahoo_small_business", + "pixazza.com": "yahoo_small_business", + "awaps.yandex.ru": "yandex", + "d31j93rd8oukbv.cloudfront.net": "yandex", + "webvisor.org": "yandex", + "yandex.net": "yandex", + "yandex.ru": "yandex", + "yastatic.net": "yandex", + "ya.ru": "yandex", + "yandex.by": "yandex", + "yandex.com": "yandex", + "yandex.com.tr": "yandex", + "yandex.fr": "yandex", + "yandex.kz": "yandex", + "yandex.st": "yandex.api", + "yandexadexchange.net": "yandex_adexchange", + "metabar.ru": "yandex_advisor", + "appmetrica.yandex.com": "yandex_appmetrica", + "an.webvisor.org": "yandex_direct", + "an.yandex.ru": "yandex_direct", + "bs.yandex.ru": "yandex_direct", + "mc.yandex.ru": "yandex_metrika", + "passport.yandex.ru": "yandex_passport", + "yapfiles.ru": "yapfiles.ru", + "yashi.com": "yashi", + "ad.adserverplus.com": "ybrant_media", + "player.sambaads.com": "ycontent", + "cdn.yektanet.com": "yektanet", + "fetch.yektanet.com": "yektanet", + "yengo.com": "yengo", + "yengointernational.com": "yengo", + "link.p0.com": "yesmail", + "adsrevenue.net": "yesup_advertising", + "infinityads.com": "yesup_advertising", + "momentsharing.com": "yesup_advertising", + "multipops.com": "yesup_advertising", + "onlineadultadvertising.com": "yesup_advertising", + "paypopup.com": "yesup_advertising", + "popupxxx.com": "yesup_advertising", + "xtargeting.com": "yesup_advertising", + "xxxwebtraffic.com": "yesup_advertising", + "app.yesware.com": "yesware", + "yldbt.com": "yieldbot", + "yieldify.com": "yieldify", + "yieldlab.net": "yieldlab", + "yieldlove-ad-serving.net": "yieldlove", + "yieldlove.com": "yieldlove", + "yieldmo.com": "yieldmo", + "254a.com": "yieldr", + "collect.yldr.io": "yieldr_air", + "yieldsquare.com": "yieldsquare", + "analytics-sdk.yle.fi": "yle", + "yllix.com": "yllixmedia", + "ymetrica1.com": "ymetrica1.com", + "ymzrrizntbhde.com": "ymzrrizntbhde.com", + "yoapp.s3.amazonaws.com": "yo_button", + "natpal.com": "yodle", + "analytics.yola.net": "yola_analytics", + "pixel.yola.net": "yola_analytics", + "delivery.yomedia.vn": "yomedia", + "yoochoose.net": "yoochoose.net", + "yotpo.com": "yotpo", + "yottaa.net": "yottaa", + "yottlyscript.com": "yottly", + "api.youcanbook.me": "youcanbookme", + "youcanbook.me": "youcanbookme", + "player.youku.com": "youku", + "youporn.com": "youporn", + "ypncdn.com": "youporn", + "googlevideo.com": "youtube", + "youtube-nocookie.com": "youtube", + "youtube.com": "youtube", + "ytimg.com": "youtube", + "c.ypcdn.com": "yp", + "i1.ypcdn.com": "yp", + "yellowpages.com": "yp", + "prod-js.aws.y-track.com": "ysance", + "y-track.com": "ysance", + "yume.com": "yume", + "yumenetworks.com": "yume,_inc.", + "gravityrd-services.com": "yusp", + "api.zadarma.com": "zadarma", + "zalan.do": "zalando_de", + "zalando.de": "zalando_de", + "ztat.net": "zalando_de", + "zaloapp.com": "zalo", + "zanox-affiliate.de": "zanox", + "zanox.com": "zanox", + "zanox.ws": "zanox", + "zaparena.com": "zaparena", + "zapunited.com": "zaparena", + "track.zappos.com": "zappos", + "zdassets.com": "zdassets.com", + "zebestof.com": "zebestof.com", + "zedo.com": "zedo", + "zemanta.com": "zemanta", + "zencdn.net": "zencoder", + "zendesk.com": "zendesk", + "zergnet.com": "zergnet", + "zero.kz": "zero.kz", + "app.insightgrit.com": "zeta", + "app.ubertags.com": "zeta", + "cdn.boomtrain.com": "zeta", + "events.api.boomtrain.com": "zeta", + "rfihub.com": "zeta", + "rfihub.net": "zeta", + "ru4.com": "zeta", + "xplusone.com": "zeta", + "zeusclicks.com": "zeusclicks", + "webtest.net": "ziff_davis", + "zdbb.net": "ziff_davis", + "ziffdavis.com": "ziff_davis", + "ziffdavisinternational.com": "ziff_davis", + "ziffprod.com": "ziff_davis", + "ziffstatic.com": "ziff_davis", + "analytics.ziftsolutions.com": "zift_solutions", + "zimbio.com": "zimbio.com", + "api.zippyshare.com": "zippyshare_widget", + "zmags.com": "zmags", + "zmctrack.net": "zmctrack.net", + "zog.link": "zog.link", + "js.zohostatic.eu": "zoho", + "zononi.com": "zononi.com", + "zopim.com": "zopim", + "zukxd6fkxqn.com": "zukxd6fkxqn.com", + "zwaar.net": "zwaar", + "zwaar.org": "zwaar", + "extend.tv": "zypmedia" + } +} diff --git a/static/domain-info/tracker/trackers.json.bak b/static/domain-info/tracker/trackers.json.bak new file mode 100644 index 0000000..ee042be --- /dev/null +++ b/static/domain-info/tracker/trackers.json.bak @@ -0,0 +1,25333 @@ +{ + "timeUpdated": "2025-03-17T10:05:02.622Z", + "categories": { + "0": "audio_video_player", + "1": "comments", + "2": "customer_interaction", + "3": "pornvertising", + "4": "advertising", + "5": "essential", + "6": "site_analytics", + "7": "social_media", + "8": "misc", + "9": "cdn", + "10": "hosting", + "11": "unknown", + "12": "extensions", + "13": "email", + "14": "consent", + "15": "telemetry", + "101": "mobile_analytics" + }, + + "trackers": { + "163": { + "name": "163", + "categoryId": 4, + "url": "http://www.163.com/", + "companyId": "163" + }, + "miui.com":{ + "name": "MIUI", + "categoryId": 101, + "url": "http://tracking.miui.com", + "companyId": "miui" + }, + "1000mercis": { + "name": "1000mercis", + "categoryId": 6, + "url": "http://www.1000mercis.com/", + "companyId": "1000mercis" + }, + "161media": { + "name": "Platform161", + "categoryId": 4, + "url": "https://platform161.com/", + "companyId": "platform161" + }, + "1822direkt.de": { + "name": "1822direkt.de", + "categoryId": 8, + "url": "https://www.1822direkt.de/", + "companyId": "1822direkt", + "source": "AdGuard" + }, + "1dmp.io": { + "name": "1DMP", + "categoryId": 4, + "url": "https://1dmp.io/", + "companyId": "1dmp" + }, + "1plusx": { + "name": "1plusX", + "categoryId": 6, + "url": "https://www.1plusx.com/", + "companyId": "1plusx" + }, + "1sponsor": { + "name": "1sponsor", + "categoryId": 4, + "url": "http://fr.1sponsor.com/", + "companyId": "1sponsor" + }, + "1tag": { + "name": "1tag", + "categoryId": 6, + "url": "http://www.dentsuaegisnetwork.com/", + "companyId": "dentsu_aegis_network" + }, + "1und1": { + "name": "1&1 IONOS", + "categoryId": 8, + "url": "http://www.ionos.com/", + "companyId": "1und1", + "source": "AdGuard" + }, + "24-ads.com": { + "name": "24-ADS", + "categoryId": 4, + "url": "http://www.24-ads.com/", + "companyId": "24-ads.com", + "source": "AdGuard" + }, + "24_7": { + "name": "[24]7", + "categoryId": 2, + "url": "http://www.247-inc.com/", + "companyId": "24_7" + }, + "24log": { + "name": "24log", + "categoryId": 6, + "url": "http://24log.ru/", + "companyId": "24log" + }, + "24smi": { + "name": "24SMI", + "categoryId": 8, + "url": "https://24smi.org/", + "companyId": "24smi", + "source": "AdGuard" + }, + "2leep": { + "name": "2leep", + "categoryId": 4, + "url": "http://2leep.com/", + "companyId": "2leep" + }, + "33across": { + "name": "33Across", + "categoryId": 4, + "url": "http://33across.com/", + "companyId": "33across" + }, + "3dstats": { + "name": "3DStats", + "categoryId": 6, + "url": "http://www.3dstats.com/", + "companyId": "3dstats" + }, + "3gpp": { + "name": "3GPP Network", + "categoryId": 5, + "url": "https://www.3gpp.org/", + "companyId": "3gpp", + "source": "AdGuard" + }, + "4chan": { + "name": "4Chan", + "categoryId": 8, + "url": "https://www.4chan.org/", + "companyId": "4chan", + "source": "AdGuard" + }, + "4finance_com": { + "name": "4finance", + "categoryId": 2, + "url": "https://4finance.com/", + "companyId": "4finance", + "source": "AdGuard" + }, + "4w_marketplace": { + "name": "4w Marketplace", + "categoryId": 4, + "url": "http://www.4wmarketplace.com/", + "companyId": "4w_marketplace" + }, + "500friends": { + "name": "500friends", + "categoryId": 2, + "url": "http://500friends.com/", + "companyId": "500friends" + }, + "51.la": { + "name": "51.La", + "categoryId": 6, + "url": "http://www.51.la/", + "companyId": "51.la" + }, + "5min_media": { + "name": "5min Media", + "categoryId": 0, + "url": "http://www.5min.com/", + "companyId": "verizon" + }, + "6sense": { + "name": "6Sense", + "categoryId": 6, + "url": "http://home.grepdata.com", + "companyId": "6sense" + }, + "77tracking": { + "name": "77Tracking", + "categoryId": 6, + "url": "http://www.77agency.com/", + "companyId": "77agency" + }, + "7plus": { + "name": "7plus", + "categoryId": 0, + "url": "https://7plus.com.au/", + "companyId": "seven_group_holdings", + "source": "AdGuard" + }, + "7tv.de": { + "name": "7tv.app", + "categoryId": 0, + "url": "https://www.7tv.app/", + "companyId": "7tv", + "source": "AdGuard" + }, + "888media": { + "name": "888media", + "categoryId": 4, + "url": "http://888media.net/", + "companyId": "888_media" + }, + "8digits": { + "name": "8digits", + "categoryId": 6, + "url": "http://8digits.com/", + "companyId": "8digits" + }, + "94j7afz2nr.xyz": { + "name": "94j7afz2nr.xyz", + "categoryId": 12, + "url": null, + "companyId": null + }, + "99stats": { + "name": "99stats", + "categoryId": 6, + "url": "http://www.99stats.com/", + "companyId": "99stats" + }, + "a3cloud_net": { + "name": "a3cloud.net", + "categoryId": 11, + "url": null, + "companyId": null + }, + "a8": { + "name": "A8", + "categoryId": 4, + "url": "http://www.a8.net/", + "companyId": "a8" + }, + "aaxads.com": { + "name": "Acceptable Ads Exchange", + "categoryId": 4, + "url": "https://aax.media/", + "companyId": null + }, + "ab_tasty": { + "name": "AB Tasty", + "categoryId": 6, + "url": "https://en.abtasty.com", + "companyId": "ab_tasty" + }, + "abc": { + "name": "Australian Broadcasting Corporation", + "categoryId": 8, + "url": "https://www.abc.net.au/", + "companyId": "australian_government", + "source": "AdGuard" + }, + "ablida": { + "name": "ablida", + "categoryId": 4, + "url": "https://www.ablida.de/", + "companyId": null + }, + "accelia": { + "name": "Accelia", + "categoryId": 4, + "url": "http://www.durasite.net/", + "companyId": "accelia" + }, + "accengage": { + "name": "Accengage", + "categoryId": 4, + "url": "https://www.accengage.com/", + "companyId": "accengage" + }, + "accessanalyzer": { + "name": "AccessAnalyzer", + "categoryId": 6, + "url": "http://ax.xrea.com/", + "companyId": "accessanalyzer" + }, + "accesstrade": { + "name": "AccessTrade", + "categoryId": 4, + "url": "http://accesstrade.net/", + "companyId": "accesstrade" + }, + "accord_group": { + "name": "Accord Group", + "categoryId": 4, + "url": "http://www.accordgroup.co.uk/", + "companyId": "accord_group" + }, + "accordant_media": { + "name": "Accordant Media", + "categoryId": 4, + "url": "http://www.accordantmedia.com/", + "companyId": "accordant_media" + }, + "accuen_media": { + "name": "Accuen Media", + "categoryId": 4, + "url": "http://www.accuenmedia.com/", + "companyId": "accuen_media" + }, + "acestream.net": { + "name": "ActStream", + "categoryId": 12, + "url": "http://www.acestream.org/", + "companyId": null + }, + "acint.net": { + "name": "Artificial Computation Intelligence", + "categoryId": 6, + "url": "https://www.acint.net/", + "companyId": "acint" + }, + "acloudimages": { + "name": "Acloudimages", + "categoryId": 4, + "url": "http://adsterra.com", + "companyId": "adsterra" + }, + "acpm.fr": { + "name": "ACPM", + "categoryId": 6, + "url": "http://www.acpm.fr/", + "companyId": null + }, + "acquia.com": { + "name": "Acquia", + "categoryId": 6, + "url": "https://www.acquia.com/", + "companyId": null + }, + "acrweb": { + "name": "ACRWEB", + "categoryId": 7, + "url": "http://www.ziyu.net/", + "companyId": "acrweb" + }, + "actionpay": { + "name": "actionpay", + "categoryId": 4, + "url": "http://actionpay.ru/", + "companyId": "actionpay" + }, + "active_agent": { + "name": "Active Agent", + "categoryId": 4, + "url": "http://www.active-agent.com/", + "companyId": "active_agent" + }, + "active_campaign": { + "name": "Active Campaign", + "categoryId": 6, + "url": "https://www.activecampaign.com", + "companyId": "active_campaign" + }, + "active_performance": { + "name": "Active Performance", + "categoryId": 4, + "url": "http://www.active-performance.de/", + "companyId": "active_performance" + }, + "activeconversion": { + "name": "ActiveConversion", + "categoryId": 4, + "url": "http://www.activeconversion.com/", + "companyId": "activeconversion" + }, + "activecore": { + "name": "activecore", + "categoryId": 6, + "url": "http://activecore.jp/", + "companyId": "activecore" + }, + "activemeter": { + "name": "ActiveMeter", + "categoryId": 4, + "url": "http://www.activemeter.com/", + "companyId": "activeconversion" + }, + "activengage": { + "name": "ActivEngage", + "categoryId": 2, + "url": "http://www.activengage.com", + "companyId": "activengage" + }, + "acton": { + "name": "Act-On Beacon", + "categoryId": 4, + "url": "http://www.actonsoftware.com/", + "companyId": "act-on" + }, + "acuity_ads": { + "name": "Acuity Ads", + "categoryId": 4, + "url": "http://www.acuityads.com/", + "companyId": "acuity_ads" + }, + "acxiom": { + "name": "Acxiom", + "categoryId": 4, + "url": "http://www.acxiom.com", + "companyId": "acxiom" + }, + "ad-blocker.org": { + "name": "ad-blocker.org", + "categoryId": 11, + "url": null, + "companyId": null + }, + "ad-center": { + "name": "Ad-Center", + "categoryId": 6, + "url": "http://www.ad-center.com", + "companyId": "ad-center" + }, + "ad-delivery.net": { + "name": "ad-delivery.net", + "categoryId": 11, + "url": null, + "companyId": null + }, + "ad-sys": { + "name": "Ad-Sys", + "categoryId": 4, + "url": "http://www.ad-sys.com/", + "companyId": "ad-sys" + }, + "ad.agio": { + "name": "Ad.agio", + "categoryId": 4, + "url": "http://neodatagroup.com/", + "companyId": "neodata" + }, + "ad2click": { + "name": "Ad2Click", + "categoryId": 4, + "url": "http://www.ad2click.com/", + "companyId": "ad2click_media" + }, + "ad2games": { + "name": "ad2games", + "categoryId": 4, + "url": "http://web.ad2games.com/", + "companyId": "ad2games" + }, + "ad360": { + "name": "Ad360", + "categoryId": 4, + "url": "http://ad360.vn", + "companyId": "ad360" + }, + "ad4game": { + "name": "ad4game", + "categoryId": 4, + "url": "http://www.ad4game.com/", + "companyId": "ad4game" + }, + "ad4mat": { + "name": "ad4mat", + "categoryId": 4, + "url": "http://ad4mat.info", + "companyId": "ad4mat" + }, + "ad6media": { + "name": "ad6media", + "categoryId": 4, + "url": "https://www.ad6media.fr/", + "companyId": "ad6media" + }, + "ad_decisive": { + "name": "Ad Decisive", + "categoryId": 4, + "url": "http://www.lagardere-global-advertising.com/", + "companyId": "lagardere_advertising" + }, + "ad_dynamo": { + "name": "Ad Dynamo", + "categoryId": 4, + "url": "http://www.addynamo.com/", + "companyId": "ad_dynamo" + }, + "ad_ebis": { + "name": "AD EBiS", + "categoryId": 4, + "url": "http://www.ebis.ne.jp/en/", + "companyId": "ad_ebis" + }, + "ad_lightning": { + "name": "Ad Lightning", + "categoryId": 4, + "url": "https://www.adlightning.com/", + "companyId": "ad_lightning" + }, + "ad_magnet": { + "name": "Ad Magnet", + "categoryId": 4, + "url": "http://www.admagnet.com/", + "companyId": "ad_magnet" + }, + "ad_spirit": { + "name": "Ad Spirit", + "categoryId": 4, + "url": "http://www.adspirit.de", + "companyId": "adspirit" + }, + "adac_de": { + "name": "adac.de", + "categoryId": 8, + "url": "http://adac.de/", + "companyId": null + }, + "adacado": { + "name": "Adacado", + "categoryId": 4, + "url": "http://www.adacado.com/", + "companyId": "adacado" + }, + "adadyn": { + "name": "Adadyn", + "categoryId": 4, + "url": "http://ozonemedia.com/index.html", + "companyId": "adadyn" + }, + "adality_gmbh": { + "name": "adality GmbH", + "categoryId": 4, + "url": "https://www.arvato.com/", + "companyId": "arvato" + }, + "adalliance.io": { + "name": "Ad Alliance", + "categoryId": 4, + "url": "https://www.ad-alliance.de/", + "companyId": null + }, + "adalyser.com": { + "name": "Adalyser", + "categoryId": 6, + "url": "https://www.adalyser.com/", + "companyId": "onesoon" + }, + "adaos": { + "name": "ADAOS", + "categoryId": 4, + "url": "http://www.24-interactive.com", + "companyId": "24_interactive" + }, + "adap.tv": { + "name": "Adap.tv", + "categoryId": 4, + "url": "http://www.adap.tv/", + "companyId": "verizon" + }, + "adaptiveblue_smartlinks": { + "name": "AdaptiveBlue SmartLinks", + "categoryId": 2, + "url": "http://www.adaptiveblue.com/smartlinks.html", + "companyId": "telfie" + }, + "adara_analytics": { + "name": "ADARA Analytics", + "categoryId": 4, + "url": "http://www.adaramedia.com/", + "companyId": "adara_analytics" + }, + "adasia_holdings": { + "name": "AdAsia Holdings", + "categoryId": 4, + "url": "https://adasiaholdings.com/", + "companyId": "adasia_holdings" + }, + "adbetclickin.pink": { + "name": "adbetnet", + "categoryId": 4, + "url": "http://adbetnet.com/", + "companyId": null + }, + "adbetnet.com": { + "name": "adbetnet", + "categoryId": 4, + "url": "https://adbetnet.com/", + "companyId": null + }, + "adblade.com": { + "name": "Adblade", + "categoryId": 4, + "url": "https://adblade.com/", + "companyId": "adblade" + }, + "adbooth": { + "name": "Adbooth", + "categoryId": 4, + "url": "http://www.adbooth.com/", + "companyId": "adbooth_media_group" + }, + "adbox": { + "name": "AdBox", + "categoryId": 4, + "url": "http://www.adbox.lv/", + "companyId": "adbox" + }, + "adbrain": { + "name": "Adbrain", + "categoryId": 6, + "url": "https://www.adbrain.com/", + "companyId": "adbrain" + }, + "adbrite": { + "name": "AdBrite", + "categoryId": 4, + "url": "http://www.adbrite.com/", + "companyId": "centro" + }, + "adbull": { + "name": "AdBull", + "categoryId": 4, + "url": "http://www.adbull.com/", + "companyId": "adbull" + }, + "adbutler": { + "name": "AdButler", + "categoryId": 4, + "url": "https://www.adbutler.com/d", + "companyId": "sparklit_networks" + }, + "adc_media": { + "name": "ad:C media", + "categoryId": 4, + "url": "http://www.adcmedia.de/en/", + "companyId": "ad:c_media" + }, + "adcash": { + "name": "Adcash", + "categoryId": 4, + "url": "http://www.adcash.com", + "companyId": "adcash" + }, + "adchakra": { + "name": "AdChakra", + "categoryId": 6, + "url": "http://adchakra.com/", + "companyId": "adchakra" + }, + "adchina": { + "name": "AdChina", + "categoryId": 4, + "url": "http://www.adchina.com/", + "companyId": null, + "source": "AdGuard" + }, + "adcito": { + "name": "Adcito", + "categoryId": 4, + "url": "http://adcito.com/", + "companyId": "adcito" + }, + "adclear": { + "name": "AdClear", + "categoryId": 4, + "url": "http://www.adclear.de/en/home.html", + "companyId": "adclear" + }, + "adclerks": { + "name": "Adclerks", + "categoryId": 4, + "url": "https://adclerks.com/", + "companyId": "adclerks" + }, + "adclickmedia": { + "name": "AdClickMedia", + "categoryId": 4, + "url": "http://www.adclickmedia.com/", + "companyId": "adclickmedia" + }, + "adclickzone": { + "name": "AdClickZone", + "categoryId": 4, + "url": "http://www.adclickzone.com/", + "companyId": "adclickzone" + }, + "adcloud": { + "name": "adcloud", + "categoryId": 4, + "url": "https://ad-cloud.jp", + "companyId": "adcloud" + }, + "adcolony": { + "name": "AdColony", + "categoryId": 4, + "url": "https://www.adcolony.com/history-of-adcolony/", + "companyId": "digital_turbine", + "source": "AdGuard" + }, + "adconion": { + "name": "Adconion", + "categoryId": 4, + "url": "http://www.adconion.com/", + "companyId": "singtel" + }, + "adcrowd": { + "name": "Adcrowd", + "categoryId": 4, + "url": "https://www.adcrowd.com", + "companyId": "adcrowd" + }, + "adcurve": { + "name": "AdCurve", + "categoryId": 4, + "url": "http://www.shop2market.com/", + "companyId": "adcurve" + }, + "add_to_calendar": { + "name": "Add To Calendar", + "categoryId": 2, + "url": "http://addtocalendar.com/", + "companyId": "addtocalendar" + }, + "addaptive": { + "name": "Addaptive", + "categoryId": 4, + "url": "http://www.datapointmedia.com/", + "companyId": "addaptive" + }, + "addefend": { + "name": "AdDefend", + "categoryId": 4, + "url": "https://www.addefend.com/", + "companyId": null + }, + "addfreestats": { + "name": "AddFreeStats", + "categoryId": 6, + "url": "http://www.addfreestats.com/", + "companyId": "3dstats" + }, + "addinto": { + "name": "AddInto", + "categoryId": 2, + "url": "http://www.addinto.com/", + "companyId": "addinto" + }, + "addshoppers": { + "name": "AddShoppers", + "categoryId": 7, + "url": "http://www.addshoppers.com/", + "companyId": "addshoppers" + }, + "addthis": { + "name": "AddThis", + "categoryId": 4, + "url": "http://www.addthis.com/", + "companyId": "oracle" + }, + "addvalue": { + "name": "Addvalue", + "categoryId": 6, + "url": "http://www.addvalue.de/en/", + "companyId": "addvalue.de" + }, + "addyon": { + "name": "AddyON", + "categoryId": 4, + "url": "http://www.addyon.com/homepage.php", + "companyId": "addyon" + }, + "adeasy": { + "name": "AdEasy", + "categoryId": 4, + "url": "http://www.adeasy.ru/", + "companyId": "adeasy" + }, + "adelphic": { + "name": "Adelphic", + "categoryId": 6, + "url": "http://www.adelphic.com/", + "companyId": "adelphic" + }, + "adengage": { + "name": "AdEngage", + "categoryId": 4, + "url": "http://www.adengage.com", + "companyId": "synacor" + }, + "adespresso": { + "name": "AdEspresso", + "categoryId": 4, + "url": "http://adespresso.com", + "companyId": "adespresso" + }, + "adexcite": { + "name": "AdExcite", + "categoryId": 4, + "url": "http://adexcite.com", + "companyId": "adexcite" + }, + "adextent": { + "name": "AdExtent", + "categoryId": 4, + "url": "http://www.adextent.com/", + "companyId": "adextent" + }, + "adf.ly": { + "name": "AdF.ly", + "categoryId": 4, + "url": "http://adf.ly/", + "companyId": "adf.ly" + }, + "adfalcon": { + "name": "AdFalcon", + "categoryId": 4, + "url": "http://www.adfalcon.com/", + "companyId": "adfalcon" + }, + "adfocus": { + "name": "AdFocus", + "categoryId": 4, + "url": "http://adfoc.us/", + "companyId": "adfoc.us" + }, + "adforgames": { + "name": "AdForGames", + "categoryId": 4, + "url": "http://www.adforgames.com/", + "companyId": "adforgames" + }, + "adform": { + "name": "Adform", + "categoryId": 4, + "url": "http://www.adform.com", + "companyId": "adform" + }, + "adfox": { + "name": "AdFox", + "categoryId": 4, + "url": "http://adfox.ru", + "companyId": "yandex" + }, + "adfreestyle": { + "name": "adFreestyle", + "categoryId": 4, + "url": "http://www.adfreestyle.pl/", + "companyId": "adfreestyle" + }, + "adfront": { + "name": "AdFront", + "categoryId": 4, + "url": "http://buysellads.com/", + "companyId": "buysellads.com" + }, + "adfrontiers": { + "name": "AdFrontiers", + "categoryId": 4, + "url": "http://www.adfrontiers.com/", + "companyId": "adfrontiers" + }, + "adgear": { + "name": "AdGear", + "categoryId": 4, + "url": "http://adgear.com/", + "companyId": "samsung" + }, + "adgebra": { + "name": "Adgebra", + "categoryId": 4, + "url": "https://adgebra.in/", + "companyId": "adgebra" + }, + "adgenie": { + "name": "adGENIE", + "categoryId": 4, + "url": "http://www.adgenie.co.uk/", + "companyId": "ve" + }, + "adgile": { + "name": "Adgile", + "categoryId": 4, + "url": "http://www.adgile.com/", + "companyId": "adgile_media" + }, + "adglare.net": { + "name": "Adglare", + "categoryId": 4, + "url": "https://www.adglare.com/", + "companyId": null + }, + "adglue": { + "name": "Adglue", + "categoryId": 4, + "url": "http://admans.de/de.html", + "companyId": "admans" + }, + "adgoal": { + "name": "adgoal", + "categoryId": 4, + "url": "http://www.adgoal.de/", + "companyId": "adgoal" + }, + "adgorithms": { + "name": "Adgorithms", + "categoryId": 4, + "url": "http://www.adgorithms.com/", + "companyId": "albert" + }, + "adgoto": { + "name": "ADGoto", + "categoryId": 4, + "url": "http://adgoto.com/", + "companyId": "adgoto" + }, + "adguard": { + "name": "AdGuard", + "categoryId": 8, + "url": "https://adguard.com/", + "companyId": "adguard", + "source": "AdGuard" + }, + "adguard_dns": { + "name": "AdGuard DNS", + "categoryId": 8, + "url": "https://adguard-dns.io/", + "companyId": "adguard", + "source": "AdGuard" + }, + "adguard_vpn": { + "name": "AdGuard VPN", + "categoryId": 8, + "url": "https://adguard-vpn.com/", + "companyId": "adguard", + "source": "AdGuard" + }, + "adhands": { + "name": "AdHands", + "categoryId": 4, + "url": "http://promo.adhands.ru/", + "companyId": "adhands" + }, + "adhese": { + "name": "Adhese", + "categoryId": 4, + "url": "http://adhese.com", + "companyId": "adhese" + }, + "adhitz": { + "name": "AdHitz", + "categoryId": 4, + "url": "http://www.adhitz.com/", + "companyId": "adhitz" + }, + "adhood": { + "name": "adhood", + "categoryId": 4, + "url": "http://www.adhood.com/", + "companyId": "adhood" + }, + "adify": { + "name": "Adify", + "categoryId": 4, + "url": "http://www.adify.com/", + "companyId": "cox_enterpries" + }, + "adikteev": { + "name": "Adikteev", + "categoryId": 4, + "url": "http://www.adikteev.com/", + "companyId": "adikteev" + }, + "adimpact": { + "name": "Adimpact", + "categoryId": 4, + "url": "http://www.adimpact.com/", + "companyId": "adimpact" + }, + "adinch": { + "name": "Adinch", + "categoryId": 4, + "url": "http://adinch.com/", + "companyId": "adinch" + }, + "adition": { + "name": "Adition", + "categoryId": 4, + "url": "http://en.adition.com/", + "companyId": "prosieben_sat1" + }, + "adjal": { + "name": "Adjal", + "categoryId": 4, + "url": "http://adjal.com/", + "companyId": "marketing_adjal" + }, + "adjs": { + "name": "ADJS", + "categoryId": 4, + "url": "https://github.com/widgital/adjs", + "companyId": "adjs" + }, + "adjug": { + "name": "AdJug", + "categoryId": 4, + "url": "http://www.adjug.com/", + "companyId": "adjug" + }, + "adjust": { + "name": "Adjust GmbH", + "categoryId": 101, + "url": "https://www.adjust.com/", + "companyId": "applovin", + "source": "AdGuard" + }, + "adk2": { + "name": "adk2", + "categoryId": 4, + "url": "http://www.adk2.com/", + "companyId": "adk2_plymedia" + }, + "adklip": { + "name": "adklip", + "categoryId": 4, + "url": "http://adklip.com", + "companyId": "adklip" + }, + "adknowledge": { + "name": "Adknowledge", + "categoryId": 4, + "url": "http://www.adknowledge.com/", + "companyId": "adknowledge" + }, + "adkontekst": { + "name": "Adkontekst", + "categoryId": 4, + "url": "http://www.en.adkontekst.pl/", + "companyId": "adkontekst" + }, + "adkontekst.pl": { + "name": "Adkontekst", + "categoryId": 4, + "url": "http://netsprint.eu/", + "companyId": "netsprint" + }, + "adlabs": { + "name": "AdLabs", + "categoryId": 4, + "url": "https://www.adlabs.ru/", + "companyId": "adlabs" + }, + "adlantic": { + "name": "AdLantic", + "categoryId": 4, + "url": "http://www.adlantic.nl/", + "companyId": "adlantic_online_advertising" + }, + "adlantis": { + "name": "AdLantis", + "categoryId": 4, + "url": "http://www.adlantis.jp/", + "companyId": "adlantis" + }, + "adless": { + "name": "Adless", + "categoryId": 4, + "url": "https://www.adless.io/", + "companyId": "adless" + }, + "adlive_header_bidding": { + "name": "Adlive Header Bidding", + "categoryId": 4, + "url": "http://adlive.io/", + "companyId": "adlive" + }, + "adloox": { + "name": "Adloox", + "categoryId": 4, + "url": "http://www.adloox.com", + "companyId": "adloox" + }, + "admachine": { + "name": "AdMachine", + "categoryId": 4, + "url": "https://admachine.co/", + "companyId": null + }, + "adman": { + "name": "ADMAN", + "categoryId": 4, + "url": "http://www.adman.gr/", + "companyId": "adman" + }, + "adman_media": { + "name": "ADman Media", + "categoryId": 4, + "url": "http://www.admanmedia.com/", + "companyId": "ad_man_media" + }, + "admantx.com": { + "name": "ADmantX", + "categoryId": 4, + "url": "http://www.admantx.com/", + "companyId": "expert_system_spa" + }, + "admaster": { + "name": "AdMaster", + "categoryId": 4, + "url": "http://admaster.net", + "companyId": "admaster" + }, + "admaster.cn": { + "name": "AdMaster.cn", + "categoryId": 4, + "url": "http://www.admaster.com.cn/", + "companyId": "admaster" + }, + "admatic": { + "name": "Admatic", + "categoryId": 4, + "url": "http://www.admatic.com.tr/#1page", + "companyId": "admatic" + }, + "admatrix": { + "name": "Admatrix", + "categoryId": 4, + "url": "https://admatrix.jp/login#block01", + "companyId": "admatrix" + }, + "admax": { + "name": "Admax", + "categoryId": 4, + "url": "http://www.admaxnetwork.com/index.php", + "companyId": "komli" + }, + "admaxim": { + "name": "AdMaxim", + "categoryId": 4, + "url": "http://admaxim.com/", + "companyId": "admaxim" + }, + "admaya": { + "name": "Admaya", + "categoryId": 4, + "url": "http://www.admaya.in/", + "companyId": "admaya" + }, + "admedia": { + "name": "AdMedia", + "categoryId": 4, + "url": "http://admedia.com/", + "companyId": "admedia" + }, + "admedo_com": { + "name": "Admedo", + "categoryId": 4, + "url": "http://admedo.com/", + "companyId": "admedo" + }, + "admeira.ch": { + "name": "AdMeira", + "categoryId": 4, + "url": "http://admeira.ch/", + "companyId": "admeira" + }, + "admeld": { + "name": "AdMeld", + "categoryId": 4, + "url": "http://www.admeld.com", + "companyId": "google" + }, + "admeo": { + "name": "Admeo", + "categoryId": 4, + "url": "http://admeo.ru/", + "companyId": "admeo.ru" + }, + "admeta": { + "name": "Admeta", + "categoryId": 4, + "url": "http://www.admeta.com/", + "companyId": "admeta" + }, + "admicro": { + "name": "AdMicro", + "categoryId": 4, + "url": "http://www.admicro.vn/", + "companyId": "admicro" + }, + "admitad.com": { + "name": "Admitad", + "categoryId": 4, + "url": "https://www.admitad.com/en/#", + "companyId": "admitad" + }, + "admixer": { + "name": "Admixer", + "categoryId": 4, + "url": "https://admixer.com/", + "companyId": "admixer", + "source": "AdGuard" + }, + "admixer.net": { + "name": "Admixer", + "categoryId": 4, + "url": "https://admixer.net/", + "companyId": "admixer" + }, + "admized": { + "name": "ADMIZED", + "categoryId": 8, + "url": null, + "companyId": null + }, + "admo.tv": { + "name": "Admo.tv", + "categoryId": 4, + "url": "https://admo.tv/", + "companyId": "admo.tv" + }, + "admob": { + "name": "AdMob", + "categoryId": 4, + "url": "http://www.admob.com/", + "companyId": "google" + }, + "admost": { + "name": "adMOST", + "categoryId": 4, + "url": "http://www.admost.com/", + "companyId": "admost" + }, + "admotion": { + "name": "Admotion", + "categoryId": 4, + "url": "http://www.admotionus.com/", + "companyId": "admotion" + }, + "admulti": { + "name": "ADmulti", + "categoryId": 4, + "url": "http://admulti.com", + "companyId": "admulti" + }, + "adnegah": { + "name": "Adnegah", + "categoryId": 4, + "url": "https://adnegah.net/", + "companyId": "adnegah" + }, + "adnet": { + "name": "Adnet", + "categoryId": 4, + "url": "http://www.adnet.vn/", + "companyId": "adnet" + }, + "adnet.de": { + "name": "adNET.de", + "categoryId": 4, + "url": "http://www.adnet.de", + "companyId": "adnet.de" + }, + "adnet_media": { + "name": "Adnet Media", + "categoryId": 4, + "url": "http://www.adnetmedia.lt/", + "companyId": "adnet_media" + }, + "adnetwork.net": { + "name": "AdNetwork.net", + "categoryId": 4, + "url": "http://www.adnetwork.net/", + "companyId": "adnetwork.net" + }, + "adnetworkperformance.com": { + "name": "adnetworkperformance.com", + "categoryId": 11, + "url": null, + "companyId": null + }, + "adnexio": { + "name": "AdNexio", + "categoryId": 4, + "url": "http://adnexio.com/", + "companyId": "adnexio" + }, + "adnium.com": { + "name": "Adnium", + "categoryId": 4, + "url": "https://adnium.com/", + "companyId": null + }, + "adnologies": { + "name": "Adnologies", + "categoryId": 4, + "url": "http://www.adnologies.com/", + "companyId": "adnologies_gmbh" + }, + "adnow": { + "name": "Adnow", + "categoryId": 4, + "url": "http://adnow.com/", + "companyId": "adnow" + }, + "adnymics": { + "name": "Adnymics", + "categoryId": 4, + "url": "http://adnymics.com/en/", + "companyId": "adnymics" + }, + "adobe_audience_manager": { + "name": "Adobe Audience Manager", + "categoryId": 4, + "url": "http://www.demdex.com/", + "companyId": "adobe" + }, + "adobe_developer": { + "name": "Adobe Developer", + "categoryId": 8, + "url": "https://developer.adobe.com/", + "companyId": "adobe", + "source": "AdGuard" + }, + "adobe_dynamic_media": { + "name": "Adobe Dynamic Media", + "categoryId": 4, + "url": "http://www.adobe.com/", + "companyId": "adobe" + }, + "adobe_dynamic_tag_management": { + "name": "Adobe Dynamic Tag Management", + "categoryId": 5, + "url": "https://dtm.adobe.com/sign_in", + "companyId": "adobe" + }, + "adobe_experience_cloud": { + "name": "Adobe Experience Cloud", + "categoryId": 6, + "url": "https://business.adobe.com/", + "companyId": "adobe", + "source": "AdGuard" + }, + "adobe_experience_league": { + "name": "Adobe Experience League", + "categoryId": 6, + "url": "https://experienceleague.adobe.com/", + "companyId": "adobe", + "source": "AdGuard" + }, + "adobe_login": { + "name": "Adobe Login", + "categoryId": 2, + "url": "https://www.adobe.com/", + "companyId": "adobe" + }, + "adobe_tagmanager": { + "name": "Adobe TagManager", + "categoryId": 4, + "url": "https://www.adobe.com/", + "companyId": "adobe" + }, + "adobe_test_and_target": { + "name": "Adobe Target", + "categoryId": 4, + "url": "https://www.adobe.com/marketing/target.html", + "companyId": "adobe" + }, + "adobe_typekit": { + "name": "Adobe Typekit", + "categoryId": 5, + "url": "https://www.adobe.com/", + "companyId": "adobe" + }, + "adocean": { + "name": "AdOcean", + "categoryId": 4, + "url": "http://adocean.cz/en", + "companyId": "adocean" + }, + "adometry": { + "name": "Adometry", + "categoryId": 4, + "url": "http://www.adometry.com/", + "companyId": "google" + }, + "adomik": { + "name": "Adomik", + "categoryId": 4, + "url": null, + "companyId": null + }, + "adon_network": { + "name": "AdOn Network", + "categoryId": 4, + "url": "http://www.adonnetwork.com/", + "companyId": "adon_network" + }, + "adonion": { + "name": "AdOnion", + "categoryId": 4, + "url": "http://www.adonion.com/", + "companyId": "adonion" + }, + "adonly": { + "name": "AdOnly", + "categoryId": 4, + "url": "https://gloadmarket.com/", + "companyId": "adonly" + }, + "adoperator": { + "name": "AdOperator", + "categoryId": 4, + "url": "http://www.adoperator.com/start/", + "companyId": "adoperator" + }, + "adoric": { + "name": "Adoric", + "categoryId": 6, + "url": "https://adoric.com/", + "companyId": "adoric" + }, + "adorika": { + "name": "Adorika", + "categoryId": 4, + "url": "http://www.adorika.com/", + "companyId": "adorika" + }, + "adosia": { + "name": "Adosia", + "categoryId": 4, + "url": "https://adosia.com", + "companyId": "adosia" + }, + "adotmob.com": { + "name": "Adotmob", + "categoryId": 4, + "url": "https://adotmob.com/", + "companyId": "adotmob" + }, + "adotube": { + "name": "AdoTube", + "categoryId": 4, + "url": "http://www.adotube.com", + "companyId": "exponential_interactive" + }, + "adparlor": { + "name": "AdParlor", + "categoryId": 4, + "url": "http://www.adparlor.com/", + "companyId": "fluent" + }, + "adpartner": { + "name": "adpartner", + "categoryId": 4, + "url": "http://adpartner.pro/", + "companyId": "adpartner" + }, + "adpeeps": { + "name": "Ad Peeps", + "categoryId": 4, + "url": "http://www.adpeeps.com/", + "companyId": "ad_peeps" + }, + "adperfect": { + "name": "AdPerfect", + "categoryId": 4, + "url": "http://www.adperfect.com/", + "companyId": "adperfect" + }, + "adperium": { + "name": "AdPerium", + "categoryId": 4, + "url": "http://www.adperium.com/", + "companyId": "adperium" + }, + "adpilot": { + "name": "AdPilot", + "categoryId": 4, + "url": "http://www.adpilotgroup.com/", + "companyId": "adpilot" + }, + "adplan": { + "name": "AdPlan", + "categoryId": 4, + "url": "http://www.adplan.ne.jp/", + "companyId": "adplan" + }, + "adplus": { + "name": "ADPLUS", + "categoryId": 4, + "url": "http://www.adplus.co.id/", + "companyId": "adplus" + }, + "adprofex": { + "name": "AdProfex", + "categoryId": 4, + "url": "https://adprofex.com/", + "companyId": "adprofex", + "source": "AdGuard" + }, + "adprofy": { + "name": "AdProfy", + "categoryId": 4, + "url": "http://adprofy.com/", + "companyId": "adprofy" + }, + "adpulse": { + "name": "AdPulse", + "categoryId": 4, + "url": "http://adpulse.ir/", + "companyId": "adpulse.ir" + }, + "adpv": { + "name": "Adpv", + "categoryId": 4, + "url": "http://www.adpv.com/", + "companyId": "adpv" + }, + "adreactor": { + "name": "AdReactor", + "categoryId": 4, + "url": "http://www.adreactor.com/", + "companyId": "adreactor" + }, + "adrecord": { + "name": "Adrecord", + "categoryId": 4, + "url": "http://www.adrecord.com/", + "companyId": "adrecord" + }, + "adrecover": { + "name": "AdRecover", + "categoryId": 4, + "url": "https://www.adrecover.com/", + "companyId": "adpushup" + }, + "adresult": { + "name": "ADResult", + "categoryId": 4, + "url": "http://www.adresult.jp/", + "companyId": "adresult" + }, + "adriver": { + "name": "AdRiver", + "categoryId": 4, + "url": "http://www.adriver.ru/", + "companyId": "ad_river" + }, + "adroll": { + "name": "AdRoll", + "categoryId": 4, + "url": "https://www.adroll.com/", + "companyId": "adroll" + }, + "adroll_pixel": { + "name": "AdRoll Pixel", + "categoryId": 4, + "url": "https://www.adroll.com/", + "companyId": "adroll" + }, + "adroll_roundtrip": { + "name": "AdRoll Roundtrip", + "categoryId": 4, + "url": "https://www.adroll.com/", + "companyId": "adroll" + }, + "adrom": { + "name": "adRom", + "categoryId": 4, + "url": "http://www.adrom.net/", + "companyId": null + }, + "adru.net": { + "name": "adru.net", + "categoryId": 4, + "url": "http://adru.net/", + "companyId": "adru.net" + }, + "adrunnr": { + "name": "AdRunnr", + "categoryId": 4, + "url": "https://adrunnr.com/", + "companyId": "adrunnr" + }, + "adsame": { + "name": "Adsame", + "categoryId": 4, + "url": "http://adsame.com/", + "companyId": "adsame" + }, + "adsbookie": { + "name": "AdsBookie", + "categoryId": 4, + "url": "http://adsbookie.com/", + "companyId": null + }, + "adscale": { + "name": "AdScale", + "categoryId": 4, + "url": "http://www.adscale.de/", + "companyId": "stroer" + }, + "adscience": { + "name": "Adscience", + "categoryId": 4, + "url": "http://www.adscience.nl/", + "companyId": "adscience" + }, + "adsco.re": { + "name": "Adscore", + "categoryId": 4, + "url": "https://www.adscore.com/", + "companyId": null + }, + "adsensecamp": { + "name": "AdsenseCamp", + "categoryId": 4, + "url": "http://adsensecamp.com", + "companyId": "adsensecamp" + }, + "adserverpub": { + "name": "AdServerPub", + "categoryId": 4, + "url": "http://www.adserverpub.com/", + "companyId": "adserverpub" + }, + "adservice_media": { + "name": "Adservice Media", + "categoryId": 4, + "url": "http://www.adservicemedia.com/", + "companyId": "adservice_media" + }, + "adsfactor": { + "name": "Adsfactor", + "categoryId": 4, + "url": "http://www.adsfactor.com/", + "companyId": "pixels_asia" + }, + "adside": { + "name": "AdSide", + "categoryId": 4, + "url": "http://www.adside.com/", + "companyId": "adside" + }, + "adskeeper": { + "name": "AdsKeeper", + "categoryId": 4, + "url": "http://adskeeper.co.uk/", + "companyId": "adskeeper" + }, + "adskom": { + "name": "ADSKOM", + "categoryId": 4, + "url": "http://adskom.com/", + "companyId": "adskom" + }, + "adslot": { + "name": "Adslot", + "categoryId": 4, + "url": "http://www.adslot.com/", + "companyId": "adslot" + }, + "adsnative": { + "name": "adsnative", + "categoryId": 4, + "url": "http://www.adsnative.com/", + "companyId": "adsnative" + }, + "adsniper.ru": { + "name": "AdSniper", + "categoryId": 4, + "url": "http://ad-sniper.com/", + "companyId": "adsniper" + }, + "adspeed": { + "name": "AdSpeed", + "categoryId": 4, + "url": "http://www.adspeed.com/", + "companyId": "adspeed" + }, + "adspyglass": { + "name": "AdSpyglass", + "categoryId": 4, + "url": "https://www.adspyglass.com/", + "companyId": "adspyglass" + }, + "adstage": { + "name": "AdStage", + "categoryId": 4, + "url": "http://www.adstage.io/", + "companyId": "adstage" + }, + "adstanding": { + "name": "AdStanding", + "categoryId": 4, + "url": "http://www.adstanding.com/en/", + "companyId": "adstanding" + }, + "adstars": { + "name": "Adstars", + "categoryId": 4, + "url": "http://adstars.co.id", + "companyId": "adstars" + }, + "adstir": { + "name": "adstir", + "categoryId": 4, + "url": "https://en.ad-stir.com/", + "companyId": "united_inc" + }, + "adsupply": { + "name": "AdSupply", + "categoryId": 4, + "url": "http://www.adsupply.com/", + "companyId": "adsupply" + }, + "adswizz": { + "name": "AdsWizz", + "categoryId": 4, + "url": "http://www.adswizz.com/", + "companyId": "adswizz" + }, + "adtaily": { + "name": "AdTaily", + "categoryId": 4, + "url": "http://www.adtaily.pl/", + "companyId": "adtaily" + }, + "adtarget.me": { + "name": "Adtarget.me", + "categoryId": 4, + "url": "http://www.adtarget.me/", + "companyId": "adtarget.me" + }, + "adtech": { + "name": "ADTECH", + "categoryId": 6, + "url": "http://www.adtechus.com/", + "companyId": "verizon" + }, + "adtegrity": { + "name": "Adtegrity", + "categoryId": 4, + "url": "http://www.adtegrity.com/", + "companyId": "adtegrity" + }, + "adtelligence.de": { + "name": "Adtelligence", + "categoryId": 4, + "url": "https://adtelligence.com/", + "companyId": null + }, + "adtheorent": { + "name": "Adtheorent", + "categoryId": 4, + "url": "http://adtheorent.com/", + "companyId": "adtheorant" + }, + "adthink": { + "name": "Adthink", + "categoryId": 4, + "url": "https://adthink.com/", + "companyId": "adthink" + }, + "adtiger": { + "name": "AdTiger", + "categoryId": 4, + "url": "http://www.adtiger.de/", + "companyId": "adtiger" + }, + "adtima": { + "name": "Adtima", + "categoryId": 4, + "url": "http://adtima.vn/", + "companyId": "adtima" + }, + "adtng.com": { + "name": "adtng.com", + "categoryId": 3, + "url": null, + "companyId": null + }, + "adtoma": { + "name": "Adtoma", + "categoryId": 4, + "url": "http://www.adtoma.com/", + "companyId": "adtoma" + }, + "adtr02.com": { + "name": "adtr02.com", + "categoryId": 11, + "url": null, + "companyId": null + }, + "adtraction": { + "name": "Adtraction", + "categoryId": 4, + "url": "http://adtraction.com/", + "companyId": "adtraction" + }, + "adtraxx": { + "name": "AdTraxx", + "categoryId": 4, + "url": "https://www1.adtraxx.de/", + "companyId": "adtrax" + }, + "adtriba.com": { + "name": "AdTriba", + "categoryId": 6, + "url": "https://www.adtriba.com/", + "companyId": null + }, + "adtrue": { + "name": "Adtrue", + "categoryId": 4, + "url": "http://adtrue.com/", + "companyId": "adtrue" + }, + "adtrustmedia": { + "name": "AdTrustMedia", + "categoryId": 4, + "url": "https://adtrustmedia.com/", + "companyId": "adtrustmedia" + }, + "adtube": { + "name": "AdTube", + "categoryId": 4, + "url": "http://adtube.ir/", + "companyId": "adtube" + }, + "adult_webmaster_empire": { + "name": "Adult Webmaster Empire", + "categoryId": 3, + "url": "http://www.awempire.com/", + "companyId": "adult_webmaster_empire" + }, + "adultadworld": { + "name": "AdultAdWorld", + "categoryId": 3, + "url": "http://adultadworld.com/", + "companyId": "adult_adworld" + }, + "adup-tech.com": { + "name": "AdUp Technology", + "categoryId": 4, + "url": "https://www.adup-tech.com/", + "companyId": "adup_technology" + }, + "advaction": { + "name": "Advaction", + "categoryId": 4, + "url": "http://advaction.ru/", + "companyId": "advaction" + }, + "advalo": { + "name": "Advalo", + "categoryId": 4, + "url": "https://www.advalo.com", + "companyId": "advalo" + }, + "advanced_hosters": { + "name": "Advanced Hosters", + "categoryId": 9, + "url": "https://advancedhosters.com/", + "companyId": null + }, + "advark": { + "name": "Advark", + "categoryId": 4, + "url": "https://advarkads.com/", + "companyId": "advark" + }, + "adventori": { + "name": "ADventori", + "categoryId": 8, + "url": "https://www.adventori.com/", + "companyId": "adventori" + }, + "adverline": { + "name": "Adverline", + "categoryId": 4, + "url": "http://www.adverline.com/", + "companyId": "adverline" + }, + "adversal": { + "name": "Adversal", + "categoryId": 4, + "url": "https://www.adversal.com/", + "companyId": "adversal" + }, + "adverserve": { + "name": "adverServe", + "categoryId": 4, + "url": "http://www.adverserve.com/", + "companyId": "adverserve" + }, + "adverteerdirect": { + "name": "Adverteerdirect", + "categoryId": 4, + "url": "http://www.adverteerdirect.nl/", + "companyId": "adverteerdirect" + }, + "adverticum": { + "name": "Adverticum", + "categoryId": 4, + "url": "https://adverticum.net/english/", + "companyId": "adverticum" + }, + "advertise.com": { + "name": "Advertise.com", + "categoryId": 4, + "url": "http://advertise.com/", + "companyId": "advertise.com" + }, + "advertisespace": { + "name": "AdvertiseSpace", + "categoryId": 4, + "url": "http://www.advertisespace.com/", + "companyId": "advertisespace" + }, + "advertising.com": { + "name": "Verizon Media", + "categoryId": 4, + "url": "https://www.verizonmedia.com/", + "companyId": "verizon" + }, + "advertlets": { + "name": "Advertlets", + "categoryId": 4, + "url": "http://www.advertlets.com/", + "companyId": "advertlets" + }, + "advertserve": { + "name": "AdvertServe", + "categoryId": 4, + "url": "https://secure.advertserve.com/", + "companyId": "advertserve" + }, + "advidi": { + "name": "Advidi", + "categoryId": 4, + "url": "http://advidi.com/", + "companyId": "advidi" + }, + "advmaker.ru": { + "name": "advmaker.ru", + "categoryId": 4, + "url": "http://advmaker.ru/", + "companyId": "advmaker.ru" + }, + "advolution": { + "name": "Advolution", + "categoryId": 4, + "url": "http://www.advolution.de", + "companyId": "advolution" + }, + "adwebster": { + "name": "adwebster", + "categoryId": 4, + "url": "http://adwebster.com", + "companyId": "adwebster" + }, + "adwit": { + "name": "Adwit", + "categoryId": 4, + "url": "http://www.adwitserver.com", + "companyId": "adwit" + }, + "adworx.at": { + "name": "ADworx", + "categoryId": 4, + "url": "http://www.adworx.at/", + "companyId": "ors" + }, + "adworxs.net": { + "name": "adworxs.net", + "categoryId": 4, + "url": "http://www.adworxs.net/?lang=en", + "companyId": null + }, + "adxion": { + "name": "adXion", + "categoryId": 4, + "url": "http://www.adxion.com", + "companyId": "adxion" + }, + "adxpansion": { + "name": "AdXpansion", + "categoryId": 3, + "url": "http://www.adxpansion.com/", + "companyId": "adxpansion" + }, + "adxpose": { + "name": "AdXpose", + "categoryId": 4, + "url": "http://www.adxpose.com/home.page", + "companyId": "comscore" + }, + "adxprtz.com": { + "name": "adxprtz.com", + "categoryId": 4, + "url": null, + "companyId": null + }, + "adyoulike": { + "name": "Adyoulike", + "categoryId": 4, + "url": "http://www.adyoulike.com/", + "companyId": "adyoulike" + }, + "adzerk": { + "name": "Adzerk", + "categoryId": 4, + "url": "http://adzerk.com/", + "companyId": "adzerk" + }, + "adzly": { + "name": "adzly", + "categoryId": 4, + "url": "http://www.adzly.com/", + "companyId": "adzly" + }, + "aemediatraffic": { + "name": "Aemediatraffic", + "categoryId": 6, + "url": null, + "companyId": null + }, + "aerify_media": { + "name": "Aerify Media", + "categoryId": 4, + "url": "http://aerifymedia.com/", + "companyId": "aerify_media" + }, + "aeris_weather": { + "name": "Aeris Weather", + "categoryId": 2, + "url": "https://www.aerisweather.com/", + "companyId": "aerisweather" + }, + "affectv": { + "name": "Hybrid Theory", + "categoryId": 4, + "url": "https://hybridtheory.com/", + "companyId": "affectv" + }, + "affilbox": { + "name": "Affilbox", + "categoryId": 4, + "url": "https://affilbox.com/", + "companyId": "affilbox", + "source": "AdGuard" + }, + "affiliate-b": { + "name": "Affiliate-B", + "categoryId": 4, + "url": "https://www.affiliate-b.com/", + "companyId": "affiliate_b" + }, + "affiliate4you": { + "name": "Affiliate4You", + "categoryId": 4, + "url": "http://www.affiliate4you.nl/", + "companyId": "family_blend" + }, + "affiliatebuzz": { + "name": "AffiliateBuzz", + "categoryId": 4, + "url": "http://www.affiliatebuzz.com/", + "companyId": "affiliatebuzz" + }, + "affiliatefuture": { + "name": "AffiliateFuture", + "categoryId": 4, + "url": "http://www.affiliatefuture.com", + "companyId": "affiliatefuture" + }, + "affiliatelounge": { + "name": "AffiliateLounge", + "categoryId": 4, + "url": "http://www.affiliatelounge.com/", + "companyId": "betsson_group_affiliates" + }, + "affiliation_france": { + "name": "Affiliation France", + "categoryId": 4, + "url": "http://www.affiliation-france.com/", + "companyId": "affiliation-france" + }, + "affiliator": { + "name": "Affiliator", + "categoryId": 4, + "url": "http://www.affiliator.com/", + "companyId": "affiliator" + }, + "affiliaweb": { + "name": "Affiliaweb", + "categoryId": 4, + "url": "http://affiliaweb.fr/", + "companyId": "affiliaweb" + }, + "affilinet": { + "name": "affilinet", + "categoryId": 4, + "url": "https://www.affili.net/", + "companyId": "axel_springer" + }, + "affimax": { + "name": "AffiMax", + "categoryId": 4, + "url": "https://www.affimax.de", + "companyId": "affimax" + }, + "affinity": { + "name": "Affinity", + "categoryId": 4, + "url": "http://www.affinity.com/", + "companyId": "affinity" + }, + "affinity.by": { + "name": "Affinity.by", + "categoryId": 4, + "url": "http://affinity.by", + "companyId": "affinity_digital_agency" + }, + "affiz_cpm": { + "name": "Affiz CPM", + "categoryId": 4, + "url": "http://cpm.affiz.com/home", + "companyId": "affiz_cpm" + }, + "afftrack": { + "name": "Afftrack", + "categoryId": 6, + "url": "http://www.afftrack.com/", + "companyId": "afftrack" + }, + "afgr2.com": { + "name": "afgr2.com", + "categoryId": 3, + "url": null, + "companyId": null + }, + "afilio": { + "name": "Afilio", + "categoryId": 6, + "url": "http://afilio.com.br/", + "companyId": "afilio" + }, + "afs_analystics": { + "name": "AFS Analystics", + "categoryId": 6, + "url": "https://www.afsanalytics.com/", + "companyId": "afs_analytics" + }, + "aftonbladet_ads": { + "name": "Aftonbladet Ads", + "categoryId": 4, + "url": "http://annonswebb.aftonbladet.se/", + "companyId": "aftonbladet" + }, + "aftv-serving.bid": { + "name": "aftv-serving.bid", + "categoryId": 4, + "url": null, + "companyId": null + }, + "aggregate_knowledge": { + "name": "Aggregate Knowledge", + "categoryId": 4, + "url": "http://www.aggregateknowledge.com/", + "companyId": "neustar" + }, + "agilone": { + "name": "AgilOne", + "categoryId": 6, + "url": "http://www.agilone.com/", + "companyId": "agilone" + }, + "agora": { + "name": "Agora", + "categoryId": 4, + "url": "https://www.agora.pl/", + "companyId": "agora_sa" + }, + "ahalogy": { + "name": "Ahalogy", + "categoryId": 7, + "url": "http://www.ahalogy.com/", + "companyId": "ahalogy" + }, + "ai_media_group": { + "name": "Ai Media Group", + "categoryId": 4, + "url": "http://aimediagroup.com/", + "companyId": "ai_media_group" + }, + "aidata": { + "name": "Aidata", + "categoryId": 4, + "url": "http://aidata.me/", + "companyId": "aidata" + }, + "aim4media": { + "name": "Aim4Media", + "categoryId": 4, + "url": "http://aim4media.com", + "companyId": "aim4media" + }, + "airbnb": { + "name": "Airbnb", + "categoryId": 6, + "url": "https://affiliate.withairbnb.com/", + "companyId": null + }, + "airbrake": { + "name": "Airbrake", + "categoryId": 4, + "url": "https://airbrake.io/", + "companyId": "airbrake" + }, + "airpr.com": { + "name": "AirPR", + "categoryId": 6, + "url": "https://airpr.com/", + "companyId": "airpr" + }, + "airpush": { + "name": "Airpush", + "categoryId": 4, + "url": "http://www.airpush.com/", + "companyId": "airpush" + }, + "akamai_technologies": { + "name": "Akamai Technologies", + "categoryId": 9, + "url": "https://www.akamai.com/", + "companyId": "akamai", + "source": "AdGuard" + }, + "akamoihd.net": { + "name": "akamoihd.net", + "categoryId": 12, + "url": null, + "companyId": null + }, + "akane": { + "name": "AkaNe", + "categoryId": 4, + "url": "http://akane-ad.com/", + "companyId": "akane" + }, + "akanoo": { + "name": "Akanoo", + "categoryId": 6, + "url": "http://www.akanoo.com/", + "companyId": "akanoo" + }, + "akavita": { + "name": "Akavita", + "categoryId": 4, + "url": "http://www.akavita.by/en", + "companyId": "akavita" + }, + "al_bawaba_advertising": { + "name": "Al Bawaba Advertising", + "categoryId": 4, + "url": "http://www.albawaba.com/advertising", + "companyId": "al_bawaba" + }, + "albacross": { + "name": "Albacross", + "categoryId": 4, + "url": "https://albacross.com", + "companyId": "albacross" + }, + "aldi-international.com": { + "name": "aldi-international.com", + "categoryId": 8, + "url": null, + "companyId": null + }, + "alenty": { + "name": "Alenty", + "categoryId": 4, + "url": "https://about.ads.microsoft.com/en-us/solutions/xandr/xandr-premium-programmatic-advertising", + "companyId": "microsoft", + "source": "AdGuard" + }, + "alephd.com": { + "name": "alephd", + "categoryId": 4, + "url": "https://www.alephd.com/", + "companyId": "verizon" + }, + "alexa_metrics": { + "name": "Alexa Metrics", + "categoryId": 6, + "url": "http://www.alexa.com/", + "companyId": "amazon_associates" + }, + "alexa_traffic_rank": { + "name": "Alexa Traffic Rank", + "categoryId": 4, + "url": "http://www.alexa.com/", + "companyId": "amazon_associates" + }, + "algolia.net": { + "name": "algolia", + "categoryId": 4, + "url": "https://www.algolia.com/", + "companyId": null + }, + "algovid.com": { + "name": "algovid.com", + "categoryId": 11, + "url": null, + "companyId": null + }, + "alibaba.com": { + "name": "Alibaba", + "categoryId": 8, + "url": "http://www.alibaba.com/", + "companyId": "softbank", + "source": "AdGuard" + }, + "alibaba_cloud": { + "name": "Alibaba Cloud", + "categoryId": 10, + "url": "https://www.alibabacloud.com/", + "companyId": "softbank", + "source": "AdGuard" + }, + "alibaba_ucbrowser": { + "name": "UC Browser", + "categoryId": 8, + "url": "https://ucweb.com/", + "companyId": "softbank", + "source": "AdGuard" + }, + "alipay.com": { + "name": "Alipay", + "categoryId": 2, + "url": "https://global.alipay.com/", + "companyId": "softbank", + "source": "AdGuard" + }, + "alivechat": { + "name": "AliveChat", + "categoryId": 2, + "url": "http://www.websitealive.com/", + "companyId": "websitealive" + }, + "allegro.pl": { + "name": "Allegro", + "categoryId": 8, + "url": "https://allegro.pl", + "companyId": "allegro.pl" + }, + "allin": { + "name": "Allin", + "categoryId": 6, + "url": "http://allin.com.br/", + "companyId": "allin" + }, + "allo-pages.fr": { + "name": "Allo-Pages", + "categoryId": 2, + "url": "http://www.allo-pages.fr/", + "companyId": "links_lab" + }, + "allotraffic": { + "name": "AlloTraffic", + "categoryId": 4, + "url": "http://www.allotraffic.com/", + "companyId": "allotraffic" + }, + "allure_media": { + "name": "Allure Media", + "categoryId": 4, + "url": "http://www.alluremedia.com.au", + "companyId": "allure_media" + }, + "allyes": { + "name": "Allyes", + "categoryId": 4, + "url": "http://www.allyes.com/", + "companyId": "allyes" + }, + "alooma": { + "name": "Alooma", + "categoryId": 4, + "url": "https://www.alooma.com/", + "companyId": "alooma" + }, + "altitude_digital": { + "name": "Altitude Digital", + "categoryId": 4, + "url": "http://www.altitudedigital.com/", + "companyId": "altitude_digital" + }, + "amadesa": { + "name": "Amadesa", + "categoryId": 4, + "url": "http://www.amadesa.com/", + "companyId": "amadesa" + }, + "amap": { + "name": "Amap", + "categoryId": 2, + "url": "https://www.amap.com/", + "companyId": "softbank", + "source": "AdGuard" + }, + "amazon": { + "name": "Amazon.com", + "categoryId": 8, + "url": "https://www.amazon.com", + "companyId": "amazon_associates" + }, + "amazon_adsystem": { + "name": "Amazon Advertising", + "categoryId": 4, + "url": "https://advertising.amazon.com/", + "companyId": "amazon_associates" + }, + "amazon_associates": { + "name": "Amazon Associates", + "categoryId": 4, + "url": "http://aws.amazon.com/associates/", + "companyId": "amazon_associates" + }, + "amazon_cdn": { + "name": "Amazon CDN", + "categoryId": 9, + "url": "https://www.amazon.com", + "companyId": "amazon_associates" + }, + "amazon_cloudfront": { + "name": "Amazon CloudFront", + "categoryId": 10, + "url": "https://aws.amazon.com/cloudfront/?nc1=h_ls", + "companyId": "amazon_associates" + }, + "amazon_mobile_ads": { + "name": "Amazon Mobile Ads", + "categoryId": 4, + "url": "http://www.amazon.com/", + "companyId": "amazon_associates" + }, + "amazon_payments": { + "name": "Amazon Payments", + "categoryId": 2, + "url": "https://pay.amazon.com/", + "companyId": "amazon_associates" + }, + "amazon_video": { + "name": "Amazon Instant Video", + "categoryId": 0, + "url": "https://www.amazon.com", + "companyId": "amazon_associates" + }, + "amazon_web_services": { + "name": "Amazon Web Services", + "categoryId": 10, + "url": "https://aws.amazon.com/", + "companyId": "amazon_associates" + }, + "ambient_digital": { + "name": "Ambient Digital", + "categoryId": 4, + "url": "http://www.adnetwork.vn/", + "companyId": "ambient_digital" + }, + "amgload.net": { + "name": "amgload.net", + "categoryId": 11, + "url": null, + "companyId": null + }, + "amoad": { + "name": "AMoAd", + "categoryId": 4, + "url": "http://www.amoad.com/", + "companyId": "amoad" + }, + "amobee": { + "name": "Amobee", + "categoryId": 4, + "url": "https://www.amobee.com/", + "companyId": "singtel" + }, + "amp_platform": { + "name": "AMP Platform", + "categoryId": 4, + "url": "http://www.collective.com/", + "companyId": "collective" + }, + "amplitude": { + "name": "Amplitude", + "categoryId": 6, + "url": "https://amplitude.com/", + "companyId": "amplitude" + }, + "ampproject.org": { + "name": "AMP Project", + "categoryId": 8, + "url": "https://www.ampproject.org/", + "companyId": "google" + }, + "anametrix": { + "name": "Anametrix", + "categoryId": 6, + "url": "http://anametrix.com/", + "companyId": "anametrix" + }, + "ancestry_cdn": { + "name": "Ancestry CDN", + "categoryId": 9, + "url": "https://www.ancestry.com/", + "companyId": "ancestry" + }, + "ancora": { + "name": "Ancora", + "categoryId": 6, + "url": "http://www.ancoramediasolutions.com/", + "companyId": "ancora" + }, + "android": { + "name": "Android", + "categoryId": 101, + "url": "https://www.android.com/", + "companyId": "google", + "source": "AdGuard" + }, + "anetwork": { + "name": "Anetwork", + "categoryId": 4, + "url": "http://anetwork.ir/", + "companyId": "anetwork" + }, + "aniview.com": { + "name": "AniView", + "categoryId": 4, + "url": "https://www.aniview.com/", + "companyId": null + }, + "anonymousads": { + "name": "AnonymousAds", + "categoryId": 4, + "url": "https://a-ads.com/", + "companyId": "anonymousads" + }, + "anormal_tracker": { + "name": "Anormal Tracker", + "categoryId": 6, + "url": "http://anormal-tracker.de/", + "companyId": "anormal-tracker" + }, + "answers_cloud_service": { + "name": "Answers Cloud Service", + "categoryId": 1, + "url": "http://www.answers.com/", + "companyId": "answers.com" + }, + "ants": { + "name": "Ants", + "categoryId": 7, + "url": "http://ants.vn/en/", + "companyId": "ants" + }, + "anvato": { + "name": "Anvato", + "categoryId": 0, + "url": "https://www.anvato.com/", + "companyId": "google" + }, + "anyclip": { + "name": "AnyClip", + "categoryId": 0, + "url": "https://anyclip.com", + "companyId": "anyclip" + }, + "aol_be_on": { + "name": "AOL Be On", + "categoryId": 4, + "url": "http://beon.aolnetworks.com/", + "companyId": "verizon" + }, + "aol_cdn": { + "name": "AOL CDN", + "categoryId": 6, + "url": "https://www.verizon.com/", + "companyId": "verizon" + }, + "aol_images_cdn": { + "name": "AOL Images CDN", + "categoryId": 5, + "url": "https://www.verizon.com/", + "companyId": "verizon" + }, + "apa.at": { + "name": "Apa", + "categoryId": 8, + "url": "http://www.apa.at/Site/index.de.html", + "companyId": "apa" + }, + "apester": { + "name": "Apester", + "categoryId": 4, + "url": "http://apester.com/", + "companyId": "apester" + }, + "apicit.net": { + "name": "apicit.net", + "categoryId": 4, + "url": null, + "companyId": null + }, + "aplus_analytics": { + "name": "Aplus Analytics", + "categoryId": 6, + "url": "https://ww.deluxe.com/", + "companyId": "deluxe" + }, + "appcenter": { + "name": "Microsoft App Center", + "categoryId": 5, + "url": "https://appcenter.ms/", + "companyId": "microsoft", + "source": "AdGuard" + }, + "appcues": { + "name": "Appcues", + "categoryId": 2, + "url": "https://www.appcues.com/", + "companyId": null + }, + "appdynamics": { + "name": "AppDynamics", + "categoryId": 6, + "url": "http://www.appdynamics.com", + "companyId": "appdynamics" + }, + "appier": { + "name": "Appier", + "categoryId": 4, + "url": "http://www.appier.com/en/index.html", + "companyId": "appier" + }, + "apple": { + "name": "Apple", + "categoryId": 8, + "url": "https://www.apple.com/", + "companyId": "apple", + "source": "AdGuard" + }, + "apple_ads": { + "name": "Apple Search Ads", + "categoryId": 4, + "url": "https://searchads.apple.com/", + "companyId": "apple", + "source": "AdGuard" + }, + "applifier": { + "name": "Applifier", + "categoryId": 4, + "url": "http://www.applifier.com/", + "companyId": "applifier" + }, + "applovin": { + "name": "AppLovin", + "categoryId": 4, + "url": "https://www.applovin.com", + "companyId": "applovin" + }, + "appmetrx": { + "name": "AppMetrx", + "categoryId": 4, + "url": "http://www.engago.com", + "companyId": "engago_technologies" + }, + "appnexus": { + "name": "AppNexus", + "categoryId": 4, + "url": "https://about.ads.microsoft.com/en-us/solutions/xandr/xandr-premium-programmatic-advertising", + "companyId": "microsoft", + "source": "AdGuard" + }, + "appsflyer": { + "name": "AppsFlyer", + "categoryId": 101, + "url": "https://www.appsflyer.com/", + "companyId": "appsflyer", + "source": "AdGuard" + }, + "apptv": { + "name": "appTV", + "categoryId": 4, + "url": "http://www.apptv.com/", + "companyId": "apptv" + }, + "apture": { + "name": "Apture", + "categoryId": 2, + "url": "http://www.apture.com/", + "companyId": "google" + }, + "arcpublishing": { + "name": "Arc Publishing", + "categoryId": 6, + "url": "https://www.arcpublishing.com/", + "companyId": "arc_publishing" + }, + "ard.de": { + "name": "ard.de", + "categoryId": 0, + "url": null, + "companyId": null + }, + "are_you_a_human": { + "name": "Are You a Human", + "categoryId": 6, + "url": "https://areyouahuman.com/", + "companyId": "distil_networks" + }, + "arkoselabs.com": { + "name": "Arkose Labs", + "categoryId": 6, + "url": "https://www.arkoselabs.com/", + "companyId": null + }, + "art19": { + "name": "Art19", + "categoryId": 4, + "url": "https://art19.com/", + "companyId": "art19" + }, + "artimedia": { + "name": "Artimedia", + "categoryId": 4, + "url": "http://arti-media.net/en/", + "companyId": "artimedia" + }, + "artlebedev.ru": { + "name": "Art.Lebedev", + "categoryId": 8, + "url": "https://www.artlebedev.ru/", + "companyId": "art.lebedev_studio" + }, + "aruba_media_marketing": { + "name": "Aruba Media Marketing", + "categoryId": 4, + "url": "http://www.arubamediamarketing.it/", + "companyId": "aruba_media_marketing" + }, + "arvato_canvas_fp": { + "name": "Arvato Canvas FP", + "categoryId": 6, + "url": "https://www.arvato.com/", + "companyId": "arvato" + }, + "asambeauty.com": { + "name": "asambeauty.com", + "categoryId": 8, + "url": "https://www.asambeauty.com/", + "companyId": null + }, + "ask.com": { + "name": "Ask.com", + "categoryId": 7, + "url": null, + "companyId": null + }, + "aspnetcdn": { + "name": "Microsoft Ajax CDN", + "categoryId": 9, + "url": "https://www.microsoft.com/", + "companyId": "microsoft" + }, + "assemblyexchange": { + "name": "Assembly Exchange", + "categoryId": 4, + "url": "https://www.medialab.la/", + "companyId": "medialab", + "source": "AdGuard" + }, + "astronomer": { + "name": "Astronomer", + "categoryId": 6, + "url": "https://www.astronomer.io", + "companyId": "astronomer" + }, + "at_internet": { + "name": "AT Internet", + "categoryId": 6, + "url": "http://www.xiti.com/", + "companyId": "at_internet" + }, + "atedra": { + "name": "Atedra", + "categoryId": 4, + "url": "http://www.atedra.com/", + "companyId": "atedra" + }, + "atg_group": { + "name": "ATG Ad Tech Group", + "categoryId": 4, + "url": "https://ad-tech-group.com/", + "companyId": null + }, + "atg_optimization": { + "name": "ATG Optimization", + "categoryId": 4, + "url": "http://www.atg.com/en/products-services/optimization/", + "companyId": "oracle" + }, + "atg_recommendations": { + "name": "ATG Recommendations", + "categoryId": 4, + "url": "http://www.atg.com/en/products-services/optimization/recommendations/", + "companyId": "oracle" + }, + "atlas": { + "name": "Atlas", + "categoryId": 4, + "url": "https://atlassolutions.com", + "companyId": "facebook" + }, + "atlas_profitbuilder": { + "name": "Atlas ProfitBuilder", + "categoryId": 4, + "url": "http://www.atlassolutions.com/", + "companyId": "atlas" + }, + "atlassian.net": { + "name": "Atlassian", + "categoryId": 2, + "url": "https://www.atlassian.com/", + "companyId": "atlassian" + }, + "atlassian_marketplace": { + "name": "Atlassian Marketplace", + "categoryId": 9, + "url": "https://marketplace.atlassian.com/", + "companyId": "atlassian" + }, + "atomz_search": { + "name": "Atomz Search", + "categoryId": 2, + "url": "http://atomz.com/", + "companyId": "atomz" + }, + "atsfi_de": { + "name": "atsfi.de", + "categoryId": 11, + "url": "http://www.axelspringer.de/en/index.html", + "companyId": "axel_springer" + }, + "attracta": { + "name": "Attracta", + "categoryId": 4, + "url": "http://www.attracta.com/", + "companyId": "attracta" + }, + "attraqt": { + "name": "Attraqt", + "categoryId": 6, + "url": "http://www.locayta.com/", + "companyId": "attraqt" + }, + "audience2media": { + "name": "Audience2Media", + "categoryId": 4, + "url": "http://www.audience2media.com/", + "companyId": "audience2media" + }, + "audience_ad_network": { + "name": "Audience Ad Network", + "categoryId": 4, + "url": "http://www.audienceadnetwork.com", + "companyId": "bridgeline_digital" + }, + "audience_science": { + "name": "Audience Science", + "categoryId": 4, + "url": "http://www.audiencescience.com/", + "companyId": "audiencescience" + }, + "audiencerate": { + "name": "AudienceRate", + "categoryId": 4, + "url": "http://www.audiencerate.com/", + "companyId": "audiencerate" + }, + "audiencesquare.com": { + "name": "Audience Square", + "categoryId": 4, + "url": "http://www.audiencesquare.fr/", + "companyId": "audience_square" + }, + "auditude": { + "name": "Auditude", + "categoryId": 0, + "url": "http://www.auditude.com/", + "companyId": "adobe" + }, + "audtd.com": { + "name": "Auditorius", + "categoryId": 4, + "url": "http://www.auditorius.ru/", + "companyId": "auditorius" + }, + "augur": { + "name": "Augur", + "categoryId": 6, + "url": "https://www.augur.io/", + "companyId": "augur" + }, + "aumago": { + "name": "Aumago", + "categoryId": 4, + "url": "http://www.aumago.com/", + "companyId": "aumago" + }, + "aurea_clicktracks": { + "name": "Aurea ClickTracks", + "categoryId": 4, + "url": "http://www.clicktracks.com/", + "companyId": "aurea" + }, + "ausgezeichnet_org": { + "name": "ausgezeichnet.org", + "categoryId": 2, + "url": "http://ausgezeichnet.org/", + "companyId": null + }, + "australia.gov": { + "name": "Australia.gov", + "categoryId": 4, + "url": "http://www.australia.gov.au/", + "companyId": "australian_government" + }, + "auth0": { + "name": "Auth0 Inc.", + "categoryId": 6, + "url": "https://auth0.com/", + "companyId": "auth0" + }, + "autoid": { + "name": "AutoID", + "categoryId": 6, + "url": "http://www.autoid.com/", + "companyId": "autoid" + }, + "autonomy": { + "name": "Autonomy", + "categoryId": 4, + "url": "http://www.optimost.com/", + "companyId": "hp" + }, + "autonomy_campaign": { + "name": "Autonomy Campaign", + "categoryId": 4, + "url": "http://www.autonomy.com/", + "companyId": "hp" + }, + "autopilothq": { + "name": "Auto Pilot", + "categoryId": 4, + "url": "https://www.autopilothq.com/", + "companyId": "autopilothq" + }, + "autoscout24.com": { + "name": "Autoscout24", + "categoryId": 8, + "url": "http://www.scout24.com/", + "companyId": "scout24" + }, + "avail": { + "name": "Avail", + "categoryId": 4, + "url": "http://avail.com", + "companyId": "richrelevance" + }, + "avanser": { + "name": "AVANSER", + "categoryId": 2, + "url": "http://www.avanser.com.au/", + "companyId": "avanser" + }, + "avant_metrics": { + "name": "Avant Metrics", + "categoryId": 6, + "url": "http://www.avantlink.com/", + "companyId": "avantlink" + }, + "avantlink": { + "name": "AvantLink", + "categoryId": 4, + "url": "http://www.avantlink.com/", + "companyId": "avantlink" + }, + "avazu_network": { + "name": "Avazu Network", + "categoryId": 4, + "url": "http://www.avazudsp.net/", + "companyId": "avazu_network" + }, + "avenseo": { + "name": "Avenseo", + "categoryId": 4, + "url": "http://avenseo.com", + "companyId": "avenseo" + }, + "avid_media": { + "name": "Avid Media", + "categoryId": 0, + "url": "http://www.avidglobalmedia.com/", + "companyId": "avid_media" + }, + "avocet": { + "name": "Avocet", + "categoryId": 8, + "url": "https://avocet.io/", + "companyId": "avocet" + }, + "aweber": { + "name": "AWeber", + "categoryId": 4, + "url": "http://www.aweber.com/", + "companyId": "aweber_communications" + }, + "awin": { + "name": "AWIN", + "categoryId": 4, + "url": "https://www.awin.com", + "companyId": "axel_springer" + }, + "axill": { + "name": "Axill", + "categoryId": 4, + "url": "http://www.axill.com/", + "companyId": "axill" + }, + "azadify": { + "name": "Azadify", + "categoryId": 4, + "url": "http://azadify.com/engage/index.php", + "companyId": "azadify" + }, + "azure": { + "name": "Microsoft Azure", + "categoryId": 10, + "url": "https://azure.microsoft.com/", + "companyId": "microsoft", + "source": "AdGuard" + }, + "azure_blob_storage": { + "name": "Azure Blob Storage", + "categoryId": 8, + "url": "https://azure.microsoft.com/en-us/products/storage/blobs", + "companyId": "microsoft", + "source": "AdGuard" + }, + "azureedge.net": { + "name": "Azure CDN", + "categoryId": 9, + "url": "https://www.microsoft.com/", + "companyId": "microsoft" + }, + "b2bcontext": { + "name": "B2BContext", + "categoryId": 4, + "url": "http://b2bcontext.ru/", + "companyId": "b2bcontext" + }, + "b2bvideo": { + "name": "B2Bvideo", + "categoryId": 4, + "url": "http://b2bvideo.ru/", + "companyId": "b2bvideo" + }, + "babator.com": { + "name": "Babator", + "categoryId": 6, + "url": "https://www.babator.com/", + "companyId": null + }, + "back_beat_media": { + "name": "Back Beat Media", + "categoryId": 4, + "url": "http://www.backbeatmedia.com", + "companyId": "backbeat_media" + }, + "backtype_widgets": { + "name": "BackType Widgets", + "categoryId": 4, + "url": "http://www.backtype.com/widgets", + "companyId": "backtype" + }, + "bahn_de": { + "name": "Deutsche Bahn", + "categoryId": 8, + "url": null, + "companyId": null + }, + "baidu_ads": { + "name": "Baidu Ads", + "categoryId": 4, + "url": "http://www.baidu.com/", + "companyId": "baidu" + }, + "baidu_static": { + "name": "Baidu Static", + "categoryId": 8, + "url": "https://www.baidu.com/", + "companyId": "baidu" + }, + "baletingo.com": { + "name": "baletingo.com", + "categoryId": 11, + "url": null, + "companyId": null + }, + "bangdom.com": { + "name": "BangBros", + "categoryId": 3, + "url": null, + "companyId": null + }, + "bankrate": { + "name": "Bankrate", + "categoryId": 4, + "url": "https://www.bankrate.com/", + "companyId": "bankrate" + }, + "banner_connect": { + "name": "Banner Connect", + "categoryId": 4, + "url": "http://www.bannerconnect.net/", + "companyId": "bannerconnect" + }, + "bannerflow.com": { + "name": "Bannerflow", + "categoryId": 4, + "url": "https://www.bannerflow.com/", + "companyId": "bannerflow" + }, + "bannerplay": { + "name": "BannerPlay", + "categoryId": 4, + "url": "http://www.bannerplay.com/", + "companyId": "bannerplay" + }, + "bannersnack": { + "name": "Bannersnack", + "categoryId": 4, + "url": "http://www.bannersnack.com/", + "companyId": "bannersnack" + }, + "barilliance": { + "name": "Barilliance", + "categoryId": 4, + "url": "http://www.barilliance.com/", + "companyId": "barilliance" + }, + "barometer": { + "name": "Barometer", + "categoryId": 2, + "url": "http://getbarometer.com/", + "companyId": "barometer" + }, + "basilic.io": { + "name": "basilic.io", + "categoryId": 6, + "url": "https://basilic.io/", + "companyId": null + }, + "batanga_network": { + "name": "Batanga Network", + "categoryId": 4, + "url": "http://www.batanganetwork.com/", + "companyId": "batanga_network" + }, + "batch_media": { + "name": "Batch Media", + "categoryId": 4, + "url": "http://batch.ba/", + "companyId": "prosieben_sat1" + }, + "bauer_media": { + "name": "Bauer Media", + "categoryId": 4, + "url": "http://www.bauermedia.com", + "companyId": "bauer_media" + }, + "baur.de": { + "name": "baur.de", + "categoryId": 8, + "url": null, + "companyId": null + }, + "baynote_observer": { + "name": "Baynote Observer", + "categoryId": 4, + "url": "http://www.baynote.com/", + "companyId": "baynote" + }, + "bazaarvoice": { + "name": "Bazaarvoice", + "categoryId": 2, + "url": "http://www.bazaarvoice.com/", + "companyId": "bazaarvoice" + }, + "bbci": { + "name": "BBC", + "categoryId": 10, + "url": "https://bbc.co.uk", + "companyId": null + }, + "bd4travel": { + "name": "bd4travel", + "categoryId": 4, + "url": "https://bd4travel.com/", + "companyId": "bd4travel" + }, + "be_opinion": { + "name": "Be Opinion", + "categoryId": 2, + "url": "http://beopinion.com/", + "companyId": "be_opinion" + }, + "beachfront": { + "name": "Beachfront Media", + "categoryId": 4, + "url": "http://beachfrontmedia.com/", + "companyId": null + }, + "beacon_ad_network": { + "name": "Beacon Ad Network", + "categoryId": 4, + "url": "http://beaconads.com/", + "companyId": "beacon_ad_network" + }, + "beampulse.com": { + "name": "BeamPulse", + "categoryId": 4, + "url": "https://en.beampulse.com/", + "companyId": null + }, + "beanstalk_data": { + "name": "Beanstalk Data", + "categoryId": 4, + "url": "http://www.beanstalkdata.com/", + "companyId": "beanstalk_data" + }, + "bebi": { + "name": "Bebi Media", + "categoryId": 4, + "url": "https://www.bebi.com/", + "companyId": "bebi_media" + }, + "beeketing.com": { + "name": "Beeketing", + "categoryId": 4, + "url": "https://beeketing.com/", + "companyId": "beeketing" + }, + "beeline.ru": { + "name": "Beeline", + "categoryId": 4, + "url": "https://moskva.beeline.ru/", + "companyId": null + }, + "beeswax": { + "name": "Beeswax", + "categoryId": 4, + "url": "http://beeswax.com/", + "companyId": "beeswax" + }, + "beezup": { + "name": "BeezUP", + "categoryId": 4, + "url": "http://www.beezup.co.uk/", + "companyId": "beezup" + }, + "begun": { + "name": "Begun", + "categoryId": 4, + "url": "http://begun.ru/", + "companyId": "begun" + }, + "behavioralengine": { + "name": "BehavioralEngine", + "categoryId": 4, + "url": "http://www.behavioralengine.com/", + "companyId": "behavioralengine" + }, + "belboon_gmbh": { + "name": "belboon GmbH", + "categoryId": 8, + "url": null, + "companyId": null + }, + "belco": { + "name": "Belco", + "categoryId": 2, + "url": "https://www.belco.io/", + "companyId": "belco" + }, + "belstat": { + "name": "BelStat", + "categoryId": 6, + "url": "http://www.belstat.com/", + "companyId": "belstat" + }, + "bemobile.ua": { + "name": "Bemobile", + "categoryId": 10, + "url": "http://bemobile.ua/en/", + "companyId": "bemobile" + }, + "bench_platform": { + "name": "Bench Platform", + "categoryId": 4, + "url": "https://benchplatform.com", + "companyId": "bench_platform" + }, + "betterttv": { + "name": "BetterTTV", + "categoryId": 7, + "url": "https://nightdev.com/betterttv/", + "companyId": "nightdev" + }, + "betweendigital.com": { + "name": "Between Digital", + "categoryId": 4, + "url": "http://betweendigital.ru/ssp", + "companyId": "between_digital" + }, + "bid.run": { + "name": "Bid Run", + "categoryId": 4, + "url": "http://bid.run/", + "companyId": "bid.run" + }, + "bidgear": { + "name": "BidGear", + "categoryId": 6, + "url": "https://bidgear.com/", + "companyId": "bidgear" + }, + "bidswitch": { + "name": "Bidswitch", + "categoryId": 4, + "url": "http://www.iponweb.com/", + "companyId": "iponweb" + }, + "bidtellect": { + "name": "Bidtellect", + "categoryId": 4, + "url": "https://www.bidtellect.com/", + "companyId": "bidtellect" + }, + "bidtheatre": { + "name": "BidTheatre", + "categoryId": 4, + "url": "http://www.bidtheatre.com/", + "companyId": "bidtheatre" + }, + "bidvertiser": { + "name": "BidVertiser", + "categoryId": 4, + "url": "http://www.bidvertiser.com/", + "companyId": "bidvertiser" + }, + "big_mobile": { + "name": "Big Mobile", + "categoryId": 4, + "url": "http://www.bigmobile.com/", + "companyId": "big_mobile" + }, + "bigcommerce.com": { + "name": "BigCommerce", + "categoryId": 6, + "url": "https://www.bigcommerce.com/", + "companyId": "bigcommerce" + }, + "bigmir.net": { + "name": "bigmir", + "categoryId": 6, + "url": "https://www.bigmir.net/", + "companyId": "bigmir-internet" + }, + "bigpoint": { + "name": "Bigpoint", + "categoryId": 8, + "url": null, + "companyId": null + }, + "bild": { + "name": "Bild.de", + "categoryId": 8, + "url": null, + "companyId": null + }, + "bilgin_pro": { + "name": "Bilgin Pro", + "categoryId": 4, + "url": "http://bilgin.pro/", + "companyId": "bilginpro" + }, + "bilin": { + "name": "Bilin", + "categoryId": 4, + "url": "http://www.bilintechnology.com/", + "companyId": "bilin" + }, + "bing_ads": { + "name": "Bing Ads", + "categoryId": 4, + "url": "https://bingads.microsoft.com/", + "companyId": "microsoft" + }, + "bing_maps": { + "name": "Bing Maps", + "categoryId": 2, + "url": "https://www.microsoft.com/", + "companyId": "microsoft" + }, + "binge": { + "name": "Binge", + "categoryId": 0, + "url": "https://binge.com.au/", + "companyId": "news_corp", + "source": "AdGuard" + }, + "binlayer": { + "name": "BinLayer", + "categoryId": 4, + "url": "http://binlayer.com/", + "companyId": "binlayer" + }, + "binotel": { + "name": "Binotel", + "categoryId": 4, + "url": "http://www.binotel.ua/", + "companyId": "binotel" + }, + "bisnode": { + "name": "Bisnode", + "categoryId": 4, + "url": "http://www.esendra.fi/", + "companyId": "bisnode" + }, + "bitcoin_miner": { + "name": "Bitcoin Miner", + "categoryId": 2, + "url": "http://www.bitcoinplus.com/", + "companyId": "bitcoin_plus" + }, + "bitly": { + "name": "Bitly", + "categoryId": 6, + "url": "https://bitly.com/", + "companyId": null + }, + "bitrix": { + "name": "Bitrix24", + "categoryId": 4, + "url": "https://www.bitrix24.com/", + "companyId": "bitrix24" + }, + "bitwarden": { + "name": "Bitwarden", + "categoryId": 8, + "url": "https://bitwarden.com/", + "companyId": "bitwarden", + "source": "AdGuard" + }, + "bizcn": { + "name": "Bizcn", + "categoryId": 4, + "url": "http://www.bizcn.com/", + "companyId": "bizcn" + }, + "blackdragon": { + "name": "BlackDragon", + "categoryId": 4, + "url": "http://www.jd.com/", + "companyId": "jing_dong" + }, + "blau.de": { + "name": "Blau", + "categoryId": 8, + "url": "https://www.blau.de/", + "companyId": null + }, + "blink_new_media": { + "name": "Blink New Media", + "categoryId": 4, + "url": "http://engagebdr.com/", + "companyId": "engage_bdr" + }, + "blis": { + "name": "Blis", + "categoryId": 6, + "url": "http://www.blis.com/index.php", + "companyId": "blis" + }, + "blogad": { + "name": "BlogAD", + "categoryId": 4, + "url": "http://www.blogad.com.tw/", + "companyId": "blogad" + }, + "blogbang": { + "name": "BlogBang", + "categoryId": 4, + "url": "http://www.blogbang.com/", + "companyId": "blogbang" + }, + "blogcatalog": { + "name": "BlogCatalog", + "categoryId": 2, + "url": "http://www.blogcatalog.com/", + "companyId": "blogcatalog" + }, + "blogcounter": { + "name": "BlogCounter", + "categoryId": 6, + "url": "http://blogcounter.com/", + "companyId": "adfire_gmbh" + }, + "blogfoster.com": { + "name": "Blogfoster", + "categoryId": 8, + "url": "http://www.blogfoster.com/", + "companyId": "blogfoster" + }, + "bloggerads": { + "name": "BloggerAds", + "categoryId": 4, + "url": "http://www.bloggerads.net/", + "companyId": "bloggerads" + }, + "blogher": { + "name": "BlogHer Ads", + "categoryId": 4, + "url": "https://www.blogher.com/", + "companyId": "penske_media_corp" + }, + "blogimg.jp": { + "name": "blogimg.jp", + "categoryId": 9, + "url": "https://line.me/", + "companyId": "line" + }, + "blogsmithmedia.com": { + "name": "blogsmithmedia.com", + "categoryId": 8, + "url": "https://www.verizon.com/", + "companyId": "verizon" + }, + "blogspot_com": { + "name": "blogspot.com", + "categoryId": 8, + "url": "http://www.google.com", + "companyId": "google" + }, + "bloomreach": { + "name": "BloomReach", + "categoryId": 4, + "url": "https://www.bloomreach.com/en", + "companyId": "bloomreach" + }, + "blue_cherry_group": { + "name": "Blue Cherry Group", + "categoryId": 4, + "url": "http://www.bluecherrygroup.com", + "companyId": "blue_cherry_group" + }, + "blue_seed": { + "name": "Blue Seed", + "categoryId": 4, + "url": "http://blueseed.tv/#/en/platform", + "companyId": "blue_seed" + }, + "blueconic.net": { + "name": "BlueConic Plugin", + "categoryId": 6, + "url": "https://www.blueconic.com/", + "companyId": "blueconic" + }, + "bluecore": { + "name": "Bluecore", + "categoryId": 4, + "url": "https://www.bluecore.com/", + "companyId": "triggermail" + }, + "bluekai": { + "name": "BlueKai", + "categoryId": 4, + "url": "http://www.bluekai.com/", + "companyId": "oracle" + }, + "bluelithium": { + "name": "Bluelithium", + "categoryId": 4, + "url": "http://www.bluelithium.com/", + "companyId": "verizon" + }, + "bluemetrix": { + "name": "Bluemetrix", + "categoryId": 4, + "url": "http://www.bluemetrix.ie/", + "companyId": "bluemetrix" + }, + "bluenewsupdate.info": { + "name": "bluenewsupdate.info", + "categoryId": 11, + "url": null, + "companyId": null + }, + "bluestreak": { + "name": "BlueStreak", + "categoryId": 4, + "url": "http://www.bluestreak.com/", + "companyId": "dentsu_aegis_network" + }, + "bluetriangle": { + "name": "Blue Triangle", + "categoryId": 6, + "url": "https://www.bluetriangle.com/", + "companyId": "blue_triangle" + }, + "bodelen.com": { + "name": "bodelen.com", + "categoryId": 4, + "url": null, + "companyId": null + }, + "bol_affiliate_program": { + "name": "BOL Affiliate Program", + "categoryId": 4, + "url": "http://www.bol.com", + "companyId": "bol.com" + }, + "bold": { + "name": "Bold", + "categoryId": 4, + "url": "https://boldcommerce.com/", + "companyId": "bold" + }, + "boldchat": { + "name": "Boldchat", + "categoryId": 2, + "url": "http://www.boldchat.com/", + "companyId": "boldchat" + }, + "boltdns.net": { + "name": "boltdns.net", + "categoryId": 11, + "url": null, + "companyId": null + }, + "bom": { + "name": "Bureau of Meteorology", + "categoryId": 9, + "url": "http://bom.gov.au/", + "companyId": "australian_government", + "source": "AdGuard" + }, + "bombora": { + "name": "Bombora", + "categoryId": 6, + "url": "http://bombora.com/", + "companyId": "bombora" + }, + "bongacams.com": { + "name": "bongacams.com", + "categoryId": 3, + "url": null, + "companyId": null + }, + "bonial": { + "name": "Bonial Connect", + "categoryId": 2, + "url": "http://www.bonial.com/", + "companyId": null + }, + "boo-box": { + "name": "boo-box", + "categoryId": 4, + "url": "http://boo-box.com/", + "companyId": "boo-box" + }, + "booking.com": { + "name": "Booking.com", + "categoryId": 8, + "url": null, + "companyId": null + }, + "boost_box": { + "name": "Boost Box", + "categoryId": 6, + "url": "http://www.boostbox.com.br/", + "companyId": "boost_box" + }, + "booster_video": { + "name": "Booster Video", + "categoryId": 0, + "url": "https://boostervideo.ru/", + "companyId": "booster_video" + }, + "bootstrap": { + "name": "Bootstrap CDN", + "categoryId": 9, + "url": "http://getbootstrap.com/", + "companyId": "bootstrap_cdn" + }, + "borrango.com": { + "name": "borrango.com", + "categoryId": 11, + "url": null, + "companyId": null + }, + "botscanner": { + "name": "BotScanner", + "categoryId": 6, + "url": "http://botscanner.com", + "companyId": "botscanner" + }, + "boudja.com": { + "name": "boudja.com", + "categoryId": 11, + "url": null, + "companyId": null + }, + "bounce_exchange": { + "name": "Bounce Exchange", + "categoryId": 4, + "url": "http://bounceexchange.com", + "companyId": "bounce_exchange" + }, + "bouncex": { + "name": "BounceX", + "categoryId": 4, + "url": "https://www.bouncex.com/", + "companyId": null + }, + "box_uk": { + "name": "Box UK", + "categoryId": 6, + "url": "http://www.clickdensity.com", + "companyId": "box_uk" + }, + "boxever": { + "name": "Boxever", + "categoryId": 4, + "url": "https://www.boxever.com/", + "companyId": "boxever" + }, + "brainient": { + "name": "Brainient", + "categoryId": 4, + "url": "http://www.brainient.com/", + "companyId": "brainient" + }, + "brainsins": { + "name": "BrainSINS", + "categoryId": 4, + "url": "http://www.brainsins.com/", + "companyId": "brainsins" + }, + "branch": { + "name": "Branch.io", + "categoryId": 101, + "url": "https://branch.io/", + "companyId": "branch_metrics_inc", + "source": "AdGuard" + }, + "branch_metrics": { + "name": "Branch", + "categoryId": 4, + "url": "https://branch.io/", + "companyId": "branch_metrics_inc" + }, + "brand_affinity": { + "name": "Brand Affinity", + "categoryId": 4, + "url": "http://brandaffinity.net/about", + "companyId": "yoonla" + }, + "brand_networks": { + "name": "Brand Networks", + "categoryId": 4, + "url": "http://www.xa.net/", + "companyId": "brand_networks" + }, + "brandmetrics.com": { + "name": "Brandmetrics.com", + "categoryId": 4, + "url": "https://www.brandmetrics.com/", + "companyId": null + }, + "brandreach": { + "name": "BrandReach", + "categoryId": 4, + "url": "http://www.brandreach.com/", + "companyId": "brandreach" + }, + "brandscreen": { + "name": "Brandscreen", + "categoryId": 4, + "url": "http://www.brandscreen.com/", + "companyId": "zenovia" + }, + "brandwire.tv": { + "name": "BrandWire", + "categoryId": 4, + "url": "https://brandwire.tv/", + "companyId": null + }, + "branica": { + "name": "Branica", + "categoryId": 4, + "url": "http://www.branica.com/", + "companyId": "branica" + }, + "braze": { + "name": "Braze, Inc.", + "categoryId": 6, + "url": "https://www.braze.com/", + "companyId": "braze", + "source": "AdGuard" + }, + "brealtime": { + "name": "EMX Digital", + "categoryId": 4, + "url": "https://emxdigital.com/", + "companyId": null + }, + "bridgetrack": { + "name": "BridgeTrack", + "categoryId": 4, + "url": "http://www.bridgetrack.com/", + "companyId": "bridgetrack" + }, + "brightcove": { + "name": "Brightcove", + "categoryId": 0, + "url": "http://www.brightcove.com/en/", + "companyId": "brightcove" + }, + "brightcove_player": { + "name": "Brightcove Player", + "categoryId": 0, + "url": "http://www.brightcove.com/en/", + "companyId": "brightcove" + }, + "brightedge": { + "name": "BrightEdge", + "categoryId": 4, + "url": "http://www.brightedge.com/", + "companyId": "brightedge" + }, + "brightfunnel": { + "name": "BrightFunnel", + "categoryId": 6, + "url": "http://www.brightfunnel.com/", + "companyId": "brightfunnel" + }, + "brightonclick.com": { + "name": "brightonclick.com", + "categoryId": 4, + "url": null, + "companyId": null + }, + "brightroll": { + "name": "BrightRoll", + "categoryId": 4, + "url": "http://www.brightroll.com/", + "companyId": "verizon" + }, + "brilig": { + "name": "Brilig", + "categoryId": 4, + "url": "http://www.brilig.com/", + "companyId": "dentsu_aegis_network" + }, + "brillen.de": { + "name": "brillen.de", + "categoryId": 8, + "url": "https://www.brillen.de/", + "companyId": null + }, + "broadstreet": { + "name": "Broadstreet", + "categoryId": 4, + "url": "http://broadstreetads.com/", + "companyId": "broadstreet" + }, + "bronto": { + "name": "Bronto", + "categoryId": 4, + "url": "http://bronto.com/", + "companyId": "bronto" + }, + "brow.si": { + "name": "Brow.si", + "categoryId": 4, + "url": "https://brow.si/", + "companyId": "brow.si" + }, + "browser-statistik": { + "name": "Browser-Statistik", + "categoryId": 6, + "url": "http://www.browser-statistik.de/", + "companyId": "browser-statistik" + }, + "browser_update": { + "name": "Browser Update", + "categoryId": 2, + "url": "http://www.browser-update.org/", + "companyId": "browser-update" + }, + "btncdn.com": { + "name": "btncdn.com", + "categoryId": 9, + "url": null, + "companyId": null + }, + "bubblestat": { + "name": "Bubblestat", + "categoryId": 4, + "url": "http://www.bubblestat.com/", + "companyId": "bubblestat" + }, + "buddy_media": { + "name": "Buddy Media", + "categoryId": 7, + "url": "http://www.salesforce.com/", + "companyId": "salesforce" + }, + "buffer_button": { + "name": "Buffer Button", + "categoryId": 7, + "url": "http://www.bufferapp.com/", + "companyId": "buffer" + }, + "bugherd.com": { + "name": "BugHerd", + "categoryId": 2, + "url": "https://bugherd.com", + "companyId": "bugherd" + }, + "bugsnag": { + "name": "Bugsnag", + "categoryId": 6, + "url": "https://bugsnag.com", + "companyId": "bugsnag" + }, + "bulkhentai.com": { + "name": "bulkhentai.com", + "categoryId": 3, + "url": null, + "companyId": null + }, + "bumlam.com": { + "name": "bumlam.com", + "categoryId": 11, + "url": null, + "companyId": null + }, + "bunchbox": { + "name": "Bunchbox", + "categoryId": 6, + "url": "https://app.bunchbox.co/login", + "companyId": "bunchbox" + }, + "burda": { + "name": "BurdaForward", + "categoryId": 4, + "url": "http://www.hubert-burda-media.com/", + "companyId": "hubert_burda_media" + }, + "burda_digital_systems": { + "name": "Burda Digital Systems", + "categoryId": 4, + "url": "http://www.hubert-burda-media.com/", + "companyId": "hubert_burda_media" + }, + "burst_media": { + "name": "Burst Media", + "categoryId": 4, + "url": "http://www.burstmedia.com/", + "companyId": "rhythmone" + }, + "burt": { + "name": "Burt", + "categoryId": 4, + "url": "http://www.burtcorp.com/", + "companyId": "burt" + }, + "businessonline_analytics": { + "name": "BusinessOnLine Analytics", + "categoryId": 6, + "url": "http://www.businessol.com/", + "companyId": "businessonline" + }, + "button": { + "name": "Button", + "categoryId": 4, + "url": "https://www.usebutton.com/", + "companyId": "button", + "source": "AdGuard" + }, + "buysellads": { + "name": "BuySellAds", + "categoryId": 4, + "url": "http://buysellads.com/", + "companyId": "buysellads.com" + }, + "buzzadexchange.com": { + "name": "buzzadexchange.com", + "categoryId": 4, + "url": null, + "companyId": null + }, + "buzzador": { + "name": "Buzzador", + "categoryId": 7, + "url": "http://www.buzzador.com", + "companyId": "buzzador" + }, + "buzzfeed": { + "name": "BuzzFeed", + "categoryId": 2, + "url": "http://www.buzzfeed.com", + "companyId": "buzzfeed" + }, + "bwbx.io": { + "name": "Bloomberg CDN", + "categoryId": 9, + "url": "https://www.bloomberg.com/", + "companyId": null + }, + "bypass": { + "name": "Bypass", + "categoryId": 4, + "url": "http://bypass.jp/", + "companyId": "united_inc" + }, + "c1_exchange": { + "name": "C1 Exchange", + "categoryId": 4, + "url": "http://c1exchange.com/", + "companyId": "c1_exchange" + }, + "c3_metrics": { + "name": "C3 Metrics", + "categoryId": 6, + "url": "http://c3metrics.com/", + "companyId": "c3_metrics" + }, + "c8_network": { + "name": "C8 Network", + "categoryId": 4, + "url": "http://c8.net.ua/", + "companyId": "c8_network" + }, + "cackle.me": { + "name": "Cackle", + "categoryId": 3, + "url": "https://cackle.me/", + "companyId": null + }, + "cadreon": { + "name": "Cadreon", + "categoryId": 4, + "url": "http://www.cadreon.com/", + "companyId": "cadreon" + }, + "call_page": { + "name": "Call Page", + "categoryId": 2, + "url": "https://www.callpage.io/", + "companyId": "call_page" + }, + "callbackhunter": { + "name": "CallbackHunter", + "categoryId": 2, + "url": "http://callbackhunter.com/main", + "companyId": "callbackhunter" + }, + "callbox": { + "name": "CallBox", + "categoryId": 2, + "url": "http://www.centuryinteractive.com", + "companyId": "callbox" + }, + "callibri": { + "name": "Callibri", + "categoryId": 4, + "url": "https://callibri.ru/", + "companyId": "callibri" + }, + "callrail": { + "name": "CallRail", + "categoryId": 2, + "url": "http://www.callrail.com/", + "companyId": "callrail" + }, + "calltracking": { + "name": "Calltracking", + "categoryId": 2, + "url": "https://calltracking.ru", + "companyId": "calltracking" + }, + "caltat.com": { + "name": "Caltat", + "categoryId": 2, + "url": "https://caltat.com/", + "companyId": null + }, + "cam-content.com": { + "name": "Cam-Content.com", + "categoryId": 3, + "url": "https://www.cam-content.com/", + "companyId": null + }, + "camakaroda.com": { + "name": "camakaroda.com", + "categoryId": 11, + "url": null, + "companyId": null + }, + "campus_explorer": { + "name": "Campus Explorer", + "categoryId": 6, + "url": "http://www.campusexplorer.com/", + "companyId": "campus_explorer" + }, + "canddi": { + "name": "CANDDI", + "categoryId": 6, + "url": "https://www.canddi.com/", + "companyId": "canddi" + }, + "canonical": { + "name": "Canonical", + "categoryId": 8, + "url": "https://canonical.com/", + "companyId": "canonical", + "source": "AdGuard" + }, + "canvas": { + "name": "Canvas", + "categoryId": 2, + "url": "https://www.canvas.net/", + "companyId": null + }, + "capitaldata": { + "name": "CapitalData", + "categoryId": 6, + "url": "https://www.capitaldata.fr/", + "companyId": "highco" + }, + "captora": { + "name": "Captora", + "categoryId": 4, + "url": "http://www.captora.com/", + "companyId": "captora" + }, + "capture_media": { + "name": "Capture Media", + "categoryId": 4, + "url": "http://capturemedia.ch/", + "companyId": "capture_media" + }, + "capturly": { + "name": "Capturly", + "categoryId": 6, + "url": "http://capturly.com/", + "companyId": "capturly" + }, + "carambola": { + "name": "Carambola", + "categoryId": 4, + "url": "http://carambo.la/", + "companyId": "carambola" + }, + "carbonads": { + "name": "Carbon Ads", + "categoryId": 4, + "url": "https://www.carbonads.net/", + "companyId": "buysellads.com" + }, + "cardinal": { + "name": "Cardinal", + "categoryId": 6, + "url": "https://www.cardinalcommerce.com/", + "companyId": "visa" + }, + "cardlytics": { + "name": "Cardlytics", + "categoryId": 6, + "url": "http://www.cardlytics.com/", + "companyId": null + }, + "carrot_quest": { + "name": "Carrot Quest", + "categoryId": 6, + "url": "http://www.carrotquest.io/", + "companyId": "carrot_quest" + }, + "cartstack": { + "name": "CartStack", + "categoryId": 2, + "url": "http://cartstack.com/", + "companyId": "cartstack" + }, + "caspion": { + "name": "Caspion", + "categoryId": 6, + "url": "http://caspion.com/", + "companyId": "caspion" + }, + "castle": { + "name": "Castle", + "categoryId": 2, + "url": "https://castle.io", + "companyId": "castle" + }, + "catchpoint": { + "name": "Catchpoint", + "categoryId": 6, + "url": "http://www.catchpoint.com/", + "companyId": "catchpoint_systems" + }, + "cbox": { + "name": "Cbox", + "categoryId": 2, + "url": "http://cbox.ws", + "companyId": "cbox" + }, + "cbs_interactive": { + "name": "CBS Interactive", + "categoryId": 0, + "url": "http://www.cbsinteractive.com/", + "companyId": "cbs_interactive" + }, + "ccm_benchmark": { + "name": "CCM Benchmark", + "categoryId": 4, + "url": "http://www.ccmbenchmark.com/", + "companyId": null + }, + "cdk_digital_marketing": { + "name": "CDK Digital Marketing", + "categoryId": 4, + "url": "http://www.cobaltgroup.com", + "companyId": "cdk_digital_marketing" + }, + "cdn-net.com": { + "name": "cdn-net.com", + "categoryId": 11, + "url": null, + "companyId": null + }, + "cdn13.com": { + "name": "cdn13.com", + "categoryId": 8, + "url": null, + "companyId": null + }, + "cdn77": { + "name": "CDN77", + "categoryId": 9, + "url": "https://www.cdn77.com/", + "companyId": null + }, + "cdnetworks.net": { + "name": "cdnetworks.net", + "categoryId": 9, + "url": "https://www.cdnetworks.com/", + "companyId": null + }, + "cdnnetwok_xyz": { + "name": "cdnnetwok.xyz", + "categoryId": 12, + "url": null, + "companyId": null + }, + "cdnondemand.org": { + "name": "cdnondemand.org", + "categoryId": 11, + "url": null, + "companyId": null + }, + "cdnsure.com": { + "name": "cdnsure.com", + "categoryId": 11, + "url": null, + "companyId": null + }, + "cdnvideo.com": { + "name": "CDNvideo", + "categoryId": 9, + "url": "https://www.cdnvideo.com/", + "companyId": "cdnvideo" + }, + "cdnwidget.com": { + "name": "cdnwidget.com", + "categoryId": 9, + "url": null, + "companyId": null + }, + "cedexis_radar": { + "name": "Cedexis Radar", + "categoryId": 6, + "url": "http://www.cedexis.com/products_radar.html", + "companyId": "cedexis" + }, + "celebrus": { + "name": "Celebrus", + "categoryId": 6, + "url": "https://www.celebrus.com/", + "companyId": "celebrus" + }, + "celtra": { + "name": "Celtra", + "categoryId": 0, + "url": "http://www.celtra.com/", + "companyId": "celtra" + }, + "cendyn": { + "name": "Cendyn", + "categoryId": 4, + "url": "http://www.cendyn.com/", + "companyId": "cendyn" + }, + "centraltag": { + "name": "CentralTag", + "categoryId": 4, + "url": "http://www.centraltag.com/", + "companyId": "centraltag" + }, + "centro": { + "name": "Centro", + "categoryId": 4, + "url": "http://centro.net/", + "companyId": "centro" + }, + "cerberus_speed-trap": { + "name": "Cerberus Speed-Trap", + "categoryId": 6, + "url": "http://cerberusip.com/", + "companyId": "cerberus" + }, + "certainsource": { + "name": "CertainSource", + "categoryId": 4, + "url": "http://www.ewaydirect.com", + "companyId": "certainsource" + }, + "certifica_metric": { + "name": "Certifica Metric", + "categoryId": 4, + "url": "http://www.comscore.com/Products_Services/Product_Index/Certifica_Metric", + "companyId": "comscore" + }, + "certona": { + "name": "Certona", + "categoryId": 4, + "url": "http://www.certona.com/products/recommendation.php", + "companyId": "certona" + }, + "chameleon": { + "name": "Chameleon", + "categoryId": 4, + "url": "http://chameleon.ad/", + "companyId": "chamaleon" + }, + "chango": { + "name": "Chango", + "categoryId": 4, + "url": "http://www.chango.com/", + "companyId": "rubicon_project" + }, + "channel_intelligence": { + "name": "Channel Intelligence", + "categoryId": 4, + "url": "http://www.channelintelligence.com/", + "companyId": "google" + }, + "channel_pilot_solutions": { + "name": "ChannelPilot Solutions", + "categoryId": 6, + "url": "https://www.channelpilot.de/", + "companyId": null + }, + "channeladvisor": { + "name": "ChannelAdvisor", + "categoryId": 4, + "url": "http://www.channeladvisor.com/", + "companyId": "channeladvisor" + }, + "channelfinder": { + "name": "ChannelFinder", + "categoryId": 4, + "url": "http://www.kpicentral.com/", + "companyId": "kaleidoscope_promotions" + }, + "chaordic": { + "name": "Chaordic", + "categoryId": 4, + "url": "https://www.chaordic.com.br/", + "companyId": "chaordic" + }, + "chartbeat": { + "name": "ChartBeat", + "categoryId": 6, + "url": "http://chartbeat.com/", + "companyId": "chartbeat" + }, + "chartboost": { + "name": "Chartboost", + "categoryId": 4, + "url": "http://chartboost.com/", + "companyId": "take-two", + "source": "AdGuard" + }, + "chaser": { + "name": "Chaser", + "categoryId": 2, + "url": "http://chaser.ru/", + "companyId": "chaser" + }, + "chat_beacon": { + "name": "Chat Beacon", + "categoryId": 2, + "url": "https://www.chatbeacon.io/", + "companyId": "chat_beacon" + }, + "chatango": { + "name": "Chatango", + "categoryId": 2, + "url": "http://www.chatango.com/", + "companyId": "chatango" + }, + "chatra": { + "name": "Chatra", + "categoryId": 2, + "url": "https://chatra.io", + "companyId": "chatra" + }, + "chaturbate.com": { + "name": "chaturbate.com", + "categoryId": 3, + "url": null, + "companyId": null + }, + "chatwing": { + "name": "ChatWing", + "categoryId": 2, + "url": "http://chatwing.com/", + "companyId": "chatwing" + }, + "checkmystats": { + "name": "CheckMyStats", + "categoryId": 4, + "url": "http://checkmystats.com.au", + "companyId": "checkmystats" + }, + "chefkoch_de": { + "name": "chefkoch.de", + "categoryId": 8, + "url": "http://chefkoch.de/", + "companyId": null + }, + "chin_media": { + "name": "Chin Media", + "categoryId": 4, + "url": "http://www.chinmedia.vn/#", + "companyId": "chin_media" + }, + "chinesean": { + "name": "ChineseAN", + "categoryId": 4, + "url": "http://www.chinesean.com/", + "companyId": "chinesean" + }, + "chitika": { + "name": "Chitika", + "categoryId": 4, + "url": "http://chitika.com/", + "companyId": "chitika" + }, + "choicestream": { + "name": "ChoiceStream", + "categoryId": 4, + "url": "http://www.choicestream.com/", + "companyId": "choicestream" + }, + "chute": { + "name": "Chute", + "categoryId": 5, + "url": "https://www.getchute.com/", + "companyId": "esw_capital" + }, + "circit": { + "name": "circIT", + "categoryId": 6, + "url": "http://www.circit.de/", + "companyId": null + }, + "circulate": { + "name": "Circulate", + "categoryId": 6, + "url": "http://circulate.com/", + "companyId": "circulate" + }, + "city_spark": { + "name": "City Spark", + "categoryId": 4, + "url": "http://www.cityspark.com/", + "companyId": "city_spark" + }, + "cityads": { + "name": "CityAds", + "categoryId": 4, + "url": "http://cityads.ru/", + "companyId": "cityads" + }, + "ciuvo.com": { + "name": "ciuvo.com", + "categoryId": 12, + "url": "https://www.ciuvo.com/", + "companyId": null + }, + "civey_widgets": { + "name": "Civey Widgets", + "categoryId": 2, + "url": "https://civey.com/", + "companyId": "civey" + }, + "civicscience.com": { + "name": "CivicScience", + "categoryId": 6, + "url": "https://civicscience.com/", + "companyId": "civicscience" + }, + "ciwebgroup": { + "name": "CIWebGroup", + "categoryId": 4, + "url": "http://www.ciwebgroup.com/", + "companyId": "ciwebgroup" + }, + "clcknads.pro": { + "name": "clcknads.pro", + "categoryId": 3, + "url": null, + "companyId": null + }, + "clear_pier": { + "name": "ClearPier", + "categoryId": 4, + "url": "http://clearpier.com/", + "companyId": "clear_pier" + }, + "clearbit.com": { + "name": "Clearbit", + "categoryId": 6, + "url": "https://clearbit.com/", + "companyId": "clearbit" + }, + "clearsale": { + "name": "clearsale", + "categoryId": 4, + "url": "https://www.clear.sale/", + "companyId": null + }, + "clearstream.tv": { + "name": "Clearstream.TV", + "categoryId": 4, + "url": "http://clearstream.tv/", + "companyId": "clearstream.tv" + }, + "clerk.io": { + "name": "Clerk.io", + "categoryId": 4, + "url": "https://clerk.io/", + "companyId": "clerk.io" + }, + "clever_push": { + "name": "Clever Push", + "categoryId": 6, + "url": "https://clevertap.com/", + "companyId": "clever_push" + }, + "clever_tap": { + "name": "CleverTap", + "categoryId": 6, + "url": "https://clevertap.com/", + "companyId": "clever_tap" + }, + "cleversite": { + "name": "Cleversite", + "categoryId": 2, + "url": "http://cleversite.ru/", + "companyId": "cleversite" + }, + "click360": { + "name": "Click360", + "categoryId": 6, + "url": "https://www.click360.io/", + "companyId": "click360" + }, + "click_and_chat": { + "name": "Click and Chat", + "categoryId": 2, + "url": "http://www.clickandchat.com/", + "companyId": "clickandchat" + }, + "click_back": { + "name": "Click Back", + "categoryId": 4, + "url": "http://www.clickback.com/", + "companyId": "clickback" + }, + "clickaider": { + "name": "ClickAider", + "categoryId": 4, + "url": "http://clickaider.com/", + "companyId": "clickaider" + }, + "clickaine": { + "name": "Clickaine", + "categoryId": 4, + "url": "https://clickaine.com/", + "companyId": "clickaine", + "source": "AdGuard" + }, + "clickbank": { + "name": "ClickBank", + "categoryId": 4, + "url": "http://www.clickbank.com/", + "companyId": "clickbank" + }, + "clickbank_proads": { + "name": "ClickBank ProAds", + "categoryId": 4, + "url": "http://www.cbproads.com/", + "companyId": "clickbank_proads" + }, + "clickbooth": { + "name": "Clickbooth", + "categoryId": 4, + "url": "http://www.clickbooth.com/", + "companyId": "clickbooth" + }, + "clickcease": { + "name": "ClickCease", + "categoryId": 2, + "url": "https://www.clickcease.com/", + "companyId": "click_cease" + }, + "clickcertain": { + "name": "ClickCertain", + "categoryId": 4, + "url": "http://www.clickcertain.com", + "companyId": "clickcertain" + }, + "clickdesk": { + "name": "ClickDesk", + "categoryId": 2, + "url": "https://www.clickdesk.com/", + "companyId": "clickdesk" + }, + "clickdimensions": { + "name": "ClickDimensions", + "categoryId": 4, + "url": "http://www.clickdimensions.com/", + "companyId": "clickdimensions" + }, + "clickequations": { + "name": "ClickEquations", + "categoryId": 4, + "url": "http://www.clickequations.com/", + "companyId": "acquisio" + }, + "clickexperts": { + "name": "ClickExperts", + "categoryId": 4, + "url": "http://clickexperts.com/corp/index.php?lang=en", + "companyId": "clickexperts" + }, + "clickforce": { + "name": "ClickForce", + "categoryId": 4, + "url": "http://www.clickforce.com.tw/", + "companyId": "clickforce" + }, + "clickinc": { + "name": "ClickInc", + "categoryId": 4, + "url": "http://www.clickinc.com", + "companyId": "clickinc" + }, + "clickintext": { + "name": "ClickInText", + "categoryId": 4, + "url": "http://www.clickintext.com/", + "companyId": "clickintext" + }, + "clickky": { + "name": "Clickky", + "categoryId": 4, + "url": "http://www.clickky.biz/", + "companyId": "clickky" + }, + "clickmeter": { + "name": "ClickMeter", + "categoryId": 4, + "url": "http://www.clickmeter.com", + "companyId": "clickmeter" + }, + "clickonometrics": { + "name": "Clickonometrics", + "categoryId": 4, + "url": "http://clickonometrics.pl/", + "companyId": "clickonometrics" + }, + "clickpoint": { + "name": "Clickpoint", + "categoryId": 4, + "url": "http://clickpoint.com/", + "companyId": "clickpoint" + }, + "clickprotector": { + "name": "ClickProtector", + "categoryId": 6, + "url": "http://www.clickprotector.com/", + "companyId": "clickprotector" + }, + "clickreport": { + "name": "ClickReport", + "categoryId": 6, + "url": "http://clickreport.com/", + "companyId": "clickreport" + }, + "clicks_thru_networks": { + "name": "Clicks Thru Networks", + "categoryId": 4, + "url": "http://www.clicksthrunetwork.com/", + "companyId": "clicksthrunetwork" + }, + "clicksor": { + "name": "Clicksor", + "categoryId": 4, + "url": "http://clicksor.com/", + "companyId": "clicksor" + }, + "clicktale": { + "name": "ClickTale", + "categoryId": 6, + "url": "http://www.clicktale.com/", + "companyId": "clicktale" + }, + "clicktripz": { + "name": "ClickTripz", + "categoryId": 4, + "url": "https://www.clicktripz.com", + "companyId": "clicktripz" + }, + "clickwinks": { + "name": "Clickwinks", + "categoryId": 4, + "url": "http://www.clickwinks.com/", + "companyId": "clickwinks" + }, + "clicky": { + "name": "Clicky", + "categoryId": 6, + "url": "http://getclicky.com/", + "companyId": "clicky" + }, + "clickyab": { + "name": "Clickyab", + "categoryId": 4, + "url": "https://www.clickyab.com/", + "companyId": "clickyab" + }, + "clicmanager": { + "name": "ClicManager", + "categoryId": 4, + "url": "http://www.clicmanager.fr/", + "companyId": "clicmanager" + }, + "clip_syndicate": { + "name": "Clip Syndicate", + "categoryId": 4, + "url": "http://www.clipsyndicate.com/", + "companyId": "clip_syndicate" + }, + "clixgalore": { + "name": "clixGalore", + "categoryId": 4, + "url": "http://www.clixgalore.com/", + "companyId": "clixgalore" + }, + "clixmetrix": { + "name": "ClixMetrix", + "categoryId": 4, + "url": "http://www.clixmetrix.com/", + "companyId": "clixmedia" + }, + "clixsense": { + "name": "ClixSense", + "categoryId": 4, + "url": "http://www.clixsense.com/", + "companyId": "clixsense" + }, + "cloud-media.fr": { + "name": "CloudMedia", + "categoryId": 4, + "url": "https://cloudmedia.fr/", + "companyId": null + }, + "cloudflare": { + "name": "CloudFlare", + "categoryId": 9, + "url": "https://www.cloudflare.com/", + "companyId": "cloudflare" + }, + "cloudimage.io": { + "name": "Cloudimage.io", + "categoryId": 9, + "url": "https://www.cloudimage.io/en/home", + "companyId": "scaleflex_sas" + }, + "cloudinary": { + "name": "Cloudinary", + "categoryId": 9, + "url": "https://cloudinary.com/", + "companyId": null + }, + "clove_network": { + "name": "Clove Network", + "categoryId": 4, + "url": "http://www.clovenetwork.com/", + "companyId": "clove_network" + }, + "clustrmaps": { + "name": "ClustrMaps", + "categoryId": 4, + "url": "http://www.clustrmaps.com/", + "companyId": "clustrmaps" + }, + "cnbc": { + "name": "CNBC", + "categoryId": 8, + "url": "https://www.cnbc.com/", + "companyId": "nbcuniversal" + }, + "cnetcontent.com": { + "name": "Cnetcontent", + "categoryId": 8, + "url": "http://cnetcontent.com/", + "companyId": "cbs_interactive" + }, + "cnstats": { + "name": "CNStats", + "categoryId": 6, + "url": "http://cnstats.ru/", + "companyId": "cnstats" + }, + "cnzz.com": { + "name": "Umeng", + "categoryId": 6, + "url": "http://www.umeng.com/", + "companyId": "umeng" + }, + "coadvertise": { + "name": "COADVERTISE", + "categoryId": 4, + "url": "http://www.coadvertise.com/", + "companyId": "coadvertise" + }, + "cobrowser": { + "name": "CoBrowser", + "categoryId": 2, + "url": "https://www.cobrowser.net/", + "companyId": "cobrowser.net" + }, + "codeonclick.com": { + "name": "codeonclick.com", + "categoryId": 11, + "url": null, + "companyId": null + }, + "cogocast": { + "name": "CogoCast", + "categoryId": 4, + "url": "http://www.cogocast.com", + "companyId": "cogocast" + }, + "coin_have": { + "name": "Coin Have", + "categoryId": 4, + "url": "https://coin-have.com/", + "companyId": "coin_have" + }, + "coin_traffic": { + "name": "Coin Traffic", + "categoryId": 2, + "url": "https://cointraffic.io/", + "companyId": "coin_traffic" + }, + "coinhive": { + "name": "Coinhive", + "categoryId": 8, + "url": "https://coinhive.com/", + "companyId": "coinhive" + }, + "coinurl": { + "name": "CoinURL", + "categoryId": 4, + "url": "https://coinurl.com/", + "companyId": "coinurl" + }, + "coll1onf.com": { + "name": "coll1onf.com", + "categoryId": 11, + "url": null, + "companyId": null + }, + "coll2onf.com": { + "name": "coll2onf.com", + "categoryId": 11, + "url": null, + "companyId": null + }, + "collarity": { + "name": "Collarity", + "categoryId": 4, + "url": "http://www.collarity.com/", + "companyId": "collarity" + }, + "columbia_online": { + "name": "Columbia Online", + "categoryId": 4, + "url": "https://www.colombiaonline.com/", + "companyId": "columbia_online" + }, + "combotag": { + "name": "ComboTag", + "categoryId": 4, + "url": "https://www.combotag.com/", + "companyId": null + }, + "comcast_technology_solutions": { + "name": "Comcast Technology Solutions", + "categoryId": 0, + "url": "https://www.comcasttechnologysolutions.com/", + "companyId": "comcast_technology_solutions" + }, + "comm100": { + "name": "Comm100", + "categoryId": 2, + "url": "http://www.comm100.com/", + "companyId": "comm100" + }, + "commerce_sciences": { + "name": "Commerce Sciences", + "categoryId": 4, + "url": "http://commercesciences.com/", + "companyId": "commerce_sciences" + }, + "commercehub": { + "name": "CommerceHub", + "categoryId": 4, + "url": "http://www.mercent.com/", + "companyId": "commercehub" + }, + "commercialvalue.org": { + "name": "commercialvalue.org", + "categoryId": 11, + "url": null, + "companyId": null + }, + "commission_junction": { + "name": "CJ Affiliate", + "categoryId": 4, + "url": "http://www.cj.com/", + "companyId": "conversant" + }, + "communicator_corp": { + "name": "Communicator Corp", + "categoryId": 4, + "url": "http://www.communicatorcorp.com/", + "companyId": "communicator_corp" + }, + "communigator": { + "name": "CommuniGator", + "categoryId": 6, + "url": "http://www.wowanalytics.co.uk/", + "companyId": "communigator" + }, + "competexl": { + "name": "CompeteXL", + "categoryId": 6, + "url": "http://www.compete.com/help/s12", + "companyId": "wpp" + }, + "complex_media_network": { + "name": "Complex Media", + "categoryId": 4, + "url": "https://www.complex.com/", + "companyId": "verizon" + }, + "comprigo": { + "name": "comprigo", + "categoryId": 12, + "url": "https://www.comprigo.com/", + "companyId": null + }, + "comscore": { + "name": "ComScore, Inc.", + "categoryId": 6, + "url": "https://www.comscore.com/", + "companyId": "comscore" + }, + "conative.de": { + "name": "CoNative", + "categoryId": 4, + "url": "http://www.conative.de/", + "companyId": null + }, + "condenastdigital.com": { + "name": "Condé Nast Digital", + "categoryId": 8, + "url": "http://www.condenast.com/", + "companyId": "conde_nast" + }, + "conduit": { + "name": "Conduit", + "categoryId": 4, + "url": "http://www.conduit.com/", + "companyId": "conduit" + }, + "confirmit": { + "name": "Confirmit", + "categoryId": 4, + "url": "http://confirmit.com/", + "companyId": "confirmit" + }, + "congstar.de": { + "name": "congstar.de", + "categoryId": 4, + "url": null, + "companyId": null + }, + "connatix.com": { + "name": "Connatix", + "categoryId": 4, + "url": "https://connatix.com/", + "companyId": "connatix" + }, + "connectad": { + "name": "ConnectAd", + "categoryId": 4, + "url": "https://connectad.io/", + "companyId": "connectad" + }, + "connecto": { + "name": "Connecto", + "categoryId": 6, + "url": "http://www.connecto.io/", + "companyId": "connecto" + }, + "connexity": { + "name": "Connexity", + "categoryId": 4, + "url": "http://www.connexity.com", + "companyId": "shopzilla" + }, + "connextra": { + "name": "Connextra", + "categoryId": 4, + "url": "http://connextra.com/", + "companyId": "connextra" + }, + "constant_contact": { + "name": "Constant Contact", + "categoryId": 4, + "url": "http://www.constantcontact.com/index.jsp", + "companyId": "constant_contact" + }, + "consumable": { + "name": "Consumable", + "categoryId": 4, + "url": "http://consumable.com/index.html", + "companyId": "giftconnect" + }, + "contact_at_once": { + "name": "Contact At Once!", + "categoryId": 2, + "url": "http://www.contactatonce.com/", + "companyId": "contact_at_once!" + }, + "contact_impact": { + "name": "Contact Impact", + "categoryId": 4, + "url": "https://www.contactimpact.de/", + "companyId": "axel_springer" + }, + "contactme": { + "name": "ContactMe", + "categoryId": 4, + "url": "http://www.contactme.com", + "companyId": "contactme" + }, + "contaxe": { + "name": "Contaxe", + "categoryId": 5, + "url": "http://www.contaxe.com/", + "companyId": "contaxe" + }, + "content.ad": { + "name": "Content.ad", + "categoryId": 4, + "url": "https://www.content.ad/", + "companyId": "content.ad" + }, + "content_insights": { + "name": "Content Insights", + "categoryId": 6, + "url": "https://contentinsights.com/", + "companyId": "content_insights" + }, + "contentexchange.me": { + "name": "Content Exchange", + "categoryId": 6, + "url": "https://www.contentexchange.me/", + "companyId": "i.r.v." + }, + "contentful_gmbh": { + "name": "Contentful GmbH", + "categoryId": 9, + "url": "https://www.contentful.com/", + "companyId": "contentful_gmbh" + }, + "contentpass": { + "name": "ContentPass", + "categoryId": 6, + "url": "https://www.contentpass.de/", + "companyId": "contentpass" + }, + "contentsquare.net": { + "name": "ContentSquare", + "categoryId": 4, + "url": "https://www.contentsquare.com/", + "companyId": "content_square" + }, + "contentwrx": { + "name": "Contentwrx", + "categoryId": 6, + "url": "http://contentwrx.com/", + "companyId": "contentwrx" + }, + "context": { + "name": "C|ON|TEXT", + "categoryId": 4, + "url": "http://c-on-text.com", + "companyId": "c_on_text" + }, + "context.ad": { + "name": "Context.ad", + "categoryId": 4, + "url": "http://contextad.pl/", + "companyId": "context.ad" + }, + "continum_net": { + "name": "continum.net", + "categoryId": 10, + "url": "http://continum.net/", + "companyId": null + }, + "contribusource": { + "name": "Contribusource", + "categoryId": 4, + "url": "https://www.contribusource.com/", + "companyId": "contribusource" + }, + "convergetrack": { + "name": "ConvergeTrack", + "categoryId": 6, + "url": "http://www.convergedirect.com/technology/convergetrack.shtml", + "companyId": "convergedirect" + }, + "conversant": { + "name": "Conversant", + "categoryId": 4, + "url": "https://www.conversantmedia.eu/", + "companyId": "conversant" + }, + "conversio": { + "name": "CM Commerce", + "categoryId": 6, + "url": "https://cm-commerce.com/", + "companyId": "conversio" + }, + "conversion_logic": { + "name": "Conversion Logic", + "categoryId": 6, + "url": "http://www.conversionlogic.com/", + "companyId": "conversion_logic" + }, + "conversionruler": { + "name": "ConversionRuler", + "categoryId": 4, + "url": "http://www.conversionruler.com/", + "companyId": "market_ruler" + }, + "conversions_box": { + "name": "Conversions Box", + "categoryId": 7, + "url": "http://www.conversionsbox.com/", + "companyId": "conversions_box" + }, + "conversions_on_demand": { + "name": "Conversions On Demand", + "categoryId": 5, + "url": "https://www.conversionsondemand.com/", + "companyId": "conversions_on_demand" + }, + "conversive": { + "name": "Conversive", + "categoryId": 4, + "url": "http://www.conversive.nl/", + "companyId": "conversive" + }, + "convert": { + "name": "Convert", + "categoryId": 6, + "url": "https://www.convert.com/", + "companyId": "convert" + }, + "convertfox": { + "name": "ConvertFox", + "categoryId": 2, + "url": "https://convertfox.com/", + "companyId": "convertfox" + }, + "convertro": { + "name": "Convertro", + "categoryId": 4, + "url": "http://www.convertro.com/", + "companyId": "verizon" + }, + "conviva": { + "name": "Conviva", + "categoryId": 6, + "url": "http://www.conviva.com/", + "companyId": "conviva" + }, + "cookie_consent": { + "name": "Cookie Consent", + "categoryId": 5, + "url": "https://silktide.com/", + "companyId": "silktide" + }, + "cookie_script": { + "name": "Cookie Script", + "categoryId": 5, + "url": "https://cookie-script.com/", + "companyId": "cookie_script" + }, + "cookiebot": { + "name": "Cookiebot", + "categoryId": 5, + "url": "https://www.cookiebot.com/en/", + "companyId": "cybot" + }, + "cookieq": { + "name": "CookieQ", + "categoryId": 5, + "url": "http://cookieq.com/CookieQ", + "companyId": "baycloud" + }, + "cooliris": { + "name": "Cooliris", + "categoryId": 2, + "url": "http://www.cooliris.com", + "companyId": "cooliris" + }, + "copacet": { + "name": "Copacet", + "categoryId": 4, + "url": "http://copacet.com/", + "companyId": "copacet" + }, + "coreaudience": { + "name": "CoreAudience", + "categoryId": 4, + "url": "http://www.redaril.com/", + "companyId": "hearst" + }, + "coremotives": { + "name": "CoreMotives", + "categoryId": 4, + "url": "http://coremotives.com/", + "companyId": "coremotives" + }, + "coull": { + "name": "Coull", + "categoryId": 4, + "url": "http://coull.com/", + "companyId": "coull" + }, + "cpm_rocket": { + "name": "CPM Rocket", + "categoryId": 4, + "url": "http://www.cpmrocket.com/", + "companyId": "cpm_rocket" + }, + "cpmprofit": { + "name": "CPMProfit", + "categoryId": 4, + "url": "http://www.cpmprofit.com/", + "companyId": "cpmprofit" + }, + "cpmstar": { + "name": "CPMStar", + "categoryId": 4, + "url": "http://www.cpmstar.com", + "companyId": "cpmstar" + }, + "cpx.to": { + "name": "Captify", + "categoryId": 4, + "url": "https://www.captify.co.uk/", + "companyId": "captify" + }, + "cq_counter": { + "name": "CQ Counter", + "categoryId": 6, + "url": "http://www.cqcounter.com/", + "companyId": "cq_counter" + }, + "cqq5id8n.com": { + "name": "cqq5id8n.com", + "categoryId": 11, + "url": null, + "companyId": null + }, + "cquotient.com": { + "name": "CQuotient", + "categoryId": 6, + "url": "https://www.demandware.com/#cquotient", + "companyId": "salesforce" + }, + "craftkeys": { + "name": "CraftKeys", + "categoryId": 4, + "url": "http://craftkeys.com/", + "companyId": "craftkeys" + }, + "crakmedia_network": { + "name": "Crakmedia Network", + "categoryId": 4, + "url": "http://crakmedia.com/", + "companyId": "crakmedia_network" + }, + "crankyads": { + "name": "CrankyAds", + "categoryId": 4, + "url": "http://www.crankyads.com", + "companyId": "crankyads" + }, + "crashlytics": { + "name": "Crashlytics", + "categoryId": 101, + "url": "https://crashlytics.com/", + "companyId": "google", + "source": "AdGuard" + }, + "crazy_egg": { + "name": "Crazy Egg", + "categoryId": 6, + "url": "http://crazyegg.com/", + "companyId": "crazy_egg" + }, + "creafi": { + "name": "Creafi", + "categoryId": 4, + "url": "http://www.creafi.com/en/home/", + "companyId": "crazy4media" + }, + "createjs": { + "name": "CreateJS", + "categoryId": 9, + "url": "https://createjs.com/", + "companyId": null + }, + "creative_commons": { + "name": "Creative Commons", + "categoryId": 8, + "url": "https://creativecommons.org/", + "companyId": "creative_commons_corp" + }, + "crimsonhexagon_com": { + "name": "Brandwatch", + "categoryId": 6, + "url": "https://www.brandwatch.com/", + "companyId": "brandwatch" + }, + "crimtan": { + "name": "Crimtan", + "categoryId": 4, + "url": "http://www.crimtan.com/", + "companyId": "crimtan" + }, + "crisp": { + "name": "Crisp", + "categoryId": 2, + "url": "https://crisp.chat/", + "companyId": "crisp" + }, + "criteo": { + "name": "Criteo", + "categoryId": 4, + "url": "http://www.criteo.com/", + "companyId": "criteo" + }, + "crm4d": { + "name": "CRM4D", + "categoryId": 6, + "url": "https://crm4d.com/", + "companyId": "crm4d" + }, + "crossengage": { + "name": "CrossEngage", + "categoryId": 6, + "url": "https://www.crossengage.io/", + "companyId": "crossengage" + }, + "crosspixel": { + "name": "Cross Pixel", + "categoryId": 4, + "url": "http://crosspixel.net/", + "companyId": "cross_pixel" + }, + "crosssell.info": { + "name": "econda Cross Sell", + "categoryId": 4, + "url": "https://www.econda.de/en/solutions/personalization/cross-sell/", + "companyId": "econda" + }, + "crossss": { + "name": "Crossss", + "categoryId": 4, + "url": "http://crossss.ru/", + "companyId": "crossss" + }, + "crowd_ignite": { + "name": "Crowd Ignite", + "categoryId": 4, + "url": "http://get.crowdignite.com/", + "companyId": "gorilla_nation_media" + }, + "crowd_science": { + "name": "Crowd Science", + "categoryId": 4, + "url": "http://www.crowdscience.com/", + "companyId": "crowd_science" + }, + "crowdprocess": { + "name": "CrowdProcess", + "categoryId": 2, + "url": "https://crowdprocess.com", + "companyId": "crowdprocess" + }, + "crowdynews": { + "name": "Crowdynews", + "categoryId": 7, + "url": "http://www.crowdynews.com/", + "companyId": "crowdynews" + }, + "crownpeak": { + "name": "Crownpeak", + "categoryId": 5, + "url": "https://www.crownpeak.com/", + "companyId": "crownpeak" + }, + "cryptoloot_miner": { + "name": "CryptoLoot Miner", + "categoryId": 4, + "url": "https://crypto-loot.com/", + "companyId": "cryptoloot" + }, + "ctnetwork": { + "name": "CTnetwork", + "categoryId": 4, + "url": "http://ctnetwork.hu/", + "companyId": "ctnetwork" + }, + "ctrlshift": { + "name": "CtrlShift", + "categoryId": 4, + "url": "http://www.adzcentral.com/", + "companyId": "ctrlshift" + }, + "cubed": { + "name": "Cubed", + "categoryId": 6, + "url": "http://withcubed.com/", + "companyId": "cubed_attribution" + }, + "cuelinks": { + "name": "CueLinks", + "categoryId": 4, + "url": "http://www.cuelinks.com/", + "companyId": "cuelinks" + }, + "cup_interactive": { + "name": "Cup Interactive", + "categoryId": 4, + "url": "http://www.cupinteractive.com/", + "companyId": "cup_interactive" + }, + "curse.com": { + "name": "Curse", + "categoryId": 8, + "url": "https://www.curse.com/", + "companyId": "amazon_associates" + }, + "cursecdn.com": { + "name": "Curse CDN", + "categoryId": 9, + "url": "https://www.curse.com/", + "companyId": "amazon_associates" + }, + "customer.io": { + "name": "Customer.io", + "categoryId": 2, + "url": "http://www.customer.io/", + "companyId": "customer.io" + }, + "customerly": { + "name": "Customerly", + "categoryId": 2, + "url": "https://www.customerly.io/", + "companyId": "customerly" + }, + "cxense": { + "name": "cXense", + "categoryId": 4, + "url": "http://www.cxense.com/", + "companyId": "cxense" + }, + "cxo.name": { + "name": "Chip Analytics", + "categoryId": 6, + "url": "http://www.chip.de/", + "companyId": null + }, + "cyber_wing": { + "name": "Cyber Wing", + "categoryId": 4, + "url": "http://www.cyberwing.co.jp/", + "companyId": "cyberwing" + }, + "cybersource": { + "name": "CyberSource", + "categoryId": 6, + "url": "https://www.cybersource.com/en-gb.html", + "companyId": "visa" + }, + "cygnus": { + "name": "Cygnus", + "categoryId": 4, + "url": "http://www.cygnus.com/", + "companyId": "cygnus" + }, + "da-ads.com": { + "name": "da-ads.com", + "categoryId": 4, + "url": null, + "companyId": null + }, + "dailymail.co.uk": { + "name": "Daily Mail", + "categoryId": 8, + "url": "http://www.dailymail.co.uk/home/index.html", + "companyId": "dmg_media" + }, + "dailymotion": { + "name": "Dailymotion", + "categoryId": 8, + "url": "https://vivendi.com/", + "companyId": "vivendi" + }, + "dailymotion_advertising": { + "name": "Dailymotion Advertising", + "categoryId": 4, + "url": "http://advertising.dailymotion.com/", + "companyId": "vivendi" + }, + "daisycon": { + "name": "Daisycon", + "categoryId": 4, + "url": "http://www.daisycon.com", + "companyId": "daisycon" + }, + "dantrack.net": { + "name": "DANtrack", + "categoryId": 4, + "url": "http://media.dantrack.net/privacy/", + "companyId": "dentsu_aegis_network" + }, + "darwin_marketing": { + "name": "Darwin Marketing", + "categoryId": 4, + "url": "http://www.darwinmarketing.com/", + "companyId": "darwin_marketing" + }, + "dashboard_ad": { + "name": "Dashboard Ad", + "categoryId": 4, + "url": "http://www.dashboardad.com/", + "companyId": "premium_access" + }, + "datacaciques.com": { + "name": "DataCaciques", + "categoryId": 6, + "url": "http://www.datacaciques.com/", + "companyId": null + }, + "datacoral": { + "name": "Datacoral", + "categoryId": 4, + "url": "https://datacoral.com/", + "companyId": "datacoral" + }, + "datacrushers": { + "name": "Datacrushers", + "categoryId": 6, + "url": "https://www.datacrushers.com/", + "companyId": "datacrushers" + }, + "datadome": { + "name": "DataDome", + "categoryId": 6, + "url": "https://datadome.co/", + "companyId": "datadome" + }, + "datalicious_datacollector": { + "name": "Datalicious DataCollector", + "categoryId": 6, + "url": "http://www.datalicious.com/", + "companyId": "datalicious" + }, + "datalicious_supertag": { + "name": "Datalicious SuperTag", + "categoryId": 5, + "url": "http://www.datalicious.com/", + "companyId": "datalicious" + }, + "datalogix": { + "name": "Datalogix", + "categoryId": 4, + "url": "https://www.oracle.com/corporate/acquisitions/datalogix/", + "companyId": "oracle" + }, + "datamind.ru": { + "name": "DataMind", + "categoryId": 4, + "url": "http://datamind.ru/", + "companyId": "datamind" + }, + "datatables": { + "name": "DataTables", + "categoryId": 2, + "url": "https://datatables.net/", + "companyId": null + }, + "datawrkz": { + "name": "Datawrkz", + "categoryId": 4, + "url": "http://datawrkz.com/", + "companyId": "datawrkz" + }, + "dataxpand": { + "name": "Dataxpand", + "categoryId": 4, + "url": "http://dataxpand.com/", + "companyId": "dataxpand" + }, + "dataxu": { + "name": "DataXu", + "categoryId": 4, + "url": "http://www.dataxu.com/", + "companyId": "dataxu" + }, + "datds.net": { + "name": "datds.net", + "categoryId": 12, + "url": null, + "companyId": null + }, + "datonics": { + "name": "Datonics", + "categoryId": 4, + "url": "http://datonics.com/", + "companyId": "almondnet" + }, + "datran": { + "name": "Pulsepoint", + "categoryId": 4, + "url": "https://www.pulsepoint.com/", + "companyId": "pulsepoint_ad_exchange" + }, + "davebestdeals.com": { + "name": "davebestdeals.com", + "categoryId": 12, + "url": null, + "companyId": null + }, + "dawandastatic.com": { + "name": "Dawanda CDN", + "categoryId": 8, + "url": "https://dawanda.com/", + "companyId": null + }, + "dc_stormiq": { + "name": "DC StormIQ", + "categoryId": 4, + "url": "http://www.dc-storm.com/", + "companyId": "dc_storm" + }, + "dcbap.com": { + "name": "dcbap.com", + "categoryId": 12, + "url": null, + "companyId": null + }, + "dcmn.com": { + "name": "DCMN", + "categoryId": 4, + "url": "https://www.dcmn.com/", + "companyId": null + }, + "de_persgroep": { + "name": "De Persgroep", + "categoryId": 4, + "url": "https://www.persgroep.nl", + "companyId": "de_persgroep" + }, + "deadline_funnel": { + "name": "Deadline Funnel", + "categoryId": 6, + "url": "https://deadlinefunnel.com/", + "companyId": "deadline_funnel" + }, + "dealer.com": { + "name": "Dealer.com", + "categoryId": 6, + "url": "http://www.dealer.com/", + "companyId": "dealer.com" + }, + "decibel_insight": { + "name": "Decibel Insight", + "categoryId": 6, + "url": "https://www.decibelinsight.com/", + "companyId": "decibel_insight" + }, + "dedicated_media": { + "name": "Dedicated Media", + "categoryId": 4, + "url": "http://www.dedicatedmedia.com/", + "companyId": "dedicated_media" + }, + "deep.bi": { + "name": "Deep.BI", + "categoryId": 6, + "url": "http://www.deep.bi/#", + "companyId": "deep.bi" + }, + "deepintent.com": { + "name": "DeepIntent", + "categoryId": 4, + "url": "https://www.deepintent.com/", + "companyId": "deep_intent" + }, + "defpush.com": { + "name": "defpush.com", + "categoryId": 11, + "url": null, + "companyId": null + }, + "deichmann.com": { + "name": "deichmann.com", + "categoryId": 4, + "url": null, + "companyId": null + }, + "delacon": { + "name": "Delacon", + "categoryId": 6, + "url": "http://www.delacon.com.au/", + "companyId": "delacon" + }, + "delivr": { + "name": "Delivr", + "categoryId": 6, + "url": "http://www.percentmobile.com/", + "companyId": "delivr" + }, + "delta_projects": { + "name": "Delta Projects", + "categoryId": 4, + "url": "http://www.adaction.se/", + "companyId": "delta_projects" + }, + "deluxe": { + "name": "Deluxe", + "categoryId": 6, + "url": "https://ww.deluxe.com/", + "companyId": "deluxe" + }, + "delve_networks": { + "name": "Delve Networks", + "categoryId": 7, + "url": "http://www.delvenetworks.com/", + "companyId": "limelight_networks" + }, + "demandbase": { + "name": "Demandbase", + "categoryId": 4, + "url": "http://www.demandbase.com/", + "companyId": "demandbase" + }, + "demandmedia": { + "name": "DemandMedia", + "categoryId": 4, + "url": "http://www.demandmedia.com", + "companyId": "leaf_group" + }, + "deqwas": { + "name": "Deqwas", + "categoryId": 6, + "url": "http://www.deqwas.com/", + "companyId": "deqwas" + }, + "devatics": { + "name": "Devatics", + "categoryId": 2, + "url": "http://www.devatics.co.uk/", + "companyId": "devatics" + }, + "developer_media": { + "name": "Developer Media", + "categoryId": 4, + "url": "http://www.developermedia.com/", + "companyId": "developer_media" + }, + "deviantart.net": { + "name": "deviantart.net", + "categoryId": 8, + "url": null, + "companyId": null + }, + "dex_platform": { + "name": "DEX Platform", + "categoryId": 4, + "url": "http://blueadvertise.com/", + "companyId": "dex_platform" + }, + "dgm": { + "name": "dgm", + "categoryId": 4, + "url": "http://www.dgm-au.com/", + "companyId": "apd" + }, + "dialogtech": { + "name": "Dialogtech", + "categoryId": 6, + "url": "https://www.dialogtech.com/", + "companyId": "dialogtech" + }, + "dianomi": { + "name": "Dianomi", + "categoryId": 4, + "url": "http://www.dianomi.com/cms/", + "companyId": "dianomi" + }, + "didit_blizzard": { + "name": "Didit Blizzard", + "categoryId": 4, + "url": "http://www.didit.com/blizzard", + "companyId": "didit" + }, + "didit_maestro": { + "name": "Didit Maestro", + "categoryId": 4, + "url": "http://www.didit.com/maestro", + "companyId": "didit" + }, + "didomi": { + "name": "Didomi", + "categoryId": 5, + "url": "https://www.didomi.io/en/", + "companyId": "didomi" + }, + "digg_widget": { + "name": "Digg Widget", + "categoryId": 2, + "url": "http://digg.com/apple/Digg_Widget", + "companyId": "buysellads.com" + }, + "digicert_trust_seal": { + "name": "Digicert Trust Seal", + "categoryId": 5, + "url": "http://www.digicert.com/", + "companyId": "digicert" + }, + "digidip": { + "name": "Digidip", + "categoryId": 4, + "url": "http://www.digidip.net/", + "companyId": "digidip" + }, + "digiglitz": { + "name": "Digiglitz", + "categoryId": 6, + "url": "http://www.digiglitz.com/", + "companyId": "digiglitz" + }, + "digilant": { + "name": "Digilant", + "categoryId": 4, + "url": "https://www.digilant.com/", + "companyId": "digilant" + }, + "digioh": { + "name": "Digioh", + "categoryId": 4, + "url": "https://digioh.com/", + "companyId": "digioh", + "source": "AdGuard" + }, + "digital.gov": { + "name": "Digital.gov", + "categoryId": 6, + "url": "https://digital.gov/", + "companyId": "us_government" + }, + "digital_control_room": { + "name": "Digital Control Room", + "categoryId": 5, + "url": "http://www.cookiereports.com/", + "companyId": "digital_control_room" + }, + "digital_nomads": { + "name": "Digital Nomads", + "categoryId": 4, + "url": "http://dnomads.net/", + "companyId": null + }, + "digital_remedy": { + "name": "Digital Remedy", + "categoryId": 4, + "url": "https://www.digitalremedy.com/", + "companyId": "digital_remedy" + }, + "digital_river": { + "name": "Digital River", + "categoryId": 4, + "url": "http://corporate.digitalriver.com", + "companyId": "digital_river" + }, + "digital_window": { + "name": "Digital Window", + "categoryId": 4, + "url": "http://www.digitalwindow.com/", + "companyId": "axel_springer" + }, + "digiteka": { + "name": "Digiteka", + "categoryId": 4, + "url": "http://digiteka.com/", + "companyId": "digiteka" + }, + "digitrust": { + "name": "DigiTrust", + "categoryId": 4, + "url": "http://www.digitru.st/", + "companyId": "iab" + }, + "dihitt_badge": { + "name": "diHITT Badge", + "categoryId": 7, + "url": "http://www.dihitt.com.br/", + "companyId": "dihitt" + }, + "dimml": { + "name": "DimML", + "categoryId": 8, + "url": null, + "companyId": null + }, + "direct_keyword_link": { + "name": "Direct Keyword Link", + "categoryId": 4, + "url": "http://www.keywordsconnect.com/", + "companyId": "direct_keyword_link" + }, + "directadvert": { + "name": "Direct/ADVERT", + "categoryId": 4, + "url": "http://www.directadvert.ru/", + "companyId": "directadvert" + }, + "directrev": { + "name": "DirectREV", + "categoryId": 4, + "url": "http://www.directrev.com/", + "companyId": "directrev" + }, + "discord": { + "name": "Discord", + "categoryId": 2, + "url": "https://discordapp.com/", + "companyId": null + }, + "disneyplus": { + "name": "Disney+", + "categoryId": 0, + "url": "https://www.disneyplus.com/", + "companyId": "disney", + "source": "AdGuard" + }, + "disneystreaming": { + "name": "Disney Streaming", + "categoryId": 0, + "url": "https://press.disneyplus.com", + "companyId": "disney", + "source": "AdGuard" + }, + "display_block": { + "name": "display block", + "categoryId": 4, + "url": "https://www.displayblock.com/", + "companyId": "display_block" + }, + "disqus": { + "name": "Disqus", + "categoryId": 1, + "url": "https://disqus.com/", + "companyId": "zeta" + }, + "disqus_ads": { + "name": "Disqus Ads", + "categoryId": 4, + "url": "https://disqusads.com/", + "companyId": "zeta" + }, + "distil_tag": { + "name": "Distil Networks", + "categoryId": 5, + "url": "https://www.distilnetworks.com/", + "companyId": "distil_networks" + }, + "districtm.io": { + "name": "district m", + "categoryId": 4, + "url": "https://districtm.net/", + "companyId": "district_m" + }, + "distroscale": { + "name": "Distroscale", + "categoryId": 6, + "url": "http://www.distroscale.com/", + "companyId": "distroscale" + }, + "div.show": { + "name": "div.show", + "categoryId": 12, + "url": null, + "companyId": null + }, + "diva": { + "name": "DiVa", + "categoryId": 6, + "url": "http://www.vertriebsassistent.de/", + "companyId": "diva" + }, + "divvit": { + "name": "Divvit", + "categoryId": 6, + "url": "https://www.divvit.com/", + "companyId": "divvit" + }, + "dm2": { + "name": "DM2", + "categoryId": 4, + "url": "http://digitalmediamanagement.com/", + "companyId": "digital_media_management" + }, + "dmg_media": { + "name": "DMG Media", + "categoryId": 8, + "url": "https://www.dmgmedia.co.uk/", + "companyId": "dmgt" + }, + "dmm": { + "name": "DMM", + "categoryId": 3, + "url": "http://www.dmm.co.jp", + "companyId": "dmm.r18" + }, + "dmwd": { + "name": "DMWD", + "categoryId": 8, + "url": null, + "companyId": null + }, + "dockvine": { + "name": "dockvine", + "categoryId": 2, + "url": "https://www.dockvine.com", + "companyId": "dockvine" + }, + "docler": { + "name": "Docler", + "categoryId": 0, + "url": "https://www.doclerholding.com/en/about/companies/33/", + "companyId": "docler_ip" + }, + "dogannet": { + "name": "Dogannet", + "categoryId": 4, + "url": "http://s.dogannet.tv/", + "companyId": "dogannet" + }, + "domainglass": { + "name": "Domain Glass", + "categoryId": 8, + "url": "https://domain.glass/", + "companyId": "domainglass", + "source": "AdGuard" + }, + "domodomain": { + "name": "DomoDomain", + "categoryId": 6, + "url": "http://www.domodomain.com/", + "companyId": "intelligencefocus" + }, + "donationtools": { + "name": "iRobinHood", + "categoryId": 12, + "url": "http://www.irobinhood.org", + "companyId": null + }, + "doofinder.com": { + "name": "doofinder", + "categoryId": 2, + "url": "https://www.doofinder.com/", + "companyId": null + }, + "doorbell.io": { + "name": "Doorbell.io", + "categoryId": 5, + "url": "https://doorbell.io/", + "companyId": "doorbell.io" + }, + "dotandmedia": { + "name": "DotAndMedia", + "categoryId": 4, + "url": "http://www.dotandmedia.com", + "companyId": "dotandmedia" + }, + "dotmailer": { + "name": "dotMailer", + "categoryId": 2, + "url": "http://www.dotdigitalgroup.com/", + "companyId": "dotdigital_group" + }, + "dotmetrics.net": { + "name": "Dotmetrics", + "categoryId": 6, + "url": "https://dotmetrics.net/", + "companyId": null + }, + "dotomi": { + "name": "Dotomi", + "categoryId": 4, + "url": "http://www.dotomi.com/", + "companyId": "conversant" + }, + "double.net": { + "name": "Double.net", + "categoryId": 4, + "url": "http://double.net/en/", + "companyId": "double.net" + }, + "doubleclick": { + "name": "DoubleClick", + "categoryId": 4, + "url": "http://www.doubleclick.com", + "companyId": "google" + }, + "doubleclick_ad_buyer": { + "name": "DoubleClick Ad Exchange-Buyer", + "categoryId": 4, + "url": "http://www.google.com", + "companyId": "google" + }, + "doubleclick_bid_manager": { + "name": "DoubleClick Bid Manager", + "categoryId": 4, + "url": "http://www.invitemedia.com", + "companyId": "google" + }, + "doubleclick_floodlight": { + "name": "DoubleClick Floodlight", + "categoryId": 4, + "url": "http://www.google.com/support/dfa/partner/bin/topic.py?topic=23943", + "companyId": "google" + }, + "doubleclick_spotlight": { + "name": "DoubleClick Spotlight", + "categoryId": 4, + "url": "http://www.doubleclick.com/products/richmedia", + "companyId": "google" + }, + "doubleclick_video_stats": { + "name": "Doubleclick Video Stats", + "categoryId": 4, + "url": "http://www.google.com", + "companyId": "google" + }, + "doublepimp": { + "name": "DoublePimp", + "categoryId": 3, + "url": "http://www.doublepimp.com/", + "companyId": "doublepimp" + }, + "doubleverify": { + "name": "DoubleVerify", + "categoryId": 4, + "url": "http://www.doubleverify.com/", + "companyId": "doubleverify" + }, + "dratio": { + "name": "Dratio", + "categoryId": 6, + "url": "http://www.dratio.com/", + "companyId": "dratio" + }, + "drawbridge": { + "name": "Drawbridge", + "categoryId": 4, + "url": "http://www.drawbrid.ge/", + "companyId": "drawbridge" + }, + "dreame_tech": { + "name": "Dreame Technology", + "categoryId": 8, + "url": "https://www.dreame.tech/", + "companyId": "xiaomi", + "source": "AdGuard" + }, + "dreamlab.pl": { + "name": "DreamLab.pl", + "categoryId": 4, + "url": "https://www.dreamlab.pl/", + "companyId": "onet.pl" + }, + "drift": { + "name": "Drift", + "categoryId": 2, + "url": "https://www.drift.com/", + "companyId": "drift" + }, + "drip": { + "name": "Drip", + "categoryId": 2, + "url": "https://www.getdrip.com", + "companyId": "drip" + }, + "dropbox.com": { + "name": "Dropbox", + "categoryId": 2, + "url": "https://www.dropbox.com/", + "companyId": null + }, + "dsnr_media_group": { + "name": "DSNR Media Group", + "categoryId": 4, + "url": "http://www.dsnrmg.com/", + "companyId": "dsnr_media_group" + }, + "dsp_rambler": { + "name": "Rambler DSP", + "categoryId": 4, + "url": "http://dsp.rambler.ru/", + "companyId": "rambler" + }, + "dstillery": { + "name": "Dstillery", + "categoryId": 4, + "url": "https://dstillery.com/", + "companyId": "dstillery" + }, + "dtscout.com": { + "name": "DTScout", + "categoryId": 4, + "url": "http://www.dtscout.com/", + "companyId": "dtscout" + }, + "dudamobile": { + "name": "DudaMobile", + "categoryId": 4, + "url": "https://www.dudamobile.com/", + "companyId": "dudamobile" + }, + "dun_and_bradstreet": { + "name": "Dun and Bradstreet", + "categoryId": 6, + "url": "http://www.dnb.com/#", + "companyId": "dun_&_bradstreet" + }, + "dwstat.cn": { + "name": "dwstat.cn", + "categoryId": 6, + "url": "http://www.dwstat.cn/", + "companyId": "dwstat" + }, + "dynad": { + "name": "DynAd", + "categoryId": 4, + "url": "http://dynad.net/", + "companyId": "dynad" + }, + "dynadmic": { + "name": "DynAdmic", + "categoryId": 4, + "url": null, + "companyId": null + }, + "dynamic_1001_gmbh": { + "name": "Dynamic 1001 GmbH", + "categoryId": 8, + "url": null, + "companyId": null + }, + "dynamic_logic": { + "name": "Dynamic Logic", + "categoryId": 4, + "url": "http://www.dynamiclogic.com/", + "companyId": "millward_brown" + }, + "dynamic_yield": { + "name": "Dynamic Yield", + "categoryId": 5, + "url": "https://www.dynamicyield.com/", + "companyId": "dynamic_yield" + }, + "dynamic_yield_analytics": { + "name": "Dynamic Yield Analytics", + "categoryId": 6, + "url": "http://www.dynamicyield.com/", + "companyId": "dynamic_yield" + }, + "dynata": { + "name": "Dynata", + "categoryId": 4, + "url": "http://hottraffic.nl/en", + "companyId": "dynata" + }, + "dynatrace.com": { + "name": "Dynatrace", + "categoryId": 6, + "url": "https://www.dynatrace.com/", + "companyId": "thoma_bravo" + }, + "dyncdn.me": { + "name": "dyncdn.me", + "categoryId": 11, + "url": null, + "companyId": null + }, + "e-planning": { + "name": "e-planning", + "categoryId": 4, + "url": "http://www.e-planning.net/", + "companyId": "e-planning" + }, + "eadv": { + "name": "eADV", + "categoryId": 4, + "url": "http://eadv.it/", + "companyId": "eadv" + }, + "eanalyzer.de": { + "name": "eanalyzer.de", + "categoryId": 11, + "url": null, + "companyId": null + }, + "early_birds": { + "name": "Early Birds", + "categoryId": 4, + "url": "http://www.early-birds.fr/", + "companyId": "early_birds" + }, + "earnify": { + "name": "Earnify", + "categoryId": 4, + "url": "https://www.earnify.com/", + "companyId": "earnify" + }, + "earnify_tracker": { + "name": "Earnify Tracker", + "categoryId": 6, + "url": "https://www.earnify.com/", + "companyId": "earnify" + }, + "easyads": { + "name": "EasyAds", + "categoryId": 4, + "url": "https://easyads.bg/", + "companyId": "easyads" + }, + "easylist_club": { + "name": "easylist.club", + "categoryId": 11, + "url": null, + "companyId": null + }, + "ebay": { + "name": "eBay Stats", + "categoryId": 4, + "url": "https://partnernetwork.ebay.com/", + "companyId": "ebay_partner_network" + }, + "ebay_korea": { + "name": "eBay Korea", + "categoryId": 4, + "url": "http://www.ebay.com/", + "companyId": "ebay" + }, + "ebay_partner_network": { + "name": "eBay Partner Network", + "categoryId": 4, + "url": "https://www.ebaypartnernetwork.com/files/hub/en-US/index.html", + "companyId": "ebay_partner_network" + }, + "ebuzzing": { + "name": "eBuzzing", + "categoryId": 4, + "url": "http://www.ebuzzing.com/", + "companyId": "ebuzzing" + }, + "echo": { + "name": "Echo", + "categoryId": 4, + "url": "http://js-kit.com/", + "companyId": "echo" + }, + "eclick": { + "name": "eClick", + "categoryId": 4, + "url": "http://eclick.vn", + "companyId": "eclick" + }, + "econda": { + "name": "Econda", + "categoryId": 6, + "url": "http://www.econda.de/", + "companyId": "econda" + }, + "ecotag": { + "name": "ecotag", + "categoryId": 4, + "url": "http://www.eco-tag.jp/", + "companyId": "ecotag" + }, + "edgio": { + "name": "Edgio", + "categoryId": 9, + "url": "https://edg.io/", + "companyId": "edgio", + "source": "AdGuard" + }, + "edigitalresearch": { + "name": "eDigitalResearch", + "categoryId": 4, + "url": "http://www.edigitalresearch.com/", + "companyId": "edigitalresearch" + }, + "effective_measure": { + "name": "Effective Measure", + "categoryId": 4, + "url": "http://www.effectivemeasure.com/", + "companyId": "effective_measure" + }, + "effiliation": { + "name": "Effiliation", + "categoryId": 4, + "url": "http://www.effiliation.com/", + "companyId": "effiliation" + }, + "egain": { + "name": "eGain", + "categoryId": 2, + "url": "http://www.egain.com/", + "companyId": "egain" + }, + "egain_analytics": { + "name": "eGain Analytics", + "categoryId": 6, + "url": "http://www.egain.com/", + "companyId": "egain" + }, + "ehi-siegel_de": { + "name": "ehi-siegel.de", + "categoryId": 2, + "url": "http://ehi-siegel.de/", + "companyId": null + }, + "ekmpinpoint": { + "name": "ekmPinPoint", + "categoryId": 6, + "url": "http://ekmpinpoint.com/", + "companyId": "ekmpinpoint" + }, + "ekomi": { + "name": "eKomi", + "categoryId": 1, + "url": "http://www.ekomi.co.uk", + "companyId": "ekomi" + }, + "elastic_ad": { + "name": "Elastic Ad", + "categoryId": 4, + "url": "http://www.elasticad.com", + "companyId": "elastic_ad" + }, + "elastic_beanstalk": { + "name": "Elastic Beanstalk", + "categoryId": 6, + "url": "http://www.amazon.com/", + "companyId": "amazon_associates" + }, + "electronic_arts": { + "name": "Electronic Arts", + "categoryId": 2, + "url": "https://www.ea.com/", + "companyId": "electronic_arts", + "source": "AdGuard" + }, + "element": { + "name": "Element", + "categoryId": 7, + "url": "https://element.io/", + "companyId": "element", + "source": "AdGuard" + }, + "elicit": { + "name": "elicit", + "categoryId": 4, + "url": "http://www.elicitsearch.com/", + "companyId": "elicit" + }, + "eloqua": { + "name": "Eloqua", + "categoryId": 4, + "url": "http://www.eloqua.com/", + "companyId": "oracle" + }, + "eluxer_net": { + "name": "eluxer.net", + "categoryId": 12, + "url": null, + "companyId": null + }, + "email_aptitude": { + "name": "Email Aptitude", + "categoryId": 4, + "url": "http://www.emailaptitude.com/", + "companyId": "email_aptitude" + }, + "email_attitude": { + "name": "Email Attitude", + "categoryId": 4, + "url": "http://us.email-attitude.com/Default.aspx", + "companyId": "1000mercis" + }, + "emarketeer": { + "name": "emarketeer", + "categoryId": 4, + "url": "http://www.emarketeer.com/", + "companyId": "emarketeer" + }, + "embed.ly": { + "name": "Embedly", + "categoryId": 6, + "url": "http://embed.ly/", + "companyId": "medium" + }, + "emediate": { + "name": "Emediate", + "categoryId": 4, + "url": "http://www.emediate.biz/", + "companyId": "cxense" + }, + "emetriq": { + "name": "emetriq", + "categoryId": 4, + "url": "http://www.emetriq.com", + "companyId": "emetriq" + }, + "emma": { + "name": "Emma", + "categoryId": 4, + "url": "http://myemma.com/", + "companyId": "emma" + }, + "emnet": { + "name": "eMnet", + "categoryId": 4, + "url": "http://www.emnet.co.kr", + "companyId": "emnet" + }, + "empathy": { + "name": "Empathy", + "categoryId": 4, + "url": "http://www.colbenson.com", + "companyId": "empathy" + }, + "emsmobile.de": { + "name": "EMS Mobile", + "categoryId": 8, + "url": "http://www.emsmobile.com/", + "companyId": null + }, + "encore_metrics": { + "name": "Encore Metrics", + "categoryId": 4, + "url": "http://sitecompass.com", + "companyId": "flashtalking" + }, + "enecto_analytics": { + "name": "Enecto Analytics", + "categoryId": 6, + "url": "http://www.enecto.com/en/", + "companyId": "enecto" + }, + "engage_sciences": { + "name": "Engage Sciences", + "categoryId": 6, + "url": "http://www.engagesciences.com/", + "companyId": "engagesciences" + }, + "engageya_widget": { + "name": "Engageya Widget", + "categoryId": 4, + "url": "http://www.engageya.com/home/", + "companyId": "engageya" + }, + "engagio": { + "name": "Engagio", + "categoryId": 6, + "url": "https://www.engagio.com/", + "companyId": "engagio" + }, + "engineseeker": { + "name": "EngineSeeker", + "categoryId": 4, + "url": "http://www.engineseeker.com/", + "companyId": "engineseeker" + }, + "enquisite": { + "name": "Enquisite", + "categoryId": 4, + "url": "http://www.enquisite.com/", + "companyId": "inboundwriter" + }, + "enreach": { + "name": "Enreach", + "categoryId": 4, + "url": "https://enreach.me/", + "companyId": "enreach" + }, + "ensemble": { + "name": "Ensemble", + "categoryId": 4, + "url": "http://www.tumri.com", + "companyId": "ensemble" + }, + "ensighten": { + "name": "Ensighten", + "categoryId": 5, + "url": "http://www.ensighten.com", + "companyId": "ensighten" + }, + "envolve": { + "name": "Envolve", + "categoryId": 2, + "url": "https://www.envolve.com/", + "companyId": "envolve" + }, + "envybox": { + "name": "Envybox", + "categoryId": 2, + "url": "https://envybox.io/", + "companyId": "envybox" + }, + "eperflex": { + "name": "Eperflex", + "categoryId": 4, + "url": "https://eperflex.com/", + "companyId": "ividence" + }, + "epic_game_ads": { + "name": "Epic Game Ads", + "categoryId": 4, + "url": "http://www.epicgameads.com/", + "companyId": "epic_game_ads" + }, + "epic_marketplace": { + "name": "Epic Marketplace", + "categoryId": 4, + "url": "http://www.trafficmarketplace.com/", + "companyId": "epic_advertising" + }, + "epom": { + "name": "Epom", + "categoryId": 4, + "url": "http://epom.com/", + "companyId": "epom" + }, + "epoq": { + "name": "epoq", + "categoryId": 2, + "url": "http://www.epoq.de/", + "companyId": "epoq" + }, + "eprice": { + "name": "ePrice", + "categoryId": 4, + "url": "http://banzaiadv.it/", + "companyId": "eprice" + }, + "eproof": { + "name": "eProof", + "categoryId": 6, + "url": "http://www.eproof.com/", + "companyId": "eproof" + }, + "eqs_group": { + "name": "EQS Group", + "categoryId": 6, + "url": "https://www.eqs.com/", + "companyId": "eqs_group" + }, + "eqworks": { + "name": "EQWorks", + "categoryId": 4, + "url": "http://eqads.com", + "companyId": "eq_works" + }, + "eroadvertising": { + "name": "EroAdvertising", + "categoryId": 3, + "url": "http://www.ero-advertising.com/", + "companyId": "ero_advertising" + }, + "errorception": { + "name": "Errorception", + "categoryId": 6, + "url": "http://errorception.com/", + "companyId": "errorception" + }, + "eshopcomp.com": { + "name": "eshopcomp.com", + "categoryId": 12, + "url": null, + "companyId": null + }, + "espn_cdn": { + "name": "ESPN CDN", + "categoryId": 9, + "url": "http://www.espn.com/", + "companyId": "disney" + }, + "esprit.de": { + "name": "esprit.de", + "categoryId": 8, + "url": null, + "companyId": null + }, + "estat": { + "name": "eStat", + "categoryId": 6, + "url": "http://www.mediametrie-estat.com/", + "companyId": "mediametrie" + }, + "etag": { + "name": "etag", + "categoryId": 4, + "url": "http://etagdigital.com.br/", + "companyId": "etag" + }, + "etahub.com": { + "name": "etahub.com", + "categoryId": 11, + "url": null, + "companyId": null + }, + "etarget": { + "name": "Etarget", + "categoryId": 4, + "url": "http://etargetnet.com/", + "companyId": "etarget" + }, + "ethnio": { + "name": "Ethnio", + "categoryId": 4, + "url": "http://ethn.io/", + "companyId": "ethnio" + }, + "etology": { + "name": "Etology", + "categoryId": 4, + "url": "http://www.etology.com", + "companyId": "etology" + }, + "etp": { + "name": "ETP", + "categoryId": 6, + "url": "https://www.etpgroup.com", + "companyId": "etp" + }, + "etracker": { + "name": "etracker", + "categoryId": 6, + "url": "http://www.etracker.com/en/", + "companyId": "etracker_gmbh" + }, + "etrigue": { + "name": "eTrigue", + "categoryId": 4, + "url": "http://www.etrigue.com/", + "companyId": "etrigue" + }, + "etsystatic": { + "name": "Etsy CDN", + "categoryId": 9, + "url": "https://www.etsy.com/", + "companyId": "etsy" + }, + "eulerian": { + "name": "Eulerian", + "categoryId": 6, + "url": "https://www.eulerian.com/", + "companyId": "eulerian" + }, + "euroads": { + "name": "Euroads", + "categoryId": 4, + "url": "http://euroads.com/en/", + "companyId": "euroads" + }, + "europecash": { + "name": "Europecash", + "categoryId": 4, + "url": "https://www.europacash.com/", + "companyId": "europacash" + }, + "euroweb_counter": { + "name": "Euroweb Counter", + "categoryId": 4, + "url": "http://www.euroweb.de/", + "companyId": "euroweb" + }, + "evergage.com": { + "name": "Evergage", + "categoryId": 2, + "url": "https://www.evergage.com", + "companyId": "evergage" + }, + "everstring": { + "name": "Everstring", + "categoryId": 6, + "url": "http://www.everstring.com/", + "companyId": "everstring" + }, + "everyday_health": { + "name": "Everyday Health", + "categoryId": 7, + "url": "http://www.everydayhealth.com/", + "companyId": "everyday_health" + }, + "evidon": { + "name": "Evidon", + "categoryId": 5, + "url": "https://www.evidon.com/", + "companyId": "crownpeak" + }, + "evisit_analyst": { + "name": "eVisit Analyst", + "categoryId": 4, + "url": "http://www.evisitanalyst.com", + "companyId": "evisit_analyst" + }, + "exact_drive": { + "name": "Exact Drive", + "categoryId": 4, + "url": "http://www.exactdrive.com/", + "companyId": "exact_drive" + }, + "exactag": { + "name": "Exactag", + "categoryId": 6, + "url": "http://www.exactag.com", + "companyId": "exactag" + }, + "exelate": { + "name": "eXelate", + "categoryId": 4, + "url": "http://www.exelate.com/", + "companyId": "nielsen" + }, + "exitjunction": { + "name": "ExitJunction", + "categoryId": 4, + "url": "https://secure.exitjunction.com", + "companyId": "exitjunction" + }, + "exoclick": { + "name": "ExoClick", + "categoryId": 3, + "url": "http://exoclick.com/", + "companyId": "exoclick" + }, + "exoticads.com": { + "name": "exoticads", + "categoryId": 3, + "url": "https://exoticads.com/welcome/", + "companyId": null + }, + "expedia": { + "name": "Expedia", + "categoryId": 8, + "url": "https://www.trvl-px.com/", + "companyId": "iac_apps" + }, + "experian": { + "name": "Experian", + "categoryId": 8, + "url": "https://www.experian.com/", + "companyId": "experian_inc" + }, + "experian_marketing_services": { + "name": "Experian Marketing Services", + "categoryId": 4, + "url": "http://www.experian.com/", + "companyId": "experian_inc" + }, + "expo-max": { + "name": "expo-MAX", + "categoryId": 4, + "url": "http://expo-max.com/", + "companyId": "expo-max" + }, + "expose_box": { + "name": "Expose Box", + "categoryId": 4, + "url": "http://www.exposebox.com/", + "companyId": "expose_box" + }, + "expose_box_widgets": { + "name": "Expose Box Widgets", + "categoryId": 2, + "url": "http://www.exposebox.com/", + "companyId": "expose_box" + }, + "express.co.uk": { + "name": "express.co.uk", + "categoryId": 8, + "url": "https://www.express.co.uk/", + "companyId": null + }, + "expressvpn": { + "name": "ExpressVPN", + "categoryId": 2, + "url": "https://www.expressvpn.com/", + "companyId": "expressvpn" + }, + "extreme_tracker": { + "name": "eXTReMe Tracker", + "categoryId": 6, + "url": "http://www.extremetracking.com/", + "companyId": "extreme_digital" + }, + "eye_newton": { + "name": "Eye Newton", + "categoryId": 2, + "url": "http://eyenewton.ru/", + "companyId": "eyenewton" + }, + "eyeota": { + "name": "Eyeota", + "categoryId": 4, + "url": "http://www.eyeota.com/", + "companyId": "eyeota" + }, + "eyereturnmarketing": { + "name": "Eyereturn Marketing", + "categoryId": 4, + "url": "https://eyereturnmarketing.com/", + "companyId": "torstar_corp" + }, + "eyeview": { + "name": "Eyeview", + "categoryId": 4, + "url": "http://www.eyeviewdigital.com/", + "companyId": "eyeview" + }, + "ezakus": { + "name": "Ezakus", + "categoryId": 4, + "url": "http://www.ezakus.com/", + "companyId": "np6" + }, + "f11-ads.com": { + "name": "Factor Eleven", + "categoryId": 4, + "url": null, + "companyId": null + }, + "facebook": { + "name": "Facebook", + "categoryId": 4, + "url": "https://www.facebook.com", + "companyId": "meta", + "source": "AdGuard" + }, + "facebook_audience": { + "name": "Facebook Audience Network", + "categoryId": 4, + "url": "https://www.facebook.com/business/products/audience-network", + "companyId": "meta", + "source": "AdGuard" + }, + "facebook_beacon": { + "name": "Facebook Beacon", + "categoryId": 7, + "url": "http://www.facebook.com/beacon/faq.php", + "companyId": "meta", + "source": "AdGuard" + }, + "facebook_cdn": { + "name": "Facebook CDN", + "categoryId": 9, + "url": "https://www.facebook.com", + "companyId": "meta", + "source": "AdGuard" + }, + "facebook_connect": { + "name": "Facebook Connect", + "categoryId": 6, + "url": "https://developers.facebook.com/connect.php", + "companyId": "meta", + "source": "AdGuard" + }, + "facebook_conversion_tracking": { + "name": "Facebook Conversion Tracking", + "categoryId": 4, + "url": "http://www.facebook.com/", + "companyId": "meta", + "source": "AdGuard" + }, + "facebook_custom_audience": { + "name": "Facebook Custom Audience", + "categoryId": 4, + "url": "https://www.facebook.com", + "companyId": "meta", + "source": "AdGuard" + }, + "facebook_graph": { + "name": "Facebook Social Graph", + "categoryId": 7, + "url": "https://developers.facebook.com/docs/reference/api/", + "companyId": "meta", + "source": "AdGuard" + }, + "facebook_impressions": { + "name": "Facebook Impressions", + "categoryId": 4, + "url": "https://www.facebook.com/", + "companyId": "meta", + "source": "AdGuard" + }, + "facebook_social_plugins": { + "name": "Facebook Social Plugins", + "categoryId": 7, + "url": "https://developers.facebook.com/plugins", + "companyId": "meta", + "source": "AdGuard" + }, + "facetz.dca": { + "name": "Facetz.DCA", + "categoryId": 4, + "url": "http://facetz.net", + "companyId": "dca" + }, + "facilitate_digital": { + "name": "Facilitate Digital", + "categoryId": 4, + "url": "http://www.facilitatedigital.com/", + "companyId": "adslot" + }, + "faktor.io": { + "name": "faktor.io", + "categoryId": 6, + "url": "https://faktor.io/", + "companyId": "faktor.io" + }, + "fancy_widget": { + "name": "Fancy Widget", + "categoryId": 7, + "url": "http://www.thefancy.com/", + "companyId": "fancy" + }, + "fanplayr": { + "name": "Fanplayr", + "categoryId": 4, + "url": "http://www.fanplayr.com/", + "companyId": "fanplayr" + }, + "fap.to": { + "name": "Imagefap", + "categoryId": 8, + "url": null, + "companyId": null + }, + "farlight_pte_ltd": { + "name": "Farlight Pte Ltd.", + "categoryId": 8, + "url": "https://farlightgames.com/", + "companyId": "farlight", + "source": "AdGuard" + }, + "fastly_insights": { + "name": "Fastly Insights", + "categoryId": 6, + "url": "https://insights.fastlylabs.com/", + "companyId": "fastly" + }, + "fastlylb.net": { + "name": "Fastly", + "categoryId": 9, + "url": "https://www.fastly.com/", + "companyId": "fastly" + }, + "fastpic.ru": { + "name": "FastPic", + "categoryId": 10, + "url": "http://fastpic.ru/", + "companyId": "fastpic" + }, + "federated_media": { + "name": "Federated Media", + "categoryId": 4, + "url": "http://www.federatedmedia.net/", + "companyId": "hyfn" + }, + "feedbackify": { + "name": "Feedbackify", + "categoryId": 2, + "url": "http://www.feedbackify.com/", + "companyId": "feedbackify" + }, + "feedburner.com": { + "name": "FeedBurner", + "categoryId": 4, + "url": "https://feedburner.com", + "companyId": "google" + }, + "feedify": { + "name": "Feedify", + "categoryId": 7, + "url": "http://feedify.de/", + "companyId": "feedify" + }, + "feedjit": { + "name": "Feedjit", + "categoryId": 4, + "url": "http://feedjit.com/", + "companyId": "feedjit" + }, + "feedperfect": { + "name": "FeedPerfect", + "categoryId": 4, + "url": "http://www.feedperfect.com/", + "companyId": "feedperfect" + }, + "feedsportal": { + "name": "Feedsportal", + "categoryId": 4, + "url": "http://www.mediafed.com/", + "companyId": "mediafed" + }, + "feefo": { + "name": "Feefo", + "categoryId": 2, + "url": "http://www.feefo.com/web/en/us/", + "companyId": "feefo" + }, + "fidelity_media": { + "name": "Fidelity Media", + "categoryId": 4, + "url": "http://fidelity-media.com/", + "companyId": "fidelity_media" + }, + "fiksu": { + "name": "Fiksu", + "categoryId": 4, + "url": "https://fiksu.com/", + "companyId": "noosphere" + }, + "filament.io": { + "name": "Filament.io", + "categoryId": 4, + "url": "http://sharethis.com/", + "companyId": "sharethis" + }, + "fileserve": { + "name": "FileServe", + "categoryId": 10, + "url": "http://fileserve.com/", + "companyId": "fileserve" + }, + "financeads": { + "name": "FinanceADs", + "categoryId": 4, + "url": "https://www.financeads.net/", + "companyId": "financeads_gmbh_&_co._kg" + }, + "financial_content": { + "name": "Financial Content", + "categoryId": 4, + "url": "http://www.financialcontent.com", + "companyId": "financial_content" + }, + "findizer.fr": { + "name": "Findizer", + "categoryId": 8, + "url": "http://www.findizer.fr/", + "companyId": null + }, + "findologic.com": { + "name": "Findologic", + "categoryId": 2, + "url": "https://www.findologic.com/", + "companyId": "findologic" + }, + "firebase": { + "name": "Firebase", + "categoryId": 101, + "url": "https://firebase.google.com/", + "companyId": "google", + "source": "AdGuard" + }, + "firebaseio.com": { + "name": "Firebase", + "categoryId": 8, + "url": "https://firebase.google.com/", + "companyId": "google" + }, + "first_impression": { + "name": "First Impression", + "categoryId": 4, + "url": "http://www.firstimpression.io", + "companyId": "first_impression" + }, + "fit_analytics": { + "name": "Fit Analytics", + "categoryId": 6, + "url": "http://www.fitanalytics.com/", + "companyId": "fit_analytics" + }, + "fivetran": { + "name": "Fivetran", + "categoryId": 6, + "url": "https://fivetran.com/", + "companyId": "fivetran" + }, + "flag_ads": { + "name": "Flag Ads", + "categoryId": 4, + "url": "http://www.flagads.net/", + "companyId": "flag_ads" + }, + "flag_counter": { + "name": "Flag Counter", + "categoryId": 4, + "url": "http://flagcounter.com/", + "companyId": "flag_counter" + }, + "flash": { + "name": "Flash", + "categoryId": 0, + "url": "https://flashnews.com.au/", + "companyId": "news_corp", + "source": "AdGuard" + }, + "flashtalking": { + "name": "Flashtalking", + "categoryId": 4, + "url": "http://www.flashtalking.com/", + "companyId": "flashtalking" + }, + "flattr_button": { + "name": "Flattr Button", + "categoryId": 7, + "url": "http://flattr.com/", + "companyId": "flattr" + }, + "flexoffers": { + "name": "FlexOffers", + "categoryId": 4, + "url": "http://www.flexoffers.com/", + "companyId": "flexoffers.com" + }, + "flickr_badge": { + "name": "Flickr Badge", + "categoryId": 7, + "url": "http://www.flickr.com/", + "companyId": "smugmug" + }, + "flipboard": { + "name": "Flipboard", + "categoryId": 6, + "url": "http://www.flipboard.com/", + "companyId": "flipboard" + }, + "flite": { + "name": "Flite", + "categoryId": 4, + "url": "http://www.flite.com/", + "companyId": "flite" + }, + "flixcdn.com": { + "name": "flixcdn.com", + "categoryId": 9, + "url": null, + "companyId": null + }, + "flixmedia": { + "name": "Flixmedia", + "categoryId": 8, + "url": "https://flixmedia.eu", + "companyId": "flixmedia" + }, + "flocktory.com": { + "name": "Flocktory", + "categoryId": 6, + "url": "https://www.flocktory.com/", + "companyId": "flocktory" + }, + "flowplayer": { + "name": "Flowplayer", + "categoryId": 4, + "url": "https://flowplayer.org/", + "companyId": "flowplayer" + }, + "fluct": { + "name": "Fluct", + "categoryId": 4, + "url": "https://corp.fluct.jp/", + "companyId": "fluct" + }, + "fluent": { + "name": "Fluent", + "categoryId": 4, + "url": "http://www.fluentco.com/", + "companyId": "fluent" + }, + "fluid": { + "name": "Fluid", + "categoryId": 4, + "url": "http://www.8thbridge.com/", + "companyId": "fluid" + }, + "fluidads": { + "name": "FluidAds", + "categoryId": 4, + "url": "http://www.fluidads.co/", + "companyId": "fluidads" + }, + "fluidsurveys": { + "name": "FluidSurveys", + "categoryId": 2, + "url": "http://fluidsurveys.com/", + "companyId": "fluidware" + }, + "flurry": { + "name": "Flurry", + "categoryId": 101, + "url": "http://www.flurry.com/", + "companyId": "apollo_global_management", + "source": "AdGuard" + }, + "flxone": { + "name": "FLXONE", + "categoryId": 4, + "url": "http://www.flxone.com/", + "companyId": "flxone" + }, + "flyertown": { + "name": "Flyertown", + "categoryId": 6, + "url": "http://www.flyertown.ca/", + "companyId": "flyertown" + }, + "fmadserving": { + "name": "FMAdserving", + "categoryId": 4, + "url": "http://www.fmadserving.dk/", + "companyId": "fm_adserving" + }, + "fonbet": { + "name": "Fonbet", + "categoryId": 6, + "url": "https://www.fonbet.ru", + "companyId": "fonbet" + }, + "fonecta": { + "name": "Fonecta", + "categoryId": 2, + "url": "http://www.fonecta.com/", + "companyId": "fonecta" + }, + "fontawesome_com": { + "name": "fontawesome.com", + "categoryId": 9, + "url": "http://fontawesome.com/", + "companyId": null + }, + "foodie_blogroll": { + "name": "Foodie Blogroll", + "categoryId": 7, + "url": "http://www.foodieblogroll.com", + "companyId": "foodie_blogroll" + }, + "footprint": { + "name": "Footprint", + "categoryId": 4, + "url": "http://www.footprintlive.com/", + "companyId": "opentracker" + }, + "footprintdns.com": { + "name": "Footprint DNS", + "categoryId": 11, + "url": "https://www.microsoft.com/", + "companyId": "microsoft" + }, + "forcetrac": { + "name": "ForceTrac", + "categoryId": 2, + "url": "http://www.forcetrac.com/", + "companyId": "force_marketing" + }, + "forensiq": { + "name": "Forensiq", + "categoryId": 4, + "url": "http://www.cpadetective.com/", + "companyId": "impact" + }, + "foresee": { + "name": "ForeSee", + "categoryId": 5, + "url": "https://www.foresee.com/", + "companyId": "foresee_results" + }, + "formisimo": { + "name": "Formisimo", + "categoryId": 4, + "url": "https://www.formisimo.com/", + "companyId": "formisimo" + }, + "forter": { + "name": "Forter", + "categoryId": 4, + "url": "https://www.forter.com/", + "companyId": "forter" + }, + "fortlachanhecksof.info": { + "name": "fortlachanhecksof.info", + "categoryId": 11, + "url": null, + "companyId": null + }, + "foursquare_widget": { + "name": "Foursquare Widget", + "categoryId": 4, + "url": "https://foursquare.com/", + "companyId": "foursquare" + }, + "fout.jp": { + "name": "FreakOut", + "categoryId": 4, + "url": "https://www.fout.co.jp/", + "companyId": "freakout" + }, + "fox_audience_network": { + "name": "Fox Audience Network", + "categoryId": 4, + "url": "https://publishers.foxaudiencenetwork.com/", + "companyId": "fox_audience_network" + }, + "fox_sports": { + "name": "Fox Sports", + "categoryId": 0, + "url": "https://foxsports.com.au/", + "companyId": "news_corp", + "source": "AdGuard" + }, + "foxnews_static": { + "name": "Fox News CDN", + "categoryId": 9, + "url": "http://www.foxnews.com/", + "companyId": "fox_news" + }, + "foxpush": { + "name": "FoxPush", + "categoryId": 4, + "url": "https://www.foxpush.com/", + "companyId": "foxpush" + }, + "foxtel": { + "name": "Foxtel", + "categoryId": 0, + "url": "https://foxtel.com.au/", + "companyId": "news_corp", + "source": "AdGuard" + }, + "foxydeal_com": { + "name": "foxydeal.com", + "categoryId": 12, + "url": "https://www.foxydeal.de", + "companyId": null + }, + "fraudlogix": { + "name": "FraudLogix", + "categoryId": 4, + "url": "https://www.fraudlogix.com/", + "companyId": null + }, + "free_counter": { + "name": "Free Counter", + "categoryId": 6, + "url": "http://www.statcounterfree.com/", + "companyId": "free_counter" + }, + "free_online_users": { + "name": "Free Online Users", + "categoryId": 6, + "url": "http://www.freeonlineusers.com", + "companyId": "free_online_users" + }, + "free_pagerank": { + "name": "Free PageRank", + "categoryId": 6, + "url": "http://www.free-pagerank.com/", + "companyId": "free_pagerank" + }, + "freedom_mortgage": { + "name": "Freedom Mortgage", + "categoryId": 6, + "url": "https://www.freedommortgage.com/", + "companyId": "freedom_mortgage" + }, + "freegeoip_net": { + "name": "freegeoip.net", + "categoryId": 6, + "url": "http://freegeoip.net/", + "companyId": null + }, + "freenet_de": { + "name": "freenet.de", + "categoryId": 4, + "url": "http://freenet.de/", + "companyId": "debitel" + }, + "freeview": { + "name": "Freeview", + "categoryId": 0, + "url": "https://freeview.com.au/", + "companyId": "freeview", + "source": "AdGuard" + }, + "freewheel": { + "name": "FreeWheel", + "categoryId": 4, + "url": "http://www.freewheel.tv/", + "companyId": "comcast" + }, + "fresh8": { + "name": "Fresh8", + "categoryId": 6, + "url": "http://fresh8gaming.com/", + "companyId": "fresh_8_gaming" + }, + "freshdesk": { + "name": "Freshdesk", + "categoryId": 2, + "url": "http://www.freshdesk.com", + "companyId": "freshdesk" + }, + "freshplum": { + "name": "Freshplum", + "categoryId": 4, + "url": "https://freshplum.com/", + "companyId": "freshplum" + }, + "friendbuy": { + "name": "FriendBuy", + "categoryId": 6, + "url": "https://www.friendbuy.com", + "companyId": "friendbuy" + }, + "friendfeed": { + "name": "FriendFeed", + "categoryId": 7, + "url": "http://friendfeed.com/", + "companyId": "facebook" + }, + "friendfinder_network": { + "name": "FriendFinder Network", + "categoryId": 3, + "url": "http://www.ffn.com/", + "companyId": "friendfinder_networks" + }, + "frosmo_optimizer": { + "name": "Frosmo Optimizer", + "categoryId": 4, + "url": "http://frosmo.com/", + "companyId": "frosmo" + }, + "fruitflan": { + "name": "FruitFlan", + "categoryId": 4, + "url": "http://flan-tech.com/", + "companyId": "keytiles" + }, + "fstrk.net": { + "name": "24metrics Fraudshield", + "categoryId": 6, + "url": "https://24metrics.com/", + "companyId": "24metrics" + }, + "fuelx": { + "name": "FuelX", + "categoryId": 4, + "url": "http://fuelx.com/", + "companyId": "fuelx" + }, + "fullstory": { + "name": "FullStory", + "categoryId": 6, + "url": "http://fullstory.com", + "companyId": "fullstory" + }, + "funnelytics": { + "name": "Funnelytics", + "categoryId": 6, + "url": "https://funnelytics.io/", + "companyId": "funnelytics" + }, + "fyber": { + "name": "Fyber", + "categoryId": 4, + "url": "https://www.fyber.com/", + "companyId": "fyber" + }, + "ga_audiences": { + "name": "GA Audiences", + "categoryId": 6, + "url": "http://www.google.com", + "companyId": "google" + }, + "game_advertising_online": { + "name": "Game Advertising Online", + "categoryId": 4, + "url": "http://www.game-advertising-online.com/", + "companyId": "game_advertising_online" + }, + "gameanalytics": { + "name": "GameAnalytics", + "categoryId": 101, + "url": "https://gameanalytics.com/", + "companyId": "mobvista", + "source": "AdGuard" + }, + "gamedistribution.com": { + "name": "Gamedistribution.com", + "categoryId": 8, + "url": "http://gamedistribution.com/", + "companyId": null + }, + "gamerdna": { + "name": "gamerDNA", + "categoryId": 7, + "url": "http://www.gamerdnamedia.com/", + "companyId": "gamerdna_media" + }, + "gannett": { + "name": "Gannett Media", + "categoryId": 0, + "url": "https://www.gannett.com/", + "companyId": "gannett_digital_media_network" + }, + "gaug.es": { + "name": "Gaug.es", + "categoryId": 6, + "url": "http://get.gaug.es/", + "companyId": "euroweb" + }, + "gazprom-media_digital": { + "name": "Gazprom-Media Digital", + "categoryId": 0, + "url": "http://www.gpm-digital.com/", + "companyId": "gazprom-media_digital" + }, + "gb-world": { + "name": "GB-World", + "categoryId": 7, + "url": "http://www.gb-world.net/", + "companyId": "gb-world" + }, + "gdeslon": { + "name": "GdeSlon", + "categoryId": 4, + "url": "http://www.gdeslon.ru/", + "companyId": "gdeslon" + }, + "gdm_digital": { + "name": "GDM Digital", + "categoryId": 4, + "url": "http://www.gdmdigital.com/", + "companyId": "ve_interactive" + }, + "geeen": { + "name": "Geeen", + "categoryId": 6, + "url": "https://www.geeen.co.jp/", + "companyId": "geeen" + }, + "gemius": { + "name": "Gemius", + "categoryId": 4, + "url": "http://www.gemius.com", + "companyId": "gemius_sa" + }, + "generaltracking_de": { + "name": "generaltracking.de", + "categoryId": 11, + "url": null, + "companyId": null + }, + "genesis": { + "name": "Genesis", + "categoryId": 4, + "url": "http://genesismedia.com/", + "companyId": "genesis_media" + }, + "geniee": { + "name": "GENIEE", + "categoryId": 4, + "url": "http://geniee.co.jp/", + "companyId": null + }, + "genius": { + "name": "Genius", + "categoryId": 6, + "url": "http://www.genius.com/", + "companyId": "genius" + }, + "genoo": { + "name": "Genoo", + "categoryId": 4, + "url": "http://www.genoo.com/", + "companyId": "genoo" + }, + "geoads": { + "name": "GeoAds", + "categoryId": 4, + "url": "http://www.geoads.com", + "companyId": "geoads" + }, + "geolify": { + "name": "Geolify", + "categoryId": 4, + "url": "http://geolify.com/", + "companyId": "geolify" + }, + "geoplugin": { + "name": "geoPlugin", + "categoryId": 6, + "url": "http://www.geoplugin.com/", + "companyId": "geoplugin" + }, + "geotrust": { + "name": "GeoTrust", + "categoryId": 5, + "url": "http://www.geotrust.com/", + "companyId": "symantec" + }, + "geovisite": { + "name": "Geovisite", + "categoryId": 6, + "url": "http://www.geovisite.com/", + "companyId": "geovisite" + }, + "gestionpub": { + "name": "GestionPub", + "categoryId": 4, + "url": "http://www.gestionpub.com/", + "companyId": "gestionpub" + }, + "get_response": { + "name": "Get Response", + "categoryId": 2, + "url": "https://www.getresponse.com/?marketing_gv=v2", + "companyId": "getresponse" + }, + "get_site_control": { + "name": "Get Site Control", + "categoryId": 4, + "url": "https://getsitecontrol.com/", + "companyId": "getsitecontrol" + }, + "getconversion": { + "name": "GetConversion", + "categoryId": 2, + "url": "http://www.getconversion.net/", + "companyId": "getconversion" + }, + "getglue": { + "name": "GetGlue", + "categoryId": 0, + "url": "http://getglue.com", + "companyId": "telfie" + }, + "getintent": { + "name": "GetIntent", + "categoryId": 4, + "url": "http://www.getintent.com/", + "companyId": "getintent" + }, + "getkudos": { + "name": "GetKudos", + "categoryId": 1, + "url": "https://www.getkudos.me/", + "companyId": "zendesk" + }, + "getmyad": { + "name": "GetMyAd", + "categoryId": 4, + "url": "http://yottos.com", + "companyId": "yottos" + }, + "getsatisfaction": { + "name": "GetSatisfaction", + "categoryId": 1, + "url": "http://getsatisfaction.com/", + "companyId": "get_satisfaction" + }, + "gettyimages": { + "name": "Getty Images", + "categoryId": 8, + "url": "https://www.gettyimages.com/", + "companyId": null + }, + "gfk": { + "name": "GfK", + "categoryId": 4, + "url": "http://nurago.com/", + "companyId": "gfk_nurago" + }, + "gfycat.com": { + "name": "gfycat", + "categoryId": 7, + "url": "https://gfycat.com/", + "companyId": null + }, + "giant_realm": { + "name": "Giant Realm", + "categoryId": 4, + "url": "http://corp.giantrealm.com/", + "companyId": "giant_realm" + }, + "giantmedia": { + "name": "GiantMedia", + "categoryId": 4, + "url": "http://giantmedia.com/", + "companyId": "adknowledge" + }, + "giga": { + "name": "Giga", + "categoryId": 4, + "url": "https://gigaonclick.com", + "companyId": "giga" + }, + "gigya": { + "name": "Gigya", + "categoryId": 6, + "url": "https://www.sap.com/index.html", + "companyId": "sap" + }, + "gigya_beacon": { + "name": "Gigya Beacon", + "categoryId": 2, + "url": "http://www.gigya.com", + "companyId": "sap" + }, + "gigya_socialize": { + "name": "Gigya Socialize", + "categoryId": 2, + "url": "http://www.gigya.com", + "companyId": "sap" + }, + "gigya_toolbar": { + "name": "Gigya Toolbar", + "categoryId": 2, + "url": "http://www.gigya.com/", + "companyId": "sap" + }, + "giosg": { + "name": "Giosg", + "categoryId": 6, + "url": "https://www.giosg.com/", + "companyId": "giosg" + }, + "giphy.com": { + "name": "Giphy", + "categoryId": 7, + "url": "https://giphy.com/", + "companyId": null + }, + "giraff.io": { + "name": "Giraff.io", + "categoryId": 4, + "url": "https://www.giraff.io/", + "companyId": null + }, + "github": { + "name": "GitHub, Inc.", + "categoryId": 2, + "url": "https://github.com/", + "companyId": "microsoft", + "source": "AdGuard" + }, + "github_apps": { + "name": "GitHub Apps", + "categoryId": 2, + "url": "https://github.com/", + "companyId": "github" + }, + "github_pages": { + "name": "Github Pages", + "categoryId": 10, + "url": "https://pages.github.com/", + "companyId": "github" + }, + "gittigidiyor_affiliate_program": { + "name": "GittiGidiyor Affiliate Program", + "categoryId": 4, + "url": "http://www.ebay.com/", + "companyId": "ebay" + }, + "gittip": { + "name": "Gittip", + "categoryId": 2, + "url": "https://www.gittip.com/", + "companyId": "gittip" + }, + "glad_cube": { + "name": "Glad Cube", + "categoryId": 6, + "url": "http://www.glad-cube.com/", + "companyId": "glad_cube_inc." + }, + "glganltcs.space": { + "name": "glganltcs.space", + "categoryId": 12, + "url": null, + "companyId": null + }, + "global_web_index": { + "name": "GlobalWebIndex", + "categoryId": 6, + "url": "https://www.globalwebindex.com/", + "companyId": "global_web_index" + }, + "globalnotifier.com": { + "name": "globalnotifier.com", + "categoryId": 11, + "url": null, + "companyId": null + }, + "globalsign": { + "name": "GlobalSign", + "categoryId": 8, + "url": null, + "companyId": null + }, + "globaltakeoff": { + "name": "GlobalTakeoff", + "categoryId": 4, + "url": "http://www.globaltakeoff.net/", + "companyId": "globaltakeoff" + }, + "glomex.com": { + "name": "Glomex", + "categoryId": 0, + "url": "https://www.glomex.com/", + "companyId": "glomex" + }, + "glotgrx.com": { + "name": "glotgrx.com", + "categoryId": 11, + "url": null, + "companyId": null + }, + "gm_delivery": { + "name": "GM Delivery", + "categoryId": 4, + "url": "http://a.gmdelivery.com/", + "companyId": "gm_delivery" + }, + "gmail": { + "name": "Gmail", + "categoryId": 13, + "url": "https://mail.google.com/", + "companyId": "google", + "source": "AdGuard" + }, + "gmo": { + "name": "GMO", + "categoryId": 4, + "url": "https://www.gmo.media/", + "companyId": "gmo_media" + }, + "gmx_net": { + "name": "gmx.net", + "categoryId": 8, + "url": null, + "companyId": null + }, + "go.com": { + "name": "go.com", + "categoryId": 8, + "url": "go.com", + "companyId": "disney" + }, + "godaddy_affiliate_program": { + "name": "GoDaddy Affiliate Program", + "categoryId": 4, + "url": "http://www.godaddy.com/", + "companyId": "godaddy" + }, + "godaddy_site_analytics": { + "name": "GoDaddy Site Analytics", + "categoryId": 6, + "url": "https://www.godaddy.com/gdshop/hosting/stats_", + "companyId": "godaddy" + }, + "godaddy_site_seal": { + "name": "GoDaddy Site Seal", + "categoryId": 5, + "url": "http://www.godaddy.com/", + "companyId": "godaddy" + }, + "godatafeed": { + "name": "GoDataFeed", + "categoryId": 6, + "url": "http://www.godatafeed.com", + "companyId": "godatafeed" + }, + "goingup": { + "name": "GoingUp", + "categoryId": 6, + "url": "http://www.goingup.com/", + "companyId": "goingup" + }, + "gomez": { + "name": "Gomez", + "categoryId": 6, + "url": "http://www.gomez.com/", + "companyId": "dynatrace" + }, + "goodadvert": { + "name": "GoodADVERT", + "categoryId": 4, + "url": "http://goodadvert.ru/", + "companyId": "goodadvert" + }, + "google": { + "name": "Google", + "categoryId": 4, + "url": "https://www.google.com/", + "companyId": "google" + }, + "google_ads_measurement": { + "name": "Google Ads Measurement", + "categoryId": 4, + "url": "http://www.google.com", + "companyId": "google" + }, + "google_adsense": { + "name": "Google Adsense", + "categoryId": 4, + "url": "https://www.google.com/adsense/", + "companyId": "google" + }, + "google_adservices": { + "name": "Google AdServices", + "categoryId": 4, + "url": "http://www.google.com", + "companyId": "google" + }, + "google_adwords_conversion": { + "name": "Google AdWords Conversion", + "categoryId": 4, + "url": "https://adwords.google.com/", + "companyId": "google" + }, + "google_adwords_user_lists": { + "name": "Google Adwords User Lists", + "categoryId": 4, + "url": "http://www.google.com", + "companyId": "google" + }, + "google_analytics": { + "name": "Google Analytics", + "categoryId": 6, + "url": "http://www.google.com/analytics/", + "companyId": "google" + }, + "google_appspot": { + "name": "Google Appspot", + "categoryId": 10, + "url": "http://www.google.com", + "companyId": "google" + }, + "google_auth": { + "name": "Google Auth", + "categoryId": 2, + "url": "https://myaccount.google.com/", + "companyId": "google", + "source": "AdGuard" + }, + "google_beacons": { + "name": "Google Beacons", + "categoryId": 6, + "url": "https://google.xyz", + "companyId": "google" + }, + "google_chat": { + "name": "Google Chat", + "categoryId": 7, + "url": "https://mail.google.com/chat/", + "companyId": "google", + "source": "AdGuard" + }, + "google_cloud_platform": { + "name": "Google Cloud Platform", + "categoryId": 10, + "url": "https://cloud.google.com/", + "companyId": "google", + "source": "AdGuard" + }, + "google_cloud_storage": { + "name": "Google Cloud Storage", + "categoryId": 10, + "url": "https://cloud.google.com/storage/", + "companyId": "google", + "source": "AdGuard" + }, + "google_custom_search": { + "name": "Google Custom Search Ads", + "categoryId": 4, + "url": "https://developers.google.com/custom-search-ads/", + "companyId": "google" + }, + "google_custom_search_engine": { + "name": "Google Programmable Search Engine", + "categoryId": 5, + "url": "https://programmablesearchengine.google.com/about/", + "companyId": "google" + }, + "google_dns": { + "name": "Google DNS", + "categoryId": 10, + "url": "https://dns.google/", + "companyId": "google", + "source": "AdGuard" + }, + "google_domains": { + "name": "Google Domains", + "categoryId": 10, + "url": "https://domains.google/", + "companyId": "google", + "source": "AdGuard" + }, + "google_edge": { + "name": "Google Edge CDN", + "categoryId": 9, + "url": "https://peering.google.com/", + "companyId": "google", + "source": "AdGuard" + }, + "google_email": { + "name": "Google Email", + "categoryId": 13, + "url": "http://www.google.com", + "companyId": "google" + }, + "google_fonts": { + "name": "Google Fonts", + "categoryId": 9, + "url": "https://fonts.google.com/", + "companyId": "google" + }, + "google_hosted": { + "name": "Google Hosted", + "categoryId": 10, + "url": "https://workspace.google.com/", + "companyId": "google", + "source": "AdGuard" + }, + "google_ima": { + "name": "Google IMA", + "categoryId": 4, + "url": "http://www.google.com", + "companyId": "google" + }, + "google_location": { + "name": "Google Location", + "categoryId": 8, + "url": "https://patents.google.com/patent/WO2007025143A1/", + "companyId": "google", + "source": "AdGuard" + }, + "google_maps": { + "name": "Google Maps", + "categoryId": 2, + "url": "https://www.google.com/maps/", + "companyId": "google", + "source": "AdGuard" + }, + "google_marketing": { + "name": "Google Marketing", + "categoryId": 4, + "url": "https://marketingplatform.google.com/about/enterprise", + "companyId": "google", + "source": "AdGuard" + }, + "google_meet": { + "name": "Google Meet", + "categoryId": 2, + "url": "https://meet.google.com/", + "companyId": "google", + "source": "AdGuard" + }, + "google_photos": { + "name": "Google Photos", + "categoryId": 9, + "url": "https://photos.google.com/", + "companyId": "google" + }, + "google_pingback": { + "name": "Google Pingback", + "categoryId": 4, + "url": "http://www.google.com", + "companyId": "google" + }, + "google_play": { + "name": "Google Play", + "categoryId": 8, + "url": "https://play.google.com/", + "companyId": "google", + "source": "AdGuard" + }, + "google_plus": { + "name": "Google+ Platform", + "categoryId": 7, + "url": "http://www.google.com/+1/button/", + "companyId": "google" + }, + "google_publisher_tags": { + "name": "Google Publisher Tags", + "categoryId": 6, + "url": "http://www.google.com", + "companyId": "google" + }, + "google_remarketing": { + "name": "Google Dynamic Remarketing", + "categoryId": 4, + "url": "http://adwords.google.com/", + "companyId": "google" + }, + "google_safeframe": { + "name": "Google Safeframe", + "categoryId": 4, + "url": "http://www.google.com", + "companyId": "google" + }, + "google_servers": { + "name": "Google Servers", + "categoryId": 8, + "url": "https://support.google.com/faqs/answer/174717?hl=en", + "companyId": "google" + }, + "google_shopping_reviews": { + "name": "Google Shopping Reviews", + "categoryId": 2, + "url": "http://www.google.com", + "companyId": "google" + }, + "google_syndication": { + "name": "Google Syndication", + "categoryId": 4, + "url": "http://www.google.com", + "companyId": "google" + }, + "google_tag_manager": { + "name": "Google Tag Manager", + "categoryId": 5, + "url": "https://marketingplatform.google.com/about/tag-manager/", + "companyId": "google" + }, + "google_translate": { + "name": "Google Translate", + "categoryId": 2, + "url": "https://translate.google.com/manager", + "companyId": "google" + }, + "google_travel_adds": { + "name": "Google Travel Adds", + "categoryId": 4, + "url": "http://www.google.com", + "companyId": "google" + }, + "google_trust_services": { + "name": "Google Trust Services", + "categoryId": 5, + "url": "https://pki.goog/", + "companyId": "google", + "source": "AdGuard" + }, + "google_trusted_stores": { + "name": "Google Trusted Stores", + "categoryId": 6, + "url": "http://www.google.com", + "companyId": "google" + }, + "google_users": { + "name": "Google User Content", + "categoryId": 9, + "url": "http://www.google.com", + "companyId": "google" + }, + "google_voice": { + "name": "Google Voice", + "categoryId": 2, + "url": "https://voice.google.com/", + "companyId": "google", + "source": "AdGuard" + }, + "google_website_optimizer": { + "name": "Google Website Optimizer", + "categoryId": 6, + "url": "https://www.google.com/analytics/siteopt/prev", + "companyId": "google" + }, + "google_widgets": { + "name": "Google Widgets", + "categoryId": 2, + "url": "http://www.google.com", + "companyId": "google" + }, + "google_workspace": { + "name": "Google Workspace", + "categoryId": 2, + "url": "https://workspace.google.com/", + "companyId": "google", + "source": "AdGuard" + }, + "googleapis.com": { + "name": "Google APIs", + "categoryId": 9, + "url": "https://www.googleapis.com/", + "companyId": "google" + }, + "goooal": { + "name": "Goooal", + "categoryId": 6, + "url": "http://mailchimp.com/", + "companyId": "mailchimp" + }, + "gorilla_nation": { + "name": "Gorilla Nation", + "categoryId": 4, + "url": "http://www.gorillanationmedia.com", + "companyId": "gorilla_nation_media" + }, + "gosquared": { + "name": "GoSquared", + "categoryId": 6, + "url": "http://www.gosquared.com/livestats/", + "companyId": "gosquared" + }, + "gostats": { + "name": "GoStats", + "categoryId": 6, + "url": "http://gostats.com/", + "companyId": "gostats" + }, + "govmetric": { + "name": "GovMetric", + "categoryId": 6, + "url": "http://www.govmetric.com/", + "companyId": "govmetric" + }, + "grabo_affiliate": { + "name": "Grabo Affiliate", + "categoryId": 4, + "url": "http://grabo.bg/", + "companyId": "grabo_media" + }, + "grandslammedia": { + "name": "GrandSlamMedia", + "categoryId": 4, + "url": "http://www.grandslammedia.com/", + "companyId": "grand_slam_media" + }, + "granify": { + "name": "Granify", + "categoryId": 6, + "url": "http://granify.com/", + "companyId": "granify" + }, + "grapeshot": { + "name": "Grapeshot", + "categoryId": 4, + "url": "https://www.grapeshot.com/", + "companyId": "oracle" + }, + "graph_comment": { + "name": "Graph Comment", + "categoryId": 5, + "url": "https://graphcomment.com/en/", + "companyId": "graph_comment" + }, + "gravatar": { + "name": "Gravatar", + "categoryId": 7, + "url": "http://en.gravatar.com/", + "companyId": "automattic" + }, + "gravitec": { + "name": "Gravitec", + "categoryId": 6, + "url": "https://gravitec.net/", + "companyId": "gravitec" + }, + "gravity_insights": { + "name": "Gravity Insights", + "categoryId": 6, + "url": "http://www.gravity.com/", + "companyId": "verizon" + }, + "greatviews.de": { + "name": "GreatViews", + "categoryId": 4, + "url": "http://greatviews.de/", + "companyId": "parship" + }, + "green_and_red": { + "name": "Green and Red", + "categoryId": 4, + "url": "http://www.green-red.com/", + "companyId": "green_&_red_technologies" + }, + "green_certified_site": { + "name": "Green Certified Site", + "categoryId": 2, + "url": "http://www.advenity.com/", + "companyId": "advenity" + }, + "green_story": { + "name": "Green Story", + "categoryId": 6, + "url": "https://greenstory.ca/", + "companyId": "green_story" + }, + "greentube.com": { + "name": "Greentube Internet Entertainment Solutions", + "categoryId": 7, + "url": "https://www.greentube.com/", + "companyId": null + }, + "greystripe": { + "name": "Greystripe", + "categoryId": 4, + "url": "http://www.greystripe.com/", + "companyId": "conversant" + }, + "groove": { + "name": "Groove", + "categoryId": 2, + "url": "http://www.groovehq.com/", + "companyId": "groove_networks" + }, + "groovinads": { + "name": "GroovinAds", + "categoryId": 4, + "url": "http://www.groovinads.com/en", + "companyId": "groovinads" + }, + "groundtruth": { + "name": "GroundTruth", + "categoryId": 4, + "url": "http://www.groundtruth.com/", + "companyId": "groundtruth" + }, + "groupm_server": { + "name": "GroupM Server", + "categoryId": 4, + "url": "http://www.groupm.com/", + "companyId": "wpp" + }, + "gsi_media": { + "name": "GSI Media", + "categoryId": 4, + "url": "http://gsimedia.net", + "companyId": "gsi_media_network" + }, + "gstatic": { + "name": "Google Static", + "categoryId": 9, + "url": "http://www.google.com", + "companyId": "google" + }, + "gtop": { + "name": "GTop", + "categoryId": 6, + "url": "http://www.gtopstats.com", + "companyId": "gtopstats" + }, + "gugaboo": { + "name": "Gugaboo", + "categoryId": 4, + "url": "https://www.gubagoo.com/", + "companyId": "gubagoo" + }, + "guj.de": { + "name": "Gruner + Jahr", + "categoryId": 4, + "url": "https://www.guj.de/", + "companyId": "gruner_jahr_ag" + }, + "gujems": { + "name": "G+J e|MS", + "categoryId": 4, + "url": "http://www.gujmedia.de/", + "companyId": "gruner_jahr_ag" + }, + "gumgum": { + "name": "gumgum", + "categoryId": 4, + "url": "http://gumgum.com/", + "companyId": "gumgum" + }, + "gumroad": { + "name": "Gumroad", + "categoryId": 7, + "url": "https://gumroad.com/", + "companyId": "gumroad" + }, + "gunggo": { + "name": "Gunggo", + "categoryId": 4, + "url": "http://www.gunggo.com/", + "companyId": "gunggo" + }, + "h12_ads": { + "name": "H12 Ads", + "categoryId": 4, + "url": "http://www.h12-media.com/", + "companyId": "h12_media_ads" + }, + "hacker_news_button": { + "name": "Hacker News Button", + "categoryId": 7, + "url": "http://news.ycombinator.com/", + "companyId": "hacker_news" + }, + "haendlerbund.de": { + "name": "Händlerbund", + "categoryId": 2, + "url": "https://www.haendlerbund.de/en", + "companyId": null + }, + "halogen_network": { + "name": "Halogen Network", + "categoryId": 7, + "url": "http://www.halogennetwork.com/", + "companyId": "social_chorus" + }, + "happy_fox_chat": { + "name": "Happy Fox Chat", + "categoryId": 2, + "url": "https://happyfoxchat.com/", + "companyId": "happy_fox_chat" + }, + "harren_media": { + "name": "Harren Media", + "categoryId": 4, + "url": "http://www.harrenmedia.com/index.html", + "companyId": "harren_media" + }, + "hatchbuck": { + "name": "Hatchbuck", + "categoryId": 6, + "url": "http://www.hatchbuck.com/", + "companyId": "hatchbuck" + }, + "head_hunter": { + "name": "Head Hunter", + "categoryId": 6, + "url": "https://hh.ru/", + "companyId": "head_hunter" + }, + "healte.de": { + "name": "healte.de", + "categoryId": 11, + "url": null, + "companyId": null + }, + "heap": { + "name": "Heap", + "categoryId": 6, + "url": "https://heapanalytics.com/", + "companyId": "heap" + }, + "heatmap": { + "name": "Heatmap", + "categoryId": 6, + "url": "https://heatmap.me/", + "companyId": "heatmap" + }, + "heimspiel": { + "name": "HEIM:SPIEL Medien GmbH", + "categoryId": 8, + "url": "http://www.heimspiel.de", + "companyId": null + }, + "hello_bar": { + "name": "Hello Bar", + "categoryId": 7, + "url": "https://www.hellobar.com/", + "companyId": "crazy_egg" + }, + "hellosociety": { + "name": "HelloSociety", + "categoryId": 6, + "url": "http://hellosociety.com", + "companyId": "hellosociety" + }, + "here": { + "name": "HERE", + "categoryId": 8, + "url": "https://www.here.com/", + "companyId": null + }, + "heroku": { + "name": "Heroku", + "categoryId": 10, + "url": null, + "companyId": null + }, + "heureka-widget": { + "name": "Heureka-Widget", + "categoryId": 4, + "url": "https://www.heurekashopping.cz/", + "companyId": "heureka" + }, + "heybubble": { + "name": "HeyBubble", + "categoryId": 2, + "url": "https://www.heybubble.com/", + "companyId": "heybubble" + }, + "heyos": { + "name": "Heyos", + "categoryId": 4, + "url": "http://www.heyos.com/", + "companyId": "heyos" + }, + "hi-media_performance": { + "name": "Hi-Media Performance", + "categoryId": 4, + "url": "http://www.hi-mediaperformance.co.uk/", + "companyId": "hi-media_performance" + }, + "hiconversion": { + "name": "HiConversion", + "categoryId": 4, + "url": "http://www.hiconversion.com", + "companyId": "hiconversion" + }, + "highwebmedia.com": { + "name": "highwebmedia.com", + "categoryId": 3, + "url": null, + "companyId": null + }, + "highwinds": { + "name": "Highwinds", + "categoryId": 6, + "url": "https://www.highwinds.com/", + "companyId": "highwinds" + }, + "hiiir": { + "name": "Hiiir", + "categoryId": 4, + "url": "http://adpower.hiiir.com/", + "companyId": "hiiir" + }, + "hiro": { + "name": "HIRO", + "categoryId": 4, + "url": "http://www.hiro-media.com/", + "companyId": "hiro_media" + }, + "histats": { + "name": "Histats", + "categoryId": 4, + "url": "http://www.histats.com/", + "companyId": "histats" + }, + "hit-parade": { + "name": "Hit-Parade", + "categoryId": 4, + "url": "http://www.hit-parade.com/", + "companyId": "hit-parade" + }, + "hit.ua": { + "name": "HIT.UA", + "categoryId": 4, + "url": "http://hit.ua/", + "companyId": "hit.ua" + }, + "hitslink": { + "name": "HitsLink", + "categoryId": 4, + "url": "http://www.hitslink.com/", + "companyId": "net_applications" + }, + "hitsniffer": { + "name": "HitSniffer", + "categoryId": 4, + "url": "http://hitsniffer.com/", + "companyId": "hit_sniffer" + }, + "hittail": { + "name": "HitTail", + "categoryId": 4, + "url": "http://www.hittail.com/", + "companyId": "hittail" + }, + "hivedx.com": { + "name": "hiveDX", + "categoryId": 4, + "url": "https://www.hivedx.com/", + "companyId": null + }, + "hiveworks": { + "name": "Hive Networks", + "categoryId": 4, + "url": "https://hiveworkscomics.com/", + "companyId": "hive_works" + }, + "hockeyapp": { + "name": "HockeyApp", + "categoryId": 101, + "url": "https://hockeyapp.net/", + "companyId": "microsoft", + "source": "AdGuard" + }, + "hoholikik.club": { + "name": "hoholikik.club", + "categoryId": 12, + "url": null, + "companyId": null + }, + "hola_player": { + "name": "Hola Player", + "categoryId": 0, + "url": "https://holacdn.com/", + "companyId": "hola_cdn" + }, + "homeaway": { + "name": "HomeAway", + "categoryId": 8, + "url": null, + "companyId": null + }, + "honeybadger": { + "name": "Honeybadger", + "categoryId": 6, + "url": "https://www.honeybadger.io/", + "companyId": "honeybadger" + }, + "hooklogic": { + "name": "HookLogic", + "categoryId": 4, + "url": "http://hooklogic.com/", + "companyId": "criteo" + }, + "hop-cube": { + "name": "Hop-Cube", + "categoryId": 4, + "url": "http://www.hop-cube.com/", + "companyId": "hop-cube" + }, + "hotdogsandads.com": { + "name": "hotdogsandads.com", + "categoryId": 11, + "url": null, + "companyId": null + }, + "hotjar": { + "name": "Hotjar", + "categoryId": 6, + "url": "http://www.hotjar.com/", + "companyId": "hotjar" + }, + "hotkeys": { + "name": "HotKeys", + "categoryId": 4, + "url": "http://www.demandmedia.com/", + "companyId": "leaf_group" + }, + "hotlog.ru": { + "name": "HotLog", + "categoryId": 4, + "url": "https://hotlog.ru/", + "companyId": "hotlog" + }, + "hotwords": { + "name": "HOTWords", + "categoryId": 4, + "url": "http://hotwords.com/", + "companyId": "hotwords" + }, + "howtank.com": { + "name": "howtank", + "categoryId": 7, + "url": "https://www.howtank.com/", + "companyId": null + }, + "hqentertainmentnetwork.com": { + "name": "HQ Entertainment Network", + "categoryId": 4, + "url": "https://hqentertainmentnetwork.com/", + "companyId": null + }, + "hsoub": { + "name": "Hsoub", + "categoryId": 4, + "url": "http://www.hsoub.com/", + "companyId": "hsoub" + }, + "hstrck.com": { + "name": "HEIM:SPIEL Medien GmbH", + "categoryId": 8, + "url": "https://www.heimspiel.de/", + "companyId": null + }, + "httpool": { + "name": "HTTPool", + "categoryId": 4, + "url": "http://www.httpool.com/", + "companyId": "httpool" + }, + "hubrus": { + "name": "HUBRUS", + "categoryId": 4, + "url": "http://www.hubrus.com/", + "companyId": "hubrus" + }, + "hubspot": { + "name": "HubSpot", + "categoryId": 6, + "url": "http://www.hubspot.com/", + "companyId": "hubspot" + }, + "hubspot_forms": { + "name": "HubSpot Forms", + "categoryId": 2, + "url": "http://www.hubspot.com", + "companyId": "hubspot" + }, + "hubvisor.io": { + "name": "Hubvisor", + "categoryId": 4, + "url": "https://hubvisor.io/", + "companyId": null + }, + "hucksterbot": { + "name": "HucksterBot", + "categoryId": 4, + "url": "http://hucksterbot.ru/", + "companyId": "hucksterbot" + }, + "hupso": { + "name": "Hupso", + "categoryId": 7, + "url": "http://www.hupso.com/", + "companyId": "hupso" + }, + "hurra_tracker": { + "name": "Hurra Tracker", + "categoryId": 4, + "url": "http://www.hurra.com/en/", + "companyId": "hurra_communications" + }, + "hybrid.ai": { + "name": "Hybrid.ai", + "categoryId": 4, + "url": "https://hybrid.ai/", + "companyId": "hybrid_adtech" + }, + "hype_exchange": { + "name": "Hype Exchange", + "categoryId": 4, + "url": "http://www.hypeexchange.com/", + "companyId": "hype_exchange" + }, + "hypercomments": { + "name": "HyperComments", + "categoryId": 1, + "url": "http://www.hypercomments.com/", + "companyId": "hypercomments" + }, + "hyves_widgets": { + "name": "Hyves Widgets", + "categoryId": 4, + "url": "http://www.hyves.nl/", + "companyId": "hyves" + }, + "hyvyd": { + "name": "Hyvyd GmbH", + "categoryId": 8, + "url": null, + "companyId": null + }, + "i-behavior": { + "name": "i-Behavior", + "categoryId": 4, + "url": "http://www.i-behavior.com/", + "companyId": "kbm_group" + }, + "i-mobile": { + "name": "i-mobile", + "categoryId": 4, + "url": "https://www2.i-mobile.co.jp/en/index.aspx", + "companyId": "i-mobile" + }, + "i.ua": { + "name": "i.ua", + "categoryId": 4, + "url": "http://www.i.ua/", + "companyId": "i.ua" + }, + "i10c.net": { + "name": "i10c.net", + "categoryId": 11, + "url": null, + "companyId": null + }, + "i2i.jp": { + "name": "i2i.jp", + "categoryId": 6, + "url": "http://www.i2i.jp/", + "companyId": "i2i.jp" + }, + "iab_consent": { + "name": "IAB Consent", + "categoryId": 5, + "url": "https://iabtechlab.com/standards/gdpr-transparency-and-consent-framework/", + "companyId": "iab" + }, + "iadvize": { + "name": "iAdvize", + "categoryId": 2, + "url": "http://www.iadvize.com/", + "companyId": "iadvize" + }, + "ibm_customer_experience": { + "name": "IBM Digital Analytics", + "categoryId": 6, + "url": "http://www.coremetrics.com/", + "companyId": "ibm" + }, + "icerocket_tracker": { + "name": "IceRocket Tracker", + "categoryId": 7, + "url": "http://tracker.icerocket.com/", + "companyId": "meltwater_icerocket" + }, + "icf_technology": { + "name": "ICF Technology", + "categoryId": 2, + "url": "http://www.icftechnology.com/", + "companyId": null + }, + "iclick": { + "name": "iClick", + "categoryId": 4, + "url": "http://optimix.asia/", + "companyId": "iclick_interactive" + }, + "icrossing": { + "name": "iCrossing", + "categoryId": 4, + "url": "http://www.icrossing.com/", + "companyId": "hearst" + }, + "icstats": { + "name": "ICStats", + "categoryId": 6, + "url": "http://www.icstats.nl/", + "companyId": "icstats" + }, + "icuazeczpeoohx.com": { + "name": "icuazeczpeoohx.com", + "categoryId": 11, + "url": null, + "companyId": null + }, + "id-news.net": { + "name": "Ippen Digital", + "categoryId": 4, + "url": "https://www.ippen-digital.de/", + "companyId": null + }, + "id5-sync": { + "name": "ID5 Sync", + "categoryId": 4, + "url": "https://id5.io/", + "companyId": "id5-sync", + "source": "AdGuard" + }, + "id_services": { + "name": "ID Services", + "categoryId": 6, + "url": "https://id.services/", + "companyId": "id_services" + }, + "ideal_media": { + "name": "Ideal Media", + "categoryId": 4, + "url": "http://idealmedia.com/", + "companyId": "ideal_media" + }, + "idealo_com": { + "name": "idealo.com", + "categoryId": 4, + "url": "http://idealo.com/", + "companyId": null + }, + "identrust": { + "name": "IdenTrust, Inc.", + "categoryId": 5, + "url": "https://identrust.com/", + "companyId": "identrust", + "source": "AdGuard" + }, + "ideoclick": { + "name": "IdeoClick", + "categoryId": 4, + "url": "http://ideoclick.com", + "companyId": "ideoclick" + }, + "idio": { + "name": "Idio", + "categoryId": 4, + "url": "https://www.idio.ai/", + "companyId": "idio" + }, + "ie8eamus.com": { + "name": "ie8eamus.com", + "categoryId": 11, + "url": null, + "companyId": null + }, + "ientry": { + "name": "iEntry", + "categoryId": 4, + "url": "http://www.ientry.com/", + "companyId": "ientry" + }, + "iflychat": { + "name": "iFlyChat", + "categoryId": 2, + "url": "https://iflychat.com/", + "companyId": "iflychat" + }, + "ignitionone": { + "name": "IgnitionOne", + "categoryId": 6, + "url": "https://www.ignitionone.com/", + "companyId": "zeta" + }, + "igodigital": { + "name": "iGoDigital", + "categoryId": 2, + "url": "http://igodigital.com/", + "companyId": "salesforce" + }, + "ihs_markit": { + "name": "IHS Markit", + "categoryId": 6, + "url": "https://ihsmarkit.com/index.html", + "companyId": "ihs" + }, + "ihs_markit_online_shopper_insigh": { + "name": "IHS Markit Online Shopper Insigh", + "categoryId": 6, + "url": "http://www.visicogn.com/vcu.htm", + "companyId": "ihs" + }, + "ihvmcqojoj.com": { + "name": "ihvmcqojoj.com", + "categoryId": 11, + "url": null, + "companyId": null + }, + "iias.eu": { + "name": "Insight Image", + "categoryId": 3, + "url": "http://insightimage.com/", + "companyId": null + }, + "ijento": { + "name": "iJento", + "categoryId": 6, + "url": "http://www.ijento.com/", + "companyId": "ijento" + }, + "imad": { + "name": "imad", + "categoryId": 4, + "url": "http://www.imad.co.kr/", + "companyId": "i'mad_republic" + }, + "image_advantage": { + "name": "Image Advantage", + "categoryId": 4, + "url": "http://www.worthathousandwords.com/", + "companyId": "image_advantage" + }, + "image_space_media": { + "name": "Image Space Media", + "categoryId": 4, + "url": "http://www.imagespacemedia.com/", + "companyId": "image_space_media" + }, + "imgix.net": { + "name": "ImgIX", + "categoryId": 9, + "url": "https://www.imgix.com/", + "companyId": null + }, + "imgur": { + "name": "Imgur", + "categoryId": 8, + "url": "https://imgur.com/", + "companyId": "medialab", + "source": "AdGuard" + }, + "imho_vi": { + "name": "imho vi", + "categoryId": 4, + "url": "http://www.imho.ru", + "companyId": "imho" + }, + "immanalytics": { + "name": "Immanalytics", + "categoryId": 2, + "url": "https://www.roku.com/", + "companyId": "roku" + }, + "immobilienscout24_de": { + "name": "immobilienscout24.de", + "categoryId": 8, + "url": "http://www.scout24.com/", + "companyId": "scout24" + }, + "imonomy": { + "name": "imonomy", + "categoryId": 6, + "url": "http://imonomy.com/", + "companyId": "imonomy" + }, + "impact_radius": { + "name": "Impact Radius", + "categoryId": 5, + "url": "http://www.impactradius.com/", + "companyId": "impact_radius" + }, + "impresiones_web": { + "name": "Impresiones Web", + "categoryId": 4, + "url": "http://www.iw-advertising.com/", + "companyId": "impresiones_web" + }, + "improve_digital": { + "name": "Improve Digital", + "categoryId": 4, + "url": "http://www.improvedigital.com/", + "companyId": "improve_digital" + }, + "improvely": { + "name": "Improvely", + "categoryId": 6, + "url": "https://www.improvely.com/", + "companyId": "awio_web_services" + }, + "inbenta": { + "name": "Inbenta", + "categoryId": 6, + "url": "https://www.inbenta.com/en/", + "companyId": "inbenta" + }, + "inboxsdk.com": { + "name": "Inbox SDK", + "categoryId": 8, + "url": "https://www.inboxsdk.com/", + "companyId": null + }, + "indeed": { + "name": "Indeed", + "categoryId": 4, + "url": "http://www.indeed.com/", + "companyId": "indeed" + }, + "index_exchange": { + "name": "Index Exchange", + "categoryId": 4, + "url": "http://www.casalemedia.com/", + "companyId": "index_exchange" + }, + "indieclick": { + "name": "IndieClick", + "categoryId": 4, + "url": "http://www.indieclick.com/", + "companyId": "leaf_group" + }, + "industry_brains": { + "name": "Industry Brains", + "categoryId": 4, + "url": "http://www.industrybrains.com/", + "companyId": "industrybrains" + }, + "infectious_media": { + "name": "Impression Desk", + "categoryId": 4, + "url": "https://impressiondesk.com/", + "companyId": "infectious_media" + }, + "infinite_analytics": { + "name": "Infinite Analytics", + "categoryId": 6, + "url": "http://infiniteanalytics.com/products/", + "companyId": "infinite_analytics" + }, + "infinity_tracking": { + "name": "Infinity Tracking", + "categoryId": 6, + "url": "http://www.infinity-tracking.com", + "companyId": "infinity_tracking" + }, + "influads": { + "name": "InfluAds", + "categoryId": 4, + "url": "http://www.influads.com/", + "companyId": "influads" + }, + "infolinks": { + "name": "InfoLinks", + "categoryId": 4, + "url": "http://www.infolinks.com/", + "companyId": "infolinks" + }, + "infonline": { + "name": "INFOnline", + "categoryId": 6, + "url": "http://www.infonline.de/", + "companyId": "infonline" + }, + "informer_technologies": { + "name": "Informer Technologies", + "categoryId": 6, + "url": "http://www.informer.com/", + "companyId": "informer_technologies" + }, + "infusionsoft": { + "name": "Infusionsoft by Keap", + "categoryId": 4, + "url": "https://keap.com/", + "companyId": "infusionsoft" + }, + "innity": { + "name": "Innity", + "categoryId": 4, + "url": "http://www.innity.com/", + "companyId": "innity" + }, + "innogames.de": { + "name": "InnoGames", + "categoryId": 8, + "url": "https://www.innogames.com/", + "companyId": null + }, + "innovid": { + "name": "Innovid", + "categoryId": 4, + "url": "https://www.innovid.com/", + "companyId": "innovid" + }, + "inside": { + "name": "inside", + "categoryId": 7, + "url": "http://www.inside.tm/", + "companyId": "powerfront" + }, + "insider": { + "name": "Insider", + "categoryId": 6, + "url": "http://useinsider.com/", + "companyId": "insider" + }, + "insightexpress": { + "name": "InsightExpress", + "categoryId": 6, + "url": "https://www.millwardbrowndigital.com/", + "companyId": "millward_brown" + }, + "inskin_media": { + "name": "InSkin Media", + "categoryId": 4, + "url": "http://www.inskinmedia.com/", + "companyId": "inskin_media" + }, + "inspectlet": { + "name": "Inspectlet", + "categoryId": 6, + "url": "https://www.inspectlet.com/", + "companyId": "inspectlet" + }, + "inspsearchapi.com": { + "name": "Infospace Search", + "categoryId": 4, + "url": "http://infospace.com/", + "companyId": "system1" + }, + "instagram_com": { + "name": "Instagram", + "categoryId": 8, + "url": "https://www.facebook.com/", + "companyId": "meta", + "source": "AdGuard" + }, + "instant_check_mate": { + "name": "Instant Check Mate", + "categoryId": 2, + "url": "https://www.instantcheckmate.com/", + "companyId": "instant_check_mate" + }, + "instart_logic": { + "name": "Instart Logic", + "categoryId": 4, + "url": "https://www.instartlogic.com/", + "companyId": "instart_logic_inc" + }, + "insticator": { + "name": "Insticator", + "categoryId": 4, + "url": "https://www.insticator.com/landingpage", + "companyId": "insticator" + }, + "instinctive": { + "name": "Instinctive", + "categoryId": 4, + "url": "https://instinctive.io/", + "companyId": "instinctive" + }, + "intango": { + "name": "Intango", + "categoryId": 4, + "url": "https://intango.com/", + "companyId": "intango" + }, + "integral_ad_science": { + "name": "Integral Ad Science", + "categoryId": 4, + "url": "https://integralads.com/", + "companyId": "integral_ad_science" + }, + "integral_marketing": { + "name": "Integral Marketing", + "categoryId": 4, + "url": "http://integral-marketing.com/", + "companyId": "integral_marketing" + }, + "intelliad": { + "name": "intelliAd", + "categoryId": 6, + "url": "http://www.intelliad.de/", + "companyId": "intelliad" + }, + "intelligencefocus": { + "name": "IntelligenceFocus", + "categoryId": 6, + "url": "http://www.intelligencefocus.com", + "companyId": "intelligencefocus" + }, + "intelligent_reach": { + "name": "Intelligent Reach", + "categoryId": 4, + "url": "http://www.intelligentreach.com/", + "companyId": "intelligent_reach" + }, + "intense_debate": { + "name": "Intense Debate", + "categoryId": 2, + "url": "http://intensedebate.com/", + "companyId": "automattic" + }, + "intent_iq": { + "name": "Intent IQ", + "categoryId": 4, + "url": "http://datonics.com/", + "companyId": "almondnet" + }, + "intent_media": { + "name": "Intent", + "categoryId": 4, + "url": "https://intent.com/", + "companyId": "intent_media" + }, + "intercom": { + "name": "Intercom", + "categoryId": 2, + "url": "http://intercom.io/", + "companyId": "intercom" + }, + "interedy.info": { + "name": "interedy.info", + "categoryId": 11, + "url": null, + "companyId": null + }, + "intergi": { + "name": "Intergi", + "categoryId": 4, + "url": "http://www.intergi.com/", + "companyId": "intergi_entertainment" + }, + "intermarkets.net": { + "name": "Intermarkets", + "categoryId": 4, + "url": "http://intermarkets.net/", + "companyId": "intermarkets" + }, + "intermundo_media": { + "name": "InterMundo Media", + "categoryId": 4, + "url": "http://intermundomedia.com/", + "companyId": "intermundo_media" + }, + "internet_billboard": { + "name": "Internet BillBoard", + "categoryId": 4, + "url": "http://www.ibillboard.com/en/", + "companyId": "internet_billboard" + }, + "internetaudioads": { + "name": "InternetAudioAds", + "categoryId": 0, + "url": "http://www.internetaudioads.com/", + "companyId": "internetaudioads" + }, + "internetbrands": { + "name": "InternetBrands", + "categoryId": 7, + "url": "http://www.internetbrands.com/", + "companyId": "internet_brands" + }, + "interpolls": { + "name": "Interpolls", + "categoryId": 4, + "url": "http://www.interpolls.com/", + "companyId": "interpolls" + }, + "interyield": { + "name": "Interyield", + "categoryId": 4, + "url": "http://www.advertise.com/publisher-solutions/", + "companyId": "advertise.com" + }, + "intilery": { + "name": "Intilery", + "categoryId": 6, + "url": "http://www.intilery.com", + "companyId": "intilery" + }, + "intimate_merger": { + "name": "Intimate Merger", + "categoryId": 6, + "url": "https://corp.intimatemerger.com/", + "companyId": "intimate_merger" + }, + "investingchannel": { + "name": "Investing Channel", + "categoryId": 8, + "url": "http://www.investingchannel.com/", + "companyId": "investingchannel" + }, + "inviziads": { + "name": "InviziAds", + "categoryId": 4, + "url": "http://www.inviziads.com", + "companyId": "inviziads" + }, + "invoca": { + "name": "Invoca", + "categoryId": 4, + "url": "http://www.invoca.com/", + "companyId": "invoca" + }, + "invodo": { + "name": "Invodo", + "categoryId": 6, + "url": "http://www.invodo.com/", + "companyId": "invodo" + }, + "ionicframework.com": { + "name": "Ionic", + "categoryId": 8, + "url": "https://ionicframework.com/", + "companyId": null + }, + "iotec": { + "name": "iotec", + "categoryId": 4, + "url": "https://www.iotecglobal.com/", + "companyId": "iotec" + }, + "iovation": { + "name": "iovation", + "categoryId": 5, + "url": "http://www.iovation.com/", + "companyId": "iovation" + }, + "ip-label": { + "name": "ip-label", + "categoryId": 6, + "url": "http://www.ip-label.co.uk/", + "companyId": "ip-label" + }, + "ip_targeting": { + "name": "IP Targeting", + "categoryId": 6, + "url": "https://www.iptargeting.com/", + "companyId": "el_toro" + }, + "ip_tracker": { + "name": "IP Tracker", + "categoryId": 6, + "url": "http://www.ip-tracker.org/", + "companyId": "ip_tracker" + }, + "iperceptions": { + "name": "iPerceptions", + "categoryId": 2, + "url": "http://www.iperceptions.com/", + "companyId": "iperceptions" + }, + "ipfingerprint": { + "name": "IPFingerprint", + "categoryId": 6, + "url": "http://www.ipfingerprint.com/", + "companyId": "ipfingerprint" + }, + "ipg_mediabrands": { + "name": "IPG Mediabrands", + "categoryId": 4, + "url": "https://www.ipgmediabrands.com/", + "companyId": "ipg_mediabrands" + }, + "ipify": { + "name": "ipify", + "categoryId": 8, + "url": "https://www.ipify.org/", + "companyId": null + }, + "ipinfo": { + "name": "Ipinfo", + "categoryId": 2, + "url": "https://ipinfo.io/", + "companyId": "ipinfo.io" + }, + "iplogger": { + "name": "IPLogger", + "categoryId": 6, + "url": "http://iplogger.ru/", + "companyId": "iplogger" + }, + "iprom": { + "name": "iprom", + "categoryId": 4, + "url": "http://www.iprom.si/", + "companyId": "iprom" + }, + "ipromote": { + "name": "iPromote", + "categoryId": 4, + "url": "http://www.ipromote.com/", + "companyId": "ipromote" + }, + "iprospect": { + "name": "iProspect", + "categoryId": 4, + "url": "http://www.iprospect.com/", + "companyId": "dentsu_aegis_network" + }, + "iqiyi": { + "name": "iQiyi", + "categoryId": 0, + "url": "https://www.iqiyi.com/", + "companyId": "iqiyi", + "source": "AdGuard" + }, + "ironsource": { + "name": "ironSource Ltd.", + "categoryId": 4, + "url": "https://www.is.com", + "companyId": "unity", + "source": "AdGuard" + }, + "isocket": { + "name": "isocket", + "categoryId": 4, + "url": "http://www.isocket.com/", + "companyId": "rubicon_project" + }, + "isolarcloud": { + "name": "iSolarCloud", + "categoryId": 6, + "url": "https://isolarcloud.com/", + "companyId": "sungrow", + "source": "AdGuard" + }, + "ispot.tv": { + "name": "iSpot.tv", + "categoryId": 4, + "url": "https://www.ispot.tv/", + "companyId": null + }, + "itineraire.info": { + "name": "itineraire.info", + "categoryId": 2, + "url": "https://www.itineraire.info/", + "companyId": null + }, + "itunes_link_maker": { + "name": "iTunes Link Maker", + "categoryId": 4, + "url": "https://www.apple.com/", + "companyId": "apple" + }, + "ity.im": { + "name": "ity.im", + "categoryId": 4, + "url": "http://ity.im/", + "companyId": "ity.im" + }, + "iubenda.com": { + "name": "iubenda", + "categoryId": 5, + "url": "https://www.iubenda.com/", + "companyId": "iubenda" + }, + "ivcbrasil.org.br": { + "name": "IVC Brasil", + "categoryId": 6, + "url": "https://ivcbrasil.org.br/#/home", + "companyId": null + }, + "ividence": { + "name": "Ividence", + "categoryId": 4, + "url": "https://www.ividence.com/home/", + "companyId": "sien" + }, + "iwiw_widgets": { + "name": "iWiW Widgets", + "categoryId": 2, + "url": "http://iwiw.hu", + "companyId": "iwiw" + }, + "ixi_digital": { + "name": "IXI Digital", + "categoryId": 4, + "url": "http://www.equifax.com/home/en_us", + "companyId": "equifax" + }, + "ixquick.com": { + "name": "ixquick", + "categoryId": 8, + "url": "https://www.ixquick.com/", + "companyId": "startpage" + }, + "izooto": { + "name": "iZooto", + "categoryId": 6, + "url": "https://www.izooto.com/", + "companyId": "izooto" + }, + "j-list_affiliate_program": { + "name": "J-List Affiliate Program", + "categoryId": 4, + "url": "http://www.jlist.com/page/affiliates.html", + "companyId": "j-list" + }, + "jaco": { + "name": "Jaco", + "categoryId": 6, + "url": "https://www.walkme.com/", + "companyId": "walkme" + }, + "janrain": { + "name": "Janrain", + "categoryId": 6, + "url": "http://www.janrain.com/", + "companyId": "akamai" + }, + "jeeng": { + "name": "Jeeng", + "categoryId": 4, + "url": "https://jeeng.com/", + "companyId": "jeeng" + }, + "jeeng_widgets": { + "name": "Jeeng Widgets", + "categoryId": 4, + "url": "https://jeeng.com/", + "companyId": "jeeng" + }, + "jet_interactive": { + "name": "Jet Interactive", + "categoryId": 6, + "url": "http://www.jetinteractive.com.au/", + "companyId": "jet_interactive" + }, + "jetbrains": { + "name": "JetBrains", + "categoryId": 8, + "url": "https://www.jetbrains.com/", + "companyId": "jetbrains", + "source": "AdGuard" + }, + "jetlore": { + "name": "Jetlore", + "categoryId": 6, + "url": "http://www.jetlore.com/", + "companyId": "jetlore" + }, + "jetpack": { + "name": "Jetpack", + "categoryId": 6, + "url": "https://jetpack.com/", + "companyId": "automattic" + }, + "jetpack_digital": { + "name": "Jetpack Digital", + "categoryId": 6, + "url": "http://www.jetpack.com/", + "companyId": "jetpack_digital" + }, + "jimdo.com": { + "name": "jimdo.com", + "categoryId": 10, + "url": null, + "companyId": null + }, + "jink": { + "name": "Jink", + "categoryId": 4, + "url": "http://www.jink.de/", + "companyId": "jink" + }, + "jirafe": { + "name": "Jirafe", + "categoryId": 6, + "url": "http://jirafe.com/", + "companyId": "jirafe" + }, + "jivochat": { + "name": "JivoSite", + "categoryId": 2, + "url": "https://www.jivochat.com/", + "companyId": "jivochat" + }, + "jivox": { + "name": "Jivox", + "categoryId": 4, + "url": "http://www.jivox.com/", + "companyId": "jivox" + }, + "jobs_2_careers": { + "name": "Jobs 2 Careers", + "categoryId": 4, + "url": "http://www.jobs2careers.com/", + "companyId": "jobs_2_careers" + }, + "joinhoney": { + "name": "Honey", + "categoryId": 8, + "url": "https://www.joinhoney.com/", + "companyId": null + }, + "jornaya": { + "name": "Jornaya", + "categoryId": 6, + "url": "http://leadid.com/", + "companyId": "jornaya" + }, + "jquery": { + "name": "jQuery", + "categoryId": 9, + "url": "https://jquery.org/", + "companyId": "js_foundation" + }, + "js_communications": { + "name": "JS Communications", + "categoryId": 4, + "url": "http://www.jssearch.net/", + "companyId": "js_communications" + }, + "jsdelivr": { + "name": "jsDelivr", + "categoryId": 9, + "url": "https://www.jsdelivr.com/", + "companyId": null + }, + "jse_coin": { + "name": "JSE Coin", + "categoryId": 4, + "url": "https://jsecoin.com/", + "companyId": "jse_coin" + }, + "jsuol.com.br": { + "name": "jsuol.com.br", + "categoryId": 4, + "url": null, + "companyId": null + }, + "juggcash": { + "name": "JuggCash", + "categoryId": 3, + "url": "http://www.juggcash.com", + "companyId": "juggcash" + }, + "juiceadv": { + "name": "JuiceADV", + "categoryId": 4, + "url": "http://juiceadv.com/", + "companyId": "juiceadv" + }, + "juicyads": { + "name": "JuicyAds", + "categoryId": 3, + "url": "http://www.juicyads.com/", + "companyId": "juicyads" + }, + "jumplead": { + "name": "Jumplead", + "categoryId": 6, + "url": "https://jumplead.com/", + "companyId": "jumplead" + }, + "jumpstart_tagging_solutions": { + "name": "Jumpstart Tagging Solutions", + "categoryId": 6, + "url": "http://www.hearst.com/", + "companyId": "hearst" + }, + "jumptap": { + "name": "Jumptap", + "categoryId": 4, + "url": "http://www.jumptap.com/", + "companyId": "verizon" + }, + "jumptime": { + "name": "JumpTime", + "categoryId": 6, + "url": "http://www.jumptime.com/", + "companyId": "openx" + }, + "just_answer": { + "name": "Just Answer", + "categoryId": 2, + "url": "https://www.justanswer.com/", + "companyId": "just_answer" + }, + "just_premium": { + "name": "Just Premium", + "categoryId": 4, + "url": "http://justpremium.com/", + "companyId": "just_premium" + }, + "just_relevant": { + "name": "Just Relevant", + "categoryId": 4, + "url": "http://www.justrelevant.com/", + "companyId": "just_relevant" + }, + "jvc.gg": { + "name": "Jeuxvideo CDN", + "categoryId": 9, + "url": "http://www.jeuxvideo.com/", + "companyId": null + }, + "jw_player": { + "name": "JW Player", + "categoryId": 0, + "url": "https://www.jwplayer.com/", + "companyId": "jw_player" + }, + "jw_player_ad_solutions": { + "name": "JW Player Ad Solutions", + "categoryId": 4, + "url": "http://www.longtailvideo.com/adsolution/", + "companyId": "jw_player" + }, + "kaeufersiegel.de": { + "name": "Käufersiegel", + "categoryId": 2, + "url": "https://www.kaeufersiegel.de/", + "companyId": null + }, + "kairion.de": { + "name": "kairion", + "categoryId": 4, + "url": "https://kairion.de/", + "companyId": "prosieben_sat1" + }, + "kaloo.ga": { + "name": "Kalooga", + "categoryId": 4, + "url": "https://www.kalooga.com/", + "companyId": "kalooga" + }, + "kalooga_widget": { + "name": "Kalooga Widget", + "categoryId": 4, + "url": "http://kalooga.com/", + "companyId": "kalooga" + }, + "kaltura": { + "name": "Kaltura", + "categoryId": 0, + "url": "http://corp.kaltura.com/", + "companyId": "kaltura" + }, + "kameleoon": { + "name": "Kameleoon", + "categoryId": 6, + "url": "http://www.kameleoon.com/", + "companyId": "kameleoon" + }, + "kampyle": { + "name": "Medallia", + "categoryId": 2, + "url": "http://www.kampyle.com/", + "companyId": "medallia" + }, + "kanoodle": { + "name": "Kanoodle", + "categoryId": 4, + "url": "http://www.kanoodle.com/", + "companyId": "kanoodle" + }, + "kantar_media": { + "name": "Kantar Media", + "categoryId": 4, + "url": "https://www.kantarmedia.com/", + "companyId": "wpp" + }, + "karambasecurity": { + "name": "Karamba Security", + "categoryId": 8, + "url": "https://karambasecurity.com/", + "companyId": "karambasecurity", + "source": "AdGuard" + }, + "kargo": { + "name": "Kargo", + "categoryId": 4, + "url": "http://www.kargo.com/", + "companyId": "kargo" + }, + "kaspersky-labs.com": { + "name": "Kaspersky Labs", + "categoryId": 12, + "url": "https://www.kaspersky.com/", + "companyId": "AO Kaspersky Lab" + }, + "kataweb.it": { + "name": "KataWeb", + "categoryId": 4, + "url": "http://www.kataweb.it/", + "companyId": null + }, + "katchup": { + "name": "Katchup", + "categoryId": 4, + "url": "http://www.katchup.fr/", + "companyId": "katchup" + }, + "kauli": { + "name": "Kauli", + "categoryId": 4, + "url": "http://kau.li/", + "companyId": "kauli" + }, + "kavanga": { + "name": "Kavanga", + "categoryId": 4, + "url": "http://kavanga.ru/", + "companyId": "kavanga" + }, + "kayo_sports": { + "name": "Kayo Sports", + "categoryId": 0, + "url": "https://kayosports.com.au/", + "companyId": "news_corp", + "source": "AdGuard" + }, + "keen_io": { + "name": "Keen IO", + "categoryId": 6, + "url": "https://keen.io", + "companyId": "keen_io" + }, + "kelkoo": { + "name": "Kelkoo", + "categoryId": 4, + "url": "http://www.kelkoo.com/", + "companyId": "kelkoo" + }, + "kenshoo": { + "name": "Kenshoo", + "categoryId": 6, + "url": "http://www.kenshoo.com/", + "companyId": "kenshoo" + }, + "keymetric": { + "name": "KeyMetric", + "categoryId": 6, + "url": "http://keymetric.net/", + "companyId": "keymetric" + }, + "keytiles": { + "name": "Keytiles", + "categoryId": 6, + "url": "http://keytiles.com/", + "companyId": "keytiles" + }, + "keywee": { + "name": "Keywee", + "categoryId": 6, + "url": "https://keywee.co/", + "companyId": "keywee" + }, + "keywordmax": { + "name": "KeywordMax", + "categoryId": 4, + "url": "http://www.keywordmax.com/", + "companyId": "digital_river" + }, + "khoros": { + "name": "Khoros", + "categoryId": 7, + "url": "http://www.massrelevance.com/", + "companyId": "khoros" + }, + "khzbeucrltin.com": { + "name": "khzbeucrltin.com", + "categoryId": 11, + "url": null, + "companyId": null + }, + "kickfactory": { + "name": "Kickfactory", + "categoryId": 4, + "url": "https://kickfactory.com/", + "companyId": "kickfactory" + }, + "kickfire": { + "name": "Kickfire", + "categoryId": 4, + "url": "http://www.visistat.com/", + "companyId": "kickfire" + }, + "kik": { + "name": "Kik", + "categoryId": 7, + "url": "https://kik.com/", + "companyId": "medialab", + "source": "AdGuard" + }, + "king.com": { + "name": "King.com", + "categoryId": 4, + "url": "http://www.king.com/", + "companyId": "king.com" + }, + "king_com": { + "name": "King.com", + "categoryId": 8, + "url": "https://king.com/", + "companyId": "activision_blizzard" + }, + "kinja.com": { + "name": "Kinja", + "categoryId": 6, + "url": "https://kinja.com/", + "companyId": "gizmodo" + }, + "kiosked": { + "name": "Kiosked", + "categoryId": 4, + "url": "http://www.kiosked.com/", + "companyId": "kiosked" + }, + "kissmetrics.com": { + "name": "Kissmetrics", + "categoryId": 6, + "url": "https://www.kissmetrics.com/", + "companyId": "kissmetrics" + }, + "kitara_media": { + "name": "Kitara Media", + "categoryId": 4, + "url": "http://www.kitaramedia.com/", + "companyId": "kitara_media" + }, + "kixer": { + "name": "Kixer", + "categoryId": 4, + "url": "http://www.kixer.com", + "companyId": "kixer" + }, + "klarna.com": { + "name": "Klarna", + "categoryId": 2, + "url": "https://www.klarna.com/", + "companyId": null + }, + "klaviyo": { + "name": "Klaviyo", + "categoryId": 6, + "url": "https://www.klaviyo.com/", + "companyId": "klaviyo" + }, + "klikki": { + "name": "Klikki", + "categoryId": 4, + "url": "http://www.klikki.com/", + "companyId": "klikki" + }, + "kliksaya": { + "name": "KlikSaya", + "categoryId": 4, + "url": "http://www.kliksaya.com", + "companyId": "kliksaya" + }, + "kmeleo": { + "name": "Kméléo", + "categoryId": 4, + "url": "http://www.6peo.com/", + "companyId": "6peo" + }, + "knoopstat": { + "name": "Knoopstat", + "categoryId": 6, + "url": "http://www.knoopstat.nl", + "companyId": "knoopstat" + }, + "knotch": { + "name": "Knotch", + "categoryId": 2, + "url": "http://knotch.it", + "companyId": "knotch" + }, + "komoona": { + "name": "Komoona", + "categoryId": 4, + "url": "http://www.komoona.com/", + "companyId": "komoona" + }, + "kontera_contentlink": { + "name": "Kontera ContentLink", + "categoryId": 4, + "url": "http://www.kontera.com/", + "companyId": "singtel" + }, + "kontextr": { + "name": "Kontextr", + "categoryId": 4, + "url": "https://www.kontextr.com/", + "companyId": "kontext" + }, + "kontextua": { + "name": "Kontextua", + "categoryId": 4, + "url": "http://www.kontextua.com/", + "companyId": "kontextua" + }, + "korrelate": { + "name": "Korrelate", + "categoryId": 4, + "url": "http://korrelate.com/", + "companyId": "korrelate" + }, + "kortx": { + "name": "Kortx", + "categoryId": 6, + "url": "http://www.kortx.io/", + "companyId": "kortx" + }, + "kount": { + "name": "Kount", + "categoryId": 6, + "url": "https://kount.com/", + "companyId": null + }, + "krux_digital": { + "name": "Salesforce DMP", + "categoryId": 4, + "url": "https://www.salesforce.com/products/marketing-cloud/data-management/?mc=DMP", + "companyId": "salesforce" + }, + "kupona": { + "name": "Kupona", + "categoryId": 4, + "url": "http://www.kupona-media.de/en/retargeting-and-performance-media-width-kupona", + "companyId": "kupona" + }, + "kxcdn.com": { + "name": "Keycdn", + "categoryId": 9, + "url": "https://www.keycdn.com/", + "companyId": null + }, + "kyto": { + "name": "Kyto", + "categoryId": 6, + "url": "https://www.kyto.com/", + "companyId": "kyto" + }, + "ladsp.com": { + "name": "Logicad", + "categoryId": 4, + "url": "https://www.logicad.com/", + "companyId": "logicad" + }, + "lanista_concepts": { + "name": "Lanista Concepts", + "categoryId": 4, + "url": "http://lanistaconcepts.com/", + "companyId": "lanista_concepts" + }, + "latimes": { + "name": "Los Angeles Times", + "categoryId": 8, + "url": "http://www.latimes.com/", + "companyId": "latimes" + }, + "launch_darkly": { + "name": "Launch Darkly", + "categoryId": 5, + "url": "https://launchdarkly.com/index.html", + "companyId": "launch_darkly" + }, + "launchbit": { + "name": "LaunchBit", + "categoryId": 4, + "url": "https://www.launchbit.com/", + "companyId": "launchbit" + }, + "launchpad": { + "name": "Launchpad", + "categoryId": 8, + "url": "https://launchpad.net/", + "companyId": "canonical", + "source": "AdGuard" + }, + "layer-ad.org": { + "name": "Layer-ADS.net", + "categoryId": 4, + "url": "http://layer-ads.net/", + "companyId": null + }, + "lazada": { + "name": "Lazada", + "categoryId": 4, + "url": "https://www.lazada.com/", + "companyId": "lazada" + }, + "lcx_digital": { + "name": "LCX Digital", + "categoryId": 4, + "url": "http://www.lcx.com/", + "companyId": "lcx_digital" + }, + "le_monde.fr": { + "name": "Le Monde.fr", + "categoryId": 8, + "url": "http://www.lemonde.fr/", + "companyId": "le_monde.fr" + }, + "lead_liaison": { + "name": "Lead Liaison", + "categoryId": 6, + "url": "https://www.leadliaison.com", + "companyId": "lead_liaison" + }, + "leadback": { + "name": "Leadback", + "categoryId": 6, + "url": "http://leadback.ru/?utm_source=leadback_widget&utm_medium=eas-balt.ru&utm_campaign=self_ad", + "companyId": "leadback" + }, + "leaddyno": { + "name": "LeadDyno", + "categoryId": 4, + "url": "http://www.leaddyno.com", + "companyId": "leaddyno" + }, + "leadforensics": { + "name": "LeadForensics", + "categoryId": 4, + "url": "http://www.leadforensics.com/", + "companyId": "lead_forensics" + }, + "leadgenic": { + "name": "LeadGENIC", + "categoryId": 4, + "url": "https://leadgenic.com/", + "companyId": "leadgenic" + }, + "leadhit": { + "name": "LeadHit", + "categoryId": 2, + "url": "http://leadhit.ru/", + "companyId": "leadhit" + }, + "leadin": { + "name": "Leadin", + "categoryId": 6, + "url": "https://www.hubspot.com/", + "companyId": "hubspot" + }, + "leading_reports": { + "name": "Leading Reports", + "categoryId": 4, + "url": "https://www.leadingreports.de/", + "companyId": "leading_reports" + }, + "leadinspector": { + "name": "LeadInspector", + "categoryId": 6, + "url": "https://www.leadinspector.de/", + "companyId": "leadinspector" + }, + "leadlander": { + "name": "LeadLander", + "categoryId": 6, + "url": "http://www.leadlander.com/", + "companyId": "leadlander" + }, + "leadlife": { + "name": "LeadLife", + "categoryId": 2, + "url": "http://leadlife.com/", + "companyId": "leadlife" + }, + "leadpages": { + "name": "Leadpages", + "categoryId": 6, + "url": "https://www.leadpages.net/", + "companyId": "leadpages" + }, + "leadplace": { + "name": "LeadPlace", + "categoryId": 6, + "url": "https://temelio.com", + "companyId": "leadplace" + }, + "leads_by_web.com": { + "name": "Leads by Web.com", + "categoryId": 4, + "url": "http://www.leadsbyweb.com", + "companyId": "web.com_group" + }, + "leadscoreapp": { + "name": "LeadScoreApp", + "categoryId": 2, + "url": "http://leadscoreapp.com", + "companyId": "leadscoreapp" + }, + "leadsius": { + "name": "Leadsius", + "categoryId": 4, + "url": "http://www.leadsius.com/", + "companyId": "leadsius" + }, + "leady": { + "name": "Leady", + "categoryId": 4, + "url": "http://www.leady.cz/", + "companyId": "leady" + }, + "leiki": { + "name": "Leiki", + "categoryId": 4, + "url": "http://www.leiki.com", + "companyId": "leiki" + }, + "lengow": { + "name": "Lengow", + "categoryId": 4, + "url": "http://www.lengow.com/", + "companyId": "lengow" + }, + "lenmit.com": { + "name": "lenmit.com", + "categoryId": 11, + "url": null, + "companyId": null + }, + "lentainform.com": { + "name": "lentainform.com", + "categoryId": 8, + "url": "https://www.lentainform.com/", + "companyId": null + }, + "lenua.de": { + "name": "Lenua System", + "categoryId": 4, + "url": "http://lenua.de/", + "companyId": "synatix" + }, + "let_reach": { + "name": "Let Reach", + "categoryId": 2, + "url": "https://letreach.com/", + "companyId": "let_reach" + }, + "lets_encrypt": { + "name": "Let's Encrypt", + "categoryId": 5, + "url": "https://letsencrypt.org/", + "companyId": "isrg", + "source": "AdGuard" + }, + "letv": { + "name": "LeTV", + "categoryId": 6, + "url": "http://www.le.com/", + "companyId": "letv" + }, + "level3_communications": { + "name": "Level 3 Communications, Inc.", + "categoryId": 8, + "url": "http://www.level3.com/en/", + "companyId": "level3_communications" + }, + "lgads": { + "name": "LG Ad Solutions", + "categoryId": 4, + "url": "https://lgads.tv/", + "companyId": "lgcorp", + "source": "AdGuard" + }, + "lgtv": { + "name": "LG TV", + "categoryId": 8, + "url": "https://www.lg.com/", + "companyId": "lgcorp", + "source": "AdGuard" + }, + "licensebuttons.net": { + "name": "licensebuttons.net", + "categoryId": 9, + "url": "https://licensebuttons.net/", + "companyId": null + }, + "lifestreet_media": { + "name": "LifeStreet Media", + "categoryId": 4, + "url": "http://lifestreetmedia.com/", + "companyId": "lifestreet_media" + }, + "ligatus": { + "name": "Ligatus", + "categoryId": 4, + "url": "http://www.ligatus.com/", + "companyId": "outbrain" + }, + "limk": { + "name": "Limk", + "categoryId": 4, + "url": "https://limk.com/", + "companyId": "limk" + }, + "line_apps": { + "name": "Line", + "categoryId": 6, + "url": "https://line.me/en-US/", + "companyId": "line" + }, + "linezing": { + "name": "LineZing", + "categoryId": 4, + "url": "http://www.linezing.com/", + "companyId": "linezing" + }, + "linkbucks": { + "name": "Linkbucks", + "categoryId": 4, + "url": "http://www.linkbucks.com/", + "companyId": "linkbucks" + }, + "linkconnector": { + "name": "LinkConnector", + "categoryId": 4, + "url": "http://www.linkconnector.com", + "companyId": "linkconnector" + }, + "linkedin": { + "name": "LinkedIn", + "categoryId": 8, + "url": "https://www.linkedin.com/", + "companyId": "microsoft" + }, + "linkedin_ads": { + "name": "LinkedIn Ads", + "categoryId": 4, + "url": "http://www.linkedin.com/", + "companyId": "microsoft" + }, + "linkedin_analytics": { + "name": "LinkedIn Analytics", + "categoryId": 6, + "url": "https://www.microsoft.com/", + "companyId": "microsoft" + }, + "linkedin_marketing_solutions": { + "name": "LinkedIn Marketing Solutions", + "categoryId": 4, + "url": "https://business.linkedin.com/marketing-solutions", + "companyId": "microsoft" + }, + "linkedin_widgets": { + "name": "LinkedIn Widgets", + "categoryId": 7, + "url": "https://www.linkedin.com", + "companyId": "microsoft" + }, + "linker": { + "name": "Linker", + "categoryId": 4, + "url": "https://linker.hr/", + "companyId": "linker" + }, + "linkprice": { + "name": "LinkPrice", + "categoryId": 4, + "url": "http://www.linkprice.com/", + "companyId": "linkprice" + }, + "linkpulse": { + "name": "Linkpulse", + "categoryId": 6, + "url": "http://www.linkpulse.com/", + "companyId": "linkpulse" + }, + "linksalpha": { + "name": "LinksAlpha", + "categoryId": 7, + "url": "http://www.linksalpha.com", + "companyId": "linksalpha" + }, + "linksmart": { + "name": "LinkSmart", + "categoryId": 4, + "url": "http://www.linksmart.com/", + "companyId": "sovrn" + }, + "linkstorm": { + "name": "Linkstorm", + "categoryId": 2, + "url": "http://www.linkstorms.com/", + "companyId": "linkstorm" + }, + "linksynergy.com": { + "name": "Rakuten LinkShare", + "categoryId": 4, + "url": "https://rakutenmarketing.com/affiliate", + "companyId": "rakuten" + }, + "linkup": { + "name": "LinkUp", + "categoryId": 6, + "url": "http://www.linkup.com/", + "companyId": "linkup" + }, + "linkwise": { + "name": "Linkwise", + "categoryId": 4, + "url": "http://linkwi.se/global-en/", + "companyId": "linkwise" + }, + "linkwithin": { + "name": "LinkWithin", + "categoryId": 7, + "url": "http://www.linkwithin.com/", + "companyId": "linkwithin" + }, + "liquidm_technology_gmbh": { + "name": "LiquidM Technology GmbH", + "categoryId": 4, + "url": "https://liquidm.com/", + "companyId": "liquidm" + }, + "liqwid": { + "name": "Liqwid", + "categoryId": 4, + "url": "https://liqwid.com/", + "companyId": "liqwid" + }, + "list.ru": { + "name": "Rating@Mail.Ru", + "categoryId": 7, + "url": "http://list.ru/", + "companyId": "megafon" + }, + "listrak": { + "name": "Listrak", + "categoryId": 2, + "url": "http://www.listrak.com/", + "companyId": "listrak" + }, + "live2support": { + "name": "Live2Support", + "categoryId": 2, + "url": "http://www.live2support.com/", + "companyId": "live2support" + }, + "live800": { + "name": "Live800", + "categoryId": 2, + "url": "http://live800.com", + "companyId": "live800" + }, + "live_agent": { + "name": "Live Agent", + "categoryId": 2, + "url": "https://www.ladesk.com/", + "companyId": "liveagent" + }, + "live_help_now": { + "name": "Live Help Now", + "categoryId": 2, + "url": "http://www.livehelpnow.net/", + "companyId": "live_help_now" + }, + "live_intent": { + "name": "Live Intent", + "categoryId": 6, + "url": "http://www.liveintent.com/", + "companyId": "liveintent" + }, + "live_journal": { + "name": "Live Journal", + "categoryId": 6, + "url": "http://www.livejournal.com/", + "companyId": "livejournal" + }, + "liveadexchanger.com": { + "name": "liveadexchanger.com", + "categoryId": 11, + "url": null, + "companyId": null + }, + "livechat": { + "name": "LiveChat", + "categoryId": 2, + "url": "http://www.livechatinc.com", + "companyId": "livechat" + }, + "livechatnow": { + "name": "LiveChatNow", + "categoryId": 2, + "url": "http://www.livechatnow.com/", + "companyId": "livechatnow!" + }, + "liveclicker": { + "name": "Liveclicker", + "categoryId": 2, + "url": "http://www.liveclicker.com", + "companyId": "liveclicker" + }, + "livecounter": { + "name": "Livecounter", + "categoryId": 6, + "url": "http://www.livecounter.dk/", + "companyId": "livecounter" + }, + "livefyre": { + "name": "Livefyre", + "categoryId": 1, + "url": "http://www.livefyre.com/", + "companyId": "adobe" + }, + "liveinternet": { + "name": "LiveInternet", + "categoryId": 1, + "url": "http://www.liveinternet.ru/", + "companyId": "liveinternet" + }, + "liveperson": { + "name": "LivePerson", + "categoryId": 2, + "url": "http://www.liveperson.com/", + "companyId": "liveperson" + }, + "liveramp": { + "name": "LiveRamp", + "categoryId": 4, + "url": "https://liveramp.com/", + "companyId": "acxiom" + }, + "livere": { + "name": "LiveRe", + "categoryId": 7, + "url": "http://www.livere.com/", + "companyId": "livere" + }, + "livesportmedia.eu": { + "name": "Livesport Media", + "categoryId": 8, + "url": "http://www.livesportmedia.eu/", + "companyId": null + }, + "livestream": { + "name": "Livestream", + "categoryId": 0, + "url": "http://vimeo.com/", + "companyId": "vimeo" + }, + "livetex.ru": { + "name": "LiveTex", + "categoryId": 2, + "url": "https://livetex.ru/", + "companyId": "livetex" + }, + "lkqd": { + "name": "LKQD", + "categoryId": 4, + "url": "http://www.lkqd.com/", + "companyId": "nexstar" + }, + "loadbee.com": { + "name": "Loadbee", + "categoryId": 4, + "url": "https://company.loadbee.com/de/loadbee-home", + "companyId": null + }, + "loadercdn.com": { + "name": "loadercdn.com", + "categoryId": 11, + "url": null, + "companyId": null + }, + "loadsource.org": { + "name": "loadsource.org", + "categoryId": 11, + "url": null, + "companyId": null + }, + "localytics": { + "name": "Localytics", + "categoryId": 101, + "url": "https://uplandsoftware.com/localytics/", + "companyId": "upland", + "source": "AdGuard" + }, + "lockerdome": { + "name": "LockerDome", + "categoryId": 7, + "url": "https://lockerdome.com", + "companyId": "lockerdome" + }, + "lockerz_share": { + "name": "AddToAny", + "categoryId": 7, + "url": "http://www.addtoany.com/", + "companyId": "addtoany" + }, + "logan_media": { + "name": "Logan Media", + "categoryId": 6, + "url": "http://loganmedia.mobi/", + "companyId": "logan_media" + }, + "logdna": { + "name": "LogDNA", + "categoryId": 4, + "url": "http://www.answerbook.com/", + "companyId": "logdna" + }, + "loggly": { + "name": "Loggly", + "categoryId": 6, + "url": "http://loggly.com/", + "companyId": "loggly" + }, + "logly": { + "name": "logly", + "categoryId": 6, + "url": "http://logly.co.jp/", + "companyId": "logly" + }, + "logsss.com": { + "name": "logsss.com", + "categoryId": 11, + "url": null, + "companyId": null + }, + "lomadee": { + "name": "Lomadee", + "categoryId": 4, + "url": "http://lomadee.com", + "companyId": "lomadee" + }, + "longtail_video_analytics": { + "name": "JW Player Analytics", + "categoryId": 4, + "url": "http://www.longtailvideo.com/", + "companyId": "jw_player" + }, + "loomia": { + "name": "Loomia", + "categoryId": 4, + "url": "http://www.loomia.com/", + "companyId": "loomia" + }, + "loop11": { + "name": "Loop11", + "categoryId": 6, + "url": "https://360i.com/", + "companyId": "360i" + }, + "loopfuse_oneview": { + "name": "LoopFuse OneView", + "categoryId": 4, + "url": "http://www.loopfuse.com/", + "companyId": "loopfuse" + }, + "lotame": { + "name": "Lotame", + "categoryId": 4, + "url": "http://www.lotame.com/", + "companyId": "lotame" + }, + "lottex_inc": { + "name": "vidcpm.com", + "categoryId": 11, + "url": null, + "companyId": null + }, + "lucid": { + "name": "Lucid", + "categoryId": 4, + "url": "https://luc.id/", + "companyId": "luc.id" + }, + "lucid_media": { + "name": "Lucid Media", + "categoryId": 4, + "url": "http://www.lucidmedia.com/", + "companyId": "singtel" + }, + "lucini": { + "name": "Lucini", + "categoryId": 4, + "url": "http://www.lucinilucini.com/", + "companyId": "lucini_&_lucini_communications" + }, + "lucky_orange": { + "name": "Lucky Orange", + "categoryId": 6, + "url": "http://www.luckyorange.com/", + "companyId": "lucky_orange" + }, + "luckypushh.com": { + "name": "luckypushh.com", + "categoryId": 11, + "url": null, + "companyId": null + }, + "lxr100": { + "name": "LXR100", + "categoryId": 4, + "url": "http://www.netelixir.com/lxr100_PPC_management_tool.html", + "companyId": "netelixir" + }, + "lynchpin_analytics": { + "name": "Lynchpin Analytics", + "categoryId": 4, + "url": "http://www.lynchpin.com/", + "companyId": "lynchpin_analytics" + }, + "lytics": { + "name": "Lytics", + "categoryId": 6, + "url": "https://www.lytics.com/", + "companyId": "lytics" + }, + "lyuoaxruaqdo.com": { + "name": "lyuoaxruaqdo.com", + "categoryId": 11, + "url": null, + "companyId": null + }, + "m-pathy": { + "name": "m-pathy", + "categoryId": 4, + "url": "http://www.m-pathy.com/", + "companyId": "m-pathy" + }, + "m._p._newmedia": { + "name": "M. P. NEWMEDIA", + "categoryId": 4, + "url": "http://www.mp-newmedia.com/", + "companyId": "sticky" + }, + "m4n": { + "name": "M4N", + "categoryId": 4, + "url": "http://www.zanox.com/us/", + "companyId": "axel_springer" + }, + "mad_ads_media": { + "name": "Mad Ads Media", + "categoryId": 4, + "url": "http://www.madadsmedia.com/", + "companyId": "mad_ads_media" + }, + "madeleine.de": { + "name": "madeleine.de", + "categoryId": 4, + "url": null, + "companyId": null + }, + "madison_logic": { + "name": "Madison Logic", + "categoryId": 4, + "url": "http://www.madisonlogic.com/", + "companyId": "madison_logic" + }, + "madnet": { + "name": "MADNET", + "categoryId": 4, + "url": "http://madnet.ru/en", + "companyId": "madnet" + }, + "mads": { + "name": "MADS", + "categoryId": 4, + "url": "http://www.mads.com/", + "companyId": "mads" + }, + "magna_advertise": { + "name": "Magna Advertise", + "categoryId": 4, + "url": "http://magna.ru/", + "companyId": "magna_advertise" + }, + "magnetic": { + "name": "Magnetic", + "categoryId": 4, + "url": "http://www.magnetic.is", + "companyId": "magnetic" + }, + "magnetise_group": { + "name": "Magnetise Group", + "categoryId": 4, + "url": "http://magnetisegroup.com/", + "companyId": "magnetise_group" + }, + "magnify360": { + "name": "Magnify360", + "categoryId": 6, + "url": "http://www.magnify360.com/", + "companyId": "magnify360" + }, + "magnuum.com": { + "name": "magnuum.com", + "categoryId": 11, + "url": null, + "companyId": null + }, + "mail.ru_banner": { + "name": "Mail.Ru Banner Network", + "categoryId": 4, + "url": "http://mail.ru/", + "companyId": "vk", + "source": "AdGuard" + }, + "mail.ru_counter": { + "name": "Mail.Ru Counter", + "categoryId": 2, + "url": "http://mail.ru/", + "companyId": "vk", + "source": "AdGuard" + }, + "mail.ru_group": { + "name": "Mail.Ru Group", + "categoryId": 7, + "url": "http://mail.ru/", + "companyId": "vk", + "source": "AdGuard" + }, + "mailchimp_tracking": { + "name": "MailChimp Tracking", + "categoryId": 4, + "url": "http://mailchimp.com/", + "companyId": "mailchimp" + }, + "mailerlite.com": { + "name": "Mailerlite", + "categoryId": 10, + "url": "https://www.mailerlite.com/", + "companyId": "mailerlite" + }, + "mailtrack.io": { + "name": "MailTrack.io", + "categoryId": 4, + "url": "https://mailtrack.io", + "companyId": "mailtrack" + }, + "mainadv": { + "name": "mainADV", + "categoryId": 4, + "url": "http://www.mainadv.com/", + "companyId": "mainadv" + }, + "makazi": { + "name": "Makazi", + "categoryId": 4, + "url": "http://www.makazi.com/en/", + "companyId": "makazi_group" + }, + "makeappdev.xyz": { + "name": "makeappdev.xyz", + "categoryId": 12, + "url": null, + "companyId": null + }, + "makesource.cool": { + "name": "makesource.cool", + "categoryId": 11, + "url": null, + "companyId": null + }, + "mango": { + "name": "Mango", + "categoryId": 4, + "url": "https://www.mango-office.ru/", + "companyId": "mango_office" + }, + "manycontacts": { + "name": "ManyContacts", + "categoryId": 4, + "url": "https://www.manycontacts.com/", + "companyId": "manycontacts" + }, + "mapandroute.de": { + "name": "Map and Route", + "categoryId": 2, + "url": "http://www.mapandroute.de/", + "companyId": null + }, + "mapbox": { + "name": "Mapbox", + "categoryId": 2, + "url": "https://www.mapbox.com/", + "companyId": null + }, + "maploco": { + "name": "MapLoco", + "categoryId": 4, + "url": "http://www.maploco.com/", + "companyId": "maploco" + }, + "marchex": { + "name": "Marchex", + "categoryId": 4, + "url": "http://www.industrybrains.com/", + "companyId": "marchex" + }, + "marimedia": { + "name": "Marimedia", + "categoryId": 4, + "url": "http://www.marimedia.net/", + "companyId": "tremor_video" + }, + "marin_search_marketer": { + "name": "Marin Search Marketer", + "categoryId": 4, + "url": "http://www.marinsoftware.com/", + "companyId": "marin_software" + }, + "mark_+_mini": { + "name": "Mark & Mini", + "categoryId": 4, + "url": "http://www.markandmini.com/index.cfm", + "companyId": "edm_group" + }, + "market_thunder": { + "name": "Market Thunder", + "categoryId": 4, + "url": "https://www.makethunder.com/", + "companyId": "market_thunder" + }, + "marketgid": { + "name": "MarketGid", + "categoryId": 4, + "url": "http://www.mgid.com/", + "companyId": "marketgid_usa" + }, + "marketing_automation": { + "name": "Marketing Automation", + "categoryId": 4, + "url": "https://en.frodx.com", + "companyId": "frodx" + }, + "marketo": { + "name": "Marketo", + "categoryId": 4, + "url": "http://www.marketo.com/", + "companyId": "marketo" + }, + "markmonitor": { + "name": "MarkMonitor", + "categoryId": 4, + "url": "https://www.markmonitor.com/", + "companyId": "markmonitor", + "source": "AdGuard" + }, + "marktest": { + "name": "Marktest", + "categoryId": 4, + "url": "http://www.marktest.com/", + "companyId": "marktest_group" + }, + "marshadow.io": { + "name": "marshadow.io", + "categoryId": 4, + "url": null, + "companyId": null + }, + "martini_media": { + "name": "Martini Media", + "categoryId": 4, + "url": "http://martinimediainc.com/", + "companyId": "martini_media" + }, + "maru-edu": { + "name": "Maru-EDU", + "categoryId": 2, + "url": "https://www.maruedr.com", + "companyId": "maruedr" + }, + "marvellous_machine": { + "name": "Marvellous Machine", + "categoryId": 6, + "url": "https://www.marvellousmachine.net/", + "companyId": "marvellous_machine" + }, + "master_banner_network": { + "name": "Master Banner Network", + "categoryId": 4, + "url": "http://www.mbn.com.ua/", + "companyId": "master_banner_network" + }, + "mastertarget": { + "name": "MasterTarget", + "categoryId": 4, + "url": "http://mastertarget.ru/", + "companyId": "mastertarget" + }, + "matelso": { + "name": "Matelso", + "categoryId": 6, + "url": "https://www.matelso.de", + "companyId": "matelso" + }, + "mather_analytics": { + "name": "Mather Analytics", + "categoryId": 6, + "url": "https://www.mathereconomics.com/", + "companyId": "mather_economics" + }, + "mathjax.org": { + "name": "MathJax", + "categoryId": 9, + "url": "https://www.mathjax.org/", + "companyId": null + }, + "matiro": { + "name": "Matiro", + "categoryId": 6, + "url": "http://matiro.com/", + "companyId": "matiro" + }, + "matomo": { + "name": "Matomo", + "categoryId": 6, + "url": "https://matomo.org/s", + "companyId": "matomo" + }, + "matomy_market": { + "name": "Matomy Market", + "categoryId": 4, + "url": "http://www.matomymarket.com/", + "companyId": "matomy_media" + }, + "matrix": { + "name": "Matrix", + "categoryId": 5, + "url": "https://matrix.org/", + "companyId": "matrix", + "source": "AdGuard" + }, + "maxbounty": { + "name": "MaxBounty", + "categoryId": 5, + "url": "http://www.maxbounty.com/", + "companyId": "maxbounty" + }, + "maxcdn": { + "name": "MaxCDN", + "categoryId": 9, + "url": "https://www.maxcdn.com/", + "companyId": null + }, + "maxlab": { + "name": "Maxlab", + "categoryId": 4, + "url": "http://maxlab.ru", + "companyId": "maxlab" + }, + "maxmind": { + "name": "MaxMind", + "categoryId": 4, + "url": "http://www.maxmind.com/", + "companyId": "maxmind" + }, + "maxonclick_com": { + "name": "maxonclick.com", + "categoryId": 11, + "url": null, + "companyId": null + }, + "maxpoint_interactive": { + "name": "MaxPoint Interactive", + "categoryId": 4, + "url": "http://www.maxpointinteractive.com/", + "companyId": "maxpoint_interactive" + }, + "maxymiser": { + "name": "Oracle Maxymiser", + "categoryId": 4, + "url": "https://www.oracle.com/marketingcloud/products/testing-and-optimization/index.html", + "companyId": "oracle" + }, + "mbr_targeting": { + "name": "mbr targeting", + "categoryId": 4, + "url": "https://mbr-targeting.com/", + "companyId": "stroer" + }, + "mbuy": { + "name": "MBuy", + "categoryId": 4, + "url": "http://www.adbuyer.com/", + "companyId": "mbuy" + }, + "mcabi": { + "name": "mCabi", + "categoryId": 4, + "url": "https://mcabi.mcloudglobal.com/#", + "companyId": "mcabi" + }, + "mcafee_secure": { + "name": "McAfee Secure", + "categoryId": 5, + "url": "http://www.mcafeesecure.com/us/", + "companyId": "mcafee" + }, + "mconet": { + "name": "MCOnet", + "categoryId": 4, + "url": "http://mconet.biz/", + "companyId": "mconet" + }, + "mdotlabs": { + "name": "MdotLabs", + "categoryId": 4, + "url": "http://www.mdotlabs.com/", + "companyId": "comscore" + }, + "media-clic": { + "name": "Media-clic", + "categoryId": 4, + "url": "http://www.media-clic.com/", + "companyId": "media-click" + }, + "media-imdb.com": { + "name": "IMDB CDN", + "categoryId": 9, + "url": "https://www.imdb.com/", + "companyId": "amazon_associates" + }, + "media.net": { + "name": "Media.net", + "categoryId": 4, + "url": "http://www.media.net/", + "companyId": "media.net" + }, + "media_impact": { + "name": "Media Impact", + "categoryId": 4, + "url": "https://mediaimpact.de/index.html", + "companyId": "media_impact" + }, + "media_innovation_group": { + "name": "Xaxis", + "categoryId": 4, + "url": "https://www.xaxis.com/", + "companyId": "media_innovation_group" + }, + "media_today": { + "name": "Media Today", + "categoryId": 4, + "url": "http://mediatoday.ru/", + "companyId": "media_today" + }, + "mediaad": { + "name": "MediaAd", + "categoryId": 4, + "url": "https://mediaad.org", + "companyId": "mediaad" + }, + "mediaglu": { + "name": "MediaGlu", + "categoryId": 4, + "url": "https://www.mediaglu.com/", + "companyId": "microsoft", + "source": "AdGuard" + }, + "mediahub": { + "name": "MediaHub", + "categoryId": 4, + "url": "http://www.mediahub.com/", + "companyId": "mediahub" + }, + "medialab": { + "name": "MediaLab.AI Inc.", + "categoryId": 8, + "url": "https://medialab.la/", + "companyId": "medialab", + "source": "AdGuard" + }, + "medialand": { + "name": "Medialand", + "categoryId": 4, + "url": "http://medialand.ru", + "companyId": "medialand" + }, + "medialead": { + "name": "Medialead", + "categoryId": 4, + "url": "https://www.medialead.de/", + "companyId": "the_reach_group" + }, + "mediamath": { + "name": "MediaMath", + "categoryId": 4, + "url": "http://www.mediamath.com/", + "companyId": "mediamath" + }, + "mediametrics": { + "name": "Mediametrics", + "categoryId": 7, + "url": "http://mediametrics.ru", + "companyId": "mediametrics" + }, + "median": { + "name": "Median", + "categoryId": 4, + "url": "http://median.hu", + "companyId": "median" + }, + "mediapass": { + "name": "MediaPass", + "categoryId": 4, + "url": "http://www.mediapass.com/", + "companyId": "mediapass" + }, + "mediapost_communications": { + "name": "Mediapost Communications", + "categoryId": 6, + "url": "https://vrm.mediapostcommunication.net/", + "companyId": "mediapost_communications" + }, + "mediarithmics.com": { + "name": "Mediarithmics", + "categoryId": 4, + "url": "http://www.mediarithmics.com/en/", + "companyId": "mediarithmics" + }, + "mediascope": { + "name": "Mediascope", + "categoryId": 6, + "url": "http://mediascope.net/", + "companyId": "mediascope" + }, + "mediashakers": { + "name": "MediaShakers", + "categoryId": 4, + "url": "http://www.mediashakers.com/", + "companyId": "mediashakers" + }, + "mediashift": { + "name": "MediaShift", + "categoryId": 4, + "url": "http://www.mediashift.com/", + "companyId": "mediashift" + }, + "mediator.media": { + "name": "Mediator", + "categoryId": 6, + "url": "https://mediator.media/", + "companyId": "mycom_bv" + }, + "mediav": { + "name": "MediaV", + "categoryId": 4, + "url": "https://www.mediav.com/", + "companyId": "mediav" + }, + "mediawhiz": { + "name": "Mediawhiz", + "categoryId": 4, + "url": "http://www.mediawhiz.com/", + "companyId": "matomy_media" + }, + "medigo": { + "name": "Medigo", + "categoryId": 4, + "url": "https://www.mediego.com/en/", + "companyId": "mediego" + }, + "medley": { + "name": "Medley", + "categoryId": 4, + "url": "http://medley.com/", + "companyId": "friendfinder_networks" + }, + "medyanet": { + "name": "MedyaNet", + "categoryId": 4, + "url": "http://www.medyanet.com.tr/", + "companyId": "medyanet" + }, + "meebo_bar": { + "name": "Meebo Bar", + "categoryId": 7, + "url": "http://bar.meebo.com/", + "companyId": "google" + }, + "meetrics": { + "name": "Meetrics", + "categoryId": 4, + "url": "http://www.meetrics.de/", + "companyId": "meetrics" + }, + "megaindex": { + "name": "MegaIndex", + "categoryId": 4, + "url": "http://www.megaindex.ru", + "companyId": "megaindex" + }, + "meganz": { + "name": "Mega Ltd.", + "categoryId": 8, + "url": "https://mega.io/", + "companyId": "meganz", + "source": "AdGuard" + }, + "mein-bmi.com": { + "name": "mein-bmi.com", + "categoryId": 12, + "url": "https://www.mein-bmi.com/", + "companyId": null + }, + "melissa": { + "name": "Melissa", + "categoryId": 6, + "url": "https://www.melissa.com/", + "companyId": "melissa_global_intelligence" + }, + "melt": { + "name": "Melt", + "categoryId": 4, + "url": "http://meltdsp.com/", + "companyId": "melt" + }, + "menlo": { + "name": "Menlo", + "categoryId": 4, + "url": "http://www.menlotechnologies.cn/", + "companyId": "menlotechnologies" + }, + "mentad": { + "name": "MentAd", + "categoryId": 4, + "url": "http://www.mentad.com/", + "companyId": "mentad" + }, + "mercado": { + "name": "Mercado", + "categoryId": 4, + "url": "https://www.mercadolivre.com.br/", + "companyId": "mercado_livre" + }, + "merchantadvantage": { + "name": "MerchantAdvantage", + "categoryId": 4, + "url": "http://www.merchantadvantage.com/channelmanagement.cfm", + "companyId": "merchantadvantage" + }, + "merchenta": { + "name": "Merchenta", + "categoryId": 4, + "url": "http://www.merchenta.com/", + "companyId": "merchenta" + }, + "mercury_media": { + "name": "Mercury Media", + "categoryId": 4, + "url": "http://trackingsoft.com/", + "companyId": "mercury_media" + }, + "merkle_research": { + "name": "Merkle Research", + "categoryId": 6, + "url": "http://www.dentsuaegisnetwork.com/", + "companyId": "dentsu_aegis_network" + }, + "merkle_rkg": { + "name": "Merkle RKG", + "categoryId": 6, + "url": "https://www.merkleinc.com/what-we-do/digital-agency-services/rkg-now-fully-integrated-merkle", + "companyId": "dentsu_aegis_network" + }, + "messenger.com": { + "name": "Facebook Messenger", + "categoryId": 7, + "url": "https://messenger.com", + "companyId": "facebook" + }, + "meta_network": { + "name": "Meta Network", + "categoryId": 7, + "url": "http://www.metanetwork.com/", + "companyId": "meta_network" + }, + "metaffiliation.com": { + "name": "Netaffiliation", + "categoryId": 4, + "url": "http://netaffiliation.com/", + "companyId": "kwanko" + }, + "metapeople": { + "name": "Metapeople", + "categoryId": 4, + "url": "http://www.metapeople.com/us/", + "companyId": "metapeople" + }, + "metrigo": { + "name": "Metrigo", + "categoryId": 4, + "url": "http://metrigo.com/", + "companyId": "metrigo" + }, + "metriweb": { + "name": "MetriWeb", + "categoryId": 4, + "url": "http://www.metriware.be/", + "companyId": "metriware" + }, + "miaozhen": { + "name": "Miaozhen", + "categoryId": 4, + "url": "http://miaozhen.com/en/index.html", + "companyId": "miaozhen" + }, + "microad": { + "name": "MicroAd", + "categoryId": 4, + "url": "https://www.microad.co.jp/", + "companyId": "microad" + }, + "microsoft": { + "name": "Microsoft Services", + "categoryId": 8, + "url": "http://www.microsoft.com/", + "companyId": "microsoft" + }, + "microsoft_adcenter_conversion": { + "name": "Microsoft adCenter Conversion", + "categoryId": 4, + "url": "https://adcenter.microsoft.com/", + "companyId": "microsoft" + }, + "microsoft_analytics": { + "name": "Microsoft Analytics", + "categoryId": 4, + "url": "https://adcenter.microsoft.com", + "companyId": "microsoft" + }, + "microsoft_clarity": { + "name": "Microsoft Clarity", + "categoryId": 6, + "url": "https://clarity.microsoft.com/", + "companyId": "microsoft" + }, + "mindset_media": { + "name": "Mindset Media", + "categoryId": 4, + "url": "http://www.mindset-media.com/", + "companyId": "google" + }, + "mindspark": { + "name": "Mindspark", + "categoryId": 6, + "url": "http://www.mindspark.com/", + "companyId": "iac_apps" + }, + "mindviz_tracker": { + "name": "MindViz Tracker", + "categoryId": 4, + "url": "http://mvtracker.com/", + "companyId": "mindviz" + }, + "minewhat": { + "name": "MineWhat", + "categoryId": 4, + "url": "http://www.minewhat.com", + "companyId": "minewhat" + }, + "mints_app": { + "name": "Mints App", + "categoryId": 2, + "url": "https://mintsapp.io/", + "companyId": "mints_app" + }, + "minute.ly": { + "name": "minute.ly", + "categoryId": 0, + "url": "http://minute.ly/", + "companyId": "minute.ly" + }, + "minute.ly_video": { + "name": "minute.ly video", + "categoryId": 0, + "url": "http://minute.ly/", + "companyId": "minute.ly" + }, + "mirando": { + "name": "Mirando", + "categoryId": 4, + "url": "http://mirando.de", + "companyId": "mirando" + }, + "mirtesen.ru": { + "name": "mirtesen.ru", + "categoryId": 7, + "url": "https://mirtesen.ru/", + "companyId": null + }, + "mister_bell": { + "name": "Mister Bell", + "categoryId": 4, + "url": "http://misterbell.fr/", + "companyId": "mister_bell" + }, + "mixi": { + "name": "mixi", + "categoryId": 7, + "url": "http://mixi.jp/", + "companyId": "mixi" + }, + "mixpanel": { + "name": "Mixpanel", + "categoryId": 6, + "url": "http://mixpanel.com/", + "companyId": "mixpanel" + }, + "mixpo": { + "name": "Mixpo", + "categoryId": 4, + "url": "http://dynamicvideoad.mixpo.com/", + "companyId": "mixpo" + }, + "mluvii": { + "name": "Mluvii", + "categoryId": 2, + "url": "https://www.mluvii.com", + "companyId": "mluvii" + }, + "mncdn.com": { + "name": "MediaNova CDN", + "categoryId": 9, + "url": "https://www.medianova.com/", + "companyId": null + }, + "moat": { + "name": "Moat", + "categoryId": 4, + "url": "http://www.moat.com/", + "companyId": "oracle" + }, + "mobicow": { + "name": "Mobicow", + "categoryId": 4, + "url": "http://www.mobicow.com/", + "companyId": "mobicow" + }, + "mobify": { + "name": "Mobify", + "categoryId": 4, + "url": "http://www.mobify.com/", + "companyId": "mobify" + }, + "mobtrks.com": { + "name": "mobtrks.com", + "categoryId": 11, + "url": null, + "companyId": null + }, + "mocean_mobile": { + "name": "mOcean Mobile", + "categoryId": 4, + "url": "http://www.moceanmobile.com/", + "companyId": "pubmatic" + }, + "mochapp": { + "name": "MoChapp", + "categoryId": 2, + "url": "http://www.mochapp.com/", + "companyId": "mochapp" + }, + "modern_impact": { + "name": "Modern Impact", + "categoryId": 4, + "url": "http://www.modernimpact.com/", + "companyId": "modern_impact" + }, + "modernus": { + "name": "Modernus", + "categoryId": 6, + "url": "http://www.modernus.is", + "companyId": "modernus" + }, + "modulepush.com": { + "name": "modulepush.com", + "categoryId": 4, + "url": null, + "companyId": null + }, + "mogo_interactive": { + "name": "Mogo Interactive", + "categoryId": 4, + "url": "http://www.mogomarketing.com/", + "companyId": "mogo_interactive" + }, + "mokono_analytics": { + "name": "Mokono Analytics", + "categoryId": 4, + "url": "http://www.populis.com", + "companyId": "populis" + }, + "monero_miner": { + "name": "Monero Miner", + "categoryId": 8, + "url": "http://devappgrant.space/", + "companyId": null + }, + "monetate": { + "name": "Monetate", + "categoryId": 6, + "url": "http://monetate.com", + "companyId": "monetate" + }, + "monetize_me": { + "name": "Monetize Me", + "categoryId": 4, + "url": "http://www.monetize-me.com/", + "companyId": "monetize_me" + }, + "moneytizer": { + "name": "Moneytizer", + "categoryId": 4, + "url": "https://www.themoneytizer.com/", + "companyId": "the_moneytizer" + }, + "mongoose_metrics": { + "name": "Mongoose Metrics", + "categoryId": 4, + "url": "http://www.mongoosemetrics.com/", + "companyId": "mongoose_metrics" + }, + "monitis": { + "name": "Monitis", + "categoryId": 6, + "url": "http://www.monitis.com/", + "companyId": "monitis" + }, + "monitus": { + "name": "Monitus", + "categoryId": 6, + "url": "http://www.monitus.net/", + "companyId": "monitus" + }, + "monotype_gmbh": { + "name": "Monotype GmbH", + "categoryId": 9, + "url": "http://www.monotype.com/", + "companyId": "monotype" + }, + "monotype_imaging": { + "name": "Fonts.com Store", + "categoryId": 2, + "url": "https://www.fonts.com/", + "companyId": "monotype" + }, + "monsido": { + "name": "Monsido", + "categoryId": 6, + "url": "https://monsido.com/", + "companyId": "monsido" + }, + "monster_advertising": { + "name": "Monster Advertising", + "categoryId": 4, + "url": "http://www.monster.com/", + "companyId": "monster_worldwide" + }, + "mooxar": { + "name": "Mooxar", + "categoryId": 4, + "url": "http://mooxar.com/", + "companyId": "mooxar" + }, + "mopinion.com": { + "name": "Mopinion", + "categoryId": 2, + "url": "https://mopinion.com/", + "companyId": "mopinion" + }, + "mopub": { + "name": "MoPub", + "categoryId": 4, + "url": "https://www.mopub.com/", + "companyId": "twitter" + }, + "more_communication": { + "name": "More Communication", + "categoryId": 4, + "url": "http://www.more-com.co.jp/", + "companyId": "more_communication" + }, + "moreads": { + "name": "moreAds", + "categoryId": 4, + "url": "https://www.moras.jp", + "companyId": "moreads" + }, + "motigo_webstats": { + "name": "Motigo Webstats", + "categoryId": 7, + "url": "http://webstats.motigo.com/", + "companyId": "motigo" + }, + "motionpoint": { + "name": "MotionPoint", + "categoryId": 6, + "url": "http://www.motionpoint.com/", + "companyId": "motionpoint_corporation" + }, + "mouseflow": { + "name": "Mouseflow", + "categoryId": 6, + "url": "http://mouseflow.com/", + "companyId": "mouseflow" + }, + "mousestats": { + "name": "MouseStats", + "categoryId": 4, + "url": "http://www.mousestats.com/", + "companyId": "mousestats" + }, + "mousetrace": { + "name": "MouseTrace", + "categoryId": 6, + "url": "http://www.mousetrace.com/", + "companyId": "mousetrace" + }, + "mov.ad": { + "name": "Mov.ad ", + "categoryId": 8, + "url": null, + "companyId": null + }, + "movable_ink": { + "name": "Movable Ink", + "categoryId": 2, + "url": "https://movableink.com/", + "companyId": "movable_ink" + }, + "movable_media": { + "name": "Movable Media", + "categoryId": 4, + "url": "http://www.movablemedia.com/", + "companyId": "movable_media" + }, + "moz": { + "name": "Moz", + "categoryId": 8, + "url": "https://moz.com/", + "companyId": null + }, + "mozilla": { + "name": "Mozilla Foundation", + "categoryId": 8, + "url": "https://www.mozilla.org/", + "companyId": "mozilla", + "source": "AdGuard" + }, + "mozoo": { + "name": "MoZoo", + "categoryId": 4, + "url": "http://mozoo.com/", + "companyId": "mozoo" + }, + "mrp": { + "name": "MRP", + "categoryId": 4, + "url": "https://www.mrpfd.com/", + "companyId": "mrp" + }, + "mrpdata": { + "name": "MRP", + "categoryId": 6, + "url": "http://mrpdata.com/Account/Login?ReturnUrl=%2F", + "companyId": "fifth_story" + }, + "mrskincash": { + "name": "MrSkinCash", + "categoryId": 3, + "url": "http://mrskincash.com/", + "companyId": "mrskincash.com" + }, + "msedge": { + "name": "Microsoft Edge", + "categoryId": 8, + "url": "https://www.microsoft.com/en-us/edge", + "companyId": "microsoft", + "source": "AdGuard" + }, + "msn": { + "name": "Microsoft Network", + "categoryId": 8, + "url": "https://www.microsoft.com/", + "companyId": "microsoft" + }, + "muscula": { + "name": "Muscula", + "categoryId": 4, + "url": "https://www.universe-surf.de/", + "companyId": "universe_surf" + }, + "mux_inc": { + "name": "Mux", + "categoryId": 0, + "url": "https://mux.com/", + "companyId": "mux_inc" + }, + "mybloglog": { + "name": "MyBlogLog", + "categoryId": 7, + "url": "http://www.mybloglog.com/", + "companyId": "verizon" + }, + "mybuys": { + "name": "MyBuys", + "categoryId": 4, + "url": "http://www.mybuys.com/", + "companyId": "magnetic" + }, + "mycdn.me": { + "name": "Mail.Ru CDN", + "categoryId": 9, + "url": "https://corp.megafon.com/", + "companyId": "megafon" + }, + "mycliplister.com": { + "name": "Cliplister", + "categoryId": 2, + "url": "https://www.cliplister.com/", + "companyId": null + }, + "mycounter.ua": { + "name": "MyCounter.ua", + "categoryId": 6, + "url": "http://mycounter.ua", + "companyId": "mycounter.ua" + }, + "myfonts": { + "name": "MyFonts", + "categoryId": 6, + "url": "http://www.myfonts.com/", + "companyId": "myfonts" + }, + "myfonts_counter": { + "name": "MyFonts", + "categoryId": 6, + "url": "http://www.myfonts.com/", + "companyId": "myfonts" + }, + "mypagerank": { + "name": "MyPagerank", + "categoryId": 6, + "url": "http://www.mypagerank.net/", + "companyId": "mypagerank" + }, + "mystat": { + "name": "MyStat", + "categoryId": 7, + "url": "http://mystat.hu/", + "companyId": "myst_statistics" + }, + "mythings": { + "name": "myThings", + "categoryId": 4, + "url": "http://www.mythings.com/", + "companyId": "mythings" + }, + "mytop_counter": { + "name": "Mytop Counter", + "categoryId": 7, + "url": "http://mytop-in.net/", + "companyId": "mytop-in" + }, + "nab": { + "name": "National Australia Bank", + "categoryId": 8, + "url": "https://www.nab.com.au/", + "companyId": "nab", + "source": "AdGuard" + }, + "nakanohito.jp": { + "name": "Nakanohito", + "categoryId": 4, + "url": "http://nakanohito.jp/", + "companyId": "userinsight" + }, + "namogoo": { + "name": "Namoogoo", + "categoryId": 4, + "url": "https://www.namogoo.com/", + "companyId": null + }, + "nanigans": { + "name": "Nanigans", + "categoryId": 4, + "url": "http://www.nanigans.com/", + "companyId": "nanigans" + }, + "nano_interactive": { + "name": "Nano Interactive", + "categoryId": 4, + "url": "http://www.nanointeractive.com/home/de", + "companyId": "nano_interactive" + }, + "nanorep": { + "name": "nanoRep", + "categoryId": 2, + "url": "http://www.nanorep.com/", + "companyId": "logmein" + }, + "narando": { + "name": "Narando", + "categoryId": 0, + "url": "https://narando.com/", + "companyId": "narando" + }, + "narrativ": { + "name": "Narrativ", + "categoryId": 4, + "url": "https://narrativ.com/", + "companyId": "narrativ" + }, + "narrative_io": { + "name": "Narrative", + "categoryId": 6, + "url": "http://www.narrative.io/", + "companyId": "narrative.io" + }, + "natimatica": { + "name": "Natimatica", + "categoryId": 4, + "url": "http://natimatica.com/", + "companyId": "natimatica" + }, + "nativeads.com": { + "name": "native ads", + "categoryId": 4, + "url": "https://nativeads.com/", + "companyId": null + }, + "nativeroll": { + "name": "Nativeroll", + "categoryId": 0, + "url": "http://nativeroll.tv/", + "companyId": "native_roll" + }, + "nativo": { + "name": "Nativo", + "categoryId": 4, + "url": "http://www.nativo.net/", + "companyId": "nativo" + }, + "navegg_dmp": { + "name": "Navegg", + "categoryId": 6, + "url": "https://www.navegg.com/en/", + "companyId": "navegg" + }, + "naver.com": { + "name": "Naver", + "categoryId": 4, + "url": "https://www.naver.com/", + "companyId": "naver" + }, + "naver_search": { + "name": "Naver Search", + "categoryId": 2, + "url": "http://www.naver.com/", + "companyId": "naver" + }, + "nbc_news": { + "name": "NBC News", + "categoryId": 8, + "url": "https://www.nbcnews.com/", + "companyId": null + }, + "ncol": { + "name": "NCOL", + "categoryId": 4, + "url": "http://www.ncol.com/", + "companyId": "ncol" + }, + "needle": { + "name": "Needle", + "categoryId": 2, + "url": "http://www.needle.com", + "companyId": "needle" + }, + "nekudo.com": { + "name": "Nekudo", + "categoryId": 2, + "url": "https://nekudo.com/", + "companyId": "nekudo" + }, + "neodata": { + "name": "Neodata", + "categoryId": 4, + "url": "http://neodatagroup.com/", + "companyId": "neodata" + }, + "neory": { + "name": "NEORY ", + "categoryId": 4, + "url": "https://www.neory.com/", + "companyId": "neory" + }, + "nerfherdersolo_com": { + "name": "nerfherdersolo.com", + "categoryId": 8, + "url": null, + "companyId": null + }, + "net-metrix": { + "name": "NET-Metrix", + "categoryId": 6, + "url": "http://www.net-metrix.ch/", + "companyId": "net-metrix" + }, + "net-results": { + "name": "Net-Results", + "categoryId": 4, + "url": "http://www.net-results.com/", + "companyId": "net-results" + }, + "net_avenir": { + "name": "Net Avenir", + "categoryId": 4, + "url": "http://www.netavenir.com/", + "companyId": "net_avenir" + }, + "net_communities": { + "name": "Net Communities", + "categoryId": 4, + "url": "http://www.netcommunities.com/", + "companyId": "net_communities" + }, + "net_visibility": { + "name": "NET Visibility", + "categoryId": 4, + "url": "http://www.netvisibility.co.uk", + "companyId": "net_visibility" + }, + "netbiscuits": { + "name": "Netbiscuits", + "categoryId": 6, + "url": "http://www.netbiscuits.net/", + "companyId": "netbiscuits" + }, + "netbooster_group": { + "name": "NetBooster Group", + "categoryId": 4, + "url": "http://www.netbooster.com/", + "companyId": "netbooster_group" + }, + "netflix": { + "name": "Netflix", + "categoryId": 0, + "url": "https://www.netflix.com/", + "companyId": "netflix", + "source": "AdGuard" + }, + "netify": { + "name": "Netify", + "categoryId": 8, + "url": "https://www.netify.ai/", + "companyId": "netify", + "source": "AdGuard" + }, + "netletix": { + "name": "Netletix", + "categoryId": 4, + "url": "http://www.netletix.com//", + "companyId": "ip_de" + }, + "netminers": { + "name": "Netminers", + "categoryId": 6, + "url": "http://netminers.dk/", + "companyId": "netminers" + }, + "netmining": { + "name": "Netmining", + "categoryId": 4, + "url": "http://www.netmining.com/", + "companyId": "zeta" + }, + "netmonitor": { + "name": "NetMonitor", + "categoryId": 6, + "url": "http://www.netmanager.net/en/", + "companyId": "netmonitor" + }, + "netratings_sitecensus": { + "name": "NetRatings SiteCensus", + "categoryId": 4, + "url": "http://www.nielsen-online.com/intlpage.html", + "companyId": "nielsen" + }, + "netrk.net": { + "name": "nfxTrack", + "categoryId": 6, + "url": "https://netrk.net/", + "companyId": "netzeffekt" + }, + "netseer": { + "name": "NetSeer", + "categoryId": 4, + "url": "http://www.netseer.com/", + "companyId": "netseer" + }, + "netshelter": { + "name": "NetShelter", + "categoryId": 4, + "url": "http://www.netshelter.net/", + "companyId": "netshelter" + }, + "netsprint_audience": { + "name": "Netsprint Audience", + "categoryId": 6, + "url": "http://audience.netsprint.eu/", + "companyId": "netsprint" + }, + "networkedblogs": { + "name": "NetworkedBlogs", + "categoryId": 7, + "url": "http://w.networkedblogs.com/", + "companyId": "networkedblogs" + }, + "neustar_adadvisor": { + "name": "Neustar AdAdvisor", + "categoryId": 4, + "url": "http://www.targusinfo.com/", + "companyId": "neustar" + }, + "new_relic": { + "name": "New Relic", + "categoryId": 6, + "url": "http://newrelic.com/", + "companyId": "new_relic" + }, + "newscgp.com": { + "name": "News Connect", + "categoryId": 4, + "url": "https://newscorp.com/", + "companyId": "news_corp" + }, + "newsmax": { + "name": "Newsmax", + "categoryId": 4, + "url": "http://www.newsmax.com/", + "companyId": "newsmax" + }, + "newstogram": { + "name": "Newstogram", + "categoryId": 4, + "url": "http://www.newstogram.com/", + "companyId": "dailyme" + }, + "newsupdatedir.info": { + "name": "newsupdatedir.info", + "categoryId": 11, + "url": null, + "companyId": null + }, + "newsupdatewe.info": { + "name": "newsupdatewe.info", + "categoryId": 12, + "url": null, + "companyId": null + }, + "newtention": { + "name": "Newtention", + "categoryId": 4, + "url": "http://www.newtention.de/", + "companyId": "next_audience" + }, + "nexage": { + "name": "Nexage", + "categoryId": 4, + "url": "http://www.nexage.com/", + "companyId": "verizon" + }, + "nexeps.com": { + "name": "neXeps", + "categoryId": 4, + "url": "http://nexeps.com/", + "companyId": null + }, + "next_performance": { + "name": "Next Performance", + "categoryId": 4, + "url": "http://www.nextperformance.com/", + "companyId": "nextperf" + }, + "next_user": { + "name": "Next User", + "categoryId": 4, + "url": "https://www.nextuser.com/", + "companyId": "next_user" + }, + "nextag_roi_optimizer": { + "name": "Nextag ROI Optimizer", + "categoryId": 4, + "url": "http://www.nextag.com/", + "companyId": "nextag" + }, + "nextclick": { + "name": "Nextclick", + "categoryId": 4, + "url": "http://nextclick.pl/", + "companyId": "leadbullet" + }, + "nextstat": { + "name": "NextSTAT", + "categoryId": 6, + "url": "http://www.nextstat.com/", + "companyId": "nextstat" + }, + "neytiv": { + "name": "Neytiv", + "categoryId": 6, + "url": "http://neytiv.com/", + "companyId": "neytiv" + }, + "ngage_inc.": { + "name": "NGage INC.", + "categoryId": 6, + "url": "https://www.nginx.com/", + "companyId": "nginx" + }, + "nice264.com": { + "name": "Nice264", + "categoryId": 0, + "url": "http://nice264.com/", + "companyId": null + }, + "nimblecommerce": { + "name": "NimbleCommerce", + "categoryId": 4, + "url": "http://www.nimblecommerce.com/", + "companyId": "nimblecommerce" + }, + "nine_direct_digital": { + "name": "Nine Digital Direct", + "categoryId": 4, + "url": "https://ninedigitaldirect.com.au/", + "companyId": "nine_entertainment", + "source": "AdGuard" + }, + "ninja_access_analysis": { + "name": "Ninja Access Analysis", + "categoryId": 6, + "url": "http://www.ninja.co.jp/analysis/", + "companyId": "samurai_factory" + }, + "nirror": { + "name": "Nirror", + "categoryId": 6, + "url": "https://www.nirror.com/", + "companyId": "nirror" + }, + "nitropay": { + "name": "NitroPay", + "categoryId": 4, + "url": "https://nitropay.com/", + "companyId": "gg_software" + }, + "nk.pl_widgets": { + "name": "NK.pl Widgets", + "categoryId": 4, + "url": "http://nk.pl", + "companyId": "nk.pl" + }, + "noaa.gov": { + "name": "National Oceanic and Atmospheric Administration", + "categoryId": 8, + "url": "https://noaa.gov/", + "companyId": null + }, + "noddus": { + "name": "Noddus", + "categoryId": 4, + "url": "https://www.enterprise.noddus.com/", + "companyId": "noddus" + }, + "nolix": { + "name": "Nolix", + "categoryId": 4, + "url": "http://nolix.ru/", + "companyId": "nolix" + }, + "nonli": { + "name": "Nonli", + "categoryId": 4, + "url": "https://www.nonli.com/", + "companyId": "nonli", + "source": "AdGuard" + }, + "nonstop_consulting": { + "name": "Resolution Media", + "categoryId": 4, + "url": "https://resolutionmedia.com/", + "companyId": "resolution_media" + }, + "noop.style": { + "name": "noop.style", + "categoryId": 11, + "url": null, + "companyId": null + }, + "nosto.com": { + "name": "nosto", + "categoryId": 6, + "url": "http://www.nosto.com/", + "companyId": null + }, + "notify": { + "name": "Notify", + "categoryId": 4, + "url": "http://notify.ag/en/", + "companyId": null + }, + "notifyfox": { + "name": "Notifyfox", + "categoryId": 6, + "url": "https://notifyfox.com/", + "companyId": "notifyfox" + }, + "notion": { + "name": "Notion", + "categoryId": 8, + "url": "https://www.notion.so/", + "companyId": "notion", + "source": "AdGuard" + }, + "now_interact": { + "name": "Now Interact", + "categoryId": 6, + "url": "http://nowinteract.com/", + "companyId": "now_interact" + }, + "npario": { + "name": "nPario", + "categoryId": 6, + "url": "http://npario.com/", + "companyId": "npario" + }, + "nplexmedia": { + "name": "nPlexMedia", + "categoryId": 4, + "url": "http://www.nplexmedia.com/", + "companyId": "nplexmedia" + }, + "nrelate": { + "name": "nRelate", + "categoryId": 2, + "url": "http://nrelate.com/", + "companyId": "iac_apps" + }, + "ns8": { + "name": "NS8", + "categoryId": 4, + "url": "https://www.ns8.com/", + "companyId": null + }, + "nt.vc": { + "name": "Next Tuesday GmbH", + "categoryId": 8, + "url": "http://www.nexttuesday.de/", + "companyId": null + }, + "ntent": { + "name": "NTENT", + "categoryId": 4, + "url": "http://www.verticalsearchworks.com", + "companyId": "ntent" + }, + "ntppool": { + "name": "Network Time Protocol", + "categoryId": 5, + "url": "https://ntp.org/", + "companyId": "network_time_foundation", + "source": "AdGuard" + }, + "nttcom_online_marketing_solutions": { + "name": "NTTCom Online Marketing Solutions", + "categoryId": 6, + "url": "http://www.digitalforest.co.jp/", + "companyId": "nttcom_online_marketing_solutions" + }, + "nuffnang": { + "name": "Nuffnang", + "categoryId": 4, + "url": "http://nuffnang.com/", + "companyId": "nuffnang" + }, + "nugg.ad": { + "name": "Nugg.Ad", + "categoryId": 4, + "url": "http://www.nugg.ad/", + "companyId": "nugg.ad" + }, + "nui_media": { + "name": "NUI Media", + "categoryId": 4, + "url": "http://adjuggler.com/", + "companyId": "nui_media" + }, + "numbers.md": { + "name": "Numbers.md", + "categoryId": 6, + "url": "https://numbers.md/", + "companyId": "numbers.md" + }, + "numerator": { + "name": "Numerator", + "categoryId": 5, + "url": "http://www.channeliq.com/", + "companyId": "numerator" + }, + "ny_times_tagx": { + "name": "NY Times TagX", + "categoryId": 6, + "url": "https://www.nytimes.com/", + "companyId": "the_new_york_times" + }, + "nyacampwk.com": { + "name": "nyacampwk.com", + "categoryId": 11, + "url": null, + "companyId": null + }, + "nyetm2mkch.com": { + "name": "nyetm2mkch.com", + "categoryId": 11, + "url": null, + "companyId": null + }, + "nyt.com": { + "name": "The New York Times", + "categoryId": 8, + "url": "https://www.nytimes.com/", + "companyId": "the_new_york_times" + }, + "o12zs3u2n.com": { + "name": "o12zs3u2n.com", + "categoryId": 11, + "url": null, + "companyId": null + }, + "o2.pl": { + "name": "o2.pl", + "categoryId": 8, + "url": "https://www.o2.pl/", + "companyId": "o2.pl" + }, + "o2online.de": { + "name": "o2online.de", + "categoryId": 8, + "url": "https://www.o2online.de/", + "companyId": null + }, + "oath_inc": { + "name": "Oath", + "categoryId": 8, + "url": "https://www.oath.com/", + "companyId": "verizon" + }, + "observer": { + "name": "Observer", + "categoryId": 4, + "url": "http://www.observerapp.com", + "companyId": "observer" + }, + "ocioso": { + "name": "Ocioso", + "categoryId": 7, + "url": "http://ocioso.com.br/", + "companyId": "ocioso" + }, + "oclasrv.com": { + "name": "oclasrv.com", + "categoryId": 11, + "url": null, + "companyId": null + }, + "octapi.net": { + "name": "octapi.net", + "categoryId": 11, + "url": null, + "companyId": null + }, + "octavius": { + "name": "Octavius", + "categoryId": 4, + "url": "http://octavius.rocks/", + "companyId": "octavius" + }, + "office.com": { + "name": "office.com", + "categoryId": 8, + "url": "https://www.microsoft.com/", + "companyId": "microsoft" + }, + "office.net": { + "name": "office.net", + "categoryId": 8, + "url": "https://www.microsoft.com/", + "companyId": "microsoft" + }, + "office365.com": { + "name": "office365.com", + "categoryId": 8, + "url": "https://www.microsoft.com/", + "companyId": "microsoft" + }, + "oghub.io": { + "name": "OG Hub", + "categoryId": 11, + "url": null, + "companyId": null + }, + "oh_my_stats": { + "name": "Oh My Stats", + "categoryId": 6, + "url": "https://ohmystats.com/", + "companyId": "oh_my_stats" + }, + "ohana_advertising_network": { + "name": "Ohana Advertising Network", + "categoryId": 4, + "url": "http://adohana.com/", + "companyId": "ohana_advertising_network" + }, + "olapic": { + "name": "Olapic", + "categoryId": 4, + "url": "https://www.olapic.com/", + "companyId": "olapic" + }, + "olark": { + "name": "Olark", + "categoryId": 2, + "url": "http://www.olark.com/", + "companyId": "olark" + }, + "olx-st.com": { + "name": "OLX", + "categoryId": 8, + "url": "http://www.olx.com/", + "companyId": null + }, + "omarsys.com": { + "name": "Omarsys", + "categoryId": 4, + "url": "http://omarsys.com/", + "companyId": "xcaliber" + }, + "ometria": { + "name": "Ometria", + "categoryId": 4, + "url": "http://www.ometria.com/", + "companyId": "ometria" + }, + "omg": { + "name": "OMG", + "categoryId": 7, + "url": "http://uk.omgpm.com/", + "companyId": "optimise_media" + }, + "omniconvert.com": { + "name": "Omniconvert", + "categoryId": 4, + "url": "https://www.omniconvert.com/", + "companyId": "omniconvert" + }, + "omniscienta": { + "name": "Omniscienta", + "categoryId": 4, + "url": "http://www.omniscienta.com/", + "companyId": null + }, + "oms": { + "name": "OMS", + "categoryId": 4, + "url": "http://oms.eu/", + "companyId": null + }, + "onaudience": { + "name": "OnAudience", + "categoryId": 4, + "url": "http://www.onaudience.com/", + "companyId": "cloud_technologies" + }, + "oneall": { + "name": "Oneall", + "categoryId": 7, + "url": "http://www.oneall.com/", + "companyId": "oneall" + }, + "onefeed": { + "name": "Onefeed", + "categoryId": 6, + "url": "http://www.onefeed.co.uk", + "companyId": "onefeed" + }, + "onesignal": { + "name": "OneSignal", + "categoryId": 5, + "url": "https://onesignal.com/", + "companyId": "onesignal" + }, + "onestat": { + "name": "OneStat", + "categoryId": 6, + "url": "http://www.onestat.com/", + "companyId": "onestat_international_b.v." + }, + "onet.pl": { + "name": "onet", + "categoryId": 8, + "url": "https://www.onet.pl/", + "companyId": null + }, + "onetag": { + "name": "OneTag", + "categoryId": 4, + "url": "https://www.onetag.com/", + "companyId": "onetag" + }, + "onetrust": { + "name": "OneTrust", + "categoryId": 5, + "url": "https://www.onetrust.com/", + "companyId": "onetrust" + }, + "onfocus.io": { + "name": "OnFocus", + "categoryId": 4, + "url": "http://onfocus.io/", + "companyId": "onfocus" + }, + "onlinewebstat": { + "name": "Onlinewebstat", + "categoryId": 6, + "url": "http://www.onlinewebstats.com/index.php?lang=en", + "companyId": "onlinewebstat" + }, + "onswipe": { + "name": "Onswipe", + "categoryId": 4, + "url": "http://www.onswipe.com/", + "companyId": "onswipe" + }, + "onthe.io": { + "name": "OnThe.io", + "categoryId": 6, + "url": "https://t.onthe.io/media", + "companyId": "onthe.io" + }, + "ontraport_autopilot": { + "name": "Ontraport Autopilot", + "categoryId": 4, + "url": "http://www.moon-ray.com/", + "companyId": "ontraport" + }, + "ooyala.com": { + "name": "Ooyala Player", + "categoryId": 0, + "url": "https://www.ooyala.com/", + "companyId": "telstra" + }, + "ooyala_analytics": { + "name": "Ooyala Analytics", + "categoryId": 6, + "url": "https://www.telstraglobal.com/", + "companyId": "telstra" + }, + "open_adexchange": { + "name": "Open AdExchange", + "categoryId": 4, + "url": "http://openadex.dk/", + "companyId": "open_adexchange" + }, + "open_adstream": { + "name": "Open Adstream", + "categoryId": 4, + "url": "https://about.ads.microsoft.com/en-us/solutions/xandr/xandr-premium-programmatic-advertising", + "companyId": "microsoft", + "source": "AdGuard" + }, + "open_share_count": { + "name": "Open Share Count", + "categoryId": 4, + "url": "http://opensharecount.com/", + "companyId": "open_share_count" + }, + "openai": { + "name": "OpenAI", + "categoryId": 8, + "url": "https://openai.com/", + "companyId": "openai", + "source": "AdGuard" + }, + "openload": { + "name": "Openload", + "categoryId": 9, + "url": "https://openload.co/", + "companyId": null + }, + "openstat": { + "name": "OpenStat", + "categoryId": 6, + "url": "https://www.openstat.ru/", + "companyId": "openstat" + }, + "opentracker": { + "name": "Opentracker", + "categoryId": 6, + "url": "http://www.opentracker.net/", + "companyId": "opentracker" + }, + "openwebanalytics": { + "name": "Open Web Analytics", + "categoryId": 6, + "url": "http://www.openwebanalytics.com/", + "companyId": "open_web_analytics" + }, + "openx": { + "name": "OpenX", + "categoryId": 4, + "url": "https://www.openx.com", + "companyId": "openx" + }, + "operative_media": { + "name": "Operative Media", + "categoryId": 4, + "url": "http://www.operative.com/", + "companyId": "operative_media" + }, + "opinary": { + "name": "Opinary", + "categoryId": 2, + "url": "http://opinary.com/", + "companyId": "opinary" + }, + "opinionbar": { + "name": "OpinionBar", + "categoryId": 2, + "url": "http://www.metrixlab.com", + "companyId": "metrixlab" + }, + "oplytic": { + "name": "Oplytic", + "categoryId": 6, + "url": "http://www.oplytic.com", + "companyId": "oplytic" + }, + "oppo": { + "name": "OPPO", + "categoryId": 101, + "url": "https://www.oppo.com/", + "companyId": "bbk", + "source": "AdGuard" + }, + "opta.net": { + "name": "Opta", + "categoryId": 6, + "url": "http://www.optasports.de/", + "companyId": "opta_sports" + }, + "optaim": { + "name": "OptAim", + "categoryId": 4, + "url": "http://optaim.com/", + "companyId": "optaim" + }, + "optanaon": { + "name": "Optanaon by OneTrust", + "categoryId": 5, + "url": "https://www.cookielaw.org/", + "companyId": "onetrust" + }, + "optify": { + "name": "Optify", + "categoryId": 4, + "url": "http://www.optify.net", + "companyId": "optify" + }, + "optimatic": { + "name": "Optimatic", + "categoryId": 0, + "url": "http://www.optimatic.com/", + "companyId": "optimatic" + }, + "optimax_media_delivery": { + "name": "Optimax Media Delivery", + "categoryId": 4, + "url": "http://optmd.com/", + "companyId": "optimax_media_delivery" + }, + "optimicdn.com": { + "name": "OptimiCDN", + "categoryId": 9, + "url": "https://en.optimicdn.com/", + "companyId": null + }, + "optimizely": { + "name": "Optimizely", + "categoryId": 6, + "url": "https://www.optimizely.com/", + "companyId": "optimizely" + }, + "optimizely_error_log": { + "name": "Optimizely Error Log", + "categoryId": 6, + "url": "https://www.optimizely.com/", + "companyId": "optimizely" + }, + "optimizely_geo_targeting": { + "name": "Optimizely Geographical Targeting", + "categoryId": 6, + "url": "https://www.optimizely.com/", + "companyId": "optimizely" + }, + "optimizely_logging": { + "name": "Optimizely Logging", + "categoryId": 6, + "url": "https://www.optimizely.com/", + "companyId": "optimizely" + }, + "optimonk": { + "name": "Optimonk", + "categoryId": 6, + "url": "https://www.optimonk.com/", + "companyId": "optimonk" + }, + "optinmonster": { + "name": "OptInMonster", + "categoryId": 2, + "url": "https://optinmonster.com/", + "companyId": "optinmonster" + }, + "optinproject.com": { + "name": "OptinProject", + "categoryId": 4, + "url": "https://www.optincollect.com/en", + "companyId": "optincollect" + }, + "optomaton": { + "name": "Optomaton", + "categoryId": 4, + "url": "http://www.optomaton.com/", + "companyId": "ve" + }, + "ora.tv": { + "name": "Ora.TV", + "categoryId": 4, + "url": "http://www.ora.tv/", + "companyId": "ora.tv" + }, + "oracle_infinity": { + "name": "Oracle Infinity Behavioral Intelligence", + "categoryId": 6, + "url": "https://www.oracle.com/au/cx/marketing/digital-intelligence/", + "companyId": "oracle", + "source": "AdGuard" + }, + "oracle_live_help": { + "name": "Oracle Live Help", + "categoryId": 2, + "url": "http://www.oracle.com/us/products/applications/atg/live-help-on-demand/index.html", + "companyId": "oracle" + }, + "oracle_rightnow": { + "name": "Oracle RightNow", + "categoryId": 8, + "url": "http://www.oracle.com/", + "companyId": "oracle" + }, + "orange": { + "name": "Orange", + "categoryId": 4, + "url": "http://www.orange.co.uk/", + "companyId": "orange_mobile" + }, + "orange142": { + "name": "Orange142", + "categoryId": 4, + "url": "http://www.orange142.com/", + "companyId": "orange142" + }, + "orange_france": { + "name": "Orange France", + "categoryId": 8, + "url": "https://www.orange.fr/", + "companyId": "orange_france" + }, + "orangesoda": { + "name": "OrangeSoda", + "categoryId": 4, + "url": "http://www.orangesoda.com/", + "companyId": "orangesoda" + }, + "orc_international": { + "name": "ORC International", + "categoryId": 4, + "url": "https://orcinternational.com/", + "companyId": "engine_group" + }, + "order_groove": { + "name": "Order Groove", + "categoryId": 4, + "url": "http://ordergroove.com/", + "companyId": "order_groove" + }, + "orel_site": { + "name": "Orel Site", + "categoryId": 2, + "url": "https://www.orelsite.ru/", + "companyId": "orel_site" + }, + "otclick": { + "name": "otClick", + "categoryId": 4, + "url": "http://otclick-adv.ru/", + "companyId": "otclick" + }, + "othersearch.info": { + "name": "FlowSurf", + "categoryId": 8, + "url": null, + "companyId": null + }, + "otm-r.com": { + "name": "OTM", + "categoryId": 4, + "url": "http://otm-r.com/", + "companyId": null + }, + "otto.de": { + "name": "Otto Group", + "categoryId": 8, + "url": null, + "companyId": null + }, + "outbrain": { + "name": "Outbrain", + "categoryId": 4, + "url": "https://www.outbrain.com/", + "companyId": "outbrain" + }, + "outbrain_amplify": { + "name": "Outbrain Amplify", + "categoryId": 4, + "url": "http://www.outbrain.com/", + "companyId": "outbrain" + }, + "outbrain_analytics": { + "name": "Outbrain Analytics", + "categoryId": 6, + "url": "http://www.outbrain.com/", + "companyId": "outbrain" + }, + "outbrain_logger": { + "name": "Outbrain Logger", + "categoryId": 4, + "url": "http://www.outbrain.com/", + "companyId": "outbrain" + }, + "outbrain_pixel": { + "name": "Outbrain Pixel", + "categoryId": 4, + "url": "http://www.outbrain.com/", + "companyId": "outbrain" + }, + "outbrain_utilities": { + "name": "Outbrain Utilities", + "categoryId": 6, + "url": "http://www.outbrain.com/", + "companyId": "outbrain" + }, + "outbrain_widgets": { + "name": "Outbrain Widgets", + "categoryId": 4, + "url": "http://www.outbrain.com/", + "companyId": "outbrain" + }, + "outlook": { + "name": "Microsoft Outlook", + "categoryId": 13, + "url": "https://outlook.live.com/", + "companyId": "microsoft", + "source": "AdGuard" + }, + "overheat.it": { + "name": "overheat", + "categoryId": 6, + "url": "https://overheat.io/", + "companyId": null + }, + "owa": { + "name": "OWA", + "categoryId": 6, + "url": "http://oewa.at/", + "companyId": "the_austrian_web_analysis" + }, + "owneriq": { + "name": "OwnerIQ", + "categoryId": 4, + "url": "http://www.owneriq.com/", + "companyId": "owneriq" + }, + "ownpage": { + "name": "Ownpage", + "categoryId": 2, + "url": "http://www.ownpage.fr/index.en.html", + "companyId": null + }, + "owox.com": { + "name": "OWOX", + "categoryId": 6, + "url": "https://www.owox.com/", + "companyId": "owox_inc" + }, + "oxamedia": { + "name": "OxaMedia", + "categoryId": 2, + "url": "http://www.oxamedia.com/", + "companyId": "oxamedia" + }, + "oxomi.com": { + "name": "Oxomi", + "categoryId": 4, + "url": "https://oxomi.com/", + "companyId": null + }, + "oztam": { + "name": "OzTAM", + "categoryId": 8, + "url": "https://oztam.com.au/", + "companyId": "oztam", + "source": "AdGuard" + }, + "pageanalytics.space": { + "name": "pageanalytics.space", + "categoryId": 11, + "url": null, + "companyId": null + }, + "pagefair": { + "name": "PageFair", + "categoryId": 2, + "url": "https://pagefair.com/", + "companyId": "blockthrough" + }, + "pagescience": { + "name": "PageScience", + "categoryId": 4, + "url": "http://www.precisionhealthmedia.com/index.html", + "companyId": "pagescience" + }, + "paid-to-promote": { + "name": "Paid-To-Promote", + "categoryId": 4, + "url": "http://www.paid-to-promote.net/", + "companyId": "paid-to-promote" + }, + "paperg": { + "name": "PaperG", + "categoryId": 4, + "url": "http://www.paperg.com/", + "companyId": "paperg" + }, + "pardot": { + "name": "Pardot", + "categoryId": 6, + "url": "http://www.pardot.com/", + "companyId": "pardot" + }, + "parsely": { + "name": "Parse.ly", + "categoryId": 6, + "url": "https://www.parse.ly/", + "companyId": "parse.ly" + }, + "partner-ads": { + "name": "Partner-Ads", + "categoryId": 4, + "url": "http://www.partner-ads.com/", + "companyId": "partner-ads" + }, + "passionfruit": { + "name": "Passionfruit", + "categoryId": 4, + "url": "http://passionfruitads.com/", + "companyId": "passionfruit" + }, + "pathful": { + "name": "Pathful", + "categoryId": 6, + "url": "http://www.pathful.com/", + "companyId": "pathful" + }, + "pay-hit": { + "name": "Pay-Hit", + "categoryId": 4, + "url": "http://pay-hit.com/", + "companyId": "pay-hit" + }, + "payclick": { + "name": "PayClick", + "categoryId": 4, + "url": "http://payclick.it/", + "companyId": "payclick" + }, + "paykickstart": { + "name": "PayKickstart", + "categoryId": 6, + "url": "https://paykickstart.com/", + "companyId": "paykickstart" + }, + "paypal": { + "name": "PayPal", + "categoryId": 2, + "url": "https://www.paypal.com", + "companyId": "ebay" + }, + "pcvark.com": { + "name": "pcvark.com", + "categoryId": 11, + "url": "https://pcvark.com/", + "companyId": null + }, + "peer39": { + "name": "Peer39", + "categoryId": 4, + "url": "http://www.peer39.com/", + "companyId": "peer39" + }, + "peer5.com": { + "name": "Peer5", + "categoryId": 9, + "url": "https://www.peer5.com/", + "companyId": "peer5" + }, + "peerius": { + "name": "Peerius", + "categoryId": 2, + "url": "http://www.peerius.com/", + "companyId": "peerius" + }, + "pendo.io": { + "name": "pendo", + "categoryId": 6, + "url": "https://www.pendo.io/", + "companyId": null + }, + "pepper.com": { + "name": "Pepper", + "categoryId": 4, + "url": "https://www.pepper.com/", + "companyId": "6minutes" + }, + "pepperjam": { + "name": "Pepperjam", + "categoryId": 4, + "url": "http://www.pepperjam.com", + "companyId": "pepperjam" + }, + "pepsia": { + "name": "Pepsia", + "categoryId": 6, + "url": "http://pepsia.com/en/", + "companyId": "pepsia" + }, + "perfdrive.com": { + "name": "perfdrive.com", + "categoryId": 11, + "url": null, + "companyId": null + }, + "perfect_audience": { + "name": "Perfect Audience", + "categoryId": 4, + "url": "https://www.perfectaudience.com/", + "companyId": "perfect_audience" + }, + "perfect_market": { + "name": "Perfect Market", + "categoryId": 4, + "url": "http://perfectmarket.com/", + "companyId": "perfect_market" + }, + "perfops": { + "name": "PerfOps", + "categoryId": 6, + "url": "https://perfops.net/", + "companyId": "perfops", + "source": "AdGuard" + }, + "perform_group": { + "name": "Perform Group", + "categoryId": 5, + "url": "http://www.performgroup.co.uk/", + "companyId": "perform_group" + }, + "performable": { + "name": "Performable", + "categoryId": 6, + "url": "http://www.performable.com/", + "companyId": "hubspot" + }, + "performancing_metrics": { + "name": "Performancing Metrics", + "categoryId": 6, + "url": "http://pmetrics.performancing.com", + "companyId": "performancing" + }, + "performax": { + "name": "Performax", + "categoryId": 4, + "url": "https://www.performax.cz/", + "companyId": "performax" + }, + "perimeterx.net": { + "name": "Perimeterx", + "categoryId": 6, + "url": "https://www.perimeterx.com/", + "companyId": null + }, + "permutive": { + "name": "Permutive", + "categoryId": 4, + "url": "http://permutive.com/", + "companyId": "permutive" + }, + "persgroep": { + "name": "De Persgroep", + "categoryId": 4, + "url": "https://www.persgroep.be/", + "companyId": "de_persgroep" + }, + "persianstat": { + "name": "PersianStat", + "categoryId": 6, + "url": "http://www.persianstat.com", + "companyId": "persianstat" + }, + "persio": { + "name": "Persio", + "categoryId": 4, + "url": "http://www.pers.io/", + "companyId": "pers.io" + }, + "personyze": { + "name": "Personyze", + "categoryId": 2, + "url": "http://personyze.com/", + "companyId": "personyze" + }, + "petametrics": { + "name": "LiftIgniter", + "categoryId": 2, + "url": "https://www.liftigniter.com/", + "companyId": "liftigniter" + }, + "pheedo": { + "name": "Pheedo", + "categoryId": 4, + "url": "http://pheedo.com/", + "companyId": "pheedo" + }, + "phonalytics": { + "name": "Phonalytics", + "categoryId": 2, + "url": "http://www.phonalytics.com/", + "companyId": "phonalytics" + }, + "phunware": { + "name": "Phunware", + "categoryId": 4, + "url": "https://www.phunware.com", + "companyId": "phunware" + }, + "piguiqproxy.com": { + "name": "piguiqproxy.com", + "categoryId": 11, + "url": null, + "companyId": null + }, + "pilot": { + "name": "Pilot", + "categoryId": 6, + "url": "http://www.pilot.de/en/home.html", + "companyId": "pilot_gmbh" + }, + "pingdom": { + "name": "Pingdom", + "categoryId": 6, + "url": "https://www.pingdom.com/", + "companyId": "pingdom" + }, + "pinterest": { + "name": "Pinterest", + "categoryId": 7, + "url": "http://pinterest.com/", + "companyId": "pinterest" + }, + "pinterest_conversion_tracker": { + "name": "Pinterest Conversion Tracker", + "categoryId": 6, + "url": "http://pinterest.com/", + "companyId": "pinterest" + }, + "pipz": { + "name": "Pipz", + "categoryId": 4, + "url": "https://pipz.com/br/", + "companyId": "pipz_automation" + }, + "piwik": { + "name": "Tombstone (Matomo/Piwik before the split)", + "categoryId": 6, + "url": "http://piwik.org/", + "companyId": "matomo" + }, + "piwik_pro_analytics_suite": { + "name": "Piwik PRO Analytics Suite", + "categoryId": 6, + "url": "https://piwik.pro/", + "companyId": "piwik_pro" + }, + "pixalate": { + "name": "Pixalate", + "categoryId": 4, + "url": "http://www.pixalate.com/", + "companyId": "pixalate" + }, + "pixel_union": { + "name": "Pixel Union", + "categoryId": 4, + "url": "https://www.pixelunion.net/", + "companyId": "pixel_union" + }, + "pixfuture": { + "name": "PixFuture", + "categoryId": 4, + "url": "http://www.pixfuture.com", + "companyId": "pixfuture" + }, + "piximedia": { + "name": "Piximedia", + "categoryId": 4, + "url": "http://www.piximedia.com/piximedia?en", + "companyId": "piximedia" + }, + "pizzaandads_com": { + "name": "pizzaandads.com", + "categoryId": 11, + "url": null, + "companyId": null + }, + "placester": { + "name": "Placester", + "categoryId": 4, + "url": "https://placester.com/", + "companyId": "placester" + }, + "pladform.ru": { + "name": "Pladform", + "categoryId": 4, + "url": "https://distribution.pladform.ru/", + "companyId": "pladform" + }, + "plan.net_experience_cloud": { + "name": "Plan.net Experience Cloud", + "categoryId": 6, + "url": "https://www.serviceplan.com/", + "companyId": "serviceplan" + }, + "platform360": { + "name": "Platform360", + "categoryId": 4, + "url": "http://www.platform360.co/#home", + "companyId": null + }, + "platformone": { + "name": "Platform One", + "categoryId": 4, + "url": "https://www.platform-one.co.jp/", + "companyId": "daconsortium" + }, + "play_by_mamba": { + "name": "Play by Mamba", + "categoryId": 4, + "url": "http://play.mamba.ru/", + "companyId": "mamba" + }, + "playbuzz.com": { + "name": "Playbuzz", + "categoryId": 2, + "url": "https://www.playbuzz.com/", + "companyId": "playbuzz" + }, + "plenty_of_fish": { + "name": "Plenty Of Fish", + "categoryId": 6, + "url": "http://www.pof.com/", + "companyId": "plentyoffish" + }, + "plex": { + "name": "Plex", + "categoryId": 0, + "url": "https://www.plex.tv/", + "companyId": "plex", + "source": "AdGuard" + }, + "plex_metrics": { + "name": "Plex Metrics", + "categoryId": 6, + "url": "https://www.plex.tv/", + "companyId": "plex" + }, + "plista": { + "name": "Plista", + "categoryId": 4, + "url": "http://www.plista.com", + "companyId": "plista" + }, + "plugrush": { + "name": "PlugRush", + "categoryId": 4, + "url": "http://www.plugrush.com/", + "companyId": "plugrush" + }, + "pluso.ru": { + "name": "Pluso", + "categoryId": 7, + "url": "https://share.pluso.ru/", + "companyId": "pluso" + }, + "plutusads": { + "name": "Plutusads", + "categoryId": 4, + "url": "http://plutusads.com", + "companyId": "plutusads" + }, + "pmddby.com": { + "name": "pmddby.com", + "categoryId": 12, + "url": null, + "companyId": null + }, + "pnamic.com": { + "name": "pnamic.com", + "categoryId": 12, + "url": null, + "companyId": null + }, + "po.st": { + "name": "Po.st", + "categoryId": 7, + "url": "https://www.po.st/", + "companyId": "rythmone" + }, + "pocket": { + "name": "Pocket", + "categoryId": 6, + "url": "http://getpocket.com/", + "companyId": "pocket" + }, + "pocketcents": { + "name": "PocketCents", + "categoryId": 4, + "url": "http://pocketcents.com/", + "companyId": "pocketcents" + }, + "pointific": { + "name": "Pointific", + "categoryId": 6, + "url": "http://www.pontiflex.com/", + "companyId": "pontiflex" + }, + "pointroll": { + "name": "PointRoll", + "categoryId": 4, + "url": "http://www.pointroll.com/", + "companyId": "gannett_digital_media_network" + }, + "poirreleast.club": { + "name": "poirreleast.club", + "categoryId": 11, + "url": null, + "companyId": null + }, + "polar.me": { + "name": "Polar", + "categoryId": 4, + "url": "https://polar.me/", + "companyId": "polar_inc" + }, + "polldaddy": { + "name": "Polldaddy", + "categoryId": 2, + "url": "http://polldaddy.com/", + "companyId": "automattic" + }, + "polyad": { + "name": "PolyAd", + "categoryId": 4, + "url": "http://polyad.net", + "companyId": "polyad" + }, + "polyfill.io": { + "name": "Polyfill", + "categoryId": 8, + "url": "https://polyfill.io/", + "companyId": "polyfill.io" + }, + "popads": { + "name": "PopAds", + "categoryId": 4, + "url": "https://www.popads.net/", + "companyId": "popads" + }, + "popcash": { + "name": "Popcash", + "categoryId": 4, + "url": "http://popcash.net/", + "companyId": "popcash_network" + }, + "popcorn_metrics": { + "name": "Popcorn Metrics", + "categoryId": 6, + "url": "https://www.popcornmetrics.com/", + "companyId": "popcorn_metrics" + }, + "popin.cc": { + "name": "popIn", + "categoryId": 7, + "url": "https://www.popin.cc/", + "companyId": "popin" + }, + "popmyads": { + "name": "PopMyAds", + "categoryId": 4, + "url": "http://popmyads.com/", + "companyId": "popmyads" + }, + "poponclick": { + "name": "PopOnClick", + "categoryId": 4, + "url": "http://poponclick.com", + "companyId": "poponclick" + }, + "populis": { + "name": "Populis", + "categoryId": 4, + "url": "http://www.populis.com", + "companyId": "populis" + }, + "pornhub": { + "name": "PornHub", + "categoryId": 3, + "url": "https://www.pornhub.com/", + "companyId": "pornhub" + }, + "pornwave": { + "name": "Pornwave", + "categoryId": 3, + "url": "http://pornwave.com", + "companyId": "pornwave.com" + }, + "porta_brazil": { + "name": "Porta Brazil", + "categoryId": 4, + "url": "http://brasil.gov.br/", + "companyId": "portal_brazil" + }, + "post_affiliate_pro": { + "name": "Post Affiliate Pro", + "categoryId": 4, + "url": "http://www.qualityunit.com/", + "companyId": "qualityunit" + }, + "powerlinks": { + "name": "PowerLinks", + "categoryId": 4, + "url": "http://www.powerlinks.com/", + "companyId": "powerlinks" + }, + "powerreviews": { + "name": "PowerReviews", + "categoryId": 2, + "url": "http://www.powerreviews.com/", + "companyId": "powerreviews" + }, + "powr.io": { + "name": "POWr", + "categoryId": 6, + "url": "https://www.powr.io/", + "companyId": "powr" + }, + "pozvonim": { + "name": "Pozvonim", + "categoryId": 4, + "url": "https://pozvonim.com/", + "companyId": "pozvonim" + }, + "prebid": { + "name": "Prebid", + "categoryId": 4, + "url": "http://prebid.org/", + "companyId": null + }, + "precisionclick": { + "name": "PrecisionClick", + "categoryId": 4, + "url": "http://www.precisionclick.com/", + "companyId": "precisionclick" + }, + "predicta": { + "name": "Predicta", + "categoryId": 4, + "url": "http://predicta.com.br/", + "companyId": "predicta" + }, + "premonix": { + "name": "Premonix", + "categoryId": 4, + "url": "http://www.premonix.com/", + "companyId": "premonix" + }, + "press": { + "name": "Press+", + "categoryId": 4, + "url": "http://www.mypressplus.com/", + "companyId": "press+" + }, + "pressly": { + "name": "Pressly", + "categoryId": 4, + "url": "https://www.pressly.com/", + "companyId": "pressly" + }, + "pricegrabber": { + "name": "PriceGrabber", + "categoryId": 4, + "url": "http://www.pricegrabber.com", + "companyId": "pricegrabber" + }, + "pricespider": { + "name": "Pricespider", + "categoryId": 4, + "url": "http://www.pricespider.com/", + "companyId": "price_spider" + }, + "prismamediadigital.com": { + "name": "Prisma Media Digital", + "categoryId": 4, + "url": "http://www.pmdrecrute.com/", + "companyId": "prisma_media_digital" + }, + "privy.com": { + "name": "Privy", + "categoryId": 2, + "url": "https://privy.com/", + "companyId": "privy" + }, + "proclivity": { + "name": "Proclivity", + "categoryId": 4, + "url": "http://www.proclivitysystems.com/", + "companyId": "proclivity_media" + }, + "prodperfect": { + "name": "ProdPerfect", + "categoryId": 6, + "url": "https://prodperfect.com/", + "companyId": "prodperfect" + }, + "productsup": { + "name": "ProductsUp", + "categoryId": 4, + "url": "https://productsup.io/", + "companyId": "productsup" + }, + "profiliad": { + "name": "Profiliad", + "categoryId": 6, + "url": "http://profiliad.com/", + "companyId": "profiliad" + }, + "profitshare": { + "name": "Profitshare", + "categoryId": 6, + "url": "https://profitshare.ro/", + "companyId": "profitshare" + }, + "proformics": { + "name": "Proformics", + "categoryId": 6, + "url": "http://proformics.com/", + "companyId": "proformics_digital" + }, + "programattik": { + "name": "Programattik", + "categoryId": 4, + "url": "http://www.programattik.com/", + "companyId": "ttnet" + }, + "project_wonderful": { + "name": "Project Wonderful", + "categoryId": 4, + "url": "http://www.projectwonderful.com/", + "companyId": "project_wonderful" + }, + "propel_marketing": { + "name": "Propel Marketing", + "categoryId": 4, + "url": "http://propelmarketing.com/", + "companyId": "propel_marketing" + }, + "propeller_ads": { + "name": "Propeller Ads", + "categoryId": 4, + "url": "http://www.propellerads.com/", + "companyId": "propeller_ads" + }, + "propermedia": { + "name": "Proper Media", + "categoryId": 4, + "url": "https://proper.io/", + "companyId": "propermedia" + }, + "props": { + "name": "Props", + "categoryId": 4, + "url": "http://props.id/", + "companyId": "props" + }, + "propvideo_net": { + "name": "propvideo.net", + "categoryId": 11, + "url": null, + "companyId": null + }, + "prospecteye": { + "name": "ProspectEye", + "categoryId": 4, + "url": "https://www.prospecteye.com/", + "companyId": "prospecteye" + }, + "prosperent": { + "name": "Prosperent", + "categoryId": 4, + "url": "http://prosperent.com", + "companyId": "prosperent" + }, + "prostor": { + "name": "Prostor", + "categoryId": 4, + "url": "http://prostor-lite.ru/", + "companyId": "prostor" + }, + "proton_ag": { + "name": "Proton AG", + "categoryId": 2, + "url": "https://proton.me/", + "companyId": "proton_foundation", + "source": "AdGuard" + }, + "provide_support": { + "name": "Provide Support", + "categoryId": 2, + "url": "http://www.providesupport.com/", + "companyId": "provide_support" + }, + "proximic": { + "name": "Proximic", + "categoryId": 4, + "url": "http://www.proximic.com/", + "companyId": "proximic" + }, + "proxistore.com": { + "name": "Proxistore", + "categoryId": 4, + "url": "https://www.proxistore.com/", + "companyId": "proxistore" + }, + "pscp.tv": { + "name": "Periscope", + "categoryId": 7, + "url": "https://www.pscp.tv/", + "companyId": "periscope" + }, + "pstatic.net": { + "name": "Naver CDN", + "categoryId": 9, + "url": "https://www.naver.com/", + "companyId": "naver" + }, + "psyma": { + "name": "Psyma", + "categoryId": 4, + "url": "http://www.psyma.com/", + "companyId": "psyma" + }, + "pt_engine": { + "name": "Pt engine", + "categoryId": 6, + "url": "http://www.ptengine.jp/", + "companyId": "pt_engine" + }, + "pub-fit": { + "name": "Pub-Fit", + "categoryId": 4, + "url": "http://www.pub-fit.com/", + "companyId": "pub-fit" + }, + "pub.network": { + "name": "pub.network", + "categoryId": 4, + "url": null, + "companyId": null + }, + "pubble": { + "name": "Pubble", + "categoryId": 2, + "url": "http://www.pubble.co/", + "companyId": "pubble" + }, + "pubdirecte": { + "name": "Pubdirecte", + "categoryId": 4, + "url": "http://www.pubdirecte.com/", + "companyId": "pubdirecte" + }, + "pubgears": { + "name": "PubGears", + "categoryId": 4, + "url": "http://pubgears.com/", + "companyId": "pubgears" + }, + "public_ideas": { + "name": "Public Ideas", + "categoryId": 4, + "url": "http://www.publicidees.co.uk/", + "companyId": "public-idees" + }, + "publicidad.net": { + "name": "Publicidad.net", + "categoryId": 4, + "url": "http://www.en.publicidad.net/", + "companyId": "publicidad.net" + }, + "publir": { + "name": "Publir", + "categoryId": 4, + "url": "http://www.publir.com", + "companyId": "publir" + }, + "pubmatic": { + "name": "PubMatic", + "categoryId": 4, + "url": "http://www.pubmatic.com/", + "companyId": "pubmatic" + }, + "pubnub.com": { + "name": "PubNub", + "categoryId": 8, + "url": "https://www.pubnub.com/", + "companyId": null + }, + "puboclic": { + "name": "Puboclic", + "categoryId": 4, + "url": "http://www.puboclic.com/", + "companyId": "puboclic" + }, + "pulpix.com": { + "name": "Pulpix", + "categoryId": 4, + "url": "https://www.pulpix.com/", + "companyId": "adyoulike" + }, + "pulpo_media": { + "name": "Pulpo Media", + "categoryId": 4, + "url": "http://www.pulpomedia.com/home.html", + "companyId": "pulpo_media" + }, + "pulse360": { + "name": "Pulse360", + "categoryId": 4, + "url": "http://www.pulse360.com", + "companyId": "pulse360" + }, + "pulse_insights": { + "name": "Pulse Insights", + "categoryId": 6, + "url": "http://pulseinsights.com/", + "companyId": "pulse_insights" + }, + "pulsepoint": { + "name": "PulsePoint", + "categoryId": 4, + "url": "http://www.contextweb.com/", + "companyId": "pulsepoint_ad_exchange" + }, + "punchtab": { + "name": "PunchTab", + "categoryId": 4, + "url": "http://www.punchtab.com/", + "companyId": "punchtab" + }, + "purch": { + "name": "Purch", + "categoryId": 4, + "url": "http://www.purch.com/", + "companyId": "purch" + }, + "pure_chat": { + "name": "Pure Chat", + "categoryId": 2, + "url": "https://www.purechat.com", + "companyId": "pure_chat" + }, + "pureprofile": { + "name": "Pureprofile", + "categoryId": 6, + "url": "https://www.pureprofile.com/us/", + "companyId": "pureprofile" + }, + "purlive": { + "name": "PurLive", + "categoryId": 4, + "url": "http://www.purlive.com/", + "companyId": "purlive" + }, + "puserving.com": { + "name": "puserving.com", + "categoryId": 11, + "url": null, + "companyId": null + }, + "push.world": { + "name": "Push.world", + "categoryId": 2, + "url": "https://push.world/en", + "companyId": "push.world" + }, + "push_engage": { + "name": "Push Engage", + "categoryId": 2, + "url": "https://www.pushengage.com/", + "companyId": "push_engage" + }, + "pushame.com": { + "name": "pushame.com", + "categoryId": 11, + "url": null, + "companyId": null + }, + "pushbullet": { + "name": "Pushbullet", + "categoryId": 2, + "url": "https://www.pushbullet.com/", + "companyId": "pushbullet" + }, + "pushcrew": { + "name": "VWO Engage", + "categoryId": 2, + "url": "https://vwo.com/engage/", + "companyId": "wingify" + }, + "pusher.com": { + "name": "Pusher", + "categoryId": 6, + "url": "https://pusher.com/", + "companyId": null + }, + "pushnative.com": { + "name": "pushnative.com", + "categoryId": 11, + "url": null, + "companyId": null + }, + "pushnews": { + "name": "Pushnews", + "categoryId": 4, + "url": "https://www.pushnews.eu/", + "companyId": "pushnews" + }, + "pushno.com": { + "name": "pushno.com", + "categoryId": 11, + "url": null, + "companyId": null + }, + "pushwhy.com": { + "name": "pushwhy.com", + "categoryId": 11, + "url": null, + "companyId": null + }, + "pushwoosh.com": { + "name": "Pushwoosh", + "categoryId": 2, + "url": "https://www.pushwoosh.com/", + "companyId": "pushwoosh" + }, + "pvclouds.com": { + "name": "pvclouds.com", + "categoryId": 11, + "url": null, + "companyId": null + }, + "q1media": { + "name": "Q1Media", + "categoryId": 4, + "url": "http://q1media.com/", + "companyId": "q1media" + }, + "q_division": { + "name": "Q-Division", + "categoryId": 4, + "url": "https://q-division.de/", + "companyId": null + }, + "qbaka": { + "name": "Qbaka", + "categoryId": 6, + "url": "https://qbaka.com/", + "companyId": "qbaka" + }, + "qcri_analytics": { + "name": "QCRI Analytics", + "categoryId": 6, + "url": "http://qcri.org/", + "companyId": "qatar_computing_research_institute" + }, + "qeado": { + "name": "Qeado", + "categoryId": 6, + "url": "https://www.qeado.com/", + "companyId": "qeado" + }, + "qihoo_360": { + "name": "Qihoo 360", + "categoryId": 6, + "url": "https://www.360totalsecurity.com/en/", + "companyId": "qihoo_360_technology" + }, + "qq.com": { + "name": "QQ International", + "categoryId": 2, + "url": "https://www.qq.com/", + "companyId": "tencent", + "source": "AdGuard" + }, + "qrius": { + "name": "Qrius", + "categoryId": 7, + "url": "http://www.qrius.me/", + "companyId": "mediafed" + }, + "qualaroo": { + "name": "Qualaroo", + "categoryId": 6, + "url": null, + "companyId": null + }, + "qualcomm": { + "name": "Qualcomm", + "categoryId": 8, + "url": "https://www.qualcomm.com/", + "companyId": "qualcomm", + "source": "AdGuard" + }, + "qualcomm_location_service": { + "name": "Qualcomm Location Service", + "categoryId": 15, + "url": "https://www.qualcomm.com/site/privacy/services", + "companyId": "qualcomm", + "source": "AdGuard" + }, + "qualia": { + "name": "Qualia", + "categoryId": 4, + "url": "http://www.bluecava.com/", + "companyId": "qualia" + }, + "qualtrics": { + "name": "Qualtrics", + "categoryId": 6, + "url": "http://www.qualtrics.com/", + "companyId": "qualtrics" + }, + "quantcast": { + "name": "Quantcast", + "categoryId": 4, + "url": "http://www.quantcast.com/", + "companyId": "quantcast" + }, + "quantcount": { + "name": "Quantcount", + "categoryId": 6, + "url": "http://www.quantcast.com", + "companyId": "quantcast" + }, + "quantum_metric": { + "name": "Quantum Metric", + "categoryId": 6, + "url": "https://www.quantummetric.com/", + "companyId": "quantum_metric" + }, + "quartic.pl": { + "name": "Quartic", + "categoryId": 6, + "url": "https://www.quarticon.com/", + "companyId": "quarticon" + }, + "qubit": { + "name": "Qubit Opentag", + "categoryId": 6, + "url": "http://www.qubit.com/", + "companyId": "qubit" + }, + "questback": { + "name": "Questback", + "categoryId": 2, + "url": "http://www1.questback.com/", + "companyId": "questback" + }, + "queue-it": { + "name": "Queue-it", + "categoryId": 6, + "url": "https://queue-it.com/", + "companyId": null + }, + "quick-counter.net": { + "name": "Quick-counter.net", + "categoryId": 6, + "url": "http://www.quick-counter.net/", + "companyId": "quick-counter.net" + }, + "quigo_adsonar": { + "name": "Quigo AdSonar", + "categoryId": 4, + "url": "http://www.quigo.com", + "companyId": "verizon" + }, + "quinstreet": { + "name": "QuinStreet", + "categoryId": 4, + "url": "http://www.quinstreet.com/", + "companyId": "quinstreet" + }, + "quintelligence": { + "name": "Quintelligence", + "categoryId": 6, + "url": "http://www.quintelligence.com/", + "companyId": "quintelligence" + }, + "quisma": { + "name": "Quisma", + "categoryId": 4, + "url": "http://www.quisma.com/en/", + "companyId": "wpp" + }, + "quora.com": { + "name": "Quora", + "categoryId": 7, + "url": "https://quora.com/", + "companyId": null + }, + "r_advertising": { + "name": "R-Advertising", + "categoryId": 4, + "url": "http://www.r-advertising.com/", + "companyId": "r-advertising" + }, + "rackcdn.com": { + "name": "Rackspace", + "categoryId": 9, + "url": "https://www.rackspace.com/", + "companyId": null + }, + "radarurl": { + "name": "RadarURL", + "categoryId": 6, + "url": "http://radarurl.com/", + "companyId": "radarurl" + }, + "radial": { + "name": "Radial", + "categoryId": 4, + "url": "http://www.clearsaleing.com/", + "companyId": "radial" + }, + "radiumone": { + "name": "RadiumOne", + "categoryId": 4, + "url": "http://www.radiumone.com/index.html", + "companyId": "rythmone" + }, + "raisenow": { + "name": "RaiseNow", + "categoryId": 6, + "url": "https://www.raisenow.com/de", + "companyId": "raisenow" + }, + "rakuten_display": { + "name": "Rakuten Display", + "categoryId": 4, + "url": "https://rakutenmarketing.com/display", + "companyId": "rakuten" + }, + "rakuten_globalmarket": { + "name": "Rakuten", + "categoryId": 4, + "url": "https://www.rakuten.co.jp/", + "companyId": "rakuten" + }, + "rakuten_widget": { + "name": "Rakuten Widget", + "categoryId": 4, + "url": "http://global.rakuten.com/corp/", + "companyId": "rakuten" + }, + "rambler": { + "name": "Rambler", + "categoryId": 6, + "url": "https://www.rambler.ru/", + "companyId": "rambler" + }, + "rambler_count": { + "name": "Rambler Count", + "categoryId": 2, + "url": "http://www.rambler.ru/", + "companyId": "rambler" + }, + "rambler_widget": { + "name": "Rambler Widget", + "categoryId": 2, + "url": "http://www.rambler.ru/", + "companyId": "rambler" + }, + "rapidspike": { + "name": "RapidSpike", + "categoryId": 6, + "url": "https://www.rapidspike.com", + "companyId": "rapidspike" + }, + "ravelin": { + "name": "Ravelin", + "categoryId": 6, + "url": "https://www.ravelin.com/", + "companyId": null + }, + "rawgit": { + "name": "RawGit", + "categoryId": 9, + "url": "http://rawgit.com/", + "companyId": null + }, + "raygun": { + "name": "Raygun", + "categoryId": 4, + "url": "https://raygun.com/", + "companyId": "raygun" + }, + "rbc_counter": { + "name": "RBC Counter", + "categoryId": 6, + "url": "http://www.rbc.ru/", + "companyId": "rbc_group" + }, + "rcs.it": { + "name": "RCS", + "categoryId": 4, + "url": "http://www.rcsmediagroup.it/", + "companyId": "rcs" + }, + "rd_station": { + "name": "RD Station", + "categoryId": 6, + "url": "http://www.rdstation.com/en/", + "companyId": "rd_station" + }, + "rea_group": { + "name": "REA Group Ltd.", + "categoryId": 4, + "url": "https://www.rea-group.com/", + "companyId": "news_corp", + "source": "AdGuard" + }, + "reachforce": { + "name": "ReachForce", + "categoryId": 6, + "url": "http://www.reachforce.com/", + "companyId": "reachforce" + }, + "reachjunction": { + "name": "ReachJunction", + "categoryId": 4, + "url": "http://www.reachjunction.com/", + "companyId": "reachjunction" + }, + "reachlocal": { + "name": "ReachLocal", + "categoryId": 4, + "url": "http://www.reachlocal.com/", + "companyId": "reachlocal" + }, + "reactful": { + "name": "Reactful", + "categoryId": 4, + "url": "http://www.reactful.com/", + "companyId": "reactful" + }, + "reactivpub": { + "name": "Reactivpub", + "categoryId": 6, + "url": "http://www.reactivpub.com/", + "companyId": "r-advertising" + }, + "reactx": { + "name": "ReactX", + "categoryId": 4, + "url": "http://home.skinected.com", + "companyId": "reactx" + }, + "readerboard": { + "name": "ReaderBoard", + "categoryId": 7, + "url": "http://www.readrboard.com", + "companyId": "centre_phi" + }, + "readme": { + "name": "ReadMe", + "categoryId": 6, + "url": "https://readme.com/", + "companyId": "readme" + }, + "readspeaker.com": { + "name": "ReadSpeaker", + "categoryId": 2, + "url": "https://www.readspeaker.com/", + "companyId": null + }, + "realclick": { + "name": "RealClick", + "categoryId": 4, + "url": "http://www.realclick.co.kr/", + "companyId": "realclick" + }, + "realestate.com.au": { + "name": "realestate.com.au Pty Limited", + "categoryId": 4, + "url": "https://www.realestate.com.au/", + "companyId": "news_corp", + "source": "AdGuard" + }, + "realperson.de": { + "name": "Realperson Chat", + "categoryId": 2, + "url": "http://www.optimise-it.de/", + "companyId": "optimise_it" + }, + "realtime": { + "name": "Realtime", + "categoryId": 2, + "url": "http://www.realtime.co/", + "companyId": "realtime" + }, + "realytics": { + "name": "Realytics", + "categoryId": 6, + "url": "https://www.realytics.io/", + "companyId": "realytics" + }, + "rebel_mouse": { + "name": "Rebel Mouse", + "categoryId": 6, + "url": "https://www.rebelmouse.com/", + "companyId": "rebelmouse" + }, + "recaptcha": { + "name": "reCAPTCHA", + "categoryId": 8, + "url": "https://www.google.com/recaptcha/about/", + "companyId": "google", + "source": "AdGuard" + }, + "recettes.net": { + "name": "Recettes.net", + "categoryId": 8, + "url": "http://www.recettes.net/", + "companyId": "recettes.net" + }, + "recopick": { + "name": "RecoPick", + "categoryId": 4, + "url": "https://recopick.com/", + "companyId": "recopick" + }, + "recreativ": { + "name": "Recreativ", + "categoryId": 4, + "url": "http://recreativ.ru/", + "companyId": "recreativ" + }, + "recruitics": { + "name": "Recruitics", + "categoryId": 6, + "url": "http://recruitics.com/", + "companyId": "recruitics" + }, + "red_ventures": { + "name": "Red Ventures", + "categoryId": 6, + "url": "https://www.redventures.com/", + "companyId": "red_ventures" + }, + "redblue_de": { + "name": "redblue", + "categoryId": 6, + "url": "https://www.redblue.de/", + "companyId": null + }, + "redcdn.pl": { + "name": "redGalaxy CDN", + "categoryId": 9, + "url": "http://www.atendesoftware.pl/", + "companyId": "atende_software" + }, + "reddit": { + "name": "Reddit", + "categoryId": 7, + "url": "https://www.reddit.com", + "companyId": "advance", + "source": "AdGuard" + }, + "redhelper": { + "name": "RedHelper", + "categoryId": 2, + "url": "http://redhelper.com/", + "companyId": "redhelper" + }, + "redlotus": { + "name": "RedLotus", + "categoryId": 4, + "url": "http://triggit.com/", + "companyId": "redlotus" + }, + "redtram": { + "name": "RedTram", + "categoryId": 4, + "url": "http://www.redtram.com/", + "companyId": "redtram" + }, + "redtube.com": { + "name": "redtube.com", + "categoryId": 9, + "url": null, + "companyId": null + }, + "redux_media": { + "name": "Redux Media", + "categoryId": 4, + "url": "http://reduxmedia.com/", + "companyId": "redux_media" + }, + "reed_business_information": { + "name": "Reed Business Information", + "categoryId": 6, + "url": "http://www.reedbusiness.com/", + "companyId": "andera_partners" + }, + "reembed.com": { + "name": "reEmbed", + "categoryId": 0, + "url": "https://www.reembed.com/", + "companyId": "reembed" + }, + "reevoo.com": { + "name": "Reevoo", + "categoryId": 4, + "url": "https://www.reevoo.com/en/", + "companyId": "reevoo" + }, + "refericon": { + "name": "Refericon", + "categoryId": 4, + "url": "https://refericon.pl/#", + "companyId": "refericon" + }, + "referlocal": { + "name": "ReferLocal", + "categoryId": 4, + "url": "http://referlocal.com/", + "companyId": "referlocal" + }, + "refersion": { + "name": "Refersion", + "categoryId": 4, + "url": "https://www.refersion.com/", + "companyId": "refersion" + }, + "refined_labs": { + "name": "Refined Labs", + "categoryId": 4, + "url": "http://www.refinedlabs.com", + "companyId": "refined_labs" + }, + "reflektion": { + "name": "Reflektion", + "categoryId": 4, + "url": "http://", + "companyId": "reflektion" + }, + "reformal": { + "name": "Reformal", + "categoryId": 2, + "url": "http://reformal.ru/", + "companyId": "reformal" + }, + "reinvigorate": { + "name": "Reinvigorate", + "categoryId": 6, + "url": "http://www.reinvigorate.net/", + "companyId": "media_temple" + }, + "rekko": { + "name": "Rekko", + "categoryId": 4, + "url": "http://convert.us/", + "companyId": "rekko" + }, + "reklam_store": { + "name": "Reklam Store", + "categoryId": 4, + "url": "http://www.reklamstore.com", + "companyId": "reklam_store" + }, + "reklamport": { + "name": "Reklamport", + "categoryId": 4, + "url": "http://www.reklamport.com/", + "companyId": "reklamport" + }, + "reklamz": { + "name": "ReklamZ", + "categoryId": 4, + "url": "http://www.reklamz.com/", + "companyId": "reklamz" + }, + "rekmob": { + "name": "Rekmob", + "categoryId": 4, + "url": "https://www.rekmob.com/", + "companyId": "rekmob" + }, + "relap": { + "name": "Relap", + "categoryId": 4, + "url": "https://relap.io/", + "companyId": "relap" + }, + "relay42": { + "name": "Relay42", + "categoryId": 5, + "url": "http://synovite.com", + "companyId": "relay42" + }, + "relestar": { + "name": "Relestar", + "categoryId": 6, + "url": "https://relestar.com/", + "companyId": "relestar" + }, + "relevant4.com": { + "name": "relevant4 GmbH", + "categoryId": 8, + "url": "https://www.relevant4.com/", + "companyId": null + }, + "remintrex": { + "name": "Remintrex", + "categoryId": 4, + "url": "http://www.remintrex.com/", + "companyId": null + }, + "remove.video": { + "name": "remove.video", + "categoryId": 12, + "url": null, + "companyId": null + }, + "repost.us": { + "name": "Repost.us", + "categoryId": 4, + "url": "http://www.freerangecontent.com/", + "companyId": "repost" + }, + "republer.com": { + "name": "Republer", + "categoryId": 4, + "url": "http://republer.com/", + "companyId": "republer" + }, + "res-meter": { + "name": "Res-meter", + "categoryId": 6, + "url": "http://respublica.al/res-meter", + "companyId": "respublica" + }, + "research_now": { + "name": "Research Now", + "categoryId": 4, + "url": "http://www.researchnow.com/", + "companyId": "research_now" + }, + "resonate_networks": { + "name": "Resonate Networks", + "categoryId": 4, + "url": "http://www.resonatenetworks.com/", + "companyId": "resonate" + }, + "respond": { + "name": "Respond", + "categoryId": 4, + "url": "http://respondhq.com/", + "companyId": "respond" + }, + "responsetap": { + "name": "ResponseTap", + "categoryId": 4, + "url": "http://www.adinsight.eu/", + "companyId": "responsetap" + }, + "result_links": { + "name": "Result Links", + "categoryId": 4, + "url": "http://www.resultlinks.com/", + "companyId": "result_links" + }, + "resultspage.com": { + "name": "SLI Systems", + "categoryId": 6, + "url": "https://www.sli-systems.com/", + "companyId": "sli_systems" + }, + "retailrocket.net": { + "name": "Retail Rocket", + "categoryId": 4, + "url": "https://retailrocket.net/", + "companyId": "retail_rocket" + }, + "retarget_app": { + "name": "Retarget App", + "categoryId": 4, + "url": "https://retargetapp.com/", + "companyId": "retargetapp" + }, + "retargeter_beacon": { + "name": "ReTargeter Beacon", + "categoryId": 4, + "url": "http://www.retargeter.com/", + "companyId": "retargeter" + }, + "retargeting.cl": { + "name": "Retargeting.cl", + "categoryId": 4, + "url": "http://retargeting.cl/", + "companyId": "retargeting" + }, + "retention_science": { + "name": "Retention Science", + "categoryId": 4, + "url": "http://retentionscience.com/", + "companyId": "retention_science" + }, + "reuters_media": { + "name": "Reuters media", + "categoryId": 9, + "url": "https://reuters.com", + "companyId": null + }, + "revcontent": { + "name": "RevContent", + "categoryId": 4, + "url": "https://www.revcontent.com/", + "companyId": "revcontent" + }, + "reve_marketing": { + "name": "Reve Marketing", + "categoryId": 4, + "url": "http://tellafriend.socialtwist.com/", + "companyId": "reve_marketing" + }, + "revenue": { + "name": "Revenue", + "categoryId": 4, + "url": "https://revenue.com/", + "companyId": "revenue" + }, + "revenuehits": { + "name": "RevenueHits", + "categoryId": 4, + "url": "http://www.revenuehits.com/", + "companyId": "revenuehits" + }, + "revenuemantra": { + "name": "RevenueMantra", + "categoryId": 4, + "url": "http://www.revenuemantra.com/", + "companyId": "revenuemantra" + }, + "revive_adserver": { + "name": "Revive Adserver", + "categoryId": 4, + "url": "https://www.revive-adserver.com/", + "companyId": "revive_adserver" + }, + "revolver_maps": { + "name": "Revolver Maps", + "categoryId": 6, + "url": "http://www.revolvermaps.com/", + "companyId": "revolver_maps" + }, + "revresponse": { + "name": "RevResponse", + "categoryId": 4, + "url": "http://www.netline.com/", + "companyId": "netline" + }, + "rewords": { + "name": "ReWords", + "categoryId": 4, + "url": "http://www.rewords.pl/", + "companyId": "rewords" + }, + "rhythmone": { + "name": "RhythmOne", + "categoryId": 4, + "url": "http://www.adconductor.com/", + "companyId": "rhythmone" + }, + "rhythmone_beacon": { + "name": "Rhythmone Beacon", + "categoryId": 4, + "url": "https://www.rhythmone.com/", + "companyId": "rythmone" + }, + "ria.ru": { + "name": "ria.ru", + "categoryId": 8, + "url": "https://ria.ru/", + "companyId": null + }, + "rich_media_banner_network": { + "name": "Rich Media Banner Network", + "categoryId": 4, + "url": "http://rmbn.ru/", + "companyId": "rich_media_banner_network" + }, + "richrelevance": { + "name": "RichRelevance", + "categoryId": 2, + "url": "http://www.richrelevance.com/", + "companyId": "richrelevance" + }, + "ringier.ch": { + "name": "Ringier", + "categoryId": 6, + "url": "http://ringier.ch/en", + "companyId": "ringier" + }, + "rio_seo": { + "name": "Rio SEO", + "categoryId": 7, + "url": "http://www.meteorsolutions.com", + "companyId": "rio_seo" + }, + "riskfield.com": { + "name": "Riskified", + "categoryId": 2, + "url": "https://www.riskified.com/", + "companyId": "riskfield" + }, + "rncdn3.com": { + "name": "Reflected Networks", + "categoryId": 9, + "url": "http://www.rncdn3.com/", + "companyId": null + }, + "ro2.biz": { + "name": "Ro2.biz", + "categoryId": 4, + "url": "http://ro2.biz/index.php?r=adikku", + "companyId": "ro2.biz" + }, + "roblox": { + "name": "Roblox", + "categoryId": 8, + "url": "https://www.roblox.com/", + "companyId": null + }, + "rockerbox": { + "name": "Rockerbox", + "categoryId": 6, + "url": "https://www.rockerbox.com/privacy", + "companyId": "rockerbox" + }, + "rocket.ia": { + "name": "Rocket.ia", + "categoryId": 4, + "url": "https://rocket.la/", + "companyId": "rocket.la" + }, + "roi_trax": { + "name": "ROI trax", + "categoryId": 4, + "url": "http://www.oneupweb.com/", + "companyId": "oneupweb" + }, + "roistat": { + "name": "Roistat", + "categoryId": 6, + "url": "https://roistat.com", + "companyId": "roistat" + }, + "rollad": { + "name": "Rollad", + "categoryId": 4, + "url": "http://rollad.ru", + "companyId": "rollad" + }, + "rollbar": { + "name": "Rollbar", + "categoryId": 6, + "url": "http://www.rollbar.com/", + "companyId": "rollbar" + }, + "roost": { + "name": "Roost", + "categoryId": 6, + "url": "http://roost.me/", + "companyId": "roost" + }, + "rooster": { + "name": "Rooster", + "categoryId": 6, + "url": "http://www.getrooster.com/", + "companyId": "rooster" + }, + "roq.ad": { + "name": "Roq.ad", + "categoryId": 4, + "url": "https://www.roq.ad/", + "companyId": "roq.ad" + }, + "rotaban": { + "name": "RotaBan", + "categoryId": 4, + "url": "http://www.rotaban.ru/", + "companyId": "rotaban" + }, + "routenplaner-karten.com": { + "name": "Routenplaner Karten", + "categoryId": 2, + "url": "https://www.routenplaner-karten.com/", + "companyId": null + }, + "rovion": { + "name": "Rovion", + "categoryId": 4, + "url": "http://www.rovion.com/", + "companyId": "rovion" + }, + "rsspump": { + "name": "RSSPump", + "categoryId": 2, + "url": "http://www.rsspump.com", + "companyId": "rsspump" + }, + "rtb_house": { + "name": "RTB House", + "categoryId": 4, + "url": "http://en.adpilot.com/", + "companyId": "rtb_house" + }, + "rtblab": { + "name": "RTBmarkt", + "categoryId": 4, + "url": "http://www.rtbmarkt.de/en/home/", + "companyId": "rtbmarkt" + }, + "rtbsuperhub.com": { + "name": "rtbsuperhub.com", + "categoryId": 4, + "url": null, + "companyId": null + }, + "rtl_group": { + "name": "RTL Group", + "categoryId": 8, + "url": "http://www.rtlgroup.com/www/htm/home.aspx", + "companyId": "rtl_group" + }, + "rtmark.net": { + "name": "Advertising Technologies Ltd", + "categoryId": 4, + "url": "http://rtmark.net/", + "companyId": "big_wall_vision" + }, + "rubicon": { + "name": "Rubicon", + "categoryId": 4, + "url": "http://rubiconproject.com/", + "companyId": "rubicon_project" + }, + "ruhrgebiet": { + "name": "Ruhrgebiet", + "categoryId": 4, + "url": "https://www.ruhrgebiet-onlineservices.de/", + "companyId": "ruhrgebiet" + }, + "rummycircle": { + "name": "RummyCircle", + "categoryId": 4, + "url": "https://www.rummycircle.com/", + "companyId": "rummycircle" + }, + "run": { + "name": "RUN", + "categoryId": 4, + "url": "http://www.rundsp.com/", + "companyId": "run" + }, + "runative": { + "name": "Runative", + "categoryId": 4, + "url": "https://runative.com/", + "companyId": null + }, + "rune": { + "name": "Rune", + "categoryId": 6, + "url": "http://www.secretrune.com/", + "companyId": "rune_inc." + }, + "runmewivel.com": { + "name": "runmewivel.com", + "categoryId": 10, + "url": null, + "companyId": null + }, + "rythmxchange": { + "name": "Rythmxchange", + "categoryId": 0, + "url": "https://www.rhythmone.com/", + "companyId": "rythmone" + }, + "s24_com": { + "name": "Shopping24 internet group", + "categoryId": 4, + "url": "https://www.s24.com/", + "companyId": null + }, + "s3xified.com": { + "name": "s3xified.com", + "categoryId": 11, + "url": null, + "companyId": null + }, + "sabavision": { + "name": "SabaVision", + "categoryId": 4, + "url": "http://www.sabavision.com/en/", + "companyId": "sabavision" + }, + "sagemetrics": { + "name": "SageMetrics", + "categoryId": 4, + "url": "http://www.sagemetrics.com", + "companyId": "ipmg" + }, + "sailthru_horizon": { + "name": "Sailthru Horizon", + "categoryId": 4, + "url": "https://www.sailthru.com", + "companyId": "sailthru" + }, + "salecycle": { + "name": "SaleCycle", + "categoryId": 4, + "url": "http://www.salecycle.com/", + "companyId": "salecycle" + }, + "sales_feed": { + "name": "Sales Feed", + "categoryId": 4, + "url": "https://www.salesfeed.com/", + "companyId": "sales_feed" + }, + "sales_manago": { + "name": "SALESmanago", + "categoryId": 6, + "url": "https://www.salesmanago.com/", + "companyId": "sales_manago" + }, + "salesforce.com": { + "name": "Salesforce", + "categoryId": 4, + "url": "https://www.salesforce.com/eu/", + "companyId": "salesforce" + }, + "salesforce_live_agent": { + "name": "Salesforce Live Agent", + "categoryId": 2, + "url": "http://www.salesforce.com/", + "companyId": "salesforce" + }, + "salesfusion": { + "name": "SalesFUSION", + "categoryId": 4, + "url": "http://salesfusion.com/", + "companyId": "salesfusion" + }, + "salespider_media": { + "name": "SaleSpider Media", + "categoryId": 4, + "url": "http://salespidermedia.com/", + "companyId": "salespider_media" + }, + "salesviewer": { + "name": "SalesViewer", + "categoryId": 6, + "url": "https://www.salesviewer.com/", + "companyId": "salesviewer" + }, + "samba.tv": { + "name": "Samba TV", + "categoryId": 4, + "url": "https://samba.tv/", + "companyId": "samba_tv" + }, + "samsung": { + "name": "Samsung", + "categoryId": 8, + "url": "https://www.samsung.com/", + "companyId": "samsung", + "source": "AdGuard" + }, + "samsungads": { + "name": "Samsung Ads", + "categoryId": 4, + "url": "https://www.samsung.com/business/samsungads/", + "companyId": "samsung", + "source": "AdGuard" + }, + "samsungapps": { + "name": "Samsung Apps", + "categoryId": 101, + "url": "https://www.samsung.com/au/apps/", + "companyId": "samsung", + "source": "AdGuard" + }, + "samsungmobile": { + "name": "Samsung Mobile", + "categoryId": 101, + "url": "https://www.samsung.com/mobile/", + "companyId": "samsung", + "source": "AdGuard" + }, + "samsungpush": { + "name": "Samsung Push", + "categoryId": 8, + "url": null, + "companyId": "samsung", + "source": "AdGuard" + }, + "samsungsds": { + "name": "Samsung SDS", + "categoryId": 10, + "url": "https://www.samsungsds.com/", + "companyId": "samsung", + "source": "AdGuard" + }, + "samsungtv": { + "name": "Samsung TV", + "categoryId": 15, + "url": "https://www.samsung.com/au/tvs/", + "companyId": "samsung", + "source": "AdGuard" + }, + "sanoma.fi": { + "name": "Sanoma", + "categoryId": 4, + "url": "https://sanoma.com/", + "companyId": "sanoma" + }, + "sap_crm": { + "name": "SAP CRM", + "categoryId": 6, + "url": "https://www.sap.com/products/crm.html", + "companyId": "sap" + }, + "sap_sales_cloud": { + "name": "SAP Sales Cloud", + "categoryId": 2, + "url": "http://leadforce1.com/", + "companyId": "sap" + }, + "sap_xm": { + "name": "SAP Exchange Media", + "categoryId": 4, + "url": "http://sapexchange.media/", + "companyId": null + }, + "sape.ru": { + "name": "Sape", + "categoryId": 6, + "url": "https://www.sape.ru/en", + "companyId": "sape" + }, + "sapo_ads": { + "name": "SAPO Ads", + "categoryId": 4, + "url": "http://www.sapo.pt/", + "companyId": "sapo" + }, + "sas": { + "name": "SAS", + "categoryId": 6, + "url": "http://www.sas.com/", + "companyId": "sas" + }, + "say.ac": { + "name": "Say.ac", + "categoryId": 4, + "url": "http://say.ac", + "companyId": "say.ac" + }, + "say_media": { + "name": "Say Media", + "categoryId": 4, + "url": "http://www.saymedia.com/", + "companyId": "say_media" + }, + "sayyac": { + "name": "Sayyac", + "categoryId": 6, + "url": "http://www.sayyac.com/", + "companyId": "sayyac" + }, + "scarabresearch": { + "name": "Scarab Research", + "categoryId": 4, + "url": "https://www.scarabresearch.com/", + "companyId": "emarsys" + }, + "schibsted": { + "name": "Schibsted Media Group", + "categoryId": 8, + "url": "http://www.schibsted.com/", + "companyId": "schibsted_asa" + }, + "schneevonmorgen.com": { + "name": "Schnee von Morgen", + "categoryId": 0, + "url": "http://www.schneevonmorgen.com/", + "companyId": null + }, + "scoota": { + "name": "Scoota", + "categoryId": 4, + "url": "http://scoota.com/", + "companyId": "rockabox" + }, + "scorecard_research_beacon": { + "name": "ScoreCard Research Beacon", + "categoryId": 6, + "url": "https://www.scorecardresearch.com/", + "companyId": "comscore" + }, + "scout_analytics": { + "name": "Scout Analytics", + "categoryId": 4, + "url": "http://scoutanalytics.com/", + "companyId": "scout_analytics" + }, + "scribblelive": { + "name": "ScribbleLive", + "categoryId": 8, + "url": null, + "companyId": null + }, + "scribol": { + "name": "Scribol", + "categoryId": 4, + "url": "http://scribol.com/", + "companyId": "scribol" + }, + "scripps_analytics": { + "name": "Scripps Analytics", + "categoryId": 6, + "url": "http://www.scrippsnetworksinteractive.com/", + "companyId": "scripps_networks" + }, + "scroll": { + "name": "Scroll", + "categoryId": 5, + "url": "https://scroll.com/", + "companyId": "scroll" + }, + "scupio": { + "name": "Scupio", + "categoryId": 4, + "url": "http://ad.scupio.com/", + "companyId": "bridgewell" + }, + "search123": { + "name": "Search123", + "categoryId": 4, + "url": "http://www.search123.com/", + "companyId": "search123" + }, + "searchforce": { + "name": "SearchForce", + "categoryId": 4, + "url": "http://www.searchforce.com/", + "companyId": "searchforce" + }, + "searchignite": { + "name": "SearchIgnite", + "categoryId": 4, + "url": "https://searchignite.com/", + "companyId": "zeta" + }, + "searchrev": { + "name": "SearchRev", + "categoryId": 4, + "url": "http://www.searchrev.com/", + "companyId": "searchrev" + }, + "second_media": { + "name": "Second Media", + "categoryId": 4, + "url": "http://www.secondmedia.com/", + "companyId": "second_media" + }, + "sectigo": { + "name": "Sectigo Limited", + "categoryId": 5, + "url": "https://www.sectigo.com", + "companyId": "sectigo", + "source": "AdGuard" + }, + "securedtouch": { + "name": "SecuredTouch", + "categoryId": 6, + "url": "https://www.securedtouch.com/", + "companyId": null + }, + "securedvisit": { + "name": "SecuredVisit", + "categoryId": 4, + "url": "http://securedvisit.com/", + "companyId": "securedvisit" + }, + "seeding_alliance": { + "name": "Seeding Alliance", + "categoryId": 4, + "url": "http://seeding-alliance.de", + "companyId": "stroer" + }, + "seedtag.com": { + "name": "Seedtag", + "categoryId": 4, + "url": "https://www.seedtag.com/en/", + "companyId": "seedtag" + }, + "seevolution": { + "name": "SeeVolution", + "categoryId": 6, + "url": "http://www.seevolution.com", + "companyId": "seevolution" + }, + "segment": { + "name": "Segment", + "categoryId": 6, + "url": "https://segment.io/", + "companyId": "segment" + }, + "segmento": { + "name": "Segmento", + "categoryId": 4, + "url": "https://segmento.ru/en", + "companyId": "segmento" + }, + "segmint": { + "name": "Segmint", + "categoryId": 6, + "url": "http://www.segmint.com/", + "companyId": "segmint" + }, + "sekindo": { + "name": "Sekindo", + "categoryId": 4, + "url": "http://www.sekindo.com/", + "companyId": "sekindo" + }, + "sellpoints": { + "name": "Sellpoints", + "categoryId": 4, + "url": "https://www.sellpoints.com/", + "companyId": "sellpoints" + }, + "semantiqo.com": { + "name": "Semantiqo", + "categoryId": 4, + "url": "https://semantiqo.com/", + "companyId": null + }, + "semasio": { + "name": "Semasio", + "categoryId": 4, + "url": "http://semasio.com/", + "companyId": "semasio" + }, + "semilo": { + "name": "Semilo", + "categoryId": 4, + "url": "http://www.semilo.nl/", + "companyId": "semilo" + }, + "semknox.com": { + "name": "SEMKNOX GmbH", + "categoryId": 5, + "url": "https://semknox.com/", + "companyId": null + }, + "sendinblue": { + "name": "sendinblue", + "categoryId": 4, + "url": "https://fr.sendinblue.com/", + "companyId": "sendinblue" + }, + "sendpulse.com": { + "name": "SendPulse", + "categoryId": 3, + "url": "https://sendpulse.com/", + "companyId": null + }, + "sendsay": { + "name": "Sendsay", + "categoryId": 2, + "url": "https://sendsay.ru", + "companyId": "sendsay" + }, + "sense_digital": { + "name": "Sense Digital", + "categoryId": 6, + "url": "http://sensedigital.in/", + "companyId": "sense_digital" + }, + "sensors_data": { + "name": "Sensors Data", + "categoryId": 6, + "url": "https://www.sensorsdata.cn/", + "companyId": "sensors_data" + }, + "sentifi.com": { + "name": "Sentifi", + "categoryId": 6, + "url": "https://sentifi.com/", + "companyId": "sentifi" + }, + "sentry": { + "name": "Sentry", + "categoryId": 6, + "url": "https://sentry.io/", + "companyId": "sentry" + }, + "sepyra": { + "name": "Sepyra", + "categoryId": 4, + "url": "http://sepyra.com/", + "companyId": "sepyra" + }, + "sessioncam": { + "name": "SessionCam", + "categoryId": 6, + "url": "http://www.sessioncam.com/", + "companyId": "sessioncam" + }, + "sessionly": { + "name": "Sessionly", + "categoryId": 2, + "url": "https://www.sessionly.io/", + "companyId": "sessionly" + }, + "sevenone_media": { + "name": "SevenOne Media", + "categoryId": 4, + "url": null, + "companyId": null + }, + "sexadnetwork": { + "name": "SexAdNetwork", + "categoryId": 3, + "url": "http://www.sexadnetwork.com/", + "companyId": "sexadnetwork" + }, + "sexinyourcity": { + "name": "SexInYourCity", + "categoryId": 3, + "url": "http://www.sexinyourcity.com/", + "companyId": "sexinyourcity" + }, + "sextracker": { + "name": "SexTracker", + "categoryId": 3, + "url": "http://webmasters.sextracker.com/", + "companyId": "sextracker" + }, + "sexypartners.net": { + "name": "sexypartners.net", + "categoryId": 3, + "url": null, + "companyId": null + }, + "seznam": { + "name": "Seznam", + "categoryId": 6, + "url": "https://onas.seznam.cz/cz/", + "companyId": "seznam" + }, + "shareaholic": { + "name": "Shareaholic", + "categoryId": 6, + "url": "https://www.shareaholic.com/", + "companyId": "shareaholic" + }, + "shareasale": { + "name": "ShareASale", + "categoryId": 4, + "url": "http://www.shareasale.com/", + "companyId": "shareasale" + }, + "sharecompany": { + "name": "ShareCompany", + "categoryId": 2, + "url": "http://sharecompany.nl", + "companyId": "sharecompany" + }, + "sharepoint": { + "name": "SharePoint", + "categoryId": 8, + "url": "https://www.microsoft.com/microsoft-365/sharepoint/collaboration", + "companyId": "microsoft", + "source": "AdGuard" + }, + "sharethis": { + "name": "ShareThis", + "categoryId": 4, + "url": "http://sharethis.com/", + "companyId": "sharethis" + }, + "sharethrough": { + "name": "ShareThrough", + "categoryId": 4, + "url": "http://www.sharethrough.com/", + "companyId": "sharethrough" + }, + "sharpspring": { + "name": "Sharpspring", + "categoryId": 6, + "url": "https://sharpspring.com/", + "companyId": "sharpspring" + }, + "sheego.de": { + "name": "sheego.de", + "categoryId": 8, + "url": null, + "companyId": null + }, + "sheerid": { + "name": "SheerID", + "categoryId": 4, + "url": "http://www.sheerid.com/", + "companyId": "sheerid" + }, + "shinystat": { + "name": "ShinyStat", + "categoryId": 6, + "url": "http://www.shinystat.com/", + "companyId": "shinystat" + }, + "shop_target": { + "name": "Shop Target", + "categoryId": 4, + "url": "http://shoptarget.com.br/", + "companyId": "shopback" + }, + "shopauskunft.de": { + "name": "ShopAuskunft.de", + "categoryId": 2, + "url": "https://shopauskunft.de/", + "companyId": null + }, + "shopgate.com": { + "name": "Shopgate", + "categoryId": 2, + "url": "https://www.shopgate.com/", + "companyId": null + }, + "shopify": { + "name": "Shopify Inc.", + "categoryId": 2, + "url": "https://www.shopify.com/", + "companyId": "shopify", + "source": "AdGuard" + }, + "shopify_stats": { + "name": "Shopify Stats", + "categoryId": 6, + "url": "http://www.shopify.com/", + "companyId": "shopify", + "source": "AdGuard" + }, + "shopifycdn.com": { + "name": "Shopify CDN", + "categoryId": 9, + "url": "https://www.shopify.com/", + "companyId": "shopify" + }, + "shopifycloud.com": { + "name": "Shopify Cloud", + "categoryId": 2, + "url": "https://www.shopify.com/", + "companyId": "shopify" + }, + "shopper_approved": { + "name": "Shopper Approved", + "categoryId": 2, + "url": "http://www.shopperapproved.com", + "companyId": "shopper_approved" + }, + "shopping_com": { + "name": "Shopping.com", + "categoryId": 4, + "url": "https://partnernetwork.ebay.com/", + "companyId": "ebay_partner_network" + }, + "shopping_flux": { + "name": "Shopping Flux", + "categoryId": 6, + "url": "http://www.shopping-flux.com/", + "companyId": "shopping_flux" + }, + "shoprunner": { + "name": "ShopRunner", + "categoryId": 2, + "url": "https://www.shoprunner.com", + "companyId": "shoprunner" + }, + "shopsocially": { + "name": "ShopSocially", + "categoryId": 2, + "url": "http://shopsocially.com/", + "companyId": "shopsocially" + }, + "shopzilla": { + "name": "Shopzilla", + "categoryId": 4, + "url": "http://www.shopzilla.com/", + "companyId": "shopzilla" + }, + "shortnews": { + "name": "ShortNews.de", + "categoryId": 8, + "url": "http://www.shortnews.de/#", + "companyId": null + }, + "showrss": { + "name": "showRSS", + "categoryId": 8, + "url": "https://showrss.info/", + "companyId": "showrss", + "source": "AdGuard" + }, + "shrink": { + "name": "Shrink", + "categoryId": 2, + "url": "http://shink.in/", + "companyId": "shrink.in" + }, + "shutterstock": { + "name": "Shutterstock", + "categoryId": 8, + "url": "https://www.shutterstock.com/", + "companyId": "shutterstock_inc" + }, + "siblesectiveal.club": { + "name": "siblesectiveal.club", + "categoryId": 11, + "url": null, + "companyId": null + }, + "sidecar": { + "name": "Sidecar", + "categoryId": 6, + "url": "http://hello.getsidecar.com/", + "companyId": "sidecar" + }, + "sift_science": { + "name": "Sift Science", + "categoryId": 6, + "url": "https://siftscience.com/", + "companyId": "sift_science" + }, + "signal": { + "name": "Signal", + "categoryId": 5, + "url": "https://www.signal.co/", + "companyId": "signal_digital" + }, + "signifyd": { + "name": "Signifyd", + "categoryId": 6, + "url": "https://www.signifyd.com/", + "companyId": "signifyd" + }, + "silverpop": { + "name": "Silverpop", + "categoryId": 2, + "url": "http://www.silverpop.com/", + "companyId": "ibm" + }, + "similardeals.net": { + "name": "SimilarDeals", + "categoryId": 8, + "url": "http://www.similardeals.net/", + "companyId": null + }, + "similarweb": { + "name": "SimilarWeb", + "categoryId": 6, + "url": "https://www.similarweb.com/", + "companyId": "similarweb", + "source": "AdGuard" + }, + "simplereach": { + "name": "SimpleReach", + "categoryId": 6, + "url": "https://www.nativo.com/simplereach", + "companyId": "nativo" + }, + "simpli.fi": { + "name": "Simpli.fi", + "categoryId": 4, + "url": "http://www.simpli.fi", + "companyId": "simpli.fi" + }, + "sina": { + "name": "Sina", + "categoryId": 6, + "url": "http://www.sina.com/", + "companyId": "sina" + }, + "sina_cdn": { + "name": "Sina CDN", + "categoryId": 9, + "url": "https://www.sina.com.cn/", + "companyId": "sina" + }, + "singlefeed": { + "name": "SingleFeed", + "categoryId": 4, + "url": "https://www.singlefeed.com/", + "companyId": "singlefeed" + }, + "sirdata": { + "name": "Sirdata", + "categoryId": 6, + "url": "http://www.sirdata.com/home/", + "companyId": "sirdata" + }, + "site24x7": { + "name": "Site24x7", + "categoryId": 6, + "url": "https://www.site24x7.com/", + "companyId": "zoho_corp" + }, + "site_booster": { + "name": "Site Booster", + "categoryId": 7, + "url": "https://sitebooster.com/", + "companyId": "site_booster" + }, + "site_stratos": { + "name": "Site Stratos", + "categoryId": 4, + "url": "http://www.infocube.co.jp/", + "companyId": "infocube" + }, + "siteapps": { + "name": "SiteApps", + "categoryId": 2, + "url": "http://siteapps.com", + "companyId": "siteapps" + }, + "sitebro": { + "name": "SiteBro", + "categoryId": 6, + "url": "http://www.sitebro.net/", + "companyId": "sitebro" + }, + "siteheart": { + "name": "SiteHeart", + "categoryId": 2, + "url": "http://siteheart.com/", + "companyId": "siteheart" + }, + "siteimprove": { + "name": "Siteimprove", + "categoryId": 6, + "url": "http://siteimprove.com", + "companyId": "siteimprove" + }, + "siteimprove_analytics": { + "name": "SiteImprove Analytics", + "categoryId": 6, + "url": "http://siteimprove.com", + "companyId": "siteimprove" + }, + "sitelabweb.com": { + "name": "sitelabweb.com", + "categoryId": 11, + "url": null, + "companyId": null + }, + "sitemeter": { + "name": "SiteMeter", + "categoryId": 6, + "url": "http://www.sitemeter.com/", + "companyId": "sitemeter,_inc." + }, + "sitescout": { + "name": "SiteScout by Centro", + "categoryId": 4, + "url": "http://www.sitescout.com", + "companyId": "centro" + }, + "sitetag": { + "name": "SiteTag", + "categoryId": 2, + "url": "http://www.sitetag.us/", + "companyId": "sitetag" + }, + "sitewit": { + "name": "SiteWit", + "categoryId": 4, + "url": "http://www.sitewit.com/", + "companyId": "sitewit" + }, + "six_apart_advertising": { + "name": "Six Apart Advertising", + "categoryId": 4, + "url": "http://www.sixapart.com/advertising/", + "companyId": "six_apart" + }, + "sixt-neuwagen.de": { + "name": "sixt-neuwagen.de", + "categoryId": 8, + "url": null, + "companyId": null + }, + "skadtec.com": { + "name": "GP One GmbH", + "categoryId": 6, + "url": "http://www.gp-one.com/", + "companyId": null + }, + "skimlinks": { + "name": "SkimLinks", + "categoryId": 4, + "url": "http://www.skimlinks.com/", + "companyId": "skimlinks" + }, + "skroutz": { + "name": "Skroutz", + "categoryId": 6, + "url": "https://www.skroutz.gr/", + "companyId": "skroutz" + }, + "skyglue": { + "name": "SkyGlue", + "categoryId": 6, + "url": "http://www.skyglue.com/", + "companyId": "skyglue_technology" + }, + "skype": { + "name": "Skype", + "categoryId": 2, + "url": "http://www.skype.com", + "companyId": "microsoft" + }, + "skysa": { + "name": "Skysa", + "categoryId": 2, + "url": "http://www.skysa.com/", + "companyId": "skysa" + }, + "skyscnr.com": { + "name": "Skyscanner CDN", + "categoryId": 9, + "url": "https://www.skyscanner.net/", + "companyId": null + }, + "slack": { + "name": "Slack", + "categoryId": 8, + "url": "https://www.slack.com/", + "companyId": "salesforce", + "source": "AdGuard" + }, + "slashdot_widget": { + "name": "Slashdot Widget", + "categoryId": 2, + "url": "http://slashdot.org", + "companyId": "slashdot" + }, + "sleeknote": { + "name": "Sleeknote", + "categoryId": 2, + "url": "https://sleeknote.com/", + "companyId": "sleeknote" + }, + "sli_systems": { + "name": "SLI Systems", + "categoryId": 2, + "url": "http://www.sli-systems.com", + "companyId": "sli_systems" + }, + "slice_factory": { + "name": "Slice Factory", + "categoryId": 2, + "url": "http://www.slicefactory.com/", + "companyId": "slice_factory" + }, + "slimcutmedia": { + "name": "SlimCutMedia", + "categoryId": 6, + "url": "http://www.slimcutmedia.com/", + "companyId": "slimcutmedia" + }, + "slingpic": { + "name": "Slingpic", + "categoryId": 4, + "url": "http://slingpic.com/", + "companyId": "affectv" + }, + "smaato": { + "name": "Smaato", + "categoryId": 4, + "url": "http://www.smaato.com/", + "companyId": "smaato" + }, + "smart4ads": { + "name": "smart4ads", + "categoryId": 4, + "url": "http://www.smart4ads.com", + "companyId": "smart4ads" + }, + "smart_adserver": { + "name": "SMART AdServer", + "categoryId": 4, + "url": "https://smartadserver.com/", + "companyId": "smart_adserver" + }, + "smart_call": { + "name": "Smart Call", + "categoryId": 2, + "url": "https://smartcall.kz/", + "companyId": "smart_call" + }, + "smart_content": { + "name": "Smart Content", + "categoryId": 4, + "url": "http://www.getsmartcontent.com", + "companyId": "get_smart_content" + }, + "smart_device_media": { + "name": "Smart Device Media", + "categoryId": 4, + "url": "http://www.smartdevicemedia.com/", + "companyId": "smart_device_media" + }, + "smart_leads": { + "name": "Smart Leads", + "categoryId": 4, + "url": "http://www.cnt.my/", + "companyId": "smart_leads" + }, + "smart_selling": { + "name": "Smart Selling", + "categoryId": 2, + "url": "https://smartselling.cz/", + "companyId": "smart_selling" + }, + "smartad": { + "name": "smartAD", + "categoryId": 4, + "url": "http://smartad.eu/", + "companyId": "smartad" + }, + "smartbn": { + "name": "SmartBN", + "categoryId": 4, + "url": "http://smartbn.ru/", + "companyId": "smartbn" + }, + "smartclick.net": { + "name": "SmartClick", + "categoryId": 4, + "url": "http://smartclick.net/", + "companyId": null + }, + "smartclip": { + "name": "SmartClip", + "categoryId": 4, + "url": "http://www.smartclip.com/", + "companyId": "smartclip" + }, + "smartcontext": { + "name": "SmartContext", + "categoryId": 4, + "url": "http://smartcontext.pl/", + "companyId": "smartcontext" + }, + "smarter_remarketer": { + "name": "SmarterHQ", + "categoryId": 4, + "url": "https://smarterhq.com", + "companyId": "smarterhq" + }, + "smarter_travel": { + "name": "Smarter Travel Media", + "categoryId": 4, + "url": "https://www.smartertravel.com/", + "companyId": "iac_apps" + }, + "smarterclick": { + "name": "Smarterclick", + "categoryId": 4, + "url": "http://www.smarterclick.co.uk/", + "companyId": "smarter_click" + }, + "smartertrack": { + "name": "SmarterTrack", + "categoryId": 4, + "url": "http://www.smartertrack.com/", + "companyId": "smartertrack" + }, + "smartlink.cool": { + "name": "smartlink.cool", + "categoryId": 11, + "url": null, + "companyId": null + }, + "smartlook": { + "name": "Smartlook", + "categoryId": 2, + "url": "https://www.smartlook.com/", + "companyId": "smartlook" + }, + "smartstream.tv": { + "name": "SmartStream.TV", + "categoryId": 4, + "url": "https://www.smartstream.tv/en", + "companyId": "smartstream" + }, + "smartsupp_chat": { + "name": "Smartsupp Chat", + "categoryId": 2, + "url": "https://www.smartsupp.com/", + "companyId": "smartsuppp" + }, + "smi2.ru": { + "name": "smi2.ru", + "categoryId": 6, + "url": "https://smi2.net/", + "companyId": "media2_stat.media" + }, + "smooch": { + "name": "Smooch", + "categoryId": 2, + "url": "https://smooch.io/", + "companyId": "smooch" + }, + "smowtion": { + "name": "Smowtion", + "categoryId": 4, + "url": "http://www.smowtion.com/", + "companyId": "smowtion" + }, + "smx_ventures": { + "name": "SMX Ventures", + "categoryId": 6, + "url": "http://smxeventures.com/", + "companyId": "smx_ventures" + }, + "smyte": { + "name": "Smyte", + "categoryId": 6, + "url": "https://www.smyte.com/", + "companyId": "smyte" + }, + "snacktv": { + "name": "SnackTV", + "categoryId": 6, + "url": "https://www.verizon.com/", + "companyId": "verizon" + }, + "snacktv_player": { + "name": "SnackTV-Player", + "categoryId": 0, + "url": "https://www.verizon.com/", + "companyId": "verizon" + }, + "snap": { + "name": "Snap", + "categoryId": 2, + "url": "http://www.snap.com/", + "companyId": "snap_technologies" + }, + "snap_engage": { + "name": "Snap Engage", + "categoryId": 2, + "url": "https://snapengage.com/", + "companyId": "snap_engage" + }, + "snapchat": { + "name": "Snapchat For Business", + "categoryId": 4, + "url": "https://www.snapchat.com/", + "companyId": "snap_technologies" + }, + "snapcraft": { + "name": "Snapcraft", + "categoryId": 8, + "url": "https://snapcraft.io", + "companyId": "canonical", + "source": "AdGuard" + }, + "snigelweb": { + "name": "SnigelWeb, Inc.", + "categoryId": 4, + "url": "http://www.snigelweb.com/", + "companyId": "snigelweb_inc" + }, + "snoobi": { + "name": "Snoobi", + "categoryId": 6, + "url": "http://www.snoobi.eu/", + "companyId": "snoobi" + }, + "snoobi_analytics": { + "name": "Snoobi Analytics", + "categoryId": 6, + "url": "http://www.snoobi.com/", + "companyId": "snoobi_oy" + }, + "snowplow": { + "name": "Snowplow", + "categoryId": 6, + "url": "http://snowplowanalytics.com/", + "companyId": "snowplow" + }, + "soasta_mpulse": { + "name": "SOASTA mPulse", + "categoryId": 6, + "url": "http://www.soasta.com/", + "companyId": "akamai" + }, + "sociable_labs": { + "name": "Sociable Labs", + "categoryId": 4, + "url": "http://www.sociablelabs.com/", + "companyId": "sociable_labs" + }, + "social_amp": { + "name": "Social Amp", + "categoryId": 4, + "url": "http://www.merkleinc.com/", + "companyId": "dentsu_aegis_network" + }, + "social_annex": { + "name": "Social Annex", + "categoryId": 4, + "url": "http://www.socialannex.com", + "companyId": "social_annex" + }, + "social_miner": { + "name": "Social Miner", + "categoryId": 7, + "url": "https://socialminer.com/", + "companyId": "social_miner" + }, + "socialbeat": { + "name": "socialbeat", + "categoryId": 4, + "url": "http://www.socialbeat.it/", + "companyId": "socialbeat" + }, + "socialrms": { + "name": "SocialRMS", + "categoryId": 7, + "url": "http://socialinterface.com/socialrms/", + "companyId": "socialinterface" + }, + "sociaplus.com": { + "name": "SociaPlus", + "categoryId": 6, + "url": "https://sociaplus.com/", + "companyId": null + }, + "sociomantic": { + "name": "Sociomantic", + "categoryId": 4, + "url": "http://www.sociomantic.com/", + "companyId": "sociomantic_labs_gmbh" + }, + "sohu": { + "name": "Sohu", + "categoryId": 7, + "url": "http://www.sohu.com", + "companyId": "sohu" + }, + "sojern": { + "name": "Sojern", + "categoryId": 4, + "url": "http://www.sojern.com/", + "companyId": "sojern" + }, + "sokrati": { + "name": "Sokrati", + "categoryId": 4, + "url": "http://sokrati.com/", + "companyId": "sokrati" + }, + "solads.media": { + "name": "solads.media", + "categoryId": 4, + "url": "http://solads.media/", + "companyId": null + }, + "solaredge": { + "name": "SolarEdge Technologies, Inc.", + "categoryId": 8, + "url": "https://www.solaredge.com/", + "companyId": "solaredge", + "source": "AdGuard" + }, + "solidopinion": { + "name": "SolidOpinion", + "categoryId": 2, + "url": "https://solidopinion.com/", + "companyId": "solidopinion" + }, + "solve_media": { + "name": "Solve Media", + "categoryId": 4, + "url": "http://solvemedia.com/", + "companyId": "solve_media" + }, + "soma_2": { + "name": "SOMA 2", + "categoryId": 4, + "url": "http://www.webcombi.de/", + "companyId": "soma_2_gmbh" + }, + "somoaudience": { + "name": "SoMo Audience", + "categoryId": 4, + "url": "https://somoaudience.com/", + "companyId": "somoaudience" + }, + "sonobi": { + "name": "Sonobi", + "categoryId": 4, + "url": "http://sonobi.com/", + "companyId": "sonobi" + }, + "sonos": { + "name": "Sonos", + "categoryId": 8, + "url": "https://www.sonos.com/", + "companyId": "sonos", + "source": "AdGuard" + }, + "sophus3": { + "name": "Sophus3", + "categoryId": 4, + "url": "http://www.sophus3.com/", + "companyId": "sophus3" + }, + "sortable": { + "name": "Sortable", + "categoryId": 4, + "url": "https://sortable.com/", + "companyId": "sortable" + }, + "soundcloud": { + "name": "SoundCloud", + "categoryId": 0, + "url": "http://soundcloud.com/", + "companyId": "soundcloud" + }, + "sourceknowledge_pixel": { + "name": "SourceKnowledge Pixel", + "categoryId": 4, + "url": "http://www.provenpixel.com/", + "companyId": "sourceknowledge" + }, + "sourcepoint": { + "name": "Sourcepoint", + "categoryId": 4, + "url": "https://www.sourcepoint.com/", + "companyId": "sourcepoint" + }, + "sovrn": { + "name": "sovrn", + "categoryId": 4, + "url": "https://www.sovrn.com/", + "companyId": "sovrn" + }, + "sovrn_viewability_solutions": { + "name": "Sovrn Signal", + "categoryId": 4, + "url": "https://www.sovrn.com/publishers/signal/", + "companyId": "sovrn" + }, + "spark_studios": { + "name": "Spark Studios", + "categoryId": 0, + "url": "http://www.sparkstudios.com/", + "companyId": "spark_studios" + }, + "sparkasse.de": { + "name": "sparkasse.de", + "categoryId": 8, + "url": null, + "companyId": null + }, + "speakpipe": { + "name": "SpeakPipe", + "categoryId": 2, + "url": "http://www.speakpipe.com/", + "companyId": "speakpipe" + }, + "specific_media": { + "name": "Specific Media", + "categoryId": 4, + "url": "http://www.specificmedia.com", + "companyId": "specific_media" + }, + "spectate": { + "name": "Spectate", + "categoryId": 6, + "url": "http://spectate.com/", + "companyId": "spectate" + }, + "speed_shift_media": { + "name": "Speed Shift Media", + "categoryId": 4, + "url": "http://www.speedshiftmedia.com/", + "companyId": "speed_shift_media" + }, + "speedcurve": { + "name": "SpeedCurve", + "categoryId": 6, + "url": "https://speedcurve.com/", + "companyId": null + }, + "speedyads": { + "name": "SpeedyAds", + "categoryId": 4, + "url": "http://www.entireweb.com/speedyads/", + "companyId": "entireweb" + }, + "speee": { + "name": "Speee", + "categoryId": 4, + "url": "https://speee.jp", + "companyId": "speee" + }, + "sphere": { + "name": "Sphere", + "categoryId": 4, + "url": "http://www.sphere.com/", + "companyId": "verizon" + }, + "spheremall": { + "name": "SphereMall", + "categoryId": 6, + "url": "https://spheremall.com", + "companyId": "spheremall" + }, + "sphereup": { + "name": "SphereUp", + "categoryId": 2, + "url": "http://zoomd.com/", + "companyId": "zoomd" + }, + "spicy": { + "name": "Spicy", + "categoryId": 4, + "url": "http://sspicy.ru/#main", + "companyId": "spicy_ssp" + }, + "spider.ad": { + "name": "Spider.Ad", + "categoryId": 4, + "url": "http://spider.ad/", + "companyId": "spider.ad" + }, + "spider_ads": { + "name": "Spider Ads", + "categoryId": 4, + "url": "http://www.spiderads.eu/", + "companyId": "spiderads" + }, + "spinnakr": { + "name": "Spinnakr", + "categoryId": 6, + "url": "http://spinnakr.com/", + "companyId": "spinnakr" + }, + "spokenlayer": { + "name": "SpokenLayer", + "categoryId": 0, + "url": "http://www.spokenlayer.com", + "companyId": "spokenlayer" + }, + "spongecell": { + "name": "Spongecell", + "categoryId": 4, + "url": "http://www.spongecell.com/", + "companyId": "spongecell" + }, + "sponsorads.de": { + "name": "SponsorAds.de", + "categoryId": 4, + "url": "http://sponsorads.de", + "companyId": "sponsorads.de" + }, + "sportsbet_affiliates": { + "name": "Sportsbet Affiliates", + "categoryId": 4, + "url": "http://www.sportsbetaffiliates.com.au/", + "companyId": "sportsbet_affiliates" + }, + "spot.im": { + "name": "Spot.IM", + "categoryId": 7, + "url": "https://www.spot.im/", + "companyId": "spot.im" + }, + "spoteffect": { + "name": "Spoteffect", + "categoryId": 6, + "url": "http://www.spoteffects.com/home/", + "companyId": "spoteffect" + }, + "spotify": { + "name": "Spotify", + "categoryId": 0, + "url": "https://www.spotify.com/", + "companyId": "spotify" + }, + "spotify_embed": { + "name": "Spotify Embed", + "categoryId": 0, + "url": "https://www.spotify.com", + "companyId": "spotify" + }, + "spotscenered.info": { + "name": "spotscenered.info", + "categoryId": 11, + "url": null, + "companyId": null + }, + "spotxchange": { + "name": "SpotX", + "categoryId": 4, + "url": "https://www.spotx.tv/", + "companyId": "rtl_group" + }, + "spoutable": { + "name": "Spoutable", + "categoryId": 4, + "url": "http://spoutable.com/", + "companyId": "spoutable" + }, + "springboard": { + "name": "SpringBoard", + "categoryId": 4, + "url": "http://home.springboardplatform.com/", + "companyId": "springboard" + }, + "springserve": { + "name": "SpringServe", + "categoryId": 4, + "url": "http://springserve.com/", + "companyId": "springserve" + }, + "sprinklr": { + "name": "Sprinklr", + "categoryId": 4, + "url": "https://www.sprinklr.com/", + "companyId": "sprinklr" + }, + "sputnik": { + "name": "Sputnik", + "categoryId": 6, + "url": "https://cnt.sputnik.ru/", + "companyId": "sputnik" + }, + "squadata": { + "name": "Squadata", + "categoryId": 4, + "url": "http://www.email-match.net/", + "companyId": "squadata" + }, + "squarespace.com": { + "name": "Squarespace", + "categoryId": 6, + "url": "https://www.squarespace.com/", + "companyId": null + }, + "srvtrck.com": { + "name": "srvtrck.com", + "categoryId": 12, + "url": null, + "companyId": null + }, + "srvvtrk.com": { + "name": "srvvtrk.com", + "categoryId": 11, + "url": null, + "companyId": null + }, + "sstatic.net": { + "name": "Stack Exchange", + "categoryId": 9, + "url": "https://sstatic.net/", + "companyId": null + }, + "st-hatena": { + "name": "Hatena", + "categoryId": 7, + "url": "http://www.hatena.ne.jp/", + "companyId": "hatena_jp" + }, + "stackadapt": { + "name": "StackAdapt", + "categoryId": 4, + "url": "http://www.stackadapt.com/", + "companyId": "stackadapt" + }, + "stackpathdns.com": { + "name": "StackPath", + "categoryId": 9, + "url": "https://www.stackpath.com/", + "companyId": null + }, + "stailamedia_com": { + "name": "stailamedia.com", + "categoryId": 4, + "url": "http://stailamedia.com/", + "companyId": null + }, + "stalluva.pro": { + "name": "stalluva.pro", + "categoryId": 11, + "url": null, + "companyId": null + }, + "startapp": { + "name": "StartApp", + "categoryId": 4, + "url": "https://www.startapp.com/", + "companyId": null + }, + "stat24": { + "name": "Stat24", + "categoryId": 6, + "url": "http://www.stat24.com/en/", + "companyId": "stat24" + }, + "stat4u": { + "name": "stat4u", + "categoryId": 6, + "url": "http://stat.4u.pl/", + "companyId": "stat4u" + }, + "statcounter": { + "name": "Statcounter", + "categoryId": 6, + "url": "http://www.statcounter.com/", + "companyId": "statcounter" + }, + "stathat": { + "name": "StatHat", + "categoryId": 6, + "url": "http://www.stathat.com/", + "companyId": "stathat" + }, + "statisfy": { + "name": "Statisfy", + "categoryId": 6, + "url": "http://www.statisfy.com/", + "companyId": "statisfy" + }, + "statsy.net": { + "name": "statsy.net", + "categoryId": 11, + "url": null, + "companyId": null + }, + "statuscake": { + "name": "StatusCake", + "categoryId": 6, + "url": "https://www.statuscake.com/", + "companyId": "statuscake" + }, + "statuspage.io": { + "name": "Statuspage", + "categoryId": 2, + "url": "https://www.statuspage.io/", + "companyId": "atlassian" + }, + "stayfriends.de": { + "name": "stayfriends.de", + "categoryId": 8, + "url": "https://www.stayfriends.de/", + "companyId": null + }, + "steelhouse": { + "name": "Steel House Media", + "categoryId": 4, + "url": "https://steelhouse.com/", + "companyId": "steelhouse" + }, + "steepto.com": { + "name": "Steepto", + "categoryId": 4, + "url": "https://www.steepto.com/", + "companyId": null + }, + "stepstone.com": { + "name": "StepStone", + "categoryId": 8, + "url": "https://www.stepstone.com/", + "companyId": null + }, + "stetic": { + "name": "Stetic", + "categoryId": 6, + "url": "https://www.stetic.com/", + "companyId": "stetic" + }, + "stickyads": { + "name": "StickyAds", + "categoryId": 4, + "url": "http://corporate.comcast.com/", + "companyId": "comcast" + }, + "stocktwits": { + "name": "StockTwits", + "categoryId": 2, + "url": "http://stocktwits.com", + "companyId": "stocktwits" + }, + "storify": { + "name": "Storify", + "categoryId": 4, + "url": "https://storify.com/", + "companyId": "adobe" + }, + "storygize": { + "name": "Storygize", + "categoryId": 4, + "url": "http://www.storygize.com/", + "companyId": null + }, + "strands_recommender": { + "name": "Strands Recommender", + "categoryId": 4, + "url": "http://recommender.strands.com", + "companyId": "strands" + }, + "strava": { + "name": "Strava", + "categoryId": 6, + "url": "https://strava.com", + "companyId": "strava" + }, + "streak": { + "name": "Streak", + "categoryId": 2, + "url": "http://www.streak.com/", + "companyId": "streak" + }, + "streamotion": { + "name": "Streamotion", + "categoryId": 0, + "url": "https://streamotion.com.au/", + "companyId": "news_corp", + "source": "AdGuard" + }, + "streamrail.com": { + "name": "StreamRail", + "categoryId": 4, + "url": "https://www.streamrail.com/", + "companyId": "ironsource" + }, + "stride": { + "name": "Stride", + "categoryId": 6, + "url": "https://www.getstride.com/", + "companyId": "stride_software" + }, + "stripchat.com": { + "name": "stripchat.com", + "categoryId": 3, + "url": null, + "companyId": null + }, + "stripe.com": { + "name": "Stripe", + "categoryId": 2, + "url": "https://stripe.com/", + "companyId": null + }, + "stripst.com": { + "name": "stripst.com", + "categoryId": 3, + "url": null, + "companyId": null + }, + "stroer_digital_media": { + "name": "Stroer Digital Media", + "categoryId": 4, + "url": "http://www.stroeer.de/", + "companyId": "stroer" + }, + "strossle": { + "name": "Strossle", + "categoryId": 4, + "url": "https://strossle.com/", + "companyId": "strossle" + }, + "struq": { + "name": "Struq", + "categoryId": 4, + "url": "http://www.struq.com/", + "companyId": "quantcast" + }, + "stumbleupon_widgets": { + "name": "StumbleUpon Widgets", + "categoryId": 7, + "url": "http://www.stumbleupon.com/", + "companyId": "stumbleupon" + }, + "sub2": { + "name": "Sub2", + "categoryId": 4, + "url": "http://www.sub2tech.com/", + "companyId": "sub2" + }, + "sublime_skinz": { + "name": "Sublime", + "categoryId": 4, + "url": "https://sublimeskinz.com/home", + "companyId": "sublime_skinz" + }, + "suggest.io": { + "name": "Suggest.io", + "categoryId": 4, + "url": "https://suggest.io/", + "companyId": "suggest.io" + }, + "sumologic.com": { + "name": "Sumologic", + "categoryId": 6, + "url": "https://www.sumologic.com/", + "companyId": null + }, + "sumome": { + "name": "Sumo", + "categoryId": 6, + "url": "https://sumo.com/", + "companyId": "sumome" + }, + "sundaysky": { + "name": "SundaySky", + "categoryId": 4, + "url": "http://www.sundaysky.com/", + "companyId": "sundaysky" + }, + "supercell": { + "name": "Supercell", + "categoryId": 2, + "url": "https://supercell.com/", + "companyId": "supercell", + "source": "AdGuard" + }, + "supercounters": { + "name": "SuperCounters", + "categoryId": 6, + "url": "http://www.supercounters.com/", + "companyId": "supercounters" + }, + "superfastcdn.com": { + "name": "superfastcdn.com", + "categoryId": 11, + "url": null, + "companyId": null + }, + "supership": { + "name": "Supership", + "categoryId": 4, + "url": "https://supership.jp/en/", + "companyId": "supership" + }, + "supplyframe": { + "name": "SupplyFrame", + "categoryId": 4, + "url": "https://supplyframe.com/", + "companyId": "supplyframe" + }, + "surf_by_surfingbird": { + "name": "Surf by Surfingbird", + "categoryId": 2, + "url": "http://surfingbird.ru/", + "companyId": "surfingbird" + }, + "survata": { + "name": "Survata", + "categoryId": 4, + "url": "https://www.survata.com/", + "companyId": "survata" + }, + "sweettooth": { + "name": "Sweettooth", + "categoryId": 2, + "url": "https://www.sweettoothrewards.com/", + "companyId": "sweet_tooth_rewards" + }, + "swiftype": { + "name": "Swiftype", + "categoryId": 9, + "url": "https://swiftype.com/", + "companyId": "elastic" + }, + "swisscom": { + "name": "Swisscom", + "categoryId": 8, + "url": null, + "companyId": null + }, + "switch_concepts": { + "name": "Switch Concepts", + "categoryId": 4, + "url": "http://www.switchconcepts.co.uk/", + "companyId": "switch_concepts" + }, + "switchtv": { + "name": "Switch Media", + "categoryId": 8, + "url": "https://www.switch.tv/", + "companyId": "switchtv", + "source": "AdGuard" + }, + "swoop": { + "name": "Swoop", + "categoryId": 4, + "url": "http://swoop.com/", + "companyId": "swoop" + }, + "sykes": { + "name": "Sykes", + "categoryId": 6, + "url": "http://www.sykescottages.co.uk/", + "companyId": "sykes_cottages" + }, + "symantec": { + "name": "Symantec (Norton Secured Seal)", + "categoryId": 5, + "url": "https://www.symantec.com/page.jsp?id=ssl-resources&tabID=3#", + "companyId": "symantec" + }, + "symphony_talent": { + "name": "Symphony Talent", + "categoryId": 2, + "url": "http://www.symphonytalent.com/", + "companyId": "symphony_talent" + }, + "synacor": { + "name": "Synacor", + "categoryId": 4, + "url": "https://www.synacor.com/", + "companyId": "synacor" + }, + "syncapse": { + "name": "Syncapse", + "categoryId": 4, + "url": "http://www.clickable.com/", + "companyId": "syncapse" + }, + "synergy-e": { + "name": "Synergy-E", + "categoryId": 4, + "url": "http://synergy-e.com/", + "companyId": "synergy-e" + }, + "t-mobile": { + "name": "Deutsche Telekom", + "categoryId": 8, + "url": null, + "companyId": null + }, + "t8cdn.com": { + "name": "t8cdn.com", + "categoryId": 11, + "url": null, + "companyId": null + }, + "tableteducation.com": { + "name": "tableteducation.com", + "categoryId": 11, + "url": null, + "companyId": null + }, + "taboola": { + "name": "Taboola", + "categoryId": 4, + "url": "http://www.taboola.com", + "companyId": "taboola" + }, + "tacoda": { + "name": "Tacoda", + "categoryId": 4, + "url": "http://www.tacoda.com/", + "companyId": "verizon" + }, + "tag_commander": { + "name": "Commanders Act", + "categoryId": 5, + "url": "https://www.commandersact.com/en/", + "companyId": "tag_commander" + }, + "tagcade": { + "name": "Tagcade", + "categoryId": 4, + "url": "https://www.pubvantage.com/", + "companyId": "pubvantage" + }, + "taggify": { + "name": "Taggify", + "categoryId": 4, + "url": "http://new.taggify.net/", + "companyId": "taggify" + }, + "taggy": { + "name": "TAGGY", + "categoryId": 4, + "url": "http://taggy.jp/", + "companyId": "taggy" + }, + "tagman": { + "name": "TagMan", + "categoryId": 5, + "url": "http://www.tagman.com/", + "companyId": "ensighten" + }, + "tail_target": { + "name": "Tail", + "categoryId": 6, + "url": "https://www.tail.digital/", + "companyId": "tail.digital" + }, + "tailsweep": { + "name": "Tailsweep", + "categoryId": 4, + "url": "http://www.tailsweep.se/", + "companyId": "tailsweep" + }, + "tamedia.ch": { + "name": "Tamedia", + "categoryId": 4, + "url": "https://www.tamedia.ch/", + "companyId": null + }, + "tanx": { + "name": "Tanx", + "categoryId": 4, + "url": "http://tanx.com/", + "companyId": "tanx" + }, + "taobao": { + "name": "Taobao", + "categoryId": 4, + "url": "https://world.taobao.com/", + "companyId": "softbank", + "source": "AdGuard" + }, + "tapad": { + "name": "Tapad", + "categoryId": 4, + "url": "http://www.tapad.com/", + "companyId": "telenor" + }, + "tapinfluence": { + "name": "TapInfluence", + "categoryId": 4, + "url": "http://theblogfrog.com/", + "companyId": "tapinfluence" + }, + "tarafdari": { + "name": "Tarafdari", + "categoryId": 4, + "url": "https://www.tarafdari.com/", + "companyId": "tarafdari" + }, + "target_2_sell": { + "name": "Target 2 Sell", + "categoryId": 4, + "url": "http://www.target2sell.com/en/", + "companyId": "target_2_sell" + }, + "target_circle": { + "name": "Target Circle", + "categoryId": 6, + "url": "http://targetcircle.com", + "companyId": "target_circle" + }, + "target_fuel": { + "name": "Target Fuel", + "categoryId": 6, + "url": "http://targetfuel.com/", + "companyId": "target_fuel" + }, + "tawk": { + "name": "Tawk", + "categoryId": 2, + "url": "https://www.tawk.to/", + "companyId": "tawk" + }, + "tbn.ru": { + "name": "TBN.ru", + "categoryId": 4, + "url": "http://www.agava.ru", + "companyId": "agava" + }, + "tchibo_de": { + "name": "tchibo.de", + "categoryId": 8, + "url": "http://tchibo.de/", + "companyId": null + }, + "tdsrmbl_net": { + "name": "tdsrmbl.net", + "categoryId": 8, + "url": null, + "companyId": null + }, + "teads": { + "name": "Teads", + "categoryId": 4, + "url": "http://teads.tv/", + "companyId": "teads" + }, + "tealeaf": { + "name": "Tealeaf", + "categoryId": 6, + "url": "https://www.ibm.com/digital-marketing", + "companyId": "ibm" + }, + "tealium": { + "name": "Tealium", + "categoryId": 5, + "url": "http://www.tealium.com/", + "companyId": "tealium" + }, + "teaser.cc": { + "name": "Teaser.cc", + "categoryId": 4, + "url": "http://www.teaser.cc/", + "companyId": "teaser.cc" + }, + "tedemis": { + "name": "Tedemis", + "categoryId": 4, + "url": "http://www.tedemis.com", + "companyId": "tedemis" + }, + "teletech": { + "name": "TeleTech", + "categoryId": 4, + "url": "http://www.webmetro.com/whoweare/technology.aspx", + "companyId": "teletech" + }, + "telstra": { + "name": "Telstra", + "categoryId": 8, + "url": "https://www.telstra.com.au/", + "companyId": "telstra", + "source": "AdGuard" + }, + "tender": { + "name": "Tender", + "categoryId": 2, + "url": "http://www.tenderapp.com/", + "companyId": "tender" + }, + "tensitionschoo.club": { + "name": "tensitionschoo.club", + "categoryId": 11, + "url": null, + "companyId": null + }, + "teroti": { + "name": "Teroti", + "categoryId": 4, + "url": "http://www.teroti.com/", + "companyId": "teroti" + }, + "terren": { + "name": "Terren", + "categoryId": 4, + "url": "http://www.webterren.com/", + "companyId": "terren" + }, + "teufel.de": { + "name": "teufel.de", + "categoryId": 8, + "url": "https://www.teufel.de/", + "companyId": null + }, + "the_adex": { + "name": "The ADEX", + "categoryId": 4, + "url": "http://www.theadex.com/", + "companyId": "prosieben_sat1" + }, + "the_deck": { + "name": "The DECK", + "categoryId": 4, + "url": "http://decknetwork.net/", + "companyId": "the_deck" + }, + "the_guardian": { + "name": "The Guardian", + "categoryId": 8, + "url": "https://www.theguardian.com/", + "companyId": "the_guardian" + }, + "the_reach_group": { + "name": "The Reach Group", + "categoryId": 4, + "url": "http://www.redvertisment.com", + "companyId": "the_reach_group" + }, + "the_search_agency": { + "name": "The Search Agency", + "categoryId": 4, + "url": "http://www.thesearchagency.com/", + "companyId": "the_search_agency" + }, + "the_sun": { + "name": "The Sun", + "categoryId": 8, + "url": "https://www.thesun.co.uk/", + "companyId": "the_sun" + }, + "the_weather_company": { + "name": "The Weather Company", + "categoryId": 4, + "url": "http://www.theweathercompany.com/", + "companyId": "ibm" + }, + "themoviedb": { + "name": "The Movie DB", + "categoryId": 8, + "url": "https://www.themoviedb.org/", + "companyId": "themoviedb" + }, + "thinglink": { + "name": "ThingLink", + "categoryId": 4, + "url": "http://www.thinglink.com/", + "companyId": "thinglink" + }, + "threatmetrix": { + "name": "ThreatMetrix", + "categoryId": 6, + "url": "http://threatmetrix.com/", + "companyId": "threatmetrix" + }, + "tidbit": { + "name": "Tidbit", + "categoryId": 2, + "url": "http://tidbit.co.in/", + "companyId": "tidbit" + }, + "tidio": { + "name": "Tidio", + "categoryId": 2, + "url": "https://www.tidio.com/", + "companyId": "tidio_chat" + }, + "tiktok_analytics": { + "name": "TikTok Analytics", + "categoryId": 6, + "url": "https://analytics.tiktok.com", + "companyId": "bytedance_inc" + }, + "tiller": { + "name": "Tiller", + "categoryId": 4, + "url": "https://www.tiller.com/", + "companyId": "tiller" + }, + "timezondb": { + "name": "TimezonDB", + "categoryId": 4, + "url": "https://timezonedb.com/", + "companyId": "timezonedb" + }, + "tinypass": { + "name": "Piano", + "categoryId": 5, + "url": "https://piano.io/", + "companyId": "piano" + }, + "tisoomi": { + "name": "Tisoomi", + "categoryId": 4, + "url": "https://tisoomi-services.com/", + "companyId": null + }, + "tlv_media": { + "name": "TLV Media", + "categoryId": 4, + "url": "http://www.tlvmedia.com", + "companyId": "tlvmedia" + }, + "tns": { + "name": "TNS", + "categoryId": 6, + "url": "http://www.tnsglobal.com/", + "companyId": "wpp" + }, + "tomnewsupdate.info": { + "name": "tomnewsupdate.info", + "categoryId": 12, + "url": null, + "companyId": null + }, + "tomorrow_focus": { + "name": "Tomorrow Focus", + "categoryId": 4, + "url": "http://www.tomorrow-focus.com", + "companyId": "hubert_burda_media" + }, + "tonefuse": { + "name": "ToneFuse", + "categoryId": 4, + "url": "http://www.tonefuse.com/", + "companyId": "tonefuse" + }, + "top_mail": { + "name": "Top Mail", + "categoryId": 6, + "url": "https://corp.megafon.com/", + "companyId": "megafon" + }, + "toplist.cz": { + "name": "toplist.cz", + "categoryId": 11, + "url": null, + "companyId": null + }, + "toponclick_com": { + "name": "toponclick.com", + "categoryId": 11, + "url": null, + "companyId": null + }, + "topsy": { + "name": "Topsy", + "categoryId": 4, + "url": "http://topsy.com/", + "companyId": "topsy" + }, + "torbit": { + "name": "Torbit", + "categoryId": 6, + "url": "http://torbit.com/", + "companyId": "torbit" + }, + "toro": { + "name": "TORO", + "categoryId": 4, + "url": "http://toroadvertising.com/", + "companyId": "toro_advertising" + }, + "tororango.com": { + "name": "tororango.com", + "categoryId": 11, + "url": null, + "companyId": null + }, + "total_media": { + "name": "Total Media", + "categoryId": 4, + "url": "http://www.totalmedia.co.il/eng/", + "companyId": "total_media" + }, + "touchcommerce": { + "name": "Nuance", + "categoryId": 2, + "url": "https://www.nuance.com/omni-channel-customer-engagement/digital.html", + "companyId": "touchcommerce" + }, + "tovarro.com": { + "name": "Tovarro", + "categoryId": 4, + "url": "https://www.tovarro.com/", + "companyId": null + }, + "tp-cdn.com": { + "name": "TrialPay", + "categoryId": 4, + "url": "https://www.trialpay.com/", + "companyId": null + }, + "tracc.it": { + "name": "Kiwe.io", + "categoryId": 6, + "url": "https://www.kiwe.io/", + "companyId": null + }, + "tracemyip": { + "name": "TraceMyIP", + "categoryId": 4, + "url": "http://www.tracemyip.org/", + "companyId": "tracemyip" + }, + "traceview": { + "name": "TraceView", + "categoryId": 6, + "url": "http://www.appneta.com/", + "companyId": "appneta" + }, + "track_duck": { + "name": "Track Duck", + "categoryId": 6, + "url": "https://trackduck.com/", + "companyId": "track_duck" + }, + "trackjs": { + "name": "TrackJS", + "categoryId": 6, + "url": "http://www.trackjs.com/", + "companyId": "trackjs" + }, + "trackset_conversionlab": { + "name": "Trackset ConversionLab", + "categoryId": 4, + "url": "http://www.trackset.com/", + "companyId": "trackset" + }, + "trackuity": { + "name": "Trackuity", + "categoryId": 2, + "url": "http://www.trackuity.com/", + "companyId": "trackuity" + }, + "tradedesk": { + "name": "TradeDesk", + "categoryId": 4, + "url": "http://www.thetradedesk.com/", + "companyId": "the_trade_desk" + }, + "tradedoubler": { + "name": "TradeDoubler", + "categoryId": 4, + "url": "http://www.tradedoubler.com/", + "companyId": "tradedoubler" + }, + "tradelab": { + "name": "Tradelab", + "categoryId": 4, + "url": "http://www.tradelab.fr/", + "companyId": "tradelab" + }, + "tradetracker": { + "name": "TradeTracker", + "categoryId": 4, + "url": "http://www.tradetracker.com", + "companyId": "tradetracker" + }, + "traffective": { + "name": "Traffective", + "categoryId": 4, + "url": "https://traffective.com/", + "companyId": null + }, + "traffic_fuel": { + "name": "Traffic Fuel", + "categoryId": 4, + "url": "https://trafficfuel.com/", + "companyId": "traffic_fuel" + }, + "traffic_revenue": { + "name": "Traffic Revenue", + "categoryId": 4, + "url": "http://www.trafficrevenue.net/", + "companyId": "traffic_revenue" + }, + "traffic_stars": { + "name": "Traffic Stars", + "categoryId": 3, + "url": "https://trafficstars.com/#index_page", + "companyId": "traffic_stars" + }, + "trafficbroker": { + "name": "TrafficBroker", + "categoryId": 4, + "url": "http://trafficbroker.com/", + "companyId": "trafficbroker" + }, + "trafficfabrik.com": { + "name": "Traffic Fabrik", + "categoryId": 3, + "url": "https://www.trafficfabrik.com/", + "companyId": null + }, + "trafficfactory": { + "name": "Traffic Factory", + "categoryId": 4, + "url": "https://www.trafficfactory.biz/", + "companyId": null + }, + "trafficforce": { + "name": "TrafficForce", + "categoryId": 4, + "url": "http://www.trafficforce.com/", + "companyId": "trafficforce" + }, + "traffichaus": { + "name": "TrafficHaus", + "categoryId": 3, + "url": "http://www.traffichaus.com", + "companyId": "traffichaus" + }, + "trafficjunky": { + "name": "TrafficJunky", + "categoryId": 3, + "url": "http://www.trafficjunky.net/", + "companyId": "trafficjunky" + }, + "traffiliate": { + "name": "Traffiliate", + "categoryId": 4, + "url": "http://www.traffiliate.com/", + "companyId": "dsnr_media_group" + }, + "trafic": { + "name": "Trafic", + "categoryId": 6, + "url": "http://www.trafic.ro/", + "companyId": "trafic" + }, + "trafmag.com": { + "name": "TrafMag", + "categoryId": 4, + "url": "https://trafmag.com/", + "companyId": "trafmag" + }, + "transcend": { + "name": "Transcend Consent", + "categoryId": 14, + "url": "https://transcend.io/consent/", + "companyId": "transcend" + }, + "transcend_telemetry": { + "name": "Transcend Telemetry", + "categoryId": 6, + "url": "https://transcend.io", + "companyId": "transcend" + }, + "transmatic": { + "name": "Transmatic", + "categoryId": 6, + "url": "http://www.transmatico.com/en/", + "companyId": "transmatico" + }, + "travel_audience": { + "name": "Travel Audience", + "categoryId": 6, + "url": "https://travelaudience.com/", + "companyId": "travel_audience" + }, + "trbo": { + "name": "trbo", + "categoryId": 4, + "url": "http://www.trbo.com/", + "companyId": "trbo" + }, + "treasuredata": { + "name": "Treasure Data", + "categoryId": 6, + "url": "https://www.treasuredata.com/", + "companyId": "arm" + }, + "tremor_video": { + "name": "Tremor Video", + "categoryId": 0, + "url": "http://www.tremormedia.com/", + "companyId": "tremor_video" + }, + "trendcounter": { + "name": "trendcounter", + "categoryId": 6, + "url": "http://www.trendcounter.com/", + "companyId": "trendcounter" + }, + "trendemon": { + "name": "TrenDemon", + "categoryId": 6, + "url": "http://trendemon.com", + "companyId": "trendemon" + }, + "tribal_fusion": { + "name": "Tribal Fusion", + "categoryId": 4, + "url": "http://www.tribalfusion.com/", + "companyId": "exponential_interactive" + }, + "tribal_fusion_notice": { + "name": "Tribal Fusion Notice", + "categoryId": 4, + "url": "http://www.tribalfusion.com", + "companyId": "exponential_interactive" + }, + "triblio": { + "name": "Triblio", + "categoryId": 6, + "url": "https://triblio.com/", + "companyId": "triblio" + }, + "trigger_mail_marketing": { + "name": "Trigger Mail Marketing", + "categoryId": 4, + "url": "http://www.triggeremailmarketing.com/", + "companyId": "trigger_mail_marketing" + }, + "triggerbee": { + "name": "Triggerbee", + "categoryId": 2, + "url": "https://triggerbee.com/", + "companyId": "triggerbee" + }, + "tripadvisor": { + "name": "TripAdvisor", + "categoryId": 8, + "url": "http://iac.com/", + "companyId": "iac_apps" + }, + "triplelift": { + "name": "TripleLift", + "categoryId": 4, + "url": "http://triplelift.com/", + "companyId": "triplelift" + }, + "triptease": { + "name": "Triptease", + "categoryId": 2, + "url": "https://www.triptease.com", + "companyId": "triptease" + }, + "triton_digital": { + "name": "Triton Digital", + "categoryId": 0, + "url": "http://www.tritondigital.com/", + "companyId": "triton_digital" + }, + "trovus_revelations": { + "name": "Trovus Revelations", + "categoryId": 4, + "url": "http://www.trovus.co.uk/", + "companyId": "trovus_revelations" + }, + "trsv3.com": { + "name": "trsv3.com", + "categoryId": 11, + "url": null, + "companyId": null + }, + "true_fit": { + "name": "True Fit", + "categoryId": 4, + "url": "https://www.truefit.com/", + "companyId": "true_fit" + }, + "trueanthem": { + "name": "True Anthem", + "categoryId": 4, + "url": "https://www.trueanthem.com/", + "companyId": "trueanthem" + }, + "trueffect": { + "name": "TruEffect", + "categoryId": 4, + "url": "http://www.trueffect.com/", + "companyId": "trueffect" + }, + "truehits.net": { + "name": "Truehits.net", + "categoryId": 6, + "url": "http://truehits.net/", + "companyId": "truehits.net" + }, + "trumba": { + "name": "Trumba", + "categoryId": 4, + "url": "http://www.trumba.com", + "companyId": "trumba" + }, + "truoptik": { + "name": "Tru Optik", + "categoryId": 6, + "url": "http://truoptik.com/", + "companyId": null + }, + "trustarc": { + "name": "TrustArc", + "categoryId": 5, + "url": "http://www.trustarc.com/", + "companyId": "trustarc" + }, + "truste_consent": { + "name": "Truste Consent", + "categoryId": 5, + "url": "http://www.trustarc.com/", + "companyId": "trustarc" + }, + "truste_notice": { + "name": "TRUSTe Notice", + "categoryId": 5, + "url": "http://www.truste.com/", + "companyId": "trustarc" + }, + "truste_seal": { + "name": "TRUSTe Seal", + "categoryId": 5, + "url": "http://www.truste.com/", + "companyId": "trustarc" + }, + "trusted_shops": { + "name": "Trusted Shops", + "categoryId": 5, + "url": "http://www.trustedshops.com/", + "companyId": "trusted_shops" + }, + "trustev": { + "name": "Trustev", + "categoryId": 6, + "url": "http://www.trustev.com/", + "companyId": "trustev" + }, + "trustlogo": { + "name": "TrustLogo", + "categoryId": 5, + "url": "http://www.comodo.com/", + "companyId": "comodo" + }, + "trustpilot": { + "name": "Trustpilot", + "categoryId": 2, + "url": "http://www.trustpilot.com", + "companyId": "trustpilot" + }, + "trustwave.com": { + "name": "Trustwave", + "categoryId": 8, + "url": "https://www.trustwave.com/home/", + "companyId": null + }, + "tubecorporate": { + "name": "Tube Corporate", + "categoryId": 3, + "url": "https://tubecorporate.com/", + "companyId": null + }, + "tubecup.org": { + "name": "tubecup.org", + "categoryId": 3, + "url": null, + "companyId": null + }, + "tubemogul": { + "name": "TubeMogul", + "categoryId": 4, + "url": "http://tubemogul.com/", + "companyId": "tubemogul" + }, + "tumblr_analytics": { + "name": "Tumblr Analytics", + "categoryId": 6, + "url": "https://www.verizon.com/", + "companyId": "verizon" + }, + "tumblr_buttons": { + "name": "Tumblr Buttons", + "categoryId": 7, + "url": "http://www.tumblr.com/", + "companyId": "verizon" + }, + "tumblr_dashboard": { + "name": "Tumblr Dashboard", + "categoryId": 7, + "url": "http://www.tumblr.com/", + "companyId": "verizon" + }, + "tune_in": { + "name": "Tune In", + "categoryId": 0, + "url": "http://tunein.com/", + "companyId": "tunein" + }, + "turbo": { + "name": "Turbo", + "categoryId": 4, + "url": "http://www.turboadv.com/", + "companyId": "turbo" + }, + "turn_inc.": { + "name": "Turn Inc.", + "categoryId": 4, + "url": "https://www.amobee.com/company/", + "companyId": "singtel" + }, + "turner": { + "name": "Warner Media", + "categoryId": 6, + "url": "https://www.warnermedia.com/", + "companyId": "turner" + }, + "turnsocial": { + "name": "TurnSocial", + "categoryId": 7, + "url": "http://turnsocial.com/", + "companyId": "turnsocial" + }, + "turnto": { + "name": "TurnTo", + "categoryId": 2, + "url": "http://www.turntonetworks.com/", + "companyId": "turnto_networks" + }, + "tvsquared.com": { + "name": "TVSquared", + "categoryId": 4, + "url": "http://tvsquared.com/", + "companyId": "tvsquared" + }, + "tweetboard": { + "name": "Tweetboard", + "categoryId": 7, + "url": "http://tweetboard.com/alpha/", + "companyId": "tweetboard" + }, + "tweetmeme": { + "name": "TweetMeme", + "categoryId": 7, + "url": "http://tweetmeme.com/", + "companyId": "tweetmeme" + }, + "twenga": { + "name": "Twenga Solutions", + "categoryId": 4, + "url": "https://www.twenga-solutions.com/", + "companyId": null + }, + "twiago": { + "name": "Twiago", + "categoryId": 4, + "url": "https://www.twiago.com/", + "companyId": "twiago" + }, + "twine": { + "name": "Twine", + "categoryId": 6, + "url": "http://twinedigital.com/", + "companyId": "twine_digital" + }, + "twitch.tv": { + "name": "Twitch", + "categoryId": 0, + "url": "https://www.twitch.tv/", + "companyId": "amazon_associates" + }, + "twitch_cdn": { + "name": "Twitch CDN", + "categoryId": 0, + "url": "https://www.twitch.tv/", + "companyId": "amazon_associates" + }, + "twitter": { + "name": "X (formerly Twitter)", + "categoryId": 7, + "url": "https://twitter.com", + "companyId": "twitter", + "source": "AdGuard" + }, + "twitter_ads": { + "name": "Twitter Advertising", + "categoryId": 4, + "url": "http://twitter.com/widgets", + "companyId": "twitter" + }, + "twitter_analytics": { + "name": "Twitter Analytics", + "categoryId": 6, + "url": "https://twitter.com", + "companyId": "twitter" + }, + "twitter_badge": { + "name": "Twitter Badge", + "categoryId": 7, + "url": "http://twitter.com/widgets", + "companyId": "twitter" + }, + "twitter_button": { + "name": "Twitter Button", + "categoryId": 7, + "url": "http://twitter.com", + "companyId": "twitter" + }, + "twitter_conversion_tracking": { + "name": "Twitter Conversion Tracking", + "categoryId": 4, + "url": "https://twitter.com/", + "companyId": "twitter" + }, + "twitter_for_business": { + "name": "Twitter for Business", + "categoryId": 4, + "url": "https://business.twitter.com/", + "companyId": "twitter" + }, + "twitter_syndication": { + "name": "Twitter Syndication", + "categoryId": 7, + "url": "https://twitter.com", + "companyId": "twitter" + }, + "twittercounter": { + "name": "TwitterCounter", + "categoryId": 6, + "url": "http://twittercounter.com/", + "companyId": "twitter_counter" + }, + "twyn": { + "name": "Twyn", + "categoryId": 4, + "url": "http://www.twyn.com", + "companyId": "twyn" + }, + "txxx.com": { + "name": "txxx.com", + "categoryId": 8, + "url": "https://txxx.com", + "companyId": null + }, + "tynt": { + "name": "33Across", + "categoryId": 4, + "url": "http://www.tynt.com/", + "companyId": "33across" + }, + "typeform": { + "name": "Typeform", + "categoryId": 2, + "url": "https://www.typeform.com/", + "companyId": null + }, + "typepad_stats": { + "name": "Typepad Stats", + "categoryId": 6, + "url": "http://www.typepad.com/features/statistics.ht", + "companyId": "typepad" + }, + "typography.com": { + "name": "Webfonts by Hoefler&Co", + "categoryId": 9, + "url": "https://www.typography.com/", + "companyId": null + }, + "tyroo": { + "name": "Tyroo", + "categoryId": 7, + "url": "http://www.tyroo.com/", + "companyId": "tyroo" + }, + "tzetze": { + "name": "TzeTze", + "categoryId": 2, + "url": "http://www.tzetze.it/", + "companyId": "tzetze" + }, + "ubersetzung-app.com": { + "name": "ubersetzung-app.com", + "categoryId": 12, + "url": "https://www.ubersetzung-app.com/", + "companyId": null + }, + "ubuntu": { + "name": "Ubuntu", + "categoryId": 8, + "url": "https://ubuntu.com/", + "companyId": "canonical", + "source": "AdGuard" + }, + "ucfunnel": { + "name": "ucfunnel", + "categoryId": 4, + "url": "https://www.ucfunnel.com/", + "companyId": "ucfunnel" + }, + "ucoz": { + "name": "uCoz", + "categoryId": 6, + "url": "http://www.ucoz.net/", + "companyId": "ucoz" + }, + "uliza": { + "name": "Uliza", + "categoryId": 4, + "url": "http://uliza.jp/index.html", + "companyId": "uliza" + }, + "umbel": { + "name": "Umbel", + "categoryId": 6, + "url": "http://umbel.com", + "companyId": "umbel" + }, + "umebiggestern.club": { + "name": "umebiggestern.club", + "categoryId": 11, + "url": null, + "companyId": null + }, + "unanimis": { + "name": "Unanimis", + "categoryId": 4, + "url": "http://www.unanimis.co.uk/", + "companyId": "switch_concepts" + }, + "unbounce": { + "name": "Unbounce", + "categoryId": 6, + "url": "http://unbounce.com/", + "companyId": "unbounce" + }, + "unbxd": { + "name": "UNBXD", + "categoryId": 6, + "url": "http://unbxd.com/", + "companyId": "unbxd" + }, + "under-box.com": { + "name": "under-box.com", + "categoryId": 12, + "url": null, + "companyId": null + }, + "undercomputer.com": { + "name": "undercomputer.com", + "categoryId": 11, + "url": null, + "companyId": null + }, + "underdog_media": { + "name": "Underdog Media", + "categoryId": 4, + "url": "http://www.underdogmedia.com", + "companyId": "underdog_media" + }, + "undertone": { + "name": "Undertone", + "categoryId": 4, + "url": "https://www.undertone.com/", + "companyId": "perion" + }, + "unica": { + "name": "Unica", + "categoryId": 2, + "url": "http://www.unica.com/", + "companyId": "ibm" + }, + "unister": { + "name": "Unister", + "categoryId": 6, + "url": "http://www.unister.de/", + "companyId": "unister" + }, + "unite": { + "name": "Unite", + "categoryId": 4, + "url": "http://unite.me/#", + "companyId": "unite" + }, + "united_digital_group": { + "name": "United Digital Group", + "categoryId": 4, + "url": "https://www.udg.de/", + "companyId": "united_digital_group" + }, + "united_internet_media_gmbh": { + "name": "United Internet Media GmbH", + "categoryId": 4, + "url": "https://www.united-internet.de/", + "companyId": "united_internet" + }, + "unity": { + "name": "Unity", + "categoryId": 8, + "url": "https://unity.com/", + "companyId": "unity", + "source": "AdGuard" + }, + "unity_ads": { + "name": "Unity Ads", + "categoryId": 4, + "url": "https://unity.com/products/unity-ads", + "companyId": "unity", + "source": "AdGuard" + }, + "univide": { + "name": "Univide", + "categoryId": 4, + "url": "http://www.oracle.com/", + "companyId": "oracle" + }, + "unpkg.com": { + "name": "unpkg", + "categoryId": 9, + "url": "https://unpkg.com/#/", + "companyId": null + }, + "unruly_media": { + "name": "Unruly Media", + "categoryId": 4, + "url": "http://www.unrulymedia.com/", + "companyId": "unruly" + }, + "untriel_finger_printing": { + "name": "Untriel Finger Printing", + "categoryId": 6, + "url": "https://www.untriel.nl/", + "companyId": "untriel" + }, + "upland_clickability_beacon": { + "name": "Upland Clickability Beacon", + "categoryId": 4, + "url": "http://www.clickability.com/", + "companyId": "upland_software" + }, + "uppr.de": { + "name": "uppr GmbH", + "categoryId": 4, + "url": "https://uppr.de/", + "companyId": null + }, + "upravel.com": { + "name": "upravel.com", + "categoryId": 11, + "url": null, + "companyId": null + }, + "upsellit": { + "name": "UpSellit", + "categoryId": 2, + "url": "http://www.upsellit.com", + "companyId": "upsellit" + }, + "upsight": { + "name": "Upsight", + "categoryId": 6, + "url": "http://www.upsight.com/", + "companyId": "upsight" + }, + "uptain": { + "name": "Uptain", + "categoryId": 6, + "url": "http://www.uptain.de/en/regaining-lost-customers/", + "companyId": "uptain" + }, + "uptolike.com": { + "name": "Uptolike", + "categoryId": 7, + "url": "https://www.uptolike.com/", + "companyId": "uptolike" + }, + "uptrends": { + "name": "Uptrends", + "categoryId": 6, + "url": "http://www.uptrends.com/", + "companyId": "uptrends" + }, + "urban-media.com": { + "name": "Urban Media GmbH", + "categoryId": 4, + "url": "https://www.urban-media.com/", + "companyId": null + }, + "urban_airship": { + "name": "Urban Airship", + "categoryId": 6, + "url": "https://www.urbanairship.com/", + "companyId": "urban_airship" + }, + "usability_tools": { + "name": "Usability Tools", + "categoryId": 6, + "url": "http://usabilitytools.com/", + "companyId": "usability_tools" + }, + "usabilla": { + "name": "Usabilla", + "categoryId": 2, + "url": "https://usabilla.com/", + "companyId": "usabilla" + }, + "usemax": { + "name": "Usemax", + "categoryId": 4, + "url": "http://www.usemax.de", + "companyId": "usemax" + }, + "usemessages.com": { + "name": "usemessages.com", + "categoryId": 11, + "url": null, + "companyId": null + }, + "usercycle": { + "name": "USERcycle", + "categoryId": 6, + "url": "http://usercycle.com/", + "companyId": "usercycle" + }, + "userdive": { + "name": "USERDIVE", + "categoryId": 6, + "url": "http://userdive.com/", + "companyId": "userdive" + }, + "userecho": { + "name": "UserEcho", + "categoryId": 2, + "url": "http://userecho.com", + "companyId": "userecho" + }, + "userlike.com": { + "name": "Userlike", + "categoryId": 2, + "url": "https://www.userlike.com/", + "companyId": "userlike" + }, + "userpulse": { + "name": "UserPulse", + "categoryId": 2, + "url": "http://www.userpulse.com/", + "companyId": "userpulse" + }, + "userreplay": { + "name": "UserReplay", + "categoryId": 6, + "url": "https://www.userreplay.com/", + "companyId": "userreplay" + }, + "userreport": { + "name": "UserReport", + "categoryId": 2, + "url": "http://www.userreport.com/", + "companyId": "userreport" + }, + "userrules": { + "name": "UserRules", + "categoryId": 2, + "url": "http://www.userrules.com/", + "companyId": "userrules_software" + }, + "usersnap": { + "name": "Usersnap", + "categoryId": 2, + "url": "http://usersnap.com/", + "companyId": "usersnap" + }, + "uservoice": { + "name": "UserVoice", + "categoryId": 2, + "url": "http://uservoice.com/", + "companyId": "uservoice" + }, + "userzoom.com": { + "name": "UserZoom", + "categoryId": 2, + "url": "https://www.userzoom.com/", + "companyId": "userzoom" + }, + "usocial": { + "name": "Usocial", + "categoryId": 7, + "url": "https://usocial.pro/en", + "companyId": "usocial" + }, + "utarget": { + "name": "uTarget", + "categoryId": 4, + "url": "http://utarget.ru/", + "companyId": "utarget" + }, + "uuidksinc.net": { + "name": "uuidksinc.net", + "categoryId": 11, + "url": null, + "companyId": null + }, + "v12_group": { + "name": "V12 Group", + "categoryId": 6, + "url": null, + "companyId": null + }, + "vacaneedasap.com": { + "name": "vacaneedasap.com", + "categoryId": 11, + "url": null, + "companyId": null + }, + "valassis": { + "name": "Valassis", + "categoryId": 4, + "url": "http://www.brand.net/", + "companyId": "valassis" + }, + "validclick": { + "name": "ValidClick", + "categoryId": 4, + "url": "http://inuvo.com/", + "companyId": "inuvo" + }, + "valiton": { + "name": "Valiton", + "categoryId": 4, + "url": "https://www.valiton.com/", + "companyId": "hubert_burda_media" + }, + "valueclick_media": { + "name": "ValueClick Media", + "categoryId": 4, + "url": "https://www.conversantmedia.eu/", + "companyId": "conversant" + }, + "valuecommerce": { + "name": "ValueCommerce", + "categoryId": 4, + "url": "https://www.valuecommerce.ne.jp", + "companyId": "valuecommerce" + }, + "valued_opinions": { + "name": "Valued Opinions", + "categoryId": 4, + "url": "http://valuedopinions.com", + "companyId": "valued_opinions" + }, + "vanksen": { + "name": "Vanksen", + "categoryId": 4, + "url": "http://www.buzzparadise.com/", + "companyId": "vanksen" + }, + "varick_media_management": { + "name": "Varick Media Management", + "categoryId": 4, + "url": "http://www.varickmm.com/", + "companyId": "varick_media_management" + }, + "vcita": { + "name": "Vcita", + "categoryId": 6, + "url": "https://www.vcita.com/", + "companyId": "vcita" + }, + "vcommission": { + "name": "vCommission", + "categoryId": 4, + "url": "http://www.vcommission.com/", + "companyId": "vcommission" + }, + "vdopia": { + "name": "Vdopia", + "categoryId": 4, + "url": "http://mobile.vdopia.com/", + "companyId": "vdopia" + }, + "ve_interactive": { + "name": "Ve Interactive", + "categoryId": 4, + "url": "https://www.veinteractive.com", + "companyId": "ve_interactive" + }, + "vee24": { + "name": "VEE24", + "categoryId": 0, + "url": "https://www.vee24.com/", + "companyId": "vee24" + }, + "velocecdn.com": { + "name": "velocecdn.com", + "categoryId": 11, + "url": null, + "companyId": null + }, + "velti_mgage_visualize": { + "name": "Velti mGage Visualize", + "categoryId": 4, + "url": "http://www.velti.com/", + "companyId": "velti" + }, + "vendemore": { + "name": "Vendemore", + "categoryId": 1, + "url": "https://vendemore.com/", + "companyId": "ratos" + }, + "venturead.com": { + "name": "venturead.com", + "categoryId": 11, + "url": null, + "companyId": null + }, + "venyoo": { + "name": "Venyoo", + "categoryId": 2, + "url": "http://venyoo.ru/", + "companyId": "venyoo" + }, + "veoxa": { + "name": "Veoxa", + "categoryId": 4, + "url": "http://www.veoxa.com/", + "companyId": "veoxa" + }, + "vergic.com": { + "name": "Vergic", + "categoryId": 1, + "url": "https://www.vergic.com/", + "companyId": null + }, + "vero": { + "name": "Vero", + "categoryId": 4, + "url": "http://www.getvero.com/", + "companyId": "vero" + }, + "vertical_acuity": { + "name": "Vertical Acuity", + "categoryId": 4, + "url": "http://www.verticalacuity.com/", + "companyId": "outbrain" + }, + "vertical_leap": { + "name": "Vertical Leap", + "categoryId": 4, + "url": "http://www.vertical-leap.co.uk/", + "companyId": "vertical_leap" + }, + "verticalresponse": { + "name": "VerticalResponse", + "categoryId": 4, + "url": "http://www.verticalresponse.com", + "companyId": "verticalresponse" + }, + "verticalscope": { + "name": "VerticalScope", + "categoryId": 4, + "url": "http://www.verticalscope.com", + "companyId": "verticalscope" + }, + "vertoz": { + "name": "Vertoz", + "categoryId": 4, + "url": "http://www.vertoz.com/", + "companyId": "vertoz" + }, + "veruta": { + "name": "Veruta", + "categoryId": 4, + "url": "http://www.veruta.com/", + "companyId": "veruta" + }, + "verve_mobile": { + "name": "Verve Mobile", + "categoryId": 4, + "url": "http://www.vervemobile.com/", + "companyId": "verve_mobile" + }, + "vg_wort": { + "name": "VG Wort", + "categoryId": 6, + "url": "https://tom.vgwort.de/portal/showHelp", + "companyId": "vg_wort" + }, + "vi": { + "name": "Vi", + "categoryId": 4, + "url": "http://www.vi.ru/", + "companyId": "vi" + }, + "viacom_tag_container": { + "name": "Viacom Tag Container", + "categoryId": 4, + "url": "http://www.viacom.com/", + "companyId": "viacom" + }, + "viafoura": { + "name": "Viafoura", + "categoryId": 4, + "url": "http://www.viafoura.com/", + "companyId": "viafoura" + }, + "vibrant_ads": { + "name": "Vibrant Ads", + "categoryId": 4, + "url": "http://www.vibrantmedia.com/", + "companyId": "vibrant_media" + }, + "vicomi.com": { + "name": "Vicomi", + "categoryId": 6, + "url": "http://www.vicomi.com/", + "companyId": "vicomi" + }, + "vidazoo.com": { + "name": "Vidazoo", + "categoryId": 4, + "url": "https://www.vidazoo.com/", + "companyId": null + }, + "video_desk": { + "name": "Video Desk", + "categoryId": 0, + "url": "https://www.videodesk.com/", + "companyId": "video_desk" + }, + "video_potok": { + "name": "Video Potok", + "categoryId": 0, + "url": "http://videopotok.pro/", + "companyId": "videopotok" + }, + "videoadex.com": { + "name": "VideoAdX", + "categoryId": 4, + "url": "https://www.videoadex.com/", + "companyId": "digiteka" + }, + "videology": { + "name": "Videology", + "categoryId": 4, + "url": "https://videologygroup.com/", + "companyId": "singtel" + }, + "videonow": { + "name": "VideoNow", + "categoryId": 4, + "url": "https://videonow.ru/", + "companyId": "videonow" + }, + "videoplayerhub.com": { + "name": "videoplayerhub.com", + "categoryId": 11, + "url": null, + "companyId": null + }, + "videoplaza": { + "name": "Videoplaza", + "categoryId": 4, + "url": "http://www.videoplaza.com/", + "companyId": "videoplaza" + }, + "videostep": { + "name": "VideoStep", + "categoryId": 4, + "url": "https://www.videostep.com/", + "companyId": "videostep" + }, + "vidgyor": { + "name": "Vidgyor", + "categoryId": 0, + "url": "http://vidgyor.com/", + "companyId": "vidgyor" + }, + "vidible": { + "name": "Vidible", + "categoryId": 4, + "url": "http://vidible.tv/", + "companyId": "verizon" + }, + "vidora": { + "name": "Vidora", + "categoryId": 0, + "url": "https://www.vidora.com/", + "companyId": "vidora" + }, + "vietad": { + "name": "VietAd", + "categoryId": 4, + "url": "http://vietad.vn/", + "companyId": "vietad" + }, + "viglink": { + "name": "VigLink", + "categoryId": 4, + "url": "http://www.viglink.com", + "companyId": "viglink" + }, + "vigo": { + "name": "Vigo", + "categoryId": 6, + "url": "https://vigo.one/", + "companyId": "vigo" + }, + "vimeo": { + "name": "Vimeo", + "categoryId": 0, + "url": "http://vimeo.com/", + "companyId": "vimeo" + }, + "vindico_group": { + "name": "Vindico Group", + "categoryId": 4, + "url": "http://www.vindicogroup.com/", + "companyId": "vindico_group" + }, + "vinted": { + "name": "Vinted", + "categoryId": 8, + "url": "https://www.vinted.com/", + "companyId": null + }, + "viral_ad_network": { + "name": "Viral Ad Network", + "categoryId": 4, + "url": "http://viraladnetwork.joinvan.com/", + "companyId": "viral_ad_network" + }, + "viral_loops": { + "name": "Viral Loops", + "categoryId": 2, + "url": "https://viral-loops.com/", + "companyId": "viral-loops" + }, + "viralgains": { + "name": "ViralGains", + "categoryId": 4, + "url": "https://www.viralgains.com/", + "companyId": null + }, + "viralmint": { + "name": "ViralMint", + "categoryId": 7, + "url": "http://www.viralmint.com", + "companyId": "viralmint" + }, + "virgul": { + "name": "Virgul", + "categoryId": 4, + "url": "http://www.virgul.com/", + "companyId": "virgul" + }, + "virool_player": { + "name": "Virool Player", + "categoryId": 4, + "url": "https://www.virool.com/", + "companyId": "virool" + }, + "virtusize": { + "name": "Virtusize", + "categoryId": 5, + "url": "http://www.virtusize.com/", + "companyId": "virtusize" + }, + "visible_measures": { + "name": "Visible Measures", + "categoryId": 4, + "url": "http://www.visiblemeasures.com/", + "companyId": "visible_measures" + }, + "vision_critical": { + "name": "Vision Critical", + "categoryId": 6, + "url": "http://visioncritical.com/", + "companyId": "vision_critical" + }, + "visit_streamer": { + "name": "Visit Streamer", + "categoryId": 6, + "url": "http://www.visitstreamer.com/", + "companyId": "visit_streamer" + }, + "visitortrack": { + "name": "VisitorTrack", + "categoryId": 4, + "url": "http://www.netfactor.com/", + "companyId": "netfactor" + }, + "visitorville": { + "name": "VisitorVille", + "categoryId": 6, + "url": "http://www.visitorville.com", + "companyId": "visitorville" + }, + "visscore": { + "name": "VisScore", + "categoryId": 4, + "url": "http://withcubed.com/", + "companyId": "cubed_attribution" + }, + "visual_iq": { + "name": "Visual IQ", + "categoryId": 6, + "url": "http://visualiq.com/", + "companyId": "visualiq" + }, + "visual_revenue": { + "name": "Visual Revenue", + "categoryId": 6, + "url": "http://visualrevenue.com/", + "companyId": "outbrain" + }, + "visual_website_optimizer": { + "name": "VWO", + "categoryId": 6, + "url": "https://vwo.com/", + "companyId": "wingify" + }, + "visualdna": { + "name": "VisualDNA", + "categoryId": 4, + "url": "http://www.visualdna.com/", + "companyId": "nielsen" + }, + "visualstudio.com": { + "name": "Visualstudio.com", + "categoryId": 8, + "url": "https://www.visualstudio.com/", + "companyId": "microsoft" + }, + "visualvisitor": { + "name": "VisualVisitor", + "categoryId": 6, + "url": "http://www.visualvisitor.com/", + "companyId": "visualvisitor" + }, + "vivalu": { + "name": "VIVALU", + "categoryId": 4, + "url": "https://www.vivalu.com/", + "companyId": "vivalu" + }, + "vivistats": { + "name": "ViviStats", + "categoryId": 6, + "url": "http://en.vivistats.com/", + "companyId": "vivistats" + }, + "vizury": { + "name": "Vizury", + "categoryId": 4, + "url": "http://www.vizury.com/website/", + "companyId": "vizury" + }, + "vizzit": { + "name": "Vizzit", + "categoryId": 4, + "url": "http://www.vizzit.se/h/en/", + "companyId": "vizzit" + }, + "vk.com": { + "name": "Vk.com", + "categoryId": 7, + "url": "https://vk.com/", + "companyId": "vk", + "source": "AdGuard" + }, + "vkontakte": { + "name": "VKontakte", + "categoryId": 7, + "url": "https://vk.com/", + "companyId": "vk", + "source": "AdGuard" + }, + "vkontakte_widgets": { + "name": "VKontakte Widgets", + "categoryId": 7, + "url": "https://dev.vk.com/", + "companyId": "vk", + "source": "AdGuard" + }, + "vntsm.com": { + "name": "Venatus Media", + "categoryId": 4, + "url": "https://www.venatusmedia.com/", + "companyId": "venatus" + }, + "vodafone.de": { + "name": "vodafone.de", + "categoryId": 8, + "url": null, + "companyId": null + }, + "voicefive": { + "name": "VoiceFive", + "categoryId": 6, + "url": "https://www.voicefive.com", + "companyId": "comscore" + }, + "volusion_chat": { + "name": "Volusion Chat", + "categoryId": 2, + "url": "https://www.volusion.com/", + "companyId": "volusion" + }, + "voluum": { + "name": "Voluum", + "categoryId": 4, + "url": "https://voluum.com/", + "companyId": "codewise" + }, + "vooxe.com": { + "name": "vooxe.com", + "categoryId": 8, + "url": "http://www.vooxe.com/", + "companyId": null + }, + "vorwerk.de": { + "name": "vorwerk.de", + "categoryId": 8, + "url": "https://corporate.vorwerk.de/home/", + "companyId": null + }, + "vox": { + "name": "Vox", + "categoryId": 2, + "url": "https://www.voxmedia.com/", + "companyId": "vox" + }, + "voxus": { + "name": "Voxus", + "categoryId": 4, + "url": "http://www.voxus.tv/", + "companyId": "voxus" + }, + "vpon": { + "name": "VPON", + "categoryId": 4, + "url": "http://www.vpon.com/en/", + "companyId": "vpon" + }, + "vpscash": { + "name": "VPSCash", + "categoryId": 4, + "url": "http://vpscash.nl/home", + "companyId": "vps_cash" + }, + "vs": { + "name": "Visual Studio", + "categoryId": 8, + "url": "https://visualstudio.microsoft.com", + "companyId": "microsoft", + "source": "AdGuard" + }, + "vscode": { + "name": "Visual Studio Code", + "categoryId": 8, + "url": "https://code.visualstudio.com/", + "companyId": "microsoft", + "source": "AdGuard" + }, + "vtracy.de": { + "name": "vtracy.de", + "categoryId": 11, + "url": null, + "companyId": null + }, + "vungle": { + "name": "Vungle", + "categoryId": 4, + "url": "https://vungle.com/", + "companyId": "blackstone", + "source": "AdGuard" + }, + "vuukle": { + "name": "Vuukle", + "categoryId": 6, + "url": "http://vuukle.com/", + "companyId": "vuukle" + }, + "vzaar": { + "name": "Vzaar", + "categoryId": 0, + "url": "http://vzaar.com/", + "companyId": "vzaar" + }, + "w3counter": { + "name": "W3Counter", + "categoryId": 6, + "url": "http://www.w3counter.com/", + "companyId": "awio_web_services" + }, + "w3roi": { + "name": "w3roi", + "categoryId": 6, + "url": "http://www.w3roi.com/", + "companyId": "w3roi" + }, + "wahoha": { + "name": "Wahoha", + "categoryId": 2, + "url": "http://wahoha.com/", + "companyId": "wahoha" + }, + "walkme.com": { + "name": "WalkMe", + "categoryId": 2, + "url": "https://www.walkme.com/", + "companyId": "walkme" + }, + "wall_street_on_demand": { + "name": "Wall Street on Demand", + "categoryId": 4, + "url": "http://www.wallst.com", + "companyId": "markit_on_demand" + }, + "walmart": { + "name": "Walmart", + "categoryId": 8, + "url": null, + "companyId": null + }, + "wamcash": { + "name": "Wamcash", + "categoryId": 3, + "url": "http://wamcash.com/", + "companyId": "wamcash" + }, + "wanelo": { + "name": "Wanelo", + "categoryId": 2, + "url": "https://wanelo.com/", + "companyId": "wanelo" + }, + "warp.ly": { + "name": "Warp.ly", + "categoryId": 6, + "url": "https://warp.ly/", + "companyId": "warp.ly" + }, + "way2traffic": { + "name": "Way2traffic", + "categoryId": 4, + "url": "http://www.way2traffic.com/", + "companyId": "way2traffic" + }, + "wayfair_com": { + "name": "Wayfair", + "categoryId": 8, + "url": "https://www.wayfair.com/", + "companyId": null + }, + "wdr.de": { + "name": "wdr.de", + "categoryId": 8, + "url": "https://www1.wdr.de/index.html", + "companyId": null + }, + "web-stat": { + "name": "Web-Stat", + "categoryId": 6, + "url": "http://www.web-stat.net/", + "companyId": "web-stat" + }, + "web.de": { + "name": "web.de", + "categoryId": 8, + "url": "https://web.de/", + "companyId": null + }, + "web.stat": { + "name": "Web.STAT", + "categoryId": 6, + "url": "http://webstat.net/", + "companyId": "web.stat" + }, + "web_service_award": { + "name": "Web Service Award", + "categoryId": 6, + "url": "http://webserviceaward.com/english/", + "companyId": "web_service_award" + }, + "web_traxs": { + "name": "Web Traxs", + "categoryId": 6, + "url": "http://websolutions.thomasnet.com/web-traxs-analytics.php", + "companyId": "thomasnet_websolutions" + }, + "web_wipe_analytics": { + "name": "Web Wipe Analytics", + "categoryId": 6, + "url": "http://tensquare.de", + "companyId": "tensquare" + }, + "webads": { + "name": "WebAds", + "categoryId": 4, + "url": "http://www.webads.co.uk/", + "companyId": "webads" + }, + "webantenna": { + "name": "WebAntenna", + "categoryId": 6, + "url": "http://www.bebit.co.jp/webantenna/", + "companyId": "webantenna" + }, + "webclicks24_com": { + "name": "webclicks24.com", + "categoryId": 11, + "url": null, + "companyId": null + }, + "webclose.net": { + "name": "webclose.net", + "categoryId": 12, + "url": null, + "companyId": null + }, + "webcollage": { + "name": "Webcollage", + "categoryId": 2, + "url": "http://www.webcollage.com/", + "companyId": "webcollage" + }, + "webedia": { + "name": "Webedia", + "categoryId": 4, + "url": "http://fr.webedia-group.com/", + "companyId": "fimalac_group" + }, + "webeffective": { + "name": "WebEffective", + "categoryId": 6, + "url": "http://www.keynote.com/", + "companyId": "keynote_systems" + }, + "webengage": { + "name": "WebEngage", + "categoryId": 2, + "url": "http://webengage.com/", + "companyId": "webengage" + }, + "webgains": { + "name": "Webgains", + "categoryId": 8, + "url": null, + "companyId": null + }, + "webgozar": { + "name": "WebGozar", + "categoryId": 6, + "url": "http://webgozar.com/", + "companyId": "webgozar" + }, + "webhelpje": { + "name": "Webhelpje", + "categoryId": 2, + "url": "http://www.webhelpje.nl/", + "companyId": "webhelpje" + }, + "webleads_tracker": { + "name": "Webleads Tracker", + "categoryId": 6, + "url": "http://www.webleads-tracker.fr/", + "companyId": "webleads_tracker" + }, + "webmecanik": { + "name": "Webmecanik", + "categoryId": 6, + "url": "http://www.webmecanik.com/en/", + "companyId": "webmecanik" + }, + "weborama": { + "name": "Weborama", + "categoryId": 4, + "url": "https://weborama.com/", + "companyId": "weborama" + }, + "webprospector": { + "name": "WebProspector", + "categoryId": 6, + "url": "http://www.webprospector.de/", + "companyId": "webprospector" + }, + "webstat": { + "name": "WebSTAT", + "categoryId": 6, + "url": "http://www.webstat.com/", + "companyId": "webstat" + }, + "webstat.se": { + "name": "Webstat.se", + "categoryId": 6, + "url": "http://www.webstat.se/", + "companyId": "webstat.se" + }, + "webtrack": { + "name": "webtrack", + "categoryId": 6, + "url": "http://www.webtrack.biz/", + "companyId": "webtrack" + }, + "webtraffic": { + "name": "Webtraffic", + "categoryId": 6, + "url": "http://www.webtraffic.se/", + "companyId": "schibsted_asa" + }, + "webtrekk": { + "name": "Webtrekk", + "categoryId": 6, + "url": "http://www.webtrekk.com/", + "companyId": "webtrekk" + }, + "webtrekk_cc": { + "name": "Webtrek Control Cookie", + "categoryId": 6, + "url": "https://www.webtrekk.com/en/home/", + "companyId": "webtrekk" + }, + "webtrends": { + "name": "Webtrends", + "categoryId": 6, + "url": "http://www.webtrends.com/", + "companyId": "webtrends" + }, + "webtrends_ads": { + "name": "Webtrends Ads", + "categoryId": 4, + "url": "http://www.webtrends.com", + "companyId": "webtrends" + }, + "webvisor": { + "name": "WebVisor", + "categoryId": 6, + "url": "http://webvisor.ru", + "companyId": "yandex" + }, + "wedcs": { + "name": "WEDCS", + "categoryId": 4, + "url": "https://www.microsoft.com/", + "companyId": "microsoft" + }, + "weebly_ads": { + "name": "Weebly Ads", + "categoryId": 4, + "url": "http://www.weebly.com", + "companyId": "weebly" + }, + "weibo_widget": { + "name": "Weibo Widget", + "categoryId": 4, + "url": "http://www.sina.com/", + "companyId": "sina" + }, + "westlotto_com": { + "name": "westlotto.com", + "categoryId": 8, + "url": "http://westlotto.com/", + "companyId": null + }, + "wetter_com": { + "name": "Wetter.com", + "categoryId": 8, + "url": "http://www.wetter.com/", + "companyId": null + }, + "whatbroadcast": { + "name": "Whatbroadcast", + "categoryId": 2, + "url": "https://www.whatsbroadcast.com/", + "companyId": "whatsbroadcast" + }, + "whatsapp": { + "name": "WhatsApp", + "categoryId": 8, + "url": "https://www.whatsapp.com/", + "companyId": "meta", + "source": "AdGuard" + }, + "whisper": { + "name": "Whisper", + "categoryId": 7, + "url": "https://whisper.sh/", + "companyId": "medialab", + "source": "AdGuard" + }, + "whos.amung.us": { + "name": "Whos.amung.us", + "categoryId": 6, + "url": "http://whos.amung.us/", + "companyId": "whos.amung.us" + }, + "whoson": { + "name": "WhosOn", + "categoryId": 6, + "url": "http://www.whoson.com/", + "companyId": "whoson" + }, + "wibbitz": { + "name": "Wibbitz", + "categoryId": 0, + "url": "http://www.wibbitz.com/", + "companyId": "wibbitz" + }, + "wibiya_toolbar": { + "name": "Wibiya Toolbar", + "categoryId": 7, + "url": "http://www.wibiya.com/", + "companyId": "wibiya" + }, + "widdit": { + "name": "Widdit", + "categoryId": 2, + "url": "http://www.predictad.com/", + "companyId": "widdit" + }, + "widerplanet": { + "name": "WiderPlanet", + "categoryId": 4, + "url": "http://widerplanet.com/", + "companyId": "wider_planet" + }, + "widespace": { + "name": "Widespace", + "categoryId": 4, + "url": "https://www.widespace.com/", + "companyId": "widespace" + }, + "widgetbox": { + "name": "WidgetBox", + "categoryId": 2, + "url": "http://www.widgetbox.com/", + "companyId": "widgetbox" + }, + "wiget_media": { + "name": "Wiget Media", + "categoryId": 4, + "url": "http://wigetmedia.com", + "companyId": "wiget_media" + }, + "wigzo": { + "name": "Wigzo", + "categoryId": 4, + "url": "https://www.wigzo.com/", + "companyId": "wigzo" + }, + "wikia-services.com": { + "name": "Wikia Services", + "categoryId": 8, + "url": "http://www.wikia.com/fandom", + "companyId": "wikia" + }, + "wikia_beacon": { + "name": "Wikia Beacon", + "categoryId": 6, + "url": "http://www.wikia.com/", + "companyId": "wikia" + }, + "wikia_cdn": { + "name": "Wikia CDN", + "categoryId": 9, + "url": "http://www.wikia.com/fandom", + "companyId": "wikia" + }, + "wikimedia.org": { + "name": "WikiMedia", + "categoryId": 9, + "url": "https://wikimediafoundation.org/", + "companyId": "wikimedia_foundation" + }, + "winaffiliates": { + "name": "Winaffiliates", + "categoryId": 6, + "url": "http://www.winaffiliates.com/", + "companyId": "winaffiliates" + }, + "windows_maps": { + "name": "Windows Maps", + "categoryId": 8, + "url": "https://www.microsoft.com/store/apps/9wzdncrdtbvb", + "companyId": "microsoft", + "source": "AdGuard" + }, + "windows_notifications": { + "name": "The Windows Push Notification Services", + "categoryId": 8, + "url": "https://learn.microsoft.com/en-us/windows/apps/design/shell/tiles-and-notifications/windows-push-notification-services--wns--overview", + "companyId": "microsoft", + "source": "AdGuard" + }, + "windows_time": { + "name": "Windows Time Service", + "categoryId": 8, + "url": "https://learn.microsoft.com/en-us/windows-server/networking/windows-time-service/how-the-windows-time-service-works", + "companyId": "microsoft", + "source": "AdGuard" + }, + "windowsupdate": { + "name": "Windows Update", + "categoryId": 9, + "url": "https://support.microsoft.com/en-us/windows/windows-update-faq-8a903416-6f45-0718-f5c7-375e92dddeb2", + "companyId": "microsoft", + "source": "AdGuard" + }, + "wipmania": { + "name": "WIPmania", + "categoryId": 6, + "url": "http://www.wipmania.com/", + "companyId": "wipmania" + }, + "wiqhit": { + "name": "WiQhit", + "categoryId": 6, + "url": "https://wiqhit.com/nl/", + "companyId": "wiqhit" + }, + "wirecard": { + "name": "Wirecard", + "categoryId": 2, + "url": "https://www.wirecard.com/", + "companyId": null + }, + "wiredminds": { + "name": "WiredMinds", + "categoryId": 6, + "url": "http://www.wiredminds.de/", + "companyId": "wiredminds" + }, + "wirtualna_polska": { + "name": "Wirtualna Polska", + "categoryId": 4, + "url": "http://reklama.wp.pl/", + "companyId": "wirtualna_polska" + }, + "wisepops": { + "name": "WisePops", + "categoryId": 4, + "url": "http://wisepops.com/", + "companyId": "wisepops" + }, + "wishpond": { + "name": "Wishpond", + "categoryId": 2, + "url": "http://wishpond.com", + "companyId": "wishpond" + }, + "wistia": { + "name": "Wistia", + "categoryId": 6, + "url": "http://wistia.com/", + "companyId": "wistia" + }, + "wix.com": { + "name": "Wix", + "categoryId": 8, + "url": "https://www.wix.com/", + "companyId": "wix" + }, + "wixab": { + "name": "Wixab", + "categoryId": 6, + "url": "http://wixab.com/en/", + "companyId": "wixab" + }, + "wixmp": { + "name": "Wix Media Platform", + "categoryId": 9, + "url": "https://www.wixmp.com/", + "companyId": "wix" + }, + "wnzmauurgol.com": { + "name": "wnzmauurgol.com", + "categoryId": 11, + "url": null, + "companyId": null + }, + "wonderpush": { + "name": "WonderPush", + "categoryId": 2, + "url": "https://www.wonderpush.com/", + "companyId": "wonderpush" + }, + "woopic.com": { + "name": "woopic.com", + "categoryId": 8, + "url": null, + "companyId": null + }, + "woopra": { + "name": "Woopra", + "categoryId": 6, + "url": "http://www.woopra.com/", + "companyId": "woopra" + }, + "wordpress_ads": { + "name": "Wordpress Ads", + "categoryId": 4, + "url": "https://wordpress.com/", + "companyId": "automattic" + }, + "wordpress_stats": { + "name": "WordPress Stats", + "categoryId": 6, + "url": "http://wordpress.org/extend/plugins/stats/", + "companyId": "automattic" + }, + "wordstream": { + "name": "WordStream", + "categoryId": 6, + "url": "http://www.wordstream.com/", + "companyId": "wordstream" + }, + "worldnaturenet_xyz": { + "name": "worldnaturenet.xyz", + "categoryId": 12, + "url": null, + "companyId": null + }, + "wp.pl": { + "name": "Wirtualna Polska ", + "categoryId": 4, + "url": "https://www.wp.pl/", + "companyId": "wp" + }, + "wp_engine": { + "name": "WP Engine", + "categoryId": 5, + "url": "https://wpengine.com/", + "companyId": "wp_engine" + }, + "writeup_clickanalyzer": { + "name": "WriteUp ClickAnalyzer", + "categoryId": 6, + "url": "http://www.writeup.co.jp/", + "companyId": "writeup" + }, + "wurfl": { + "name": "WURFL", + "categoryId": 6, + "url": "https://web.wurfl.io/", + "companyId": "scientiamobile" + }, + "wwwpromoter": { + "name": "WWWPromoter", + "categoryId": 4, + "url": "http://wwwpromoter.com/", + "companyId": "wwwpromoter" + }, + "wykop": { + "name": "Wykop", + "categoryId": 7, + "url": "http://www.wykop.pl", + "companyId": "wykop" + }, + "wysistat.com": { + "name": "WysiStat", + "categoryId": 6, + "url": "https://www.wysistat.net/", + "companyId": "wysistat" + }, + "wywy.com": { + "name": "wywy", + "categoryId": 4, + "url": "http://wywy.com/", + "companyId": "tvsquared" + }, + "x-lift": { + "name": "X-lift", + "categoryId": 4, + "url": "https://www.x-lift.jp/", + "companyId": "x-lift" + }, + "xapads": { + "name": "Xapads", + "categoryId": 4, + "url": "http://www.xapads.com/", + "companyId": "xapads" + }, + "xen-media.com": { + "name": "Xen Media", + "categoryId": 11, + "url": "https://www.xenmedia.net/", + "companyId": "xenmedia", + "source": "AdGuard" + }, + "xfreeservice.com": { + "name": "xfreeservice.com", + "categoryId": 11, + "url": null, + "companyId": null + }, + "xhamster": { + "name": "xHamster", + "categoryId": 3, + "url": "https://xhamster.com/", + "companyId": "xhamster", + "source": "AdGuard" + }, + "xiaomi": { + "name": "Xiaomi", + "categoryId": 8, + "url": "https://www.mi.com/", + "companyId": "xiaomi", + "source": "AdGuard" + }, + "xing": { + "name": "Xing", + "categoryId": 6, + "url": "http://www.xing.com/", + "companyId": "xing" + }, + "xmediaclicks": { + "name": "XmediaClicks", + "categoryId": 3, + "url": "http://exoclick.com/", + "companyId": "exoclick" + }, + "xnxx_cdn": { + "name": "XNXX", + "categoryId": 9, + "url": "https://www.xnxx.com", + "companyId": "xnxx", + "source": "AdGuard" + }, + "xplosion": { + "name": "xplosion", + "categoryId": 4, + "url": "http://www.xplosion.de/", + "companyId": "xplosion_interactive" + }, + "xtend": { + "name": "XTEND", + "categoryId": 4, + "url": "http://www.xtendmedia.com/", + "companyId": "matomy_media" + }, + "xvideos_com": { + "name": "Xvideos", + "categoryId": 8, + "url": "https://www.xvideos.com", + "companyId": "xvideos", + "source": "AdGuard" + }, + "xxxlshop.de": { + "name": "XXXLutz", + "categoryId": 8, + "url": "https://www.xxxlutz.de/", + "companyId": "xxxlutz", + "source": "AdGuard" + }, + "xxxlutz": { + "name": "XXXLutz", + "categoryId": 8, + "url": "https://www.xxxlutz.de/", + "companyId": "xxxlutz" + }, + "yabbi": { + "name": "Yabbi", + "categoryId": 4, + "url": "https://yabbi.me/", + "companyId": "yabbi", + "source": "AdGuard" + }, + "yabuka": { + "name": "Yabuka", + "categoryId": 4, + "url": "http://www.yabuka.com/", + "companyId": "yabuka" + }, + "yahoo": { + "name": "Yahoo!", + "categoryId": 6, + "url": "https://yahoo.com/", + "companyId": "apollo_global_management", + "source": "AdGuard" + }, + "yahoo_ad_exchange": { + "name": "Yahoo! Ad Exchange", + "categoryId": 4, + "url": "https://www.verizonmedia.com/advertising", + "companyId": "verizon" + }, + "yahoo_ad_manager": { + "name": "Yahoo! Ad Manager Plus", + "categoryId": 4, + "url": "https://developer.yahoo.com/analytics/", + "companyId": "verizon" + }, + "yahoo_advertising": { + "name": "Yahoo! Advertising", + "categoryId": 4, + "url": "https://www.advertising.yahooinc.com/", + "companyId": "apollo_global_management", + "source": "AdGuard" + }, + "yahoo_analytics": { + "name": "Yahoo! Analytics", + "categoryId": 6, + "url": "http://web.analytics.yahoo.com/", + "companyId": "verizon" + }, + "yahoo_commerce_central": { + "name": "Yahoo! Commerce Central", + "categoryId": 4, + "url": "http://lexity.com/", + "companyId": "verizon" + }, + "yahoo_dot_tag": { + "name": "Yahoo! DOT tag", + "categoryId": 4, + "url": "https://www.verizon.com/", + "companyId": "verizon" + }, + "yahoo_japan_retargeting": { + "name": "Yahoo! Japan Retargeting", + "categoryId": 4, + "url": "http://www.yahoo.com/", + "companyId": "yahoo_japan" + }, + "yahoo_overture": { + "name": "Yahoo! Overture", + "categoryId": 4, + "url": "http://searchmarketing.yahoo.com", + "companyId": "verizon" + }, + "yahoo_search": { + "name": "Yahoo! Search", + "categoryId": 4, + "url": "https://search.yahooinc.com/", + "companyId": "apollo_global_management", + "source": "AdGuard" + }, + "yahoo_small_business": { + "name": "Yahoo! Small Business", + "categoryId": 4, + "url": "http://www.pixazza.com/", + "companyId": "verizon" + }, + "yandex": { + "name": "Yandex", + "categoryId": 4, + "url": "https://www.yandex.com/", + "companyId": "yandex" + }, + "yandex.api": { + "name": "Yandex.API", + "categoryId": 2, + "url": "http://api.yandex.ru/", + "companyId": "yandex" + }, + "yandex_adexchange": { + "name": "Yandex AdExchange", + "categoryId": 4, + "url": "https://www.yandex.com/", + "companyId": "yandex" + }, + "yandex_advisor": { + "name": "Yandex.Advisor", + "categoryId": 12, + "url": "https://sovetnik.yandex.ru/", + "companyId": "yandex" + }, + "yandex_appmetrica": { + "name": "Yandex AppMetrica", + "categoryId": 101, + "url": "https://appmetrica.yandex.com/", + "companyId": "yandex", + "source": "AdGuard" + }, + "yandex_direct": { + "name": "Yandex.Direct", + "categoryId": 6, + "url": "https://direct.yandex.com/", + "companyId": "yandex" + }, + "yandex_metrika": { + "name": "Yandex Metrika", + "categoryId": 6, + "url": "https://metrica.yandex.com/", + "companyId": "yandex" + }, + "yandex_passport": { + "name": "Yandex Passport", + "categoryId": 2, + "url": "https://www.yandex.com/", + "companyId": "yandex" + }, + "yapfiles.ru": { + "name": "yapfiles.ru", + "categoryId": 8, + "url": "https://www.yapfiles.ru/", + "companyId": null + }, + "yashi": { + "name": "Yashi", + "categoryId": 4, + "url": "http://www.yashi.com/", + "companyId": "mass2" + }, + "ybrant_media": { + "name": "Ybrant Media", + "categoryId": 4, + "url": "http://www.addynamix.com/index.html", + "companyId": "ybrant_media" + }, + "ycontent": { + "name": "Ycontent", + "categoryId": 0, + "url": "http://ycontent.com.br/", + "companyId": "ycontent" + }, + "yektanet": { + "name": "Yektanet", + "categoryId": 4, + "url": "https://yektanet.com/", + "companyId": "yektanet" + }, + "yengo": { + "name": "Yengo", + "categoryId": 4, + "url": "http://www.yengo.com/", + "companyId": "yengo" + }, + "yesmail": { + "name": "Yesmail", + "categoryId": 4, + "url": "http://www.yesmail.com/", + "companyId": "yes_mail" + }, + "yesup_advertising": { + "name": "YesUp Advertising", + "categoryId": 4, + "url": "http://yesup.net/", + "companyId": "yesup" + }, + "yesware": { + "name": "Yesware", + "categoryId": 2, + "url": "http://www.yesware.com/", + "companyId": "yesware" + }, + "yieldbot": { + "name": "Yieldbot", + "categoryId": 6, + "url": "https://www.yieldbot.com/", + "companyId": "yieldbot" + }, + "yieldify": { + "name": "Yieldify", + "categoryId": 4, + "url": "http://www.yieldify.com/", + "companyId": "yieldify" + }, + "yieldlab": { + "name": "Yieldlab", + "categoryId": 4, + "url": "http://www.yieldlab.de/", + "companyId": "prosieben_sat1" + }, + "yieldlove": { + "name": "Yieldlove", + "categoryId": 4, + "url": "https://www.yieldlove.com/", + "companyId": "yieldlove" + }, + "yieldmo": { + "name": "Yieldmo", + "categoryId": 4, + "url": "https://www.yieldmo.com/", + "companyId": "yieldmo" + }, + "yieldr": { + "name": "Yieldr Ads", + "categoryId": 4, + "url": "https://www.yieldr.com/", + "companyId": "yieldr" + }, + "yieldr_air": { + "name": "Yieldr Air", + "categoryId": 6, + "url": "https://www.yieldr.com/", + "companyId": "yieldr" + }, + "yieldsquare": { + "name": "YieldSquare", + "categoryId": 4, + "url": "http://www.yieldsquare.com/", + "companyId": "yieldsquare" + }, + "yle": { + "name": "YLE", + "categoryId": 6, + "url": "http://yle.fi/", + "companyId": "yle" + }, + "yllixmedia": { + "name": "YllixMedia", + "categoryId": 4, + "url": "http://yllix.com/", + "companyId": "yllixmedia" + }, + "ymetrica1.com": { + "name": "ymetrica1.com", + "categoryId": 11, + "url": null, + "companyId": null + }, + "ymzrrizntbhde.com": { + "name": "ymzrrizntbhde.com", + "categoryId": 11, + "url": null, + "companyId": null + }, + "yo_button": { + "name": "Yo Button", + "categoryId": 2, + "url": "http://www.justyo.co/", + "companyId": "yo" + }, + "yodle": { + "name": "Yodle", + "categoryId": 4, + "url": "http://www.yodle.com/", + "companyId": "yodle" + }, + "yola_analytics": { + "name": "Yola Analytics", + "categoryId": 6, + "url": "https://www.yola.com/", + "companyId": "yola" + }, + "yomedia": { + "name": "Yomedia", + "categoryId": 4, + "url": "http://www.pinetech.vn/", + "companyId": "yomedia" + }, + "yoochoose.net": { + "name": "Ibexa Personalizaton Software", + "categoryId": 4, + "url": "https://yoochoose.net/", + "companyId": "ibexa", + "source": "AdGuard" + }, + "yotpo": { + "name": "Yotpo", + "categoryId": 1, + "url": "https://www.yotpo.com/", + "companyId": "yotpo" + }, + "yottaa": { + "name": "Yottaa", + "categoryId": 6, + "url": "https://www.yottaa.com/", + "companyId": "yottaa" + }, + "yottly": { + "name": "Yottly", + "categoryId": 4, + "url": "https://yottly.com/", + "companyId": "yottly" + }, + "youcanbookme": { + "name": "YouCanBookMe", + "categoryId": 2, + "url": "https://youcanbook.me/", + "companyId": "youcanbookme" + }, + "youku": { + "name": "Youku", + "categoryId": 0, + "url": "http://www.youku.com/", + "companyId": "youku" + }, + "youporn": { + "name": "YouPorn", + "categoryId": 3, + "url": "https://www.youporn.com/", + "companyId": "youporn", + "source": "AdGuard" + }, + "youtube": { + "name": "YouTube", + "categoryId": 0, + "url": "https://www.youtube.com/", + "companyId": "google" + }, + "youtube_subscription": { + "name": "YouTube Subscription", + "categoryId": 2, + "url": "http://www.youtube.com/", + "companyId": "google" + }, + "yp": { + "name": "YellowPages", + "categoryId": 4, + "url": "https://www.yellowpages.com/", + "companyId": "thryv" + }, + "ysance": { + "name": "YSance", + "categoryId": 4, + "url": "http://www.ysance.com/en/index.html", + "companyId": "ysance" + }, + "yume": { + "name": "YuMe", + "categoryId": 4, + "url": "http://www.yume.com/", + "companyId": "yume" + }, + "yume,_inc.": { + "name": "YuMe, Inc.", + "categoryId": 4, + "url": "http://www.yume.com/", + "companyId": "yume" + }, + "yusp": { + "name": "Yusp", + "categoryId": 6, + "url": "https://www.yusp.com/", + "companyId": "yusp" + }, + "zadarma": { + "name": "Zadarma", + "categoryId": 2, + "url": "https://zadarma.com/", + "companyId": "zadarma" + }, + "zalando_de": { + "name": "zalando.de", + "categoryId": 8, + "url": "https://zalando.de/", + "companyId": "zalando" + }, + "zalo": { + "name": "Zalo", + "categoryId": 2, + "url": "https://zaloapp.com/", + "companyId": "zalo" + }, + "zanox": { + "name": "Zanox", + "categoryId": 4, + "url": "http://www.zanox.com/us/", + "companyId": "axel_springer" + }, + "zaparena": { + "name": "zaparena", + "categoryId": 4, + "url": "http://www.zaparena.com/", + "companyId": "zapunited" + }, + "zappos": { + "name": "Zappos", + "categoryId": 4, + "url": "http://www.zappos.com/", + "companyId": "zappos" + }, + "zdassets.com": { + "name": "Zendesk CDN", + "categoryId": 8, + "url": "http://www.zendesk.com/", + "companyId": "zendesk" + }, + "zebestof.com": { + "name": "Zebestof", + "categoryId": 4, + "url": "http://www.zebestof.com/en/home/", + "companyId": "zebestof" + }, + "zedo": { + "name": "Zedo", + "categoryId": 4, + "url": "http://www.zedo.com/", + "companyId": "zedo" + }, + "zemanta": { + "name": "Zemanta", + "categoryId": 2, + "url": "http://www.zemanta.com/", + "companyId": "zemanta" + }, + "zencoder": { + "name": "Zencoder", + "categoryId": 0, + "url": "https://zencoder.com/en/", + "companyId": "zencoder" + }, + "zendesk": { + "name": "Zendesk", + "categoryId": 2, + "url": "http://www.zendesk.com/", + "companyId": "zendesk" + }, + "zergnet": { + "name": "ZergNet", + "categoryId": 2, + "url": "http://www.zergnet.com/info", + "companyId": "zergnet" + }, + "zero.kz": { + "name": "ZERO.kz", + "categoryId": 6, + "url": "http://zero.kz/", + "companyId": "neolabs_zero" + }, + "zeta": { + "name": "Zeta", + "categoryId": 2, + "url": "https://zetaglobal.com/", + "companyId": "zeta" + }, + "zeusclicks": { + "name": "ZeusClicks", + "categoryId": 4, + "url": "http://zeusclicks.com/", + "companyId": "zeusclicks", + "source": "AdGuard" + }, + "ziff_davis": { + "name": "Ziff Davis", + "categoryId": 4, + "url": "https://www.ziffdavis.com/", + "companyId": "ziff_davis" + }, + "zift_solutions": { + "name": "Zift Solutions", + "categoryId": 6, + "url": "https://ziftsolutions.com/", + "companyId": "zift_solutions" + }, + "zimbio.com": { + "name": "Zimbio", + "categoryId": 8, + "url": "http://www.zimbio.com/", + "companyId": "livinglymedia", + "source": "AdGuard" + }, + "zippyshare_widget": { + "name": "Zippyshare Widget", + "categoryId": 2, + "url": "http://www.zippyshare.com", + "companyId": "zippyshare" + }, + "zmags": { + "name": "Zmags", + "categoryId": 6, + "url": "https://zmags.com/", + "companyId": "zmags" + }, + "zmctrack.net": { + "name": "zmctrack.net", + "categoryId": 11, + "url": null, + "companyId": null + }, + "zog.link": { + "name": "zog.link", + "categoryId": 11, + "url": null, + "companyId": null + }, + "zoho": { + "name": "Zoho", + "categoryId": 6, + "url": "https://www.zohocorp.com/index.html", + "companyId": "zoho_corp" + }, + "zononi.com": { + "name": "zononi.com", + "categoryId": 3, + "url": null, + "companyId": null + }, + "zopim": { + "name": "Zopim", + "categoryId": 2, + "url": "http://www.zopim.com/", + "companyId": "zendesk" + }, + "zukxd6fkxqn.com": { + "name": "zukxd6fkxqn.com", + "categoryId": 11, + "url": null, + "companyId": null + }, + "zwaar": { + "name": "Zwaar", + "categoryId": 4, + "url": "http://www.zwaar.org", + "companyId": "zwaar" + }, + "zypmedia": { + "name": "ZypMedia", + "categoryId": 4, + "url": "http://www.zypmedia.com/", + "companyId": "zypmedia" + } + }, + "trackerDomains": { + "mmtro.com": "1000mercis", + "creative-serving.com": "161media", + "p161.net": "161media", + "analytics.163.com": "163", + "1822direkt.de": "1822direkt.de", + "1dmp.io": "1dmp.io", + "opecloud.com": "1plusx", + "1sponsor.com": "1sponsor", + "tm.dentsu.de": "1tag", + "1and1.com": "1und1", + "1und1.de": "1und1", + "uicdn.com": "1und1", + "website-start.de": "1und1", + "24-ads.com": "24-ads.com", + "247-inc.net": "24_7", + "d1af033869koo7.cloudfront.net": "24_7", + "counter.24log.ru": "24log", + "24smi.net": "24smi", + "24smi.org": "24smi", + "2leep.com": "2leep", + "33across.com": "33across", + "3dstats.com": "3dstats", + "3gpp.org": "3gpp", + "3gppnetwork.org": "3gpp", + "4cdn.org": "4chan", + "4finance.com": "4finance_com", + "4wnet.com": "4w_marketplace", + "d3aa0ztdn3oibi.cloudfront.net": "500friends", + "51.la": "51.la", + "5min.com": "5min_media", + "d1lm7kd3bd3yo9.cloudfront.net": "6sense", + "grepdata.com": "6sense", + "77tracking.com": "77tracking", + "swm.digital": "7plus", + "7tv.de": "7tv.de", + "888media.net": "888media", + "hit.8digits.com": "8digits", + "94j7afz2nr.xyz": "94j7afz2nr.xyz", + "statsanalytics.com": "99stats", + "a3cloud.net": "a3cloud_net", + "a8.net": "a8", + "aaxads.com": "aaxads.com", + "abtasty.com": "ab_tasty", + "d1447tq2m68ekg.cloudfront.net": "ab_tasty", + "ab.co": "abc", + "abc-cdn.net.au": "abc", + "abc-host.net": "abc", + "abc-host.net.au": "abc", + "abc-prod.net.au": "abc", + "abc-stage.net.au": "abc", + "abc-test.net.au": "abc", + "abc.net.au": "abc", + "abcaustralia.net.au": "abc", + "abcradio.net.au": "abc", + "ablida.de": "ablida", + "ablida.net": "ablida", + "durasite.net": "accelia", + "accengage.net": "accengage", + "ax.xrea.com": "accessanalyzer", + "accesstrade.net": "accesstrade", + "agcdn.com": "accord_group", + "accmgr.com": "accordant_media", + "p-td.com": "accuen_media", + "acestream.net": "acestream.net", + "acint.net": "acint.net", + "acloudimages.com": "acloudimages", + "acpm.fr": "acpm.fr", + "acquia.com": "acquia.com", + "ziyu.net": "acrweb", + "actionpay.ru": "actionpay", + "adnwb.ru": "actionpay", + "adonweb.ru": "actionpay", + "active-agent.com": "active_agent", + "trackcmp.net": "active_campaign", + "active-srv02.de": "active_performance", + "active-tracking.de": "active_performance", + "activeconversion.com": "activeconversion", + "a-cast.jp": "activecore", + "activemeter.com": "activemeter", + "go.activengage.com": "activengage", + "actonsoftware.com": "acton", + "acuityplatform.com": "acuity_ads", + "acxiom-online.com": "acxiom", + "acxiom.com": "acxiom", + "ad-blocker.org": "ad-blocker.org", + "ads.ad-center.com": "ad-center", + "ad-delivery.net": "ad-delivery.net", + "ad-sys.com": "ad-sys", + "adagionet.com": "ad.agio", + "ad2click.go2cloud.org": "ad2click", + "ad2games.com": "ad2games", + "ad360.vn": "ad360", + "ads.ad4game.com": "ad4game", + "ad4mat.ar": "ad4mat", + "ad4mat.at": "ad4mat", + "ad4mat.be": "ad4mat", + "ad4mat.bg": "ad4mat", + "ad4mat.br": "ad4mat", + "ad4mat.ch": "ad4mat", + "ad4mat.co.uk": "ad4mat", + "ad4mat.cz": "ad4mat", + "ad4mat.de": "ad4mat", + "ad4mat.dk": "ad4mat", + "ad4mat.es": "ad4mat", + "ad4mat.fi": "ad4mat", + "ad4mat.fr": "ad4mat", + "ad4mat.gr": "ad4mat", + "ad4mat.hu": "ad4mat", + "ad4mat.it": "ad4mat", + "ad4mat.mx": "ad4mat", + "ad4mat.net": "ad4mat", + "ad4mat.nl": "ad4mat", + "ad4mat.no": "ad4mat", + "ad4mat.pl": "ad4mat", + "ad4mat.ro": "ad4mat", + "ad4mat.ru": "ad4mat", + "ad4mat.se": "ad4mat", + "ad4mat.tr": "ad4mat", + "ad6.fr": "ad6media", + "ad6media.co.uk": "ad6media", + "ad6media.com": "ad6media", + "ad6media.es": "ad6media", + "ad6media.fr": "ad6media", + "a2dfp.net": "ad_decisive", + "addynamo.net": "ad_dynamo", + "ebis.ne.jp": "ad_ebis", + "adlightning.com": "ad_lightning", + "admagnet.net": "ad_magnet", + "amimg.net": "ad_magnet", + "adspirit.de": "ad_spirit", + "adspirit.net": "ad_spirit", + "adac.de": "adac_de", + "adacado.com": "adacado", + "ozonemedia.com": "adadyn", + "adrtx.net": "adality_gmbh", + "adalliance.io": "adalliance.io", + "adalyser.com": "adalyser.com", + "adaos-ads.net": "adaos", + "adap.tv": "adap.tv", + "smrtlnks.com": "adaptiveblue_smartlinks", + "yieldoptimizer.com": "adara_analytics", + "adnetwork.adasiaholdings.com": "adasia_holdings", + "adbetclickin.pink": "adbetclickin.pink", + "adbetnet.com": "adbetnet.com", + "adblade.com": "adblade.com", + "adbooth.com": "adbooth", + "adbooth.net": "adbooth", + "adbox.lv": "adbox", + "adbrn.com": "adbrain", + "adbrite.com": "adbrite", + "adbull.com": "adbull", + "adbutler.com": "adbutler", + "adc-serv.net": "adc_media", + "adc-srv.net": "adc_media", + "adcash.com": "adcash", + "vuroll.in": "adchakra", + "acs86.com": "adchina", + "csbew.com": "adchina", + "irs09.com": "adchina", + "adcito.com": "adcito", + "adcitomedia.com": "adcito", + "adclear.net": "adclear", + "swift.adclerks.com": "adclerks", + "adclickmedia.com": "adclickmedia", + "adclickzone.go2cloud.org": "adclickzone", + "ad-cloud.jp": "adcloud", + "admarvel.s3.amazonaws.com": "adcolony", + "ads.admarvel.com": "adcolony", + "adcolony.com": "adcolony", + "adrdgt.com": "adconion", + "amgdgt.com": "adconion", + "adcrowd.com": "adcrowd", + "shop2market.com": "adcurve", + "addtocalendar.com": "add_to_calendar", + "dpmsrv.com": "addaptive", + "yagiay.com": "addefend", + "addfreestats.com": "addfreestats", + "addinto.com": "addinto", + "addshoppers.com": "addshoppers", + "shop.pe": "addshoppers", + "addthis.com": "addthis", + "addthiscdn.com": "addthis", + "addthisedge.com": "addthis", + "b2btracking.addvalue.de": "addvalue", + "addyon.com": "addyon", + "adeasy.ru": "adeasy", + "ipredictive.com": "adelphic", + "adengage.com": "adengage", + "adespresso.com": "adespresso", + "adexcite.com": "adexcite", + "adextent.com": "adextent", + "adf.ly": "adf.ly", + "adfalcon.com": "adfalcon", + "adfoc.us": "adfocus", + "js.adforgames.com": "adforgames", + "adform.net": "adform", + "adformdsp.net": "adform", + "seadform.net": "adform", + "adfox.ru": "adfox", + "adwolf.ru": "adfox", + "adfreestyle.pl": "adfreestyle", + "adfront.org": "adfront", + "adfrontiers.com": "adfrontiers", + "adgebra.co.in": "adgebra", + "adgenie.co.uk": "adgenie", + "ad.adgile.com": "adgile", + "ad.antventure.com": "adgile", + "adglare.net": "adglare.net", + "adsafety.net": "adglue", + "smartadcheck.de": "adgoal", + "smartredirect.de": "adgoal", + "adgorithms.com": "adgorithms", + "adgoto.com": "adgoto", + "adguard.com": "adguard", + "adguard.app": "adguard", + "adguard.info": "adguard", + "adguard.io": "adguard", + "adguard.org": "adguard", + "adtidy.org": "adguard", + "agrd.io": "adguard", + "agrd.eu": "adguard", + "adguard-dns.com": "adguard_dns", + "adguard-dns.io": "adguard_dns", + "adguard-vpn.com": "adguard_vpn", + "adguard-vpn.online": "adguard_vpn", + "adguardvpn.com": "adguard_vpn", + "adhands.ru": "adhands", + "adhese.be": "adhese", + "adhese.com": "adhese", + "adhese.net": "adhese", + "adhitzads.com": "adhitz", + "adhood.com": "adhood", + "afy11.net": "adify", + "cdn.adikteev.com": "adikteev", + "adimpact.com": "adimpact", + "adinch.com": "adinch", + "adition.com": "adition", + "adjal.com": "adjal", + "cdn.adjs.net": "adjs", + "adjug.com": "adjug", + "adjust.com": "adjust", + "adj.st": "adjust", + "adjust.io": "adjust", + "adjust.net.in": "adjust", + "adjust.world": "adjust", + "apptrace.com": "adjust", + "adk2.com": "adk2", + "cdn.adsrvmedia.com": "adk2", + "cdn.cdnrl.com": "adk2", + "adklip.com": "adklip", + "adkengage.com": "adknowledge", + "adknowledge.com": "adknowledge", + "bidsystem.com": "adknowledge", + "blogads.com": "adknowledge", + "cubics.com": "adknowledge", + "yarpp.org": "adknowledge", + "adsearch.adkontekst.pl": "adkontekst", + "netsprint.eu": "adkontekst.pl", + "adlabs.ru": "adlabs", + "clickiocdn.com": "adlabs", + "luxup.ru": "adlabs", + "mixmarket.biz": "adlabs", + "ad-serverparc.nl": "adlantic", + "adimg.net": "adlantis", + "adlantis.jp": "adlantis", + "cdn.adless.io": "adless", + "api.publishers.adlive.io": "adlive_header_bidding", + "adlooxtracking.com": "adloox", + "adx1.com": "admachine", + "adman.gr": "adman", + "adman.in.gr": "adman", + "admanmedia.com": "adman_media", + "admantx.com": "admantx.com", + "admaster.net": "admaster", + "cdnmaster.com": "admaster", + "admaster.com.cn": "admaster.cn", + "admasterapi.com": "admaster.cn", + "admatic.com.tr": "admatic", + "ads5.admatic.com.tr": "admatic", + "cdn2.admatic.com.tr": "admatic", + "lib-3pas.admatrix.jp": "admatrix", + "admaxserver.com": "admax", + "admaxim.com": "admaxim", + "admaya.in": "admaya", + "admedia.com": "admedia", + "adizio.com": "admedo_com", + "admedo.com": "admedo_com", + "admeira.ch": "admeira.ch", + "admeld.com": "admeld", + "admeo.ru": "admeo", + "admaym.com": "admeta", + "atemda.com": "admeta", + "admicro.vn": "admicro", + "vcmedia.vn": "admicro", + "admitad.com": "admitad.com", + "admixer.net": "admixer", + "admixer.com": "admixer", + "admized.com": "admized", + "admo.tv": "admo.tv", + "a.admob.com": "admob", + "mm.admob.com": "admob", + "mmv.admob.com": "admob", + "p.admob.com": "admob", + "run.admost.com": "admost", + "dmmotion.com": "admotion", + "nspmotion.com": "admotion", + "admulti.com": "admulti", + "adnegah.net": "adnegah", + "adnet.vn": "adnet", + "adnet.biz": "adnet.de", + "adnet.de": "adnet.de", + "adclick.lt": "adnet_media", + "adnet.lt": "adnet_media", + "ad.adnetwork.net": "adnetwork.net", + "adnetworkperformance.com": "adnetworkperformance.com", + "adserver.adnexio.com": "adnexio", + "adnium.com": "adnium.com", + "heias.com": "adnologies", + "smaclick.com": "adnow", + "st-n.ads3-adnow.com": "adnow", + "adnymics.com": "adnymics", + "adobe.com": "adobe_audience_manager", + "demdex.net": "adobe_audience_manager", + "everestjs.net": "adobe_audience_manager", + "everesttech.net": "adobe_audience_manager", + "adobe.io": "adobe_developer", + "scene7.com": "adobe_dynamic_media", + "adobedtm.com": "adobe_dynamic_tag_management", + "2o7.net": "adobe_experience_cloud", + "du8783wkf05yr.cloudfront.net": "adobe_experience_cloud", + "hitbox.com": "adobe_experience_cloud", + "imageg.net": "adobe_experience_cloud", + "nedstat.com": "adobe_experience_cloud", + "omtrdc.net": "adobe_experience_cloud", + "sitestat.com": "adobe_experience_cloud", + "adobedc.net": "adobe_experience_league", + "adobelogin.com": "adobe_login", + "adobetag.com": "adobe_tagmanager", + "typekit.com": "adobe_typekit", + "typekit.net": "adobe_typekit", + "adocean.pl": "adocean", + "dmtry.com": "adometry", + "adomik.com": "adomik", + "adcde.com": "adon_network", + "addlvr.com": "adon_network", + "adfeedstrk.com": "adon_network", + "adtrgt.com": "adon_network", + "bannertgt.com": "adon_network", + "cptgt.com": "adon_network", + "cpvfeed.com": "adon_network", + "cpvtgt.com": "adon_network", + "mygeek.com": "adon_network", + "popcde.com": "adon_network", + "sdfje.com": "adon_network", + "urtbk.com": "adon_network", + "adonion.com": "adonion", + "t.adonly.com": "adonly", + "adoperator.com": "adoperator", + "adoric.com": "adoric", + "adorika.com": "adorika", + "adorika.net": "adorika", + "adosia.com": "adosia", + "adotmob.com": "adotmob.com", + "adotube.com": "adotube", + "adparlor.com": "adparlor", + "adparlour.com": "adparlor", + "a4p.adpartner.pro": "adpartner", + "adpeepshosted.com": "adpeeps", + "adperfect.com": "adperfect", + "adperium.com": "adperium", + "adpilot.at": "adpilot", + "erne.co": "adpilot", + "adplan-ds.com": "adplan", + "advg.jp": "adplan", + "c.p-advg.com": "adplan", + "adplus.co.id": "adplus", + "adprofex.com": "adprofex", + "ads2.bid": "adprofex", + "adframesrc.com": "adprofy", + "adserve.adpulse.ir": "adpulse", + "ads.adpv.com": "adpv", + "adreactor.com": "adreactor", + "adrecord.com": "adrecord", + "adrecover.com": "adrecover", + "ad.vcm.jp": "adresult", + "adresult.jp": "adresult", + "adriver.ru": "adriver", + "adroll.com": "adroll", + "adrom.net": "adrom", + "txt.eu": "adrom", + "adru.net": "adru.net", + "adrunnr.com": "adrunnr", + "adsame.com": "adsame", + "adsbookie.com": "adsbookie", + "adscale.de": "adscale", + "adscience.nl": "adscience", + "adsco.re": "adsco.re", + "adsensecamp.com": "adsensecamp", + "adserverpub.com": "adserverpub", + "online.adservicemedia.dk": "adservice_media", + "adsfactor.net": "adsfactor", + "ads.doclix.com": "adside", + "adskeeper.co.uk": "adskeeper", + "ssp.adskom.com": "adskom", + "adslot.com": "adslot", + "adsnative.com": "adsnative", + "adsniper.ru": "adsniper.ru", + "adspeed.com": "adspeed", + "adspeed.net": "adspeed", + "o333o.com": "adspyglass", + "adstage-analytics.herokuapp.com": "adstage", + "code.adstanding.com": "adstanding", + "adstars.co.id": "adstars", + "ad-stir.com": "adstir", + "4dsply.com": "adsupply", + "cdn.engine.adsupply.com": "adsupply", + "trklnks.com": "adsupply", + "adswizz.com": "adswizz", + "adtaily.com": "adtaily", + "adtaily.pl": "adtaily", + "adtarget.me": "adtarget.me", + "adtech.de": "adtech", + "adtechus.com": "adtech", + "adtegrity.net": "adtegrity", + "adtpix.com": "adtegrity", + "adtelligence.de": "adtelligence.de", + "adentifi.com": "adtheorent", + "adthink.com": "adthink", + "advertstream.com": "adthink", + "audienceinsights.net": "adthink", + "adtiger.de": "adtiger", + "adtimaserver.vn": "adtima", + "adtng.com": "adtng.com", + "adtoma.com": "adtoma", + "adtomafusion.com": "adtoma", + "adtr02.com": "adtr02.com", + "track.adtraction.com": "adtraction", + "adtraxx.de": "adtraxx", + "adtriba.com": "adtriba.com", + "adtrue.com": "adtrue", + "adtrustmedia.com": "adtrustmedia", + "ad.adtube.ir": "adtube", + "awempire.com": "adult_webmaster_empire", + "dditscdn.com": "adult_webmaster_empire", + "livejasmin.com": "adult_webmaster_empire", + "adultadworld.com": "adultadworld", + "adworldmedia.com": "adultadworld", + "adup-tech.com": "adup-tech.com", + "advaction.ru": "advaction", + "aucourant.info": "advaction", + "schetu.net": "advaction", + "dqfw2hlp4tfww.cloudfront.net": "advalo", + "ahcdn.com": "advanced_hosters", + "pix-cdn.org": "advanced_hosters", + "s3.advarkads.com": "advark", + "adventori.com": "adventori", + "adnext.fr": "adverline", + "adverline.com": "adverline", + "surinter.net": "adverline", + "adversaldisplay.com": "adversal", + "adversalservers.com": "adversal", + "go.adversal.com": "adversal", + "adverserve.net": "adverserve", + "ad.adverteerdirect.nl": "adverteerdirect", + "adverticum.net": "adverticum", + "advertise.com": "advertise.com", + "advertisespace.com": "advertisespace", + "adsdk.com": "advertising.com", + "advertising.com": "advertising.com", + "aol.com": "advertising.com", + "atwola.com": "advertising.com", + "pictela.net": "advertising.com", + "verizonmedia.com": "advertising.com", + "advertlets.com": "advertlets", + "advertserve.com": "advertserve", + "advidi.com": "advidi", + "am10.ru": "advmaker.ru", + "am15.net": "advmaker.ru", + "advolution.de": "advolution", + "adwebster.com": "adwebster", + "ads.adwitserver.com": "adwit", + "adworx.at": "adworx.at", + "adworxs.net": "adworxs.net", + "adxion.com": "adxion", + "adxpansion.com": "adxpansion", + "ads.adxpose.com": "adxpose", + "event.adxpose.com": "adxpose", + "servedby.adxpose.com": "adxpose", + "adxprtz.com": "adxprtz.com", + "adyoulike.com": "adyoulike", + "omnitagjs.com": "adyoulike", + "adzerk.net": "adzerk", + "adzly.com": "adzly", + "aemediatraffic.com": "aemediatraffic", + "hprofits.com": "aemediatraffic", + "amxdt.com": "aerify_media", + "aerisapi.com": "aeris_weather", + "aerisweather.com": "aeris_weather", + "affectv.com": "affectv", + "go.affec.tv": "affectv", + "hybridtheory.com": "affectv", + "affilbox.com": "affilbox", + "affilbox.cz": "affilbox", + "track.affiliate-b.com": "affiliate-b", + "affiliate4you.nl": "affiliate4you", + "ads.affbuzzads.com": "affiliatebuzz", + "affiliatefuture.com": "affiliatefuture", + "affiliatelounge.com": "affiliatelounge", + "affiliation-france.com": "affiliation_france", + "affiliator.com": "affiliator", + "affiliaweb.fr": "affiliaweb", + "banner-rotation.com": "affilinet", + "webmasterplan.com": "affilinet", + "affimax.de": "affimax", + "affinity.com": "affinity", + "countby.com": "affinity.by", + "affiz.net": "affiz_cpm", + "pml.afftrack.com": "afftrack", + "afgr2.com": "afgr2.com", + "v2.afilio.com.br": "afilio", + "afsanalytics.com": "afs_analystics", + "ads.aftonbladet.se": "aftonbladet_ads", + "aftv-serving.bid": "aftv-serving.bid", + "agkn.com": "aggregate_knowledge", + "agilone.com": "agilone", + "adview.pl": "agora", + "pingagenow.com": "ahalogy", + "aimediagroup.com": "ai_media_group", + "advombat.ru": "aidata", + "aidata.io": "aidata", + "aim4media.com": "aim4media", + "muscache.com": "airbnb", + "musthird.com": "airbnb", + "airbrake.io": "airbrake", + "airpr.com": "airpr.com", + "ab.airpush.com": "airpush", + "abmr.net": "akamai_technologies", + "akamai.net": "akamai_technologies", + "akamaihd.net": "akamai_technologies", + "akamaized.net": "akamai_technologies", + "akstat.io": "akamai_technologies", + "edgekey.net": "akamai_technologies", + "edgesuite.net": "akamai_technologies", + "imiclk.com": "akamai_technologies", + "akadns.net": "akamai_technologies", + "akamaiedge.net": "akamai_technologies", + "akaquill.net": "akamai_technologies", + "akamoihd.net": "akamoihd.net", + "adn-d.sp.gmossp-sp.jp": "akane", + "akanoo.com": "akanoo", + "akavita.com": "akavita", + "ads.albawaba.com": "al_bawaba_advertising", + "serve.albacross.com": "albacross", + "aldi-international.com": "aldi-international.com", + "alenty.com": "alenty", + "alephd.com": "alephd.com", + "alexametrics.com": "alexa_metrics", + "d31qbv1cthcecs.cloudfront.net": "alexa_metrics", + "d5nxst8fruw4z.cloudfront.net": "alexa_metrics", + "alexa.com": "alexa_traffic_rank", + "algolia.com": "algolia.net", + "algolia.net": "algolia.net", + "algovid.com": "algovid.com", + "alibaba.com": "alibaba.com", + "alicdn.com": "alibaba.com", + "aliapp.org": "alibaba.com", + "alibabachengdun.com": "alibaba.com", + "alibabausercontent.com": "alibaba.com", + "aliexpress.com": "alibaba.com", + "alikunlun.com": "alibaba.com", + "aliyuncs.com": "alibaba.com", + "alibabacloud.com": "alibaba_cloud", + "alibabadns.com": "alibaba_cloud", + "aliyun.com": "alibaba_cloud", + "ucweb.com": "alibaba_ucbrowser", + "alipay.com": "alipay.com", + "alipayobjects.com": "alipay.com", + "websitealive.com": "alivechat", + "allegroimg.com": "allegro.pl", + "allegrostatic.com": "allegro.pl", + "allegrostatic.pl": "allegro.pl", + "ngacm.com": "allegro.pl", + "ngastatic.com": "allegro.pl", + "i.btg360.com.br": "allin", + "allo-pages.fr": "allo-pages.fr", + "allotraffic.com": "allotraffic", + "edge.alluremedia.com.au": "allure_media", + "allyes.com": "allyes", + "inputs.alooma.com": "alooma", + "arena.altitude-arena.com": "altitude_digital", + "amadesa.com": "amadesa", + "amap.com": "amap", + "amazon.ca": "amazon", + "amazon.co.jp": "amazon", + "amazon.co.uk": "amazon", + "amazon.com": "amazon", + "amazon.de": "amazon", + "amazon.es": "amazon", + "amazon.fr": "amazon", + "amazon.it": "amazon", + "d3io1k5o0zdpqr.cloudfront.net": "amazon", + "a2z.com": "amazon", + "aamazoncognito.com": "amazon", + "amazon-corp.com": "amazon", + "amazon-dss.com": "amazon", + "amazon.com.au": "amazon", + "amazon.com.mx": "amazon", + "amazon.dev": "amazon", + "amazon.in": "amazon", + "amazon.nl": "amazon", + "amazon.sa": "amazon", + "amazonbrowserapp.co.uk": "amazon", + "amazonbrowserapp.es": "amazon", + "amazoncrl.com": "amazon", + "firetvcaptiveportal.com": "amazon", + "ntp-fireos.com": "amazon", + "amazon-adsystem.com": "amazon_adsystem", + "serving-sys.com": "amazon_adsystem", + "sizmek.com": "amazon_adsystem", + "assoc-amazon.ca": "amazon_associates", + "assoc-amazon.co.uk": "amazon_associates", + "assoc-amazon.com": "amazon_associates", + "assoc-amazon.de": "amazon_associates", + "assoc-amazon.fr": "amazon_associates", + "assoc-amazon.jp": "amazon_associates", + "images-amazon.com": "amazon_cdn", + "media-amazon.com": "amazon_cdn", + "ssl-images-amazon.com": "amazon_cdn", + "amazontrust.com": "amazon_cdn", + "associates-amazon.com": "amazon_cdn", + "cloudfront.net": "amazon_cloudfront", + "ota-cloudfront.net": "amazon_cloudfront", + "axx-eu.amazon-adsystem.com": "amazon_mobile_ads", + "amazonpay.com": "amazon_payments", + "payments-amazon.com": "amazon_payments", + "amazonpay.in": "amazon_payments", + "aiv-cdn.net": "amazon_video", + "aiv-delivery.net": "amazon_video", + "amazonvideo.com": "amazon_video", + "pv-cdn.net": "amazon_video", + "primevideo.com": "amazon_video", + "amazonaws.com": "amazon_web_services", + "amazonwebservices.com": "amazon_web_services", + "awsstatic.com": "amazon_web_services", + "adnetwork.net.vn": "ambient_digital", + "adnetwork.vn": "ambient_digital", + "ambientplatform.vn": "ambient_digital", + "amgload.net": "amgload.net", + "amoad.com": "amoad", + "ad.amgdgt.com": "amobee", + "ads.amgdgt.com": "amobee", + "amobee.com": "amobee", + "collective-media.net": "amp_platform", + "amplitude.com": "amplitude", + "d24n15hnbwhuhn.cloudfront.net": "amplitude", + "ampproject.org": "ampproject.org", + "anametrix.net": "anametrix", + "ancestrycdn.com": "ancestry_cdn", + "ancoraplatform.com": "ancora", + "android.com": "android", + "anetwork.ir": "anetwork", + "aniview.com": "aniview.com", + "a-ads.com": "anonymousads", + "anormal-tracker.de": "anormal_tracker", + "answerscloud.com": "answers_cloud_service", + "anthill.vn": "ants", + "ants.vn": "ants", + "rt.analytics.anvato.net": "anvato", + "tkx2-prod.anvato.net": "anvato", + "w3.cdn.anvato.net": "anvato", + "player.anyclip.com": "anyclip", + "video-loader.com": "aol_be_on", + "aolcdn.com": "aol_cdn", + "isp.netscape.com": "aol_cdn", + "apa.at": "apa.at", + "apester.com": "apester", + "apicit.net": "apicit.net", + "carrierzone.com": "aplus_analytics", + "appcenter.ms": "appcenter", + "appcues.com": "appcues", + "appdynamics.com": "appdynamics", + "de8of677fyt0b.cloudfront.net": "appdynamics", + "eum-appdynamics.com": "appdynamics", + "jscdn.appier.net": "appier", + "apple.com": "apple", + "aaplimg.com": "apple", + "apple-cloudkit.com": "apple", + "apple-dns.net": "apple", + "apple-livephotoskit.com": "apple", + "apple-mapkit.com": "apple", + "apple.news": "apple", + "apzones.com": "apple", + "cdn-apple.com": "apple", + "icloud-content.com": "apple", + "icloud.com": "apple", + "icons.axm-usercontent-apple.com": "apple", + "itunes.com": "apple", + "me.com": "apple", + "mzstatic.com": "apple", + "safebrowsing.apple": "apple", + "safebrowsing.g.applimg.com": "apple", + "iadsdk.apple.com": "apple_ads", + "applifier.com": "applifier", + "assets.applovin.com": "applovin", + "applovin.com": "applovin", + "applvn.com": "applovin", + "appmetrx.com": "appmetrx", + "adnxs.com": "appnexus", + "adnxs.net": "appnexus", + "appsflyer.com": "appsflyer", + "appsflyersdk.com": "appsflyer", + "adne.tv": "apptv", + "readserver.net": "apptv", + "www.apture.com": "apture", + "arcpublishing.com": "arcpublishing", + "ard.de": "ard.de", + "areyouahuman.com": "are_you_a_human", + "arkoselabs.com": "arkoselabs.com", + "art19.com": "art19", + "banners.advsnx.net": "artimedia", + "artlebedev.ru": "artlebedev.ru", + "ammadv.it": "aruba_media_marketing", + "arubamediamarketing.it": "aruba_media_marketing", + "cya2.net": "arvato_canvas_fp", + "asambeauty.com": "asambeauty.com", + "ask.com": "ask.com", + "aspnetcdn.com": "aspnetcdn", + "ads.assemblyexchange.com": "assemblyexchange", + "cdn.astronomer.io": "astronomer", + "ati-host.net": "at_internet", + "aticdn.net": "at_internet", + "xiti.com": "at_internet", + "atedra.com": "atedra", + "oadts.com": "atg_group", + "as00.estara.com": "atg_optimization", + "atgsvcs.com": "atg_recommendations", + "adbureau.net": "atlas", + "atdmt.com": "atlas", + "atlassbx.com": "atlas", + "track.roiservice.com": "atlas_profitbuilder", + "atl-paas.net": "atlassian.net", + "atlassian.com": "atlassian.net", + "atlassian.net": "atlassian.net", + "d12ramskps3070.cloudfront.net": "atlassian.net", + "bitbucket.org": "atlassian.net", + "jira.com": "atlassian.net", + "ss-inf.net": "atlassian.net", + "d1xfq2052q7thw.cloudfront.net": "atlassian_marketplace", + "marketplace.atlassian.com": "atlassian_marketplace", + "atomz.com": "atomz_search", + "atsfi.de": "atsfi_de", + "cdn.attracta.com": "attracta", + "locayta.com": "attraqt", + "ads.audience2media.com": "audience2media", + "qwobl.net": "audience_ad_network", + "revsci.net": "audience_science", + "wunderloop.net": "audience_science", + "12mlbe.com": "audiencerate", + "audiencesquare.com": "audiencesquare.com", + "ad.gt": "audiencesquare.com", + "audigent.com": "audiencesquare.com", + "hadronid.net": "audiencesquare.com", + "auditude.com": "auditude", + "audtd.com": "audtd.com", + "cdn.augur.io": "augur", + "aumago.com": "aumago", + "clicktracks.com": "aurea_clicktracks", + "ausgezeichnet.org": "ausgezeichnet_org", + "advertising.gov.au": "australia.gov", + "auth0.com": "auth0", + "ai.autoid.com": "autoid", + "optimost.com": "autonomy", + "oc-track.autonomycloud.com": "autonomy_campaign", + "track.yieldsoftware.com": "autonomy_campaign", + "api.autopilothq.com": "autopilothq", + "autoscout24.com": "autoscout24.com", + "autoscout24.net": "autoscout24.com", + "avail.net": "avail", + "analytics.avanser.com.au": "avanser", + "avmws.com": "avant_metrics", + "avantlink.com": "avantlink", + "ads.avazu.net": "avazu_network", + "avenseo.com": "avenseo", + "adspdbl.com": "avid_media", + "avocet.io": "avocet", + "aweber.com": "aweber", + "awin.com": "awin", + "awin1.com": "awin", + "perfb.com": "awin", + "ad.globe7.com": "axill", + "azadify.com": "azadify", + "azure.com": "azure", + "azure.net": "azure", + "azurefd.net": "azure", + "trafficmanager.net": "azure", + "blob.core.windows.net": "azure_blob_storage", + "azureedge.net": "azureedge.net", + "b2bcontext.ru": "b2bcontext", + "b2bvideo.ru": "b2bvideo", + "babator.com": "babator.com", + "backbeatmedia.com": "back_beat_media", + "widgets.backtype.com": "backtype_widgets", + "bahn.de": "bahn_de", + "img-bahn.de": "bahn_de", + "baidu.com": "baidu_ads", + "baidustatic.com": "baidu_ads", + "bdimg.com": "baidu_static", + "bdstatic.com": "baidu_static", + "baletingo.com": "baletingo.com", + "bangdom.com": "bangdom.com", + "widgets.bankrate.com": "bankrate", + "bannerconnect.net": "banner_connect", + "bannerflow.com": "bannerflow.com", + "bannerplay.com": "bannerplay", + "cdn.bannersnack.com": "bannersnack", + "dn3y71tq7jf07.cloudfront.net": "barilliance", + "getbarometer.s3.amazonaws.com": "barometer", + "basilic.io": "basilic.io", + "batanga.com": "batanga_network", + "t4ft.de": "batch_media", + "bauernative.com": "bauer_media", + "baur.de": "baur.de", + "baynote.net": "baynote_observer", + "bazaarvoice.com": "bazaarvoice", + "bbci.co.uk": "bbci", + "tracking.bd4travel.com": "bd4travel", + "beopinion.com": "be_opinion", + "bfmio.com": "beachfront", + "beaconads.com": "beacon_ad_network", + "beampulse.com": "beampulse.com", + "beanstalkdata.com": "beanstalk_data", + "bebi.com": "bebi", + "beeketing.com": "beeketing.com", + "beeline.ru": "beeline.ru", + "bidr.io": "beeswax", + "tracker.beezup.com": "beezup", + "begun.ru": "begun", + "behavioralengine.com": "behavioralengine", + "belboon.de": "belboon_gmbh", + "cdn.belco.io": "belco", + "belstat.be": "belstat", + "belstat.com": "belstat", + "belstat.de": "belstat", + "belstat.fr": "belstat", + "belstat.nl": "belstat", + "bemobile.ua": "bemobile.ua", + "tag.benchplatform.com": "bench_platform", + "betterttv.net": "betterttv", + "betweendigital.com": "betweendigital.com", + "intencysrv.com": "betweendigital.com", + "bid.run": "bid.run", + "bidgear.com": "bidgear", + "bidswitch.net": "bidswitch", + "exe.bid": "bidswitch", + "bttrack.com": "bidtellect", + "bidtheatre.com": "bidtheatre", + "bidvertiser.com": "bidvertiser", + "bigmobileads.com": "big_mobile", + "bigcommerce.com": "bigcommerce.com", + "bigmir.net": "bigmir.net", + "bigpoint-payment.com": "bigpoint", + "bigpoint.com": "bigpoint", + "bigpoint.net": "bigpoint", + "bpcdn.net": "bigpoint", + "bpsecure.com": "bigpoint", + "bildstatic.de": "bild", + "ad-cdn.bilgin.pro": "bilgin_pro", + "pixel.bilinmedia.net": "bilin", + "bat.r.msn.com": "bing_ads", + "bing.com": "bing_ads", + "bing.net": "bing_ads", + "virtualearth.net": "bing_maps", + "binge.com.au": "binge", + "view.binlayer.com": "binlayer", + "widgets.binotel.com": "binotel", + "esendra.fi": "bisnode", + "bitcoinplus.com": "bitcoin_miner", + "bit.ly": "bitly", + "bitrix.de": "bitrix", + "bitrix.info": "bitrix", + "bitrix.ru": "bitrix", + "bitrix24.com": "bitrix", + "bitrix24.com.br": "bitrix", + "bitwarden.com": "bitwarden", + "traffic.adxprts.com": "bizcn", + "jssr.jd.com": "blackdragon", + "blau.de": "blau.de", + "bnmla.com": "blink_new_media", + "blismedia.com": "blis", + "blogad.com.tw": "blogad", + "blogbang.com": "blogbang", + "www.blogcatalog.com": "blogcatalog", + "track.blogcounter.de": "blogcounter", + "blogfoster.com": "blogfoster.com", + "bloggerads.net": "bloggerads", + "blogher.com": "blogher", + "blogherads.com": "blogher", + "blogimg.jp": "blogimg.jp", + "blogsmithmedia.com": "blogsmithmedia.com", + "blogblog.com": "blogspot_com", + "blogger.com": "blogspot_com", + "blogspot.com": "blogspot_com", + "brcdn.com": "bloomreach", + "brsrvr.com": "bloomreach", + "brtstats.com": "bloomreach", + "offerpoint.net": "blue_cherry_group", + "blueserving.com": "blue_seed", + "blueconic.net": "blueconic.net", + "bluecore.com": "bluecore", + "triggeredmail.appspot.com": "bluecore", + "bkrtx.com": "bluekai", + "bluekai.com": "bluekai", + "adrevolver.com": "bluelithium", + "bluelithium.com": "bluelithium", + "bmmetrix.com": "bluemetrix", + "japanmetrix.jp": "bluemetrix", + "bluenewsupdate.info": "bluenewsupdate.info", + "bluestreak.com": "bluestreak", + "bluetriangletech.com": "bluetriangle", + "btttag.com": "bluetriangle", + "bodelen.com": "bodelen.com", + "tracking.bol.com": "bol_affiliate_program", + "qb.boldapps.net": "bold", + "secure.apps.shappify.com": "bold", + "boldchat.com": "boldchat", + "boltdns.net": "boltdns.net", + "bom.gov.au": "bom", + "ml314.com": "bombora", + "bongacams.com": "bongacams.com", + "bonial.com": "bonial", + "bonialconnect.com": "bonial", + "bonialserviceswidget.de": "bonial", + "boo-box.com": "boo-box", + "booking.com": "booking.com", + "bstatic.com": "booking.com", + "boostbox.com.br": "boost_box", + "boostervideo.ru": "booster_video", + "bootstrapcdn.com": "bootstrap", + "borrango.com": "borrango.com", + "scan.botscanner.com": "botscanner", + "boudja.com": "boudja.com", + "bounceexchange.com": "bounce_exchange", + "bouncex.com": "bouncex", + "bouncex.net": "bouncex", + "j.clickdensity.com": "box_uk", + "boxever.com": "boxever", + "brainient.com": "brainient", + "brainsins.com": "brainsins", + "d2xkqxdy6ewr93.cloudfront.net": "brainsins", + "mobileapptracking.com": "branch", + "app.link": "branch_metrics", + "branch.io": "branch_metrics", + "brandaffinity.net": "brand_affinity", + "go.cpmadvisors.com": "brand_networks", + "optorb.com": "brand_networks", + "brandmetrics.com": "brandmetrics.com", + "brandreachsys.com": "brandreach", + "rtbidder.net": "brandscreen", + "brandwire.tv": "brandwire.tv", + "branica.com": "branica", + "appboycdn.com": "braze", + "braze.com": "braze", + "brealtime.com": "brealtime", + "bridgetrack.com": "bridgetrack", + "brightcove.com": "brightcove", + "brightcove.net": "brightcove_player", + "analytics.brightedge.com": "brightedge", + "munchkin.brightfunnel.com": "brightfunnel", + "brightonclick.com": "brightonclick.com", + "btrll.com": "brightroll", + "p.brilig.com": "brilig", + "brillen.de": "brillen.de", + "broadstreetads.com": "broadstreet", + "bm23.com": "bronto", + "brow.si": "brow.si", + "browser-statistik.de": "browser-statistik", + "browser-update.org": "browser_update", + "btncdn.com": "btncdn.com", + "in.bubblestat.com": "bubblestat", + "brighteroption.com": "buddy_media", + "bufferapp.com": "buffer_button", + "bugherd.com": "bugherd.com", + "bugsnag.com": "bugsnag", + "d2wy8f7a9ursnm.cloudfront.net": "bugsnag", + "bulkhentai.com": "bulkhentai.com", + "bumlam.com": "bumlam.com", + "bunchbox.co": "bunchbox", + "bf-ad.net": "burda", + "bf-tools.net": "burda", + "bstatic.de": "burda_digital_systems", + "burstbeacon.com": "burst_media", + "burstnet.com": "burst_media", + "burt.io": "burt", + "d3q6px0y2suh5n.cloudfront.net": "burt", + "rich-agent.s3.amazonaws.com": "burt", + "richmetrics.com": "burt", + "stats.businessol.com": "businessonline_analytics", + "bttn.io": "button", + "buysellads.com": "buysellads", + "servedby-buysellads.com": "buysellads", + "buzzadexchange.com": "buzzadexchange.com", + "buzzador.com": "buzzador", + "buzzfed.com": "buzzfeed", + "bwbx.io": "bwbx.io", + "bypass.jp": "bypass", + "c1exchange.com": "c1_exchange", + "c3metrics.com": "c3_metrics", + "c3tag.com": "c3_metrics", + "c8.net.ua": "c8_network", + "cackle.me": "cackle.me", + "d1cerpgff739r9.cloudfront.net": "cadreon", + "d1qpxk1wfeh8v1.cloudfront.net": "cadreon", + "callpage.io": "call_page", + "callbackhunter.com": "callbackhunter", + "callmeasurement.com": "callbox", + "callibri.ru": "callibri", + "callrail.com": "callrail", + "calltracking.ru": "calltracking", + "caltat.com": "caltat.com", + "cam-content.com": "cam-content.com", + "camakaroda.com": "camakaroda.com", + "s.edkay.com": "campus_explorer", + "canddi.com": "canddi", + "canonical.com": "canonical", + "canvas.net": "canvas", + "canvasnetwork.com": "canvas", + "du11hjcvx0uqb.cloudfront.net": "canvas", + "kdata.fr": "capitaldata", + "captora.com": "captora", + "edge.capturemedia.network": "capture_media", + "cdn.capturly.com": "capturly", + "route.carambo.la": "carambola", + "carbonads.com": "carbonads", + "carbonads.net": "carbonads", + "fusionads.net": "carbonads", + "cardinalcommerce.com": "cardinal", + "cardlytics.com": "cardlytics", + "cdn.carrotquest.io": "carrot_quest", + "api.cartstack.com": "cartstack", + "caspion.com": "caspion", + "t.castle.io": "castle", + "3gl.net": "catchpoint", + "cbox.ws": "cbox", + "adlog.com.com": "cbs_interactive", + "cbsinteractive.com": "cbs_interactive", + "dw.com.com": "cbs_interactive", + "ccmbg.com": "ccm_benchmark", + "admission.net": "cdk_digital_marketing", + "cdn-net.com": "cdn-net.com", + "cdn13.com": "cdn13.com", + "cdn77.com": "cdn77", + "cdn77.org": "cdn77", + "cdnetworks.com": "cdnetworks.net", + "cdnetworks.net": "cdnetworks.net", + "cdnnetwok.xyz": "cdnnetwok_xyz", + "cdnondemand.org": "cdnondemand.org", + "cdnsure.com": "cdnsure.com", + "cdnvideo.com": "cdnvideo.com", + "cdnwidget.com": "cdnwidget.com", + "cedexis-radar.net": "cedexis_radar", + "cedexis-test.com": "cedexis_radar", + "cedexis.com": "cedexis_radar", + "cedexis.fastlylb.net": "cedexis_radar", + "cedexis.net": "cedexis_radar", + "celebrus.com": "celebrus", + "celtra.com": "celtra", + "cendyn.adtrack.calls.net": "cendyn", + "centraltag.com": "centraltag", + "brand-server.com": "centro", + "speed-trap.nl": "cerberus_speed-trap", + "link.ixs1.net": "certainsource", + "hits.e.cl": "certifica_metric", + "certona.net": "certona", + "res-x.com": "certona", + "gsn.chameleon.ad": "chameleon", + "chango.ca": "chango", + "chango.com": "chango", + "channelintelligence.com": "channel_intelligence", + "cptrack.de": "channel_pilot_solutions", + "channeladvisor.com": "channeladvisor", + "searchmarketing.com": "channeladvisor", + "channelfinder.net": "channelfinder", + "chaordicsystems.com": "chaordic", + "chartbeat.com": "chartbeat", + "chartbeat.net": "chartbeat", + "chartboost.com": "chartboost", + "chaser.ru": "chaser", + "cloud.chatbeacon.io": "chat_beacon", + "chatango.com": "chatango", + "call.chatra.io": "chatra", + "chaturbate.com": "chaturbate.com", + "chatwing.com": "chatwing", + "checkmystats.com.au": "checkmystats", + "chefkoch-cdn.de": "chefkoch_de", + "chefkoch.de": "chefkoch_de", + "tracker.chinmedia.vn": "chin_media", + "chinesean.com": "chinesean", + "chitika.net": "chitika", + "choicestream.com": "choicestream", + "api.getchute.com": "chute", + "media.chute.io": "chute", + "iqcontentplatform.de": "circit", + "data.circulate.com": "circulate", + "p.cityspark.com": "city_spark", + "cityads.ru": "cityads", + "gameleads.ru": "cityads", + "ciuvo.com": "ciuvo.com", + "widget.civey.com": "civey_widgets", + "civicscience.com": "civicscience.com", + "ciweb.ciwebgroup.com": "ciwebgroup", + "clcknads.pro": "clcknads.pro", + "pulseradius.com": "clear_pier", + "clearbit.com": "clearbit.com", + "clearsale.com.br": "clearsale", + "tag.clrstm.com": "clearstream.tv", + "api.clerk.io": "clerk.io", + "cleverpush.com": "clever_push", + "wzrkt.com": "clever_tap", + "cleversite.ru": "cleversite", + "script.click360.io": "click360", + "clickandchat.com": "click_and_chat", + "software.clickback.com": "click_back", + "hit.clickaider.com": "clickaider", + "clickaine.com": "clickaine", + "clickbank.net": "clickbank", + "cbproads.com": "clickbank_proads", + "adtoll.com": "clickbooth", + "clickbooth.com": "clickbooth", + "clickboothlnk.com": "clickbooth", + "clickcease.com": "clickcease", + "clickcertain.com": "clickcertain", + "remarketstats.com": "clickcertain", + "clickdesk.com": "clickdesk", + "analytics.clickdimensions.com": "clickdimensions", + "clickequations.net": "clickequations", + "clickexperts.net": "clickexperts", + "doublemax.net": "clickforce", + "clickinc.com": "clickinc", + "clickintext.net": "clickintext", + "clickky.biz": "clickky", + "9nl.be": "clickmeter", + "9nl.com": "clickmeter", + "9nl.eu": "clickmeter", + "9nl.it": "clickmeter", + "9nl.me": "clickmeter", + "clickmeter.com": "clickmeter", + "clickonometrics.pl": "clickonometrics", + "clickpoint.com": "clickpoint", + "clickpoint.it": "clickpoint", + "clickprotector.com": "clickprotector", + "clickreport.com": "clickreport", + "doogleonduty.com": "clickreport", + "ctn.go2cloud.org": "clicks_thru_networks", + "clicksor.com": "clicksor", + "hatid.com": "clicksor", + "lzjl.com": "clicksor", + "myroitracking.com": "clicksor", + "clicktale.com": "clicktale", + "clicktale.net": "clicktale", + "clicktale.pantherssl.com": "clicktale", + "clicktalecdn.sslcs.cdngc.net": "clicktale", + "clicktripz.com": "clicktripz", + "clickwinks.com": "clickwinks", + "getclicky.com": "clicky", + "staticstuff.net": "clicky", + "clickyab.com": "clickyab", + "clicmanager.fr": "clicmanager", + "eplayer.clipsyndicate.com": "clip_syndicate", + "www.is1.clixgalore.com": "clixgalore", + "clixmetrix.com": "clixmetrix", + "clixsense.com": "clixsense", + "cloud-media.fr": "cloud-media.fr", + "cloudflare.com": "cloudflare", + "cloudflare.net": "cloudflare", + "cloudflare-dm-cmpimg.com": "cloudflare", + "cloudflare-dns.com": "cloudflare", + "cloudflare-ipfs.com": "cloudflare", + "cloudflare-quic.com": "cloudflare", + "cloudflare-terms-of-service-abuse.com": "cloudflare", + "cloudflare.tv": "cloudflare", + "cloudflareaccess.com": "cloudflare", + "cloudflareclient.com": "cloudflare", + "cloudflareinsights.com": "cloudflare", + "cloudflareok.com": "cloudflare", + "cloudflareportal.com": "cloudflare", + "cloudflareresolve.com": "cloudflare", + "cloudflaressl.com": "cloudflare", + "cloudflarestatus.com": "cloudflare", + "cloudflarestream.com": "cloudflare", + "pacloudflare.com": "cloudflare", + "sn-cloudflare.com": "cloudflare", + "videodelivery.net": "cloudflare", + "cloudimg.io": "cloudimage.io", + "cloudinary.com": "cloudinary", + "clovenetwork.com": "clove_network", + "clustrmaps.com": "clustrmaps", + "cnbc.com": "cnbc", + "cnetcontent.com": "cnetcontent.com", + "cnstats.ru": "cnstats", + "cnzz.com": "cnzz.com", + "umeng.com": "cnzz.com", + "acc-hd.de": "coadvertise", + "client.cobrowser.net": "cobrowser", + "codeonclick.com": "codeonclick.com", + "cogocast.net": "cogocast", + "coin-have.com": "coin_have", + "appsha1.cointraffic.io": "coin_traffic", + "authedmine.com": "coinhive", + "coin-hive.com": "coinhive", + "coinhive.com": "coinhive", + "coinurl.com": "coinurl", + "coll1onf.com": "coll1onf.com", + "coll2onf.com": "coll2onf.com", + "service.collarity.com": "collarity", + "static.clmbtech.com": "columbia_online", + "combotag.com": "combotag", + "pdk.theplatform.com": "comcast_technology_solutions", + "theplatform.com": "comcast_technology_solutions", + "comm100.cn": "comm100", + "comm100.com": "comm100", + "cdn-cs.com": "commerce_sciences", + "cdn.mercent.com": "commercehub", + "link.mercent.com": "commercehub", + "commercialvalue.org": "commercialvalue.org", + "afcyhf.com": "commission_junction", + "anrdoezrs.net": "commission_junction", + "apmebf.com": "commission_junction", + "awltovhc.com": "commission_junction", + "emjcd.com": "commission_junction", + "ftjcfx.com": "commission_junction", + "lduhtrp.net": "commission_junction", + "qksz.net": "commission_junction", + "tkqlhce.com": "commission_junction", + "tqlkg.com": "commission_junction", + "yceml.net": "commission_junction", + "communicatorcorp.com": "communicator_corp", + "wowanalytics.co.uk": "communigator", + "c-col.com": "competexl", + "c.compete.com": "competexl", + "complex.com": "complex_media_network", + "complexmedianetwork.com": "complex_media_network", + "comprigo.com": "comprigo", + "comscore.com": "comscore", + "zqtk.net": "comscore", + "conative.de": "conative.de", + "condenast.com": "condenastdigital.com", + "conduit-banners.com": "conduit", + "conduit-data.com": "conduit", + "conduit.com": "conduit", + "confirmit.com": "confirmit", + "congstar.de": "congstar.de", + "connatix.com": "connatix.com", + "connected-by.connectad.io": "connectad", + "cdn.connecto.io": "connecto", + "connexity.net": "connexity", + "cxt.ms": "connexity", + "connextra.com": "connextra", + "rs6.net": "constant_contact", + "serverbid.com": "consumable", + "contactatonce.com": "contact_at_once", + "adrolays.de": "contact_impact", + "c-i.as": "contact_impact", + "df-srv.de": "contact_impact", + "d1uwd25yvxu96k.cloudfront.net": "contactme", + "static.contactme.com": "contactme", + "contaxe.com": "contaxe", + "content.ad": "content.ad", + "ingestion.contentinsights.com": "content_insights", + "contentexchange.me": "contentexchange.me", + "ctfassets.net": "contentful_gmbh", + "contentpass.de": "contentpass", + "contentpass.net": "contentpass", + "contentsquare.net": "contentsquare.net", + "d1aug3dv5magti.cloudfront.net": "contentwrx", + "d39se0h2uvfakd.cloudfront.net": "contentwrx", + "c-on-text.com": "context", + "intext.contextad.pl": "context.ad", + "continum.net": "continum_net", + "s2.contribusourcesyndication.com": "contribusource", + "hits.convergetrack.com": "convergetrack", + "fastclick.net": "conversant", + "mediaplex.com": "conversant", + "mplxtms.com": "conversant", + "cm-commerce.com": "conversio", + "media.conversio.com": "conversio", + "c.conversionlogic.net": "conversion_logic", + "conversionruler.com": "conversionruler", + "conversionsbox.com": "conversions_box", + "conversionsondemand.com": "conversions_on_demand", + "ant.conversive.nl": "conversive", + "convertexperiments.com": "convert", + "d3sjgucddk68ji.cloudfront.net": "convertfox", + "convertro.com": "convertro", + "d1ivexoxmp59q7.cloudfront.net": "convertro", + "conviva.com": "conviva", + "cookieconsent.silktide.com": "cookie_consent", + "cookie-script.com": "cookie_script", + "cookiebot.com": "cookiebot", + "cookieq.com": "cookieq", + "lite.piclens.com": "cooliris", + "copacet.com": "copacet", + "raasnet.com": "coreaudience", + "coremotives.com": "coremotives", + "coull.com": "coull", + "cpmrocket.com": "cpm_rocket", + "cpmprofit.com": "cpmprofit", + "cpmstar.com": "cpmstar", + "captifymedia.com": "cpx.to", + "cpx.to": "cpx.to", + "cqcounter.com": "cq_counter", + "cqq5id8n.com": "cqq5id8n.com", + "cquotient.com": "cquotient.com", + "craftkeys.com": "craftkeys", + "ads.crakmedia.com": "crakmedia_network", + "craktraffic.com": "crakmedia_network", + "crankyads.com": "crankyads", + "crashlytics.com": "crashlytics", + "cetrk.com": "crazy_egg", + "crazyegg.com": "crazy_egg", + "dnn506yrbagrg.cloudfront.net": "crazy_egg", + "creafi-online-media.com": "creafi", + "createjs.com": "createjs", + "creativecommons.org": "creative_commons", + "brandwatch.com": "crimsonhexagon_com", + "crimsonhexagon.com": "crimsonhexagon_com", + "hexagon-analytics.com": "crimsonhexagon_com", + "ctnsnet.com": "crimtan", + "crisp.chat": "crisp", + "crisp.im": "crisp", + "criteo.com": "criteo", + "criteo.net": "criteo", + "p.crm4d.com": "crm4d", + "crossengage.io": "crossengage", + "crosspixel.net": "crosspixel", + "crsspxl.com": "crosspixel", + "crosssell.info": "crosssell.info", + "crossss.com": "crossss", + "widget.crowdignite.com": "crowd_ignite", + "static.crowdscience.com": "crowd_science", + "ss.crowdprocess.com": "crowdprocess", + "our.glossip.nl": "crowdynews", + "widget.breakingburner.com": "crowdynews", + "widget.crowdynews.com": "crowdynews", + "searchg2.crownpeak.net": "crownpeak", + "snippet.omm.crownpeak.com": "crownpeak", + "cryptoloot.pro": "cryptoloot_miner", + "ctnetwork.hu": "ctnetwork", + "adzhub.com": "ctrlshift", + "data.withcubed.com": "cubed", + "cuelinks.com": "cuelinks", + "cdn.cupinteractive.com": "cup_interactive", + "curse.com": "curse.com", + "cursecdn.com": "cursecdn.com", + "assets.customer.io": "customer.io", + "widget.customerly.io": "customerly", + "cxense.com": "cxense", + "cxo.name": "cxo.name", + "cyberwing.co.jp": "cyber_wing", + "cybersource.com": "cybersource", + "cygnus.com": "cygnus", + "da-ads.com": "da-ads.com", + "dailymail.co.uk": "dailymail.co.uk", + "dailymotion.com": "dailymotion", + "dailymotionbus.com": "dailymotion", + "dm-event.net": "dailymotion", + "dmcdn.net": "dailymotion", + "dmxleo.com": "dailymotion_advertising", + "ds1.nl": "daisycon", + "dantrack.net": "dantrack.net", + "dmclick.cn": "darwin_marketing", + "tags.dashboardad.net": "dashboard_ad", + "datacaciques.com": "datacaciques.com", + "datacoral.com": "datacoral", + "abandonaid.com": "datacrushers", + "datacrushers.com": "datacrushers", + "datadome.co": "datadome", + "optimahub.com": "datalicious_datacollector", + "supert.ag": "datalicious_supertag", + "inextaction.net": "datalogix", + "nexac.com": "datalogix", + "datamind.ru": "datamind.ru", + "datatables.net": "datatables", + "adunits.datawrkz.com": "datawrkz", + "dataxpand.script.ag": "dataxpand", + "tc.dataxpand.com": "dataxpand", + "w55c.net": "dataxu", + "datds.net": "datds.net", + "pro-market.net": "datonics", + "displaymarketplace.com": "datran", + "davebestdeals.com": "davebestdeals.com", + "dawandastatic.com": "dawandastatic.com", + "dc-storm.com": "dc_stormiq", + "h4k5.com": "dc_stormiq", + "stormcontainertag.com": "dc_stormiq", + "stormiq.com": "dc_stormiq", + "dcbap.com": "dcbap.com", + "dcmn.com": "dcmn.com", + "statslogger.rocket.persgroep.cloud": "de_persgroep", + "deadlinefunnel.com": "deadline_funnel", + "cc2.dealer.com": "dealer.com", + "d9lq0o81skkdj.cloudfront.net": "dealer.com", + "esm1.net": "dealer.com", + "static.dealer.com": "dealer.com", + "decibelinsight.net": "decibel_insight", + "ads.dedicatedmedia.com": "dedicated_media", + "api.deep.bi": "deep.bi", + "deepintent.com": "deepintent.com", + "defpush.com": "defpush.com", + "deichmann.com": "deichmann.com", + "vxml4.delacon.com.au": "delacon", + "tracking.percentmobile.com": "delivr", + "adaction.se": "delta_projects", + "de17a.com": "delta_projects", + "deluxe.script.ag": "deluxe", + "delvenetworks.com": "delve_networks", + "company-target.com": "demandbase", + "demandbase.com": "demandbase", + "dmd53.com": "demandmedia", + "dmtracker.com": "demandmedia", + "deqwas.net": "deqwas", + "devatics.com": "devatics", + "developermedia.com": "developer_media", + "dapxl.com": "deviantart.net", + "deviantart.net": "deviantart.net", + "my.blueadvertise.com": "dex_platform", + "dgm-au.com": "dgm", + "s2d6.com": "dgm", + "d31y97ze264gaa.cloudfront.net": "dialogtech", + "d3von6il1wr7wo.cloudfront.net": "dianomi", + "dianomi.com": "dianomi", + "dianomioffers.co.uk": "dianomi", + "tag.didit.com": "didit_blizzard", + "track.did-it.com": "didit_maestro", + "privacy-center.org": "didomi", + "digg.com": "digg_widget", + "digicert.com": "digicert_trust_seal", + "phicdn.net": "digicert_trust_seal", + "digidip.net": "digidip", + "digiglitzmarketing.go2cloud.org": "digiglitz", + "wtp101.com": "digilant", + "digioh.com": "digioh", + "lightboxcdn.com": "digioh", + "digitalgov.gov": "digital.gov", + "cookiereports.com": "digital_control_room", + "adtag.cc": "digital_nomads", + "adready.com": "digital_remedy", + "adreadytractions.com": "digital_remedy", + "cpxinteractive.com": "digital_remedy", + "directtrack.com": "digital_river", + "onenetworkdirect.net": "digital_river", + "track.digitalriver.com": "digital_river", + "dwin1.com": "digital_window", + "digiteka.net": "digiteka", + "ultimedia.com": "digiteka", + "digitru.st": "digitrust", + "widget.dihitt.com.br": "dihitt_badge", + "dimml.io": "dimml", + "keywordsconnect.com": "direct_keyword_link", + "directadvert.ru": "directadvert", + "directrev.com": "directrev", + "discordapp.com": "discord", + "disneyplus.com": "disneyplus", + "bamgrid.com": "disneystreaming", + "dssedge.com": "disneystreaming", + "dssott.com": "disneystreaming", + "d81mfvml8p5ml.cloudfront.net": "display_block", + "disqus.com": "disqus", + "disquscdn.com": "disqus", + "disqusads.com": "disqus_ads", + "distiltag.com": "distil_tag", + "districtm.ca": "districtm.io", + "districtm.io": "districtm.io", + "jsrdn.com": "distroscale", + "div.show": "div.show", + "stats.vertriebsassistent.de": "diva", + "tag.divvit.com": "divvit", + "d-msquared.com": "dm2", + "and.co.uk": "dmg_media", + "dmm.co.jp": "dmm", + "ctret.de": "dmwd", + "toolbar.dockvine.com": "dockvine", + "awecr.com": "docler", + "fwbntw.com": "docler", + "s.dogannet.tv": "dogannet", + "domain.glass": "domainglass", + "www.domodomain.com": "domodomain", + "donation-tools.org": "donationtools", + "doofinder.com": "doofinder.com", + "embed.doorbell.io": "doorbell.io", + "dotandad.com": "dotandmedia", + "trackedlink.net": "dotmailer", + "dotmetrics.net": "dotmetrics.net", + "dotomi.com": "dotomi", + "dtmc.com": "dotomi", + "dtmpub.com": "dotomi", + "double.net": "double.net", + "2mdn.net": "doubleclick", + "doublepimp.com": "doublepimp", + "doublepimpssl.com": "doublepimp", + "redcourtside.com": "doublepimp", + "xeontopa.com": "doublepimp", + "zerezas.com": "doublepimp", + "doubleverify.com": "doubleverify", + "wrating.com": "dratio", + "adsymptotic.com": "drawbridge", + "dreame.tech": "dreame_tech", + "dreametech.com": "dreame_tech", + "dreamlab.pl": "dreamlab.pl", + "drift.com": "drift", + "js.driftt.com": "drift", + "getdrip.com": "drip", + "dropbox.com": "dropbox.com", + "dropboxstatic.com": "dropbox.com", + "z5x.net": "dsnr_media_group", + "dsp-rambler.ru": "dsp_rambler", + "m6d.com": "dstillery", + "media6degrees.com": "dstillery", + "dtscout.com": "dtscout.com", + "dd-cdn.multiscreensite.com": "dudamobile", + "px.multiscreensite.com": "dudamobile", + "cdn-0.d41.co": "dun_and_bradstreet", + "cn01.dwstat.cn": "dwstat.cn", + "dynad.net": "dynad", + "dyntrk.com": "dynadmic", + "dyntracker.de": "dynamic_1001_gmbh", + "media01.eu": "dynamic_1001_gmbh", + "content.dl-rms.com": "dynamic_logic", + "dlqm.net": "dynamic_logic", + "questionmarket.com": "dynamic_logic", + "dynamicyield.com": "dynamic_yield", + "beacons.hottraffic.nl": "dynata", + "dynatrace.com": "dynatrace.com", + "dyncdn.me": "dyncdn.me", + "e-planning.net": "e-planning", + "eadv.it": "eadv", + "eanalyzer.de": "eanalyzer.de", + "early-birds.fr": "early_birds", + "cdn.earnify.com": "earnify", + "earnify.com": "earnify_tracker", + "easyads.bg": "easyads", + "easylist.club": "easylist_club", + "classistatic.de": "ebay", + "ebay-us.com": "ebay", + "ebay.com": "ebay", + "ebay.de": "ebay", + "ebayclassifiedsgroup.com": "ebay", + "ebaycommercenetwork.com": "ebay", + "ebaydesc.com": "ebay", + "ebayimg.com": "ebay", + "ebayrtm.com": "ebay", + "ebaystatic.com": "ebay", + "ad.about.co.kr": "ebay_korea", + "adcheck.about.co.kr": "ebay_korea", + "adn.ebay.com": "ebay_partner_network", + "beead.co.uk": "ebuzzing", + "beead.fr": "ebuzzing", + "beead.net": "ebuzzing", + "ebuzzing.com": "ebuzzing", + "ebz.io": "ebuzzing", + "echoenabled.com": "echo", + "eclick.vn": "eclick", + "econda-monitor.de": "econda", + "eco-tag.jp": "ecotag", + "alphacdn.net": "edgio", + "edg.io": "edgio", + "edgecast.com": "edgio", + "edgecastcdn.net": "edgio", + "edgecastdns.net": "edgio", + "sigmacdn.net": "edgio", + "ecustomeropinions.com": "edigitalresearch", + "effectivemeasure.net": "effective_measure", + "effiliation.com": "effiliation", + "egain.net": "egain", + "cloud-emea.analytics-egain.com": "egain_analytics", + "ehi-siegel.de": "ehi-siegel_de", + "ekmpinpoint.com": "ekmpinpoint", + "ekomi.de": "ekomi", + "elasticad.net": "elastic_ad", + "elasticbeanstalk.com": "elastic_beanstalk", + "cloudcell.com": "electronic_arts", + "ea.com": "electronic_arts", + "eamobile.com": "electronic_arts", + "element.io": "element", + "riot.im": "element", + "elicitapp.com": "elicit", + "eloqua.com": "eloqua", + "en25.com": "eloqua", + "eluxer.net": "eluxer_net", + "tracker.emailaptitude.com": "email_aptitude", + "tag.email-attitude.com": "email_attitude", + "app.emarketeer.com": "emarketeer", + "embed.ly": "embed.ly", + "embedly.com": "embed.ly", + "emediate.dk": "emediate", + "emediate.eu": "emediate", + "emediate.se": "emediate", + "emetriq.de": "emetriq", + "e2ma.net": "emma", + "adinsight.co.kr": "emnet", + "colbenson.es": "empathy", + "emsmobile.de": "emsmobile.de", + "sitecompass.com": "encore_metrics", + "enectoanalytics.com": "enecto_analytics", + "trk.enecto.com": "enecto_analytics", + "track.engagesciences.com": "engage_sciences", + "widget.engageya.com": "engageya_widget", + "engagio.com": "engagio", + "engineseeker.com": "engineseeker", + "enquisite.com": "enquisite", + "adtlgc.com": "enreach", + "ats.tumri.net": "ensemble", + "ensighten.com": "ensighten", + "envolve.com": "envolve", + "cdn.callbackkiller.com": "envybox", + "email-reflex.com": "eperflex", + "epicgameads.com": "epic_game_ads", + "trafficmp.com": "epic_marketplace", + "adshost1.com": "epom", + "adshost2.com": "epom", + "epom.com": "epom", + "epoq.de": "epoq", + "banzaiadv.it": "eprice", + "eproof.com": "eproof", + "equitystory.com": "eqs_group", + "eqads.com": "eqworks", + "ero-advertising.com": "eroadvertising", + "eroadvertising.com": "eroadvertising", + "d15qhc0lu1ghnk.cloudfront.net": "errorception", + "errorception.com": "errorception", + "eshopcomp.com": "eshopcomp.com", + "espncdn.com": "espn_cdn", + "esprit.de": "esprit.de", + "cybermonitor.com": "estat", + "estat.com": "estat", + "teste-s3-maycon.s3.amazonaws.com": "etag", + "etahub.com": "etahub.com", + "etargetnet.com": "etarget", + "ethn.io": "ethnio", + "pages.etology.com": "etology", + "sa.etp-prod.com": "etp", + "etracker.com": "etracker", + "etracker.de": "etracker", + "sedotracker.com": "etracker", + "etrigue.com": "etrigue", + "etsystatic.com": "etsystatic", + "eulerian.net": "eulerian", + "eultech.fnac.com": "eulerian", + "ew3.io": "eulerian", + "euroads.dk": "euroads", + "euroads.fi": "euroads", + "euroads.no": "euroads", + "newpromo.europacash.com": "europecash", + "tracker.euroweb.net": "euroweb_counter", + "apptegic.com": "evergage.com", + "evergage.com": "evergage.com", + "listener.everstring.com": "everstring", + "waterfrontmedia.com": "everyday_health", + "betrad.com": "evidon", + "evidon.com": "evidon", + "evisitanalyst.com": "evisit_analyst", + "evisitcs.com": "evisit_analyst", + "websiteperform.com": "evisit_analyst", + "ads.exactdrive.com": "exact_drive", + "exactag.com": "exactag", + "exelator.com": "exelate", + "dynamicoxygen.com": "exitjunction", + "exitjunction.com": "exitjunction", + "exdynsrv.com": "exoclick", + "exoclick.com": "exoclick", + "exosrv.com": "exoclick", + "exoticads.com": "exoticads.com", + "expedia.com": "expedia", + "trvl-px.com": "expedia", + "eccmp.com": "experian", + "audienceiq.com": "experian_marketing_services", + "techlightenment.com": "experian_marketing_services", + "expo-max.com": "expo-max", + "server.exposebox.com": "expose_box", + "sf.exposebox.com": "expose_box_widgets", + "express.co.uk": "express.co.uk", + "d1lp05q4sghme9.cloudfront.net": "expressvpn", + "extreme-dm.com": "extreme_tracker", + "eyenewton.ru": "eye_newton", + "eyeota.net": "eyeota", + "eyereturn.com": "eyereturnmarketing", + "eyeviewads.com": "eyeview", + "ezakus.net": "ezakus", + "f11-ads.com": "f11-ads.com", + "facebook.com": "facebook", + "facebook.net": "facebook", + "graph.facebook.com": "facebook_audience", + "fbcdn.net": "facebook_cdn", + "fbsbx.com": "facebook_cdn", + "facetz.net": "facetz.dca", + "adsfac.eu": "facilitate_digital", + "adsfac.net": "facilitate_digital", + "adsfac.sg": "facilitate_digital", + "adsfac.us": "facilitate_digital", + "faktor.io": "faktor.io", + "thefancy.com": "fancy_widget", + "d1q7pknmpq2wkm.cloudfront.net": "fanplayr", + "fap.to": "fap.to", + "farlightgames.com": "farlight_pte_ltd", + "fastly-insights.com": "fastly_insights", + "fastly.net": "fastlylb.net", + "fastlylb.net": "fastlylb.net", + "fastly-edge.com": "fastlylb.net", + "fastly-masque.net": "fastlylb.net", + "fastpic.ru": "fastpic.ru", + "fmpub.net": "federated_media", + "fby.s3.amazonaws.com": "feedbackify", + "feedbackify.com": "feedbackify", + "feedburner.com": "feedburner.com", + "feedify.de": "feedify", + "feedjit.com": "feedjit", + "log.feedjit.com": "feedjit", + "tracking.feedperfect.com": "feedperfect", + "feedsportal.com": "feedsportal", + "feefo.com": "feefo", + "fidelity-media.com": "fidelity_media", + "fiksu.com": "fiksu", + "filamentapp.s3.amazonaws.com": "filament.io", + "fileserve.xyz": "fileserve", + "tools.financeads.net": "financeads", + "tracker.financialcontent.com": "financial_content", + "findizer.fr": "findizer.fr", + "findologic.com": "findologic.com", + "app-measurement.com": "firebase", + "fcm.googleapis.com": "firebase", + "firebase.com": "firebase", + "firebase.google.com": "firebase", + "firebase.googleapis.com": "firebase", + "firebaseapp.com": "firebase", + "firebaseappcheck.googleapis.com": "firebase", + "firebasedynamiclinks-ipv4.googleapis.com": "firebase", + "firebasedynamiclinks-ipv6.googleapis.com": "firebase", + "firebasedynamiclinks.googleapis.com": "firebase", + "firebaseinappmessaging.googleapis.com": "firebase", + "firebaseinstallations.googleapis.com": "firebase", + "firebaselogging-pa.googleapis.com": "firebase", + "firebaselogging.googleapis.com": "firebase", + "firebaseperusertopics-pa.googleapis.com": "firebase", + "firebaseremoteconfig.googleapis.com": "firebase", + "firebaseio.com": "firebaseio.com", + "firstimpression.io": "first_impression", + "fitanalytics.com": "fit_analytics", + "fivetran.com": "fivetran", + "flagads.net": "flag_ads", + "flagcounter.com": "flag_counter", + "flashnews.com.au": "flash", + "flashtalking.com": "flashtalking", + "flattr.com": "flattr_button", + "flexlinks.com": "flexoffers", + "linkoffers.net": "flexoffers", + "flickr.com": "flickr_badge", + "staticflickr.com": "flickr_badge", + "lflipboard.com": "flipboard", + "flipboard.com": "flipboard", + "flite.com": "flite", + "flixcdn.com": "flixcdn.com", + "flix360.com": "flixmedia", + "flixcar.com": "flixmedia", + "flocktory.com": "flocktory.com", + "flowplayer.org": "flowplayer", + "adingo.jp": "fluct", + "clicken.us": "fluent", + "strcst.net": "fluid", + "fluidads.co": "fluidads", + "fluidsurveys.com": "fluidsurveys", + "cdn.flurry.com": "flurry", + "data.flurry.com": "flurry", + "flurry.com": "flurry", + "flx1.com": "flxone", + "flxpxl.com": "flxone", + "api.flyertown.ca": "flyertown", + "adservinghost.com": "fmadserving", + "adservinginternational.com": "fmadserving", + "special.matchtv.ru": "fonbet", + "kavijaseuranta.fi": "fonecta", + "fontawesome.com": "fontawesome_com", + "foodieblogroll.com": "foodie_blogroll", + "footprintlive.com": "footprint", + "footprintdns.com": "footprintdns.com", + "forcetrac.com": "forcetrac", + "fqsecure.com": "forensiq", + "fqtag.com": "forensiq", + "securepaths.com": "forensiq", + "4seeresults.com": "foresee", + "foresee.com": "foresee", + "cdn-static.formisimo.com": "formisimo", + "forter.com": "forter", + "fortlachanhecksof.info": "fortlachanhecksof.info", + "platform.foursquare.com": "foursquare_widget", + "fout.jp": "fout.jp", + "fimserve.com": "fox_audience_network", + "foxsports.com.au": "fox_sports", + "fncstatic.com": "foxnews_static", + "cdn.foxpush.net": "foxpush", + "foxpush.com": "foxpush", + "foxtel.com.au": "foxtel", + "foxtelgroupcdn.net.au": "foxtel", + "foxydeal.com": "foxydeal_com", + "yabidos.com": "fraudlogix", + "besucherstatistiken.com": "free_counter", + "compteurdevisite.com": "free_counter", + "contadorvisitasgratis.com": "free_counter", + "contatoreaccessi.com": "free_counter", + "freecounterstat.com": "free_counter", + "statcounterfree.com": "free_counter", + "webcontadores.com": "free_counter", + "fastonlineusers.com": "free_online_users", + "fastwebcounter.com": "free_online_users", + "freeonlineusers.com": "free_online_users", + "atoomic.com": "free_pagerank", + "free-pagerank.com": "free_pagerank", + "freedom.com": "freedom_mortgage", + "freegeoip.net": "freegeoip_net", + "freenet.de": "freenet_de", + "freent.de": "freenet_de", + "freeview.com": "freeview", + "freeview.com.au": "freeview", + "freeviewaustralia.tv": "freeview", + "fwmrm.net": "freewheel", + "heimdall.fresh8.co": "fresh8", + "d36mpcpuzc4ztk.cloudfront.net": "freshdesk", + "freshdesk.com": "freshdesk", + "freshplum.com": "freshplum", + "friendbuy.com": "friendbuy", + "friendfeed.com": "friendfeed", + "adultfriendfinder.com": "friendfinder_network", + "amigos.com": "friendfinder_network", + "board-books.com": "friendfinder_network", + "cams.com": "friendfinder_network", + "facebookofsex.com": "friendfinder_network", + "getiton.com": "friendfinder_network", + "nostringsattached.com": "friendfinder_network", + "pop6.com": "friendfinder_network", + "streamray.com": "friendfinder_network", + "inpref.com": "frosmo_optimizer", + "inpref.s3-external-3.amazonaws.com": "frosmo_optimizer", + "inpref.s3.amazonaws.com": "frosmo_optimizer", + "adflan.com": "fruitflan", + "fruitflan.com": "fruitflan", + "fstrk.net": "fstrk.net", + "cookie.fuel451.com": "fuelx", + "fullstory.com": "fullstory", + "track.funnelytics.io": "funnelytics", + "angsrvr.com": "fyber", + "fyber.com": "fyber", + "game-advertising-online.com": "game_advertising_online", + "gameanalytics.com": "gameanalytics", + "gamedistribution.com": "gamedistribution.com", + "gamerdna.com": "gamerdna", + "gannett-cdn.com": "gannett", + "gaug.es": "gaug.es", + "gpm-digital.com": "gazprom-media_digital", + "js.gb-world.net": "gb-world", + "gdeslon.ru": "gdeslon", + "gdmdigital.com": "gdm_digital", + "gntm.geeen.co.jp": "geeen", + "lpomax.net": "geeen", + "gemius.pl": "gemius", + "generaltracking.de": "generaltracking_de", + "genesismedia.com": "genesis", + "gssprt.jp": "geniee", + "rsvpgenius.com": "genius", + "genoo.com": "genoo", + "js.geoads.com": "geoads", + "geolify.com": "geolify", + "geoplugin.net": "geoplugin", + "geotrust.com": "geotrust", + "geovisite.com": "geovisite", + "gestionpub.com": "gestionpub", + "app.getresponse.com": "get_response", + "getsitecontrol.com": "get_site_control", + "getconversion.net": "getconversion", + "widgets.getglue.com": "getglue", + "adhigh.net": "getintent", + "static.getkudos.me": "getkudos", + "yottos.com": "getmyad", + "gsfn.us": "getsatisfaction", + "gettyimages.com": "gettyimages", + "sensic.net": "gfk", + "gfycat.com": "gfycat.com", + "a.giantrealm.com": "giant_realm", + "videostat.com": "giantmedia", + "gigaonclick.com": "giga", + "analytics.gigyahosting1.com": "gigya", + "gigcount.com": "gigya", + "gigya.com": "gigya", + "service.giosg.com": "giosg", + "giphy.com": "giphy.com", + "giraff.io": "giraff.io", + "github.com": "github", + "githubassets.com": "github", + "githubusercontent.com": "github", + "ghcr.io": "github", + "github.blog": "github", + "github.dev": "github", + "octocaptcha.com": "github", + "githubapp.com": "github_apps", + "github.io": "github_pages", + "aff3.gittigidiyor.com": "gittigidiyor_affiliate_program", + "gittip.com": "gittip", + "sitest.jp": "glad_cube", + "glganltcs.space": "glganltcs.space", + "globalwebindex.net": "global_web_index", + "globalnotifier.com": "globalnotifier.com", + "globalsign.com": "globalsign", + "ad.globaltakeoff.net": "globaltakeoff", + "glomex.cloud": "glomex.com", + "glomex.com": "glomex.com", + "glotgrx.com": "glotgrx.com", + "a.gmdelivery.com": "gm_delivery", + "gmail.com": "gmail", + "ad.atown.jp": "gmo", + "gmx.net": "gmx_net", + "gmxpro.net": "gmx_net", + "go.com": "go.com", + "affiliate.godaddy.com": "godaddy_affiliate_program", + "trafficfacts.com": "godaddy_site_analytics", + "seal.godaddy.com": "godaddy_site_seal", + "tracking.godatafeed.com": "godatafeed", + "counter.goingup.com": "goingup", + "axf8.net": "gomez", + "goodadvert.ru": "goodadvert", + "google.at": "google", + "google.be": "google", + "google.ca": "google", + "google.ch": "google", + "google.co.id": "google", + "google.co.in": "google", + "google.co.jp": "google", + "google.co.ma": "google", + "google.co.th": "google", + "google.co.uk": "google", + "google.com": "google", + "google.com.ar": "google", + "google.com.au": "google", + "google.com.br": "google", + "google.com.mx": "google", + "google.com.tr": "google", + "google.com.tw": "google", + "google.com.ua": "google", + "google.cz": "google", + "google.de": "google", + "google.dk": "google", + "google.dz": "google", + "google.es": "google", + "google.fi": "google", + "google.fr": "google", + "google.gr": "google", + "google.hu": "google", + "google.ie": "google", + "google.it": "google", + "google.nl": "google", + "google.no": "google", + "google.pl": "google", + "google.pt": "google", + "google.ro": "google", + "google.rs": "google", + "google.ru": "google", + "google.se": "google", + "google.tn": "google", + "1e100.net": "google", + "agnss.goog": "google", + "channel.status.request.url": "google", + "g.cn": "google", + "g.co": "google", + "google.ad": "google", + "google.ae": "google", + "google.al": "google", + "google.am": "google", + "google.as": "google", + "google.az": "google", + "google.ba": "google", + "google.bf": "google", + "google.bg": "google", + "google.bi": "google", + "google.bj": "google", + "google.bs": "google", + "google.bt": "google", + "google.by": "google", + "google.cat": "google", + "google.cd": "google", + "google.cf": "google", + "google.cg": "google", + "google.ci": "google", + "google.cl": "google", + "google.cm": "google", + "google.cn": "google", + "google.co.ao": "google", + "google.co.bw": "google", + "google.co.ck": "google", + "google.co.cr": "google", + "google.co.il": "google", + "google.co.ke": "google", + "google.co.kr": "google", + "google.co.ls": "google", + "google.co.mz": "google", + "google.co.nz": "google", + "google.co.tz": "google", + "google.co.ug": "google", + "google.co.uz": "google", + "google.co.ve": "google", + "google.co.vi": "google", + "google.co.za": "google", + "google.co.zm": "google", + "google.co.zw": "google", + "google.com.af": "google", + "google.com.ag": "google", + "google.com.ai": "google", + "google.com.bd": "google", + "google.com.bh": "google", + "google.com.bn": "google", + "google.com.bo": "google", + "google.com.bz": "google", + "google.com.co": "google", + "google.com.cu": "google", + "google.com.cy": "google", + "google.com.ec": "google", + "google.com.eg": "google", + "google.com.et": "google", + "google.com.fj": "google", + "google.com.gh": "google", + "google.com.gi": "google", + "google.com.gt": "google", + "google.com.hk": "google", + "google.com.jm": "google", + "google.com.kh": "google", + "google.com.kw": "google", + "google.com.lb": "google", + "google.com.my": "google", + "google.com.na": "google", + "google.com.nf": "google", + "google.com.ng": "google", + "google.com.ni": "google", + "google.com.np": "google", + "google.com.om": "google", + "google.com.pa": "google", + "google.com.pe": "google", + "google.com.pg": "google", + "google.com.ph": "google", + "google.com.pk": "google", + "google.com.pr": "google", + "google.com.py": "google", + "google.com.qa": "google", + "google.com.sa": "google", + "google.com.sb": "google", + "google.com.sg": "google", + "google.com.sl": "google", + "google.com.sv": "google", + "google.com.tj": "google", + "google.com.uy": "google", + "google.com.vc": "google", + "google.com.vn": "google", + "google.cv": "google", + "google.dj": "google", + "google.dm": "google", + "google.ee": "google", + "google.fm": "google", + "google.ga": "google", + "google.ge": "google", + "google.gg": "google", + "google.gl": "google", + "google.gm": "google", + "google.gp": "google", + "google.gy": "google", + "google.hn": "google", + "google.hr": "google", + "google.ht": "google", + "google.im": "google", + "google.in": "google", + "google.iq": "google", + "google.is": "google", + "google.je": "google", + "google.jo": "google", + "google.kg": "google", + "google.ki": "google", + "google.kz": "google", + "google.la": "google", + "google.li": "google", + "google.lk": "google", + "google.lt": "google", + "google.lu": "google", + "google.lv": "google", + "google.md": "google", + "google.me": "google", + "google.mg": "google", + "google.mk": "google", + "google.ml": "google", + "google.mn": "google", + "google.ms": "google", + "google.mu": "google", + "google.mv": "google", + "google.mw": "google", + "google.ne": "google", + "google.net": "google", + "google.nr": "google", + "google.nu": "google", + "google.org": "google", + "google.pn": "google", + "google.ps": "google", + "google.rw": "google", + "google.sc": "google", + "google.sh": "google", + "google.si": "google", + "google.sk": "google", + "google.sm": "google", + "google.sn": "google", + "google.so": "google", + "google.sr": "google", + "google.st": "google", + "google.td": "google", + "google.tg": "google", + "google.tk": "google", + "google.tl": "google", + "google.tm": "google", + "google.to": "google", + "google.tt": "google", + "google.us": "google", + "google.vg": "google", + "google.vu": "google", + "google.ws": "google", + "googleapis.cn": "google", + "googlecode.com": "google", + "googledownloads.cn": "google", + "googleoptimize.com": "google", + "googleweblight.in": "google", + "googlezip.net": "google", + "gstatic.cn": "google", + "news.google.com": "google", + "oo.gl": "google", + "withgoogle.com": "google", + "googleadservices.com": "google_adservices", + "google-analytics.com": "google_analytics", + "app-analytics-services.com": "google_analytics", + "ssl-google-analytics.l.google.com": "google_analytics", + "www-googletagmanager.l.google.com": "google_analytics", + "appspot.com": "google_appspot", + "googlehosted.com": "google_appspot", + "accounts.google.com": "google_auth", + "myaccount.google.com": "google_auth", + "oauth2.googleapis.com": "google_auth", + "ogs.google.com": "google_auth", + "securetoken.googleapis.com": "google_auth", + "beacons-google.com": "google_beacons", + "alt1-mtalk.google.com": "google_chat", + "alt2-mtalk.google.com": "google_chat", + "alt3-mtalk.google.com": "google_chat", + "alt4-mtalk.google.com": "google_chat", + "alt5-mtalk.google.com": "google_chat", + "alt6-mtalk.google.com": "google_chat", + "alt7-mtalk.google.com": "google_chat", + "alt8-mtalk.google.com": "google_chat", + "chat.google.com": "google_chat", + "mobile-gtalk.l.google.com": "google_chat", + "mobile-gtalk4.l.google.com": "google_chat", + "mtalk.google.com": "google_chat", + "mtalk4.google.com": "google_chat", + "talk.google.com": "google_chat", + "talk.l.google.com": "google_chat", + "talkx.l.google.com": "google_chat", + "cloud.google.com": "google_cloud_platform", + "gcp.gvt2.com": "google_cloud_platform", + "storage.googleapis.com": "google_cloud_storage", + "adsensecustomsearchads.com": "google_custom_search", + "dns.google": "google_dns", + "dns.google.com": "google_dns", + "google-public-dns-a.google.com": "google_dns", + "google-public-dns-b.google.com": "google_dns", + "domains.google": "google_domains", + "googledomains.com": "google_domains", + "nic.google": "google_domains", + "registry.google": "google_domains", + "edge.google.com": "google_edge", + "mail-ads.google.com": "google_email", + "fonts.googleapis.com": "google_fonts", + "cloudfunctions.net": "google_hosted", + "ghs.googlehosted.com": "google_hosted", + "ghs4.googlehosted.com": "google_hosted", + "ghs46.googlehosted.com": "google_hosted", + "ghs6.googlehosted.com": "google_hosted", + "googlehosted.l.googleusercontent.com": "google_hosted", + "run.app": "google_hosted", + "supl.google.com": "google_location", + "earth.app.goo.gl": "google_maps", + "geo0.ggpht.com": "google_maps", + "geo1.ggpht.com": "google_maps", + "geo2.ggpht.com": "google_maps", + "geo3.ggpht.com": "google_maps", + "kh.google.com": "google_maps", + "maps.app.goo.gl": "google_maps", + "maps.google.ca": "google_maps", + "maps.google.ch": "google_maps", + "maps.google.co.jp": "google_maps", + "maps.google.co.uk": "google_maps", + "maps.google.com": "google_maps", + "maps.google.com.mx": "google_maps", + "maps.google.es": "google_maps", + "maps.google.se": "google_maps", + "maps.gstatic.com": "google_maps", + "doubleclick.net": "google_marketing", + "invitemedia.com": "google_marketing", + "adsense.google.com": "google_marketing", + "adservice.google.ca": "google_marketing", + "adservice.google.co.in": "google_marketing", + "adservice.google.co.kr": "google_marketing", + "adservice.google.co.uk": "google_marketing", + "adservice.google.co.za": "google_marketing", + "adservice.google.com": "google_marketing", + "adservice.google.com.ar": "google_marketing", + "adservice.google.com.au": "google_marketing", + "adservice.google.com.br": "google_marketing", + "adservice.google.com.co": "google_marketing", + "adservice.google.com.gt": "google_marketing", + "adservice.google.com.mx": "google_marketing", + "adservice.google.com.pe": "google_marketing", + "adservice.google.com.ph": "google_marketing", + "adservice.google.com.pk": "google_marketing", + "adservice.google.com.tr": "google_marketing", + "adservice.google.com.tw": "google_marketing", + "adservice.google.com.vn": "google_marketing", + "adservice.google.de": "google_marketing", + "adservice.google.dk": "google_marketing", + "adservice.google.es": "google_marketing", + "adservice.google.fr": "google_marketing", + "adservice.google.nl": "google_marketing", + "adservice.google.no": "google_marketing", + "adservice.google.pl": "google_marketing", + "adservice.google.ru": "google_marketing", + "adservice.google.vg": "google_marketing", + "adtrafficquality.google": "google_marketing", + "dai.google.com": "google_marketing", + "doubleclick.com": "google_marketing", + "doubleclickbygoogle.com": "google_marketing", + "googlesyndication-cn.com": "google_marketing", + "duo.google.com": "google_meet", + "hangouts.clients6.google.com": "google_meet", + "hangouts.google.com": "google_meet", + "hangouts.googleapis.com": "google_meet", + "meet.google.com": "google_meet", + "meetings.googleapis.com": "google_meet", + "stun.l.google.com": "google_meet", + "stun1.l.google.com": "google_meet", + "ggpht.com": "google_photos", + "play-fe.googleapis.com": "google_play", + "play-lh.googleusercontent.com": "google_play", + "play.google.com": "google_play", + "play.googleapis.com": "google_play", + "1e100cdn.net": "google_servers", + "gvt1.com": "google_servers", + "gvt2.com": "google_servers", + "gvt3.com": "google_servers", + "googlesyndication.com": "google_syndication", + "googletagmanager.com": "google_tag_manager", + "googletagservices.com": "google_tag_manager", + "translate.google.com": "google_translate", + "googletraveladservices.com": "google_travel_adds", + "pki.goog": "google_trust_services", + "googlecommerce.com": "google_trusted_stores", + "googleusercontent.com": "google_users", + "telephony.goog": "google_voice", + "voice.google.com": "google_voice", + "gmodules.com": "google_widgets", + "calendar.google.com": "google_workspace", + "contacts.google.com": "google_workspace", + "currents.google.com": "google_workspace", + "docs.google.com": "google_workspace", + "drive.google.com": "google_workspace", + "forms.google.com": "google_workspace", + "gsuite.google.com": "google_workspace", + "jamboard.google.com": "google_workspace", + "keep.google.com": "google_workspace", + "plus.google.com": "google_workspace", + "sheets.google.com": "google_workspace", + "slides.google.com": "google_workspace", + "spreadsheets.google.com": "google_workspace", + "googleapis.com": "googleapis.com", + "gooal.herokuapp.com": "goooal", + "gooo.al": "goooal", + "cdn.triggertag.gorillanation.com": "gorilla_nation", + "evolvemediametrics.com": "gorilla_nation", + "d1l6p2sc9645hc.cloudfront.net": "gosquared", + "gosquared.com": "gosquared", + "gostats.com": "gostats", + "govmetric.com": "govmetric", + "servmetric.com": "govmetric", + "b.grabo.bg": "grabo_affiliate", + "trw12.com": "grandslammedia", + "tuberewards.com": "grandslammedia", + "d2bw638ufki166.cloudfront.net": "granify", + "granify.com": "granify", + "grapeshot.co.uk": "grapeshot", + "gscontxt.net": "grapeshot", + "graphcomment.com": "graph_comment", + "gravatar.com": "gravatar", + "cdn.gravitec.net": "gravitec", + "gravity.com": "gravity_insights", + "grvcdn.com": "gravity_insights", + "greatviews.de": "greatviews.de", + "gandrad.org": "green_and_red", + "green-red.com": "green_and_red", + "co2stats.com": "green_certified_site", + "greenstory.ca": "green_story", + "greentube.com": "greentube.com", + "gt-cdn.net": "greentube.com", + "greystripe.com": "greystripe", + "groovehq.com": "groove", + "groovinads.com": "groovinads", + "bidagent.xad.com": "groundtruth", + "gmads.net": "groupm_server", + "grmtech.net": "groupm_server", + "media.gsimedia.net": "gsi_media", + "gstatic.com": "gstatic", + "fx.gtop.ro": "gtop", + "fx.gtopstats.com": "gtop", + "gubagootracking.com": "gugaboo", + "guj.de": "guj.de", + "emsservice.de": "gujems", + "gumgum.com": "gumgum", + "gumroad.com": "gumroad", + "gunggo.com": "gunggo", + "h12-media.com": "h12_ads", + "h12-media.net": "h12_ads", + "hnbutton.appspot.com": "hacker_news_button", + "haendlerbund.de": "haendlerbund.de", + "halogennetwork.com": "halogen_network", + "d1l7z5ofrj6ab8.cloudfront.net": "happy_fox_chat", + "ad.harrenmedianetwork.com": "harren_media", + "ads.networkhm.com": "harren_media", + "app.hatchbuck.com": "hatchbuck", + "hhcdn.ru": "head_hunter", + "healte.de": "healte.de", + "d36lvucg9kzous.cloudfront.net": "heap", + "heapanalytics.com": "heap", + "heatmap.it": "heatmap", + "weltsport.net": "heimspiel", + "hellobar.com": "hello_bar", + "hellosociety.com": "hellosociety", + "here.com": "here", + "herokuapp.com": "heroku", + "heureka.cz": "heureka-widget", + "heybubble.com": "heybubble", + "heyos.com": "heyos", + "adlink.net": "hi-media_performance", + "comclick.com": "hi-media_performance", + "hi-mediaserver.com": "hi-media_performance", + "himediads.com": "hi-media_performance", + "himediadx.com": "hi-media_performance", + "hiconversion.com": "hiconversion", + "highwebmedia.com": "highwebmedia.com", + "hwcdn.net": "highwinds", + "hiiir.com": "hiiir", + "hiro.tv": "hiro", + "histats.com": "histats", + "hit-parade.com": "hit-parade", + "hit.ua": "hit.ua", + "hitslink.com": "hitslink", + "hitsprocessor.com": "hitslink", + "hitsniffer.com": "hitsniffer", + "hittail.com": "hittail", + "hivedx.com": "hivedx.com", + "ads.thehiveworks.com": "hiveworks", + "hockeyapp.net": "hockeyapp", + "hoholikik.club": "hoholikik.club", + "h-cdn.com": "hola_player", + "homeaway.com": "homeaway", + "honeybadger.io": "honeybadger", + "hlserve.com": "hooklogic", + "apiae.hopscore.com": "hop-cube", + "hotdogsandads.com": "hotdogsandads.com", + "hotjar.com": "hotjar", + "hotkeys.com": "hotkeys", + "hotlog.ru": "hotlog.ru", + "hotwords.com": "hotwords", + "hotwords.es": "hotwords", + "howtank.com": "howtank.com", + "hqentertainmentnetwork.com": "hqentertainmentnetwork.com", + "justservingfiles.net": "hqentertainmentnetwork.com", + "hsoub.com": "hsoub", + "hstrck.com": "hstrck.com", + "httpool.com": "httpool", + "toboads.com": "httpool", + "hubrus.com": "hubrus", + "hs-analytics.net": "hubspot", + "hs-scripts.com": "hubspot", + "hsleadflows.net": "hubspot", + "hubapi.com": "hubspot", + "hubspot.com": "hubspot", + "forms.hubspot.com": "hubspot_forms", + "hubvisor.io": "hubvisor.io", + "files.hucksterbot.com": "hucksterbot", + "hupso.com": "hupso", + "hurra.com": "hurra_tracker", + "hybrid.ai": "hybrid.ai", + "targetix.net": "hybrid.ai", + "hypeads.org": "hype_exchange", + "hypercomments.com": "hypercomments", + "hyves.nl": "hyves_widgets", + "hyvyd.com": "hyvyd", + "ib-ibi.com": "i-behavior", + "i-mobile.co.jp": "i-mobile", + "r.i.ua": "i.ua", + "i10c.net": "i10c.net", + "i2i.jp": "i2i.jp", + "i2idata.com": "i2i.jp", + "consensu.org": "iab_consent", + "iadvize.com": "iadvize", + "cmcore.com": "ibm_customer_experience", + "coremetrics.com": "ibm_customer_experience", + "coremetrics.eu": "ibm_customer_experience", + "tracker.icerocket.com": "icerocket_tracker", + "nsimg.net": "icf_technology", + "optimix.asia": "iclick", + "ic-live.com": "icrossing", + "icstats.nl": "icstats", + "icuazeczpeoohx.com": "icuazeczpeoohx.com", + "id-news.net": "id-news.net", + "idcdn.de": "id-news.net", + "eu-1-id5-sync.com": "id5-sync", + "id5-sync.com": "id5-sync", + "id5.io": "id5-sync", + "cdn.id.services": "id_services", + "e-generator.com": "ideal_media", + "idealo.com": "idealo_com", + "identrust.com": "identrust", + "ideoclick.com": "ideoclick", + "s.idio.co": "idio", + "ie8eamus.com": "ie8eamus.com", + "600z.com": "ientry", + "api.iflychat.com": "iflychat", + "ignitionone.com": "ignitionone", + "knotice.net": "ignitionone", + "igodigital.com": "igodigital", + "ad.wsod.com": "ihs_markit", + "collserve.com": "ihs_markit_online_shopper_insigh", + "ihvmcqojoj.com": "ihvmcqojoj.com", + "iias.eu": "iias.eu", + "ijento.com": "ijento", + "adv.imadrep.co.kr": "imad", + "worthathousandwords.com": "image_advantage", + "picadmedia.com": "image_space_media", + "imgix.net": "imgix.net", + "imgur.com": "imgur", + "vidigital.ru": "imho_vi", + "immanalytics.com": "immanalytics", + "immobilienscout24.de": "immobilienscout24_de", + "static-immobilienscout24.de": "immobilienscout24_de", + "imonomy.com": "imonomy", + "7eer.net": "impact_radius", + "d3cxv97fi8q177.cloudfront.net": "impact_radius", + "evyy.net": "impact_radius", + "impactradius-event.com": "impact_radius", + "impactradius-tag.com": "impact_radius", + "impactradius.com": "impact_radius", + "ojrq.net": "impact_radius", + "r7ls.net": "impact_radius", + "impresionesweb.com": "impresiones_web", + "360yield.com": "improve_digital", + "iljmp.com": "improvely", + "inbenta.com": "inbenta", + "inboxsdk.com": "inboxsdk.com", + "indeed.com": "indeed", + "casalemedia.com": "index_exchange", + "indexww.com": "index_exchange", + "indieclick.com": "indieclick", + "industrybrains.com": "industry_brains", + "impdesk.com": "infectious_media", + "impressiondesk.com": "infectious_media", + "zachysprod.infiniteanalytics.com": "infinite_analytics", + "infinity-tracking.net": "infinity_tracking", + "engine.influads.com": "influads", + "infolinks.com": "infolinks", + "intextscript.com": "infolinks", + "ioam.de": "infonline", + "iocnt.net": "infonline", + "ivwbox.de": "infonline", + "informer.com": "informer_technologies", + "infusionsoft.com": "infusionsoft", + "keap.com": "infusionsoft", + "innity.com": "innity", + "innity.net": "innity", + "innogames.com": "innogames.de", + "innogames.de": "innogames.de", + "innogamescdn.com": "innogames.de", + "innovid.com": "innovid", + "inside-graph.com": "inside", + "useinsider.com": "insider", + "insightexpressai.com": "insightexpress", + "inskinad.com": "inskin_media", + "inskinmedia.com": "inskin_media", + "inspectlet.com": "inspectlet", + "inspsearchapi.com": "inspsearchapi.com", + "cdninstagram.com": "instagram_com", + "instagram.com": "instagram_com", + "tcgtrkr.com": "instant_check_mate", + "sdad.guru": "instart_logic", + "insticator.com": "insticator", + "load.instinctiveads.com": "instinctive", + "intango.com": "intango", + "adsafeprotected.com": "integral_ad_science", + "iasds01.com": "integral_ad_science", + "integral-marketing.com": "integral_marketing", + "intelliad.com": "intelliad", + "intelliad.de": "intelliad", + "saas.intelligencefocus.com": "intelligencefocus", + "ist-track.com": "intelligent_reach", + "intensedebate.com": "intense_debate", + "intentiq.com": "intent_iq", + "intentmedia.net": "intent_media", + "intercom.com": "intercom", + "intercom.io": "intercom", + "intercomassets.com": "intercom", + "intercomcdn.com": "intercom", + "interedy.info": "interedy.info", + "ads.intergi.com": "intergi", + "intermarkets.net": "intermarkets.net", + "intermundomedia.com": "intermundo_media", + "bbelements.com": "internet_billboard", + "goadservices.com": "internet_billboard", + "ibillboard.com": "internet_billboard", + "mediainter.net": "internet_billboard", + "voice2page.com": "internetaudioads", + "ibpxl.com": "internetbrands", + "ibsrv.net": "internetbrands", + "interpolls.com": "interpolls", + "ps7894.com": "interyield", + "intilery-analytics.com": "intilery", + "im-apps.net": "intimate_merger", + "investingchannel.com": "investingchannel", + "inviziads.com": "inviziads", + "js12.invoca.net": "invoca", + "ringrevenue.com": "invoca", + "invodo.com": "invodo", + "ionicframework.com": "ionicframework.com", + "dsp.io": "iotec", + "iesnare.com": "iovation", + "iovation.com": "iovation", + "ip-label.net": "ip-label", + "eltoro.com": "ip_targeting", + "iptargeting.com": "ip_targeting", + "ip-tracker.org": "ip_tracker", + "iptrack.io": "ip_tracker", + "iperceptions.com": "iperceptions", + "dust.ipfingerprint.com": "ipfingerprint", + "mbww.com": "ipg_mediabrands", + "ipify.org": "ipify", + "ipinfo.io": "ipinfo", + "iplogger.ru": "iplogger", + "centraliprom.com": "iprom", + "iprom.net": "iprom", + "ipromote.com": "ipromote", + "clickmanage.com": "iprospect", + "iq.com": "iqiyi", + "iqiyi.com": "iqiyi", + "qy.net": "iqiyi", + "addelive.com": "ironsource", + "afdads.com": "ironsource", + "delivery47.com": "ironsource", + "ironsrc.com": "ironsource", + "ironsrc.net": "ironsource", + "is.com": "ironsource", + "soom.la": "ironsource", + "supersonicads.com": "ironsource", + "tapjoy.com": "ironsource", + "adsbyisocket.com": "isocket", + "isocket.com": "isocket", + "isolarcloud.com": "isolarcloud", + "isolarcloud.com.a.lahuashanbx.com": "isolarcloud", + "isolarcloud.com.w.cdngslb.com": "isolarcloud", + "isolarcloud.com.w.kunlunsl.com": "isolarcloud", + "ispot.tv": "ispot.tv", + "itineraire.info": "itineraire.info", + "autolinkmaker.itunes.apple.com": "itunes_link_maker", + "ity.im": "ity.im", + "iubenda.com": "iubenda.com", + "ivcbrasil.org.br": "ivcbrasil.org.br", + "ivitrack.com": "ividence", + "iwiw.hu": "iwiw_widgets", + "ixiaa.com": "ixi_digital", + "ixquick.com": "ixquick.com", + "cdn.izooto.com": "izooto", + "jlist.com": "j-list_affiliate_program", + "getjaco.com": "jaco", + "janrainbackplane.com": "janrain", + "rpxnow.com": "janrain", + "jeeng.com": "jeeng", + "api.jeeng.com": "jeeng_widgets", + "phone-analytics.com": "jet_interactive", + "grazie.ai": "jetbrains", + "intellij.net": "jetbrains", + "jb.gg": "jetbrains", + "jetbrains.ai": "jetbrains", + "jetbrains.com": "jetbrains", + "jetbrains.com.cn": "jetbrains", + "jetbrains.dev": "jetbrains", + "jetbrains.net": "jetbrains", + "jetbrains.org": "jetbrains", + "jetbrains.ru": "jetbrains", + "jetbrains.space": "jetbrains", + "kotl.in": "jetbrains", + "kotlinconf.com": "jetbrains", + "kotlinlang.org": "jetbrains", + "myjetbrains.com": "jetbrains", + "talkingkotlin.com": "jetbrains", + "jetlore.com": "jetlore", + "pixel.wp.com": "jetpack", + "stats.wp.com": "jetpack", + "jetpackdigital.com": "jetpack_digital", + "jimcdn.com": "jimdo.com", + "jimdo.com": "jimdo.com", + "jimstatic.com": "jimdo.com", + "ads.jinkads.com": "jink", + "jirafe.com": "jirafe", + "jivosite.com": "jivochat", + "jivox.com": "jivox", + "jobs2careers.com": "jobs_2_careers", + "joinhoney.com": "joinhoney", + "create.leadid.com": "jornaya", + "d1tprjo2w7krrh.cloudfront.net": "jornaya", + "cdnjquery.com": "jquery", + "jquery.com": "jquery", + "cjmooter.xcache.kinxcdn.com": "js_communications", + "jsdelivr.net": "jsdelivr", + "jsecoin.com": "jse_coin", + "jsuol.com.br": "jsuol.com.br", + "contentabc.com": "juggcash", + "mofos.com": "juggcash", + "juiceadv.com": "juiceadv", + "juicyads.com": "juicyads", + "cdn.jumplead.com": "jumplead", + "jumpstarttaggingsolutions.com": "jumpstart_tagging_solutions", + "jumptap.com": "jumptap", + "jump-time.net": "jumptime", + "jumptime.com": "jumptime", + "components.justanswer.com": "just_answer", + "justpremium.com": "just_premium", + "justpremium.nl": "just_premium", + "justrelevant.com": "just_relevant", + "jvc.gg": "jvc.gg", + "d21rhj7n383afu.cloudfront.net": "jw_player", + "jwpcdn.com": "jw_player", + "jwplatform.com": "jw_player", + "jwplayer.com": "jw_player", + "jwpltx.com": "jw_player", + "jwpsrv.com": "jw_player", + "ltassrv.com": "jw_player_ad_solutions", + "kaeufersiegel.de": "kaeufersiegel.de", + "kairion.de": "kairion.de", + "kctag.net": "kairion.de", + "kaloo.ga": "kaloo.ga", + "kaltura.com": "kaltura", + "kameleoon.com": "kameleoon", + "kameleoon.eu": "kameleoon", + "kampyle.com": "kampyle", + "kanoodle.com": "kanoodle", + "kmi-us.com": "kantar_media", + "tnsinternet.be": "kantar_media", + "karambasecurity.com": "karambasecurity", + "kargo.com": "kargo", + "kaspersky-labs.com": "kaspersky-labs.com", + "kataweb.it": "kataweb.it", + "cen.katchup.fr": "katchup", + "kau.li": "kauli", + "kavanga.ru": "kavanga", + "kayosports.com.au": "kayo_sports", + "dc8na2hxrj29i.cloudfront.net": "keen_io", + "keen.io": "keen_io", + "widget.kelkoo.com": "kelkoo", + "xg4ken.com": "kenshoo", + "keymetric.net": "keymetric", + "lb.keytiles.com": "keytiles", + "keywee.co": "keywee", + "keywordmax.com": "keywordmax", + "massrelevance.com": "khoros", + "tweetriver.com": "khoros", + "khzbeucrltin.com": "khzbeucrltin.com", + "ping.kickfactory.com": "kickfactory", + "sa-as.com": "kickfire", + "sniff.visistat.com": "kickfire", + "stats.visistat.com": "kickfire", + "apikik.com": "kik", + "kik-gateway-use1.meetme.com": "kik", + "kik-live.com": "kik", + "kik-stream.meetme.com": "kik", + "kik.com": "kik", + "king.com": "king.com", + "midasplayer.com": "king_com", + "kinja-img.com": "kinja.com", + "kinja-static.com": "kinja.com", + "kinja.com": "kinja.com", + "kiosked.com": "kiosked", + "doug1izaerwt3.cloudfront.net": "kissmetrics.com", + "kissmetrics.com": "kissmetrics.com", + "ad.103092804.com": "kitara_media", + "kmdisplay.com": "kitara_media", + "kixer.com": "kixer", + "klarna.com": "klarna.com", + "a.klaviyo.com": "klaviyo", + "klaviyo.com": "klaviyo", + "klikki.com": "klikki", + "scr.kliksaya.com": "kliksaya", + "mediapeo2.com": "kmeleo", + "knoopstat.nl": "knoopstat", + "knotch.it": "knotch", + "komoona.com": "komoona", + "kona.kontera.com": "kontera_contentlink", + "ktxtr.com": "kontextr", + "kontextua.com": "kontextua", + "cleanrm.net": "korrelate", + "korrelate.net": "korrelate", + "trackit.ktxlytics.io": "kortx", + "kaptcha.com": "kount", + "krxd.net": "krux_digital", + "d31bfnnwekbny6.cloudfront.net": "kupona", + "kpcustomer.de": "kupona", + "q-sis.de": "kupona", + "kxcdn.com": "kxcdn.com", + "cdn.kyto.com": "kyto", + "cd-ladsp-com.s3.amazonaws.com": "ladsp.com", + "ladmp.com": "ladsp.com", + "ladsp.com": "ladsp.com", + "lanistaads.com": "lanista_concepts", + "latimes.com": "latimes", + "events.launchdarkly.com": "launch_darkly", + "launchdarkly.com": "launch_darkly", + "launchbit.com": "launchbit", + "launchpad.net": "launchpad", + "launchpadcontent.net": "launchpad", + "layer-ad.org": "layer-ad.org", + "ph-live.slatic.net": "lazada", + "slatic.net": "lazada", + "lcxdigital.com": "lcx_digital", + "lemde.fr": "le_monde.fr", + "t1.llanalytics.com": "lead_liaison", + "leadback.ru": "leadback", + "leaddyno.com": "leaddyno", + "123-tracker.com": "leadforensics", + "55-trk-srv.com": "leadforensics", + "business-path-55.com": "leadforensics", + "click-to-trace.com": "leadforensics", + "cloud-exploration.com": "leadforensics", + "cloud-journey.com": "leadforensics", + "cloud-trail.com": "leadforensics", + "cloudpath82.com": "leadforensics", + "cloudtracer101.com": "leadforensics", + "discover-path.com": "leadforensics", + "discovertrail.net": "leadforensics", + "domainanalytics.net": "leadforensics", + "dthvdr9.com": "leadforensics", + "explore-123.com": "leadforensics", + "finger-info.net": "leadforensics", + "forensics1000.com": "leadforensics", + "ip-route.net": "leadforensics", + "ipadd-path.com": "leadforensics", + "iproute66.com": "leadforensics", + "lead-123.com": "leadforensics", + "lead-analytics-1000.com": "leadforensics", + "lead-watcher.com": "leadforensics", + "leadforensics.com": "leadforensics", + "ledradn.com": "leadforensics", + "letterbox-path.com": "leadforensics", + "letterboxtrail.com": "leadforensics", + "network-handle.com": "leadforensics", + "path-follower.com": "leadforensics", + "path-trail.com": "leadforensics", + "scan-trail.com": "leadforensics", + "site-research.net": "leadforensics", + "srv1010elan.com": "leadforensics", + "the-lead-tracker.com": "leadforensics", + "trace-2000.com": "leadforensics", + "track-web.net": "leadforensics", + "trackdiscovery.net": "leadforensics", + "trackercloud.net": "leadforensics", + "trackinvestigate.net": "leadforensics", + "trail-viewer.com": "leadforensics", + "trail-web.com": "leadforensics", + "trailbox.net": "leadforensics", + "trailinvestigator.com": "leadforensics", + "web-path.com": "leadforensics", + "webforensics.co.uk": "leadforensics", + "websiteexploration.com": "leadforensics", + "www-path.com": "leadforensics", + "gate.leadgenic.com": "leadgenic", + "leadhit.ru": "leadhit", + "js.leadin.com": "leadin", + "io.leadingreports.de": "leading_reports", + "js.leadinspector.de": "leadinspector", + "formalyzer.com": "leadlander", + "trackalyzer.com": "leadlander", + "analytics.leadlifesolutions.net": "leadlife", + "my.leadpages.net": "leadpages", + "leadplace.fr": "leadplace", + "scorecard.wspisp.net": "leads_by_web.com", + "www.leadscoreapp.dk": "leadscoreapp", + "tracker.leadsius.com": "leadsius", + "leady.com": "leady", + "leady.cz": "leady", + "leiki.com": "leiki", + "lengow.com": "lengow", + "lenmit.com": "lenmit.com", + "lentainform.com": "lentainform.com", + "lenua.de": "lenua.de", + "letreach.com": "let_reach", + "lencr.org": "lets_encrypt", + "letsencrypt.org": "lets_encrypt", + "js.letvcdn.com": "letv", + "footprint.net": "level3_communications", + "alphonso.tv": "lgads", + "lgads.tv": "lgads", + "lg.com": "lgtv", + "lge.com": "lgtv", + "lgsmartad.com": "lgtv", + "lgtvcommon.com": "lgtv", + "lgtvsdp.com": "lgtv", + "licensebuttons.net": "licensebuttons.net", + "lfstmedia.com": "lifestreet_media", + "content-recommendation.net": "ligatus", + "ligadx.com": "ligatus", + "ligatus.com": "ligatus", + "ligatus.de": "ligatus", + "veeseo.com": "ligatus", + "limk.com": "limk", + "line-apps.com": "line_apps", + "line-scdn.net": "line_apps", + "line.me": "line_apps", + "tongji.linezing.com": "linezing", + "linkbucks.com": "linkbucks", + "linkconnector.com": "linkconnector", + "bizo.com": "linkedin", + "licdn.com": "linkedin", + "linkedin.com": "linkedin", + "lynda.com": "linkedin", + "ads.linkedin.com": "linkedin_ads", + "snap.licdn.com": "linkedin_analytics", + "bizographics.com": "linkedin_marketing_solutions", + "platform.linkedin.com": "linkedin_widgets", + "linker.hr": "linker", + "linkprice.com": "linkprice", + "lp4.io": "linkpulse", + "linksalpha.com": "linksalpha", + "erovinmo.com": "linksmart", + "linksmart.com": "linksmart", + "linkstorm.net": "linkstorm", + "linksynergy.com": "linksynergy.com", + "linkup.com": "linkup", + "linkwi.se": "linkwise", + "linkwithin.com": "linkwithin", + "lqm.io": "liquidm_technology_gmbh", + "lqmcdn.com": "liquidm_technology_gmbh", + "liqwid.net": "liqwid", + "list.ru": "list.ru", + "listrakbi.com": "listrak", + "live2support.com": "live2support", + "live800.com": "live800", + "ladesk.com": "live_agent", + "livehelpnow.net": "live_help_now", + "liadm.com": "live_intent", + "l-stat.livejournal.net": "live_journal", + "liveadexchanger.com": "liveadexchanger.com", + "livechat.s3.amazonaws.com": "livechat", + "livechatinc.com": "livechat", + "livechatinc.net": "livechat", + "livechatnow.com": "livechatnow", + "livechatnow.net": "livechatnow", + "liveclicker.net": "liveclicker", + "livecounter.dk": "livecounter", + "fyre.co": "livefyre", + "livefyre.com": "livefyre", + "yadro.ru": "liveinternet", + "liveperson.net": "liveperson", + "lpsnmedia.net": "liveperson", + "pippio.com": "liveramp", + "rapleaf.com": "liveramp", + "rlcdn.com": "liveramp", + "livere.co.kr": "livere", + "livere.co.kr.cizion.ixcloud.net": "livere", + "livesportmedia.eu": "livesportmedia.eu", + "analytics.livestream.com": "livestream", + "livetex.ru": "livetex.ru", + "lkqd.net": "lkqd", + "loadbee.com": "loadbee.com", + "loadercdn.com": "loadercdn.com", + "loadsource.org": "loadsource.org", + "web.localytics.com": "localytics", + "localytics.com": "localytics", + "cdn2.lockerdome.com": "lockerdome", + "addtoany.com": "lockerz_share", + "pixel.loganmedia.mobi": "logan_media", + "ping.answerbook.com": "logdna", + "loggly.com": "loggly", + "logly.co.jp": "logly", + "logsss.com": "logsss.com", + "lomadee.com": "lomadee", + "assets.loomia.com": "loomia", + "loop11.com": "loop11", + "lfov.net": "loopfuse_oneview", + "crwdcntrl.net": "lotame", + "vidcpm.com": "lottex_inc", + "tracker.samplicio.us": "lucid", + "lucidmedia.com": "lucid_media", + "lead.adsender.us": "lucini", + "livestatserver.com": "lucky_orange", + "luckyorange.com": "lucky_orange", + "luckyorange.net": "lucky_orange", + "luckypushh.com": "luckypushh.com", + "adelixir.com": "lxr100", + "lypn.com": "lynchpin_analytics", + "lypn.net": "lynchpin_analytics", + "lytics.io": "lytics", + "lyuoaxruaqdo.com": "lyuoaxruaqdo.com", + "m-pathy.com": "m-pathy", + "mpnrs.com": "m._p._newmedia", + "m4n.nl": "m4n", + "madadsmedia.com": "mad_ads_media", + "madeleine.de": "madeleine.de", + "dinclinx.com": "madison_logic", + "madisonlogic.com": "madison_logic", + "madnet.ru": "madnet", + "eu2.madsone.com": "mads", + "magna.ru": "magna_advertise", + "d3ezl4ajpp2zy8.cloudfront.net": "magnetic", + "domdex.com": "magnetic", + "domdex.net": "magnetic", + "magnetisemedia.com": "magnetise_group", + "magnify360.com": "magnify360", + "magnuum.com": "magnuum.com", + "ad.mail.ru": "mail.ru_banner", + "imgsmail.ru": "mail.ru_group", + "mail.ru": "mail.ru_group", + "mradx.net": "mail.ru_group", + "odnoklassniki.ru": "mail.ru_group", + "ok.ru": "mail.ru_group", + "chimpstatic.com": "mailchimp_tracking", + "list-manage.com": "mailchimp_tracking", + "mailchimp.com": "mailchimp_tracking", + "mailerlite.com": "mailerlite.com", + "mailtrack.io": "mailtrack.io", + "mainadv.com": "mainadv", + "makazi.com": "makazi", + "makeappdev.xyz": "makeappdev.xyz", + "makesource.cool": "makesource.cool", + "widgets.mango-office.ru": "mango", + "manycontacts.com": "manycontacts", + "mapandroute.de": "mapandroute.de", + "mapbox.com": "mapbox", + "www.maploco.com": "maploco", + "px.marchex.io": "marchex", + "voicestar.com": "marchex", + "mmadsgadget.com": "marimedia", + "qadabra.com": "marimedia", + "qadserve.com": "marimedia", + "qadservice.com": "marimedia", + "marinsm.com": "marin_search_marketer", + "markandmini.com": "mark_+_mini", + "ak-cdn.placelocal.com": "market_thunder", + "dt00.net": "marketgid", + "dt07.net": "marketgid", + "marketgid.com": "marketgid", + "mgid.com": "marketgid", + "marketingautomation.si": "marketing_automation", + "marketo.com": "marketo", + "marketo.net": "marketo", + "mktoresp.com": "marketo", + "caanalytics.com": "markmonitor", + "mmstat.com": "markmonitor", + "markmonitor.com": "markmonitor", + "netscope.data.marktest.pt": "marktest", + "marshadow.io": "marshadow.io", + "martiniadnetwork.com": "martini_media", + "edigitalsurvey.com": "maru-edu", + "marvellousmachine.net": "marvellous_machine", + "mbn.com.ua": "master_banner_network", + "mastertarget.ru": "mastertarget", + "rns.matelso.de": "matelso", + "matheranalytics.com": "mather_analytics", + "mathjax.org": "mathjax.org", + "nzaza.com": "matiro", + "matomo.cloud": "matomo", + "matomo.org": "matomo", + "piwik.org": "matomo", + "adsmarket.com": "matomy_market", + "m2pub.com": "matomy_market", + "matrix.org": "matrix", + "mb01.com": "maxbounty", + "maxcdn.com": "maxcdn", + "netdna-cdn.com": "maxcdn", + "netdna-ssl.com": "maxcdn", + "maxlab.ru": "maxlab", + "maxmind.com": "maxmind", + "maxonclick.com": "maxonclick_com", + "mxptint.net": "maxpoint_interactive", + "maxymiser.hs.llnwd.net": "maxymiser", + "maxymiser.net": "maxymiser", + "m6r.eu": "mbr_targeting", + "pixel.adbuyer.com": "mbuy", + "mcabi.mcloudglobal.com": "mcabi", + "scanalert.com": "mcafee_secure", + "ywxi.net": "mcafee_secure", + "mconet.biz": "mconet", + "mdotlabs.com": "mdotlabs", + "media-clic.com": "media-clic", + "media-imdb.com": "media-imdb.com", + "media.net": "media.net", + "mediaimpact.de": "media_impact", + "mookie1.com": "media_innovation_group", + "idntfy.ru": "media_today", + "s1.mediaad.org": "mediaad", + "mlnadvertising.com": "mediaglu", + "fhserve.com": "mediahub", + "media-lab.ai": "medialab", + "medialab.la": "medialab", + "adnet.ru": "medialand", + "medialand.ru": "medialand", + "medialead.de": "medialead", + "mathads.com": "mediamath", + "mathtag.com": "mediamath", + "mediametrics.ru": "mediametrics", + "audit.median.hu": "median", + "mediapass.com": "mediapass", + "mt.mediapostcommunication.net": "mediapost_communications", + "mediarithmics.com": "mediarithmics.com", + "tns-counter.ru": "mediascope", + "ad.media-servers.net": "mediashakers", + "adsvc1107131.net": "mediashift", + "mediator.media": "mediator.media", + "mediav.com": "mediav", + "adnetinteractive.com": "mediawhiz", + "adnetinteractive.net": "mediawhiz", + "mediego.com": "medigo", + "medleyads.com": "medley", + "adnet.com.tr": "medyanet", + "e-kolay.net": "medyanet", + "medyanetads.com": "medyanet", + "cim.meebo.com": "meebo_bar", + "meetrics.net": "meetrics", + "mxcdn.net": "meetrics", + "research.de.com": "meetrics", + "counter.megaindex.ru": "megaindex", + "mega.co.nz": "meganz", + "mega.io": "meganz", + "mega.nz": "meganz", + "mein-bmi.com": "mein-bmi.com", + "webvisitor.melissadata.net": "melissa", + "meltdsp.com": "melt", + "mlt01.com": "menlo", + "mentad.com": "mentad", + "mercadoclics.com": "mercado", + "mercadolivre.com.br": "mercado", + "mlstatic.com": "mercado", + "merchantadvantage.com": "merchantadvantage", + "merchenta.com": "merchenta", + "roia.biz": "mercury_media", + "cdn.merklesearch.com": "merkle_research", + "rkdms.com": "merkle_rkg", + "messenger.com": "messenger.com", + "ad.metanetwork.com": "meta_network", + "metaffiliation.com": "metaffiliation.com", + "netaffiliation.com": "metaffiliation.com", + "metalyzer.com": "metapeople", + "mlsat02.de": "metapeople", + "metrigo.com": "metrigo", + "metriweb.be": "metriweb", + "miaozhen.com": "miaozhen", + "microad.co.jp": "microad", + "microad.jp": "microad", + "microad.net": "microad", + "microadinc.com": "microad", + "azurewebsites.net": "microsoft", + "cloudapp.net": "microsoft", + "gfx.ms": "microsoft", + "microsoft.com": "microsoft", + "microsoftonline-p.com": "microsoft", + "microsoftonline.com": "microsoft", + "microsofttranslator.com": "microsoft", + "msecnd.net": "microsoft", + "msedge.net": "microsoft", + "msocdn.com": "microsoft", + "onestore.ms": "microsoft", + "s-microsoft.com": "microsoft", + "trouter.io": "microsoft", + "windows.net": "microsoft", + "aka.ms": "microsoft", + "microsoftazuread-sso.com": "microsoft", + "bingapis.com": "microsoft", + "msauth.net": "microsoft", + "msauthimages.net": "microsoft", + "msftauth.net": "microsoft", + "msftstatic.com": "microsoft", + "msidentity.com": "microsoft", + "nelreports.net": "microsoft", + "windowscentral.com": "microsoft", + "analytics.live.com": "microsoft_analytics", + "a.clarity.ms": "microsoft_clarity", + "b.clarity.ms": "microsoft_clarity", + "c.clarity.ms": "microsoft_clarity", + "d.clarity.ms": "microsoft_clarity", + "e.clarity.ms": "microsoft_clarity", + "f.clarity.ms": "microsoft_clarity", + "g.clarity.ms": "microsoft_clarity", + "h.clarity.ms": "microsoft_clarity", + "i.clarity.ms": "microsoft_clarity", + "j.clarity.ms": "microsoft_clarity", + "log.clarity.ms": "microsoft_clarity", + "www.clarity.ms": "microsoft_clarity", + "mmismm.com": "mindset_media", + "imgfarm.com": "mindspark", + "mindspark.com": "mindspark", + "staticimgfarm.com": "mindspark", + "mvtracker.com": "mindviz_tracker", + "minewhat.com": "minewhat", + "mintsapp.io": "mints_app", + "snackly.co": "minute.ly", + "snippet.minute.ly": "minute.ly", + "apv.configuration.minute.ly": "minute.ly_video", + "get.mirando.de": "mirando", + "mirtesen.ru": "mirtesen.ru", + "misterbell.com": "mister_bell", + "mixi.jp": "mixi", + "mixpanel.com": "mixpanel", + "mxpnl.com": "mixpanel", + "mxpnl.net": "mixpanel", + "swf.mixpo.com": "mixpo", + "app.mluvii.com": "mluvii", + "mncdn.com": "mncdn.com", + "moatads.com": "moat", + "moatpixel.com": "moat", + "mobicow.com": "mobicow", + "a.mobify.com": "mobify", + "mobtrks.com": "mobtrks.com", + "ads.mocean.mobi": "mocean_mobile", + "ads.moceanads.com": "mocean_mobile", + "chat.mochapp.com": "mochapp", + "intelligentpixel.modernimpact.com": "modern_impact", + "teljari.is": "modernus", + "modulepush.com": "modulepush.com", + "mogointeractive.com": "mogo_interactive", + "mokonocdn.com": "mokono_analytics", + "devappgrant.space": "monero_miner", + "monetate.net": "monetate", + "monetize-me.com": "monetize_me", + "ads.themoneytizer.com": "moneytizer", + "mongoosemetrics.com": "mongoose_metrics", + "track.monitis.com": "monitis", + "monitus.net": "monitus", + "fonts.net": "monotype_gmbh", + "fonts.com": "monotype_imaging", + "cdn.monsido.com": "monsido", + "monster.com": "monster_advertising", + "mooxar.com": "mooxar", + "mopinion.com": "mopinion.com", + "mopub.com": "mopub", + "ad.ad-arata.com": "more_communication", + "moras.jp": "moreads", + "nedstatbasic.net": "motigo_webstats", + "webstats.motigo.com": "motigo_webstats", + "analytics.convertlanguage.com": "motionpoint", + "mouseflow.com": "mouseflow", + "mousestats.com": "mousestats", + "s.mousetrace.com": "mousetrace", + "movad.de": "mov.ad", + "movad.net": "mov.ad", + "micpn.com": "movable_ink", + "mvb.me": "movable_media", + "moz.com": "moz", + "firefox.com": "mozilla", + "mozaws.net": "mozilla", + "mozgcp.net": "mozilla", + "mozilla.com": "mozilla", + "mozilla.net": "mozilla", + "mozilla.org": "mozilla", + "storage.mozoo.com": "mozoo", + "tracker.mrpfd.com": "mrp", + "mrpdata.com": "mrpdata", + "mrpdata.net": "mrpdata", + "mrskincash.com": "mrskincash", + "a-msedge.net": "msedge", + "b-msedge.net": "msedge", + "dual-s-msedge.net": "msedge", + "e-msedge.net": "msedge", + "k-msedge.net": "msedge", + "l-msedge.net": "msedge", + "s-msedge.net": "msedge", + "spo-msedge.net": "msedge", + "t-msedge.net": "msedge", + "wac-msedge.net": "msedge", + "msn.com": "msn", + "s-msn.com": "msn", + "musculahq.appspot.com": "muscula", + "litix.io": "mux_inc", + "mybloglog.com": "mybloglog", + "t.p.mybuys.com": "mybuys", + "mycdn.me": "mycdn.me", + "mycliplister.com": "mycliplister.com", + "mycounter.com.ua": "mycounter.ua", + "mycounter.ua": "mycounter.ua", + "myfonts.net": "myfonts", + "mypagerank.net": "mypagerank", + "stat.mystat.hu": "mystat", + "mythings.com": "mythings", + "mystat-in.net": "mytop_counter", + "nab.com": "nab", + "nab.com.au": "nab", + "nab.net": "nab", + "nabgroup.com": "nab", + "national.com.au": "nab", + "nationalaustraliabank.com.au": "nab", + "nationalbank.com.au": "nab", + "nakanohito.jp": "nakanohito.jp", + "namogoo.coom": "namogoo", + "nanigans.com": "nanigans", + "audiencemanager.de": "nano_interactive", + "nanorep.com": "nanorep", + "narando.com": "narando", + "static.bam-x.com": "narrativ", + "narrative.io": "narrative_io", + "p1.ntvk1.ru": "natimatica", + "nativeads.com": "nativeads.com", + "cdn01.nativeroll.tv": "nativeroll", + "ntv.io": "nativo", + "postrelease.com": "nativo", + "navdmp.com": "navegg_dmp", + "naver.com": "naver.com", + "naver.net": "naver.com", + "s-nbcnews.com": "nbc_news", + "richmedia247.com": "ncol", + "needle.com": "needle", + "nekudo.com": "nekudo.com", + "neodatagroup.com": "neodata", + "ad-srv.net": "neory", + "contentspread.net": "neory", + "neory-tm.com": "neory", + "simptrack.com": "neory", + "nerfherdersolo.com": "nerfherdersolo_com", + "wemfbox.ch": "net-metrix", + "cdnma.com": "net-results", + "nr7.us": "net-results", + "netavenir.com": "net_avenir", + "netcommunities.com": "net_communities", + "visibility-stats.com": "net_visibility", + "netbiscuits.net": "netbiscuits", + "bbtrack.net": "netbooster_group", + "netbooster.com": "netbooster_group", + "netflix.com": "netflix", + "nflxext.com": "netflix", + "nflximg.net": "netflix", + "nflxso.net": "netflix", + "nflxvideo.net": "netflix", + "flxvpn.net": "netflix", + "netflix.ca": "netflix", + "netflix.com.au": "netflix", + "netflix.net": "netflix", + "netflixdnstest1.com": "netflix", + "netflixdnstest10.com": "netflix", + "netflixdnstest2.com": "netflix", + "netflixdnstest3.com": "netflix", + "netflixdnstest4.com": "netflix", + "netflixdnstest5.com": "netflix", + "netflixdnstest6.com": "netflix", + "netflixdnstest7.com": "netflix", + "netflixdnstest8.com": "netflix", + "netflixdnstest9.com": "netflix", + "netflixinvestor.com": "netflix", + "netflixstudios.com": "netflix", + "netflixtechblog.com": "netflix", + "nflximg.com": "netflix", + "netify.ai": "netify", + "netzathleten-media.de": "netletix", + "netminers.dk": "netminers", + "netmining.com": "netmining", + "netmng.com": "netmining", + "stat.netmonitor.fi": "netmonitor", + "glanceguide.com": "netratings_sitecensus", + "imrworldwide.com": "netratings_sitecensus", + "vizu.com": "netratings_sitecensus", + "netrk.net": "netrk.net", + "netseer.com": "netseer", + "netshelter.net": "netshelter", + "nsaudience.pl": "netsprint_audience", + "nwidget.networkedblogs.com": "networkedblogs", + "adadvisor.net": "neustar_adadvisor", + "d1ros97qkrwjf5.cloudfront.net": "new_relic", + "newrelic.com": "new_relic", + "nr-data.net": "new_relic", + "codestream.com": "new_relic", + "newscgp.com": "newscgp.com", + "nmcdn.us": "newsmax", + "newstogram.com": "newstogram", + "newsupdatedir.info": "newsupdatedir.info", + "newsupdatewe.info": "newsupdatewe.info", + "ads.newtention.net": "newtention", + "ads.newtentionassets.net": "newtention", + "nexage.com": "nexage", + "nexeps.com": "nexeps.com", + "nxtck.com": "next_performance", + "track.nextuser.com": "next_user", + "imgsrv.nextag.com": "nextag_roi_optimizer", + "nextclick.pl": "nextclick", + "nextstat.com": "nextstat", + "d1d8vn0fpluuz7.cloudfront.net": "neytiv", + "ads.ngageinc.com": "ngage_inc.", + "nice264.com": "nice264.com", + "nimblecommerce.com": "nimblecommerce", + "nineanalytics.io": "nine_direct_digital", + "cho-chin.com": "ninja_access_analysis", + "donburako.com": "ninja_access_analysis", + "hishaku.com": "ninja_access_analysis", + "shinobi.jp": "ninja_access_analysis", + "static.nirror.com": "nirror", + "nitropay.com": "nitropay", + "nk.pl": "nk.pl_widgets", + "noaa.gov": "noaa.gov", + "track.noddus.com": "noddus", + "contextbar.ru": "nolix", + "nonli.com": "nonli", + "non.li": "nonli", + "trkme.net": "nonstop_consulting", + "noop.style": "noop.style", + "nosto.com": "nosto.com", + "adleadevent.com": "notify", + "notifyfox.com": "notifyfox", + "notion.so": "notion", + "nowinteract.com": "now_interact", + "npario-inc.net": "npario", + "nplexmedia.com": "nplexmedia", + "nrelate.com": "nrelate", + "ns8.com": "ns8", + "nt.vc": "nt.vc", + "featurelink.com": "ntent", + "ntp.org": "ntppool", + "ntppool.org": "ntppool", + "tracer.jp": "nttcom_online_marketing_solutions", + "nuffnang.com": "nuffnang", + "nuggad.net": "nugg.ad", + "rotator.adjuggler.com": "nui_media", + "numbers.md": "numbers.md", + "channeliq.com": "numerator", + "nyacampwk.com": "nyacampwk.com", + "nyetm2mkch.com": "nyetm2mkch.com", + "nyt.com": "nyt.com", + "nytimes.com": "nyt.com", + "o12zs3u2n.com": "o12zs3u2n.com", + "o2.pl": "o2.pl", + "o2online.de": "o2online.de", + "oath.com": "oath_inc", + "observerapp.com": "observer", + "ocioso.com.br": "ocioso", + "oclasrv.com": "oclasrv.com", + "octapi.net": "octapi.net", + "service.octavius.rocks": "octavius", + "office.com": "office.com", + "office.net": "office.net", + "office365.com": "office365.com", + "oghub.io": "oghub.io", + "ohmystats.com": "oh_my_stats", + "adohana.com": "ohana_advertising_network", + "photorank.me": "olapic", + "olark.com": "olark", + "olx-st.com": "olx-st.com", + "onap.io": "olx-st.com", + "omarsys.com": "omarsys.com", + "ometria.com": "ometria", + "omgpm.com": "omg", + "omniconvert.com": "omniconvert.com", + "omnidsp.com": "omniscienta", + "oms.eu": "oms", + "omsnative.de": "oms", + "onaudience.com": "onaudience", + "btc-echode.api.oneall.com": "oneall", + "tracking.onefeed.co.uk": "onefeed", + "onesignal.com": "onesignal", + "os.tc": "onesignal", + "stat.onestat.com": "onestat", + "ocdn.eu": "onet.pl", + "onet.pl": "onet.pl", + "onetag.com": "onetag", + "s-onetag.com": "onetag", + "onetrust.com": "onetrust", + "fogl1onf.com": "onfocus.io", + "onfocus.io": "onfocus.io", + "onlinewebstat.com": "onlinewebstat", + "onlinewebstats.com": "onlinewebstat", + "onswipe.com": "onswipe", + "onthe.io": "onthe.io", + "moon-ray.com": "ontraport_autopilot", + "moonraymarketing.com": "ontraport_autopilot", + "ooyala.com": "ooyala.com", + "openadex.dk": "open_adexchange", + "247realmedia.com": "open_adstream", + "oaserve.com": "open_adstream", + "realmedia.com": "open_adstream", + "realmediadigital.com": "open_adstream", + "opensharecount.com": "open_share_count", + "chatgpt.com": "openai", + "oaistatic.com": "openai", + "oaiusercontent.com": "openai", + "openai.com": "openai", + "oloadcdn.net": "openload", + "openload.co": "openload", + "openstat.net": "openstat", + "spylog.com": "openstat", + "spylog.ru": "openstat", + "opentracker.net": "opentracker", + "openwebanalytics.com": "openwebanalytics", + "odnxs.net": "openx", + "openx.net": "openx", + "openx.org": "openx", + "openxenterprise.com": "openx", + "servedbyopenx.com": "openx", + "adsummos.net": "operative_media", + "opinary.com": "opinary", + "opinionbar.com": "opinionbar", + "emagazines.com": "oplytic", + "allawnos.com": "oppo", + "allawntech.com": "oppo", + "heytapdl.com": "oppo", + "heytapmobi.com": "oppo", + "heytapmobile.com": "oppo", + "oppomobile.com": "oppo", + "opta.net": "opta.net", + "optaim.com": "optaim", + "cookielaw.org": "optanaon", + "service.optify.net": "optify", + "optimatic.com": "optimatic", + "optmd.com": "optimax_media_delivery", + "optimicdn.com": "optimicdn.com", + "optimizely.com": "optimizely", + "episerver.net": "optimizely", + "optimonk.com": "optimonk", + "mstrlytcs.com": "optinmonster", + "optmnstr.com": "optinmonster", + "optmstr.com": "optinmonster", + "optnmstr.com": "optinmonster", + "optincollect.com": "optinproject.com", + "volvelle.tech": "optomaton", + "ora.tv": "ora.tv", + "oracleinfinity.io": "oracle_infinity", + "instantservice.com": "oracle_live_help", + "ts.istrack.com": "oracle_live_help", + "rightnowtech.com": "oracle_rightnow", + "rnengage.com": "oracle_rightnow", + "orange.fr": "orange", + "orangeads.fr": "orange", + "ads.orange142.com": "orange142", + "wanadoo.fr": "orange_france", + "otracking.com": "orangesoda", + "emxdgt.com": "orc_international", + "static.ordergroove.com": "order_groove", + "orelsite.ru": "orel_site", + "otclick-adv.ru": "otclick", + "othersearch.info": "othersearch.info", + "otm-r.com": "otm-r.com", + "otto.de": "otto.de", + "ottogroup.media": "otto.de", + "outbrain.com": "outbrain", + "outbrainimg.com": "outbrain", + "live.com": "outlook", + "cloud.microsoft": "outlook", + "hotmail.com": "outlook", + "outlook.com": "outlook", + "svc.ms": "outlook", + "overheat.it": "overheat.it", + "oewabox.at": "owa", + "owneriq.net": "owneriq", + "ownpage.fr": "ownpage", + "owox.com": "owox.com", + "adconnexa.com": "oxamedia", + "adsbwm.com": "oxamedia", + "oxomi.com": "oxomi.com", + "oztam.com.au": "oztam", + "pageanalytics.space": "pageanalytics.space", + "blockmetrics.com": "pagefair", + "pagefair.com": "pagefair", + "pagefair.net": "pagefair", + "btloader.com": "pagefair", + "ghmedia.com": "pagescience", + "777seo.com": "paid-to-promote", + "paid-to-promote.net": "paid-to-promote", + "ptp22.com": "paid-to-promote", + "ptp33.com": "paid-to-promote", + "paperg.com": "paperg", + "pardot.com": "pardot", + "d1z2jf7jlzjs58.cloudfront.net": "parsely", + "parsely.com": "parsely", + "partner-ads.com": "partner-ads", + "passionfruitads.com": "passionfruit", + "pathful.com": "pathful", + "pay-hit.com": "pay-hit", + "payclick.it": "payclick", + "app.paykickstart.com": "paykickstart", + "paypal.com": "paypal", + "paypalobjects.com": "paypal", + "pcvark.com": "pcvark.com", + "peer39.com": "peer39", + "peer39.net": "peer39", + "peer5.com": "peer5.com", + "peerius.com": "peerius", + "pendo.io": "pendo.io", + "pepper.com": "pepper.com", + "gopjn.com": "pepperjam", + "pjatr.com": "pepperjam", + "pjtra.com": "pepperjam", + "pntra.com": "pepperjam", + "pntrac.com": "pepperjam", + "pntrs.com": "pepperjam", + "player.pepsia.com": "pepsia", + "perfdrive.com": "perfdrive.com", + "perfectaudience.com": "perfect_audience", + "prfct.co": "perfect_audience", + "perfectmarket.com": "perfect_market", + "perfops.io": "perfops", + "performgroup.com": "perform_group", + "analytics.performable.com": "performable", + "performancing.com": "performancing_metrics", + "performax.cz": "performax", + "perimeterx.net": "perimeterx.net", + "permutive.com": "permutive", + "persgroep.net": "persgroep", + "persianstat.com": "persianstat", + "code.pers.io": "persio", + "counter.personyze.com": "personyze", + "petametrics.com": "petametrics", + "ads.pheedo.com": "pheedo", + "app.phonalytics.com": "phonalytics", + "d2bgg7rjywcwsy.cloudfront.net": "phunware", + "piguiqproxy.com": "piguiqproxy.com", + "trgt.eu": "pilot", + "pingdom.net": "pingdom", + "pinimg.com": "pinterest", + "pinterest.com": "pinterest", + "app.pipz.io": "pipz", + "disabled.invalid": "piwik", + "piwik.pro": "piwik_pro_analytics_suite", + "adrta.com": "pixalate", + "app.pixelpop.co": "pixel_union", + "pixfuture.net": "pixfuture", + "vast1.pixfuture.com": "pixfuture", + "piximedia.com": "piximedia", + "pizzaandads.com": "pizzaandads_com", + "ads.placester.net": "placester", + "d3uemyw1e5n0jw.cloudfront.net": "placester", + "pladform.com": "pladform.ru", + "tag.bi.serviceplan.com": "plan.net_experience_cloud", + "pfrm.co": "platform360", + "impact-ad.jp": "platformone", + "loveadvert.ru": "play_by_mamba", + "playbuzz.com": "playbuzz.com", + "pof.com": "plenty_of_fish", + "plex.bz": "plex", + "plex.direct": "plex", + "plex.tv": "plex", + "analytics.plex.tv": "plex_metrics", + "metrics.plex.tv": "plex_metrics", + "plista.com": "plista", + "plugrush.com": "plugrush", + "pluso.ru": "pluso.ru", + "plutusads.com": "plutusads", + "pmddby.com": "pmddby.com", + "pnamic.com": "pnamic.com", + "po.st": "po.st", + "widgets.getpocket.com": "pocket", + "pocketcents.com": "pocketcents", + "pointificsecure.com": "pointific", + "pointroll.com": "pointroll", + "poirreleast.club": "poirreleast.club", + "mediavoice.com": "polar.me", + "polar.me": "polar.me", + "polarmobile.com": "polar.me", + "polldaddy.com": "polldaddy", + "polyad.net": "polyad", + "polyfill.io": "polyfill.io", + "popads.net": "popads", + "popadscdn.net": "popads", + "popcash.net": "popcash", + "popcashjs.b-cdn.net": "popcash", + "desv383oqqc0.cloudfront.net": "popcorn_metrics", + "popin.cc": "popin.cc", + "cdn.popmyads.com": "popmyads", + "poponclick.com": "poponclick", + "populis.com": "populis", + "populisengage.com": "populis", + "phncdn.com": "pornhub", + "pornhub.com": "pornhub", + "prscripts.com": "pornwave", + "prstatics.com": "pornwave", + "prwidgets.com": "pornwave", + "barra.brasil.gov.br": "porta_brazil", + "postaffiliatepro.com": "post_affiliate_pro", + "powerlinks.com": "powerlinks", + "powerreviews.com": "powerreviews", + "powr.io": "powr.io", + "api.pozvonim.com": "pozvonim", + "prebid.org": "prebid", + "precisionclick.com": "precisionclick", + "adserver.com.br": "predicta", + "predicta.net": "predicta", + "prnx.net": "premonix", + "ppjol.com": "press", + "ppjol.net": "press", + "api.pressly.com": "pressly", + "pricegrabber.com": "pricegrabber", + "cdn.pricespider.com": "pricespider", + "pmdrecrute.com": "prismamediadigital.com", + "prismamediadigital.com": "prismamediadigital.com", + "privy.com": "privy.com", + "pswec.com": "proclivity", + "prodperfect.com": "prodperfect", + "lib.productsup.io": "productsup", + "proadsnet.com": "profiliad", + "profitshare.ro": "profitshare", + "tracking.proformics.com": "proformics", + "programattik.com": "programattik", + "projectwonderful.com": "project_wonderful", + "propelmarketing.com": "propel_marketing", + "oclaserver.com": "propeller_ads", + "onclasrv.com": "propeller_ads", + "onclickads.net": "propeller_ads", + "onclkds.com": "propeller_ads", + "propellerads.com": "propeller_ads", + "propellerpops.com": "propeller_ads", + "proper.io": "propermedia", + "st-a.props.id": "props", + "propvideo.net": "propvideo_net", + "tr.prospecteye.com": "prospecteye", + "prosperent.com": "prosperent", + "prostor-lite.ru": "prostor", + "reports.proton.me": "proton_ag", + "providesupport.com": "provide_support", + "proximic.com": "proximic", + "proxistore.com": "proxistore.com", + "pscp.tv": "pscp.tv", + "pstatic.net": "pstatic.net", + "psyma.com": "psyma", + "ptengine.jp": "pt_engine", + "pub-fit.com": "pub-fit", + "pub.network": "pub.network", + "learnpipe.com": "pubble", + "pubble.co": "pubble", + "pubdirecte.com": "pubdirecte", + "pubgears.com": "pubgears", + "publicidees.com": "public_ideas", + "publicidad.net": "publicidad.net", + "intgr.net": "publir", + "pubmatic.com": "pubmatic", + "pubnub.com": "pubnub.com", + "puboclic.com": "puboclic", + "pulpix.com": "pulpix.com", + "tentaculos.net": "pulpo_media", + "pulse360.com": "pulse360", + "pulseinsights.com": "pulse_insights", + "contextweb.com": "pulsepoint", + "pulsepoint.com": "pulsepoint", + "punchtab.com": "punchtab", + "purch.com": "purch", + "servebom.com": "purch", + "purechat.com": "pure_chat", + "cdn.pprl.io": "pureprofile", + "oopt.fr": "purlive", + "puserving.com": "puserving.com", + "push.world": "push.world", + "pushengage.com": "push_engage", + "pushame.com": "pushame.com", + "zebra.pushbullet.com": "pushbullet", + "pushcrew.com": "pushcrew", + "pusher.com": "pusher.com", + "pusherapp.com": "pusher.com", + "pushnative.com": "pushnative.com", + "cdn.pushnews.eu": "pushnews", + "pushno.com": "pushno.com", + "pushwhy.com": "pushwhy.com", + "pushwoosh.com": "pushwoosh.com", + "pvclouds.com": "pvclouds.com", + "ads.q1media.com": "q1media", + "q1mediahydraplatform.com": "q1media", + "q-divisioncdn.de": "q_division", + "qbaka.net": "qbaka", + "track.qcri.org": "qcri_analytics", + "collect.qeado.com": "qeado", + "s.lianmeng.360.cn": "qihoo_360", + "qq.com": "qq.com", + "qrius.me": "qrius", + "qualaroo.com": "qualaroo", + "qualcomm.com": "qualcomm", + "gpsonextra.net": "qualcomm_location_service", + "izatcloud.net": "qualcomm_location_service", + "xtracloud.net": "qualcomm_location_service", + "bluecava.com": "qualia", + "qualtrics.com": "qualtrics", + "quantcast.com": "quantcast", + "quantserve.com": "quantcast", + "quantcount.com": "quantcount", + "quantummetric.com": "quantum_metric", + "quartic.pl": "quartic.pl", + "quarticon.com": "quartic.pl", + "d3c3cq33003psk.cloudfront.net": "qubit", + "qubit.com": "qubit", + "easyresearch.se": "questback", + "queue-it.net": "queue-it", + "quick-counter.net": "quick-counter.net", + "adsonar.com": "quigo_adsonar", + "qnsr.com": "quinstreet", + "quinstreet.com": "quinstreet", + "thecounter.com": "quinstreet", + "quintelligence.com": "quintelligence", + "qservz.com": "quisma", + "quisma.com": "quisma", + "quora.com": "quora.com", + "ads-digitalkeys.com": "r_advertising", + "rackcdn.com": "rackcdn.com", + "radarurl.com": "radarurl", + "dsa.csdata1.com": "radial", + "gwallet.com": "radiumone", + "r1-cdn.net": "radiumone", + "widget.raisenow.com": "raisenow", + "mediaforge.com": "rakuten_display", + "rmtag.com": "rakuten_display", + "rakuten.co.jp": "rakuten_globalmarket", + "trafficgate.net": "rakuten_globalmarket", + "mtwidget04.affiliate.rakuten.co.jp": "rakuten_widget", + "xml.affilliate.rakuten.co.jp": "rakuten_widget", + "rambler.ru": "rambler", + "top100.ru": "rambler", + "rapidspike.com": "rapidspike", + "ravelin.com": "ravelin", + "rawgit.com": "rawgit", + "raygun.io": "raygun", + "count.rbc.ru": "rbc_counter", + "rcs.it": "rcs.it", + "rcsmediagroup.it": "rcs.it", + "d335luupugsy2.cloudfront.net": "rd_station", + "rea-group.com": "rea_group", + "reagroupdata.com.au": "rea_group", + "reastatic.net": "rea_group", + "d12ulf131zb0yj.cloudfront.net": "reachforce", + "reachforce.com": "reachforce", + "reachjunction.com": "reachjunction", + "cdn.rlets.com": "reachlocal", + "reachlocal.com": "reachlocal", + "reachlocallivechat.com": "reachlocal", + "rlcdn.net": "reachlocal", + "plugin.reactful.com": "reactful", + "reactivpub.fr": "reactivpub", + "skinected.com": "reactx", + "readrboard.com": "readerboard", + "readme.com": "readme", + "readme.io": "readme", + "readspeaker.com": "readspeaker.com", + "realclick.co.kr": "realclick", + "realestate.com.au": "realestate.com.au", + "realperson.de": "realperson.de", + "powermarketing.com": "realtime", + "realtime.co": "realtime", + "webspectator.com": "realtime", + "dcniko1cv0rz.cloudfront.net": "realytics", + "realytics.io": "realytics", + "static.rbl.ms": "rebel_mouse", + "recaptcha.net": "recaptcha", + "recettes.net": "recettes.net", + "static.recopick.com": "recopick", + "recreativ.ru": "recreativ", + "analytics.recruitics.com": "recruitics", + "analytics.cohesionapps.com": "red_ventures", + "cdn.cohesionapps.com": "red_ventures", + "redblue.de": "redblue_de", + "atendesoftware.pl": "redcdn.pl", + "redd.it": "reddit", + "reddit-image.s3.amazonaws.com": "reddit", + "reddit.com": "reddit", + "redditmedia.com": "reddit", + "redditstatic.com": "reddit", + "redhelper.ru": "redhelper", + "pixelinteractivemedia.com": "redlotus", + "triggit.com": "redlotus", + "grt01.com": "redtram", + "grt02.com": "redtram", + "redtram.com": "redtram", + "rdtcdn.com": "redtube.com", + "redtube.com": "redtube.com", + "reduxmedia.com": "redux_media", + "reduxmediagroup.com": "redux_media", + "reedbusiness.net": "reed_business_information", + "reembed.com": "reembed.com", + "reevoo.com": "reevoo.com", + "refericon.pl": "refericon", + "ads.referlocal.com": "referlocal", + "refersion.com": "refersion", + "refinedads.com": "refined_labs", + "product.reflektion.com": "reflektion", + "reformal.ru": "reformal", + "reinvigorate.net": "reinvigorate", + "convertglobal.com": "rekko", + "convertglobal.s3.amazonaws.com": "rekko", + "dnhgz729v27ca.cloudfront.net": "rekko", + "reklamstore.com": "reklam_store", + "ad.reklamport.com": "reklamport", + "delivery.reklamz.com": "reklamz", + "adimg.rekmob.com": "rekmob", + "relap.io": "relap", + "svtrd.com": "relay42", + "synovite-scripts.com": "relay42", + "tdn.r42tag.com": "relay42", + "relestar.com": "relestar", + "relevant4.com": "relevant4.com", + "remintrex.com": "remintrex", + "remove.video": "remove.video", + "rp-api.com": "repost.us", + "republer.com": "republer.com", + "resmeter.respublica.al": "res-meter", + "researchnow.com": "research_now", + "reson8.com": "resonate_networks", + "respondhq.com": "respond", + "adinsight.com": "responsetap", + "adinsight.eu": "responsetap", + "responsetap.com": "responsetap", + "data.resultlinks.com": "result_links", + "sli-system.com": "resultspage.com", + "retailrocket.net": "retailrocket.net", + "retailrocket.ru": "retailrocket.net", + "shopify.retargetapp.com": "retarget_app", + "retargeter.com": "retargeter_beacon", + "retargeting.cl": "retargeting.cl", + "d1stxfv94hrhia.cloudfront.net": "retention_science", + "waves.retentionscience.com": "retention_science", + "reutersmedia.net": "reuters_media", + "revcontent.com": "revcontent", + "socialtwist.com": "reve_marketing", + "revenue.com": "revenue", + "clkads.com": "revenuehits", + "clkmon.com": "revenuehits", + "clkrev.com": "revenuehits", + "clksite.com": "revenuehits", + "eclkspbn.com": "revenuehits", + "imageshack.host": "revenuehits", + "revenuemantra.com": "revenuemantra", + "revive-adserver.com": "revive_adserver", + "revolvermaps.com": "revolver_maps", + "cts.tradepub.com": "revresponse", + "revresponse.com": "revresponse", + "incontext.pl": "rewords", + "pl-engine.intextad.net": "rewords", + "addesktop.com": "rhythmone", + "1rx.io": "rhythmone_beacon", + "ria.ru": "ria.ru", + "rmbn.ru": "rich_media_banner_network", + "ics0.com": "richrelevance", + "richrelevance.com": "richrelevance", + "ringier.ch": "ringier.ch", + "meteorsolutions.com": "rio_seo", + "riskified.com": "riskfield.com", + "rncdn3.com": "rncdn3.com", + "ro2.biz": "ro2.biz", + "rbxcdn.com": "roblox", + "getrockerbox.com": "rockerbox", + "rocket.la": "rocket.ia", + "trk.sodoit.com": "roi_trax", + "collector.roistat.com": "roistat", + "rollad.ru": "rollad", + "d37gvrvc0wt4s1.cloudfront.net": "rollbar", + "get.roost.me": "roost", + "getrooster.com": "rooster", + "rqtrk.eu": "roq.ad", + "rotaban.ru": "rotaban", + "routenplaner-karten.com": "routenplaner-karten.com", + "rovion.com": "rovion", + "rsspump.com": "rsspump", + "creativecdn.com": "rtb_house", + "rvty.net": "rtblab", + "rtbsuperhub.com": "rtbsuperhub.com", + "rtl.de": "rtl_group", + "static-fra.de": "rtl_group", + "technical-service.net": "rtl_group", + "rtmark.net": "rtmark.net", + "dpclk.com": "rubicon", + "mobsmith.com": "rubicon", + "nearbyad.com": "rubicon", + "rubiconproject.com": "rubicon", + "tracker.ruhrgebiet-onlineservices.de": "ruhrgebiet", + "click.rummycircle.com": "rummycircle", + "runadtag.com": "run", + "rundsp.com": "run", + "un-syndicate.com": "runative", + "cdn.secretrune.com": "rune", + "runmewivel.com": "runmewivel.com", + "rhythmxchange.com": "rythmxchange", + "s24.com": "s24_com", + "s3xified.com": "s3xified.com", + "camp.sabavision.com": "sabavision", + "sageanalyst.net": "sagemetrics", + "sail-horizon.com": "sailthru_horizon", + "sail-personalize.com": "sailthru_horizon", + "sailthru.com": "sailthru_horizon", + "d16fk4ms6rqz1v.cloudfront.net": "salecycle", + "salecycle.com": "salecycle", + "api.salesfeed.com": "sales_feed", + "salesmanago.com": "sales_manago", + "salesmanago.pl": "sales_manago", + "force.com": "salesforce.com", + "salesforce.com": "salesforce.com", + "liveagentforsalesforce.com": "salesforce_live_agent", + "salesforceliveagent.com": "salesforce_live_agent", + "msgapp.com": "salesfusion", + "salespidermedia.com": "salespider_media", + "salesviewer.com": "salesviewer", + "samba.tv": "samba.tv", + "game-mode.net": "samsung", + "gos-gsp.io": "samsung", + "lldns.net": "samsung", + "pavv.co.kr": "samsung", + "remotesamsung.com": "samsung", + "samsung-gamelauncher.com": "samsung", + "samsung.co.kr": "samsung", + "samsung.com": "samsung", + "samsung.com.cn": "samsung", + "samsungcloud.com": "samsung", + "samsungcloudcdn.com": "samsung", + "samsungcloudprint.com": "samsung", + "samsungcloudsolution.com": "samsung", + "samsungcloudsolution.net": "samsung", + "samsungelectronics.com": "samsung", + "samsunghealth.com": "samsung", + "samsungiotcloud.com": "samsung", + "samsungknox.com": "samsung", + "samsungnyc.com": "samsung", + "samsungosp.com": "samsung", + "samsungotn.net": "samsung", + "samsungpositioning.com": "samsung", + "samsungqbe.com": "samsung", + "samsungrm.net": "samsung", + "samsungrs.com": "samsung", + "samsungsemi.com": "samsung", + "samsungsetup.com": "samsung", + "samsungusa.com": "samsung", + "secb2b.com": "samsung", + "smartthings.com": "samsung", + "adgear.com": "samsungads", + "adgrx.com": "samsungads", + "samsungacr.com": "samsungads", + "samsungadhub.com": "samsungads", + "samsungads.com": "samsungads", + "samsungtifa.com": "samsungads", + "aibixby.com": "samsungapps", + "findmymobile.samsung.com": "samsungapps", + "samsapps.cust.lldns.net": "samsungapps", + "samsung-omc.com": "samsungapps", + "samsungapps.com": "samsungapps", + "samsungdiroute.net": "samsungapps", + "samsungdive.com": "samsungapps", + "samsungdm.com": "samsungapps", + "samsungdmroute.com": "samsungapps", + "samsungmdec.com": "samsungapps", + "samsungvisioncloud.com": "samsungapps", + "sbixby.com": "samsungapps", + "ospserver.net": "samsungmobile", + "samsungdms.net": "samsungmobile", + "samsungmax.com": "samsungmobile", + "samsungmobile.com": "samsungmobile", + "secmobilesvc.com": "samsungmobile", + "push.samsungosp.com": "samsungpush", + "pushmessage.samsung.com": "samsungpush", + "scs.samsungqbe.com": "samsungpush", + "ssp.samsung.com": "samsungpush", + "samsungsds.com": "samsungsds", + "internetat.tv": "samsungtv", + "samsungcloud.tv": "samsungtv", + "tizenservice.com": "samsungtv", + "ilsemedia.nl": "sanoma.fi", + "sanoma.fi": "sanoma.fi", + "d13im3ek7neeqp.cloudfront.net": "sap_crm", + "d28ethi6slcjbm.cloudfront.net": "sap_crm", + "d2uevgmgh16uk4.cloudfront.net": "sap_crm", + "d3m83gvgzupli.cloudfront.net": "sap_crm", + "saas.seewhy.com": "sap_crm", + "leadforce1.com": "sap_sales_cloud", + "vlog.leadformix.com": "sap_sales_cloud", + "sap-xm.org": "sap_xm", + "sape.ru": "sape.ru", + "js.sl.pt": "sapo_ads", + "aimatch.com": "sas", + "sas.com": "sas", + "say.ac": "say.ac", + "ads.saymedia.com": "say_media", + "srv.sayyac.net": "sayyac", + "scarabresearch.com": "scarabresearch", + "schibsted.com": "schibsted", + "schibsted.io": "schibsted", + "schneevonmorgen.com": "schneevonmorgen.com", + "svonm.com": "schneevonmorgen.com", + "rockabox.co": "scoota", + "scorecardresearch.com": "scorecard_research_beacon", + "scoreresearch.com": "scorecard_research_beacon", + "scrsrch.com": "scorecard_research_beacon", + "securestudies.com": "scorecard_research_beacon", + "scout.scoutanalytics.net": "scout_analytics", + "scribblelive.com": "scribblelive", + "scribol.com": "scribol", + "analytics.snidigital.com": "scripps_analytics", + "scroll.com": "scroll", + "scupio.com": "scupio", + "search123.uk.com": "search123", + "searchforce.net": "searchforce", + "searchignite.com": "searchignite", + "srtk.net": "searchrev", + "tacticalrepublic.com": "second_media", + "sectigo.com": "sectigo", + "securedtouch.com": "securedtouch", + "securedvisit.com": "securedvisit", + "bacontent.de": "seeding_alliance", + "nativendo.de": "seeding_alliance", + "seedtag.com": "seedtag.com", + "svlu.net": "seevolution", + "d2dq2ahtl5zl1z.cloudfront.net": "segment", + "d47xnnr8b1rki.cloudfront.net": "segment", + "segment.com": "segment", + "segment.io": "segment", + "rutarget.ru": "segmento", + "segmint.net": "segmint", + "sekindo.com": "sekindo", + "sellpoint.net": "sellpoints", + "sellpoints.com": "sellpoints", + "semantiqo.com": "semantiqo.com", + "semasio.net": "semasio", + "semilo.com": "semilo", + "semknox.com": "semknox.com", + "sibautomation.com": "sendinblue", + "sendpulse.com": "sendpulse.com", + "sendsay.ru": "sendsay", + "track.sensedigital.in": "sense_digital", + "static.sensorsdata.cn": "sensors_data", + "sentifi.com": "sentifi.com", + "d3nslu0hdya83q.cloudfront.net": "sentry", + "getsentry.com": "sentry", + "ravenjs.com": "sentry", + "sentry.io": "sentry", + "sepyra.com": "sepyra", + "d2oh4tlt9mrke9.cloudfront.net": "sessioncam", + "sessioncam.com": "sessioncam", + "sessionly.io": "sessionly", + "71i.de": "sevenone_media", + "sexad.net": "sexadnetwork", + "ads.sexinyourcity.com": "sexinyourcity", + "sextracker.com": "sextracker", + "sexypartners.net": "sexypartners.net", + "im.cz": "seznam", + "imedia.cz": "seznam", + "szn.cz": "seznam", + "dtym7iokkjlif.cloudfront.net": "shareaholic", + "shareaholic.com": "shareaholic", + "shareasale.com": "shareasale", + "quintrics.nl": "sharecompany", + "sharecompany.nl": "sharecompany", + "sharepointonline.com": "sharepoint", + "onmicrosoft.com": "sharepoint", + "sharepoint.com": "sharepoint", + "sharethis.com": "sharethis", + "shareth.ru": "sharethrough", + "sharethrough.com": "sharethrough", + "marketingautomation.services": "sharpspring", + "sharpspring.com": "sharpspring", + "sheego.de": "sheego.de", + "services.sheerid.com": "sheerid", + "shinystat.com": "shinystat", + "shinystat.it": "shinystat", + "app.shoptarget.com.br": "shop_target", + "retargeter.com.br": "shop_target", + "shopauskunft.de": "shopauskunft.de", + "shopgate.com": "shopgate.com", + "shopify.com": "shopify", + "shopifycdn.com": "shopify", + "cdn.shopify.com": "shopify", + "myshopify.com": "shopify", + "shop.app": "shopify", + "shopify.co.za": "shopify", + "shopify.com.au": "shopify", + "shopify.com.mx": "shopify", + "shopify.dev": "shopify", + "shopifyapps.com": "shopify", + "shopifycdn.net": "shopify", + "shopifynetwork.com": "shopify", + "shopifypreview.com": "shopify", + "shopifysvc.com": "shopify_stats", + "stats.shopify.com": "shopify_stats", + "v.shopify.com": "shopify_stats", + "shopifycloud.com": "shopifycloud.com", + "shopperapproved.com": "shopper_approved", + "shoppingshadow.com": "shopping_com", + "tracking.shopping-flux.com": "shopping_flux", + "shoprunner.com": "shoprunner", + "shopsocially.com": "shopsocially", + "shopzilla.com": "shopzilla", + "shortnews.de": "shortnews", + "showrss.info": "showrss", + "shink.in": "shrink", + "shutterstock.com": "shutterstock", + "siblesectiveal.club": "siblesectiveal.club", + "d3v27wwd40f0xu.cloudfront.net": "sidecar", + "getsidecar.com": "sidecar", + "dtlilztwypawv.cloudfront.net": "sift_science", + "siftscience.com": "sift_science", + "btstatic.com": "signal", + "signal.co": "signal", + "thebrighttag.com": "signal", + "cdn-scripts.signifyd.com": "signifyd", + "signifyd.com": "signifyd", + "gw-services.vtrenz.net": "silverpop", + "mkt51.net": "silverpop", + "mkt912.com": "silverpop", + "mkt922.com": "silverpop", + "mkt941.com": "silverpop", + "pages01.net": "silverpop", + "pages02.net": "silverpop", + "pages04.net": "silverpop", + "pages05.net": "silverpop", + "similardeals.net": "similardeals.net", + "similarweb.com": "similarweb", + "similarweb.io": "similarweb", + "d8rk54i4mohrb.cloudfront.net": "simplereach", + "simplereach.com": "simplereach", + "simpli.fi": "simpli.fi", + "sina.com.cn": "sina", + "sinaimg.cn": "sina_cdn", + "reporting.singlefeed.com": "singlefeed", + "sddan.com": "sirdata", + "site24x7rum.com": "site24x7", + "site24x7rum.eu": "site24x7", + "sitebooster-fjfmworld-production.azureedge.net": "site_booster", + "a5.ogt.jp": "site_stratos", + "siteapps.com": "siteapps", + "sitebro.com": "sitebro", + "sitebro.com.tw": "sitebro", + "sitebro.net": "sitebro", + "sitebro.tw": "sitebro", + "siteheart.com": "siteheart", + "siteimprove.com": "siteimprove", + "siteimproveanalytics.com": "siteimprove_analytics", + "sitelabweb.com": "sitelabweb.com", + "sitemeter.com": "sitemeter", + "pixel.ad": "sitescout", + "sitescout.com": "sitescout", + "ad.sitemaji.com": "sitetag", + "sitetag.us": "sitetag", + "analytics.sitewit.com": "sitewit", + "ads.sixapart.com": "six_apart_advertising", + "sixt-neuwagen.de": "sixt-neuwagen.de", + "skadtec.com": "skadtec.com", + "redirectingat.com": "skimlinks", + "skimlinks.com": "skimlinks", + "skimresources.com": "skimlinks", + "analytics.skroutz.gr": "skroutz", + "skyglue.com": "skyglue", + "skype.com": "skype", + "skypeassets.com": "skype", + "skysa.com": "skysa", + "skyscnr.com": "skyscnr.com", + "slack-edge.com": "slack", + "slack-imgs.com": "slack", + "slack.com": "slack", + "slackb.com": "slack", + "slashdot.org": "slashdot_widget", + "sleeknotestaticcontent.sleeknote.com": "sleeknote", + "resultspage.com": "sli_systems", + "builder.extensionfactory.com": "slice_factory", + "freeskreen.com": "slimcutmedia", + "slingpic.com": "slingpic", + "smaato.net": "smaato", + "smart4ads.com": "smart4ads", + "sascdn.com": "smart_adserver", + "smartadserver.com": "smart_adserver", + "styria-digital.com": "smart_adserver", + "yoc-adserver.com": "smart_adserver", + "smartcall.kz": "smart_call", + "getsmartcontent.com": "smart_content", + "smartdevicemedia.com": "smart_device_media", + "x.cnt.my": "smart_leads", + "tracking.smartselling.cz": "smart_selling", + "bepolite.eu": "smartad", + "smartbn.ru": "smartbn", + "smartclick.net": "smartclick.net", + "smartclip.net": "smartclip", + "smartcontext.pl": "smartcontext", + "d1n00d49gkbray.cloudfront.net": "smarter_remarketer", + "dhxtx5wtu812h.cloudfront.net": "smarter_remarketer", + "smartertravel.com": "smarter_travel", + "travelsmarter.net": "smarter_travel", + "smct.co": "smarterclick", + "smartertrack.com": "smartertrack", + "smartlink.cool": "smartlink.cool", + "getsmartlook.com": "smartlook", + "smartlook.com": "smartlook", + "smartstream.tv": "smartstream.tv", + "smartsuppchat.com": "smartsupp_chat", + "smi2.net": "smi2.ru", + "smi2.ru": "smi2.ru", + "stat.media": "smi2.ru", + "cdn.smooch.io": "smooch", + "smowtion.com": "smowtion", + "smxindia.in": "smx_ventures", + "smyte.com": "smyte", + "snacktv.de": "snacktv", + "snap.com": "snap", + "addlive.io": "snap", + "feelinsonice.com": "snap", + "sc-cdn.net": "snap", + "sc-corp.net": "snap", + "sc-gw.com": "snap", + "sc-jpl.com": "snap", + "sc-prod.net": "snap", + "snap-dev.net": "snap", + "snapads.com": "snap", + "snapkit.com": "snap", + "snapengage.com": "snap_engage", + "sc-static.net": "snapchat", + "snapchat.com": "snapchat", + "snapcraft.io": "snapcraft", + "snapcraftcontent.com": "snapcraft", + "h-bid.com": "snigelweb", + "eu2.snoobi.eu": "snoobi", + "snoobi.com": "snoobi_analytics", + "d346whrrklhco7.cloudfront.net": "snowplow", + "d78fikflryjgj.cloudfront.net": "snowplow", + "dc8xl0ndzn2cb.cloudfront.net": "snowplow", + "playwire.com": "snowplow", + "snplow.net": "snowplow", + "go-mpulse.net": "soasta_mpulse", + "mpstat.us": "soasta_mpulse", + "tiaa-cref.org": "soasta_mpulse", + "sociablelabs.com": "sociable_labs", + "socialamp.com": "social_amp", + "socialannex.com": "social_annex", + "soclminer.com.br": "social_miner", + "duu8lzqdm8tsz.cloudfront.net": "socialbeat", + "ratevoice.com": "socialrms", + "sociaplus.com": "sociaplus.com", + "sociomantic.com": "sociomantic", + "images.sohu.com": "sohu", + "sojern.com": "sojern", + "sokrati.com": "sokrati", + "solads.media": "solads.media", + "solaredge.com": "solaredge", + "solidopinion.com": "solidopinion", + "pixel.solvemedia.com": "solve_media", + "soma2.de": "soma_2", + "mobileadtrading.com": "somoaudience", + "sonobi.com": "sonobi", + "sonos.com": "sonos", + "sophus3.com": "sophus3", + "deployads.com": "sortable", + "sndcdn.com": "soundcloud", + "soundcloud.com": "soundcloud", + "provenpixel.com": "sourceknowledge_pixel", + "decenthat.com": "sourcepoint", + "summerhamster.com": "sourcepoint", + "d3pkae9owd2lcf.cloudfront.net": "sovrn", + "lijit.com": "sovrn", + "onscroll.com": "sovrn_viewability_solutions", + "rts.sparkstudios.com": "spark_studios", + "sparkasse.de": "sparkasse.de", + "speakpipe.com": "speakpipe", + "adviva.net": "specific_media", + "specificclick.net": "specific_media", + "specificmedia.com": "specific_media", + "spectate.com": "spectate", + "speedshiftmedia.com": "speed_shift_media", + "speedcurve.com": "speedcurve", + "admarket.entireweb.com": "speedyads", + "affiliate.entireweb.com": "speedyads", + "sa.entireweb.com": "speedyads", + "speee-ad.akamaized.net": "speee", + "sphere.com": "sphere", + "surphace.com": "sphere", + "api.spheremall.com": "spheremall", + "zdwidget3-bs.sphereup.com": "sphereup", + "static.sspicy.ru": "spicy", + "spider.ad": "spider.ad", + "metrics.spiderads.eu": "spider_ads", + "spn.ee": "spinnakr", + "embed.spokenlayer.com": "spokenlayer", + "spongecell.com": "spongecell", + "sponsorads.de": "sponsorads.de", + "sportsbetaffiliates.com.au": "sportsbet_affiliates", + "spot.im": "spot.im", + "spoteffects.net": "spoteffect", + "scdn.co": "spotify", + "spotify.com": "spotify", + "pscdn.co": "spotify", + "spotifycdn.com": "spotify", + "spotifycdn.net": "spotify", + "spotilocal.com": "spotify", + "embed.spotify.com": "spotify_embed", + "spotscenered.info": "spotscenered.info", + "spotx.tv": "spotxchange", + "spotxcdn.com": "spotxchange", + "spotxchange.com": "spotxchange", + "spoutable.com": "spoutable", + "cdn.springboardplatform.com": "springboard", + "springserve.com": "springserve", + "pixel.sprinklr.com": "sprinklr", + "stat.sputnik.ru": "sputnik", + "email-match.com": "squadata", + "squarespace.com": "squarespace.com", + "srvtrck.com": "srvtrck.com", + "srvvtrk.com": "srvvtrk.com", + "sstatic.net": "sstatic.net", + "hatena.ne.jp": "st-hatena", + "st-hatena.com": "st-hatena", + "stackadapt.com": "stackadapt", + "stackpathdns.com": "stackpathdns.com", + "stailamedia.com": "stailamedia_com", + "stalluva.pro": "stalluva.pro", + "startappservice.com": "startapp", + "hit.stat24.com": "stat24", + "adstat.4u.pl": "stat4u", + "stat.4u.pl": "stat4u", + "statcounter.com": "statcounter", + "stathat.com": "stathat", + "statisfy.net": "statisfy", + "statsy.net": "statsy.net", + "statuscake.com": "statuscake", + "statuspage.io": "statuspage.io", + "stspg-customer.com": "statuspage.io", + "stayfriends.de": "stayfriends.de", + "steelhousemedia.com": "steelhouse", + "steepto.com": "steepto.com", + "stepstone.com": "stepstone.com", + "4stats.de": "stetic", + "stetic.com": "stetic", + "stickyadstv.com": "stickyads", + "stocktwits.com": "stocktwits", + "storify.com": "storify", + "storygize.net": "storygize", + "bizsolutions.strands.com": "strands_recommender", + "strava.com": "strava", + "mailfoogae.appspot.com": "streak", + "streamotion.com.au": "streamotion", + "streamrail.com": "streamrail.com", + "streamrail.net": "streamrail.com", + "stridespark.com": "stride", + "stripcdn.com": "stripchat.com", + "stripchat.com": "stripchat.com", + "stripe.com": "stripe.com", + "stripe.network": "stripe.com", + "stripst.com": "stripst.com", + "interactivemedia.net": "stroer_digital_media", + "stroeerdigitalgroup.de": "stroer_digital_media", + "stroeerdigitalmedia.de": "stroer_digital_media", + "stroeerdp.de": "stroer_digital_media", + "stroeermediabrands.de": "stroer_digital_media", + "spklw.com": "strossle", + "sprinklecontent.com": "strossle", + "strossle.it": "strossle", + "struq.com": "struq", + "stumble-upon.com": "stumbleupon_widgets", + "stumbleupon.com": "stumbleupon_widgets", + "su.pr": "stumbleupon_widgets", + "sub2tech.com": "sub2", + "ayads.co": "sublime_skinz", + "suggest.io": "suggest.io", + "sumologic.com": "sumologic.com", + "sumo.com": "sumome", + "sumome.com": "sumome", + "sundaysky.com": "sundaysky", + "supercell.com": "supercell", + "supercellsupport.com": "supercell", + "supercounters.com": "supercounters", + "superfastcdn.com": "superfastcdn.com", + "socdm.com": "supership", + "supplyframe.com": "supplyframe", + "surfingbird.ru": "surf_by_surfingbird", + "px.surveywall-api.survata.com": "survata", + "cdn.sweettooth.io": "sweettooth", + "swiftypecdn.com": "swiftype", + "swisscom.ch": "swisscom", + "myswitchads.com": "switch_concepts", + "switchadhub.com": "switch_concepts", + "switchads.com": "switch_concepts", + "switchafrica.com": "switch_concepts", + "switch.tv": "switchtv", + "shopximity.com": "swoop", + "swoop.com": "swoop", + "analytics-cdn.sykescottages.co.uk": "sykes", + "norton.com": "symantec", + "seal.verisign.com": "symantec", + "symantec.com": "symantec", + "d.hodes.com": "symphony_talent", + "technorati.com": "synacor", + "technoratimedia.com": "synacor", + "cn.clickable.net": "syncapse", + "synergy-e.com": "synergy-e", + "sdp-campaign.de": "t-mobile", + "t-online.de": "t-mobile", + "telekom-dienste.de": "t-mobile", + "telekom.com": "t-mobile", + "telekom.de": "t-mobile", + "toi.de": "t-mobile", + "t8cdn.com": "t8cdn.com", + "tableteducation.com": "tableteducation.com", + "basebanner.com": "taboola", + "taboola.com": "taboola", + "taboolasyndication.com": "taboola", + "tacoda.net": "tacoda", + "commander1.com": "tag_commander", + "tagcommander.com": "tag_commander", + "tags.tagcade.com": "tagcade", + "taggify.net": "taggify", + "taggyad.jp": "taggy", + "levexis.com": "tagman", + "tailtarget.com": "tail_target", + "tailsweep.com": "tailsweep", + "tamedia.ch": "tamedia.ch", + "tanx.com": "tanx", + "alipcsec.com": "taobao", + "taobao.com": "taobao", + "tapad.com": "tapad", + "theblogfrog.com": "tapinfluence", + "tarafdari.com": "tarafdari", + "target2sell.com": "target_2_sell", + "trackmytarget.com": "target_circle", + "cdn.targetfuel.com": "target_fuel", + "tawk.to": "tawk", + "tbn.ru": "tbn.ru", + "tchibo-content.de": "tchibo_de", + "tchibo.de": "tchibo_de", + "tdsrmbl.net": "tdsrmbl_net", + "teads.tv": "teads", + "tealeaf.ibmcloud.com": "tealeaf", + "tealium.com": "tealium", + "tealium.hs.llnwd.net": "tealium", + "tealiumiq.com": "tealium", + "tiqcdn.com": "tealium", + "teaser.cc": "teaser.cc", + "emailretargeting.com": "tedemis", + "tracking.dsmmadvantage.com": "teletech", + "telstra.com": "telstra", + "telstra.com.au": "telstra", + "tenderapp.com": "tender", + "tensitionschoo.club": "tensitionschoo.club", + "watch.teroti.com": "teroti", + "webterren.com": "terren", + "teufel.de": "teufel.de", + "theadex.com": "the_adex", + "connect.decknetwork.net": "the_deck", + "gu-web.net": "the_guardian", + "guardianapps.co.uk": "the_guardian", + "guim.co.uk": "the_guardian", + "deepthought.online": "the_reach_group", + "reachgroup.com": "the_reach_group", + "redintelligence.net": "the_reach_group", + "thesearchagency.net": "the_search_agency", + "thesun.co.uk": "the_sun", + "w-x.co": "the_weather_company", + "weather.com": "the_weather_company", + "wfxtriggers.com": "the_weather_company", + "tmdb.org": "themoviedb", + "thinglink.com": "thinglink", + "online-metrix.net": "threatmetrix", + "tidbit.co.in": "tidbit", + "code.tidio.co": "tidio", + "widget-v4.tidiochat.com": "tidio", + "analytics.tiktok.com": "tiktok_analytics", + "optimized.by.tiller.co": "tiller", + "vip.timezonedb.com": "timezondb", + "npttech.com": "tinypass", + "tinypass.com": "tinypass", + "tisoomi-services.com": "tisoomi", + "ad.tlvmedia.com": "tlv_media", + "ads.tlvmedia.com": "tlv_media", + "tag.tlvmedia.com": "tlv_media", + "research-int.se": "tns", + "sesamestats.com": "tns", + "spring-tns.net": "tns", + "statistik-gallup.net": "tns", + "tns-cs.net": "tns", + "tns-gallup.dk": "tns", + "tomnewsupdate.info": "tomnewsupdate.info", + "tfag.de": "tomorrow_focus", + "srv.clickfuse.com": "tonefuse", + "toplist.cz": "toplist.cz", + "toponclick.com": "toponclick_com", + "topsy.com": "topsy", + "insight.torbit.com": "torbit", + "toro-tags.com": "toro", + "toroadvertising.com": "toro", + "toroadvertisingmedia.com": "toro", + "tororango.com": "tororango.com", + "i.total-media.net": "total_media", + "inq.com": "touchcommerce", + "tovarro.com": "tovarro.com", + "rialpay.com": "tp-cdn.com", + "tp-cdn.com": "tp-cdn.com", + "kiwe.io": "tracc.it", + "tracc.it": "tracc.it", + "ipnoid.com": "tracemyip", + "tracemyip.org": "tracemyip", + "d2gfdmu30u15x7.cloudfront.net": "traceview", + "tracelytics.com": "traceview", + "cdn.trackduck.com": "track_duck", + "d2zah9y47r7bi2.cloudfront.net": "trackjs", + "dl1d2m8ri9v3j.cloudfront.net": "trackjs", + "trackjs.com": "trackjs", + "conversionlab.trackset.com": "trackset_conversionlab", + "trackuity.com": "trackuity", + "adsrvr.org": "tradedesk", + "tradedoubler.com": "tradedoubler", + "tradelab.fr": "tradelab", + "tradetracker.net": "tradetracker", + "cdntrf.com": "traffective", + "traffective.com": "traffective", + "my.trafficfuel.com": "traffic_fuel", + "trafficrevenue.net": "traffic_revenue", + "trafficstars.com": "traffic_stars", + "tsyndicate.com": "traffic_stars", + "trafficbroker.com": "trafficbroker", + "trafficfabrik.com": "trafficfabrik.com", + "trafficfactory.biz": "trafficfactory", + "trafficforce.com": "trafficforce", + "traffichaus.com": "traffichaus", + "trafficjunky.net": "trafficjunky", + "traffiliate.com": "traffiliate", + "storage.trafic.ro": "trafic", + "trafmag.com": "trafmag.com", + "api.transcend.io": "transcend", + "cdn.transcend.io": "transcend", + "sync-transcend-cdn.com": "transcend", + "transcend-cdn.com": "transcend", + "transcend.io": "transcend", + "telemetry.transcend.io": "transcend_telemetry", + "backoffice.transmatico.com": "transmatic", + "travelaudience.com": "travel_audience", + "trbo.com": "trbo", + "treasuredata.com": "treasuredata", + "scanscout.com": "tremor_video", + "tremorhub.com": "tremor_video", + "tremormedia.com": "tremor_video", + "tremorvideo.com": "tremor_video", + "videohub.tv": "tremor_video", + "s.tcimg.com": "trendcounter", + "tcimg.com": "trendcounter", + "trendemon.com": "trendemon", + "exponential.com": "tribal_fusion", + "tribalfusion.com": "tribal_fusion", + "tribl.io": "triblio", + "api.temails.com": "trigger_mail_marketing", + "t.myvisitors.se": "triggerbee", + "jscache.com": "tripadvisor", + "tacdn.com": "tripadvisor", + "tamgrt.com": "tripadvisor", + "tripadvisor.co.uk": "tripadvisor", + "tripadvisor.com": "tripadvisor", + "tripadvisor.de": "tripadvisor", + "3lift.com": "triplelift", + "d3iwjrnl4m67rd.cloudfront.net": "triplelift", + "triplelift.com": "triplelift", + "static.triptease.io": "triptease", + "andomedia.com": "triton_digital", + "tritondigital.com": "triton_digital", + "revelations.trovus.co.uk": "trovus_revelations", + "trsv3.com": "trsv3.com", + "truefitcorp.com": "true_fit", + "tru.am": "trueanthem", + "adlegend.com": "trueffect", + "addoer.com": "truehits.net", + "truehits.in.th": "truehits.net", + "truehits.net": "truehits.net", + "trumba.com": "trumba", + "truoptik.com": "truoptik", + "trustarc.com": "trustarc", + "truste.com": "trustarc", + "consent.truste.com": "truste_consent", + "choices-or.truste.com": "truste_notice", + "choices.truste.com": "truste_notice", + "privacy-policy.truste.com": "truste_seal", + "trustedshops.com": "trusted_shops", + "trustev.com": "trustev", + "secure.comodo.net": "trustlogo", + "trustlogo.com": "trustlogo", + "usertrust.com": "trustlogo", + "trustpilot.com": "trustpilot", + "trustwave.com": "trustwave.com", + "tubecorporate.com": "tubecorporate", + "tubecup.org": "tubecup.org", + "tubemogul.com": "tubemogul", + "sre-perim.com": "tumblr_analytics", + "txmblr.com": "tumblr_analytics", + "platform.tumblr.com": "tumblr_buttons", + "lib.tunein.com": "tune_in", + "adagio.turboadv.com": "turbo", + "turn.com": "turn_inc.", + "ngtv.io": "turner", + "turner.com": "turner", + "warnermedia.com": "turner", + "turnsocial.com": "turnsocial", + "turnto.com": "turnto", + "tvsquared.com": "tvsquared.com", + "tweetboard.com": "tweetboard", + "tweetmeme.com": "tweetmeme", + "c4tw.net": "twenga", + "twiago.com": "twiago", + "twinedigital.go2cloud.org": "twine", + "ext-twitch.tv": "twitch.tv", + "twitch.tv": "twitch.tv", + "jtvnw.net": "twitch_cdn", + "ttvnw.net": "twitch_cdn", + "twitchcdn.net": "twitch_cdn", + "twitchsvc.net": "twitch_cdn", + "t.co": "twitter", + "twimg.com": "twitter", + "twitter.com": "twitter", + "twttr.com": "twitter", + "x.com": "twitter", + "ads-twitter.com": "twitter_ads", + "analytics.twitter.com": "twitter_analytics", + "tellapart.com": "twitter_for_business", + "syndication.twitter.com": "twitter_syndication", + "twittercounter.com": "twittercounter", + "twyn.com": "twyn", + "txxx.com": "txxx.com", + "tynt.com": "tynt", + "typeform.com": "typeform", + "typepad.com": "typepad_stats", + "typography.com": "typography.com", + "tyroodirect.com": "tyroo", + "tyroodr.com": "tyroo", + "tzetze.it": "tzetze", + "ubersetzung-app.com": "ubersetzung-app.com", + "ubuntu.com": "ubuntu", + "ubuntucompanyservices.co.za": "ubuntu", + "aralego.net": "ucfunnel", + "ucfunnel.com": "ucfunnel", + "at.ua": "ucoz", + "do.am": "ucoz", + "ucoz.net": "ucoz", + "ad-api-v01.uliza.jp": "uliza", + "api.umbel.com": "umbel", + "umebiggestern.club": "umebiggestern.club", + "unanimis.co.uk": "unanimis", + "d3pkntwtp2ukl5.cloudfront.net": "unbounce", + "t.unbounce.com": "unbounce", + "d21gpk1vhmjuf5.cloudfront.net": "unbxd", + "tracker.unbxdapi.com": "unbxd", + "under-box.com": "under-box.com", + "undercomputer.com": "undercomputer.com", + "udmserve.net": "underdog_media", + "undertone.com": "undertone", + "roitesting.com": "unica", + "unica.com": "unica", + "unister-adservices.com": "unister", + "unister-gmbh.de": "unister", + "uadx.com": "unite", + "nonstoppartner.net": "united_digital_group", + "tifbs.net": "united_internet_media_gmbh", + "ui-portal.de": "united_internet_media_gmbh", + "uimserv.net": "united_internet_media_gmbh", + "unity.com": "unity", + "unity3d.com": "unity", + "unity3dusercontent.com": "unity", + "unityads.unity3d.com": "unity_ads", + "univide.com": "univide", + "unpkg.com": "unpkg.com", + "unrulymedia.com": "unruly_media", + "src.kitcode.net": "untriel_finger_printing", + "s.clickability.com": "upland_clickability_beacon", + "uppr.de": "uppr.de", + "upravel.com": "upravel.com", + "upsellit.com": "upsellit", + "kontagent.net": "upsight", + "app.uptain.de": "uptain", + "uptolike.com": "uptolike.com", + "uptrends.com": "uptrends", + "urban-media.com": "urban-media.com", + "urbanairship.com": "urban_airship", + "mobile.usabilitytools.com": "usability_tools", + "usabilla.com": "usabilla", + "usemax.de": "usemax", + "usemaxserver.de": "usemax", + "usemessages.com": "usemessages.com", + "api.usercycle.com": "usercycle", + "userdive.com": "userdive", + "userecho.com": "userecho", + "dq4irj27fs462.cloudfront.net": "userlike.com", + "userlike-cdn-widgets.s3-eu-west-1.amazonaws.com": "userlike.com", + "userlike.com": "userlike.com", + "contactusplus.com": "userpulse", + "user-pulse.appspot.com": "userpulse", + "userpulse.com": "userpulse", + "userreplay.net": "userreplay", + "sdsbucket.s3.amazonaws.com": "userreport", + "userreport.com": "userreport", + "dtkm4pd19nw6z.cloudfront.net": "userrules", + "api.usersnap.com": "usersnap", + "d3mvnvhjmkxpjz.cloudfront.net": "usersnap", + "uservoice.com": "uservoice", + "userzoom.com": "userzoom.com", + "usocial.pro": "usocial", + "utarget.ru": "utarget", + "uuidksinc.net": "uuidksinc.net", + "v12group.com": "v12_group", + "vacaneedasap.com": "vacaneedasap.com", + "ads.brand.net": "valassis", + "vdrn.redplum.com": "valassis", + "api.searchlinks.com": "validclick", + "js.searchlinks.com": "validclick", + "vinsight.de": "valiton", + "valueclick.net": "valueclick_media", + "valuecommerce.com": "valuecommerce", + "valuedopinions.co.uk": "valued_opinions", + "buzzparadise.com": "vanksen", + "vmmpxl.com": "varick_media_management", + "vcita.com": "vcita", + "tracking.vcommission.com": "vcommission", + "vdopia.com": "vdopia", + "veinteractive.com": "ve_interactive", + "vee24.com": "vee24", + "velocecdn.com": "velocecdn.com", + "mdcn.mobi": "velti_mgage_visualize", + "velti.com": "velti_mgage_visualize", + "vendemore.com": "vendemore", + "venturead.com": "venturead.com", + "api.venyoo.ru": "venyoo", + "veoxa.com": "veoxa", + "vergic.com": "vergic.com", + "d3qxef4rp70elm.cloudfront.net": "vero", + "getvero.com": "vero", + "verticalacuity.com": "vertical_acuity", + "roi.vertical-leap.co.uk": "vertical_leap", + "cts.vresp.com": "verticalresponse", + "verticalscope.com": "verticalscope", + "ads.vertoz.com": "vertoz", + "banner.vrtzads.com": "vertoz", + "veruta.com": "veruta", + "vrvm.com": "verve_mobile", + "vgwort.de": "vg_wort", + "digitaltarget.ru": "vi", + "btg.mtvnservices.com": "viacom_tag_container", + "viafoura.com": "viafoura", + "viafoura.net": "viafoura", + "intellitxt.com": "vibrant_ads", + "vicomi.com": "vicomi.com", + "vidazoo.com": "vidazoo.com", + "module-videodesk.com": "video_desk", + "vidtok.ru": "video_potok", + "videoadex.com": "videoadex.com", + "tidaltv.com": "videology", + "videonow.ru": "videonow", + "videoplayerhub.com": "videoplayerhub.com", + "videoplaza.tv": "videoplaza", + "kweb.videostep.com": "videostep", + "content.vidgyor.com": "vidgyor", + "vidible.tv": "vidible", + "assets.vidora.com": "vidora", + "vietad.vn": "vietad", + "viglink.com": "viglink", + "vigo.one": "vigo", + "vigo.ru": "vigo", + "vimeo.com": "vimeo", + "vimeocdn.com": "vimeo", + "vindicosuite.com": "vindico_group", + "vinted.net": "vinted", + "viraladnetwork.net": "viral_ad_network", + "app.viral-loops.com": "viral_loops", + "viralgains.com": "viralgains", + "viralmint.com": "viralmint", + "virgul.com": "virgul", + "ssp.virool.com": "virool_player", + "virtusize.com": "virtusize", + "viewablemedia.net": "visible_measures", + "visiblemeasures.com": "visible_measures", + "visioncriticalpanels.com": "vision_critical", + "visitstreamer.com": "visit_streamer", + "visitortracklog.com": "visitortrack", + "visitorville.com": "visitorville", + "d2hkbi3gan6yg6.cloudfront.net": "visscore", + "myvisualiq.net": "visual_iq", + "visualrevenue.com": "visual_revenue", + "d5phz18u4wuww.cloudfront.net": "visual_website_optimizer", + "visualwebsiteoptimizer.com": "visual_website_optimizer", + "wingify.com": "visual_website_optimizer", + "vdna-assets.com": "visualdna", + "visualdna.com": "visualdna", + "visualstudio.com": "visualstudio.com", + "id-visitors.com": "visualvisitor", + "vi-tag.net": "vivalu", + "vivistats.com": "vivistats", + "vizury.com": "vizury", + "vizzit.se": "vizzit", + "cdn-vk.com": "vk.com", + "vk-analytics.com": "vk.com", + "vkuservideo.net": "vk.com", + "userapi.com": "vkontakte", + "vk.com": "vkontakte", + "vkontakte.ru": "vkontakte", + "vntsm.com": "vntsm.com", + "vodafone.de": "vodafone.de", + "voicefive.com": "voicefive", + "volusion.com": "volusion_chat", + "cwkuki.com": "voluum", + "volumtrk.com": "voluum", + "voluumtrk3.com": "voluum", + "vooxe.com": "vooxe.com", + "vorwerk.de": "vorwerk.de", + "vox-cdn.com": "vox", + "embed.voxus.tv": "voxus", + "voxus-targeting-voxusmidia.netdna-ssl.com": "voxus", + "c-dsp.vpadn.com": "vpon", + "tools.vpscash.nl": "vpscash", + "vsassets.io": "vs", + "exp-tas.com": "vscode", + "v0cdn.net": "vscode", + "vscode-cdn.net": "vscode", + "vscode-unpkg.net": "vscode", + "vtracy.de": "vtracy.de", + "liftoff.io": "vungle", + "vungle.com": "vungle", + "vuukle.com": "vuukle", + "view.vzaar.com": "vzaar", + "w3counter.com": "w3counter", + "w3roi.com": "w3roi", + "contentwidgets.net": "wahoha", + "wahoha.com": "wahoha", + "walkme.com": "walkme.com", + "wsod.com": "wall_street_on_demand", + "walmart.com": "walmart", + "wamcash.com": "wamcash", + "cdn-saveit.wanelo.com": "wanelo", + "static.warp.ly": "warp.ly", + "way2traffic.com": "way2traffic", + "wayfair.com": "wayfair_com", + "wdr.de": "wdr.de", + "web-stat.com": "web-stat", + "web.de": "web.de", + "webde.de": "web.de", + "webstat.net": "web.stat", + "ssl.webserviceaward.com": "web_service_award", + "webtraxs.com": "web_traxs", + "wipe.de": "web_wipe_analytics", + "webads.nl": "webads", + "tr.webantenna.info": "webantenna", + "webclicks24.com": "webclicks24_com", + "webclose.net": "webclose.net", + "webcollage.net": "webcollage", + "goutee.top": "webedia", + "mediaathay.org.uk": "webedia", + "wbdx.fr": "webedia", + "webeffective.keynote.com": "webeffective", + "widgets.webengage.com": "webengage", + "webgains.com": "webgains", + "webgozar.com": "webgozar", + "webgozar.ir": "webgozar", + "webhelpje.be": "webhelpje", + "webhelpje.nl": "webhelpje", + "webleads-tracker.com": "webleads_tracker", + "automation.webmecanik.com": "webmecanik", + "adrcdn.com": "weborama", + "adrcntr.com": "weborama", + "weborama.com": "weborama", + "weborama.fr": "weborama", + "webprospector.de": "webprospector", + "webstat.com": "webstat", + "webstat.se": "webstat.se", + "stat.webtrack.biz": "webtrack", + "webtraffic.no": "webtraffic", + "webtraffic.se": "webtraffic", + "d1r27qvpjiaqj3.cloudfront.net": "webtrekk", + "mateti.net": "webtrekk", + "wbtrk.net": "webtrekk", + "wcfbc.net": "webtrekk", + "webtrekk-asia.net": "webtrekk", + "webtrekk.com": "webtrekk", + "webtrekk.de": "webtrekk", + "webtrekk.net": "webtrekk", + "wt-eu02.net": "webtrekk", + "wt-safetag.com": "webtrekk", + "webtrends.com": "webtrends", + "webtrendslive.com": "webtrends", + "rd.clickshift.com": "webtrends_ads", + "web-visor.com": "webvisor", + "weebly.com": "weebly_ads", + "widget.weibo.com": "weibo_widget", + "westlotto.com": "westlotto_com", + "wetter.com": "wetter_com", + "wettercomassets.com": "wetter_com", + "whatsbroadcast.com": "whatbroadcast", + "whatsapp.com": "whatsapp", + "whatsapp.net": "whatsapp", + "whisper.onelink.me": "whisper", + "whisper.sh": "whisper", + "amung.us": "whos.amung.us", + "whoson.com": "whoson", + "api.wibbitz.com": "wibbitz", + "cdn4.wibbitz.com": "wibbitz", + "cdn.wibiya.com": "wibiya_toolbar", + "predictad.com": "widdit", + "widerplanet.com": "widerplanet", + "widespace.com": "widespace", + "widgetserver.com": "widgetbox", + "3c45d848d99.se": "wiget_media", + "wigetmedia.com": "wiget_media", + "tracker.wigzopush.com": "wigzo", + "wikia-services.com": "wikia-services.com", + "wikia-beacon.com": "wikia_beacon", + "nocookie.net": "wikia_cdn", + "wikimedia.org": "wikimedia.org", + "wikipedia.org": "wikimedia.org", + "wikiquote.org": "wikimedia.org", + "tracking.winaffiliates.com": "winaffiliates", + "maps.windows.com": "windows_maps", + "client.wns.windows.com": "windows_notifications", + "time.windows.com": "windows_time", + "windowsupdate.com": "windowsupdate", + "api.wipmania.com": "wipmania", + "col1.wiqhit.com": "wiqhit", + "wirecard.com": "wirecard", + "wirecard.de": "wirecard", + "leadlab.click": "wiredminds", + "wiredminds.com": "wiredminds", + "wiredminds.de": "wiredminds", + "adtotal.pl": "wirtualna_polska", + "wisepops.com": "wisepops", + "cdn.wishpond.net": "wishpond", + "wistia.com": "wistia", + "wistia.net": "wistia", + "parastorage.com": "wix.com", + "wix.com": "wix.com", + "public.wixab-cloud.com": "wixab", + "wixmp.com": "wixmp", + "wnzmauurgol.com": "wnzmauurgol.com", + "wonderpush.com": "wonderpush", + "woopic.com": "woopic.com", + "woopra.com": "woopra", + "pubmine.com": "wordpress_ads", + "w.org": "wordpress_stats", + "wordpress.com": "wordpress_stats", + "wp.com": "wordpress_stats", + "tracker.wordstream.com": "wordstream", + "worldnaturenet.xyz": "worldnaturenet_xyz", + "wp.pl": "wp.pl", + "wpimg.pl": "wp.pl", + "wpengine.com": "wp_engine", + "clickanalyzer.jp": "writeup_clickanalyzer", + "wurfl.io": "wurfl", + "wwwpromoter.com": "wwwpromoter", + "imgwykop.pl": "wykop", + "wykop.pl": "wykop", + "wysistat.com": "wysistat.com", + "wysistat.net": "wysistat.com", + "wywy.com": "wywy.com", + "wywyuserservice.com": "wywy.com", + "cdn.x-lift.jp": "x-lift", + "xapads.com": "xapads", + "xen-media.com": "xen-media.com", + "xfreeservice.com": "xfreeservice.com", + "xhamster.com": "xhamster", + "xhamsterlive.com": "xhamster", + "xhamsterpremium.com": "xhamster", + "xhcdn.com": "xhamster", + "huami.com": "xiaomi", + "mi-img.com": "xiaomi", + "mi.com": "xiaomi", + "miui.com": "xiaomi", + "xiaomi.com": "xiaomi", + "xiaomi.net": "xiaomi", + "xiaomiyoupin.com": "xiaomi", + "xing-share.com": "xing", + "xing.com": "xing", + "xmediaclicks.com": "xmediaclicks", + "xnxx-cdn.com": "xnxx_cdn", + "xplosion.de": "xplosion", + "xtendmedia.com": "xtend", + "xvideos-cdn.com": "xvideos_com", + "xvideos.com": "xvideos_com", + "xxxlshop.de": "xxxlshop.de", + "xxxlutz.de": "xxxlutz", + "adx.com.ru": "yabbi", + "yabbi.me": "yabbi", + "yabuka.com": "yabuka", + "tumblr.com": "yahoo", + "yahoo.com": "yahoo", + "yahooapis.com": "yahoo", + "yimg.com": "yahoo", + "oath.cloud": "yahoo", + "yahoo.net": "yahoo", + "yahooinc.com": "yahoo", + "yahoodns.net": "yahoo", + "yads.yahoo.com": "yahoo_ad_exchange", + "yieldmanager.com": "yahoo_ad_exchange", + "pr-bh.ybp.yahoo.com": "yahoo_ad_manager", + "ads.yahoo.com": "yahoo_advertising", + "adtech.yahooinc.com": "yahoo_advertising", + "analytics.yahoo.com": "yahoo_analytics", + "np.lexity.com": "yahoo_commerce_central", + "storage-yahoo.jp": "yahoo_japan_retargeting", + "yahoo.co.jp": "yahoo_japan_retargeting", + "yahooapis.jp": "yahoo_japan_retargeting", + "yimg.jp": "yahoo_japan_retargeting", + "yjtag.jp": "yahoo_japan_retargeting", + "ov.yahoo.co.jp": "yahoo_overture", + "overture.com": "yahoo_overture", + "search.yahooinc.com": "yahoo_search", + "luminate.com": "yahoo_small_business", + "pixazza.com": "yahoo_small_business", + "awaps.yandex.ru": "yandex", + "d31j93rd8oukbv.cloudfront.net": "yandex", + "webvisor.org": "yandex", + "yandex.net": "yandex", + "yandex.ru": "yandex", + "yastatic.net": "yandex", + "ya.ru": "yandex", + "yandex.by": "yandex", + "yandex.com": "yandex", + "yandex.com.tr": "yandex", + "yandex.fr": "yandex", + "yandex.kz": "yandex", + "yandex.st": "yandex.api", + "yandexadexchange.net": "yandex_adexchange", + "metabar.ru": "yandex_advisor", + "appmetrica.yandex.com": "yandex_appmetrica", + "an.webvisor.org": "yandex_direct", + "an.yandex.ru": "yandex_direct", + "bs.yandex.ru": "yandex_direct", + "mc.yandex.ru": "yandex_metrika", + "passport.yandex.ru": "yandex_passport", + "yapfiles.ru": "yapfiles.ru", + "yashi.com": "yashi", + "ad.adserverplus.com": "ybrant_media", + "player.sambaads.com": "ycontent", + "cdn.yektanet.com": "yektanet", + "fetch.yektanet.com": "yektanet", + "yengo.com": "yengo", + "yengointernational.com": "yengo", + "link.p0.com": "yesmail", + "adsrevenue.net": "yesup_advertising", + "infinityads.com": "yesup_advertising", + "momentsharing.com": "yesup_advertising", + "multipops.com": "yesup_advertising", + "onlineadultadvertising.com": "yesup_advertising", + "paypopup.com": "yesup_advertising", + "popupxxx.com": "yesup_advertising", + "xtargeting.com": "yesup_advertising", + "xxxwebtraffic.com": "yesup_advertising", + "app.yesware.com": "yesware", + "yldbt.com": "yieldbot", + "yieldify.com": "yieldify", + "yieldlab.net": "yieldlab", + "yieldlove-ad-serving.net": "yieldlove", + "yieldlove.com": "yieldlove", + "yieldmo.com": "yieldmo", + "254a.com": "yieldr", + "collect.yldr.io": "yieldr_air", + "yieldsquare.com": "yieldsquare", + "analytics-sdk.yle.fi": "yle", + "yllix.com": "yllixmedia", + "ymetrica1.com": "ymetrica1.com", + "ymzrrizntbhde.com": "ymzrrizntbhde.com", + "yoapp.s3.amazonaws.com": "yo_button", + "natpal.com": "yodle", + "analytics.yola.net": "yola_analytics", + "pixel.yola.net": "yola_analytics", + "delivery.yomedia.vn": "yomedia", + "yoochoose.net": "yoochoose.net", + "yotpo.com": "yotpo", + "yottaa.net": "yottaa", + "yottlyscript.com": "yottly", + "api.youcanbook.me": "youcanbookme", + "youcanbook.me": "youcanbookme", + "player.youku.com": "youku", + "youporn.com": "youporn", + "ypncdn.com": "youporn", + "googlevideo.com": "youtube", + "youtube-nocookie.com": "youtube", + "youtube.com": "youtube", + "ytimg.com": "youtube", + "c.ypcdn.com": "yp", + "i1.ypcdn.com": "yp", + "yellowpages.com": "yp", + "prod-js.aws.y-track.com": "ysance", + "y-track.com": "ysance", + "yume.com": "yume", + "yumenetworks.com": "yume,_inc.", + "gravityrd-services.com": "yusp", + "api.zadarma.com": "zadarma", + "zalan.do": "zalando_de", + "zalando.de": "zalando_de", + "ztat.net": "zalando_de", + "zaloapp.com": "zalo", + "zanox-affiliate.de": "zanox", + "zanox.com": "zanox", + "zanox.ws": "zanox", + "zaparena.com": "zaparena", + "zapunited.com": "zaparena", + "track.zappos.com": "zappos", + "zdassets.com": "zdassets.com", + "zebestof.com": "zebestof.com", + "zedo.com": "zedo", + "zemanta.com": "zemanta", + "zencdn.net": "zencoder", + "zendesk.com": "zendesk", + "zergnet.com": "zergnet", + "zero.kz": "zero.kz", + "app.insightgrit.com": "zeta", + "app.ubertags.com": "zeta", + "cdn.boomtrain.com": "zeta", + "events.api.boomtrain.com": "zeta", + "rfihub.com": "zeta", + "rfihub.net": "zeta", + "ru4.com": "zeta", + "xplusone.com": "zeta", + "zeusclicks.com": "zeusclicks", + "webtest.net": "ziff_davis", + "zdbb.net": "ziff_davis", + "ziffdavis.com": "ziff_davis", + "ziffdavisinternational.com": "ziff_davis", + "ziffprod.com": "ziff_davis", + "ziffstatic.com": "ziff_davis", + "analytics.ziftsolutions.com": "zift_solutions", + "zimbio.com": "zimbio.com", + "api.zippyshare.com": "zippyshare_widget", + "zmags.com": "zmags", + "zmctrack.net": "zmctrack.net", + "zog.link": "zog.link", + "js.zohostatic.eu": "zoho", + "zononi.com": "zononi.com", + "zopim.com": "zopim", + "zukxd6fkxqn.com": "zukxd6fkxqn.com", + "zwaar.net": "zwaar", + "zwaar.org": "zwaar", + "extend.tv": "zypmedia" + } +} diff --git a/static/images/gfwlist/amazon.png b/static/images/gfwlist/amazon.png new file mode 100644 index 0000000000000000000000000000000000000000..11c2d44a14d8ff6fac15da41d970231781a38374 GIT binary patch literal 4630 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 M07*qoM6N<$f}#$a3IG5A literal 0 HcmV?d00001 diff --git a/static/images/gfwlist/bbc.png b/static/images/gfwlist/bbc.png new file mode 100644 index 0000000000000000000000000000000000000000..252b4be4e327c750a1eb62516210030baab64717 GIT binary patch literal 4812 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 ATmS$7 literal 0 HcmV?d00001 diff --git a/static/images/gfwlist/discord.png b/static/images/gfwlist/discord.png new file mode 100644 index 0000000000000000000000000000000000000000..6158858531400bfd2545c86cbd1d336266a8215b GIT binary patch literal 6764 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 BY|j7y literal 0 HcmV?d00001 diff --git a/static/images/gfwlist/dropbox.png b/static/images/gfwlist/dropbox.png new file mode 100644 index 0000000000000000000000000000000000000000..69b6bcd39a82168f671e326072ed9bdd338dd33f GIT binary patch literal 4231 zcma)A_d6S0*iH!z8e%IgLChMpYPXG@#Hd+H@Y)nrtEkb2wsu1iTA@-atx~fjM(t5m zyR|~i#-6WH^vnBw|G@XdInQ~n>%Q-Eu5-?Hp8GlpcT5ez%>2v%004|I(zBq&p8pz% zk=B2-EzhHc3qcl!I)L(lD^vgg0!Qe5P(0=JtH#ivZ+Oha!_Z3*B8OL|ox^ZGv zNnhwOPhM_EA0qTzouZ^S|9t+AE&?_*;{^cEQ7ibJDs~3X0NC{_(YFDhGLgXx0#E>O zoE-qauKDB(BOMe}d=WxRE4F~QvcKdQhz@Ebn%Z^U9aICy#>B)dMXxrK%KwZ+ zMee{Exsg}dkIuR;{y1zQMa8T&Piu{)BF}*88lz3O)T@FXZEm$ku?$$}H*TGuEIS;M z#AMdQdbVbr$jy&qmIq&X{y|^6_Ldn@4APP?6tx{kV851DYM}(D&$k)VI&=#})$^i) z2AU>o%9Is<=wrW?R?bs4x4WVmCx~S=wbp?hdq%AD70o>kY;eli(Q58v)c#__#HSN@ zW4^0SQrp*nyIdxH5aej&y)O;bXf$gv1_4!vtWw;OK>e`>JoES_+G>hcZ|4jgj&WwZPHd55NbauSoJ zgR;~MC^h$J@ru)X_%EPwEdaLEz-f>xT@*Qhz}|{O>mQ5V6H~K&}<}7O2H=sMnNI%qFC&@yzqI@PQw(s4swXXrf6J2(5o6C zQNl-t9Mg>FdyXvT`bStYL%5Pt?&wq>s5T+!FB@LB}#9WBt8X%kH)VTR<9cF+&q2$ z@=PY$2kQQa-}`IzS+g-jFGZ``HNa-eG0~|FU-E;yh9qcG&V(sVYyY)!m=N$%_61w6 zeZ06CO{8Zfqt;A5StROc(eCG)wY}uBL7PALwG%S+cKu7LpMP;BYs7%+&nw=D2Auz zqt3zCxUTAu#1!xZ8xXshKGH)qX?uli3vguoZ9~k?zr*+FN@XcEd}Ec`vF7Kv>KSvO zVeM^F^J;Rgbs^f}dYmhRD>B4x;sl`)h?d$m&rhRJHY|>^iNT}#ID7H#>##m+&bWa0 zd#=Tnqc`W);}S=`Rwm40jy4^AH7TSj&`QJ6B)_Kw7Z8y~F~b%}{Z0@0BK1A^&NO#B zqo>5R(()3kU~rX{N^tL$%x$F2#-KFey1zy)ibvHXla^HqBBZt$5uI9J^A^8Z%55vmRqHqL;#6!oa9H1 zjAO6yVlVcJ3hodl#qg%aJ&s!3)i?N~+*I!HP>yod{km`|XIv!*@wqFrjQ&JMdZ>Q# z=|hnoWfmEFhxQx;>ADH@Izc|*A(M**PFcE5x7TfxuCSS6^u`5U=K;qVIc7mLDt)d! zm|usbQhHF>f`iBc5?(3ADz3kFPJdM3m?;p}d-$W=>>!e9m{=N#SVi%oAN+(GNu%l5 z1v3RaGY!9A8vYH|1SUi{rnB`2D-AoNhU9J+j|lt=B78tq#W}}Xsyx6ckCb;rw2Q-) zgK092g|vV-VopR^ups^6b3Pre$xb0ENiO2s$rfoptKA}P)vPo#r2#W zEsZuE=Y9@H(%G+psD^OoOcO5$0Gw1&zIGlQBeW??pEKwgq8tJ<`ukz(@N?Fg4-V=o zdH%1mz$aI02BoY4#3d(@S_F1Oeq)~6!jUtt>8%=(<^B>n`aqnOEcoJVATUhsp`amk zul}26WaW=TrO!tb!toED*~N{I7o>mx^X=?qtd1DYi3;{;Vi9`cISvT&1M1}SDiBb+ zhFHI*)`wHEYh=yC<74d-h;Jr4H2*c{q{>^=E=SyZRgi7oM(E{P4L5KJm#cZAF~5Ti zI{gK7=S%JmP$WPaSLapX0XiQ~PhEo#+-tl1o)Nd}0QOzkFRs9|;(@7tjM6bhf1F^i`7zEVndlxf{ur-Tu6Q){4pb7a<- z$^9hFd>aQ9qkAkhZ{Gs2GgveWbtKT(5wV{D+BwSn zCjAKkStH9`@4c&8;fanR0ip9c@;r$vfgKnmiT0v)Qo&i4tIYuK1>@KyNLD3AE{(G= zxT#f#R8_;$Ec)2V0PC~Qc)4Wg&OiDtb)^p+JvG+b5oM?&pf~57m&o9XUF~0#`p6xD zZ5@3&bepKrOhoM3Yq!Iv^;b2kA4uaxpq>46Ucd`IYd!YS;d&b)xnEwmbCQbpISZ|u zTIupx)jr%KKGgQ)w*X2m8Ij!HKnDf5-sbye|9W#*eTdYh1fCz%_Yg!^nL>Vp*(n1J zTAmWGG^?tmgc! z!;I;>u_75&edp=+FGK^R7wp030SBVA&Fs9~~Vu4%xKQ@50w1=3Bl! z7U|m|kH?Eo`cK_!g$~ya39h;NR*x_#S|vZeMPhx|c!Tqecw+Vlp{o%t2ro{rSLa_< z9(dkvdeHm^#v^eo6ru>m>_p_Dei=S^b{u9%D!q+5B3BMz>N5r!n z!SZvV@#2wA-~kfX!t^~Tg&NQF&LAwYc2r-@f9hd|s!wvnLJ`du-4MOhL4FB4+#E@= z&u3ryyA4u&z|gR(xSWx>zMdr~Ec+zPsqJ;i2I$g|SkEYw&>I&w`_GzYZ1hJAgZItO zF@ixZ*IIf?fM5uQtz>!a)@+`32RVjaL@!b0l^VMnWs=W?pNuqvEaY~-k$QmgR`9V5 zMg!EJ6Ly#sYlbb93)D=+tIo_s`&PlZI(CVMDg53RWn$Alyji{q19%6>RyS{aOythf zq}F9Gb5`2P!4_ieJUY}K z33A#j!QO!GpNY$8ObZ)+`kdn;3syEfH@2JcZ84rCgdLW=XBQ{c^aX+xQ?8E{X$h(O zt`;tZ&k3MNof3VS!PLc)jB78U?WOY?qb+R@{pT$jv29&A=`QZAXk$xfsMkAVj9!v> zTw}dnpmEp|`&OrZN|hez<-xt7j?ZnZXGWQn|ZlL*V zH5m+qkkFBX)Rn4vz47Xi>1Z}R03&H~kqO>aT){?9yy%2PSG<3X+7ToTK7k@fbWO2D z`h~}Sf0rB^&W|oDofd+O=h3?4r%(%dhYS{p9zK)h7gk90{TlwOGH^%{^_?!HXy7fs z3h-vr^_a2V$cttJZ_&4{_O41NCO-K~G8kyuy z^2^&`kjodQ74N%$`~I)CRS(x@{kedtS&vGdNdkc8pMe-;M1& literal 0 HcmV?d00001 diff --git a/static/images/gfwlist/google.png b/static/images/gfwlist/google.png new file mode 100644 index 0000000000000000000000000000000000000000..8d9d993e3b1bc940d3df689c438f3769966152c5 GIT binary patch literal 4744 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 literal 0 HcmV?d00001 diff --git a/static/images/gfwlist/microsoft.png b/static/images/gfwlist/microsoft.png new file mode 100644 index 0000000000000000000000000000000000000000..f40d03b00ab9b00d160a20839fa4a07111898e65 GIT binary patch literal 2217 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 gk literal 0 HcmV?d00001 diff --git a/static/images/gfwlist/telegram.png b/static/images/gfwlist/telegram.png new file mode 100644 index 0000000000000000000000000000000000000000..0289cbbec516033de45f13c7e5cc8651bcb82428 GIT binary patch literal 4259 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 FV1g^D)?xqv literal 0 HcmV?d00001 diff --git a/static/images/gfwlist/tiktok.png b/static/images/gfwlist/tiktok.png new file mode 100644 index 0000000000000000000000000000000000000000..2e5f91b7a4a9d5a2242693efaaac3314e494f192 GIT binary patch literal 5658 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 literal 0 HcmV?d00001 diff --git a/static/images/gfwlist/yahoo.png b/static/images/gfwlist/yahoo.png new file mode 100644 index 0000000000000000000000000000000000000000..9984d16054ce98644a0fbddfa8bf3db75d7c854a GIT binary patch literal 6143 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 NZ3EMrHG0m`{|DAh$+G|e literal 0 HcmV?d00001 diff --git a/static/images/user.jpg b/static/images/user.jpg new file mode 100644 index 0000000000000000000000000000000000000000..7b8afc72a3c2e8eb9fe5312f46f2dd42eaec96cc GIT binary patch literal 1114 zcmex=~kX3=9lx3_^^|42(b)2um@tg6S|ITN=ua1F|)sYM6j* zVJ3w7%yt&AdZ2+|-~l8-=D=un28Idj3@ktq10zEN#)%L%BhZAlN$d>bK=A`W%&-8e z#?ZikaRJ2i|Nj{nm=-`x*8nPEMq-1sI0id=dIITy%;e(ITm?@TD+Qo#Q-=Sy8Jrn7 z*x1GYcaVD?3n9oRI-l3K*J9%>QpO@BoFG1egVY{KPXePFznlTeL(~ zP?W2i^VNgKYxx)a1obve$nG&euq{Ec9%zuf0MHf`dq9!KA}AolDxzcrG?0Ulk%5tw z>B@DfS&tr8ip`!Bd(}MfC&R=aiw-1AD%aN0OWAbxvfy0lH?MfFq`%XDvSyn-&{!!! zkmKPF2Qe501et^!!6q^@GTJjPj@Y8JBT8T~P_?8W&^JJPkN~5g0Fw|{F%wAfQq8CR zlWZ!1YE=Y)K4oPBrWY6hd00@%(2-eDNWs`CFsTUYYBqbO=hNou`j$_WT34{lpr=9l zy+*luNWx9&hb8yc&Hu{F{AS1OsX!y;1Q?jn!kSS~(NVxKv2o%;SP|rU~k`^874Pp)hQL#iiY1UxbOHQ zr99-0u-u_ zieSZ{a1zj8)l|6mNRJpOY83>4Ap`apBBTTr4IKjy3ZQsQK=Xt{9n*a&iwj~KT08We zN^2cN1We=(g!%bM&sRo(+vD-E8@r%39uYksNE y3#gr;TDqa|Wz>GbgVy>wb53Z*oOq^I_04Sh@5ZFrHxEwa`Ea?~+j9Gr|2F~c@B|hB literal 0 HcmV?d00001 diff --git a/static/index.html b/static/index.html index 9179dab..2eb6b00 100644 --- a/static/index.html +++ b/static/index.html @@ -5,9 +5,11 @@ DNS服务器控制台 - + - + + + @@ -46,6 +48,12 @@ Hosts管理 +

  • + + + GFWList管理 + +
  • @@ -110,6 +118,12 @@ Hosts管理
  • +
  • + + + GFWList管理 + +
  • @@ -145,24 +159,24 @@
    -
    +
    - -

    仪表盘

    +

    仪表盘

    -
    +
    -
    - @@ -179,27 +193,27 @@
    -
    +
    -
    +
    -
    +
    -
    +
    -
    -

    查询总量

    -
    - +
    +

    查询总量

    +
    +
    -

    0

    - - +

    0

    + + 0%
    @@ -208,21 +222,21 @@
    -
    +
    -
    +
    -
    -

    屏蔽数量

    -
    - +
    +

    屏蔽数量

    +
    +
    -

    0

    - - +

    0

    + + 0%
    @@ -231,21 +245,21 @@
    -
    +
    -
    +
    -
    -

    正常解析

    -
    - +
    +

    正常解析

    +
    +
    -

    0

    - - +

    0

    + + 0%
    @@ -254,21 +268,21 @@
    -
    +
    -
    +
    -
    -

    错误数量

    -
    - +
    +

    错误数量

    +
    +
    -

    0

    - - +

    0

    + + 0%
    @@ -277,21 +291,21 @@
    -
    +
    -
    +
    -
    -

    平均响应时间

    -
    - +
    +

    平均响应时间

    +
    +
    -

    0ms

    - - +

    0ms

    + + 0%
    @@ -300,19 +314,19 @@
    -
    +
    -
    +
    -
    -

    最常用查询类型

    -
    - +
    +

    最常用查询类型

    +
    +
    -

    A

    - +

    A

    + 0% @@ -321,21 +335,21 @@
    -
    +
    -
    +
    -
    -

    活跃来源IP

    -
    - +
    +

    活跃来源IP

    +
    +
    -

    0

    - - +

    0

    + + 0%
    @@ -344,26 +358,26 @@
    -
    +
    -
    +
    -
    -

    DNSSEC使用率

    -
    - +
    +

    DNSSEC使用率

    +
    +
    -

    0%

    - - +

    0%

    + + 已禁用
    -
    +
    成功: 0 @@ -383,31 +397,31 @@
    -
    +
    -
    -

    解析与屏蔽比例

    -
    +
    +

    解析与屏蔽比例

    +
    -
    -

    解析类型统计

    -
    +
    +

    解析类型统计

    +
    -
    -
    -

    DNS请求趋势

    +
    +
    +

    DNS请求趋势

    -
    -
    +
    @@ -417,11 +431,10 @@