asn-blocklist 1.20260703.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +302 -0
- package/dist/consumer.ef.b64 +1 -0
- package/dist/consumer.gr.b64 +1 -0
- package/dist/consumer.txt +16379 -0
- package/dist/hosting.ef.b64 +1 -0
- package/dist/hosting.gr.b64 +1 -0
- package/dist/hosting.txt +7648 -0
- package/lib/access/ef.cjs +181 -0
- package/lib/access/ef.d.cts +8 -0
- package/lib/access/ef.d.ts +8 -0
- package/lib/access/ef.js +151 -0
- package/lib/access/gr.cjs +149 -0
- package/lib/access/gr.d.cts +8 -0
- package/lib/access/gr.d.ts +8 -0
- package/lib/access/gr.js +119 -0
- package/lib/access-ef-Cyg9fXiX.d.cts +3 -0
- package/lib/access-ef-Cyg9fXiX.d.ts +3 -0
- package/lib/access-gr-K1sbUYPZ.d.cts +3 -0
- package/lib/access-gr-K1sbUYPZ.d.ts +3 -0
- package/lib/data/access-ef.cjs +99 -0
- package/lib/data/access-ef.d.cts +2 -0
- package/lib/data/access-ef.d.ts +2 -0
- package/lib/data/access-ef.js +68 -0
- package/lib/data/access-gr.cjs +99 -0
- package/lib/data/access-gr.d.cts +2 -0
- package/lib/data/access-gr.d.ts +2 -0
- package/lib/data/access-gr.js +68 -0
- package/lib/data/hosting-ef.cjs +99 -0
- package/lib/data/hosting-ef.d.cts +2 -0
- package/lib/data/hosting-ef.d.ts +2 -0
- package/lib/data/hosting-ef.js +68 -0
- package/lib/data/hosting-gr.cjs +99 -0
- package/lib/data/hosting-gr.d.cts +2 -0
- package/lib/data/hosting-gr.d.ts +2 -0
- package/lib/data/hosting-gr.js +68 -0
- package/lib/hosting/ef.cjs +181 -0
- package/lib/hosting/ef.d.cts +8 -0
- package/lib/hosting/ef.d.ts +8 -0
- package/lib/hosting/ef.js +151 -0
- package/lib/hosting/gr.cjs +149 -0
- package/lib/hosting/gr.d.cts +8 -0
- package/lib/hosting/gr.d.ts +8 -0
- package/lib/hosting/gr.js +119 -0
- package/lib/hosting-ef-BYHAv_eT.d.cts +3 -0
- package/lib/hosting-ef-BYHAv_eT.d.ts +3 -0
- package/lib/hosting-gr-ISZyiWi7.d.cts +3 -0
- package/lib/hosting-gr-ISZyiWi7.d.ts +3 -0
- package/lib/index.cjs +335 -0
- package/lib/index.d.cts +12 -0
- package/lib/index.d.ts +12 -0
- package/lib/index.js +295 -0
- package/lib/metadata-CbVhAyw9.d.cts +59 -0
- package/lib/metadata-CbVhAyw9.d.ts +59 -0
- package/lib/runtime.cjs +239 -0
- package/lib/runtime.d.cts +17 -0
- package/lib/runtime.d.ts +17 -0
- package/lib/runtime.js +208 -0
- package/lib/types-BeWCbJlo.d.cts +27 -0
- package/lib/types-BeWCbJlo.d.ts +27 -0
- package/package.json +109 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 InsightFlare
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
ADDED
|
@@ -0,0 +1,302 @@
|
|
|
1
|
+
# asn-blocklist
|
|
2
|
+
|
|
3
|
+
An auto-maintained ASN blocklist and allowlist generated from the [PeeringDB](https://www.peeringdb.com/) community database. Designed for web analytics tools to identify, tag, or filter hosting/datacenter traffic separately from access-network traffic.
|
|
4
|
+
|
|
5
|
+
## What are ASN blocklists and allowlists?
|
|
6
|
+
|
|
7
|
+
Every network on the internet has a unique ASN (Autonomous System Number). By classifying ASNs, we can distinguish:
|
|
8
|
+
|
|
9
|
+
- **Hosting/Cloud (blocklist)**: Data centers and cloud providers like DigitalOcean, AWS, Vultr. Traffic from these ASNs is disproportionately likely to be bots, scrapers, monitoring systems, or automated scripts.
|
|
10
|
+
- **Consumer ISPs (allowlist)**: Residential broadband providers like Deutsche Telekom, BT, Comcast. Real users connect through these networks.
|
|
11
|
+
|
|
12
|
+
PeeringDB is the de-facto standard database for network interconnection. Each network operator self-reports an `info_type`. This repository pulls PeeringDB weekly, classifies every network, and generates both blocklists and allowlists.
|
|
13
|
+
|
|
14
|
+
## Files
|
|
15
|
+
|
|
16
|
+
### Blocklist (hosting / cloud / datacenter)
|
|
17
|
+
|
|
18
|
+
PeeringDB `info_type` in `{NSP, Content, Network Services}`.
|
|
19
|
+
|
|
20
|
+
| File | Format | Description |
|
|
21
|
+
|------|--------|-------------|
|
|
22
|
+
| [`hosting.txt`](dist/hosting.txt) | Plain text, one `AS12345` per line | Human review, grep, direct inclusion |
|
|
23
|
+
| [`hosting.gr.b64`](dist/hosting.gr.b64) | Base64, Golomb-Rice(k=4) compressed gaps | Smallest embedding (~<!-- SIZE:hosting.gr.b64 -->9.8KB<!-- /SIZE -->). One-time decode to bitmap at init, then O(1) lookup |
|
|
24
|
+
| [`hosting.ef.b64`](dist/hosting.ef.b64) | Base64, Elias-Fano + select index | No bitmap expansion needed (~<!-- SIZE:hosting.ef.b64 -->9.8KB<!-- /SIZE -->). Query directly on the compressed data |
|
|
25
|
+
|
|
26
|
+
### Access / non-hosting networks
|
|
27
|
+
|
|
28
|
+
PeeringDB `info_type` in `{Cable/DSL/ISP, Enterprise, Educational/Research, Non-Profit, Government}`.
|
|
29
|
+
|
|
30
|
+
> The "consumer" list is not strictly residential-only. It includes non-hosting networks such as enterprise, education, nonprofit, and government networks. The name reflects the primary use case (distinguishing consumer-facing traffic from hosting infrastructure) rather than an exhaustive categorization.
|
|
31
|
+
|
|
32
|
+
| File | Format | Description |
|
|
33
|
+
|------|--------|-------------|
|
|
34
|
+
| [`consumer.txt`](dist/consumer.txt) | Plain text, one `AS12345` per line | Human review, grep |
|
|
35
|
+
| [`consumer.gr.b64`](dist/consumer.gr.b64) | Base64, Golomb-Rice(k=4) compressed gaps | Same format as hosting, ~<!-- SIZE:consumer.gr.b64 -->16.6KB<!-- /SIZE --> |
|
|
36
|
+
| [`consumer.ef.b64`](dist/consumer.ef.b64) | Base64, Elias-Fano + select index | Same format as hosting, ~<!-- SIZE:consumer.ef.b64 -->18.0KB<!-- /SIZE --> |
|
|
37
|
+
|
|
38
|
+
## Choosing an encoding
|
|
39
|
+
|
|
40
|
+
Use the npm package default (`asn-blocklist`) unless you have a specific size or cold-start constraint. The default entry uses EF datasets because they can be queried directly without expanding the whole set into a bitmap.
|
|
41
|
+
|
|
42
|
+
| Format | Best for | Characteristics | Tradeoffs |
|
|
43
|
+
|------|------|------|------|
|
|
44
|
+
| Plain text (`.txt`) | Shell scripts, audits, human review, simple server-side loading | One `AS12345` per line; easy to diff, grep, and inspect | Largest format; consumers usually load it into a `Set` for fast lookup |
|
|
45
|
+
| Golomb-Rice (`.gr.b64`) | Small embedded payloads where one-time initialization is fine | Stores sorted ASN gaps with fixed `k=4`; smallest or near-smallest Base64 payload for these lists | Must decode sequentially at startup; the runtime expands it to a compact bitmap for O(1) lookups |
|
|
46
|
+
| Elias-Fano (`.ef.b64`) | Serverless, edge, and SDK usage where cold-start expansion should be minimal | Stores high/low bits plus a select index; queries the compressed structure directly | Slightly larger than GR for some lists; lookup does a bounded bucket scan rather than a full bitmap check |
|
|
47
|
+
|
|
48
|
+
Rule of thumb:
|
|
49
|
+
|
|
50
|
+
- Use `asn-blocklist` or `/hosting/ef` and `/access/ef` for application code.
|
|
51
|
+
- Use `/hosting/gr` or `/access/gr` when bundle size matters more than startup decode work.
|
|
52
|
+
- Use `.txt` files when humans or operations tooling need to inspect the data.
|
|
53
|
+
|
|
54
|
+
## Usage
|
|
55
|
+
|
|
56
|
+
### npm package
|
|
57
|
+
|
|
58
|
+
```bash
|
|
59
|
+
npm install asn-blocklist
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
The default entry loads the EF datasets and exposes high-level classification helpers:
|
|
63
|
+
|
|
64
|
+
```js
|
|
65
|
+
import { classifyASN, isHostingASN, isAccessASN } from "asn-blocklist";
|
|
66
|
+
|
|
67
|
+
classifyASN(14061); // "hosting" | "access" | "unknown"
|
|
68
|
+
classifyASN("AS7922"); // "hosting" | "access" | "unknown"
|
|
69
|
+
isHostingASN("AS14061"); // boolean
|
|
70
|
+
isAccessASN(7922); // boolean
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
Use subpath imports when you only need one list or one encoding:
|
|
74
|
+
|
|
75
|
+
```js
|
|
76
|
+
import { isHostingASN } from "asn-blocklist/hosting/ef";
|
|
77
|
+
import { isAccessASN } from "asn-blocklist/access/gr";
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
Use the runtime entry to load your own embedded or fetched dataset:
|
|
81
|
+
|
|
82
|
+
```js
|
|
83
|
+
import { createASNSet } from "asn-blocklist/runtime";
|
|
84
|
+
import { HOSTING_EF_B64 } from "asn-blocklist/data/hosting-ef";
|
|
85
|
+
|
|
86
|
+
const hosting = createASNSet(HOSTING_EF_B64, { kind: "hosting", encoding: "auto" });
|
|
87
|
+
hosting.has("AS14061");
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
Public entry points:
|
|
91
|
+
|
|
92
|
+
| Import | Description |
|
|
93
|
+
|------|------|
|
|
94
|
+
| `asn-blocklist` | Default EF-backed classifier and runtime exports |
|
|
95
|
+
| `asn-blocklist/runtime` | GR / EF parsers and generic classification helpers |
|
|
96
|
+
| `asn-blocklist/hosting/ef` | Hosting EF set and `isHostingASN` |
|
|
97
|
+
| `asn-blocklist/hosting/gr` | Hosting GR set and `isHostingASN` |
|
|
98
|
+
| `asn-blocklist/access/ef` | Access EF set and `isAccessASN` |
|
|
99
|
+
| `asn-blocklist/access/gr` | Access GR set and `isAccessASN` |
|
|
100
|
+
| `asn-blocklist/data/hosting-ef` | Raw hosting EF Base64 constant |
|
|
101
|
+
| `asn-blocklist/data/hosting-gr` | Raw hosting GR Base64 constant |
|
|
102
|
+
| `asn-blocklist/data/access-ef` | Raw access EF Base64 constant |
|
|
103
|
+
| `asn-blocklist/data/access-gr` | Raw access GR Base64 constant |
|
|
104
|
+
|
|
105
|
+
### Raw files
|
|
106
|
+
|
|
107
|
+
All binary formats (`.gr.b64`, `.ef.b64`) share a common header:
|
|
108
|
+
|
|
109
|
+
| Offset | Bytes | Field |
|
|
110
|
+
|--------|-------|-------|
|
|
111
|
+
| 0 | 4 | `OFFSET` (uint32 LE) — minimum ASN in the set |
|
|
112
|
+
| 4 | 4 | `N` (uint32 LE) — number of elements |
|
|
113
|
+
| 8 | 4 | `U` (uint32 LE) — value range (max - min + 1) |
|
|
114
|
+
| 12 | 1 | `k` (uint8) — Golomb-Rice parameter (GR only; 0 when unused) |
|
|
115
|
+
| 13 | 1 | `l` (uint8) — Elias-Fano low bits width (EF only; 0 when unused) |
|
|
116
|
+
| 14 | payload | Encoded data (format-specific) |
|
|
117
|
+
|
|
118
|
+
#### GR payload
|
|
119
|
+
|
|
120
|
+
Immediately after byte 14: the Golomb-Rice encoded gap bitstream. Gaps are decoded sequentially until `N - 1` gaps have been read.
|
|
121
|
+
|
|
122
|
+
#### EF payload
|
|
123
|
+
|
|
124
|
+
The EF format has its own sub-header at the start of the payload, followed by three independent bitstreams:
|
|
125
|
+
|
|
126
|
+
| Offset | Bytes | Field |
|
|
127
|
+
|--------|-------|-------|
|
|
128
|
+
| 14 | 4 | `lowOffset` (uint32 LE) — absolute byte offset of low bits array |
|
|
129
|
+
| 18 | 4 | `highOffset` (uint32 LE) — absolute byte offset of high unary bitstream |
|
|
130
|
+
| 22 | 4 | `selectOffset` (uint32 LE) — absolute byte offset of select0 index |
|
|
131
|
+
| 26 | 2 | `selectStep` (uint16 LE) — number of zeros between select samples |
|
|
132
|
+
| 28 | … | Low bits array (`N * l` bits, packed) |
|
|
133
|
+
| … | … | High unary bitstream (`N + ceil(U / 2^l)` bits) |
|
|
134
|
+
| … | … | Select0 index (array of uint32 bit positions, relative to high bitstream start) |
|
|
135
|
+
|
|
136
|
+
### Plain text
|
|
137
|
+
|
|
138
|
+
```bash
|
|
139
|
+
# Check if an ASN is in the blocklist
|
|
140
|
+
grep "^AS14061$" dist/hosting.txt
|
|
141
|
+
```
|
|
142
|
+
|
|
143
|
+
### GR format (init required, smallest size)
|
|
144
|
+
|
|
145
|
+
Best for environments where a one-time cold-start decode is acceptable and embedding size is critical.
|
|
146
|
+
|
|
147
|
+
```js
|
|
148
|
+
const DATA = "..."; // Paste the content of hosting.gr.b64 here
|
|
149
|
+
|
|
150
|
+
const buf = Uint8Array.from(atob(DATA), c => c.charCodeAt(0));
|
|
151
|
+
const view = new DataView(buf.buffer);
|
|
152
|
+
|
|
153
|
+
// Read header
|
|
154
|
+
const OFFSET = view.getUint32(0, true);
|
|
155
|
+
const N = view.getUint32(4, true);
|
|
156
|
+
const U = view.getUint32(8, true);
|
|
157
|
+
const k = view.getUint8(12); // Golomb-Rice parameter (= 4)
|
|
158
|
+
|
|
159
|
+
// Decode Golomb-Rice gaps
|
|
160
|
+
const gaps = [];
|
|
161
|
+
let pos = 14 * 8; // start after 14-byte header
|
|
162
|
+
while (gaps.length < N - 1) { // N-1 gaps between consecutive ASNs
|
|
163
|
+
let q = 0;
|
|
164
|
+
while ((buf[pos >> 3] >> (7 - (pos & 7))) & 1) { q++; pos++; }
|
|
165
|
+
pos++; // skip zero delimiter
|
|
166
|
+
let r = 0;
|
|
167
|
+
for (let i = 0; i < k; i++) {
|
|
168
|
+
r = (r << 1) | ((buf[pos >> 3] >> (7 - (pos & 7))) & 1);
|
|
169
|
+
pos++;
|
|
170
|
+
}
|
|
171
|
+
gaps.push((q << k) | r);
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
// Build bucket bitmap (one-time init)
|
|
175
|
+
const BUCKETS = Math.ceil(U / 16);
|
|
176
|
+
const bucket = new Uint16Array(BUCKETS);
|
|
177
|
+
let cur = 0; // first ASN is always at relative position 0
|
|
178
|
+
bucket[0] |= 1;
|
|
179
|
+
for (let i = 0; i < gaps.length; i++) {
|
|
180
|
+
cur += gaps[i];
|
|
181
|
+
bucket[cur >> 4] |= (1 << (cur & 15));
|
|
182
|
+
}
|
|
183
|
+
|
|
184
|
+
// Query (per-request)
|
|
185
|
+
function isBlocked(asn) {
|
|
186
|
+
const p = asn - OFFSET;
|
|
187
|
+
if (p < 0 || p >= U) return false;
|
|
188
|
+
return (bucket[p >> 4] >> (p & 15)) & 1;
|
|
189
|
+
}
|
|
190
|
+
```
|
|
191
|
+
|
|
192
|
+
### EF format (no bitmap expansion, direct query)
|
|
193
|
+
|
|
194
|
+
Best for serverless environments where cold-start expansion cost matters. No full decompression needed — the data itself is the query structure.
|
|
195
|
+
|
|
196
|
+
```js
|
|
197
|
+
const DATA = "..."; // Paste the content of hosting.ef.b64 here
|
|
198
|
+
|
|
199
|
+
const buf = Uint8Array.from(atob(DATA), c => c.charCodeAt(0));
|
|
200
|
+
|
|
201
|
+
// ---------- Header ----------
|
|
202
|
+
const view = new DataView(buf.buffer);
|
|
203
|
+
const l = view.getUint8(13); // low bits width (= 4)
|
|
204
|
+
const OFFSET = view.getUint32(0, true);
|
|
205
|
+
const N = view.getUint32(4, true);
|
|
206
|
+
const U = view.getUint32(8, true);
|
|
207
|
+
const lowOffset = view.getUint32(14, true);
|
|
208
|
+
const highOffset = view.getUint32(18, true);
|
|
209
|
+
const selectOffset = view.getUint32(22, true);
|
|
210
|
+
const selectStep = view.getUint16(26, true);
|
|
211
|
+
|
|
212
|
+
// ---------- Select (locate high-bit bucket) ----------
|
|
213
|
+
function selectZero(n) {
|
|
214
|
+
if (n === 0) return 0;
|
|
215
|
+
const idx = (n - 1) / selectStep | 0;
|
|
216
|
+
let pos = view.getUint32(selectOffset + idx * 4, true); // bit offset in high stream
|
|
217
|
+
const target = n - idx * selectStep;
|
|
218
|
+
let count = 0;
|
|
219
|
+
while (count < target) {
|
|
220
|
+
if (((buf[highOffset + (pos >> 3)] >> (7 - (pos & 7))) & 1) === 0) count++;
|
|
221
|
+
pos++;
|
|
222
|
+
}
|
|
223
|
+
return pos;
|
|
224
|
+
}
|
|
225
|
+
|
|
226
|
+
function readLow(pos) {
|
|
227
|
+
const bytePos = lowOffset + (pos * l >> 3);
|
|
228
|
+
const bitPos = (pos * l) & 7;
|
|
229
|
+
const raw = (buf[bytePos] << 8 | (buf[bytePos + 1] || 0)) >> (16 - l - bitPos);
|
|
230
|
+
return raw & ((1 << l) - 1);
|
|
231
|
+
}
|
|
232
|
+
|
|
233
|
+
// ---------- Query ----------
|
|
234
|
+
function isBlocked(x) {
|
|
235
|
+
if (x < OFFSET || x > OFFSET + U - 1) return false;
|
|
236
|
+
const p = x - OFFSET;
|
|
237
|
+
const h = p >> l;
|
|
238
|
+
const lo = p & ((1 << l) - 1);
|
|
239
|
+
|
|
240
|
+
let start, end;
|
|
241
|
+
|
|
242
|
+
if (h === 0) {
|
|
243
|
+
start = 0;
|
|
244
|
+
end = selectZero(1) - 1;
|
|
245
|
+
} else {
|
|
246
|
+
const r1 = selectZero(h);
|
|
247
|
+
const r2 = selectZero(h + 1);
|
|
248
|
+
start = r1 - h;
|
|
249
|
+
end = r2 - (h + 1);
|
|
250
|
+
}
|
|
251
|
+
|
|
252
|
+
// Scan matching low bits (at most 16 values in the bucket)
|
|
253
|
+
for (let i = start; i < end; i++) {
|
|
254
|
+
if (readLow(i) === lo) return true;
|
|
255
|
+
}
|
|
256
|
+
return false;
|
|
257
|
+
}
|
|
258
|
+
```
|
|
259
|
+
|
|
260
|
+
## Data source
|
|
261
|
+
|
|
262
|
+
- **Source**: [PeeringDB API](https://www.peeringdb.com/apidocs/), community-maintained by network operators worldwide
|
|
263
|
+
- **Update frequency**: Weekly via GitHub Actions, auto-committed on changes
|
|
264
|
+
|
|
265
|
+
## Versioning
|
|
266
|
+
|
|
267
|
+
The npm package uses `MAJOR.YYYYMMDD.PATCH`.
|
|
268
|
+
|
|
269
|
+
- `MAJOR`: runtime API and binary format compatibility.
|
|
270
|
+
- `YYYYMMDD`: PeeringDB snapshot or generation date.
|
|
271
|
+
- `PATCH`: same-day rebuild or generator/runtime fix.
|
|
272
|
+
|
|
273
|
+
Example: `1.20260703.0`.
|
|
274
|
+
|
|
275
|
+
### Important caveat
|
|
276
|
+
|
|
277
|
+
ASN classification is a strong signal, not an absolute judgment. Hosting ASNs occasionally carry legitimate traffic (corporate VPNs, monitoring services, RSS readers), and consumer ISPs sometimes carry bot traffic (residential proxies, infected devices). We recommend **tagging** traffic rather than **dropping** it:
|
|
278
|
+
|
|
279
|
+
```js
|
|
280
|
+
// Prefer classification over binary filtering
|
|
281
|
+
const type = classifyASN(asn); // "hosting" | "consumer" | "unknown"
|
|
282
|
+
// Use as a signal in your analytics pipeline, not as a hard firewall rule
|
|
283
|
+
```
|
|
284
|
+
|
|
285
|
+
### Classification
|
|
286
|
+
|
|
287
|
+
| PeeringDB `info_type` | List | Description |
|
|
288
|
+
|------|:--:|------|
|
|
289
|
+
| NSP | Blocklist | Network service providers (transit/hosting/colo) |
|
|
290
|
+
| Content | Blocklist | CDN/cloud/content networks |
|
|
291
|
+
| Network Services | Blocklist | DDoS protection/anycast services |
|
|
292
|
+
| Cable/DSL/ISP | Allowlist | Residential broadband ISPs |
|
|
293
|
+
| Enterprise | Allowlist | Corporate networks |
|
|
294
|
+
| Educational/Research | Allowlist | Universities and research networks |
|
|
295
|
+
| Non-Profit | Allowlist | Non-profit organizations |
|
|
296
|
+
| Government | Allowlist | Government networks |
|
|
297
|
+
| Route Server / Collector | Ignored | Routing infrastructure |
|
|
298
|
+
| (unclassified) | Ignored | Conservative: allow through |
|
|
299
|
+
|
|
300
|
+
## License
|
|
301
|
+
|
|
302
|
+
MIT
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
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CiBEigUsN58Z5JsBC35XEWi/jHkW3+N44DzPI/QDVcqd2Zq5rcv3jdBb0+FJr1f4mHBZ/80rN672WfFN6fE82OwocvXr3mq9S19a7ATZxhkNoHr+B8KJRXt9+XZ0oPlIkElYA8zXJtF7Vh8VHAFL4HsFJFZXMK3dvVS6tsGATeUKCrVltXvt1p1op1IjXQIG0JU2ZpTWLtYgAgXbrV/ejr7Ab0gALXL7u2t1VjdyVL171KaXAFICVlGLEVam+7ttp373cisGN3oAAHfuz1zmu82ctbAAB3TKjU1NlZNVZOtbN7tt3XYq26NqDWZtTTu1u7d9r3HW2LVSrZSWizWXbttu7XbtbvZqrd3bbt2mnVN3vfZzvvbd7u63e4ytdre6qldl6/fpfvfTcoPWmVytWhRVU2dlWi97a7d2613W22aKdau7ay2e7SbvdbtdXW05XdWy3bbz3Sd5brd1Zqqr5byq698buXdUdVettrwz0Ncs6tdlRVdLc7Ws3TOjUrqasrdtVTSp22i9WqOrGtdea2bnel60a2kXbm61a5u3Sb2caiprtVloO6uyqq1VdStFuKu++3fdd1lLq9tNh92293O+7tv21fXXuJrr6cvYtrKqVVU2a1ounXXBks1RuSGbm6y4tC3FjtN2FtSclemle2rq1bc69uWrcYtuur1btLbVt4EFua6zso4rZsrhjk1e9ot3sLWqzcq7X41XJNbYubpSW3t0i/l91rt23vexvcdyc1bf7r3u3caDdf99rqvVl6Vk1mJLdbTNacW5v2y2s26OStVSm0Y2N1atm5oLcdpaud22b9tOmWtoBXtJyXNRoJvX2y77u93O+r977993ve7377/u7+/f9+99vv3e3ZdiVv3vv3+/uZtYVttaz1u5GTc+7Jtdu923ntbXcUFtrZadyxWlb1JapFqLUi3ayU827VYu0q97juq5dpqtbWG1qNZncqmpbLq2WpzeXKm1p1uTStpjTDrdsmWzdpK1yq7X/9jt61lTtupK67XcnVzWU7UnddG7st1pY2utbZlu316Zre2nY6u3zqq+at1drNNuUttVrW6ZaqK5ALbg7Pde93vX93u3Xu+73uzvd+339297e93e3vfW97363GYG4tbtbHfbbaufeA7N713W7cXN+9uttzerSu7uT2q3btrWWZ26bztncu1uvdNgtK+SZC7lVtKlkilUrRfS7r6tx6kva60qL2qbV17e+qmtG7q9Uylp5XXtSrP326W1vtdzyrctq23V+3LqZLaXWrTtrtbXZ6BX7WrTz615Utke1Ovdtu9lZbtenaq6mtLTDVr21vf727xd7V663Y7u997b9diutoe+/jLGo9tSVoKq1lCJTawJNlq1vrz1aztnW7W21e+1GVbbd2rNLvaXbd3LVrd3r8rL3urd2tW6HtlO2rZrWN7W3Pa3avN7dq2226u9bapnvVv288623VvWetn1de2tXbU261q3Nbdve3k2OfLO13qyyt7N1XNnaYtfbrM9eN37Pd93339/fv/fv9/fd77/X99/e+/ffe/e/6/f9/fd73fe++/97/f375/e/ff+/v3/f77778kTSi0CGqrlOqqcflKpKLW2aKoueW7MjtGzHa2qK222hW7oy1aD+92aavXSuUM2lbrzzevms29182ZbvbO6tq51W1b5d27yvO1Xa7ura6G06vbvXunWuryubTaLK1mm2t9dJS9s23OsX36n0C+3t9YP4qy27VF1bXWxetNzztVtrap1bt3tpu3t029ktvNtdu9qshsna73q3XXdVdTu7v752+/vd7+3777f7/u+/v773f737/cd63XVba7tVp8vbXLHrra21W5G2s7le3OqKXsTqsvrQAWvfv5n++e1126uf73QuqwE1AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABnm09va7ZC17Ab27x7fXKB9/97/e9tab2vm2q+vV1b3Wfd7617tXb3v6nWnv379tVbatq7/2/vvdvdrra/O2fuve+/e3U999xau/vf7+97drvabd2+97tlZ72nTXvu293ly++/v3v386977te31fvfv7+/du7r+3dd+8pVPb3+7/39/fvv7+9/d4MW3dztttdt/vvfd/v23XcvXK93373/fVvbu/ffbte+6217+/v377667bffd79vV2bd9u7u7+/MBu+23vdt277u/fvfu/fNu+/e7XZa2e771b995X333733379++7fXcvfa4DdZb3Xffffvfe93v+97a717Tdq713vW97+75tvd7737ft6oTe97++/4Fe3W4wGVvu2zz79+/bvNvvXuu/fd29t7q/fe2/7/fe/fj63P3u+/e+/d7vu694ur3dLvt+/v/v7/f9de3t197rfQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQrru+73fa7u/339/fu/dvu35gAAAAAAAAAAAAAAAAEW8Bbb31Hvvd3e3K97u+3y/v9/vvu+3nd3fe/7/fd7ffva6rvd3u9/ee8+7Xt99732/7vdu13W3WwN9777/dn17aXf0Bvfvt0c+++/b/c3t931b3u2Aa/33++d9vVfANd77++/v6rntbu6tr6/333f++3rUCe7997tre3rmtwV1atc231+5u3tq92u7bYrbb93vbsW1be909qscKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoy16yttV27a3VpX7Vre9221vu7bsXYvbtbXd69+3HV9dt9tc692+3Xtd9tvd93avdmtdri1PdW27c7Xdr217Xzv3zbe7vu/PMa9+/qr212vXOuz7W1u7dXe+2u29u93XTe92tqt3u7t161be3bK3G7vPqra62ldry2uttu27vWqr7e+vTfu1a7r27tvr3W26rt1cZe2tfdr7d3nZ3Xcrqveu7ctra293tbut3u3t7vWzu17x7bS9bs+7tWzu3ey7nb9TepjZbtfer253d3Lq/Ytd3btvfXVa23re3Xs8btlvbq7W3b5vm329u9b7t12q7e2Xq9ruvu09Ldm1ne9vWfdda1vqdXt37a17d73Vt22923uXd7vVt93Ts3dmstPNdWtvutK1t2vbdtba7Tt27Otzq72qs2W32t27689ZN3d61XXrp2/e+eW91Xm212esu46Mu1rb3b127rrW4rdNOvOe1va3q+7zqr19vdle7NrXW9rXzbdbXNt27fZvu2t33W7vub29q61vrt3fbay1uu7ee/Nu7t9a3XbrXLbWg943bd3PG73ULaeU7W97PeW123dvq995nu+27ptV3b1972d22vWu7u/dt7Vu3rd1vdbua3tW73btpVrNWrbe4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAq1VyrqAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC69731++/fe+799+/vvv9/f3v37+/vf3v7/u+9/fv397/ft+9+/W7+33++/vf7979/tu77/vv7+v3v9333+/37/f37/3737/v799/v3d7/b/vf3f3u993779/b/f7+9+979/3ff3v/v9/7fffvvv3d73/e/u/vv+9+/7393/fb+7v3+/37979+/vf37+/v/fe9+/f97++77979++++/f977997939+/ve/vVOz9+33+/f3vft/f3fu/dv37f3e/373v9/fv9/f333/d79+/37vv+/v7vv+9++999799+97+79+3b7733337vu/vfv93v7+7+/339+7+3/b733/f733/ff3v+77+/vff3v++/vu/fd973d9zvf93e/d79977vv3399/t++++/v79++3v77/ff9977379+9/ffv937vf9/vd79d399999/vvv2/d7339+32/vvvv99+/37+79/ff39+77++76/3+/+9/t/f73/f7/vvtvrX3u3e9993vu9733drU3fe97t79+99+9+93t7u/72/r773u+99+/fvd++9/e/2+9t73u/33e93ff76+/397277t6/e5/fu/ffvl79b7e+9t5t/377u77993e+t7rq0Qa7e77e9Nql3ou173W7Pbu7vvrvu8/apu7vVre+2nqm9bua671d7Fxv1VGxQq6RrrU93urzXaryBAAAAAAAaxcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABu3fe99532/t72/e+33dtb36++773z77vt73v2/e+772573T3fv32+/fve3r7ff3u+9+7vvfdXb3d73W77uvb3avd3V0tugAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOrTIe3U1wulayVWWQ7NVrVIt22FTaI0jXES7imJ041iVNbM1Y8pakIVmQrF0Ih2oLM6AAAblLDbtdZgRRRtk3jYTdmgQpLsULPam0LV0ZwUuKTpNY7M93Qttbq0yXXVaOZMrmqspjFB20quVWjVarNa1EgNpXsV12CSyZruC60WZrpsmqdMGFQVLqkFWsgEAAAADAgAANQQAAO4GAABbCQAAtgsAAD8OAAANEQAAXRMAAMgVAACdGAAAKRsAAMMdAAB7IQAAyyMAAGcmAADxKAAA8SkAAPEqAADxKwAA8SwAAPEtAADxLgAA8S8AAPEwAADxMQAA8TIAAPEzAADxNAAA8TUAAPE2AADxNwAA8zgAAGU8AABgQAAA0UMAAD9FAAABSAAAs0oAALNLAACzTAAAs00AALNOAACzTwAAs1AAALNRAACzUgAAs1MAALVUAADaVwAA6VoAAAZeAAAIYQAAxWMAANlkAADZZQAA2WYAANlnAADZaAAA2WkAANlqAADZawAA2WwAANltAADdbgAAMXUAAB97AADyfgAAK4AAACuBAAArggAAK4MAACuEAAArhQAAK4YAACuHAAAriAAAK4kAACuKAAAriwAALYwAANqOAADajwAA2pAAANqRAADakgAA2pMAANqUAADalQAA2pYAANqXAADamAAA2pkAANqaAADamwAA2pwAAN2dAAC6nwAAt6EAAA==
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
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IITmDOfBMogcrugN4lGiopURpDPSEQ5RGJKFwUBWsgxFjHSlE6FiUIIzEQw5wiHMVp5C2UjMMZzCOQ6B4QoIQsCIQxlFFKI0I1OjJMFZ4UtIwYQlpjEJJhjSgLECEOxqTCDUFDRndcIxlhTAgiBDgCEtZEKK5RQz8hXlhnSMsyRiMYqziQEo1pSQI1hZWMKJzmYIcq4BCFgWwhrhkNLGs7C8kZZKzpgE+FccommaNMo1ECIo4wihtyIxOGIpDsXGVi3CUMcwg0jDumGEIxlCMQoHSiEIK/yKIEYSlaEIXIKMggyCJ8QgiCEWt8w0yyEaggSLHG9XQkp2uaJQZkiKto2j4GhEiIYYcI1tDEsIpgoMt5bBrIRbXwDWJFLbiCFRKEqRLKQ4kFCRRTqgkKsZ3CYEgUGUILLgvKsJSoHnuMZR0lGOZQgwkpCJSioGkgwmMeRcCE4uRSj02kJAYUiAjEgRhlEtMqBIEeEopkBOEiVyREcgTGYUDQYKhCQkZAiGMIRiEgN4QhaMwgkGEIQhKswQpCYihBEUIglCcpiBIMQRiKMgSFGg5AjCEQiBCEYiBCIwTkCUZRFGEIRhCEJBGGgIQmIIZTIGIYgiEEhwkCEgSiGEIQhIM4x7RCSEo4CIScrTBLQyQgWjjIxQ1jEhphWRHRBGIJSVtEQKhsIqMRLUl1oKEzDIFINhXNGocI5TzleU5KtQaBCE+AlywnEWOlBSDMgozzlFGefkVZCkITm21nIhkEQq4AjIFqxVf+1gjUBEQYRBKEgghCEsp6RhEIJQiMMIpQmIcjnCQtIiuQYYooFkFGEYQhGUghkIMs/aRY3QPcL82gMTP/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////U2EIw4xHHHSQZTleEgXDFQIYzqdX1Oao5QmIL+cwSEOMzxBOEqMRQnIs6AhCOIRKZvrIIIhiCEIRCCMJTDEEYQiCMgRoIEIjmDAGgw7JkiCc4iriCIgZkvCcszWOCEYWqGQMrVlK4shXiCEgVQLNEMKQiIU6RjCMggvad5FCGMg4AqhgEhBGFCI4yCCERAlCKXOEKKAsnMEZAhCExkhCIIzhEIKRKFPEKdbBoYp5WpeNUzSiCIYRCCIIRicEIRiEQgiFEEZyCC4UQglUUYiulCFcRzFYsIhjHOUZwsDhCEISPCNLTiCQwgtEIISBOEQiBSI5GGGO6MYjiIIRCCEEyAn2QnRQsQRhIEYiDQMIwhCEJAnCQRAhOEYjCCJK2EIRbjlIUI0QBHhGtyThEI6UmCUYxFGFIUDGEjlCJdOlUgkiIRATChqOcV5KCiOMYSDOQI1BkKUgRtIQZDBvOoksITBEgYQjEEoQhGMIQmGQxhDCURAoEMIQhlCgjxiIdBBCCIJTiUQMERAkI8hAiCWNpxDCIRApIEJgiEQQQlEIJBjCIZQhEQIQ0kIMkAgpEZ5BFEIIhGkCNQxOUIZShGQQwmLQ22tjcBxhUIpEDCMIRhCRATEEMIQhCIJhBCMIzhCEQgiGgIQjCFQTCCQQQjEIIhjKMohBCIgTDEkhQl9o95UrQcKlDCkgZxiUp43iQWArihQZyDEGEghBCYggjKcIwkGYRBKCIIghEYYRBEGQR0rCNLCFOkUUAxhXGMd8RSoCgQyBCEcAwiEEYTFKEIQiGEQiCEYUMRIAkEQ5mBIMKyBCEqQkIE4ShENhAmSyEQjEIQIzEGkzxPC4K4xDEkIRDCEggjKIJBBIMZREEIIxECIoREGxwRJhGlA4DvCEZChGEwTFOFJRBIQYxiOZBAijcYhHilO0izDMEwSICooznOcRxiKlJQiCEQjhIYIwyk/eYYWmCQIXEQRgVhCpRQiCY5yrMhgUjSISghGFqBIKEwQhIMgiDGIYiDKMIRkMJJQhCQRyFCGRozwDGIIgpGIgiDMIQklCdLWEG42FoRxmQ6QYRoWEoQnCQZxueY6CjEIKAhERJQjrgMUJAoIEYyECUYiCEQIinGEJhlEIhhDCEJAoEMIhFEEohFEIZRiDOIYhHHCcoyFHdCEYhlEIbBwkOT9pRoGhyZIBOCEL0DHAQ5glOEIgoEQRgjSEIhhEEpSjCIKiCIwQSlGZQRjEEIRBEIpSECcYxFG5cRSmMIIzuMIUBTXmOQ5yvmYUJxBKV6RHCMqghJEJRylCMZCoEEQQhKUiwjGHCEI4kEMMYxLKgQRiCFJzhCQgxjCNBhEGEpxICFoaounQEpQlGERkCCVBQhEIJRjGEYglEEIg/eaEwQkJAgI3nYgmFH8wYrCKMJARkGGMpUHZIYYaAlGEggiIIYQjCUgQlGIpkjQYoTUnKopRjCUgSHhOQKSiHQIQhFEMQhlGQJFqIE4WBKYaUCiGUIhnkOwJBDCMJRiMkIkGOFwghGEgQkCEQRCGIRBGEMYzhGQgTCCIgsYhCMV5WKFEIJRBOEZCnMUIkCIEIRjOQojiCQQhBOMLQhGIY2BMkZRBEkZgikeEYRiMPgSUoonBEGQI0mGrMY4ijIQJkiGEgTFCMIRDCIIRhCIIRGCMIwhGEJghEEIghEIQRtKc5mCMQ6yCCKIKyFeMgihOQoiFQZZ1BEIyP//////////////////////////////////////////j9DEoCh4RrEQ4zBCZQjEGVRAiCIwYQrWYiBhUMSQiCIwQnCMJQhCIRBkEIYQiMEZRCCgSChCEKCmKRRBEGcxChaQgQjkZ/////////////////TwQHSIgf4BtCuAZQjGcgTiRHmCRBRFIEoyDQEpipIIiiiCs5QnpsINASEEFQynCsghlCQyThIGxwQhCEIhhCEQSmCEIgjCcwghCMQyoMQIhhCwqjlDUUJwhaYKijOEISjMQRAhEEQRDIEIwjCQQxlEkQTFOGAJgiCMwQjEcxQkMeA6hIkgWEihDEkIlDUEQjMIVISBEIQgmEURQyiCJYTHlGEoRCYJS3mEMLEFEMIQiUIIwjWIwyiIYKSlCEIQhIEjAsEEIwhiQYR1mewRTBOOsSxQhCpQoQ/pCUQgjIUZTkGERgiCUggjGEIVhEUN5QhC9wiiUJajWxGGMIxkEIP9IjBKI4wjIIxRhGcUAhq3BRIIJSCCISTEEEhghCIjhDGEJghCIxpGiCkozoCQJGBIgJghO2ELgiG0IRqCZ5jD/whiQEIQhGEowlGMQxCEEJECCG8IRCCciRnCcjD0HCMKf7CmWNRBBSUIglSEIQhKIYSDKUIRhCQIQhGVb4WCFUEwyoiSRpgmONQhroQGErTjEQyziEEIgkEIRwkEcJBDSUIghGEIQjCMIXKQEIoGjS39coRqUIRSCGQISEGQJhBSMx0oDBGYo0hENhBlYk4cYjvQYSfiQ4gkwPJOSYjVHFKhaCEcQQSkcIQxkOEVplkIwixBCwaTxihEELRKWVqjhKU6jBQ8qA67VhalJmjIEZBBKQbQlGEYlKMIIZRcRCwFZDANZXkCEhCEEch8oSBOKhMqibDh43f///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////3r3iliK9QRHNKHCmgKlpKSeZQTEQoIXLGNsg1DSVkCHYVShCIYiHPOgk7TKEEJiCGgJWJKKcayraRAihEcYUpIQc40hEYnIgI3J1pEMkgSDKwqlrMKo5SlWE5BhQsJiLCIIwiSgxNYgyOKERDoSVRxSCQEIijDQI7hHrEaAohmEUcoTDEERVkaJahkCc8RyCSgQQvEYTgtGUKDBYMQRBQNByIQaNJiCaEoQ6xDlC5rAkQ1KhbVLLFaUgVDDIww4EJC041BgCaMaRMQ4g0kSFbGiIIrRne8RRGSs4THDKURhjGIYQmEaNJnDSwIRqEGEQilIERBHKIwQhpGEeIOY8RwoCQYREEEowjEFELnrWEKzmMWUpSIctIQsYQVYxFjEMzoiDIEp5XEGSNZkhOwwjoENKpDJIUJwlGgYSBkNCoQ2hSVBRGMZYSKGExCnIEshSnZWNBhmGIxEkIgsSxtC+ZTCPKJgQiKcggnSUxxKMhjChE5AlUsDCUphCORQxxHKSqOAxhMwsMUqihMYIZyCCN8iaCLGmIgWpUtwia4jICsjUCOWaJIWncJDkljCYkIUrGMqjrINKBHGUTSkhbOug4QmGkjAkGEIiiPAM4j4CpCERxCGsgqisdAMIpRCJCJISBjCFQUqScpQoKFpBLEcZIknWMyklCmkzSDmCIR2SLGfIG5wQrSUpYVFc0QRFMgSixFGIpHBMMSxnKMZozkYeMpShWpIzsKOeghUEnlKQRhhCc0ZhFCc5IxljjJAVkBDGawSxwHGFYxCaEJkJmCYo0lMN6GnCQYiFUMwYAoCsqAjC8IiBWI0JmCmIVCDLGxIRiQY4cRhlMJThBulcEwYGFUEiBWBKESFhGNDSxJaJIsIxqGFSjiWMJDiHghEZCBzCEdaAhGQbIpgsEYciqw8ZTIseU5AxCaoIghSgojzGII5GBCqgJoBiEYayFQI8sgSslGUQhCSLhYZDjCUQg2iQhJgtC0oyGGYJBiI8QmxVFSaQThQFEgwRRmMExGjQM44SmEZcIwp0iaYhBNHZWMoQoEpCBuTKUJRTrGUchgjOgRCjlMcIzFpMI7CCKFIzDCoSjhSVYRQCOsYSjEYSipKVLhmQaRTIDhaI5hjOpQbVCQRZ4UjC4ZWBI1BHjMMYhrGQkc4UCVpQdJAsHjCEM0o4ymIEokDOJ4hjCNEh5RFGUREneQMKDMjMR6ThEFYZ7xjdAYZSjK1ISEEERXBGR8aBxFCQY4gjUcISiQIbgskCGEijBhCg7FjKQSQhQ1hDBENCxStGsRjkCIkIRnEErI1pINRCBGYJ1IE64gROqC0hDFEZshKDFmhc2YISXJekRiwRDlGwjgiEILTBiIZ2osZHqNIEKxEaVxDDIxQTjUN4kPakrEGY0ZClojCsTwrIg4wnlDQI0DBICmYYnQRBGMJQxiRMqF6oiNNRcEgnCCIMglpYUxDjaIpDBGUUoSCjIQUCGT5wnEdIhnEoQgidASFVomCK4YQzFEJeYIVKGQIQhWURBnCIVIiBnjEwIQrUJ5azmEG0RRzhOljhkOK8YSoeHMo4VEFiKJ/CWtJUiYliDxChCoIUkClYoBBI8YTuIgRlHGaFAnEDYwqiC4HwBIoS6ztvMEjRGFQU0hDDIwzwwBOFBIFhYMInvWEhhkKcxBErGJLG1nGIjzHCMZDLEYJlBSWioZyjUELCShrGdZlTmCaBQzBKVY4UvSMQiSFUw6hnJGsqgwqKWZKiOKUKnCEFEQhkCgKQ1CWQJRNCFCxnkQoQysGIgTnEiYQjEcMRhEGEjQ2jEYQ3CUEJ2hZAsKCSDTKRISlCKcIkHUIyBmGUIUDK0qlwlFpeF5VjWGIRTGOKEZiDHGMxBlCIIplKGkglnCURGlSYgQjiE543iK1qQnGcQolDhcJMkDSsOVq0l+AhgkSMONLiBKOUpRJKYSCnoCEOgywqEsQVhIyDtgIhR7RBDkRgEY6IIwkGJQziIgsxQmEEprzlYw0QwlMxBgsGgLSICYgSWICMoxkEIhCElNQcZTnEERBCYUrSCOooyYTuJGigpBPIMg1hQUzCGCIZDkEkJDCxhEdAkhSthwwDGFswoCkGhoSkIgJyiCQYxqGVSjHGURjRliIpoTJEQoWpYchyiRCkRxFEoxYRLUQZUhrE+YIQiUwLGQnO0IiJCMxhBgKgiTJZmO6U0Q10jhPCOo1IjpSMpBFSMf////////////////////////////+5L4UHigpMcWU1JUiNN////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////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YRFGEiBiQMZDBEISBDCIpCiGYIShCIYRKCIQgjCcLRnCIphDIlRjhUERxDKERmjEMYhCCMQwiGUiAmKYhSCIUQlESMoRFGEYwiCIwghGpYiHEMQhhCMJhCEIISiII4xCUhAhLEgIRhWRhBiNEEQUhCI4hpIGgZAiCIYhiEIZVBGIZAmEEQlDEMIhhKEWNAQjKEIxFgYcYjjChASIEIhxCEQY2iWc5xioEd4hiCEQQhMEISCKEoxjWIgRPKcIijCUQRhGkJhiGQZ2CIEQmCEIqGMEQ4jBFQQ4XQqYfV8CywCDKIxBjMNgglKNwRhEc4hkNlSJxXW1nWIZhGfsYMaCJeMpRkOQKxqS4pDlXEQg1FYEqiiEFSSDMERTDEIJYTlCYJAnGcpSjNCEIlBGlFLbhnSM4RrKUYynFJAZMQzpKEwSBIFbwpuCMa3wZhnEMUJRUDEFgrRNMgxXoGYQQpsWEzRBCNGaMSNoxkEEwlypcziQZm9fXFIsZI7uAJZBFNClx7gqIkoiBCVphGa9JA0CY4JkLJWWUIT1/T///////GaE4+caC/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////mUMqVDUgIwhCJRxDKUghhGULBhLEUZxiMJpBhCMYRFcIRiFCUbCJIMIQiIUojECIZXBEIwiJIUUJkkREkxCCEMZBCaUZxhIIggpKUgyCCMZCFGcQYyjEM5BiCQpSlEIJ0KOESBGCEZApCQIgoQYgglCMpCkMMQhiFAEIRkEczQkGKohBpCFAxMZKIxxDSMgRDGgIhBGQYREK0oThGMIikCEQSDC0YgmCIpyKGE8BAiKKEggjOIQQhIMihCEUJ0DIERAjMYIhCMUJnjEYYSCKUwRhIUKCDRQkxEBYQYTKCYiAjMMgxBcI0BmkKUohhE0gSILEMwgoWMRTkGZRzUkEUxiIQIRVDRE0hk0xhYKEwTf////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////wlEuojFVDv8YxhWcYzvbQZcpRc8YxwXGlQRz6qIp4FqhgPk7CjC+Vb1uUG0bBQw49lRAhHGOMI1ds0MySNg2ayQX6jrWMWzhveQziC2STI0WFSi0IuAbnG4MZKbCKeVgcJZTMggZhMQtT8yTJdg9XYaMWQUvshWLkGYUPbycqwtHHB4pB2lnGoX//+ZJQqpdiWLwKKogRThTAULYiUG+Xgn5DbTQEea6QrwhRmC0PhwkMwYiZDJ+30GwXPEiMPArzDPSELAhmokTEFvacNkImDHyknET3R4GFJrbnjIeSmhSHE4CCMW1U5BGEgpiiL4XrYc4lQFiGRMixIynxXlIGYQ0wRjhYXYMWA915MDIAhuDG98iA5YIy8ws1fjGWEphUUwvekpM0DYSpRyDkhO8kwo6Q1mFEmFZnG5r/1tMluKFBAiOfVUYpHEIlg/VXoO22Y+MrxHKYwfXCIjJhK3PDaaZ6lkCfIVg6MaYIVVkOTMT1B67hfIyuSEZ4xT5PLK2IMLxWA=
|