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 0000000..e9f60ca Binary files /dev/null and b/static/css/webfonts/fontawesome-webfont.eot differ diff --git a/static/css/webfonts/fontawesome-webfont.svg b/static/css/webfonts/fontawesome-webfont.svg new file mode 100644 index 0000000..855c845 --- /dev/null +++ b/static/css/webfonts/fontawesome-webfont.svg @@ -0,0 +1,2671 @@ + + + + +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 0000000..400014a Binary files /dev/null and b/static/css/webfonts/fontawesome-webfont.woff differ diff --git a/static/css/webfonts/fontawesome-webfont.woff2 b/static/css/webfonts/fontawesome-webfont.woff2 new file mode 100644 index 0000000..4d13fc6 Binary files /dev/null and b/static/css/webfonts/fontawesome-webfont.woff2 differ 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 0000000..11c2d44 Binary files /dev/null and b/static/images/gfwlist/amazon.png differ diff --git a/static/images/gfwlist/bbc.png b/static/images/gfwlist/bbc.png new file mode 100644 index 0000000..252b4be Binary files /dev/null and b/static/images/gfwlist/bbc.png differ diff --git a/static/images/gfwlist/discord.png b/static/images/gfwlist/discord.png new file mode 100644 index 0000000..6158858 Binary files /dev/null and b/static/images/gfwlist/discord.png differ diff --git a/static/images/gfwlist/dropbox.png b/static/images/gfwlist/dropbox.png new file mode 100644 index 0000000..69b6bcd Binary files /dev/null and b/static/images/gfwlist/dropbox.png differ diff --git a/static/images/gfwlist/google.png b/static/images/gfwlist/google.png new file mode 100644 index 0000000..8d9d993 Binary files /dev/null and b/static/images/gfwlist/google.png differ diff --git a/static/images/gfwlist/mediawiki.png b/static/images/gfwlist/mediawiki.png new file mode 100644 index 0000000..b6745d9 Binary files /dev/null and b/static/images/gfwlist/mediawiki.png differ diff --git a/static/images/gfwlist/microsoft.png b/static/images/gfwlist/microsoft.png new file mode 100644 index 0000000..f40d03b Binary files /dev/null and b/static/images/gfwlist/microsoft.png differ diff --git a/static/images/gfwlist/steam.png b/static/images/gfwlist/steam.png new file mode 100644 index 0000000..5a2cb31 Binary files /dev/null and b/static/images/gfwlist/steam.png differ diff --git a/static/images/gfwlist/telegram.png b/static/images/gfwlist/telegram.png new file mode 100644 index 0000000..0289cbb Binary files /dev/null and b/static/images/gfwlist/telegram.png differ diff --git a/static/images/gfwlist/tiktok.png b/static/images/gfwlist/tiktok.png new file mode 100644 index 0000000..2e5f91b Binary files /dev/null and b/static/images/gfwlist/tiktok.png differ diff --git a/static/images/gfwlist/v2ex.png b/static/images/gfwlist/v2ex.png new file mode 100644 index 0000000..4942ca4 Binary files /dev/null and b/static/images/gfwlist/v2ex.png differ diff --git a/static/images/gfwlist/wikimedia.png b/static/images/gfwlist/wikimedia.png new file mode 100644 index 0000000..6c292f7 Binary files /dev/null and b/static/images/gfwlist/wikimedia.png differ diff --git a/static/images/gfwlist/yahoo.png b/static/images/gfwlist/yahoo.png new file mode 100644 index 0000000..9984d16 Binary files /dev/null and b/static/images/gfwlist/yahoo.png differ diff --git a/static/images/gfwlist/youtube.png b/static/images/gfwlist/youtube.png new file mode 100644 index 0000000..e7fea62 Binary files /dev/null and b/static/images/gfwlist/youtube.png differ diff --git a/static/images/user.jpg b/static/images/user.jpg new file mode 100644 index 0000000..7b8afc7 Binary files /dev/null and b/static/images/user.jpg differ 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 @@