@slicedearth/whoisleuth-cli 2.2.0 → 2.4.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/NOTICE +6 -0
- package/README.md +20 -15
- package/bin/whoisleuth.mjs +8 -1
- package/cli/archive-content-digest.mjs +14 -0
- package/cli/archive-inspect.mjs +20 -53
- package/cli/arguments.mjs +454 -1748
- package/cli/artifact-validation/case-response.mjs +66 -35
- package/cli/artifact-validation/investigation-capsule.mjs +52 -31
- package/cli/artifact-validation/lookup-evidence.mjs +12 -6
- package/cli/artifact-validation/signed-review.mjs +112 -72
- package/cli/artifact-validation/structure-primitives.mjs +1 -105
- package/cli/artifact-verify.mjs +90 -24
- package/cli/assurance-command-runner.mjs +39 -4
- package/cli/bagit-folder.mjs +57 -0
- package/cli/bagit-review.mjs +23 -0
- package/cli/bounded-json.mjs +1 -1
- package/cli/bulk-checkpoint.mjs +34 -3
- package/cli/bulk-command-runner.mjs +2 -0
- package/cli/bulk-output.mjs +29 -3
- package/cli/case-command.mjs +195 -0
- package/cli/case-pack.mjs +66 -111
- package/cli/command-argument-grammar.mjs +215 -0
- package/cli/command-reference.mjs +342 -285
- package/cli/completion.mjs +303 -80
- package/cli/config-profile.mjs +7 -5
- package/cli/ct-event-intake.mjs +12 -12
- package/cli/discover.mjs +4 -3
- package/cli/discovery-observation-snapshot.mjs +59 -18
- package/cli/discovery-scan-command-runner.mjs +21 -0
- package/cli/discovery-scan.mjs +13 -4
- package/cli/discovery-workflow.mjs +1 -1
- package/cli/domain-control-monitor.mjs +50 -20
- package/cli/domain-control-observations.mjs +149 -102
- package/cli/errors.mjs +33 -1
- package/cli/evidence-command-runner.mjs +16 -5
- package/cli/evidence-signing.mjs +2 -2
- package/cli/external-observation-mapping.mjs +7 -8
- package/cli/formatters/terminal-lookup.mjs +18 -46
- package/cli/formatters/terminal-shared.mjs +5 -3
- package/cli/formatters/terminal-technology.mjs +114 -0
- package/cli/inline-command-families.mjs +2 -0
- package/cli/input.mjs +116 -0
- package/cli/interactive-launcher.mjs +2 -160
- package/cli/interchange-report.mjs +18 -8
- package/cli/investigation-artifacts.mjs +176 -0
- package/cli/investigation-checkpoint.mjs +10 -0
- package/cli/investigation-folder.mjs +114 -0
- package/cli/investigation-manifest.mjs +1 -112
- package/cli/investigation-package-review.mjs +103 -0
- package/cli/investigation-plan.mjs +32 -19
- package/cli/investigation-run.mjs +188 -33
- package/cli/local-document-checkpoint.mjs +170 -0
- package/cli/lookalike-calibration.mjs +7 -2
- package/cli/lookup-brief.mjs +4 -2
- package/cli/lookup-browser-view.mjs +1 -1
- package/cli/lookup-browser.mjs +5 -12
- package/cli/lookup-command-runner.mjs +17 -6
- package/cli/lookup-diff.mjs +37 -3
- package/cli/lookup-plan.mjs +11 -5
- package/cli/lookup-reconcile.mjs +10 -8
- package/cli/mail-header-review.mjs +467 -0
- package/cli/mail-review.mjs +66 -14
- package/cli/manual.mjs +1 -0
- package/cli/network-command-runner.mjs +2 -0
- package/cli/output-file.mjs +31 -5
- package/cli/registry-doctor.mjs +3 -1
- package/cli/registry-support.mjs +1 -1
- package/cli/retained-artifact-diff.mjs +2 -2
- package/cli/review-command-runner.mjs +70 -0
- package/cli/risk-calibration.mjs +19 -17
- package/cli/runner.mjs +62 -7
- package/cli/sharing-review.mjs +21 -34
- package/cli/signer-trust.mjs +104 -0
- package/cli/source-reliability.mjs +74 -83
- package/cli/terminal-input.mjs +168 -0
- package/cli/workflow-command-runner.mjs +68 -13
- package/docs/cli-reference.md +77 -24
- package/docs/cli.md +300 -25
- package/lib/abort.mjs +4 -1
- package/lib/availability.mjs +161 -112
- package/lib/bounded-file.mjs +3 -1
- package/lib/bounded-html-document.mjs +125 -0
- package/lib/bounded-json.mjs +51 -8
- package/lib/browser-library-profile.mjs +42 -51
- package/lib/browser-library-worker.mjs +112 -0
- package/lib/client-behavior-profile.mjs +3 -3
- package/lib/ct-search.mjs +11 -4
- package/lib/dns-convergence-review.mjs +1 -0
- package/lib/dns-delegation-health.mjs +24 -14
- package/lib/dns-inheritance-review.mjs +217 -0
- package/lib/dns-intelligence.mjs +73 -26
- package/lib/dns-mx.mjs +1 -1
- package/lib/dnssec-chain-validation.mjs +6 -0
- package/lib/dnssec-evidence-validation.mjs +11 -3
- package/lib/domain-change-packet.mjs +49 -16
- package/lib/domain-change-review.mjs +14 -8
- package/lib/domain-control-flight-recorder.mjs +221 -117
- package/lib/domain-control-manifest.mjs +129 -69
- package/lib/domain-posture-analysis.mjs +20 -7
- package/lib/domain-posture-parsers.mjs +201 -8
- package/lib/domain-posture.mjs +147 -29
- package/lib/evidence-export-privacy.mjs +561 -0
- package/lib/evidence-export.mjs +11 -543
- package/lib/evidence-report.mjs +5 -3
- package/lib/favicon.mjs +117 -41
- package/lib/generated/cisa-kev-catalog.mjs +12 -4
- package/lib/generated/registrar-standing-catalogue.mjs +7 -7
- package/lib/generated/retire-browser-catalog.mjs +2335 -940
- package/lib/hostname.mjs +2 -38
- package/lib/html-signals.mjs +111 -108
- package/lib/http-evidence-bounds.mjs +2 -1
- package/lib/http-intelligence.mjs +39 -26
- package/lib/local-geoip-evidence.mjs +19 -3
- package/lib/lookup-cache.mjs +34 -11
- package/lib/lookup-child-profile-contract.mjs +24 -15
- package/lib/lookup-diagnostics.mjs +24 -1
- package/lib/lookup-progress.mjs +30 -13
- package/lib/lookup-response-contract.mjs +1048 -0
- package/lib/lookup-response.mjs +8 -10
- package/lib/lookup-source-progress.mjs +40 -14
- package/lib/lookup.mjs +48 -27
- package/lib/nameserver-preflight-review.mjs +1 -0
- package/lib/observed-network-context.mjs +43 -27
- package/lib/outbound-request-bounds.mjs +4 -1
- package/lib/page-fingerprints.mjs +69 -133
- package/lib/page-role-profile.mjs +12 -8
- package/lib/perceptual-hash.mjs +43 -14
- package/lib/rdap-bootstrap.mjs +72 -22
- package/lib/rdap-capabilities.mjs +1 -1
- package/lib/rdap-client.mjs +15 -7
- package/lib/rdap-normalization.mjs +33 -18
- package/lib/rdap-search-workbench.mjs +1 -1
- package/lib/rdap-transport.mjs +47 -20
- package/lib/rdap-types.mjs +2 -1
- package/lib/rdap.mjs +18 -3
- package/lib/registrable-domain.mjs +21 -1
- package/lib/registrar-standing-contract.mjs +1 -0
- package/lib/registry-capabilities.mjs +5 -1
- package/lib/registry-capability-catalogue.mjs +2 -1
- package/lib/registry-dates.mjs +2 -190
- package/lib/registry-insights.mjs +85 -34
- package/lib/response-policy.mjs +86 -48
- package/lib/risk-calibration-summary.mjs +18 -6
- package/lib/rpki-evidence.mjs +8 -5
- package/lib/safe-fetch.mjs +54 -47
- package/lib/security-txt.mjs +42 -7
- package/lib/service-binding-dns.mjs +8 -0
- package/lib/smtp-transport-review.mjs +27 -15
- package/lib/sslbl-certificates.generated.mjs +136 -135
- package/lib/static-html-analysis.mjs +178 -151
- package/lib/structured-data-identity.mjs +1 -0
- package/lib/technology-markup.mjs +100 -0
- package/lib/threat-intelligence-manifests.mjs +11 -139
- package/lib/threat-intelligence-runtime.mjs +24 -52
- package/lib/threat-intelligence-targets.mjs +6 -34
- package/lib/threat-intelligence-types.mjs +39 -0
- package/lib/typosquat-generator.mjs +19 -15
- package/lib/urlhaus-intelligence.mjs +8 -3
- package/lib/urlscan-intelligence.mjs +1 -1
- package/lib/website-security-posture.mjs +30 -6
- package/lib/website-technology.mjs +153 -45
- package/lib/whois-authority.mjs +14 -2
- package/lib/whois-chain.mjs +9 -2
- package/lib/whois-common-formats.mjs +5 -5
- package/lib/whois-contracts.mjs +2 -1
- package/lib/whois-dialects.mjs +2 -2
- package/lib/whois-parser-support.mjs +8 -1
- package/lib/whois-transport.mjs +23 -7
- package/lib/zone-intent-review.mjs +16 -6
- package/package.json +2 -1
- package/packages/cases/case-attachment-model.mjs +83 -0
- package/packages/cases/case-evidence-model.mjs +156 -62
- package/packages/cases/case-export-input.mjs +53 -0
- package/packages/cases/case-migration-model.mjs +127 -44
- package/packages/cases/case-model.mjs +1 -0
- package/packages/cases/case-recheck-model.mjs +91 -0
- package/packages/cases/case-record-contracts.mjs +5 -20
- package/packages/cases/case-record-core.mjs +12 -22
- package/packages/cases/case-record-decisions.mjs +72 -0
- package/packages/cases/case-record-model.mjs +1 -0
- package/packages/cases/case-record-operations.mjs +95 -31
- package/packages/cases/case-record-projection.mjs +221 -0
- package/packages/cases/case-report.mjs +70 -54
- package/packages/cases/case-response-actions.mjs +654 -0
- package/packages/cases/case-response-model.mjs +64 -1115
- package/packages/cases/case-response-outcomes.mjs +317 -0
- package/packages/cases/case-response-packet-render.mjs +153 -0
- package/packages/cases/case-response-packet-types.mjs +1 -0
- package/packages/cases/case-response-packet-vocabulary.mjs +48 -0
- package/packages/cases/case-response-packet.mjs +74 -572
- package/packages/cases/case-response-records.mjs +94 -0
- package/packages/cases/case-response-review-inputs.mjs +371 -0
- package/packages/cases/case-response-values.mjs +85 -0
- package/packages/cases/case-review-package.mjs +45 -0
- package/packages/cases/case-selection.mjs +46 -0
- package/packages/cases/case-storage-model.mjs +31 -2
- package/packages/cases/response-route-freshness.mjs +16 -0
- package/packages/comparison/capture-context.mjs +61 -0
- package/packages/comparison/comparison-ledger-bulk.mjs +13 -11
- package/packages/comparison/page-similarity.mjs +5 -2
- package/packages/comparison/relationship-evidence.mjs +85 -8
- package/packages/comparison/relationship-provenance.mjs +93 -0
- package/packages/contracts/analyst-interchange.mjs +216 -0
- package/packages/contracts/analyst-review-state-contract.mjs +11 -0
- package/packages/contracts/analyst-review-state.mjs +5 -4
- package/packages/contracts/case-portability.mjs +366 -83
- package/packages/contracts/case-views-contract.mjs +12 -0
- package/packages/contracts/case-views.mjs +26 -0
- package/packages/contracts/cli-command-semantics.mjs +94 -0
- package/packages/contracts/cli-lookup.mjs +0 -1
- package/packages/contracts/domain-control-flight-recorder.mjs +80 -42
- package/packages/contracts/domain-control-manifest.mjs +127 -73
- package/packages/contracts/domain-control-monitor.mjs +48 -45
- package/packages/contracts/domain-control-review.mjs +179 -121
- package/packages/contracts/domain-name.mjs +21 -0
- package/packages/contracts/external-observation-interchange.mjs +2 -1
- package/packages/contracts/extracted-domain-lifecycle.mjs +11 -32
- package/packages/contracts/http-url.mjs +2 -0
- package/packages/contracts/investigation-package-limits.mjs +24 -0
- package/packages/contracts/investigation-portability.mjs +56 -27
- package/packages/contracts/investigation-run.mjs +16 -0
- package/packages/contracts/ip-address.mjs +34 -0
- package/packages/contracts/lookup-evidence.mjs +35 -0
- package/packages/contracts/offline-comparison.mjs +1 -2
- package/packages/contracts/page-fingerprints.mjs +15 -0
- package/packages/contracts/risk-calibration.mjs +15 -11
- package/packages/contracts/schema-compatibility.mjs +1 -1
- package/packages/contracts/schema-lifecycle.mjs +83 -153
- package/packages/contracts/selected-file-limits.mjs +6 -0
- package/packages/contracts/vulnerability-identifiers.mjs +5 -0
- package/packages/contracts/web-capture.mjs +10 -0
- package/packages/contracts/workspace-portability.mjs +183 -211
- package/packages/evidence/artifact-integrity.mjs +8 -2
- package/packages/evidence/artifact-structure.mjs +105 -0
- package/packages/evidence/decision-fact.mjs +4 -1
- package/packages/evidence/domain-control-runtime.mjs +201 -33
- package/packages/evidence/domain-posture-context.mjs +79 -0
- package/packages/evidence/image-regions.mjs +56 -0
- package/packages/evidence/latest-observations.mjs +28 -0
- package/packages/evidence/lookup-target.mjs +104 -0
- package/packages/evidence/observation.mjs +16 -1
- package/packages/evidence/passphrase-encryption.mjs +44 -0
- package/packages/evidence/record-identity.mjs +72 -0
- package/packages/evidence/registry-dates.mjs +190 -0
- package/packages/evidence/retained-file.mjs +69 -0
- package/packages/evidence/review-age.mjs +14 -0
- package/packages/interchange/bagit.mjs +342 -0
- package/packages/interchange/bounded-zip-extraction.mjs +278 -0
- package/packages/interchange/crc32.mjs +17 -0
- package/packages/interchange/external-findings-import.mjs +92 -51
- package/packages/interchange/web-capture-import.mjs +382 -0
- package/packages/investigation/bulk-mail-exposure.mjs +2 -1
- package/packages/investigation/investigation-bagit.mjs +14 -0
- package/packages/investigation/investigation-capsule.mjs +33 -5
- package/packages/investigation/investigation-manifest.mjs +200 -0
- package/packages/investigation/investigation-package-crypto.mjs +98 -0
- package/packages/investigation/investigation-package.mjs +200 -0
- package/packages/investigation/lookup-asset-graph-inputs.mjs +38 -0
- package/packages/investigation/lookup-asset-graph.mjs +193 -165
- package/packages/investigation/lookup-claim-readiness.mjs +18 -0
- package/packages/investigation/lookup-investigation-brief.mjs +3 -3
- package/packages/investigation/lookup-task-guidance.mjs +58 -0
- package/packages/monitoring/analyst-review-state.mjs +38 -90
- package/packages/workspace/brand-profile-model.mjs +276 -22
- package/packages/workspace/bulk-columns.mjs +17 -0
- package/packages/workspace/bulk-review-model.mjs +23 -11
- package/packages/workspace/bulk-session-model.mjs +100 -24
- package/packages/workspace/bulk-sort.mjs +1 -0
- package/packages/workspace/case-views.mjs +102 -0
- package/packages/workspace/detection-rule-model.mjs +70 -22
- package/packages/workspace/hostile-input.mjs +29 -8
- package/packages/workspace/investigation-template-model.mjs +19 -4
- package/packages/workspace/page-baseline.mjs +18 -15
- package/packages/workspace/relationship-observation-model.mjs +41 -23
- package/packages/workspace/watchlist-history.mjs +2 -2
- package/packages/workspace/watchlist-store.mjs +8 -2
- package/packages/workspace/website-snapshot-model.mjs +164 -26
- package/packages/workspace/workspace-archive-crypto.mjs +41 -61
- package/packages/workspace/workspace-archive.mjs +87 -21
- package/third-party-notices.txt +29 -2
- package/cli/evidence-command-arguments.mjs +0 -156
- package/packages/investigation/bulk-review-export.mjs +0 -63
package/lib/favicon.mjs
CHANGED
|
@@ -1,50 +1,30 @@
|
|
|
1
|
-
//
|
|
2
|
-
//
|
|
3
|
-
//
|
|
4
|
-
//
|
|
5
|
-
//
|
|
6
|
-
// Two hashes are produced from the same bytes:
|
|
7
|
-
// - hash: exact SHA-256 of the raw bytes. Zero false positives, but only
|
|
8
|
-
// catches a byte-for-byte copy.
|
|
9
|
-
// - phash: perceptual (fuzzy) dHash (lib/perceptual-hash.mts). Catches a
|
|
10
|
-
// resized/recompressed/re-saved copy that's visually identical but
|
|
11
|
-
// no longer byte-identical - the common case when the favicon
|
|
12
|
-
// passed through a different tool than the original. Null when the
|
|
13
|
-
// image format can't be decoded (GIF/JPEG/SVG), so it strictly
|
|
14
|
-
// adds coverage without weakening the exact tier.
|
|
1
|
+
// Bounded favicon acquisition. Recognised image bytes produce an exact SHA-256;
|
|
2
|
+
// supported decoded pixels can also produce a heuristic dHash. Neither match
|
|
3
|
+
// establishes ownership, shared infrastructure or maliciousness. HTML error
|
|
4
|
+
// bodies are not image evidence and must not end candidate fallback.
|
|
15
5
|
import * as crypto from 'node:crypto';
|
|
16
6
|
import { safeFetch, readBytesCapped } from "./safe-fetch.mjs";
|
|
17
7
|
import { whoisleuthRequestHeaders } from "./outbound-identity.mjs";
|
|
18
8
|
import { faviconPerceptualHash } from "./perceptual-hash.mjs";
|
|
9
|
+
import { analyzeStaticHtml } from "./static-html-analysis.mjs";
|
|
10
|
+
import { isHtmlElement, parseBoundedHtml } from "./bounded-html-document.mjs";
|
|
19
11
|
import { FAVICON_FETCH_TIMEOUT_MS, MAX_FAVICON_BYTES, MAX_FAVICON_CANDIDATES, } from "./outbound-request-bounds.mjs";
|
|
20
12
|
// Extracts favicon URLs declared in the page's own <link rel="...icon..."> tags
|
|
21
13
|
// (resolved to absolute URLs against the page origin), in preference order:
|
|
22
|
-
// standard "icon"/"shortcut icon" first, then "apple-touch-icon".
|
|
23
|
-
// sites (e.g. npm) serve no /favicon.ico at all and only declare a PNG on a
|
|
24
|
-
// CDN this way, so checking only /favicon.ico misses them entirely. data:
|
|
14
|
+
// standard "icon"/"shortcut icon" first, then "apple-touch-icon". data:
|
|
25
15
|
// URIs are passed through verbatim - decodeFaviconCandidate handles them
|
|
26
16
|
// without a network fetch.
|
|
27
|
-
function extractIconUrls(html, baseUrl) {
|
|
28
|
-
const
|
|
29
|
-
for (const tag of html.match(/<link\b[^>]*>/gi) || []) {
|
|
30
|
-
const rel = (tag.match(/\brel\s*=\s*["']([^"']*)["']/i) || [])[1];
|
|
31
|
-
if (!rel || !/icon/i.test(rel))
|
|
32
|
-
continue;
|
|
33
|
-
const href = (tag.match(/\bhref\s*=\s*["']([^"']+)["']/i) || [])[1];
|
|
34
|
-
if (!href)
|
|
35
|
-
continue;
|
|
36
|
-
links.push({ href: href.trim(), priority: /apple-touch/i.test(rel) ? 1 : 0 });
|
|
37
|
-
}
|
|
38
|
-
links.sort((a, b) => a.priority - b.priority);
|
|
17
|
+
function extractIconUrls(html, baseUrl, suppliedAnalysis) {
|
|
18
|
+
const analysis = suppliedAnalysis ?? analyzeStaticHtml(html, { baseUrl });
|
|
39
19
|
const urls = [];
|
|
40
|
-
for (const { href } of
|
|
20
|
+
for (const { href } of analysis.iconLinks) {
|
|
41
21
|
if (/^data:/i.test(href)) {
|
|
42
22
|
urls.push(href);
|
|
43
23
|
continue;
|
|
44
24
|
}
|
|
45
25
|
try {
|
|
46
|
-
const resolved = new URL(href, baseUrl);
|
|
47
|
-
if (
|
|
26
|
+
const resolved = new URL(href, analysis.effectiveBaseUrl ?? baseUrl);
|
|
27
|
+
if (['http:', 'https:'].includes(resolved.protocol) && !resolved.username && !resolved.password)
|
|
48
28
|
urls.push(resolved.toString());
|
|
49
29
|
}
|
|
50
30
|
catch {
|
|
@@ -56,21 +36,114 @@ function extractIconUrls(html, baseUrl) {
|
|
|
56
36
|
// Decodes an inline `data:` favicon (base64 or percent-encoded) into a byte
|
|
57
37
|
// buffer, bounded to MAX_FAVICON_BYTES. Returns null on anything malformed.
|
|
58
38
|
function decodeDataUri(uri) {
|
|
39
|
+
// Percent encoding is at most three input characters per output byte.
|
|
40
|
+
// Refuse oversized encoded input before slicing or decoding it.
|
|
41
|
+
if (uri.length > MAX_FAVICON_BYTES * 3 + 128)
|
|
42
|
+
return null;
|
|
59
43
|
const comma = uri.indexOf(',');
|
|
60
|
-
if (comma === -1)
|
|
44
|
+
if (comma === -1 || comma > 128)
|
|
61
45
|
return null;
|
|
62
46
|
const meta = uri.slice(5, comma);
|
|
63
47
|
const data = uri.slice(comma + 1);
|
|
64
48
|
try {
|
|
65
|
-
const
|
|
49
|
+
const base64 = /;base64$/i.test(meta);
|
|
50
|
+
if (base64 && (data.length > Math.ceil(MAX_FAVICON_BYTES / 3) * 4
|
|
51
|
+
|| !/^[A-Za-z0-9+/]*={0,2}$/u.test(data)))
|
|
52
|
+
return null;
|
|
53
|
+
const bytes = base64
|
|
66
54
|
? Buffer.from(data, 'base64')
|
|
67
|
-
: Buffer.from(decodeURIComponent(data), '
|
|
55
|
+
: Buffer.from(decodeURIComponent(data), 'utf8');
|
|
68
56
|
return bytes.length > 0 && bytes.length <= MAX_FAVICON_BYTES ? bytes : null;
|
|
69
57
|
}
|
|
70
58
|
catch {
|
|
71
59
|
return null;
|
|
72
60
|
}
|
|
73
61
|
}
|
|
62
|
+
// Admission recognises container framing, not every codec feature or rendered
|
|
63
|
+
// meaning. Exact-only formats remain usable; fuzzy decoding has its own pixel
|
|
64
|
+
// and inflate limits. All loops here operate within MAX_FAVICON_BYTES.
|
|
65
|
+
function isFaviconImage(bytes) {
|
|
66
|
+
if (bytes.length < 6 || bytes.length > MAX_FAVICON_BYTES)
|
|
67
|
+
return false;
|
|
68
|
+
if (bytes.subarray(0, 8).equals(Buffer.from([137, 80, 78, 71, 13, 10, 26, 10]))) {
|
|
69
|
+
let dataSeen = false;
|
|
70
|
+
for (let offset = 8; offset + 12 <= bytes.length;) {
|
|
71
|
+
const size = bytes.readUInt32BE(offset);
|
|
72
|
+
const end = offset + 12 + size;
|
|
73
|
+
if (end > bytes.length)
|
|
74
|
+
return false;
|
|
75
|
+
const type = bytes.toString('ascii', offset + 4, offset + 8);
|
|
76
|
+
if (offset === 8 && (type !== 'IHDR' || size !== 13
|
|
77
|
+
|| bytes.readUInt32BE(offset + 8) === 0 || bytes.readUInt32BE(offset + 12) === 0))
|
|
78
|
+
return false;
|
|
79
|
+
if (type === 'IDAT' && size > 0)
|
|
80
|
+
dataSeen = true;
|
|
81
|
+
if (type === 'IEND')
|
|
82
|
+
return size === 0 && dataSeen && end === bytes.length;
|
|
83
|
+
offset = end;
|
|
84
|
+
}
|
|
85
|
+
return false;
|
|
86
|
+
}
|
|
87
|
+
if (bytes.readUInt32LE(0) === 0x00010000) {
|
|
88
|
+
const count = bytes.readUInt16LE(4);
|
|
89
|
+
const directoryEnd = 6 + count * 16;
|
|
90
|
+
if (!count || directoryEnd > bytes.length)
|
|
91
|
+
return false;
|
|
92
|
+
for (let index = 0; index < count; index += 1) {
|
|
93
|
+
const entry = 6 + index * 16;
|
|
94
|
+
const size = bytes.readUInt32LE(entry + 8);
|
|
95
|
+
const offset = bytes.readUInt32LE(entry + 12);
|
|
96
|
+
if (size < 12 || offset < directoryEnd || offset + size > bytes.length)
|
|
97
|
+
continue;
|
|
98
|
+
const payload = bytes.subarray(offset, offset + size);
|
|
99
|
+
if (payload.subarray(0, 8).equals(Buffer.from([137, 80, 78, 71, 13, 10, 26, 10]))
|
|
100
|
+
|| [12, 40, 52, 56, 108, 124].includes(payload.readUInt32LE(0)))
|
|
101
|
+
return true;
|
|
102
|
+
}
|
|
103
|
+
return false;
|
|
104
|
+
}
|
|
105
|
+
if (/^GIF8[79]a$/u.test(bytes.toString('ascii', 0, 6))) {
|
|
106
|
+
return bytes.length >= 14 && bytes.readUInt16LE(6) > 0 && bytes.readUInt16LE(8) > 0 && bytes.at(-1) === 0x3b;
|
|
107
|
+
}
|
|
108
|
+
if (bytes.length >= 12 && bytes[0] === 0xff && bytes[1] === 0xd8 && bytes[2] === 0xff) {
|
|
109
|
+
return bytes.at(-2) === 0xff && bytes.at(-1) === 0xd9;
|
|
110
|
+
}
|
|
111
|
+
if (bytes.length >= 20 && bytes.toString('ascii', 0, 4) === 'RIFF'
|
|
112
|
+
&& bytes.toString('ascii', 8, 12) === 'WEBP') {
|
|
113
|
+
return bytes.readUInt32LE(4) + 8 === bytes.length && ['VP8 ', 'VP8L', 'VP8X'].includes(bytes.toString('ascii', 12, 16));
|
|
114
|
+
}
|
|
115
|
+
// Standalone SVG needs an SVG root, not an SVG embedded in an HTML error
|
|
116
|
+
// page. Native tree construction discards neither an HTML wrapper nor sibling
|
|
117
|
+
// content here. No script, entity, resource or stylesheet is executed.
|
|
118
|
+
const source = bytes.toString('utf8');
|
|
119
|
+
if (!source.includes('<svg'))
|
|
120
|
+
return false;
|
|
121
|
+
const parsed = parseBoundedHtml(source);
|
|
122
|
+
if (parsed.inputLimitReached || parsed.constructionLimitReached)
|
|
123
|
+
return false;
|
|
124
|
+
const html = parsed.document.childNodes.find(isHtmlElement);
|
|
125
|
+
if (html?.sourceCodeLocation?.startTag || parsed.document.childNodes.some((node) => node.nodeName === '#documentType' && 'name' in node && node.name !== 'svg'))
|
|
126
|
+
return false;
|
|
127
|
+
const head = html?.childNodes.find((node) => isHtmlElement(node) && node.tagName === 'head');
|
|
128
|
+
if (head && isHtmlElement(head) && (head.sourceCodeLocation?.startTag
|
|
129
|
+
|| head.childNodes.some((node) => node.nodeName !== '#comment'
|
|
130
|
+
&& !(node.nodeName === '#text' && 'value' in node && !node.value.trim()))))
|
|
131
|
+
return false;
|
|
132
|
+
const body = html?.childNodes.find((node) => isHtmlElement(node) && node.tagName === 'body');
|
|
133
|
+
if (!body || !isHtmlElement(body) || body.sourceCodeLocation?.startTag)
|
|
134
|
+
return false;
|
|
135
|
+
const content = body.childNodes.filter((node) => node.nodeName !== '#comment'
|
|
136
|
+
&& !(node.nodeName === '#text' && 'value' in node && !node.value.trim()));
|
|
137
|
+
const root = content[0];
|
|
138
|
+
if (content.length !== 1 || !root || !('tagName' in root) || root.tagName !== 'svg'
|
|
139
|
+
|| root.namespaceURI !== 'http://www.w3.org/2000/svg'
|
|
140
|
+
|| !root.attrs.some((attribute) => attribute.name === 'xmlns' && attribute.value === 'http://www.w3.org/2000/svg'))
|
|
141
|
+
return false;
|
|
142
|
+
const location = root.sourceCodeLocation;
|
|
143
|
+
if (!location?.startTag)
|
|
144
|
+
return false;
|
|
145
|
+
return Boolean(location.endTag || /\/\s*>$/u.test(source.slice(location.startTag.startOffset, location.startTag.endOffset)));
|
|
146
|
+
}
|
|
74
147
|
// Returns the favicon bytes for one candidate URL (a real fetch, or an inline
|
|
75
148
|
// data: decode), or null if it can't be retrieved/used.
|
|
76
149
|
async function fetchFaviconBytes(url, headers, fetcher, timeoutMs) {
|
|
@@ -107,15 +180,15 @@ async function fetchFaviconBytes(url, headers, fetcher, timeoutMs) {
|
|
|
107
180
|
// provided (the deep-check path already has the homepage in hand), is scanned
|
|
108
181
|
// for declared <link rel="icon"> URLs, which are tried before the bare
|
|
109
182
|
// /favicon.ico fallback.
|
|
110
|
-
function buildFaviconCandidates(domain, html = '') {
|
|
183
|
+
function buildFaviconCandidates(domain, html = '', options = {}) {
|
|
111
184
|
const candidates = [];
|
|
112
185
|
const seen = new Set();
|
|
113
186
|
const add = (url) => { if (url && !seen.has(url)) {
|
|
114
187
|
seen.add(url);
|
|
115
188
|
candidates.push(url);
|
|
116
189
|
} };
|
|
117
|
-
if (html)
|
|
118
|
-
for (const url of extractIconUrls(html, `https://${domain}
|
|
190
|
+
if (html || options.htmlAnalysis)
|
|
191
|
+
for (const url of extractIconUrls(html, options.baseUrl ?? `https://${domain}/`, options.htmlAnalysis))
|
|
119
192
|
add(url);
|
|
120
193
|
add(`https://${domain}/favicon.ico`);
|
|
121
194
|
add(`https://${domain}/favicon.svg`);
|
|
@@ -123,16 +196,19 @@ function buildFaviconCandidates(domain, html = '') {
|
|
|
123
196
|
add(`http://${domain}/favicon.svg`);
|
|
124
197
|
return candidates.slice(0, MAX_FAVICON_CANDIDATES);
|
|
125
198
|
}
|
|
126
|
-
async function fetchFaviconHash(domain, { html = '', fetcher = safeFetch, timeoutMs = FAVICON_FETCH_TIMEOUT_MS } = {}) {
|
|
199
|
+
async function fetchFaviconHash(domain, { html = '', baseUrl, htmlAnalysis, fetcher = safeFetch, timeoutMs = FAVICON_FETCH_TIMEOUT_MS } = {}) {
|
|
127
200
|
const headers = whoisleuthRequestHeaders();
|
|
128
|
-
const candidates = buildFaviconCandidates(domain, html
|
|
201
|
+
const candidates = buildFaviconCandidates(domain, html, {
|
|
202
|
+
...(baseUrl !== undefined ? { baseUrl } : {}),
|
|
203
|
+
...(htmlAnalysis ? { htmlAnalysis } : {}),
|
|
204
|
+
});
|
|
129
205
|
const requestTimeoutMs = Number.isInteger(timeoutMs) && timeoutMs >= 10 && timeoutMs <= FAVICON_FETCH_TIMEOUT_MS
|
|
130
206
|
? timeoutMs
|
|
131
207
|
: FAVICON_FETCH_TIMEOUT_MS;
|
|
132
208
|
for (const url of candidates) {
|
|
133
209
|
// eslint-disable-next-line no-await-in-loop
|
|
134
210
|
const bytes = await fetchFaviconBytes(url, headers, fetcher, requestTimeoutMs);
|
|
135
|
-
if (bytes) {
|
|
211
|
+
if (bytes && isFaviconImage(bytes)) {
|
|
136
212
|
return {
|
|
137
213
|
hash: crypto.createHash('sha256').update(bytes).digest('hex'),
|
|
138
214
|
phash: faviconPerceptualHash(bytes),
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
// Generated by tools/cisa-kev-catalog.mts from the pinned CISA KEV feed.
|
|
2
2
|
// United States Government work; do not edit by hand.
|
|
3
3
|
const CISA_KEV_CATALOG = Object.freeze({
|
|
4
|
-
catalogVersion: "2026.
|
|
5
|
-
releasedAt: "2026-
|
|
6
|
-
sourceSha256: "
|
|
4
|
+
catalogVersion: "2026.09.04",
|
|
5
|
+
releasedAt: "2026-09-04T16:47:03.5197Z",
|
|
6
|
+
sourceSha256: "f92f4cef4bba9b8c69c1a34deeb825af3810ffb6a0447042d16df894751da2cf",
|
|
7
7
|
sourceUrl: "https://www.cisa.gov/sites/default/files/feeds/known_exploited_vulnerabilities.json",
|
|
8
8
|
identifiers: Object.freeze([
|
|
9
9
|
"CVE-2002-0367",
|
|
@@ -1656,9 +1656,11 @@ const CISA_KEV_CATALOG = Object.freeze({
|
|
|
1656
1656
|
"CVE-2026-48172",
|
|
1657
1657
|
"CVE-2026-48282",
|
|
1658
1658
|
"CVE-2026-48558",
|
|
1659
|
+
"CVE-2026-48710",
|
|
1659
1660
|
"CVE-2026-48907",
|
|
1660
1661
|
"CVE-2026-48908",
|
|
1661
1662
|
"CVE-2026-48939",
|
|
1663
|
+
"CVE-2026-49869",
|
|
1662
1664
|
"CVE-2026-50522",
|
|
1663
1665
|
"CVE-2026-50751",
|
|
1664
1666
|
"CVE-2026-5281",
|
|
@@ -1672,6 +1674,7 @@ const CISA_KEV_CATALOG = Object.freeze({
|
|
|
1672
1674
|
"CVE-2026-56291",
|
|
1673
1675
|
"CVE-2026-58644",
|
|
1674
1676
|
"CVE-2026-59310",
|
|
1677
|
+
"CVE-2026-59822",
|
|
1675
1678
|
"CVE-2026-60004",
|
|
1676
1679
|
"CVE-2026-60137",
|
|
1677
1680
|
"CVE-2026-63030",
|
|
@@ -1689,10 +1692,15 @@ const CISA_KEV_CATALOG = Object.freeze({
|
|
|
1689
1692
|
"CVE-2026-8037",
|
|
1690
1693
|
"CVE-2026-81578",
|
|
1691
1694
|
"CVE-2026-82078",
|
|
1695
|
+
"CVE-2026-82329",
|
|
1696
|
+
"CVE-2026-83548",
|
|
1697
|
+
"CVE-2026-83549",
|
|
1692
1698
|
"CVE-2026-8398",
|
|
1693
1699
|
"CVE-2026-8452",
|
|
1700
|
+
"CVE-2026-85046",
|
|
1694
1701
|
"CVE-2026-9082",
|
|
1695
|
-
"CVE-2026-9198"
|
|
1702
|
+
"CVE-2026-9198",
|
|
1703
|
+
"CVE-2026-9586"
|
|
1696
1704
|
]),
|
|
1697
1705
|
});
|
|
1698
1706
|
export { CISA_KEV_CATALOG };
|
|
@@ -5,22 +5,22 @@ const REGISTRAR_STANDING_CATALOGUE = Object.freeze({
|
|
|
5
5
|
schema: REGISTRAR_STANDING_CATALOGUE_SCHEMA,
|
|
6
6
|
version: REGISTRAR_STANDING_CATALOGUE_VERSION,
|
|
7
7
|
...{
|
|
8
|
-
"generatedAt": "2026-09-
|
|
8
|
+
"generatedAt": "2026-09-07T07:58:04.908Z",
|
|
9
9
|
"iana": {
|
|
10
10
|
"sourceUrl": "https://www.iana.org/assignments/registrar-ids/registrar-ids-1.csv",
|
|
11
|
-
"observedAt": "2026-09-
|
|
12
|
-
"normalizedSha256": "
|
|
13
|
-
"rows":
|
|
11
|
+
"observedAt": "2026-09-07T07:58:04.908Z",
|
|
12
|
+
"normalizedSha256": "d7f26983b9e2e464dbdabc47ef0c788550fe1d6f30d354443cd448012d61d65a",
|
|
13
|
+
"rows": 4503,
|
|
14
14
|
"counts": {
|
|
15
|
-
"Accredited":
|
|
15
|
+
"Accredited": 3322,
|
|
16
16
|
"Reserved": 15,
|
|
17
17
|
"Terminated": 1166
|
|
18
18
|
},
|
|
19
|
-
"encodedStatuses": "1:R,2:A,3:R,4:T,6:T,8:R,9:A,10:T,11:T,12:T,13:A,14:A,15:A,16:T,18:T,19:T,22:T,25:T,26:T,27:T,28:T,30:A,31:T,44:T,45:T,47:T,48:A,49:A,50:T,51:T,52:A,53:T,54:T,56:T,57:A,58:T,59:T,60:T,61:T,62:T,63:T,64:A,65:A,66:A,67:T,68:A,69:A,70:T,71:T,72:T,73:A,74:A,75:T,76:A,78:A,79:A,80:T,81:A,82:A,83:A,84:A,85:A,86:A,87:A,88:A,89:T,91:A,93:A,94:T,97:T,98:T,99:A,100:A,101:T,103:T,105:T,106:A,109:T,110:T,111:A,112:A,113:A,119:R,120:A,121:T,122:T,123:A,124:T,125:T,127:T,128:A,129:T,130:A,131:A,132:T,133:T,134:A,139:T,140:A,141:A,142:T,143:A,144:A,145:T,146:A,148:T,151:A,152:T,166:T,167:T,168:A,186:A,206:T,226:A,228:A,230:T,232:T,239:T,240:T,241:T,242:T,244:A,245:T,246:T,247:T,249:A,250:T,255:T,256:T,257:T,258:T,268:T,269:A,270:A,274:T,275:T,276:T,277:A,278:T,279:T,281:T,282:T,291:A,292:A,293:T,295:T,298:T,299:A,300:T,301:T,303:A,304:T,317:T,320:A,321:T,347:T,353:A,360:A,363:T,364:T,365:R,376:R,377:T,378:T,379:A,380:A,381:A,400:T,401:A,402:T,403:T,404:T,407:T,408:T,409:T,410:T,411:A,412:A,413:A,414:T,415:T,416:T,417:T,418:A,419:T,420:A,421:T,422:T,423:T,424:T,425:T,426:T,427:T,428:T,429:T,430:A,431:A,432:T,433:A,434:T,435:T,436:T,437:A,438:T,439:T,440:A,441:T,442:T,443:T,444:A,445:T,446:T,447:A,448:A,449:T,450:A,451:T,452:A,453:T,455:A,456:A,457:T,458:T,459:T,460:A,461:T,462:T,463:A,464:T,465:A,466:A,467:T,468:A,469:A,470:A,471:A,472:A,473:T,474:A,475:T,600:A,601:A,602:T,603:A,604:A,605:A,606:A,607:A,608:T,609:A,610:T,611:T,612:A,614:T,615:T,616:T,617:A,618:T,619:A,620:A,622:T,623:T,624:T,625:A,626:T,627:T,628:T,629:T,630:T,631:T,632:T,633:T,634:A,635:A,636:A,637:A,638:A,639:T,640:T,641:T,642:A,643:T,644:T,645:A,646:A,647:A,648:T,649:T,650:A,651:T,652:A,653:A,654:A,655:A,656:A,658:A,659:A,660:T,661:A,662:A,663:A,664:A,665:T,666:A,667:A,668:T,669:T,670:A,671:A,672:A,673:T,674:T,675:A,676:T,677:T,678:T,679:T,680:T,681:T,682:A,683:T,684:T,685:T,686:T,687:T,688:T,689:T,690:T,691:T,693:T,694:T,695:T,696:A,697:A,698:A,699:A,700:A,701:A,702:A,703:A,704:A,705:A,706:A,707:A,708:A,709:A,710:T,711:T,712:T,713:T,714:T,715:T,716:T,717:T,718:T,719:A,720:T,721:T,722:T,723:T,724:T,725:T,726:T,727:T,728:T,729:T,730:T,731:T,733:T,734:A,735:A,736:T,737:T,738:T,739:T,740:T,741:T,742:T,743:A,744:T,745:T,746:T,747:T,748:A,749:T,750:A,751:A,752:A,753:A,754:A,755:A,756:T,757:T,758:T,759:T,760:T,761:T,762:A,763:A,764:T,765:T,766:T,767:T,768:T,769:T,770:T,771:A,772:T,773:T,774:T,775:T,776:A,777:A,778:T,779:T,780:A,781:A,782:A,783:T,784:T,785:A,786:T,787:T,788:T,789:T,790:T,791:T,792:A,793:T,794:T,795:T,796:T,797:T,798:T,799:T,800:T,801:T,802:T,803:T,804:T,805:T,807:T,808:T,809:A,810:T,811:T,812:T,813:T,814:T,815:T,816:T,817:A,818:A,819:A,820:A,821:T,822:T,823:T,825:T,826:A,827:T,828:A,829:A,830:T,831:A,832:T,833:T,834:T,835:A,836:A,837:T,838:T,839:A,840:A,841:A,842:T,843:T,844:T,845:A,846:A,847:A,848:A,849:T,850:A,851:A,852:T,853:A,854:A,855:A,856:A,857:T,858:A,859:A,860:T,861:A,862:A,863:A,864:A,865:T,866:A,867:A,868:A,869:A,870:A,871:A,872:A,873:A,874:A,875:A,876:A,877:A,878:A,879:A,880:A,881:A,882:A,883:A,884:A,885:A,886:A,887:A,888:T,889:A,890:T,891:T,892:T,893:T,894:A,895:A,896:A,897:T,898:A,899:A,900:T,901:T,902:A,903:A,904:T,905:T,906:T,907:T,908:T,909:T,910:A,911:T,912:A,913:A,914:A,915:A,916:T,917:A,918:A,919:A,920:A,921:A,922:A,923:A,924:T,925:T,926:T,927:T,928:T,929:T,930:T,931:A,932:A,933:A,934:A,935:A,936:T,937:A,938:A,939:A,940:A,941:T,942:T,943:T,944:A,945:A,946:A,947:A,948:T,949:T,950:T,951:T,952:T,953:T,954:T,955:A,956:T,957:A,958:T,959:A,960:T,961:A,962:T,963:T,965:A,966:T,967:A,968:A,969:T,970:A,971:A,972:T,973:T,974:T,975:T,976:A,977:T,978:T,979:T,980:A,981:A,982:T,983:T,984:T,985:A,986:A,987:A,988:T,989:T,990:T,991:T,992:T,993:T,994:T,995:T,996:A,997:A,998:T,999:T,1000:T,1001:A,1002:T,1003:A,1004:T,1005:A,1006:T,1007:T,1008:A,1009:A,1010:A,1011:A,1012:A,1013:A,1014:A,1015:T,1016:T,1017:T,1018:T,1019:A,1020:T,1021:T,1022:A,1023:A,1024:A,1025:A,1026:A,1027:A,1028:A,1029:A,1030:T,1031:A,1032:T,1033:A,1034:A,1035:A,1036:A,1037:A,1038:A,1039:T,1040:A,1041:T,1042:A,1043:A,1044:A,1045:A,1046:A,1047:A,1048:A,1049:A,1050:A,1051:A,1052:A,1053:A,1054:A,1055:A,1056:A,1057:A,1058:A,1059:A,1060:A,1061:A,1062:A,1063:A,1064:A,1065:A,1066:A,1067:A,1068:A,1069:A,1070:A,1071:A,1072:A,1073:T,1074:T,1075:A,1076:A,1077:A,1078:A,1079:T,1080:T,1081:T,1082:A,1083:A,1084:A,1085:A,1086:A,1087:T,1088:T,1089:T,1090:T,1091:A,1092:T,1093:A,1094:T,1095:T,1096:A,1097:T,1098:A,1099:A,1100:A,1101:A,1102:A,1103:T,1104:A,1105:A,1106:A,1107:A,1108:A,1109:A,1110:A,1111:A,1112:A,1113:A,1114:A,1115:A,1116:T,1117:A,1118:A,1119:A,1120:A,1121:A,1122:A,1123:A,1124:A,1125:A,1126:A,1127:A,1128:A,1129:A,1130:A,1131:T,1132:A,1133:T,1134:T,1135:T,1136:T,1137:T,1138:T,1139:T,1140:T,1141:T,1142:T,1143:A,1144:A,1145:A,1146:T,1147:A,1148:A,1149:A,1150:A,1151:A,1152:A,1153:A,1154:A,1155:T,1156:T,1157:A,1158:A,1159:A,1160:A,1161:A,1162:A,1163:A,1164:A,1165:A,1166:A,1167:A,1168:A,1169:A,1170:A,1171:A,1172:A,1173:A,1174:T,1175:A,1176:A,1177:A,1178:A,1179:A,1180:A,1181:A,1182:A,1183:A,1184:A,1185:A,1186:A,1187:A,1188:A,1189:A,1190:A,1191:A,1192:A,1193:A,1194:A,1195:A,1196:A,1197:A,1198:A,1199:A,1200:A,1201:A,1202:A,1203:A,1204:A,1205:A,1206:A,1207:A,1208:A,1209:A,1210:A,1211:A,1212:A,1213:A,1214:A,1215:A,1216:A,1217:A,1218:A,1219:A,1220:A,1221:A,1222:A,1223:A,1224:A,1225:A,1226:A,1227:A,1228:A,1229:A,1230:A,1231:A,1232:A,1233:A,1234:A,1235:A,1236:T,1237:T,1238:T,1239:A,1240:T,1241:A,1242:T,1243:T,1244:T,1245:T,1246:T,1247:T,1248:T,1249:A,1250:A,1251:A,1252:T,1253:A,1254:T,1255:T,1256:T,1257:A,1258:T,1259:T,1260:T,1261:T,1262:A,1263:A,1264:A,1265:A,1266:A,1267:A,1268:A,1269:A,1270:A,1271:A,1272:A,1273:A,1274:A,1275:A,1276:A,1277:A,1278:A,1279:A,1280:A,1281:A,1282:A,1283:A,1284:A,1285:A,1286:A,1287:A,1288:A,1289:A,1290:A,1291:A,1292:A,1293:A,1294:A,1295:A,1296:A,1297:A,1298:A,1299:A,1300:A,1301:A,1302:A,1303:A,1304:A,1305:A,1306:A,1307:A,1308:A,1309:A,1310:A,1311:A,1312:A,1313:A,1314:A,1315:T,1316:T,1317:T,1318:A,1319:T,1320:T,1321:T,1322:T,1323:T,1324:T,1325:T,1326:A,1327:A,1328:A,1329:T,1330:A,1331:A,1332:A,1333:A,1334:T,1335:T,1336:A,1337:A,1338:T,1339:T,1340:T,1341:A,1342:A,1343:A,1344:A,1345:A,1346:A,1347:A,1348:A,1349:A,1350:A,1351:A,1352:A,1353:A,1354:A,1355:A,1356:A,1357:A,1358:A,1359:A,1360:A,1361:T,1362:A,1363:T,1364:A,1365:T,1366:A,1367:A,1368:T,1369:T,1370:T,1371:T,1372:A,1373:A,1374:T,1375:A,1376:A,1377:T,1378:A,1379:T,1380:T,1381:A,1382:T,1383:A,1384:T,1385:T,1386:T,1387:A,1388:A,1389:T,1390:A,1391:A,1392:A,1393:T,1394:T,1395:T,1396:T,1397:T,1398:T,1399:T,1401:T,1402:T,1403:A,1404:T,1405:T,1406:T,1407:A,1408:A,1409:A,1410:T,1411:A,1412:T,1413:T,1414:T,1416:T,1417:A,1418:A,1419:T,1420:A,1421:T,1422:T,1423:T,1424:A,1426:A,1427:T,1428:T,1429:T,1430:T,1431:T,1432:A,1433:T,1434:A,1435:A,1436:A,1437:T,1438:T,1439:T,1440:T,1441:A,1442:T,1443:A,1444:A,1445:T,1446:T,1447:T,1448:A,1449:A,1450:T,1451:T,1452:A,1453:T,1454:A,1455:T,1456:A,1457:T,1458:T,1459:T,1460:A,1461:T,1462:A,1463:A,1464:A,1465:A,1466:A,1467:A,1468:T,1469:A,1470:A,1471:T,1472:A,1473:T,1474:T,1475:A,1476:A,1477:T,1478:A,1479:A,1480:A,1481:A,1482:T,1483:A,1484:T,1485:A,1487:T,1488:T,1489:A,1490:T,1491:A,1492:A,1493:T,1494:A,1495:A,1496:T,1497:T,1498:T,1499:A,1500:A,1501:A,1502:A,1503:A,1504:T,1505:A,1506:A,1507:T,1508:T,1509:A,1510:T,1511:T,1512:T,1513:T,1514:T,1515:A,1516:T,1517:T,1518:A,1519:A,1520:T,1521:T,1522:T,1523:T,1524:T,1525:A,1526:A,1527:A,1528:T,1529:A,1530:T,1531:A,1532:T,1533:A,1534:A,1535:A,1536:A,1537:A,1538:A,1539:A,1540:A,1541:A,1542:A,1543:T,1544:T,1545:T,1546:T,1547:A,1548:T,1549:T,1550:T,1551:T,1552:T,1553:A,1554:T,1555:A,1556:A,1557:A,1558:T,1559:A,1560:A,1561:T,1562:T,1563:A,1564:A,1565:T,1566:A,1567:A,1568:A,1569:A,1570:A,1571:A,1572:A,1573:A,1574:A,1575:A,1576:A,1577:A,1578:A,1579:A,1580:A,1581:T,1582:A,1583:A,1584:T,1586:A,1587:A,1588:A,1589:T,1590:T,1591:A,1593:A,1594:A,1595:A,1596:A,1597:A,1598:T,1599:A,1600:A,1601:A,1603:T,1604:T,1605:A,1606:A,1607:A,1608:A,1609:A,1610:A,1611:A,1612:A,1613:A,1614:A,1615:A,1616:A,1617:A,1618:A,1619:A,1620:T,1621:A,1622:T,1623:T,1624:T,1625:A,1626:T,1627:T,1628:T,1629:T,1630:A,1631:T,1632:A,1633:A,1634:T,1635:T,1636:A,1637:A,1638:A,1639:A,1640:A,1641:T,1642:A,1643:A,1644:A,1645:A,1646:T,1647:A,1649:A,1651:A,1652:A,1653:A,1654:A,1655:A,1656:A,1657:T,1658:T,1659:A,1660:A,1661:A,1662:T,1663:A,1664:A,1665:A,1666:T,1667:T,1668:A,1669:A,1670:A,1671:A,1672:A,1673:A,1674:T,1675:A,1676:T,1677:A,1678:A,1679:A,1680:A,1681:A,1682:A,1683:A,1684:A,1685:A,1686:A,1687:A,1688:A,1689:A,1690:A,1691:A,1692:A,1693:A,1694:A,1695:A,1696:A,1697:A,1698:T,1699:T,1700:A,1701:A,1702:T,1703:T,1704:T,1705:A,1708:A,1710:A,1712:A,1714:T,1715:A,1716:A,1717:T,1718:A,1719:A,1720:A,1721:A,1722:A,1723:A,1724:A,1725:A,1726:A,1727:A,1728:A,1729:A,1730:A,1731:A,1732:T,1733:A,1734:A,1735:T,1736:T,1737:A,1738:A,1739:A,1740:T,1741:A,1742:T,1743:T,1744:A,1745:A,1746:T,1747:T,1748:T,1749:A,1750:A,1751:A,1752:A,1753:T,1754:T,1755:A,1756:A,1757:A,1758:A,1759:A,1760:A,1761:A,1762:A,1763:A,1764:A,1765:A,1766:A,1767:A,1768:A,1769:A,1770:A,1771:A,1772:A,1773:A,1774:A,1775:A,1776:A,1777:A,1778:A,1779:A,1780:A,1781:A,1782:A,1783:A,1784:A,1785:A,1786:A,1787:A,1788:A,1789:A,1790:A,1791:A,1792:A,1793:A,1794:A,1795:A,1796:A,1797:A,1798:A,1799:A,1800:A,1801:A,1802:A,1803:A,1804:A,1805:A,1806:A,1807:A,1808:A,1809:A,1810:A,1811:A,1812:A,1813:A,1814:A,1815:A,1816:A,1817:A,1818:A,1819:A,1820:A,1821:A,1822:A,1823:A,1824:A,1825:A,1826:A,1827:A,1828:A,1829:A,1830:A,1831:A,1832:A,1833:A,1834:A,1835:A,1836:A,1837:A,1838:A,1839:A,1840:A,1841:A,1842:A,1843:A,1844:A,1845:A,1846:A,1847:A,1848:A,1849:A,1850:A,1851:A,1852:A,1853:A,1854:A,1855:A,1856:A,1857:T,1858:T,1859:T,1860:T,1861:A,1862:T,1863:A,1864:A,1865:A,1866:A,1867:A,1868:A,1870:A,1871:A,1872:A,1873:A,1874:T,1875:T,1876:T,1877:T,1878:T,1879:T,1880:T,1881:T,1882:T,1883:T,1884:T,1885:T,1886:T,1887:T,1888:T,1889:T,1890:T,1891:T,1892:T,1893:T,1894:A,1895:A,1896:A,1897:A,1898:A,1899:A,1900:A,1901:A,1902:A,1903:A,1904:A,1905:A,1907:A,1908:T,1909:A,1910:A,1911:T,1912:A,1913:A,1914:A,1915:A,1916:A,1917:A,1919:A,1920:A,1921:A,1922:A,1923:A,1924:A,1925:A,1926:A,1927:A,1928:A,1929:A,1930:A,1931:A,1932:A,1933:A,1934:A,1935:A,1936:A,1937:A,1938:A,1939:A,1940:A,1941:A,1942:A,1943:A,1944:A,1945:A,1946:A,1947:A,1948:A,1949:A,1950:A,1951:A,1952:A,1953:A,1954:A,1955:A,1956:A,1957:A,1958:A,1959:A,1960:A,1961:A,1962:A,1963:A,1964:A,1965:A,1966:A,1967:A,1968:A,1969:A,1970:A,1971:A,1972:A,1973:A,1974:A,1975:A,1976:A,1977:A,1978:A,1979:A,1980:A,1981:A,1982:A,1983:A,1984:A,1985:A,1986:A,1987:A,1988:A,1989:A,1990:A,1991:A,1992:A,1993:A,1994:A,1995:A,1996:A,1997:A,1998:A,1999:A,2000:A,2001:A,2002:A,2003:A,2004:A,2005:A,2006:A,2007:A,2008:A,2009:A,2010:A,2011:A,2012:A,2013:A,2014:A,2015:A,2016:A,2017:A,2018:A,2019:A,2020:A,2021:A,2022:A,2023:A,2024:A,2025:A,2026:A,2027:A,2028:A,2029:A,2030:A,2031:A,2032:A,2033:A,2034:A,2035:A,2036:A,2037:A,2038:A,2039:A,2040:A,2041:A,2042:A,2043:A,2044:A,2045:A,2046:A,2047:A,2048:A,2049:A,2050:A,2051:A,2052:A,2053:A,2054:A,2055:A,2056:A,2057:A,2058:A,2059:A,2060:A,2061:A,2062:A,2063:A,2064:A,2065:A,2066:A,2067:A,2068:A,2069:A,2070:A,2071:A,2072:A,2073:A,2074:A,2075:A,2076:A,2077:A,2078:A,2079:A,2080:A,2081:A,2082:A,2083:A,2084:A,2085:A,2086:A,2087:A,2088:A,2089:A,2090:A,2091:A,2092:A,2093:A,2094:A,2095:A,2096:A,2097:A,2098:A,2099:A,2100:A,2101:A,2102:A,2103:A,2104:A,2105:A,2106:A,2107:A,2108:A,2109:A,2110:A,2111:A,2112:A,2113:A,2114:A,2115:A,2116:A,2117:A,2118:A,2119:A,2120:A,2121:A,2122:A,2123:A,2124:A,2125:A,2126:A,2127:A,2128:A,2129:A,2130:A,2131:A,2132:A,2133:A,2134:A,2135:A,2136:A,2137:A,2138:A,2139:A,2140:A,2141:A,2142:A,2143:A,2144:A,2145:A,2146:A,2147:A,2148:A,2149:A,2150:A,2151:A,2152:A,2153:A,2154:A,2155:A,2156:A,2157:A,2158:A,2159:A,2160:A,2161:A,2162:A,2163:A,2164:A,2165:A,2166:A,2167:A,2168:A,2169:A,2170:A,2171:A,2172:A,2173:A,2174:A,2175:A,2176:A,2177:A,2178:A,2179:A,2180:A,2181:A,2182:A,2183:A,2184:A,2185:A,2186:A,2187:A,2188:A,2189:A,2190:A,2191:A,2192:A,2193:A,2194:A,2195:A,2196:A,2197:A,2198:A,2199:A,2200:A,2201:A,2202:A,2203:A,2204:A,2205:A,2206:A,2207:A,2208:A,2209:A,2210:A,2211:A,2212:A,2213:A,2214:A,2215:A,2216:A,2217:A,2218:A,2219:A,2220:A,2221:A,2222:A,2223:A,2224:A,2225:A,2226:A,2227:A,2228:A,2229:A,2230:A,2231:A,2232:A,2233:A,2234:A,2235:A,2236:A,2237:A,2238:A,2239:A,2240:A,2241:A,2242:A,2243:A,2244:A,2245:A,2246:A,2247:A,2248:A,2249:A,2250:A,2251:T,2252:A,2253:A,2254:A,2255:A,2256:A,2257:A,2258:A,2259:A,2260:A,2261:A,2262:A,2263:A,2264:A,2265:A,2266:A,2267:A,2268:A,2269:A,2270:A,2271:A,2272:A,2273:A,2274:A,2275:A,2276:A,2277:A,2278:A,2279:A,2280:T,2281:A,2282:A,2283:A,2284:A,2285:A,2286:A,2287:A,2288:A,2289:T,2290:T,2291:T,2292:T,2293:T,2294:T,2295:T,2296:T,2297:T,2298:T,2299:T,2300:T,2301:T,2302:T,2303:T,2304:T,2305:T,2306:T,2307:T,2308:T,2309:T,2310:T,2311:T,2312:T,2313:T,2314:T,2315:T,2316:T,2317:T,2318:T,2319:T,2320:T,2321:T,2322:T,2323:T,2324:T,2325:T,2326:T,2327:T,2328:T,2329:A,2330:A,2331:A,2332:A,2333:A,2334:A,2335:A,2336:A,2337:A,2338:A,2339:A,2340:A,2341:A,2342:A,2343:A,2344:A,2345:A,2346:A,2347:A,2348:A,2349:A,2350:A,2351:A,2352:A,2353:A,2354:T,2355:T,2356:T,2357:T,2358:T,2359:T,2360:T,2361:T,2362:T,2363:T,2364:T,2365:T,2366:T,2367:T,2368:T,2369:T,2370:T,2371:T,2372:T,2373:T,2374:A,2375:T,2376:T,2377:T,2378:T,2379:T,2380:T,2381:T,2382:T,2383:T,2384:T,2385:T,2386:T,2387:T,2388:T,2389:T,2390:T,2391:T,2392:T,2393:T,2394:T,2395:T,2396:T,2397:T,2398:T,2399:T,2400:T,2401:T,2402:T,2403:T,2404:T,2405:T,2406:T,2407:T,2408:T,2409:T,2410:T,2411:T,2412:T,2413:T,2414:T,2415:T,2416:T,2417:T,2418:T,2419:T,2420:T,2421:T,2422:T,2423:T,2424:T,2425:T,2426:T,2427:T,2428:T,2429:T,2430:T,2431:T,2432:T,2433:T,2434:T,2435:T,2436:T,2437:T,2438:T,2439:T,2440:T,2441:T,2442:T,2443:T,2444:T,2445:T,2446:T,2447:T,2448:T,2449:T,2450:T,2451:T,2452:T,2453:T,2454:T,2455:T,2456:T,2457:T,2458:T,2459:T,2460:T,2461:T,2462:T,2463:T,2464:T,2465:T,2466:T,2467:T,2468:T,2469:T,2470:T,2471:T,2472:T,2473:T,2474:T,2475:A,2476:A,2477:T,2478:T,2479:T,2480:T,2481:T,2482:A,2483:A,2484:A,2485:A,2486:A,2487:A,2489:T,2490:T,2491:T,2492:T,2493:T,2494:T,2495:T,2496:T,2497:T,2498:T,2499:T,2500:T,2501:T,2502:T,2504:T,2505:A,2506:A,2507:A,2508:A,2509:A,2510:A,2511:A,2512:A,2513:A,2514:A,2515:A,2516:A,2517:A,2518:A,2519:A,2520:A,2521:A,2522:A,2523:A,2524:A,2525:A,2526:A,2527:A,2528:A,2529:A,2530:A,2531:A,2532:A,2533:A,2534:A,2535:A,2536:A,2537:A,2538:A,2539:A,2540:A,2541:A,2542:A,2543:A,2544:A,2545:A,2546:A,2547:A,2548:A,2549:A,2550:A,2551:A,2552:A,2553:A,2554:A,2555:A,2556:A,2557:A,2558:A,2559:A,2560:A,2561:A,2562:A,2563:A,2564:A,2565:A,2566:A,2567:A,2568:A,2569:A,2570:A,2571:A,2572:A,2573:A,2574:A,2575:A,2576:A,2577:A,2578:A,2579:A,2580:A,2581:A,2582:A,2583:A,2584:A,2585:A,2586:A,2587:A,2588:A,2589:A,2590:A,2591:A,2592:A,2593:A,2594:A,2595:A,2596:A,2597:A,2598:A,2599:A,2600:A,2601:A,2602:A,2603:A,2604:A,2605:A,2606:A,2607:A,2608:A,2609:A,2610:A,2611:A,2612:A,2613:A,2614:A,2615:A,2616:A,2617:A,2618:A,2619:A,2620:A,2621:A,2622:A,2623:A,2624:A,2625:A,2626:A,2627:A,2628:A,2629:A,2630:A,2631:A,2632:A,2633:A,2634:A,2635:A,2636:A,2637:A,2638:A,2639:A,2640:A,2641:A,2642:A,2643:A,2644:A,2645:A,2646:A,2647:A,2648:A,2649:A,2650:A,2651:A,2652:A,2653:A,2654:A,2655:A,2656:A,2657:A,2658:A,2659:A,2660:A,2661:A,2662:A,2663:A,2664:A,2665:A,2666:A,2667:A,2668:A,2669:A,2670:A,2671:A,2672:A,2673:A,2674:A,2675:A,2676:A,2677:A,2678:A,2679:A,2680:A,2681:A,2682:A,2683:A,2684:A,2685:A,2686:A,2687:A,2688:A,2689:A,2690:A,2691:A,2692:A,2693:A,2694:A,2695:A,2696:A,2697:A,2698:A,2699:A,2700:A,2701:A,2702:A,2703:A,2704:A,2705:A,2706:A,2707:A,2708:A,2709:A,2710:A,2711:A,2712:A,2713:A,2714:A,2715:A,2716:A,2717:A,2718:A,2719:A,2720:A,2721:A,2722:A,2723:A,2724:A,2725:A,2726:A,2727:A,2728:A,2729:A,2730:A,2731:A,2732:A,2733:A,2734:A,2735:A,2736:A,2737:A,2738:A,2739:A,2740:A,2741:A,2742:A,2743:A,2744:A,2745:A,2746:A,2747:A,2748:A,2749:A,2750:A,2751:A,2752:A,2753:A,2754:A,2755:A,2756:A,2757:A,2758:A,2759:A,2760:A,2761:A,2762:A,2763:A,2764:A,2765:A,2766:A,2767:A,2768:A,2769:A,2770:A,2771:A,2772:A,2773:A,2774:A,2775:A,2776:A,2777:A,2778:A,2779:A,2780:A,2781:A,2782:A,2783:A,2784:A,2785:A,2786:A,2787:A,2788:A,2789:A,2790:A,2791:A,2792:A,2793:A,2794:A,2795:A,2796:A,2797:A,2798:A,2799:A,2800:A,2801:A,2802:A,2803:A,2804:A,2805:A,2806:A,2807:A,2808:A,2809:A,2810:A,2811:A,2812:A,2813:A,2814:A,2815:A,2816:A,2817:A,2818:A,2819:A,2820:A,2821:A,2822:A,2823:A,2824:A,2825:A,2826:A,2827:A,2828:A,2829:A,2830:A,2831:A,2832:A,2833:A,2834:A,2835:A,2836:A,2837:A,2838:A,2839:A,2840:A,2841:A,2842:A,2843:A,2844:A,2845:A,2846:A,2847:A,2848:A,2849:A,2850:A,2851:A,2852:A,2853:A,2854:A,2855:A,2856:A,2857:A,2858:A,2859:A,2860:A,2861:A,2862:A,2863:A,2864:A,2865:A,2866:A,2867:A,2868:A,2869:A,2870:A,2871:A,2872:A,2873:A,2874:A,2875:A,2876:A,2877:A,2878:A,2879:A,2880:A,2881:A,2882:A,2883:A,2884:A,2885:A,2886:A,2887:A,2888:A,2889:A,2890:A,2891:A,2892:A,2893:A,2894:A,2895:A,2896:A,2897:A,2898:A,2899:A,2900:A,2901:A,2902:A,2903:A,2904:A,2905:A,2906:A,2907:T,2908:A,2909:T,2910:A,2911:T,2913:A,2915:T,2916:T,2917:T,2918:A,2919:T,2920:T,2921:T,2922:T,2923:T,2924:T,2925:T,2926:T,2927:T,2928:T,2929:T,2930:T,2931:T,2932:T,2933:T,2934:T,2935:T,2936:T,2937:T,2938:T,2939:T,2940:T,2941:T,2942:T,2943:T,2944:T,2945:T,2946:T,2947:T,2948:T,2949:T,2950:T,2951:T,2952:T,2953:T,2954:T,2955:T,2956:T,2957:T,2958:T,2959:T,2960:T,2961:T,2962:T,2963:T,2964:T,2965:T,2966:T,2967:T,2968:T,2969:T,2970:T,2971:T,2972:T,2973:T,2974:T,2975:T,2976:T,2977:T,2978:T,2979:T,2980:T,2981:T,2982:T,2983:T,2984:T,2985:T,2986:T,2987:T,2988:T,2989:T,2990:T,2991:T,2992:T,2993:T,2994:T,2995:T,2996:T,2997:T,2998:T,2999:T,3000:T,3001:T,3002:T,3003:T,3004:T,3005:T,3006:T,3007:T,3008:T,3009:T,3010:T,3011:T,3012:T,3013:T,3014:T,3015:T,3016:T,3017:T,3018:T,3019:T,3020:T,3021:T,3022:T,3023:T,3024:T,3025:T,3026:T,3027:T,3028:T,3029:T,3030:T,3031:T,3032:T,3033:T,3034:T,3035:T,3036:T,3037:T,3038:T,3039:T,3040:T,3041:T,3042:T,3043:T,3044:T,3045:T,3046:T,3047:T,3048:T,3049:T,3050:T,3051:T,3052:T,3053:T,3054:T,3055:T,3056:T,3057:T,3058:T,3059:T,3060:T,3061:T,3062:T,3063:T,3064:T,3065:T,3066:T,3067:T,3068:T,3069:T,3070:T,3071:T,3072:T,3073:T,3074:T,3075:T,3076:T,3077:T,3078:T,3079:T,3080:T,3081:T,3082:T,3083:T,3084:T,3085:T,3086:T,3087:T,3088:T,3089:T,3090:T,3091:T,3092:T,3093:T,3094:T,3095:T,3096:T,3097:T,3098:T,3099:T,3100:T,3101:T,3102:T,3103:T,3104:T,3105:T,3106:T,3107:T,3108:T,3109:T,3110:T,3111:T,3112:T,3113:T,3114:T,3115:T,3116:T,3117:T,3118:T,3119:T,3120:T,3121:T,3122:T,3123:T,3124:T,3125:T,3126:T,3127:T,3128:T,3129:T,3130:T,3131:T,3132:T,3133:T,3134:T,3135:T,3136:T,3137:T,3138:T,3139:T,3140:T,3141:T,3142:T,3143:T,3144:T,3145:T,3146:T,3147:T,3148:T,3149:T,3150:T,3151:T,3152:T,3153:T,3154:T,3155:T,3156:T,3157:T,3158:T,3159:T,3160:T,3161:T,3162:T,3163:T,3164:T,3165:T,3166:T,3167:T,3168:T,3169:T,3170:T,3171:T,3172:T,3173:T,3174:T,3175:T,3176:T,3177:T,3178:T,3179:T,3180:T,3181:T,3182:T,3183:T,3184:T,3185:T,3186:T,3187:T,3188:T,3189:T,3190:T,3191:T,3192:T,3193:T,3194:T,3195:T,3196:T,3197:T,3198:T,3199:T,3200:T,3201:T,3202:T,3203:T,3204:T,3205:T,3206:T,3207:T,3208:T,3209:T,3210:T,3211:T,3212:T,3213:T,3214:T,3215:T,3216:T,3217:T,3218:T,3219:T,3220:T,3221:T,3222:A,3223:T,3224:A,3225:A,3226:A,3227:T,3228:T,3229:T,3230:T,3231:T,3232:T,3233:A,3234:A,3235:A,3236:T,3237:A,3238:A,3240:A,3241:T,3242:T,3243:T,3244:T,3245:A,3246:A,3247:A,3248:T,3250:T,3251:T,3252:A,3253:A,3254:A,3255:A,3256:A,3257:A,3258:A,3259:A,3260:A,3261:A,3262:A,3263:A,3264:A,3265:A,3266:A,3267:A,3268:A,3269:A,3270:A,3271:A,3272:A,3273:A,3274:A,3275:A,3276:A,3277:A,3278:A,3279:A,3280:A,3281:A,3282:A,3283:A,3284:A,3285:A,3286:A,3287:A,3288:A,3289:A,3290:A,3291:A,3292:A,3293:A,3294:A,3295:A,3296:A,3297:A,3298:A,3299:A,3300:A,3301:A,3302:A,3303:A,3304:A,3305:A,3306:A,3307:A,3308:A,3309:A,3310:A,3311:A,3312:A,3313:A,3314:A,3315:A,3316:A,3317:A,3318:A,3319:A,3320:A,3321:A,3322:A,3323:A,3324:A,3325:A,3326:A,3327:A,3328:A,3329:A,3330:A,3331:A,3332:A,3333:A,3334:A,3335:A,3336:A,3337:A,3338:A,3339:A,3340:A,3341:A,3342:A,3343:A,3344:A,3345:A,3346:A,3347:A,3348:A,3349:A,3350:A,3351:A,3352:A,3353:A,3354:A,3355:A,3356:A,3357:A,3358:A,3359:A,3360:A,3361:A,3362:A,3363:A,3364:A,3365:A,3366:A,3367:A,3368:A,3369:A,3370:A,3371:A,3372:A,3373:A,3374:A,3375:A,3376:A,3377:A,3378:A,3379:A,3380:A,3381:A,3382:A,3383:A,3384:A,3385:A,3386:A,3387:A,3388:A,3389:A,3390:A,3391:A,3392:A,3393:A,3394:A,3395:A,3396:A,3397:A,3398:A,3399:A,3400:A,3401:A,3402:A,3403:A,3404:A,3405:A,3406:A,3407:A,3408:A,3409:A,3410:A,3411:A,3412:A,3413:A,3414:A,3415:A,3416:A,3417:A,3418:A,3419:A,3420:A,3421:A,3422:A,3423:A,3424:A,3425:A,3426:A,3427:A,3428:A,3429:A,3430:A,3431:A,3432:A,3433:A,3434:A,3435:A,3436:A,3437:A,3438:A,3439:A,3440:A,3441:A,3442:A,3443:A,3444:A,3445:A,3446:A,3447:A,3448:A,3449:A,3450:A,3451:A,3452:A,3453:A,3454:A,3455:A,3456:A,3457:A,3458:A,3459:A,3460:A,3461:A,3462:A,3463:A,3464:A,3465:A,3466:A,3467:A,3468:A,3469:A,3470:A,3471:A,3472:A,3473:A,3474:A,3475:A,3476:A,3477:A,3478:A,3479:A,3480:A,3481:A,3482:A,3483:A,3484:A,3485:A,3486:A,3487:A,3488:A,3489:A,3490:A,3491:A,3492:A,3493:A,3494:A,3495:A,3496:A,3497:A,3498:A,3499:A,3500:A,3501:A,3502:A,3503:A,3504:A,3505:A,3506:A,3507:A,3508:A,3509:A,3510:A,3511:A,3512:A,3513:A,3514:A,3515:A,3516:A,3517:A,3518:A,3519:A,3520:A,3521:A,3522:A,3523:A,3524:A,3525:A,3526:A,3527:A,3528:A,3529:A,3530:A,3531:A,3532:A,3533:A,3534:A,3535:A,3536:A,3537:A,3538:A,3539:A,3540:A,3541:A,3542:A,3543:A,3544:A,3545:A,3546:A,3547:A,3548:A,3549:A,3550:A,3551:A,3552:A,3553:A,3554:A,3555:A,3556:A,3557:A,3558:A,3559:A,3560:A,3561:A,3562:A,3563:A,3564:A,3565:A,3566:A,3567:A,3568:A,3569:A,3570:A,3571:A,3572:A,3573:A,3574:A,3575:A,3576:A,3577:A,3578:A,3579:A,3580:A,3581:A,3582:A,3583:A,3584:A,3585:A,3586:A,3587:A,3588:A,3589:A,3590:A,3591:A,3592:A,3593:A,3594:A,3595:A,3596:A,3597:A,3598:A,3599:A,3600:A,3601:A,3602:A,3603:A,3604:A,3605:A,3606:A,3607:A,3608:A,3609:A,3610:A,3611:A,3612:A,3613:A,3614:A,3615:A,3616:A,3617:A,3618:A,3619:A,3620:A,3621:A,3622:A,3623:A,3624:A,3625:A,3626:A,3627:A,3628:A,3629:A,3630:A,3631:A,3632:A,3633:A,3634:A,3635:A,3636:A,3637:A,3638:A,3639:A,3640:A,3641:A,3642:A,3643:A,3644:A,3645:A,3646:A,3647:A,3648:A,3649:A,3650:A,3651:A,3652:A,3653:A,3654:A,3655:A,3656:A,3657:A,3658:A,3659:A,3660:A,3661:A,3662:A,3663:A,3664:A,3665:A,3666:A,3667:A,3668:A,3669:A,3670:A,3671:A,3672:A,3673:A,3674:A,3675:A,3676:A,3677:A,3678:A,3679:A,3680:A,3681:A,3682:A,3683:A,3684:A,3685:A,3686:A,3687:A,3688:A,3689:A,3690:A,3691:A,3692:A,3693:A,3694:A,3695:A,3696:A,3697:A,3698:A,3699:A,3700:A,3701:A,3702:A,3703:A,3704:A,3705:A,3706:A,3707:A,3708:A,3709:A,3710:A,3711:A,3712:A,3713:A,3714:A,3715:A,3716:A,3717:A,3718:A,3719:A,3720:A,3721:A,3722:A,3723:A,3724:A,3725:A,3726:A,3727:A,3728:A,3729:A,3730:A,3731:A,3732:A,3733:A,3734:A,3735:A,3736:A,3737:A,3738:A,3739:A,3740:A,3741:A,3742:A,3743:A,3744:A,3745:A,3746:A,3747:A,3748:A,3749:A,3750:A,3751:A,3752:A,3753:A,3754:A,3755:A,3756:T,3757:A,3758:A,3759:A,3760:T,3761:A,3762:T,3763:A,3764:T,3765:A,3766:T,3767:T,3768:A,3769:T,3770:T,3771:A,3772:T,3773:A,3774:A,3775:A,3776:A,3777:A,3778:T,3779:A,3780:T,3781:T,3782:T,3783:A,3784:A,3785:A,3786:A,3787:T,3788:T,3789:T,3790:A,3791:A,3792:A,3793:A,3794:T,3795:T,3796:A,3797:A,3798:A,3799:A,3800:A,3801:A,3802:A,3803:A,3804:A,3805:A,3806:A,3807:A,3808:A,3809:A,3810:A,3811:A,3812:T,3813:A,3814:A,3817:A,3818:A,3819:A,3820:T,3821:A,3824:A,3825:A,3826:A,3827:A,3830:A,3831:A,3832:T,3833:T,3835:A,3836:T,3837:A,3838:A,3839:T,3840:A,3841:A,3842:T,3844:A,3846:A,3847:A,3848:T,3849:T,3850:T,3851:T,3852:A,3853:A,3854:A,3855:A,3856:A,3857:A,3858:A,3859:T,3860:A,3861:A,3862:A,3863:A,3864:T,3865:A,3866:A,3867:A,3868:T,3869:A,3870:A,3871:A,3872:A,3873:A,3874:A,3875:A,3876:A,3877:A,3878:A,3879:A,3880:A,3881:A,3882:A,3883:A,3884:T,3885:A,3886:A,3887:A,3888:A,3889:T,3890:A,3891:A,3892:A,3893:A,3894:A,3895:A,3896:A,3897:A,3898:A,3899:A,3900:A,3901:A,3902:A,3903:A,3904:A,3905:A,3906:A,3907:A,3908:A,3909:A,3910:A,3911:A,3912:A,3913:A,3914:A,3915:A,3916:A,3917:A,3918:A,3919:A,3920:A,3921:A,3922:A,3923:A,3924:A,3925:A,3926:A,3927:A,3928:A,3929:A,3930:A,3931:A,3932:A,3933:A,3934:A,3935:A,3936:A,3937:A,3938:A,3939:A,3940:A,3941:A,3942:A,3943:A,3944:A,3945:A,3946:A,3947:A,3948:A,3949:A,3950:A,3951:A,3952:A,3953:T,3954:A,3955:A,3956:A,3957:A,3958:A,3959:A,3960:T,3961:A,3962:T,3963:T,3964:T,3965:T,3966:T,3967:T,3968:A,3969:A,3970:A,3971:A,3972:A,3973:A,3974:A,3975:A,3976:A,3977:A,3978:T,3979:A,3980:A,3981:A,3982:A,3983:A,3984:A,3985:A,3986:A,3987:A,3988:A,3989:A,3990:A,3991:A,3992:A,3993:A,3994:A,3995:A,3996:A,3997:A,3998:A,3999:A,4000:A,4001:A,4002:A,4003:A,4004:A,4005:A,4006:A,4007:A,4008:A,4009:A,4010:A,4011:A,4012:A,4013:A,4014:A,4015:A,4016:A,4017:A,4018:A,4019:A,4020:A,4021:A,4022:A,4023:A,4024:T,4025:T,4026:T,4027:T,4028:T,4029:A,4030:A,4031:A,4032:A,4033:A,4034:A,4035:A,4036:A,4037:A,4038:A,4039:A,4040:T,4041:A,4042:A,4043:A,4044:A,4045:A,4046:A,4047:A,4048:A,4049:A,4050:A,4051:A,4052:A,4053:A,4054:A,4055:A,4056:A,4057:A,4058:A,4059:A,4060:A,4061:A,4062:A,4063:A,4064:A,4065:A,4066:A,4067:A,4068:A,4069:A,4070:A,4071:A,4072:A,4073:A,4074:A,4075:A,4076:A,4077:A,4078:A,4079:A,4080:A,4081:A,4082:A,4083:A,4084:A,4085:A,4086:A,4087:A,4088:A,4089:A,4090:A,4091:A,4092:A,4093:A,4094:A,4095:A,4096:A,4097:A,4098:A,4099:A,4100:A,4101:A,4102:A,4103:A,4104:A,4105:A,4106:A,4107:A,4108:A,4109:A,4110:A,4111:A,4112:A,4113:A,4114:A,4115:A,4116:A,4117:A,4118:A,4119:A,4120:A,4121:A,4122:A,4123:A,4124:A,4125:A,4126:A,4127:A,4128:A,4129:A,4130:A,4131:A,4132:A,4133:A,4134:A,4135:A,4136:A,4137:A,4138:A,4139:A,4140:A,4141:A,4142:A,4143:A,4144:A,4145:A,4146:A,4147:A,4148:A,4149:A,4150:A,4151:A,4152:A,4153:A,4154:A,4155:A,4156:A,4157:A,4158:A,4159:A,4160:T,4161:A,4162:A,4163:A,4164:A,4165:A,4166:A,4167:A,4168:A,4169:A,4170:A,4171:A,4172:A,4173:A,4174:A,4175:A,4176:A,4177:A,4178:A,4179:A,4180:A,4181:A,4182:A,4183:A,4184:A,4185:A,4186:A,4187:A,4188:A,4189:A,4190:A,4191:A,4192:A,4193:A,4194:A,4195:A,4196:A,4197:A,4198:A,4199:A,4200:A,4201:A,4202:A,4203:A,4204:A,4205:A,4206:A,4207:A,4208:A,4209:A,4210:A,4211:A,4212:A,4213:A,4214:A,4215:A,4216:A,4217:A,4218:A,4219:A,4220:A,4221:A,4222:A,4223:A,4224:A,4225:A,4226:A,4227:A,4228:A,4229:A,4230:A,4231:A,4232:A,4233:A,4234:A,4235:A,4236:A,4237:A,4238:A,4239:A,4240:A,4241:A,4242:A,4243:A,4244:A,4245:A,4246:A,4247:A,4248:A,4249:A,4250:A,4251:A,4252:A,4253:A,4254:A,4255:A,4256:A,4257:A,4258:A,4259:A,4260:A,4261:A,4262:A,4263:A,4264:A,4265:A,4266:A,4267:A,4268:A,4269:A,4270:A,4271:A,4272:A,4273:A,4274:A,4275:A,4276:A,4277:A,4278:A,4279:A,4280:A,4281:A,4282:A,4283:A,4284:A,4285:A,4286:A,4287:A,4288:A,4289:A,4290:A,4291:A,4292:A,4293:A,4294:A,4295:A,4296:A,4297:A,4298:A,4299:A,4300:A,4301:A,4302:A,4303:A,4304:A,4305:A,4306:A,4307:A,4308:A,4309:A,4310:A,4311:A,4312:A,4313:A,4314:A,4315:A,4316:A,4317:A,4318:A,4319:A,4320:A,4321:A,4322:A,4323:A,4324:A,4325:A,4326:A,4327:A,4328:A,4329:A,4330:A,4331:A,4332:A,4333:A,4334:A,4335:A,4336:A,4337:A,4338:A,4339:A,4340:A,4341:A,4342:A,4343:A,4344:A,4345:A,4346:A,4347:A,4348:A,4349:A,4350:A,4351:A,4352:A,4353:A,4354:A,4355:A,4356:A,4357:A,4358:A,4359:A,4360:A,4361:A,4362:A,4363:A,4364:A,4365:A,4366:A,4367:A,4368:A,4369:A,4370:A,4371:A,4372:A,4373:A,4374:A,4375:A,4376:A,4377:A,4378:A,4379:A,4380:A,4381:A,4382:A,4383:A,4384:A,4385:A,4386:A,4387:A,4388:A,4389:A,4390:A,4391:A,4392:A,4393:A,4394:A,4395:A,4396:A,4397:A,4398:A,4399:A,4400:A,4401:A,4402:A,4403:A,4404:A,4405:A,4406:A,4407:A,4408:A,4409:A,4410:A,4411:A,4412:A,4413:A,4414:A,4415:A,4416:A,4417:A,4418:A,4419:A,4420:A,4421:A,4422:A,4423:A,4424:A,4425:A,4426:A,4427:A,4428:A,4429:A,4430:A,4431:A,4432:A,4433:A,4434:A,4435:A,4436:A,4437:A,4438:A,4439:A,4440:A,4441:A,4442:A,4443:A,4444:A,4445:A,4446:A,4447:A,4448:A,4449:A,4450:A,4451:A,4452:A,4453:A,4454:A,4455:A,4456:A,4457:A,4458:A,4459:A,4460:A,4461:A,4462:A,4463:A,4464:A,4465:A,4466:A,4467:A,4468:A,4469:A,4470:A,4471:A,4472:A,4473:A,4474:A,4475:A,4476:A,4477:A,4478:A,4479:A,4480:A,4481:A,4482:A,4483:A,4484:A,4485:A,4486:A,4487:A,4488:A,4489:A,4490:A,4491:A,4492:A,4493:A,4494:A,4495:A,4496:A,4497:A,4498:A,4499:A,4500:A,4501:A,4502:A,4503:A,4504:A,4505:A,4506:A,4507:A,4508:A,4509:A,4510:A,4511:A,4512:A,4513:A,4514:A,4515:A,4516:A,4517:A,4518:A,4519:A,4520:A,4521:A,4522:A,4523:A,4524:A,4525:A,4526:A,4527:A,4528:A,4529:A,4530:A,4531:A,4532:A,4533:A,4534:A,4535:A,4536:A,4537:A,4538:A,4539:A,4540:A,4541:A,4542:A,4543:A,4544:A,4545:A,4546:A,4547:A,4548:A,4549:A,4550:A,4551:A,4552:A,4553:A,4555:A,4556:A,4557:A,4558:A,4559:A,4560:A,4561:A,4562:A,4563:A,4564:A,4565:A,4566:A,4567:A,4568:A,4569:A,4570:A,4571:A,4572:A,4573:A,4574:A,4575:A,4576:A,4577:A,4578:A,4579:A,4580:A,4581:A,4582:A,4583:A,4584:A,4585:A,4586:A,4587:A,4588:A,4589:A,4590:A,4591:A,4592:A,4593:A,4594:A,4595:A,4596:A,4597:A,4598:A,4599:A,4600:A,4601:A,4602:A,4603:A,4604:A,4605:A,4606:A,4607:A,4608:A,4609:A,4610:A,4611:A,4612:A,4613:A,4614:A,4615:A,4616:A,4617:A,4618:A,4619:A,4620:A,4621:A,4622:A,4623:A,4624:A,4625:A,4626:A,4627:A,4628:A,4629:A,4630:A,4631:A,4632:A,4633:A,4634:A,4635:A,4636:A,4637:A,4638:A,4639:A,4640:A,4641:A,4642:A,4643:A,4644:A,4645:A,4646:A,4647:A,4648:A,4649:A,4650:A,4651:A,4652:A,4653:A,4654:A,4655:A,4656:A,4657:A,4658:A,4659:A,4660:A,4661:A,4662:A,4663:A,4664:A,4665:A,4666:A,4667:A,4668:A,4669:A,4670:A,4671:A,4672:A,4673:A,4674:A,4675:A,4676:A,4677:A,4678:A,4679:A,4680:A,4681:A,4682:A,4683:A,4684:A,4685:A,4686:A,4687:A,4688:A,4689:A,4690:A,4691:A,4692:A,4693:A,4694:A,4695:A,4696:A,4697:A,4698:A,4699:A,4700:A,4701:A,4702:A,4703:A,4704:A,4705:A,4706:A,4707:A,4708:A,4709:A,4710:A,4711:A,4712:A,4713:A,4714:A,4715:A,4716:A,4717:A,4718:A,4719:A,4720:A,4721:A,4722:A,4723:A,4724:A,4725:A,4726:A,4727:A,4728:A,4729:A,4730:A,4731:A,4732:A,4733:A,4734:A,4735:A,4736:A,4737:A,4738:A,4739:A,4740:A,4741:A,4742:A,4743:A,4744:A,4745:A,4746:A,4747:A,4748:A,4749:A,4750:A,4751:A,4752:A,4753:A,4754:A,4755:A,4756:A,4757:A,4758:A,4759:A,4760:A,4761:A,4762:A,4763:A,4764:A,4765:A,4766:A,4767:A,4768:A,4769:A,4770:A,4771:A,4772:A,4773:A,4774:A,4775:A,4776:A,4777:A,4778:A,4779:A,4780:A,4781:A,4782:A,4783:A,4784:A,4785:A,4786:A,4787:A,4788:A,4789:A,4790:A,4791:A,4792:A,4793:A,4794:A,4795:A,4796:A,4797:A,4798:A,4799:A,4800:A,4801:A,4802:A,4803:A,4804:A,4805:A,4806:A,4807:A,4808:A,4809:A,4810:A,4811:A,4812:A,4813:A,4814:A,4815:A,4816:A,4817:A,4818:A,4819:A,4820:A,4821:A,4822:A,4823:A,4824:A,4825:A,4826:A,4827:A,4828:A,4829:A,4830:A,4831:A,4832:A,4833:A,4834:A,4835:A,4836:A,4837:A,4838:A,4839:A,4840:A,4841:A,4842:A,4843:A,4844:A,4845:A,4846:A,4847:A,4848:A,4849:A,4850:A,4851:A,4852:A,4853:A,4854:A,4855:A,4856:A,4857:A,4858:A,4859:A,4860:A,4861:A,4862:A,4863:A,4864:A,4865:A,4866:A,4867:A,4868:A,4869:A,4870:A,4871:A,4872:A,4873:A,4874:A,4875:A,4876:A,4877:A,4878:A,4879:A,4880:A,4881:A,4882:A,4883:A,4884:A,4885:A,4886:A,4887:A,4888:A,4889:A,4890:A,4891:A,4892:A,9994:R,9995:R,9996:R,9997:R,9998:R,9999:R,10007:A,10009:R,4000001:R,8888888:R"
|
|
19
|
+
"encodedStatuses": "1:R,2:A,3:R,4:T,6:T,8:R,9:A,10:T,11:T,12:T,13:A,14:A,15:A,16:T,18:T,19:T,22:T,25:T,26:T,27:T,28:T,30:A,31:T,44:T,45:T,47:T,48:A,49:A,50:T,51:T,52:A,53:T,54:T,56:T,57:A,58:T,59:T,60:T,61:T,62:T,63:T,64:A,65:A,66:A,67:T,68:A,69:A,70:T,71:T,72:T,73:A,74:A,75:T,76:A,78:A,79:A,80:T,81:A,82:A,83:A,84:A,85:A,86:A,87:A,88:A,89:T,91:A,93:A,94:T,97:T,98:T,99:A,100:A,101:T,103:T,105:T,106:A,109:T,110:T,111:A,112:A,113:A,119:R,120:A,121:T,122:T,123:A,124:T,125:T,127:T,128:A,129:T,130:A,131:A,132:T,133:T,134:A,139:T,140:A,141:A,142:T,143:A,144:A,145:T,146:A,148:T,151:A,152:T,166:T,167:T,168:A,186:A,206:T,226:A,228:A,230:T,232:T,239:T,240:T,241:T,242:T,244:A,245:T,246:T,247:T,249:A,250:T,255:T,256:T,257:T,258:T,268:T,269:A,270:A,274:T,275:T,276:T,277:A,278:T,279:T,281:T,282:T,291:A,292:A,293:T,295:T,298:T,299:A,300:T,301:T,303:A,304:T,317:T,320:A,321:T,347:T,353:A,360:A,363:T,364:T,365:R,376:R,377:T,378:T,379:A,380:A,381:A,400:T,401:A,402:T,403:T,404:T,407:T,408:T,409:T,410:T,411:A,412:A,413:A,414:T,415:T,416:T,417:T,418:A,419:T,420:A,421:T,422:T,423:T,424:T,425:T,426:T,427:T,428:T,429:T,430:A,431:A,432:T,433:A,434:T,435:T,436:T,437:A,438:T,439:T,440:A,441:T,442:T,443:T,444:A,445:T,446:T,447:A,448:A,449:T,450:A,451:T,452:A,453:T,455:A,456:A,457:T,458:T,459:T,460:A,461:T,462:T,463:A,464:T,465:A,466:A,467:T,468:A,469:A,470:A,471:A,472:A,473:T,474:A,475:T,600:A,601:A,602:T,603:A,604:A,605:A,606:A,607:A,608:T,609:A,610:T,611:T,612:A,614:T,615:T,616:T,617:A,618:T,619:A,620:A,622:T,623:T,624:T,625:A,626:T,627:T,628:T,629:T,630:T,631:T,632:T,633:T,634:A,635:A,636:A,637:A,638:A,639:T,640:T,641:T,642:A,643:T,644:T,645:A,646:A,647:A,648:T,649:T,650:A,651:T,652:A,653:A,654:A,655:A,656:A,658:A,659:A,660:T,661:A,662:A,663:A,664:A,665:T,666:A,667:A,668:T,669:T,670:A,671:A,672:A,673:T,674:T,675:A,676:T,677:T,678:T,679:T,680:T,681:T,682:A,683:T,684:T,685:T,686:T,687:T,688:T,689:T,690:T,691:T,693:T,694:T,695:T,696:A,697:A,698:A,699:A,700:A,701:A,702:A,703:A,704:A,705:A,706:A,707:A,708:A,709:A,710:T,711:T,712:T,713:T,714:T,715:T,716:T,717:T,718:T,719:A,720:T,721:T,722:T,723:T,724:T,725:T,726:T,727:T,728:T,729:T,730:T,731:T,733:T,734:A,735:A,736:T,737:T,738:T,739:T,740:T,741:T,742:T,743:A,744:T,745:T,746:T,747:T,748:A,749:T,750:A,751:A,752:A,753:A,754:A,755:A,756:T,757:T,758:T,759:T,760:T,761:T,762:A,763:A,764:T,765:T,766:T,767:T,768:T,769:T,770:T,771:A,772:T,773:T,774:T,775:T,776:A,777:A,778:T,779:T,780:A,781:A,782:A,783:T,784:T,785:A,786:T,787:T,788:T,789:T,790:T,791:T,792:A,793:T,794:T,795:T,796:T,797:T,798:T,799:T,800:T,801:T,802:T,803:T,804:T,805:T,807:T,808:T,809:A,810:T,811:T,812:T,813:T,814:T,815:T,816:T,817:A,818:A,819:A,820:A,821:T,822:T,823:T,825:T,826:A,827:T,828:A,829:A,830:T,831:A,832:T,833:T,834:T,835:A,836:A,837:T,838:T,839:A,840:A,841:A,842:T,843:T,844:T,845:A,846:A,847:A,848:A,849:T,850:A,851:A,852:T,853:A,854:A,855:A,856:A,857:T,858:A,859:A,860:T,861:A,862:A,863:A,864:A,865:T,866:A,867:A,868:A,869:A,870:A,871:A,872:A,873:A,874:A,875:A,876:A,877:A,878:A,879:A,880:A,881:A,882:A,883:A,884:A,885:A,886:A,887:A,888:T,889:A,890:T,891:T,892:T,893:T,894:A,895:A,896:A,897:T,898:A,899:A,900:T,901:T,902:A,903:A,904:T,905:T,906:T,907:T,908:T,909:T,910:A,911:T,912:A,913:A,914:A,915:A,916:T,917:A,918:A,919:A,920:A,921:A,922:A,923:A,924:T,925:T,926:T,927:T,928:T,929:T,930:T,931:A,932:A,933:A,934:A,935:A,936:T,937:A,938:A,939:A,940:A,941:T,942:T,943:T,944:A,945:A,946:A,947:A,948:T,949:T,950:T,951:T,952:T,953:T,954:T,955:A,956:T,957:A,958:T,959:A,960:T,961:A,962:T,963:T,965:A,966:T,967:A,968:A,969:T,970:A,971:A,972:T,973:T,974:T,975:T,976:A,977:T,978:T,979:T,980:A,981:A,982:T,983:T,984:T,985:A,986:A,987:A,988:T,989:T,990:T,991:T,992:T,993:T,994:T,995:T,996:A,997:A,998:T,999:T,1000:T,1001:A,1002:T,1003:A,1004:T,1005:A,1006:T,1007:T,1008:A,1009:A,1010:A,1011:A,1012:A,1013:A,1014:A,1015:T,1016:T,1017:T,1018:T,1019:A,1020:T,1021:T,1022:A,1023:A,1024:A,1025:A,1026:A,1027:A,1028:A,1029:A,1030:T,1031:A,1032:T,1033:A,1034:A,1035:A,1036:A,1037:A,1038:A,1039:T,1040:A,1041:T,1042:A,1043:A,1044:A,1045:A,1046:A,1047:A,1048:A,1049:A,1050:A,1051:A,1052:A,1053:A,1054:A,1055:A,1056:A,1057:A,1058:A,1059:A,1060:A,1061:A,1062:A,1063:A,1064:A,1065:A,1066:A,1067:A,1068:A,1069:A,1070:A,1071:A,1072:A,1073:T,1074:T,1075:A,1076:A,1077:A,1078:A,1079:T,1080:T,1081:T,1082:A,1083:A,1084:A,1085:A,1086:A,1087:T,1088:T,1089:T,1090:T,1091:A,1092:T,1093:A,1094:T,1095:T,1096:A,1097:T,1098:A,1099:A,1100:A,1101:A,1102:A,1103:T,1104:A,1105:A,1106:A,1107:A,1108:A,1109:A,1110:A,1111:A,1112:A,1113:A,1114:A,1115:A,1116:T,1117:A,1118:A,1119:A,1120:A,1121:A,1122:A,1123:A,1124:A,1125:A,1126:A,1127:A,1128:A,1129:A,1130:A,1131:T,1132:A,1133:T,1134:T,1135:T,1136:T,1137:T,1138:T,1139:T,1140:T,1141:T,1142:T,1143:A,1144:A,1145:A,1146:T,1147:A,1148:A,1149:A,1150:A,1151:A,1152:A,1153:A,1154:A,1155:T,1156:T,1157:A,1158:A,1159:A,1160:A,1161:A,1162:A,1163:A,1164:A,1165:A,1166:A,1167:A,1168:A,1169:A,1170:A,1171:A,1172:A,1173:A,1174:T,1175:A,1176:A,1177:A,1178:A,1179:A,1180:A,1181:A,1182:A,1183:A,1184:A,1185:A,1186:A,1187:A,1188:A,1189:A,1190:A,1191:A,1192:A,1193:A,1194:A,1195:A,1196:A,1197:A,1198:A,1199:A,1200:A,1201:A,1202:A,1203:A,1204:A,1205:A,1206:A,1207:A,1208:A,1209:A,1210:A,1211:A,1212:A,1213:A,1214:A,1215:A,1216:A,1217:A,1218:A,1219:A,1220:A,1221:A,1222:A,1223:A,1224:A,1225:A,1226:A,1227:A,1228:A,1229:A,1230:A,1231:A,1232:A,1233:A,1234:A,1235:A,1236:T,1237:T,1238:T,1239:A,1240:T,1241:A,1242:T,1243:T,1244:T,1245:T,1246:T,1247:T,1248:T,1249:A,1250:A,1251:A,1252:T,1253:A,1254:T,1255:T,1256:T,1257:A,1258:T,1259:T,1260:T,1261:T,1262:A,1263:A,1264:A,1265:A,1266:A,1267:A,1268:A,1269:A,1270:A,1271:A,1272:A,1273:A,1274:A,1275:A,1276:A,1277:A,1278:A,1279:A,1280:A,1281:A,1282:A,1283:A,1284:A,1285:A,1286:A,1287:A,1288:A,1289:A,1290:A,1291:A,1292:A,1293:A,1294:A,1295:A,1296:A,1297:A,1298:A,1299:A,1300:A,1301:A,1302:A,1303:A,1304:A,1305:A,1306:A,1307:A,1308:A,1309:A,1310:A,1311:A,1312:A,1313:A,1314:A,1315:T,1316:T,1317:T,1318:A,1319:T,1320:T,1321:T,1322:T,1323:T,1324:T,1325:T,1326:A,1327:A,1328:A,1329:T,1330:A,1331:A,1332:A,1333:A,1334:T,1335:T,1336:A,1337:A,1338:T,1339:T,1340:T,1341:A,1342:A,1343:A,1344:A,1345:A,1346:A,1347:A,1348:A,1349:A,1350:A,1351:A,1352:A,1353:A,1354:A,1355:A,1356:A,1357:A,1358:A,1359:A,1360:A,1361:T,1362:A,1363:T,1364:A,1365:T,1366:A,1367:A,1368:T,1369:T,1370:T,1371:T,1372:A,1373:A,1374:T,1375:A,1376:A,1377:T,1378:A,1379:T,1380:T,1381:A,1382:T,1383:A,1384:T,1385:T,1386:T,1387:A,1388:A,1389:T,1390:A,1391:A,1392:A,1393:T,1394:T,1395:T,1396:T,1397:T,1398:T,1399:T,1401:T,1402:T,1403:A,1404:T,1405:T,1406:T,1407:A,1408:A,1409:A,1410:T,1411:A,1412:T,1413:T,1414:T,1416:T,1417:A,1418:A,1419:T,1420:A,1421:T,1422:T,1423:T,1424:A,1426:A,1427:T,1428:T,1429:T,1430:T,1431:T,1432:A,1433:T,1434:A,1435:A,1436:A,1437:T,1438:T,1439:T,1440:T,1441:A,1442:T,1443:A,1444:A,1445:T,1446:T,1447:T,1448:A,1449:A,1450:T,1451:T,1452:A,1453:T,1454:A,1455:T,1456:A,1457:T,1458:T,1459:T,1460:A,1461:T,1462:A,1463:A,1464:A,1465:A,1466:A,1467:A,1468:T,1469:A,1470:A,1471:T,1472:A,1473:T,1474:T,1475:A,1476:A,1477:T,1478:A,1479:A,1480:A,1481:A,1482:T,1483:A,1484:T,1485:A,1487:T,1488:T,1489:A,1490:T,1491:A,1492:A,1493:T,1494:A,1495:A,1496:T,1497:T,1498:T,1499:A,1500:A,1501:A,1502:A,1503:A,1504:T,1505:A,1506:A,1507:T,1508:T,1509:A,1510:T,1511:T,1512:T,1513:T,1514:T,1515:A,1516:T,1517:T,1518:A,1519:A,1520:T,1521:T,1522:T,1523:T,1524:T,1525:A,1526:A,1527:A,1528:T,1529:A,1530:T,1531:A,1532:T,1533:A,1534:A,1535:A,1536:A,1537:A,1538:A,1539:A,1540:A,1541:A,1542:A,1543:T,1544:T,1545:T,1546:T,1547:A,1548:T,1549:T,1550:T,1551:T,1552:T,1553:A,1554:T,1555:A,1556:A,1557:A,1558:T,1559:A,1560:A,1561:T,1562:T,1563:A,1564:A,1565:T,1566:A,1567:A,1568:A,1569:A,1570:A,1571:A,1572:A,1573:A,1574:A,1575:A,1576:A,1577:A,1578:A,1579:A,1580:A,1581:T,1582:A,1583:A,1584:T,1586:A,1587:A,1588:A,1589:T,1590:T,1591:A,1593:A,1594:A,1595:A,1596:A,1597:A,1598:T,1599:A,1600:A,1601:A,1603:T,1604:T,1605:A,1606:A,1607:A,1608:A,1609:A,1610:A,1611:A,1612:A,1613:A,1614:A,1615:A,1616:A,1617:A,1618:A,1619:A,1620:T,1621:A,1622:T,1623:T,1624:T,1625:A,1626:T,1627:T,1628:T,1629:T,1630:A,1631:T,1632:A,1633:A,1634:T,1635:T,1636:A,1637:A,1638:A,1639:A,1640:A,1641:T,1642:A,1643:A,1644:A,1645:A,1646:T,1647:A,1649:A,1651:A,1652:A,1653:A,1654:A,1655:A,1656:A,1657:T,1658:T,1659:A,1660:A,1661:A,1662:T,1663:A,1664:A,1665:A,1666:T,1667:T,1668:A,1669:A,1670:A,1671:A,1672:A,1673:A,1674:T,1675:A,1676:T,1677:A,1678:A,1679:A,1680:A,1681:A,1682:A,1683:A,1684:A,1685:A,1686:A,1687:A,1688:A,1689:A,1690:A,1691:A,1692:A,1693:A,1694:A,1695:A,1696:A,1697:A,1698:T,1699:T,1700:A,1701:A,1702:T,1703:T,1704:T,1705:A,1708:A,1710:A,1712:A,1714:T,1715:A,1716:A,1717:T,1718:A,1719:A,1720:A,1721:A,1722:A,1723:A,1724:A,1725:A,1726:A,1727:A,1728:A,1729:A,1730:A,1731:A,1732:T,1733:A,1734:A,1735:T,1736:T,1737:A,1738:A,1739:A,1740:T,1741:A,1742:T,1743:T,1744:A,1745:A,1746:T,1747:T,1748:T,1749:A,1750:A,1751:A,1752:A,1753:T,1754:T,1755:A,1756:A,1757:A,1758:A,1759:A,1760:A,1761:A,1762:A,1763:A,1764:A,1765:A,1766:A,1767:A,1768:A,1769:A,1770:A,1771:A,1772:A,1773:A,1774:A,1775:A,1776:A,1777:A,1778:A,1779:A,1780:A,1781:A,1782:A,1783:A,1784:A,1785:A,1786:A,1787:A,1788:A,1789:A,1790:A,1791:A,1792:A,1793:A,1794:A,1795:A,1796:A,1797:A,1798:A,1799:A,1800:A,1801:A,1802:A,1803:A,1804:A,1805:A,1806:A,1807:A,1808:A,1809:A,1810:A,1811:A,1812:A,1813:A,1814:A,1815:A,1816:A,1817:A,1818:A,1819:A,1820:A,1821:A,1822:A,1823:A,1824:A,1825:A,1826:A,1827:A,1828:A,1829:A,1830:A,1831:A,1832:A,1833:A,1834:A,1835:A,1836:A,1837:A,1838:A,1839:A,1840:A,1841:A,1842:A,1843:A,1844:A,1845:A,1846:A,1847:A,1848:A,1849:A,1850:A,1851:A,1852:A,1853:A,1854:A,1855:A,1856:A,1857:T,1858:T,1859:T,1860:T,1861:A,1862:T,1863:A,1864:A,1865:A,1866:A,1867:A,1868:A,1870:A,1871:A,1872:A,1873:A,1874:T,1875:T,1876:T,1877:T,1878:T,1879:T,1880:T,1881:T,1882:T,1883:T,1884:T,1885:T,1886:T,1887:T,1888:T,1889:T,1890:T,1891:T,1892:T,1893:T,1894:A,1895:A,1896:A,1897:A,1898:A,1899:A,1900:A,1901:A,1902:A,1903:A,1904:A,1905:A,1907:A,1908:T,1909:A,1910:A,1911:T,1912:A,1913:A,1914:A,1915:A,1916:A,1917:A,1919:A,1920:A,1921:A,1922:A,1923:A,1924:A,1925:A,1926:A,1927:A,1928:A,1929:A,1930:A,1931:A,1932:A,1933:A,1934:A,1935:A,1936:A,1937:A,1938:A,1939:A,1940:A,1941:A,1942:A,1943:A,1944:A,1945:A,1946:A,1947:A,1948:A,1949:A,1950:A,1951:A,1952:A,1953:A,1954:A,1955:A,1956:A,1957:A,1958:A,1959:A,1960:A,1961:A,1962:A,1963:A,1964:A,1965:A,1966:A,1967:A,1968:A,1969:A,1970:A,1971:A,1972:A,1973:A,1974:A,1975:A,1976:A,1977:A,1978:A,1979:A,1980:A,1981:A,1982:A,1983:A,1984:A,1985:A,1986:A,1987:A,1988:A,1989:A,1990:A,1991:A,1992:A,1993:A,1994:A,1995:A,1996:A,1997:A,1998:A,1999:A,2000:A,2001:A,2002:A,2003:A,2004:A,2005:A,2006:A,2007:A,2008:A,2009:A,2010:A,2011:A,2012:A,2013:A,2014:A,2015:A,2016:A,2017:A,2018:A,2019:A,2020:A,2021:A,2022:A,2023:A,2024:A,2025:A,2026:A,2027:A,2028:A,2029:A,2030:A,2031:A,2032:A,2033:A,2034:A,2035:A,2036:A,2037:A,2038:A,2039:A,2040:A,2041:A,2042:A,2043:A,2044:A,2045:A,2046:A,2047:A,2048:A,2049:A,2050:A,2051:A,2052:A,2053:A,2054:A,2055:A,2056:A,2057:A,2058:A,2059:A,2060:A,2061:A,2062:A,2063:A,2064:A,2065:A,2066:A,2067:A,2068:A,2069:A,2070:A,2071:A,2072:A,2073:A,2074:A,2075:A,2076:A,2077:A,2078:A,2079:A,2080:A,2081:A,2082:A,2083:A,2084:A,2085:A,2086:A,2087:A,2088:A,2089:A,2090:A,2091:A,2092:A,2093:A,2094:A,2095:A,2096:A,2097:A,2098:A,2099:A,2100:A,2101:A,2102:A,2103:A,2104:A,2105:A,2106:A,2107:A,2108:A,2109:A,2110:A,2111:A,2112:A,2113:A,2114:A,2115:A,2116:A,2117:A,2118:A,2119:A,2120:A,2121:A,2122:A,2123:A,2124:A,2125:A,2126:A,2127:A,2128:A,2129:A,2130:A,2131:A,2132:A,2133:A,2134:A,2135:A,2136:A,2137:A,2138:A,2139:A,2140:A,2141:A,2142:A,2143:A,2144:A,2145:A,2146:A,2147:A,2148:A,2149:A,2150:A,2151:A,2152:A,2153:A,2154:A,2155:A,2156:A,2157:A,2158:A,2159:A,2160:A,2161:A,2162:A,2163:A,2164:A,2165:A,2166:A,2167:A,2168:A,2169:A,2170:A,2171:A,2172:A,2173:A,2174:A,2175:A,2176:A,2177:A,2178:A,2179:A,2180:A,2181:A,2182:A,2183:A,2184:A,2185:A,2186:A,2187:A,2188:A,2189:A,2190:A,2191:A,2192:A,2193:A,2194:A,2195:A,2196:A,2197:A,2198:A,2199:A,2200:A,2201:A,2202:A,2203:A,2204:A,2205:A,2206:A,2207:A,2208:A,2209:A,2210:A,2211:A,2212:A,2213:A,2214:A,2215:A,2216:A,2217:A,2218:A,2219:A,2220:A,2221:A,2222:A,2223:A,2224:A,2225:A,2226:A,2227:A,2228:A,2229:A,2230:A,2231:A,2232:A,2233:A,2234:A,2235:A,2236:A,2237:A,2238:A,2239:A,2240:A,2241:A,2242:A,2243:A,2244:A,2245:A,2246:A,2247:A,2248:A,2249:A,2250:A,2251:T,2252:A,2253:A,2254:A,2255:A,2256:A,2257:A,2258:A,2259:A,2260:A,2261:A,2262:A,2263:A,2264:A,2265:A,2266:A,2267:A,2268:A,2269:A,2270:A,2271:A,2272:A,2273:A,2274:A,2275:A,2276:A,2277:A,2278:A,2279:A,2280:T,2281:A,2282:A,2283:A,2284:A,2285:A,2286:A,2287:A,2288:A,2289:T,2290:T,2291:T,2292:T,2293:T,2294:T,2295:T,2296:T,2297:T,2298:T,2299:T,2300:T,2301:T,2302:T,2303:T,2304:T,2305:T,2306:T,2307:T,2308:T,2309:T,2310:T,2311:T,2312:T,2313:T,2314:T,2315:T,2316:T,2317:T,2318:T,2319:T,2320:T,2321:T,2322:T,2323:T,2324:T,2325:T,2326:T,2327:T,2328:T,2329:A,2330:A,2331:A,2332:A,2333:A,2334:A,2335:A,2336:A,2337:A,2338:A,2339:A,2340:A,2341:A,2342:A,2343:A,2344:A,2345:A,2346:A,2347:A,2348:A,2349:A,2350:A,2351:A,2352:A,2353:A,2354:T,2355:T,2356:T,2357:T,2358:T,2359:T,2360:T,2361:T,2362:T,2363:T,2364:T,2365:T,2366:T,2367:T,2368:T,2369:T,2370:T,2371:T,2372:T,2373:T,2374:A,2375:T,2376:T,2377:T,2378:T,2379:T,2380:T,2381:T,2382:T,2383:T,2384:T,2385:T,2386:T,2387:T,2388:T,2389:T,2390:T,2391:T,2392:T,2393:T,2394:T,2395:T,2396:T,2397:T,2398:T,2399:T,2400:T,2401:T,2402:T,2403:T,2404:T,2405:T,2406:T,2407:T,2408:T,2409:T,2410:T,2411:T,2412:T,2413:T,2414:T,2415:T,2416:T,2417:T,2418:T,2419:T,2420:T,2421:T,2422:T,2423:T,2424:T,2425:T,2426:T,2427:T,2428:T,2429:T,2430:T,2431:T,2432:T,2433:T,2434:T,2435:T,2436:T,2437:T,2438:T,2439:T,2440:T,2441:T,2442:T,2443:T,2444:T,2445:T,2446:T,2447:T,2448:T,2449:T,2450:T,2451:T,2452:T,2453:T,2454:T,2455:T,2456:T,2457:T,2458:T,2459:T,2460:T,2461:T,2462:T,2463:T,2464:T,2465:T,2466:T,2467:T,2468:T,2469:T,2470:T,2471:T,2472:T,2473:T,2474:T,2475:A,2476:A,2477:T,2478:T,2479:T,2480:T,2481:T,2482:A,2483:A,2484:A,2485:A,2486:A,2487:A,2489:T,2490:T,2491:T,2492:T,2493:T,2494:T,2495:T,2496:T,2497:T,2498:T,2499:T,2500:T,2501:T,2502:T,2504:T,2505:A,2506:A,2507:A,2508:A,2509:A,2510:A,2511:A,2512:A,2513:A,2514:A,2515:A,2516:A,2517:A,2518:A,2519:A,2520:A,2521:A,2522:A,2523:A,2524:A,2525:A,2526:A,2527:A,2528:A,2529:A,2530:A,2531:A,2532:A,2533:A,2534:A,2535:A,2536:A,2537:A,2538:A,2539:A,2540:A,2541:A,2542:A,2543:A,2544:A,2545:A,2546:A,2547:A,2548:A,2549:A,2550:A,2551:A,2552:A,2553:A,2554:A,2555:A,2556:A,2557:A,2558:A,2559:A,2560:A,2561:A,2562:A,2563:A,2564:A,2565:A,2566:A,2567:A,2568:A,2569:A,2570:A,2571:A,2572:A,2573:A,2574:A,2575:A,2576:A,2577:A,2578:A,2579:A,2580:A,2581:A,2582:A,2583:A,2584:A,2585:A,2586:A,2587:A,2588:A,2589:A,2590:A,2591:A,2592:A,2593:A,2594:A,2595:A,2596:A,2597:A,2598:A,2599:A,2600:A,2601:A,2602:A,2603:A,2604:A,2605:A,2606:A,2607:A,2608:A,2609:A,2610:A,2611:A,2612:A,2613:A,2614:A,2615:A,2616:A,2617:A,2618:A,2619:A,2620:A,2621:A,2622:A,2623:A,2624:A,2625:A,2626:A,2627:A,2628:A,2629:A,2630:A,2631:A,2632:A,2633:A,2634:A,2635:A,2636:A,2637:A,2638:A,2639:A,2640:A,2641:A,2642:A,2643:A,2644:A,2645:A,2646:A,2647:A,2648:A,2649:A,2650:A,2651:A,2652:A,2653:A,2654:A,2655:A,2656:A,2657:A,2658:A,2659:A,2660:A,2661:A,2662:A,2663:A,2664:A,2665:A,2666:A,2667:A,2668:A,2669:A,2670:A,2671:A,2672:A,2673:A,2674:A,2675:A,2676:A,2677:A,2678:A,2679:A,2680:A,2681:A,2682:A,2683:A,2684:A,2685:A,2686:A,2687:A,2688:A,2689:A,2690:A,2691:A,2692:A,2693:A,2694:A,2695:A,2696:A,2697:A,2698:A,2699:A,2700:A,2701:A,2702:A,2703:A,2704:A,2705:A,2706:A,2707:A,2708:A,2709:A,2710:A,2711:A,2712:A,2713:A,2714:A,2715:A,2716:A,2717:A,2718:A,2719:A,2720:A,2721:A,2722:A,2723:A,2724:A,2725:A,2726:A,2727:A,2728:A,2729:A,2730:A,2731:A,2732:A,2733:A,2734:A,2735:A,2736:A,2737:A,2738:A,2739:A,2740:A,2741:A,2742:A,2743:A,2744:A,2745:A,2746:A,2747:A,2748:A,2749:A,2750:A,2751:A,2752:A,2753:A,2754:A,2755:A,2756:A,2757:A,2758:A,2759:A,2760:A,2761:A,2762:A,2763:A,2764:A,2765:A,2766:A,2767:A,2768:A,2769:A,2770:A,2771:A,2772:A,2773:A,2774:A,2775:A,2776:A,2777:A,2778:A,2779:A,2780:A,2781:A,2782:A,2783:A,2784:A,2785:A,2786:A,2787:A,2788:A,2789:A,2790:A,2791:A,2792:A,2793:A,2794:A,2795:A,2796:A,2797:A,2798:A,2799:A,2800:A,2801:A,2802:A,2803:A,2804:A,2805:A,2806:A,2807:A,2808:A,2809:A,2810:A,2811:A,2812:A,2813:A,2814:A,2815:A,2816:A,2817:A,2818:A,2819:A,2820:A,2821:A,2822:A,2823:A,2824:A,2825:A,2826:A,2827:A,2828:A,2829:A,2830:A,2831:A,2832:A,2833:A,2834:A,2835:A,2836:A,2837:A,2838:A,2839:A,2840:A,2841:A,2842:A,2843:A,2844:A,2845:A,2846:A,2847:A,2848:A,2849:A,2850:A,2851:A,2852:A,2853:A,2854:A,2855:A,2856:A,2857:A,2858:A,2859:A,2860:A,2861:A,2862:A,2863:A,2864:A,2865:A,2866:A,2867:A,2868:A,2869:A,2870:A,2871:A,2872:A,2873:A,2874:A,2875:A,2876:A,2877:A,2878:A,2879:A,2880:A,2881:A,2882:A,2883:A,2884:A,2885:A,2886:A,2887:A,2888:A,2889:A,2890:A,2891:A,2892:A,2893:A,2894:A,2895:A,2896:A,2897:A,2898:A,2899:A,2900:A,2901:A,2902:A,2903:A,2904:A,2905:A,2906:A,2907:T,2908:A,2909:T,2910:A,2911:T,2913:A,2915:T,2916:T,2917:T,2918:A,2919:T,2920:T,2921:T,2922:T,2923:T,2924:T,2925:T,2926:T,2927:T,2928:T,2929:T,2930:T,2931:T,2932:T,2933:T,2934:T,2935:T,2936:T,2937:T,2938:T,2939:T,2940:T,2941:T,2942:T,2943:T,2944:T,2945:T,2946:T,2947:T,2948:T,2949:T,2950:T,2951:T,2952:T,2953:T,2954:T,2955:T,2956:T,2957:T,2958:T,2959:T,2960:T,2961:T,2962:T,2963:T,2964:T,2965:T,2966:T,2967:T,2968:T,2969:T,2970:T,2971:T,2972:T,2973:T,2974:T,2975:T,2976:T,2977:T,2978:T,2979:T,2980:T,2981:T,2982:T,2983:T,2984:T,2985:T,2986:T,2987:T,2988:T,2989:T,2990:T,2991:T,2992:T,2993:T,2994:T,2995:T,2996:T,2997:T,2998:T,2999:T,3000:T,3001:T,3002:T,3003:T,3004:T,3005:T,3006:T,3007:T,3008:T,3009:T,3010:T,3011:T,3012:T,3013:T,3014:T,3015:T,3016:T,3017:T,3018:T,3019:T,3020:T,3021:T,3022:T,3023:T,3024:T,3025:T,3026:T,3027:T,3028:T,3029:T,3030:T,3031:T,3032:T,3033:T,3034:T,3035:T,3036:T,3037:T,3038:T,3039:T,3040:T,3041:T,3042:T,3043:T,3044:T,3045:T,3046:T,3047:T,3048:T,3049:T,3050:T,3051:T,3052:T,3053:T,3054:T,3055:T,3056:T,3057:T,3058:T,3059:T,3060:T,3061:T,3062:T,3063:T,3064:T,3065:T,3066:T,3067:T,3068:T,3069:T,3070:T,3071:T,3072:T,3073:T,3074:T,3075:T,3076:T,3077:T,3078:T,3079:T,3080:T,3081:T,3082:T,3083:T,3084:T,3085:T,3086:T,3087:T,3088:T,3089:T,3090:T,3091:T,3092:T,3093:T,3094:T,3095:T,3096:T,3097:T,3098:T,3099:T,3100:T,3101:T,3102:T,3103:T,3104:T,3105:T,3106:T,3107:T,3108:T,3109:T,3110:T,3111:T,3112:T,3113:T,3114:T,3115:T,3116:T,3117:T,3118:T,3119:T,3120:T,3121:T,3122:T,3123:T,3124:T,3125:T,3126:T,3127:T,3128:T,3129:T,3130:T,3131:T,3132:T,3133:T,3134:T,3135:T,3136:T,3137:T,3138:T,3139:T,3140:T,3141:T,3142:T,3143:T,3144:T,3145:T,3146:T,3147:T,3148:T,3149:T,3150:T,3151:T,3152:T,3153:T,3154:T,3155:T,3156:T,3157:T,3158:T,3159:T,3160:T,3161:T,3162:T,3163:T,3164:T,3165:T,3166:T,3167:T,3168:T,3169:T,3170:T,3171:T,3172:T,3173:T,3174:T,3175:T,3176:T,3177:T,3178:T,3179:T,3180:T,3181:T,3182:T,3183:T,3184:T,3185:T,3186:T,3187:T,3188:T,3189:T,3190:T,3191:T,3192:T,3193:T,3194:T,3195:T,3196:T,3197:T,3198:T,3199:T,3200:T,3201:T,3202:T,3203:T,3204:T,3205:T,3206:T,3207:T,3208:T,3209:T,3210:T,3211:T,3212:T,3213:T,3214:T,3215:T,3216:T,3217:T,3218:T,3219:T,3220:T,3221:T,3222:A,3223:T,3224:A,3225:A,3226:A,3227:T,3228:T,3229:T,3230:T,3231:T,3232:T,3233:A,3234:A,3235:A,3236:T,3237:A,3238:A,3240:A,3241:T,3242:T,3243:T,3244:T,3245:A,3246:A,3247:A,3248:T,3250:T,3251:T,3252:A,3253:A,3254:A,3255:A,3256:A,3257:A,3258:A,3259:A,3260:A,3261:A,3262:A,3263:A,3264:A,3265:A,3266:A,3267:A,3268:A,3269:A,3270:A,3271:A,3272:A,3273:A,3274:A,3275:A,3276:A,3277:A,3278:A,3279:A,3280:A,3281:A,3282:A,3283:A,3284:A,3285:A,3286:A,3287:A,3288:A,3289:A,3290:A,3291:A,3292:A,3293:A,3294:A,3295:A,3296:A,3297:A,3298:A,3299:A,3300:A,3301:A,3302:A,3303:A,3304:A,3305:A,3306:A,3307:A,3308:A,3309:A,3310:A,3311:A,3312:A,3313:A,3314:A,3315:A,3316:A,3317:A,3318:A,3319:A,3320:A,3321:A,3322:A,3323:A,3324:A,3325:A,3326:A,3327:A,3328:A,3329:A,3330:A,3331:A,3332:A,3333:A,3334:A,3335:A,3336:A,3337:A,3338:A,3339:A,3340:A,3341:A,3342:A,3343:A,3344:A,3345:A,3346:A,3347:A,3348:A,3349:A,3350:A,3351:A,3352:A,3353:A,3354:A,3355:A,3356:A,3357:A,3358:A,3359:A,3360:A,3361:A,3362:A,3363:A,3364:A,3365:A,3366:A,3367:A,3368:A,3369:A,3370:A,3371:A,3372:A,3373:A,3374:A,3375:A,3376:A,3377:A,3378:A,3379:A,3380:A,3381:A,3382:A,3383:A,3384:A,3385:A,3386:A,3387:A,3388:A,3389:A,3390:A,3391:A,3392:A,3393:A,3394:A,3395:A,3396:A,3397:A,3398:A,3399:A,3400:A,3401:A,3402:A,3403:A,3404:A,3405:A,3406:A,3407:A,3408:A,3409:A,3410:A,3411:A,3412:A,3413:A,3414:A,3415:A,3416:A,3417:A,3418:A,3419:A,3420:A,3421:A,3422:A,3423:A,3424:A,3425:A,3426:A,3427:A,3428:A,3429:A,3430:A,3431:A,3432:A,3433:A,3434:A,3435:A,3436:A,3437:A,3438:A,3439:A,3440:A,3441:A,3442:A,3443:A,3444:A,3445:A,3446:A,3447:A,3448:A,3449:A,3450:A,3451:A,3452:A,3453:A,3454:A,3455:A,3456:A,3457:A,3458:A,3459:A,3460:A,3461:A,3462:A,3463:A,3464:A,3465:A,3466:A,3467:A,3468:A,3469:A,3470:A,3471:A,3472:A,3473:A,3474:A,3475:A,3476:A,3477:A,3478:A,3479:A,3480:A,3481:A,3482:A,3483:A,3484:A,3485:A,3486:A,3487:A,3488:A,3489:A,3490:A,3491:A,3492:A,3493:A,3494:A,3495:A,3496:A,3497:A,3498:A,3499:A,3500:A,3501:A,3502:A,3503:A,3504:A,3505:A,3506:A,3507:A,3508:A,3509:A,3510:A,3511:A,3512:A,3513:A,3514:A,3515:A,3516:A,3517:A,3518:A,3519:A,3520:A,3521:A,3522:A,3523:A,3524:A,3525:A,3526:A,3527:A,3528:A,3529:A,3530:A,3531:A,3532:A,3533:A,3534:A,3535:A,3536:A,3537:A,3538:A,3539:A,3540:A,3541:A,3542:A,3543:A,3544:A,3545:A,3546:A,3547:A,3548:A,3549:A,3550:A,3551:A,3552:A,3553:A,3554:A,3555:A,3556:A,3557:A,3558:A,3559:A,3560:A,3561:A,3562:A,3563:A,3564:A,3565:A,3566:A,3567:A,3568:A,3569:A,3570:A,3571:A,3572:A,3573:A,3574:A,3575:A,3576:A,3577:A,3578:A,3579:A,3580:A,3581:A,3582:A,3583:A,3584:A,3585:A,3586:A,3587:A,3588:A,3589:A,3590:A,3591:A,3592:A,3593:A,3594:A,3595:A,3596:A,3597:A,3598:A,3599:A,3600:A,3601:A,3602:A,3603:A,3604:A,3605:A,3606:A,3607:A,3608:A,3609:A,3610:A,3611:A,3612:A,3613:A,3614:A,3615:A,3616:A,3617:A,3618:A,3619:A,3620:A,3621:A,3622:A,3623:A,3624:A,3625:A,3626:A,3627:A,3628:A,3629:A,3630:A,3631:A,3632:A,3633:A,3634:A,3635:A,3636:A,3637:A,3638:A,3639:A,3640:A,3641:A,3642:A,3643:A,3644:A,3645:A,3646:A,3647:A,3648:A,3649:A,3650:A,3651:A,3652:A,3653:A,3654:A,3655:A,3656:A,3657:A,3658:A,3659:A,3660:A,3661:A,3662:A,3663:A,3664:A,3665:A,3666:A,3667:A,3668:A,3669:A,3670:A,3671:A,3672:A,3673:A,3674:A,3675:A,3676:A,3677:A,3678:A,3679:A,3680:A,3681:A,3682:A,3683:A,3684:A,3685:A,3686:A,3687:A,3688:A,3689:A,3690:A,3691:A,3692:A,3693:A,3694:A,3695:A,3696:A,3697:A,3698:A,3699:A,3700:A,3701:A,3702:A,3703:A,3704:A,3705:A,3706:A,3707:A,3708:A,3709:A,3710:A,3711:A,3712:A,3713:A,3714:A,3715:A,3716:A,3717:A,3718:A,3719:A,3720:A,3721:A,3722:A,3723:A,3724:A,3725:A,3726:A,3727:A,3728:A,3729:A,3730:A,3731:A,3732:A,3733:A,3734:A,3735:A,3736:A,3737:A,3738:A,3739:A,3740:A,3741:A,3742:A,3743:A,3744:A,3745:A,3746:A,3747:A,3748:A,3749:A,3750:A,3751:A,3752:A,3753:A,3754:A,3755:A,3756:T,3757:A,3758:A,3759:A,3760:T,3761:A,3762:T,3763:A,3764:T,3765:A,3766:T,3767:T,3768:A,3769:T,3770:T,3771:A,3772:T,3773:A,3774:A,3775:A,3776:A,3777:A,3778:T,3779:A,3780:T,3781:T,3782:T,3783:A,3784:A,3785:A,3786:A,3787:T,3788:T,3789:T,3790:A,3791:A,3792:A,3793:A,3794:T,3795:T,3796:A,3797:A,3798:A,3799:A,3800:A,3801:A,3802:A,3803:A,3804:A,3805:A,3806:A,3807:A,3808:A,3809:A,3810:A,3811:A,3812:T,3813:A,3814:A,3817:A,3818:A,3819:A,3820:T,3821:A,3824:A,3825:A,3826:A,3827:A,3830:A,3831:A,3832:T,3833:T,3835:A,3836:T,3837:A,3838:A,3839:T,3840:A,3841:A,3842:T,3844:A,3846:A,3847:A,3848:T,3849:T,3850:T,3851:T,3852:A,3853:A,3854:A,3855:A,3856:A,3857:A,3858:A,3859:T,3860:A,3861:A,3862:A,3863:A,3864:T,3865:A,3866:A,3867:A,3868:T,3869:A,3870:A,3871:A,3872:A,3873:A,3874:A,3875:A,3876:A,3877:A,3878:A,3879:A,3880:A,3881:A,3882:A,3883:A,3884:T,3885:A,3886:A,3887:A,3888:A,3889:T,3890:A,3891:A,3892:A,3893:A,3894:A,3895:A,3896:A,3897:A,3898:A,3899:A,3900:A,3901:A,3902:A,3903:A,3904:A,3905:A,3906:A,3907:A,3908:A,3909:A,3910:A,3911:A,3912:A,3913:A,3914:A,3915:A,3916:A,3917:A,3918:A,3919:A,3920:A,3921:A,3922:A,3923:A,3924:A,3925:A,3926:A,3927:A,3928:A,3929:A,3930:A,3931:A,3932:A,3933:A,3934:A,3935:A,3936:A,3937:A,3938:A,3939:A,3940:A,3941:A,3942:A,3943:A,3944:A,3945:A,3946:A,3947:A,3948:A,3949:A,3950:A,3951:A,3952:A,3953:T,3954:A,3955:A,3956:A,3957:A,3958:A,3959:A,3960:T,3961:A,3962:T,3963:T,3964:T,3965:T,3966:T,3967:T,3968:A,3969:A,3970:A,3971:A,3972:A,3973:A,3974:A,3975:A,3976:A,3977:A,3978:T,3979:A,3980:A,3981:A,3982:A,3983:A,3984:A,3985:A,3986:A,3987:A,3988:A,3989:A,3990:A,3991:A,3992:A,3993:A,3994:A,3995:A,3996:A,3997:A,3998:A,3999:A,4000:A,4001:A,4002:A,4003:A,4004:A,4005:A,4006:A,4007:A,4008:A,4009:A,4010:A,4011:A,4012:A,4013:A,4014:A,4015:A,4016:A,4017:A,4018:A,4019:A,4020:A,4021:A,4022:A,4023:A,4024:T,4025:T,4026:T,4027:T,4028:T,4029:A,4030:A,4031:A,4032:A,4033:A,4034:A,4035:A,4036:A,4037:A,4038:A,4039:A,4040:T,4041:A,4042:A,4043:A,4044:A,4045:A,4046:A,4047:A,4048:A,4049:A,4050:A,4051:A,4052:A,4053:A,4054:A,4055:A,4056:A,4057:A,4058:A,4059:A,4060:A,4061:A,4062:A,4063:A,4064:A,4065:A,4066:A,4067:A,4068:A,4069:A,4070:A,4071:A,4072:A,4073:A,4074:A,4075:A,4076:A,4077:A,4078:A,4079:A,4080:A,4081:A,4082:A,4083:A,4084:A,4085:A,4086:A,4087:A,4088:A,4089:A,4090:A,4091:A,4092:A,4093:A,4094:A,4095:A,4096:A,4097:A,4098:A,4099:A,4100:A,4101:A,4102:A,4103:A,4104:A,4105:A,4106:A,4107:A,4108:A,4109:A,4110:A,4111:A,4112:A,4113:A,4114:A,4115:A,4116:A,4117:A,4118:A,4119:A,4120:A,4121:A,4122:A,4123:A,4124:A,4125:A,4126:A,4127:A,4128:A,4129:A,4130:A,4131:A,4132:A,4133:A,4134:A,4135:A,4136:A,4137:A,4138:A,4139:A,4140:A,4141:A,4142:A,4143:A,4144:A,4145:A,4146:A,4147:A,4148:A,4149:A,4150:A,4151:A,4152:A,4153:A,4154:A,4155:A,4156:A,4157:A,4158:A,4159:A,4160:T,4161:A,4162:A,4163:A,4164:A,4165:A,4166:A,4167:A,4168:A,4169:A,4170:A,4171:A,4172:A,4173:A,4174:A,4175:A,4176:A,4177:A,4178:A,4179:A,4180:A,4181:A,4182:A,4183:A,4184:A,4185:A,4186:A,4187:A,4188:A,4189:A,4190:A,4191:A,4192:A,4193:A,4194:A,4195:A,4196:A,4197:A,4198:A,4199:A,4200:A,4201:A,4202:A,4203:A,4204:A,4205:A,4206:A,4207:A,4208:A,4209:A,4210:A,4211:A,4212:A,4213:A,4214:A,4215:A,4216:A,4217:A,4218:A,4219:A,4220:A,4221:A,4222:A,4223:A,4224:A,4225:A,4226:A,4227:A,4228:A,4229:A,4230:A,4231:A,4232:A,4233:A,4234:A,4235:A,4236:A,4237:A,4238:A,4239:A,4240:A,4241:A,4242:A,4243:A,4244:A,4245:A,4246:A,4247:A,4248:A,4249:A,4250:A,4251:A,4252:A,4253:A,4254:A,4255:A,4256:A,4257:A,4258:A,4259:A,4260:A,4261:A,4262:A,4263:A,4264:A,4265:A,4266:A,4267:A,4268:A,4269:A,4270:A,4271:A,4272:A,4273:A,4274:A,4275:A,4276:A,4277:A,4278:A,4279:A,4280:A,4281:A,4282:A,4283:A,4284:A,4285:A,4286:A,4287:A,4288:A,4289:A,4290:A,4291:A,4292:A,4293:A,4294:A,4295:A,4296:A,4297:A,4298:A,4299:A,4300:A,4301:A,4302:A,4303:A,4304:A,4305:A,4306:A,4307:A,4308:A,4309:A,4310:A,4311:A,4312:A,4313:A,4314:A,4315:A,4316:A,4317:A,4318:A,4319:A,4320:A,4321:A,4322:A,4323:A,4324:A,4325:A,4326:A,4327:A,4328:A,4329:A,4330:A,4331:A,4332:A,4333:A,4334:A,4335:A,4336:A,4337:A,4338:A,4339:A,4340:A,4341:A,4342:A,4343:A,4344:A,4345:A,4346:A,4347:A,4348:A,4349:A,4350:A,4351:A,4352:A,4353:A,4354:A,4355:A,4356:A,4357:A,4358:A,4359:A,4360:A,4361:A,4362:A,4363:A,4364:A,4365:A,4366:A,4367:A,4368:A,4369:A,4370:A,4371:A,4372:A,4373:A,4374:A,4375:A,4376:A,4377:A,4378:A,4379:A,4380:A,4381:A,4382:A,4383:A,4384:A,4385:A,4386:A,4387:A,4388:A,4389:A,4390:A,4391:A,4392:A,4393:A,4394:A,4395:A,4396:A,4397:A,4398:A,4399:A,4400:A,4401:A,4402:A,4403:A,4404:A,4405:A,4406:A,4407:A,4408:A,4409:A,4410:A,4411:A,4412:A,4413:A,4414:A,4415:A,4416:A,4417:A,4418:A,4419:A,4420:A,4421:A,4422:A,4423:A,4424:A,4425:A,4426:A,4427:A,4428:A,4429:A,4430:A,4431:A,4432:A,4433:A,4434:A,4435:A,4436:A,4437:A,4438:A,4439:A,4440:A,4441:A,4442:A,4443:A,4444:A,4445:A,4446:A,4447:A,4448:A,4449:A,4450:A,4451:A,4452:A,4453:A,4454:A,4455:A,4456:A,4457:A,4458:A,4459:A,4460:A,4461:A,4462:A,4463:A,4464:A,4465:A,4466:A,4467:A,4468:A,4469:A,4470:A,4471:A,4472:A,4473:A,4474:A,4475:A,4476:A,4477:A,4478:A,4479:A,4480:A,4481:A,4482:A,4483:A,4484:A,4485:A,4486:A,4487:A,4488:A,4489:A,4490:A,4491:A,4492:A,4493:A,4494:A,4495:A,4496:A,4497:A,4498:A,4499:A,4500:A,4501:A,4502:A,4503:A,4504:A,4505:A,4506:A,4507:A,4508:A,4509:A,4510:A,4511:A,4512:A,4513:A,4514:A,4515:A,4516:A,4517:A,4518:A,4519:A,4520:A,4521:A,4522:A,4523:A,4524:A,4525:A,4526:A,4527:A,4528:A,4529:A,4530:A,4531:A,4532:A,4533:A,4534:A,4535:A,4536:A,4537:A,4538:A,4539:A,4540:A,4541:A,4542:A,4543:A,4544:A,4545:A,4546:A,4547:A,4548:A,4549:A,4550:A,4551:A,4552:A,4553:A,4555:A,4556:A,4557:A,4558:A,4559:A,4560:A,4561:A,4562:A,4563:A,4564:A,4565:A,4566:A,4567:A,4568:A,4569:A,4570:A,4571:A,4572:A,4573:A,4574:A,4575:A,4576:A,4577:A,4578:A,4579:A,4580:A,4581:A,4582:A,4583:A,4584:A,4585:A,4586:A,4587:A,4588:A,4589:A,4590:A,4591:A,4592:A,4593:A,4594:A,4595:A,4596:A,4597:A,4598:A,4599:A,4600:A,4601:A,4602:A,4603:A,4604:A,4605:A,4606:A,4607:A,4608:A,4609:A,4610:A,4611:A,4612:A,4613:A,4614:A,4615:A,4616:A,4617:A,4618:A,4619:A,4620:A,4621:A,4622:A,4623:A,4624:A,4625:A,4626:A,4627:A,4628:A,4629:A,4630:A,4631:A,4632:A,4633:A,4634:A,4635:A,4636:A,4637:A,4638:A,4639:A,4640:A,4641:A,4642:A,4643:A,4644:A,4645:A,4646:A,4647:A,4648:A,4649:A,4650:A,4651:A,4652:A,4653:A,4654:A,4655:A,4656:A,4657:A,4658:A,4659:A,4660:A,4661:A,4662:A,4663:A,4664:A,4665:A,4666:A,4667:A,4668:A,4669:A,4670:A,4671:A,4672:A,4673:A,4674:A,4675:A,4676:A,4677:A,4678:A,4679:A,4680:A,4681:A,4682:A,4683:A,4684:A,4685:A,4686:A,4687:A,4688:A,4689:A,4690:A,4691:A,4692:A,4693:A,4694:A,4695:A,4696:A,4697:A,4698:A,4699:A,4700:A,4701:A,4702:A,4703:A,4704:A,4705:A,4706:A,4707:A,4708:A,4709:A,4710:A,4711:A,4712:A,4713:A,4714:A,4715:A,4716:A,4717:A,4718:A,4719:A,4720:A,4721:A,4722:A,4723:A,4724:A,4725:A,4726:A,4727:A,4728:A,4729:A,4730:A,4731:A,4732:A,4733:A,4734:A,4735:A,4736:A,4737:A,4738:A,4739:A,4740:A,4741:A,4742:A,4743:A,4744:A,4745:A,4746:A,4747:A,4748:A,4749:A,4750:A,4751:A,4752:A,4753:A,4754:A,4755:A,4756:A,4757:A,4758:A,4759:A,4760:A,4761:A,4762:A,4763:A,4764:A,4765:A,4766:A,4767:A,4768:A,4769:A,4770:A,4771:A,4772:A,4773:A,4774:A,4775:A,4776:A,4777:A,4778:A,4779:A,4780:A,4781:A,4782:A,4783:A,4784:A,4785:A,4786:A,4787:A,4788:A,4789:A,4790:A,4791:A,4792:A,4793:A,4794:A,4795:A,4796:A,4797:A,4798:A,4799:A,4800:A,4801:A,4802:A,4803:A,4804:A,4805:A,4806:A,4807:A,4808:A,4809:A,4810:A,4811:A,4812:A,4813:A,4814:A,4815:A,4816:A,4817:A,4818:A,4819:A,4820:A,4821:A,4822:A,4823:A,4824:A,4825:A,4826:A,4827:A,4828:A,4829:A,4830:A,4831:A,4832:A,4833:A,4834:A,4835:A,4836:A,4837:A,4838:A,4839:A,4840:A,4841:A,4842:A,4843:A,4844:A,4845:A,4846:A,4847:A,4848:A,4849:A,4850:A,4851:A,4852:A,4853:A,4854:A,4855:A,4856:A,4857:A,4858:A,4859:A,4860:A,4861:A,4862:A,4863:A,4864:A,4865:A,4866:A,4867:A,4868:A,4869:A,4870:A,4871:A,4872:A,4873:A,4874:A,4875:A,4876:A,4877:A,4878:A,4879:A,4880:A,4881:A,4882:A,4883:A,4884:A,4885:A,4886:A,4887:A,4888:A,4889:A,4890:A,4891:A,4892:A,4894:A,9994:R,9995:R,9996:R,9997:R,9998:R,9999:R,10007:A,10009:R,4000001:R,8888888:R"
|
|
20
20
|
},
|
|
21
21
|
"icann": {
|
|
22
22
|
"sourceUrl": "https://www.icann.org/compliance/notices",
|
|
23
|
-
"reviewedAt": "2026-09-
|
|
23
|
+
"reviewedAt": "2026-09-07T07:58:04.908Z",
|
|
24
24
|
"catalogueYear": 2026,
|
|
25
25
|
"normalizedSha256": "bea68a7df02a4ae9cc7b107be8274b0a4ded0ec3964106d1c42c8d0304eef23a",
|
|
26
26
|
"notices": [
|