@d-zero/beholder 4.2.3 → 5.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +29 -0
- package/dist/classify-image-scan-error.d.ts +20 -0
- package/dist/classify-image-scan-error.js +41 -0
- package/dist/image-scan-code.d.ts +33 -0
- package/dist/image-scan-code.js +31 -0
- package/dist/index.d.ts +3 -1
- package/dist/index.js +1 -0
- package/dist/scraper.js +29 -3
- package/dist/types.d.ts +27 -0
- package/package.json +4 -3
- package/src/classify-image-scan-error.spec.ts +34 -0
- package/src/classify-image-scan-error.ts +46 -0
- package/src/image-scan-code.ts +34 -0
- package/src/index.ts +3 -0
- package/src/scraper.ts +36 -4
- package/src/types.ts +29 -0
- package/tsconfig.tsbuildinfo +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,35 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
# [5.0.0](https://github.com/d-zero-dev/tools/compare/@d-zero/beholder@4.2.3...@d-zero/beholder@5.0.0) (2026-09-10)
|
|
7
|
+
|
|
8
|
+
- feat(beholder)!: report per-viewport image-scan outcome in PageData ([1e69228](https://github.com/d-zero-dev/tools/commit/1e692285f1ef3e0a8a89db695d635c7a2f88ba7c))
|
|
9
|
+
|
|
10
|
+
### BREAKING CHANGES
|
|
11
|
+
|
|
12
|
+
- PageData.imageScan is a new required field ({ desktop,
|
|
13
|
+
mobile }: ImageScanCode | null per viewport), following the same
|
|
14
|
+
precedent as the 4.0.0 addition of mainContents/scrollHeight. Anyone
|
|
15
|
+
constructing a PageData object directly (rather than only reading
|
|
16
|
+
scrapeStart()'s result) must add this field.
|
|
17
|
+
|
|
18
|
+
Scraper#fetchImages now classifies each device preset's outcome via the
|
|
19
|
+
new IMAGE_SCAN_CODE vocabulary (0=ok, 1=degraded, 2=nav-unsettled,
|
|
20
|
+
3=frame-lost, 4=scroll-height-exceeded, 255=unknown) instead of only
|
|
21
|
+
emitting a free-text changePhase message: success records ok/degraded
|
|
22
|
+
based on @d-zero/puppeteer-page-scan's new settled result, a
|
|
23
|
+
scrollHeight-limit skip records scroll-height-exceeded, and a caught
|
|
24
|
+
exception is classified by the new classifyImageScanError (reusing
|
|
25
|
+
puppeteer-scroll's isTransientFrameError, plus "Not attached to an
|
|
26
|
+
active page"/"Target closed" for reload/goto-specific failures).
|
|
27
|
+
|
|
28
|
+
#fetchImages opts into @d-zero/puppeteer-page-scan's new
|
|
29
|
+
continueOnDegradedNetwork so a page whose network never settles still
|
|
30
|
+
yields images (flagged degraded) instead of losing that viewport
|
|
31
|
+
outright.
|
|
32
|
+
|
|
33
|
+
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
|
|
34
|
+
|
|
6
35
|
## [4.2.3](https://github.com/d-zero-dev/tools/compare/@d-zero/beholder@4.2.2...@d-zero/beholder@4.2.3) (2026-08-14)
|
|
7
36
|
|
|
8
37
|
### Bug Fixes
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { type ImageScanCode } from './image-scan-code.js';
|
|
2
|
+
/**
|
|
3
|
+
* Classifies an error caught in `Scraper#fetchImages`'s per-device try/catch
|
|
4
|
+
* into an {@link ImageScanCode}, so the caught-exception path and the
|
|
5
|
+
* successful-scan path (`settled` / `scrolled`) can be recorded with the
|
|
6
|
+
* same small integer vocabulary for persistence.
|
|
7
|
+
* @param error - The value caught from the per-device `beforePageScan` call.
|
|
8
|
+
* @returns {@link IMAGE_SCAN_CODE.NAV_UNSETTLED} for a `NavigationUnsettledError`,
|
|
9
|
+
* {@link IMAGE_SCAN_CODE.FRAME_LOST} for a known frame/session-loss error,
|
|
10
|
+
* otherwise {@link IMAGE_SCAN_CODE.UNKNOWN}.
|
|
11
|
+
* @example
|
|
12
|
+
* ```ts
|
|
13
|
+
* try {
|
|
14
|
+
* await beforePageScan(page, url, opts);
|
|
15
|
+
* } catch (error) {
|
|
16
|
+
* imageScan[key] = classifyImageScanError(error);
|
|
17
|
+
* }
|
|
18
|
+
* ```
|
|
19
|
+
*/
|
|
20
|
+
export declare function classifyImageScanError(error: unknown): ImageScanCode;
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { NavigationUnsettledError } from '@d-zero/puppeteer-page-scan';
|
|
2
|
+
import { isTransientFrameError } from '@d-zero/puppeteer-scroll';
|
|
3
|
+
import { IMAGE_SCAN_CODE } from './image-scan-code.js';
|
|
4
|
+
/**
|
|
5
|
+
* Matches session/target-loss error messages observed in `#fetchImages`'s
|
|
6
|
+
* per-device retry that `isTransientFrameError` (`@d-zero/puppeteer-scroll`)
|
|
7
|
+
* does not already cover — specific `reload`/`goto` failures rather than
|
|
8
|
+
* `page.evaluate` failures. Deliberately does NOT match a bare `Protocol
|
|
9
|
+
* error` prefix: that wraps many unrelated CDP failures (e.g. `Protocol
|
|
10
|
+
* error (Runtime.evaluate): stack overflow`) that are not frame/session
|
|
11
|
+
* loss and should fall through to `UNKNOWN` for accurate diagnosis.
|
|
12
|
+
*/
|
|
13
|
+
const FRAME_LOST_PATTERN = /Not attached to an active page|Target closed/i;
|
|
14
|
+
/**
|
|
15
|
+
* Classifies an error caught in `Scraper#fetchImages`'s per-device try/catch
|
|
16
|
+
* into an {@link ImageScanCode}, so the caught-exception path and the
|
|
17
|
+
* successful-scan path (`settled` / `scrolled`) can be recorded with the
|
|
18
|
+
* same small integer vocabulary for persistence.
|
|
19
|
+
* @param error - The value caught from the per-device `beforePageScan` call.
|
|
20
|
+
* @returns {@link IMAGE_SCAN_CODE.NAV_UNSETTLED} for a `NavigationUnsettledError`,
|
|
21
|
+
* {@link IMAGE_SCAN_CODE.FRAME_LOST} for a known frame/session-loss error,
|
|
22
|
+
* otherwise {@link IMAGE_SCAN_CODE.UNKNOWN}.
|
|
23
|
+
* @example
|
|
24
|
+
* ```ts
|
|
25
|
+
* try {
|
|
26
|
+
* await beforePageScan(page, url, opts);
|
|
27
|
+
* } catch (error) {
|
|
28
|
+
* imageScan[key] = classifyImageScanError(error);
|
|
29
|
+
* }
|
|
30
|
+
* ```
|
|
31
|
+
*/
|
|
32
|
+
export function classifyImageScanError(error) {
|
|
33
|
+
if (error instanceof NavigationUnsettledError) {
|
|
34
|
+
return IMAGE_SCAN_CODE.NAV_UNSETTLED;
|
|
35
|
+
}
|
|
36
|
+
if (isTransientFrameError(error) ||
|
|
37
|
+
(error instanceof Error && FRAME_LOST_PATTERN.test(error.message))) {
|
|
38
|
+
return IMAGE_SCAN_CODE.FRAME_LOST;
|
|
39
|
+
}
|
|
40
|
+
return IMAGE_SCAN_CODE.UNKNOWN;
|
|
41
|
+
}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Numeric outcome codes for a single device-preset image scan performed by
|
|
3
|
+
* `Scraper#fetchImages`. Small integers (fit a `Uint8`) so callers that
|
|
4
|
+
* persist per-page scan results to a database column can use an integer
|
|
5
|
+
* rather than a string enum. A `null` value (not part of this const) means
|
|
6
|
+
* the device preset was never attempted — non-HTML/external/non-HTTP pages,
|
|
7
|
+
* or `captureImages: false`.
|
|
8
|
+
* @example
|
|
9
|
+
* ```ts
|
|
10
|
+
* import { IMAGE_SCAN_CODE } from '@d-zero/beholder';
|
|
11
|
+
*
|
|
12
|
+
* db.insert({ imageScanMobile: pageData.imageScan.mobile ?? null });
|
|
13
|
+
* if (pageData.imageScan.mobile === IMAGE_SCAN_CODE.SCROLL_HEIGHT_EXCEEDED) {
|
|
14
|
+
* // mobile images were skipped because scrollHeight exceeded the limit
|
|
15
|
+
* }
|
|
16
|
+
* ```
|
|
17
|
+
*/
|
|
18
|
+
export declare const IMAGE_SCAN_CODE: {
|
|
19
|
+
/** `beforePageScan` reached `settled: 'idle'`; images extracted normally. */
|
|
20
|
+
readonly OK: 0;
|
|
21
|
+
/** `beforePageScan` reached `settled: 'degraded'`; images extracted, but navigation never went network-idle so the result carries lower confidence. */
|
|
22
|
+
readonly DEGRADED: 1;
|
|
23
|
+
/** Navigation never settled and the post-timeout frame/URL/readyState check also failed (`NavigationUnsettledError`). */
|
|
24
|
+
readonly NAV_UNSETTLED: 2;
|
|
25
|
+
/** The main frame or session was lost mid-scan (detached Frame, session closed, execution context destroyed, or "Not attached to an active page"). */
|
|
26
|
+
readonly FRAME_LOST: 3;
|
|
27
|
+
/** `document.body.scrollHeight` exceeded the scan's `maxScrollHeight` guard; scroll and extraction were skipped. */
|
|
28
|
+
readonly SCROLL_HEIGHT_EXCEEDED: 4;
|
|
29
|
+
/** An error occurred that does not match any of the categories above. */
|
|
30
|
+
readonly UNKNOWN: 255;
|
|
31
|
+
};
|
|
32
|
+
/** Numeric outcome code for one device preset's image scan. See {@link IMAGE_SCAN_CODE}. */
|
|
33
|
+
export type ImageScanCode = (typeof IMAGE_SCAN_CODE)[keyof typeof IMAGE_SCAN_CODE];
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Numeric outcome codes for a single device-preset image scan performed by
|
|
3
|
+
* `Scraper#fetchImages`. Small integers (fit a `Uint8`) so callers that
|
|
4
|
+
* persist per-page scan results to a database column can use an integer
|
|
5
|
+
* rather than a string enum. A `null` value (not part of this const) means
|
|
6
|
+
* the device preset was never attempted — non-HTML/external/non-HTTP pages,
|
|
7
|
+
* or `captureImages: false`.
|
|
8
|
+
* @example
|
|
9
|
+
* ```ts
|
|
10
|
+
* import { IMAGE_SCAN_CODE } from '@d-zero/beholder';
|
|
11
|
+
*
|
|
12
|
+
* db.insert({ imageScanMobile: pageData.imageScan.mobile ?? null });
|
|
13
|
+
* if (pageData.imageScan.mobile === IMAGE_SCAN_CODE.SCROLL_HEIGHT_EXCEEDED) {
|
|
14
|
+
* // mobile images were skipped because scrollHeight exceeded the limit
|
|
15
|
+
* }
|
|
16
|
+
* ```
|
|
17
|
+
*/
|
|
18
|
+
export const IMAGE_SCAN_CODE = {
|
|
19
|
+
/** `beforePageScan` reached `settled: 'idle'`; images extracted normally. */
|
|
20
|
+
OK: 0,
|
|
21
|
+
/** `beforePageScan` reached `settled: 'degraded'`; images extracted, but navigation never went network-idle so the result carries lower confidence. */
|
|
22
|
+
DEGRADED: 1,
|
|
23
|
+
/** Navigation never settled and the post-timeout frame/URL/readyState check also failed (`NavigationUnsettledError`). */
|
|
24
|
+
NAV_UNSETTLED: 2,
|
|
25
|
+
/** The main frame or session was lost mid-scan (detached Frame, session closed, execution context destroyed, or "Not attached to an active page"). */
|
|
26
|
+
FRAME_LOST: 3,
|
|
27
|
+
/** `document.body.scrollHeight` exceeded the scan's `maxScrollHeight` guard; scroll and extraction were skipped. */
|
|
28
|
+
SCROLL_HEIGHT_EXCEEDED: 4,
|
|
29
|
+
/** An error occurred that does not match any of the categories above. */
|
|
30
|
+
UNKNOWN: 255,
|
|
31
|
+
};
|
package/dist/index.d.ts
CHANGED
|
@@ -19,6 +19,8 @@ export { detectCompress } from '@d-zero/shared/detect-compress';
|
|
|
19
19
|
export type { CompressType } from '@d-zero/shared/detect-compress';
|
|
20
20
|
export { detectCDN } from '@d-zero/shared/detect-cdn';
|
|
21
21
|
export type { CDNType } from '@d-zero/shared/detect-cdn';
|
|
22
|
+
export { IMAGE_SCAN_CODE } from './image-scan-code.js';
|
|
23
|
+
export type { ImageScanCode } from './image-scan-code.js';
|
|
22
24
|
export type { ScrapeResult, ResourceEntry, ConsoleLogEntry, PageData } from './types.js';
|
|
23
25
|
export type { ScraperOptions, ChangePhaseEvent, ScraperEventTypes } from './types.js';
|
|
24
|
-
export type { Resource, AnchorData, Meta, ImageElement, SkippedPageData, NetworkLog, ScrollHeightData, MainContentsData, MainContentsMainTag, MainContentsHeading, MainContentsImage, MainContentsTable, MainContentsButton, MainContentsIframe, MainContentsVideo, MainContentsAudio, MainContentsCanvas, OpenGraphMeta, OgArticleMeta, OgBookMeta, OgProfileMeta, OgMusicMeta, OgVideoNsMeta, TwitterMeta, FbMeta, FediverseMeta, AppleMeta, MsApplicationMeta, VerificationMeta, GoogleMeta, GeoMeta, CitationMeta, RdfaMeta, MicrodataMeta, AmpMeta, LegacyMeta, MobileMeta, MicroformatsMeta, PinterestMeta, SlackMeta, LinkedInMeta, ExperimentalMeta, WikiMeta, LinkMeta, LinkEntry, JsonLdEntry, OthersBucket, ScriptEntry, IframeEntry, TagsMeta, TagDetail, TagEntry, TagSource, ViewportMeta, RobotsMeta, ReferrerMeta, FormatDetectionMeta, HttpEquivMeta, HttpEquivRefresh, RawHeadEntry, } from './types.js';
|
|
26
|
+
export type { Resource, AnchorData, Meta, ImageElement, SkippedPageData, NetworkLog, ScrollHeightData, ImageScanData, MainContentsData, MainContentsMainTag, MainContentsHeading, MainContentsImage, MainContentsTable, MainContentsButton, MainContentsIframe, MainContentsVideo, MainContentsAudio, MainContentsCanvas, OpenGraphMeta, OgArticleMeta, OgBookMeta, OgProfileMeta, OgMusicMeta, OgVideoNsMeta, TwitterMeta, FbMeta, FediverseMeta, AppleMeta, MsApplicationMeta, VerificationMeta, GoogleMeta, GeoMeta, CitationMeta, RdfaMeta, MicrodataMeta, AmpMeta, LegacyMeta, MobileMeta, MicroformatsMeta, PinterestMeta, SlackMeta, LinkedInMeta, ExperimentalMeta, WikiMeta, LinkMeta, LinkEntry, JsonLdEntry, OthersBucket, ScriptEntry, IframeEntry, TagsMeta, TagDetail, TagEntry, TagSource, ViewportMeta, RobotsMeta, ReferrerMeta, FormatDetectionMeta, HttpEquivMeta, HttpEquivRefresh, RawHeadEntry, } from './types.js';
|
package/dist/index.js
CHANGED
|
@@ -16,3 +16,4 @@ export { extractMetaFromDocument } from './extract-meta.js';
|
|
|
16
16
|
export { MAIN_CONTENT_FALLBACK_SELECTORS, MAIN_CONTENT_SELECTORS, } from './main-content-selectors.js';
|
|
17
17
|
export { detectCompress } from '@d-zero/shared/detect-compress';
|
|
18
18
|
export { detectCDN } from '@d-zero/shared/detect-cdn';
|
|
19
|
+
export { IMAGE_SCAN_CODE } from './image-scan-code.js';
|
package/dist/scraper.js
CHANGED
|
@@ -41,9 +41,11 @@ import { detectCDN } from '@d-zero/shared/detect-cdn';
|
|
|
41
41
|
import { detectCompress } from '@d-zero/shared/detect-compress';
|
|
42
42
|
import { retry as retryable } from '@d-zero/shared/retry';
|
|
43
43
|
import { TypedAwaitEventEmitter as EventEmitter } from '@d-zero/shared/typed-await-event-emitter';
|
|
44
|
+
import { classifyImageScanError } from './classify-image-scan-error.js';
|
|
44
45
|
import { resourceLog, scraperLog } from './debug.js';
|
|
45
46
|
import { DEFAULT_DOM_EVALUATION_TIMEOUT, getAnchorList, getImageList, getMeta, } from './dom-evaluation.js';
|
|
46
47
|
import { getMainContents } from './get-main-contents.js';
|
|
48
|
+
import { IMAGE_SCAN_CODE } from './image-scan-code.js';
|
|
47
49
|
import { isError } from './is-error.js';
|
|
48
50
|
import { isHtmlContentType } from './is-html-content-type.js';
|
|
49
51
|
import { keywordCheck } from './keyword-check.js';
|
|
@@ -67,6 +69,8 @@ const rLog = resourceLog.extend(pid);
|
|
|
67
69
|
* normal responsive sites complete well within the 20 min retry budget.
|
|
68
70
|
*/
|
|
69
71
|
const MAX_SCROLL_HEIGHT = 1_000_000;
|
|
72
|
+
/** Shared "not attempted" value for `PageData.imageScan`, reused everywhere a page is returned without an image scan (non-HTML/external/non-HTTP, or the `@retryable` fallback). */
|
|
73
|
+
const EMPTY_IMAGE_SCAN = { desktop: null, mobile: null };
|
|
70
74
|
let Scraper = (() => {
|
|
71
75
|
let _classSuper = EventEmitter;
|
|
72
76
|
let _instanceExtraInitializers = [];
|
|
@@ -103,6 +107,7 @@ let Scraper = (() => {
|
|
|
103
107
|
fallback: {
|
|
104
108
|
imageList: [],
|
|
105
109
|
scrollHeight: { desktop: null, mobile: null },
|
|
110
|
+
imageScan: EMPTY_IMAGE_SCAN,
|
|
106
111
|
},
|
|
107
112
|
onWait(determinedInterval, retryCount, methodName, error) {
|
|
108
113
|
void this.emit('changePhase', {
|
|
@@ -323,6 +328,7 @@ let Scraper = (() => {
|
|
|
323
328
|
html: '',
|
|
324
329
|
mainContents: null,
|
|
325
330
|
scrollHeight: null,
|
|
331
|
+
imageScan: EMPTY_IMAGE_SCAN,
|
|
326
332
|
isSkipped: false,
|
|
327
333
|
};
|
|
328
334
|
}
|
|
@@ -369,6 +375,7 @@ let Scraper = (() => {
|
|
|
369
375
|
html,
|
|
370
376
|
mainContents: null,
|
|
371
377
|
scrollHeight: null,
|
|
378
|
+
imageScan: EMPTY_IMAGE_SCAN,
|
|
372
379
|
isSkipped: false,
|
|
373
380
|
};
|
|
374
381
|
}
|
|
@@ -416,6 +423,7 @@ let Scraper = (() => {
|
|
|
416
423
|
}, domEvaluationTimeout);
|
|
417
424
|
let imageList = [];
|
|
418
425
|
let scrollHeight = null;
|
|
426
|
+
let imageScan = EMPTY_IMAGE_SCAN;
|
|
419
427
|
if (captureImages) {
|
|
420
428
|
void this.emit('changePhase', {
|
|
421
429
|
pid: process.pid,
|
|
@@ -427,6 +435,7 @@ let Scraper = (() => {
|
|
|
427
435
|
const fetched = await this.#fetchImages(page, url.withoutHashAndAuth, isExternal, imageLoadTimeout, domEvaluationTimeout);
|
|
428
436
|
imageList = fetched.imageList;
|
|
429
437
|
scrollHeight = fetched.scrollHeight;
|
|
438
|
+
imageScan = fetched.imageScan;
|
|
430
439
|
}
|
|
431
440
|
else {
|
|
432
441
|
scrollHeight = await measureScrollHeight(page);
|
|
@@ -447,6 +456,7 @@ let Scraper = (() => {
|
|
|
447
456
|
html,
|
|
448
457
|
mainContents,
|
|
449
458
|
scrollHeight,
|
|
459
|
+
imageScan,
|
|
450
460
|
isSkipped: false,
|
|
451
461
|
};
|
|
452
462
|
}
|
|
@@ -462,6 +472,7 @@ let Scraper = (() => {
|
|
|
462
472
|
];
|
|
463
473
|
const imageList = [];
|
|
464
474
|
const scrollHeight = { desktop: null, mobile: null };
|
|
475
|
+
const imageScan = { desktop: null, mobile: null };
|
|
465
476
|
for (const { key, preset } of devices) {
|
|
466
477
|
const scrollKey = key === 'desktop-compact' ? 'desktop' : 'mobile';
|
|
467
478
|
try {
|
|
@@ -479,9 +490,15 @@ let Scraper = (() => {
|
|
|
479
490
|
listener,
|
|
480
491
|
timeout: 5000,
|
|
481
492
|
maxScrollHeight: MAX_SCROLL_HEIGHT,
|
|
493
|
+
// This per-device try/catch already isolates and classifies
|
|
494
|
+
// failures (see `classifyImageScanError`), so a page whose
|
|
495
|
+
// network never settles should degrade gracefully here
|
|
496
|
+
// rather than losing the whole device preset's images.
|
|
497
|
+
continueOnDegradedNetwork: true,
|
|
482
498
|
});
|
|
483
499
|
scrollHeight[scrollKey] = scanResult.scrollHeight;
|
|
484
500
|
if (!scanResult.scrolled) {
|
|
501
|
+
imageScan[scrollKey] = IMAGE_SCAN_CODE.SCROLL_HEIGHT_EXCEEDED;
|
|
485
502
|
void this.emit('changePhase', {
|
|
486
503
|
pid: process.pid,
|
|
487
504
|
name: 'retryExhausted',
|
|
@@ -512,10 +529,13 @@ let Scraper = (() => {
|
|
|
512
529
|
});
|
|
513
530
|
const images = await getImageList(page, preset.width, domEvaluationTimeout);
|
|
514
531
|
imageList.push(...images);
|
|
532
|
+
imageScan[scrollKey] =
|
|
533
|
+
scanResult.settled === 'idle' ? IMAGE_SCAN_CODE.OK : IMAGE_SCAN_CODE.DEGRADED;
|
|
515
534
|
}
|
|
516
535
|
catch (error) {
|
|
517
536
|
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
518
537
|
log('Error(FETCH_IMAGES/%s): %s', key, errorMessage);
|
|
538
|
+
imageScan[scrollKey] = classifyImageScanError(error);
|
|
519
539
|
void this.emit('changePhase', {
|
|
520
540
|
pid: process.pid,
|
|
521
541
|
name: 'retryExhausted',
|
|
@@ -525,7 +545,7 @@ let Scraper = (() => {
|
|
|
525
545
|
});
|
|
526
546
|
}
|
|
527
547
|
}
|
|
528
|
-
return { imageList, scrollHeight };
|
|
548
|
+
return { imageList, scrollHeight, imageScan };
|
|
529
549
|
}, "#fetchImages") }, _private_fetchImages_decorators, { kind: "method", name: "#fetchImages", static: false, private: true, access: { has: obj => #fetchImages in obj, get: obj => obj.#fetchImages }, metadata: _metadata }, null, _instanceExtraInitializers);
|
|
530
550
|
if (_metadata) Object.defineProperty(this, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
|
|
531
551
|
}
|
|
@@ -607,6 +627,7 @@ let Scraper = (() => {
|
|
|
607
627
|
html: '',
|
|
608
628
|
mainContents: null,
|
|
609
629
|
scrollHeight: null,
|
|
630
|
+
imageScan: EMPTY_IMAGE_SCAN,
|
|
610
631
|
isSkipped: false,
|
|
611
632
|
};
|
|
612
633
|
void this.emit('changePhase', {
|
|
@@ -806,7 +827,12 @@ let Scraper = (() => {
|
|
|
806
827
|
* WHY per-device try-catch: Some pages (e.g. those using fullpage.js or
|
|
807
828
|
* scroll-jacking libraries) destroy the execution context when the viewport
|
|
808
829
|
* changes and triggers a reload. Isolating each device preset allows partial
|
|
809
|
-
* results — if one viewport fails, the other can still succeed.
|
|
830
|
+
* results — if one viewport fails, the other can still succeed. The outcome
|
|
831
|
+
* of each device preset (success, degraded, or one of the failure kinds) is
|
|
832
|
+
* recorded per-preset in the returned `imageScan`, classified by
|
|
833
|
+
* {@link classifyImageScanError} — a page that never goes network-idle
|
|
834
|
+
* (analytics beacons, chat widgets, open WebSocket connections) still
|
|
835
|
+
* yields images, just flagged `IMAGE_SCAN_CODE.DEGRADED` instead of `OK`.
|
|
810
836
|
*
|
|
811
837
|
* WHY retryable with 20-min timeout and empty fallback: Image extraction is
|
|
812
838
|
* best-effort. If all retries fail, empty images and null scroll heights are
|
|
@@ -833,7 +859,7 @@ let Scraper = (() => {
|
|
|
833
859
|
* @param isExternal - Whether the page is external
|
|
834
860
|
* @param imageLoadTimeout - Timeout (ms) for waiting images to complete loading
|
|
835
861
|
* @param domEvaluationTimeout - Timeout (ms) for the in-page image extraction `page.evaluate`
|
|
836
|
-
* @returns Image elements
|
|
862
|
+
* @returns Image elements, desktop/mobile scroll heights, and the per-device `imageScan` outcome codes
|
|
837
863
|
*/
|
|
838
864
|
get #fetchImages() { return _private_fetchImages_descriptor.value; }
|
|
839
865
|
};
|
package/dist/types.d.ts
CHANGED
|
@@ -4,10 +4,12 @@
|
|
|
4
4
|
* @see {@link ./dom-evaluation.ts} for DOM extraction functions (anchors, images, meta)
|
|
5
5
|
* @module
|
|
6
6
|
*/
|
|
7
|
+
export type { ImageScanCode } from './image-scan-code.js';
|
|
7
8
|
export type { ExURL, ParseURLOptions } from '@d-zero/shared/parse-url';
|
|
8
9
|
export type { CompressType } from '@d-zero/shared/detect-compress';
|
|
9
10
|
export type { CDNType } from '@d-zero/shared/detect-cdn';
|
|
10
11
|
export type { Meta, OpenGraphMeta, OgArticleMeta, OgBookMeta, OgProfileMeta, OgMusicMeta, OgVideoNsMeta, TwitterMeta, FbMeta, FediverseMeta, AppleMeta, MsApplicationMeta, VerificationMeta, GoogleMeta, GeoMeta, CitationMeta, RdfaMeta, MicrodataMeta, AmpMeta, LegacyMeta, MobileMeta, MicroformatsMeta, PinterestMeta, SlackMeta, LinkedInMeta, ExperimentalMeta, WikiMeta, LinkMeta, LinkEntry, JsonLdEntry, OthersBucket, ScriptEntry, IframeEntry, TagsMeta, TagDetail, TagEntry, TagSource, ViewportMeta, RobotsMeta, ReferrerMeta, FormatDetectionMeta, HttpEquivMeta, HttpEquivRefresh, RawHeadEntry, } from './meta/types.js';
|
|
12
|
+
import type { ImageScanCode } from './image-scan-code.js';
|
|
11
13
|
import type { Meta } from './meta/types.js';
|
|
12
14
|
import type { CDNType } from '@d-zero/shared/detect-cdn';
|
|
13
15
|
import type { CompressType } from '@d-zero/shared/detect-compress';
|
|
@@ -54,6 +56,21 @@ export type PageData = {
|
|
|
54
56
|
* `null` when not measured (non-HTML, external, non-HTTP, or skipped).
|
|
55
57
|
*/
|
|
56
58
|
scrollHeight: ScrollHeightData | null;
|
|
59
|
+
/**
|
|
60
|
+
* Per-device-preset outcome of the `<img>` element scan performed by
|
|
61
|
+
* `Scraper#fetchImages`, keyed the same way as {@link ScrollHeightData}.
|
|
62
|
+
* A field is `null` when that device preset's image scan was never
|
|
63
|
+
* attempted (non-HTML, external, non-HTTP page, or `captureImages: false`);
|
|
64
|
+
* otherwise it is an {@link ImageScanCode} recording why the scan
|
|
65
|
+
* succeeded, degraded, or was abandoned. See `IMAGE_SCAN_CODE`.
|
|
66
|
+
* @example
|
|
67
|
+
* ```ts
|
|
68
|
+
* if (pageData.imageScan.mobile === IMAGE_SCAN_CODE.SCROLL_HEIGHT_EXCEEDED) {
|
|
69
|
+
* // mobile images were skipped due to an oversized scrollHeight
|
|
70
|
+
* }
|
|
71
|
+
* ```
|
|
72
|
+
*/
|
|
73
|
+
imageScan: ImageScanData;
|
|
57
74
|
/** Always `false` for successfully scraped pages. See {@link SkippedPageData} for skipped pages. */
|
|
58
75
|
isSkipped: false;
|
|
59
76
|
};
|
|
@@ -66,6 +83,16 @@ export type ScrollHeightData = {
|
|
|
66
83
|
/** Height at `mobile-small` (width 320 @ 2x), or `null` if that preset failed. */
|
|
67
84
|
mobile: number | null;
|
|
68
85
|
};
|
|
86
|
+
/**
|
|
87
|
+
* Per-device-preset {@link ImageScanCode} outcome of `Scraper#fetchImages`,
|
|
88
|
+
* mirroring {@link ScrollHeightData}'s desktop/mobile shape.
|
|
89
|
+
*/
|
|
90
|
+
export type ImageScanData = {
|
|
91
|
+
/** Outcome for `desktop-compact` (width 1280), or `null` if not attempted. */
|
|
92
|
+
desktop: ImageScanCode | null;
|
|
93
|
+
/** Outcome for `mobile-small` (width 320 @ 2x), or `null` if not attempted. */
|
|
94
|
+
mobile: ImageScanCode | null;
|
|
95
|
+
};
|
|
69
96
|
/**
|
|
70
97
|
* Quantitative metrics for the detected main content region of a page.
|
|
71
98
|
* @example
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@d-zero/beholder",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "5.0.0",
|
|
4
4
|
"description": "Page-level scraper for web crawling and auditing",
|
|
5
5
|
"author": "D-ZERO",
|
|
6
6
|
"license": "MIT",
|
|
@@ -23,7 +23,8 @@
|
|
|
23
23
|
"clean": "tsc --build --clean"
|
|
24
24
|
},
|
|
25
25
|
"dependencies": {
|
|
26
|
-
"@d-zero/puppeteer-page-scan": "4.
|
|
26
|
+
"@d-zero/puppeteer-page-scan": "4.7.0",
|
|
27
|
+
"@d-zero/puppeteer-scroll": "4.0.12",
|
|
27
28
|
"@d-zero/shared": "0.23.0",
|
|
28
29
|
"debug": "4.4.3",
|
|
29
30
|
"puppeteer": "25.5.0",
|
|
@@ -39,5 +40,5 @@
|
|
|
39
40
|
"url": "https://github.com/d-zero-dev/tools.git",
|
|
40
41
|
"directory": "packages/@d-zero/beholder"
|
|
41
42
|
},
|
|
42
|
-
"gitHead": "
|
|
43
|
+
"gitHead": "41dfa4dc685a038fb1ce391a305617cca7e37de3"
|
|
43
44
|
}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { NavigationUnsettledError } from '@d-zero/puppeteer-page-scan';
|
|
2
|
+
import { describe, expect, it } from 'vitest';
|
|
3
|
+
|
|
4
|
+
import { classifyImageScanError } from './classify-image-scan-error.js';
|
|
5
|
+
import { IMAGE_SCAN_CODE } from './image-scan-code.js';
|
|
6
|
+
|
|
7
|
+
describe('classifyImageScanError', () => {
|
|
8
|
+
it('NavigationUnsettledError は NAV_UNSETTLED に分類する', () => {
|
|
9
|
+
expect(classifyImageScanError(new NavigationUnsettledError('never settled'))).toBe(
|
|
10
|
+
IMAGE_SCAN_CODE.NAV_UNSETTLED,
|
|
11
|
+
);
|
|
12
|
+
});
|
|
13
|
+
|
|
14
|
+
it.each([
|
|
15
|
+
"Attempted to use detached Frame 'XXX'.",
|
|
16
|
+
'Session closed.',
|
|
17
|
+
'Execution context was destroyed.',
|
|
18
|
+
'Protocol error (Page.reload): Not attached to an active page',
|
|
19
|
+
'Protocol error (Page.reload): Target closed',
|
|
20
|
+
])('%s は FRAME_LOST に分類する', (message) => {
|
|
21
|
+
expect(classifyImageScanError(new Error(message))).toBe(IMAGE_SCAN_CODE.FRAME_LOST);
|
|
22
|
+
});
|
|
23
|
+
|
|
24
|
+
it('分類不能な Error は UNKNOWN に分類する', () => {
|
|
25
|
+
expect(classifyImageScanError(new Error('TypeError: foo is not a function'))).toBe(
|
|
26
|
+
IMAGE_SCAN_CODE.UNKNOWN,
|
|
27
|
+
);
|
|
28
|
+
});
|
|
29
|
+
|
|
30
|
+
it('Error インスタンスでない値も UNKNOWN に分類する', () => {
|
|
31
|
+
expect(classifyImageScanError('plain string error')).toBe(IMAGE_SCAN_CODE.UNKNOWN);
|
|
32
|
+
expect(classifyImageScanError(null)).toBe(IMAGE_SCAN_CODE.UNKNOWN);
|
|
33
|
+
});
|
|
34
|
+
});
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { NavigationUnsettledError } from '@d-zero/puppeteer-page-scan';
|
|
2
|
+
import { isTransientFrameError } from '@d-zero/puppeteer-scroll';
|
|
3
|
+
|
|
4
|
+
import { IMAGE_SCAN_CODE, type ImageScanCode } from './image-scan-code.js';
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Matches session/target-loss error messages observed in `#fetchImages`'s
|
|
8
|
+
* per-device retry that `isTransientFrameError` (`@d-zero/puppeteer-scroll`)
|
|
9
|
+
* does not already cover — specific `reload`/`goto` failures rather than
|
|
10
|
+
* `page.evaluate` failures. Deliberately does NOT match a bare `Protocol
|
|
11
|
+
* error` prefix: that wraps many unrelated CDP failures (e.g. `Protocol
|
|
12
|
+
* error (Runtime.evaluate): stack overflow`) that are not frame/session
|
|
13
|
+
* loss and should fall through to `UNKNOWN` for accurate diagnosis.
|
|
14
|
+
*/
|
|
15
|
+
const FRAME_LOST_PATTERN = /Not attached to an active page|Target closed/i;
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* Classifies an error caught in `Scraper#fetchImages`'s per-device try/catch
|
|
19
|
+
* into an {@link ImageScanCode}, so the caught-exception path and the
|
|
20
|
+
* successful-scan path (`settled` / `scrolled`) can be recorded with the
|
|
21
|
+
* same small integer vocabulary for persistence.
|
|
22
|
+
* @param error - The value caught from the per-device `beforePageScan` call.
|
|
23
|
+
* @returns {@link IMAGE_SCAN_CODE.NAV_UNSETTLED} for a `NavigationUnsettledError`,
|
|
24
|
+
* {@link IMAGE_SCAN_CODE.FRAME_LOST} for a known frame/session-loss error,
|
|
25
|
+
* otherwise {@link IMAGE_SCAN_CODE.UNKNOWN}.
|
|
26
|
+
* @example
|
|
27
|
+
* ```ts
|
|
28
|
+
* try {
|
|
29
|
+
* await beforePageScan(page, url, opts);
|
|
30
|
+
* } catch (error) {
|
|
31
|
+
* imageScan[key] = classifyImageScanError(error);
|
|
32
|
+
* }
|
|
33
|
+
* ```
|
|
34
|
+
*/
|
|
35
|
+
export function classifyImageScanError(error: unknown): ImageScanCode {
|
|
36
|
+
if (error instanceof NavigationUnsettledError) {
|
|
37
|
+
return IMAGE_SCAN_CODE.NAV_UNSETTLED;
|
|
38
|
+
}
|
|
39
|
+
if (
|
|
40
|
+
isTransientFrameError(error) ||
|
|
41
|
+
(error instanceof Error && FRAME_LOST_PATTERN.test(error.message))
|
|
42
|
+
) {
|
|
43
|
+
return IMAGE_SCAN_CODE.FRAME_LOST;
|
|
44
|
+
}
|
|
45
|
+
return IMAGE_SCAN_CODE.UNKNOWN;
|
|
46
|
+
}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Numeric outcome codes for a single device-preset image scan performed by
|
|
3
|
+
* `Scraper#fetchImages`. Small integers (fit a `Uint8`) so callers that
|
|
4
|
+
* persist per-page scan results to a database column can use an integer
|
|
5
|
+
* rather than a string enum. A `null` value (not part of this const) means
|
|
6
|
+
* the device preset was never attempted — non-HTML/external/non-HTTP pages,
|
|
7
|
+
* or `captureImages: false`.
|
|
8
|
+
* @example
|
|
9
|
+
* ```ts
|
|
10
|
+
* import { IMAGE_SCAN_CODE } from '@d-zero/beholder';
|
|
11
|
+
*
|
|
12
|
+
* db.insert({ imageScanMobile: pageData.imageScan.mobile ?? null });
|
|
13
|
+
* if (pageData.imageScan.mobile === IMAGE_SCAN_CODE.SCROLL_HEIGHT_EXCEEDED) {
|
|
14
|
+
* // mobile images were skipped because scrollHeight exceeded the limit
|
|
15
|
+
* }
|
|
16
|
+
* ```
|
|
17
|
+
*/
|
|
18
|
+
export const IMAGE_SCAN_CODE = {
|
|
19
|
+
/** `beforePageScan` reached `settled: 'idle'`; images extracted normally. */
|
|
20
|
+
OK: 0,
|
|
21
|
+
/** `beforePageScan` reached `settled: 'degraded'`; images extracted, but navigation never went network-idle so the result carries lower confidence. */
|
|
22
|
+
DEGRADED: 1,
|
|
23
|
+
/** Navigation never settled and the post-timeout frame/URL/readyState check also failed (`NavigationUnsettledError`). */
|
|
24
|
+
NAV_UNSETTLED: 2,
|
|
25
|
+
/** The main frame or session was lost mid-scan (detached Frame, session closed, execution context destroyed, or "Not attached to an active page"). */
|
|
26
|
+
FRAME_LOST: 3,
|
|
27
|
+
/** `document.body.scrollHeight` exceeded the scan's `maxScrollHeight` guard; scroll and extraction were skipped. */
|
|
28
|
+
SCROLL_HEIGHT_EXCEEDED: 4,
|
|
29
|
+
/** An error occurred that does not match any of the categories above. */
|
|
30
|
+
UNKNOWN: 255,
|
|
31
|
+
} as const;
|
|
32
|
+
|
|
33
|
+
/** Numeric outcome code for one device preset's image scan. See {@link IMAGE_SCAN_CODE}. */
|
|
34
|
+
export type ImageScanCode = (typeof IMAGE_SCAN_CODE)[keyof typeof IMAGE_SCAN_CODE];
|
package/src/index.ts
CHANGED
|
@@ -22,6 +22,8 @@ export { detectCompress } from '@d-zero/shared/detect-compress';
|
|
|
22
22
|
export type { CompressType } from '@d-zero/shared/detect-compress';
|
|
23
23
|
export { detectCDN } from '@d-zero/shared/detect-cdn';
|
|
24
24
|
export type { CDNType } from '@d-zero/shared/detect-cdn';
|
|
25
|
+
export { IMAGE_SCAN_CODE } from './image-scan-code.js';
|
|
26
|
+
export type { ImageScanCode } from './image-scan-code.js';
|
|
25
27
|
export type { ScrapeResult, ResourceEntry, ConsoleLogEntry, PageData } from './types.js';
|
|
26
28
|
export type { ScraperOptions, ChangePhaseEvent, ScraperEventTypes } from './types.js';
|
|
27
29
|
export type {
|
|
@@ -32,6 +34,7 @@ export type {
|
|
|
32
34
|
SkippedPageData,
|
|
33
35
|
NetworkLog,
|
|
34
36
|
ScrollHeightData,
|
|
37
|
+
ImageScanData,
|
|
35
38
|
MainContentsData,
|
|
36
39
|
MainContentsMainTag,
|
|
37
40
|
MainContentsHeading,
|
package/src/scraper.ts
CHANGED
|
@@ -7,6 +7,7 @@ import type {
|
|
|
7
7
|
ScrapeResult,
|
|
8
8
|
ExURL,
|
|
9
9
|
ImageElement,
|
|
10
|
+
ImageScanData,
|
|
10
11
|
NetworkLog,
|
|
11
12
|
PageData,
|
|
12
13
|
ParseURLOptions,
|
|
@@ -23,6 +24,7 @@ import { detectCompress } from '@d-zero/shared/detect-compress';
|
|
|
23
24
|
import { retry as retryable } from '@d-zero/shared/retry';
|
|
24
25
|
import { TypedAwaitEventEmitter as EventEmitter } from '@d-zero/shared/typed-await-event-emitter';
|
|
25
26
|
|
|
27
|
+
import { classifyImageScanError } from './classify-image-scan-error.js';
|
|
26
28
|
import { resourceLog, scraperLog } from './debug.js';
|
|
27
29
|
import {
|
|
28
30
|
DEFAULT_DOM_EVALUATION_TIMEOUT,
|
|
@@ -31,6 +33,7 @@ import {
|
|
|
31
33
|
getMeta,
|
|
32
34
|
} from './dom-evaluation.js';
|
|
33
35
|
import { getMainContents } from './get-main-contents.js';
|
|
36
|
+
import { IMAGE_SCAN_CODE } from './image-scan-code.js';
|
|
34
37
|
import { isError } from './is-error.js';
|
|
35
38
|
import { isHtmlContentType } from './is-html-content-type.js';
|
|
36
39
|
import { keywordCheck } from './keyword-check.js';
|
|
@@ -57,6 +60,9 @@ const rLog = resourceLog.extend(pid);
|
|
|
57
60
|
*/
|
|
58
61
|
const MAX_SCROLL_HEIGHT = 1_000_000;
|
|
59
62
|
|
|
63
|
+
/** Shared "not attempted" value for `PageData.imageScan`, reused everywhere a page is returned without an image scan (non-HTML/external/non-HTTP, or the `@retryable` fallback). */
|
|
64
|
+
const EMPTY_IMAGE_SCAN: ImageScanData = { desktop: null, mobile: null };
|
|
65
|
+
|
|
60
66
|
/**
|
|
61
67
|
* Page-level scraper that extracts data from a single browser page.
|
|
62
68
|
*
|
|
@@ -162,6 +168,7 @@ export default class Scraper extends EventEmitter<ScraperEventTypes> {
|
|
|
162
168
|
html: '',
|
|
163
169
|
mainContents: null,
|
|
164
170
|
scrollHeight: null,
|
|
171
|
+
imageScan: EMPTY_IMAGE_SCAN,
|
|
165
172
|
isSkipped: false,
|
|
166
173
|
};
|
|
167
174
|
|
|
@@ -633,6 +640,7 @@ export default class Scraper extends EventEmitter<ScraperEventTypes> {
|
|
|
633
640
|
html: '',
|
|
634
641
|
mainContents: null,
|
|
635
642
|
scrollHeight: null,
|
|
643
|
+
imageScan: EMPTY_IMAGE_SCAN,
|
|
636
644
|
isSkipped: false,
|
|
637
645
|
};
|
|
638
646
|
}
|
|
@@ -684,6 +692,7 @@ export default class Scraper extends EventEmitter<ScraperEventTypes> {
|
|
|
684
692
|
html,
|
|
685
693
|
mainContents: null,
|
|
686
694
|
scrollHeight: null,
|
|
695
|
+
imageScan: EMPTY_IMAGE_SCAN,
|
|
687
696
|
isSkipped: false,
|
|
688
697
|
};
|
|
689
698
|
}
|
|
@@ -744,6 +753,7 @@ export default class Scraper extends EventEmitter<ScraperEventTypes> {
|
|
|
744
753
|
|
|
745
754
|
let imageList: ImageElement[] = [];
|
|
746
755
|
let scrollHeight: ScrollHeightData | null = null;
|
|
756
|
+
let imageScan: ImageScanData = EMPTY_IMAGE_SCAN;
|
|
747
757
|
|
|
748
758
|
if (captureImages) {
|
|
749
759
|
void this.emit('changePhase', {
|
|
@@ -762,6 +772,7 @@ export default class Scraper extends EventEmitter<ScraperEventTypes> {
|
|
|
762
772
|
);
|
|
763
773
|
imageList = fetched.imageList;
|
|
764
774
|
scrollHeight = fetched.scrollHeight;
|
|
775
|
+
imageScan = fetched.imageScan;
|
|
765
776
|
} else {
|
|
766
777
|
scrollHeight = await measureScrollHeight(page);
|
|
767
778
|
}
|
|
@@ -782,6 +793,7 @@ export default class Scraper extends EventEmitter<ScraperEventTypes> {
|
|
|
782
793
|
html,
|
|
783
794
|
mainContents,
|
|
784
795
|
scrollHeight,
|
|
796
|
+
imageScan,
|
|
785
797
|
isSkipped: false,
|
|
786
798
|
};
|
|
787
799
|
} finally {
|
|
@@ -798,7 +810,12 @@ export default class Scraper extends EventEmitter<ScraperEventTypes> {
|
|
|
798
810
|
* WHY per-device try-catch: Some pages (e.g. those using fullpage.js or
|
|
799
811
|
* scroll-jacking libraries) destroy the execution context when the viewport
|
|
800
812
|
* changes and triggers a reload. Isolating each device preset allows partial
|
|
801
|
-
* results — if one viewport fails, the other can still succeed.
|
|
813
|
+
* results — if one viewport fails, the other can still succeed. The outcome
|
|
814
|
+
* of each device preset (success, degraded, or one of the failure kinds) is
|
|
815
|
+
* recorded per-preset in the returned `imageScan`, classified by
|
|
816
|
+
* {@link classifyImageScanError} — a page that never goes network-idle
|
|
817
|
+
* (analytics beacons, chat widgets, open WebSocket connections) still
|
|
818
|
+
* yields images, just flagged `IMAGE_SCAN_CODE.DEGRADED` instead of `OK`.
|
|
802
819
|
*
|
|
803
820
|
* WHY retryable with 20-min timeout and empty fallback: Image extraction is
|
|
804
821
|
* best-effort. If all retries fail, empty images and null scroll heights are
|
|
@@ -825,13 +842,14 @@ export default class Scraper extends EventEmitter<ScraperEventTypes> {
|
|
|
825
842
|
* @param isExternal - Whether the page is external
|
|
826
843
|
* @param imageLoadTimeout - Timeout (ms) for waiting images to complete loading
|
|
827
844
|
* @param domEvaluationTimeout - Timeout (ms) for the in-page image extraction `page.evaluate`
|
|
828
|
-
* @returns Image elements
|
|
845
|
+
* @returns Image elements, desktop/mobile scroll heights, and the per-device `imageScan` outcome codes
|
|
829
846
|
*/
|
|
830
847
|
@retryable({
|
|
831
848
|
timeout: 20 * 60 * 1000,
|
|
832
849
|
fallback: {
|
|
833
850
|
imageList: [],
|
|
834
851
|
scrollHeight: { desktop: null, mobile: null },
|
|
852
|
+
imageScan: EMPTY_IMAGE_SCAN,
|
|
835
853
|
},
|
|
836
854
|
onWait(this: Scraper, determinedInterval, retryCount, methodName, error) {
|
|
837
855
|
void this.emit('changePhase', {
|
|
@@ -858,7 +876,11 @@ export default class Scraper extends EventEmitter<ScraperEventTypes> {
|
|
|
858
876
|
isExternal: boolean,
|
|
859
877
|
imageLoadTimeout: number,
|
|
860
878
|
domEvaluationTimeout: number,
|
|
861
|
-
): Promise<{
|
|
879
|
+
): Promise<{
|
|
880
|
+
imageList: ImageElement[];
|
|
881
|
+
scrollHeight: ScrollHeightData;
|
|
882
|
+
imageScan: ImageScanData;
|
|
883
|
+
}> {
|
|
862
884
|
const listener = this.#createPageScanListener(isExternal);
|
|
863
885
|
const devices: {
|
|
864
886
|
key: 'desktop-compact' | 'mobile-small';
|
|
@@ -869,6 +891,7 @@ export default class Scraper extends EventEmitter<ScraperEventTypes> {
|
|
|
869
891
|
];
|
|
870
892
|
const imageList: ImageElement[] = [];
|
|
871
893
|
const scrollHeight: ScrollHeightData = { desktop: null, mobile: null };
|
|
894
|
+
const imageScan: ImageScanData = { desktop: null, mobile: null };
|
|
872
895
|
|
|
873
896
|
for (const { key, preset } of devices) {
|
|
874
897
|
const scrollKey = key === 'desktop-compact' ? 'desktop' : 'mobile';
|
|
@@ -888,11 +911,17 @@ export default class Scraper extends EventEmitter<ScraperEventTypes> {
|
|
|
888
911
|
listener,
|
|
889
912
|
timeout: 5000,
|
|
890
913
|
maxScrollHeight: MAX_SCROLL_HEIGHT,
|
|
914
|
+
// This per-device try/catch already isolates and classifies
|
|
915
|
+
// failures (see `classifyImageScanError`), so a page whose
|
|
916
|
+
// network never settles should degrade gracefully here
|
|
917
|
+
// rather than losing the whole device preset's images.
|
|
918
|
+
continueOnDegradedNetwork: true,
|
|
891
919
|
});
|
|
892
920
|
|
|
893
921
|
scrollHeight[scrollKey] = scanResult.scrollHeight;
|
|
894
922
|
|
|
895
923
|
if (!scanResult.scrolled) {
|
|
924
|
+
imageScan[scrollKey] = IMAGE_SCAN_CODE.SCROLL_HEIGHT_EXCEEDED;
|
|
896
925
|
void this.emit('changePhase', {
|
|
897
926
|
pid: process.pid,
|
|
898
927
|
name: 'retryExhausted',
|
|
@@ -926,9 +955,12 @@ export default class Scraper extends EventEmitter<ScraperEventTypes> {
|
|
|
926
955
|
});
|
|
927
956
|
const images = await getImageList(page, preset.width, domEvaluationTimeout);
|
|
928
957
|
imageList.push(...images);
|
|
958
|
+
imageScan[scrollKey] =
|
|
959
|
+
scanResult.settled === 'idle' ? IMAGE_SCAN_CODE.OK : IMAGE_SCAN_CODE.DEGRADED;
|
|
929
960
|
} catch (error) {
|
|
930
961
|
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
931
962
|
log('Error(FETCH_IMAGES/%s): %s', key, errorMessage);
|
|
963
|
+
imageScan[scrollKey] = classifyImageScanError(error);
|
|
932
964
|
void this.emit('changePhase', {
|
|
933
965
|
pid: process.pid,
|
|
934
966
|
name: 'retryExhausted',
|
|
@@ -939,6 +971,6 @@ export default class Scraper extends EventEmitter<ScraperEventTypes> {
|
|
|
939
971
|
}
|
|
940
972
|
}
|
|
941
973
|
|
|
942
|
-
return { imageList, scrollHeight };
|
|
974
|
+
return { imageList, scrollHeight, imageScan };
|
|
943
975
|
}
|
|
944
976
|
}
|
package/src/types.ts
CHANGED
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
* @module
|
|
6
6
|
*/
|
|
7
7
|
|
|
8
|
+
export type { ImageScanCode } from './image-scan-code.js';
|
|
8
9
|
export type { ExURL, ParseURLOptions } from '@d-zero/shared/parse-url';
|
|
9
10
|
export type { CompressType } from '@d-zero/shared/detect-compress';
|
|
10
11
|
export type { CDNType } from '@d-zero/shared/detect-cdn';
|
|
@@ -55,6 +56,7 @@ export type {
|
|
|
55
56
|
RawHeadEntry,
|
|
56
57
|
} from './meta/types.js';
|
|
57
58
|
|
|
59
|
+
import type { ImageScanCode } from './image-scan-code.js';
|
|
58
60
|
import type { Meta } from './meta/types.js';
|
|
59
61
|
import type { CDNType } from '@d-zero/shared/detect-cdn';
|
|
60
62
|
import type { CompressType } from '@d-zero/shared/detect-compress';
|
|
@@ -117,6 +119,22 @@ export type PageData = {
|
|
|
117
119
|
*/
|
|
118
120
|
scrollHeight: ScrollHeightData | null;
|
|
119
121
|
|
|
122
|
+
/**
|
|
123
|
+
* Per-device-preset outcome of the `<img>` element scan performed by
|
|
124
|
+
* `Scraper#fetchImages`, keyed the same way as {@link ScrollHeightData}.
|
|
125
|
+
* A field is `null` when that device preset's image scan was never
|
|
126
|
+
* attempted (non-HTML, external, non-HTTP page, or `captureImages: false`);
|
|
127
|
+
* otherwise it is an {@link ImageScanCode} recording why the scan
|
|
128
|
+
* succeeded, degraded, or was abandoned. See `IMAGE_SCAN_CODE`.
|
|
129
|
+
* @example
|
|
130
|
+
* ```ts
|
|
131
|
+
* if (pageData.imageScan.mobile === IMAGE_SCAN_CODE.SCROLL_HEIGHT_EXCEEDED) {
|
|
132
|
+
* // mobile images were skipped due to an oversized scrollHeight
|
|
133
|
+
* }
|
|
134
|
+
* ```
|
|
135
|
+
*/
|
|
136
|
+
imageScan: ImageScanData;
|
|
137
|
+
|
|
120
138
|
/** Always `false` for successfully scraped pages. See {@link SkippedPageData} for skipped pages. */
|
|
121
139
|
isSkipped: false;
|
|
122
140
|
};
|
|
@@ -131,6 +149,17 @@ export type ScrollHeightData = {
|
|
|
131
149
|
mobile: number | null;
|
|
132
150
|
};
|
|
133
151
|
|
|
152
|
+
/**
|
|
153
|
+
* Per-device-preset {@link ImageScanCode} outcome of `Scraper#fetchImages`,
|
|
154
|
+
* mirroring {@link ScrollHeightData}'s desktop/mobile shape.
|
|
155
|
+
*/
|
|
156
|
+
export type ImageScanData = {
|
|
157
|
+
/** Outcome for `desktop-compact` (width 1280), or `null` if not attempted. */
|
|
158
|
+
desktop: ImageScanCode | null;
|
|
159
|
+
/** Outcome for `mobile-small` (width 320 @ 2x), or `null` if not attempted. */
|
|
160
|
+
mobile: ImageScanCode | null;
|
|
161
|
+
};
|
|
162
|
+
|
|
134
163
|
/**
|
|
135
164
|
* Quantitative metrics for the detected main content region of a page.
|
|
136
165
|
* @example
|
package/tsconfig.tsbuildinfo
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"fileNames":["../../../node_modules/typescript/lib/lib.es5.d.ts","../../../node_modules/typescript/lib/lib.es2015.d.ts","../../../node_modules/typescript/lib/lib.es2016.d.ts","../../../node_modules/typescript/lib/lib.es2017.d.ts","../../../node_modules/typescript/lib/lib.es2018.d.ts","../../../node_modules/typescript/lib/lib.es2019.d.ts","../../../node_modules/typescript/lib/lib.es2020.d.ts","../../../node_modules/typescript/lib/lib.es2021.d.ts","../../../node_modules/typescript/lib/lib.es2022.d.ts","../../../node_modules/typescript/lib/lib.es2023.d.ts","../../../node_modules/typescript/lib/lib.es2024.d.ts","../../../node_modules/typescript/lib/lib.es2025.d.ts","../../../node_modules/typescript/lib/lib.esnext.d.ts","../../../node_modules/typescript/lib/lib.dom.d.ts","../../../node_modules/typescript/lib/lib.dom.iterable.d.ts","../../../node_modules/typescript/lib/lib.es2015.core.d.ts","../../../node_modules/typescript/lib/lib.es2015.collection.d.ts","../../../node_modules/typescript/lib/lib.es2015.generator.d.ts","../../../node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../../node_modules/typescript/lib/lib.es2015.promise.d.ts","../../../node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../../node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../../node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../../node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../../node_modules/typescript/lib/lib.es2016.array.include.d.ts","../../../node_modules/typescript/lib/lib.es2016.intl.d.ts","../../../node_modules/typescript/lib/lib.es2017.arraybuffer.d.ts","../../../node_modules/typescript/lib/lib.es2017.date.d.ts","../../../node_modules/typescript/lib/lib.es2017.object.d.ts","../../../node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../../../node_modules/typescript/lib/lib.es2017.string.d.ts","../../../node_modules/typescript/lib/lib.es2017.intl.d.ts","../../../node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../../../node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../../../node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../../../node_modules/typescript/lib/lib.es2018.intl.d.ts","../../../node_modules/typescript/lib/lib.es2018.promise.d.ts","../../../node_modules/typescript/lib/lib.es2018.regexp.d.ts","../../../node_modules/typescript/lib/lib.es2019.array.d.ts","../../../node_modules/typescript/lib/lib.es2019.object.d.ts","../../../node_modules/typescript/lib/lib.es2019.string.d.ts","../../../node_modules/typescript/lib/lib.es2019.symbol.d.ts","../../../node_modules/typescript/lib/lib.es2019.intl.d.ts","../../../node_modules/typescript/lib/lib.es2020.bigint.d.ts","../../../node_modules/typescript/lib/lib.es2020.date.d.ts","../../../node_modules/typescript/lib/lib.es2020.promise.d.ts","../../../node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../../../node_modules/typescript/lib/lib.es2020.string.d.ts","../../../node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../../../node_modules/typescript/lib/lib.es2020.intl.d.ts","../../../node_modules/typescript/lib/lib.es2020.number.d.ts","../../../node_modules/typescript/lib/lib.es2021.promise.d.ts","../../../node_modules/typescript/lib/lib.es2021.string.d.ts","../../../node_modules/typescript/lib/lib.es2021.weakref.d.ts","../../../node_modules/typescript/lib/lib.es2021.intl.d.ts","../../../node_modules/typescript/lib/lib.es2022.array.d.ts","../../../node_modules/typescript/lib/lib.es2022.error.d.ts","../../../node_modules/typescript/lib/lib.es2022.intl.d.ts","../../../node_modules/typescript/lib/lib.es2022.object.d.ts","../../../node_modules/typescript/lib/lib.es2022.string.d.ts","../../../node_modules/typescript/lib/lib.es2022.regexp.d.ts","../../../node_modules/typescript/lib/lib.es2023.array.d.ts","../../../node_modules/typescript/lib/lib.es2023.collection.d.ts","../../../node_modules/typescript/lib/lib.es2023.intl.d.ts","../../../node_modules/typescript/lib/lib.es2024.arraybuffer.d.ts","../../../node_modules/typescript/lib/lib.es2024.collection.d.ts","../../../node_modules/typescript/lib/lib.es2024.object.d.ts","../../../node_modules/typescript/lib/lib.es2024.promise.d.ts","../../../node_modules/typescript/lib/lib.es2024.regexp.d.ts","../../../node_modules/typescript/lib/lib.es2024.sharedmemory.d.ts","../../../node_modules/typescript/lib/lib.es2024.string.d.ts","../../../node_modules/typescript/lib/lib.es2025.collection.d.ts","../../../node_modules/typescript/lib/lib.es2025.float16.d.ts","../../../node_modules/typescript/lib/lib.es2025.intl.d.ts","../../../node_modules/typescript/lib/lib.es2025.iterator.d.ts","../../../node_modules/typescript/lib/lib.es2025.promise.d.ts","../../../node_modules/typescript/lib/lib.es2025.regexp.d.ts","../../../node_modules/typescript/lib/lib.esnext.array.d.ts","../../../node_modules/typescript/lib/lib.esnext.collection.d.ts","../../../node_modules/typescript/lib/lib.esnext.date.d.ts","../../../node_modules/typescript/lib/lib.esnext.decorators.d.ts","../../../node_modules/typescript/lib/lib.esnext.disposable.d.ts","../../../node_modules/typescript/lib/lib.esnext.error.d.ts","../../../node_modules/typescript/lib/lib.esnext.intl.d.ts","../../../node_modules/typescript/lib/lib.esnext.sharedmemory.d.ts","../../../node_modules/typescript/lib/lib.esnext.temporal.d.ts","../../../node_modules/typescript/lib/lib.esnext.typedarrays.d.ts","../../../node_modules/typescript/lib/lib.decorators.d.ts","../../../node_modules/typescript/lib/lib.decorators.legacy.d.ts","../../../node_modules/@types/ms/index.d.ts","../../../node_modules/@types/debug/index.d.ts","./src/debug.ts","./src/meta/types.ts","../shared/dist/parse-url.d.ts","../shared/dist/detect-compress.d.ts","../shared/dist/detect-cdn.d.ts","../../../node_modules/@types/node/globals.typedarray.d.ts","../../../node_modules/@types/node/buffer.buffer.d.ts","../../../node_modules/@types/node/globals.d.ts","../../../node_modules/@types/node/web-globals/abortcontroller.d.ts","../../../node_modules/@types/node/web-globals/blob.d.ts","../../../node_modules/@types/node/web-globals/console.d.ts","../../../node_modules/@types/node/web-globals/crypto.d.ts","../../../node_modules/@types/node/web-globals/domexception.d.ts","../../../node_modules/@types/node/web-globals/encoding.d.ts","../../../node_modules/@types/node/web-globals/events.d.ts","../../../node_modules/undici-types/utility.d.ts","../../../node_modules/undici-types/header.d.ts","../../../node_modules/undici-types/readable.d.ts","../../../node_modules/undici-types/fetch.d.ts","../../../node_modules/undici-types/formdata.d.ts","../../../node_modules/undici-types/connector.d.ts","../../../node_modules/undici-types/client-stats.d.ts","../../../node_modules/undici-types/client.d.ts","../../../node_modules/undici-types/errors.d.ts","../../../node_modules/undici-types/dispatcher.d.ts","../../../node_modules/undici-types/global-dispatcher.d.ts","../../../node_modules/undici-types/global-origin.d.ts","../../../node_modules/undici-types/pool-stats.d.ts","../../../node_modules/undici-types/pool.d.ts","../../../node_modules/undici-types/handlers.d.ts","../../../node_modules/undici-types/balanced-pool.d.ts","../../../node_modules/undici-types/round-robin-pool.d.ts","../../../node_modules/undici-types/h2c-client.d.ts","../../../node_modules/undici-types/agent.d.ts","../../../node_modules/undici-types/dispatcher1-wrapper.d.ts","../../../node_modules/undici-types/mock-interceptor.d.ts","../../../node_modules/undici-types/mock-call-history.d.ts","../../../node_modules/undici-types/mock-agent.d.ts","../../../node_modules/undici-types/mock-client.d.ts","../../../node_modules/undici-types/mock-pool.d.ts","../../../node_modules/undici-types/snapshot-agent.d.ts","../../../node_modules/undici-types/mock-errors.d.ts","../../../node_modules/undici-types/proxy-agent.d.ts","../../../node_modules/undici-types/socks5-proxy-agent.d.ts","../../../node_modules/undici-types/env-http-proxy-agent.d.ts","../../../node_modules/undici-types/retry-handler.d.ts","../../../node_modules/undici-types/retry-agent.d.ts","../../../node_modules/undici-types/api.d.ts","../../../node_modules/undici-types/cache-interceptor.d.ts","../../../node_modules/undici-types/interceptors.d.ts","../../../node_modules/undici-types/util.d.ts","../../../node_modules/undici-types/cookies.d.ts","../../../node_modules/undici-types/patch.d.ts","../../../node_modules/undici-types/websocket.d.ts","../../../node_modules/undici-types/eventsource.d.ts","../../../node_modules/undici-types/diagnostics-channel.d.ts","../../../node_modules/undici-types/content-type.d.ts","../../../node_modules/undici-types/cache.d.ts","../../../node_modules/undici-types/index.d.ts","../../../node_modules/@types/node/web-globals/fetch.d.ts","../../../node_modules/@types/node/web-globals/importmeta.d.ts","../../../node_modules/@types/node/web-globals/messaging.d.ts","../../../node_modules/@types/node/web-globals/navigator.d.ts","../../../node_modules/@types/node/web-globals/performance.d.ts","../../../node_modules/@types/node/web-globals/storage.d.ts","../../../node_modules/@types/node/web-globals/streams.d.ts","../../../node_modules/@types/node/web-globals/timers.d.ts","../../../node_modules/@types/node/web-globals/url.d.ts","../../../node_modules/@types/node/assert.d.ts","../../../node_modules/@types/node/assert/strict.d.ts","../../../node_modules/@types/node/async_hooks.d.ts","../../../node_modules/@types/node/buffer.d.ts","../../../node_modules/@types/node/child_process.d.ts","../../../node_modules/@types/node/cluster.d.ts","../../../node_modules/@types/node/console.d.ts","../../../node_modules/@types/node/constants.d.ts","../../../node_modules/@types/node/crypto.d.ts","../../../node_modules/@types/node/dgram.d.ts","../../../node_modules/@types/node/diagnostics_channel.d.ts","../../../node_modules/@types/node/dns.d.ts","../../../node_modules/@types/node/dns/promises.d.ts","../../../node_modules/@types/node/domain.d.ts","../../../node_modules/@types/node/events.d.ts","../../../node_modules/@types/node/fs.d.ts","../../../node_modules/@types/node/fs/promises.d.ts","../../../node_modules/@types/node/http.d.ts","../../../node_modules/@types/node/http2.d.ts","../../../node_modules/@types/node/https.d.ts","../../../node_modules/@types/node/inspector.d.ts","../../../node_modules/@types/node/inspector.generated.d.ts","../../../node_modules/@types/node/inspector/promises.d.ts","../../../node_modules/@types/node/module.d.ts","../../../node_modules/@types/node/net.d.ts","../../../node_modules/buffer/index.d.ts","../../../node_modules/@types/node/os.d.ts","../../../node_modules/@types/node/path.d.ts","../../../node_modules/@types/node/path/posix.d.ts","../../../node_modules/@types/node/path/win32.d.ts","../../../node_modules/@types/node/perf_hooks.d.ts","../../../node_modules/@types/node/process.d.ts","../../../node_modules/@types/node/punycode.d.ts","../../../node_modules/@types/node/querystring.d.ts","../../../node_modules/@types/node/quic.d.ts","../../../node_modules/@types/node/readline.d.ts","../../../node_modules/@types/node/readline/promises.d.ts","../../../node_modules/@types/node/repl.d.ts","../../../node_modules/@types/node/sea.d.ts","../../../node_modules/@types/node/sqlite.d.ts","../../../node_modules/@types/node/stream.d.ts","../../../node_modules/@types/node/stream/consumers.d.ts","../../../node_modules/@types/node/stream/iter.d.ts","../../../node_modules/@types/node/stream/promises.d.ts","../../../node_modules/@types/node/stream/web.d.ts","../../../node_modules/@types/node/string_decoder.d.ts","../../../node_modules/@types/node/test.d.ts","../../../node_modules/@types/node/test/reporters.d.ts","../../../node_modules/@types/node/timers.d.ts","../../../node_modules/@types/node/timers/promises.d.ts","../../../node_modules/@types/node/tls.d.ts","../../../node_modules/@types/node/trace_events.d.ts","../../../node_modules/@types/node/tty.d.ts","../../../node_modules/@types/node/url.d.ts","../../../node_modules/@types/node/util.d.ts","../../../node_modules/@types/node/util/types.d.ts","../../../node_modules/@types/node/v8.d.ts","../../../node_modules/@types/node/vm.d.ts","../../../node_modules/@types/node/wasi.d.ts","../../../node_modules/@types/node/worker_threads.d.ts","../../../node_modules/@types/node/zlib.d.ts","../../../node_modules/@types/node/zlib/iter.d.ts","../../../node_modules/@types/node/index.d.ts","../../../node_modules/devtools-protocol/types/protocol.d.ts","../../../node_modules/devtools-protocol/types/protocol-mapping.d.ts","../../../node_modules/typed-query-selector/parser.d.ts","../../../node_modules/webdriver-bidi-protocol/out/gen/main.d.ts","../../../node_modules/webdriver-bidi-protocol/out/gen/permissions.d.ts","../../../node_modules/webdriver-bidi-protocol/out/gen/web-bluetooth.d.ts","../../../node_modules/webdriver-bidi-protocol/out/gen/ua-client-hints.d.ts","../../../node_modules/webdriver-bidi-protocol/out/gen/mapping.d.ts","../../../node_modules/webdriver-bidi-protocol/out/index.d.ts","../../../node_modules/puppeteer-core/lib/types.d.ts","../../../node_modules/puppeteer/lib/types.d.ts","./src/types.ts","../shared/dist/race-with-timeout.d.ts","./src/meta/keys.ts","./src/meta/parsers.ts","./src/meta/classify.ts","./src/meta/collect-head.ts","./src/meta/id-extractors.ts","./src/meta/tag-detection.ts","./src/parse-url.ts","./src/dom-evaluation.ts","./src/extract-meta.ts","./src/get-main-contents.ts","../puppeteer-page-scan/dist/types.d.ts","../puppeteer-general-actions/dist/types.d.ts","../puppeteer-general-actions/dist/create-listener.d.ts","../puppeteer-general-actions/dist/index.d.ts","../shared/dist/random-int.d.ts","../shared/dist/sample-distribution.d.ts","../shared/dist/delay.d.ts","../puppeteer-page-scan/dist/before-page-scan.d.ts","../puppeteer-page-scan/dist/default-sizes.d.ts","../puppeteer-page-scan/dist/read-page-hooks.d.ts","../puppeteer-page-scan/dist/page-scan-listener.d.ts","../puppeteer-page-scan/dist/index.d.ts","../shared/dist/retry.d.ts","../shared/dist/typed-await-event-emitter.d.ts","./src/is-error.ts","./src/is-html-content-type.ts","../shared/dist/str-to-regex.d.ts","./src/keyword-check.ts","./src/measure-scroll-height.ts","./src/network-disconnection.ts","./src/to-console-log-entry.ts","./src/to-page-error-entry.ts","./src/scraper.ts","./src/main-content-selectors.ts","./src/index.ts","./src/meta/simple-wappalyzer.d.ts"],"fileIdsList":[[90,98,163,171,175,178,180,181,182,195],[98,163,171,175,178,180,181,182,195],[98,160,161,163,171,175,178,180,181,182,195],[98,162,163,171,175,178,180,181,182,195],[163,171,175,178,180,181,182,195],[98,163,171,175,178,180,181,182,195,204],[98,163,164,169,171,174,175,178,180,181,182,184,195,200,213],[98,163,164,165,171,174,175,178,180,181,182,195],[98,163,166,171,175,178,180,181,182,195,214],[98,163,167,168,171,175,178,180,181,182,186,195],[98,163,168,171,175,178,180,181,182,195,200,210],[98,163,169,171,174,175,178,180,181,182,184,195],[98,162,163,170,171,175,178,180,181,182,195],[98,163,171,172,175,178,180,181,182,195],[98,163,171,173,174,175,178,180,181,182,195],[98,162,163,171,174,175,178,180,181,182,195],[98,163,171,174,175,176,178,180,181,182,195,200,213],[98,163,171,174,175,176,178,180,181,182,195,200,202,204],[98,150,163,171,174,175,177,178,180,181,182,184,195,200,213],[98,163,171,174,175,177,178,180,181,182,184,195,200,210,213],[98,163,171,175,177,178,179,180,181,182,195,200,210,213],[97,98,99,100,101,102,103,104,105,106,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221],[98,163,171,174,175,178,180,181,182,195],[98,163,171,175,178,180,182,195],[98,163,171,175,178,180,181,182,183,195,213],[98,163,171,174,175,178,180,181,182,184,195,200],[98,163,171,175,178,180,181,182,186,195],[98,163,171,175,178,180,181,182,187,195],[98,163,171,174,175,178,180,181,182,190,195],[98,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220],[98,163,171,175,178,180,181,182,192,195],[98,163,171,175,178,180,181,182,193,195],[98,163,168,171,175,178,180,181,182,184,195,204],[98,163,171,174,175,178,180,181,182,195,196],[98,163,171,175,178,180,181,182,195,197,214,217],[98,163,171,174,175,178,180,181,182,195,200,203,204],[98,163,171,175,178,180,181,182,195,201,204],[98,163,171,175,178,180,181,182,195,202],[98,163,171,175,178,180,181,182,195,204,214],[98,163,171,175,178,180,181,182,195,205],[98,160,163,171,175,178,180,181,182,195,200,207,213],[98,163,171,175,178,180,181,182,195,200,206],[98,163,171,174,175,178,180,181,182,195,208,209],[98,163,171,175,178,180,181,182,195,208,209],[98,163,168,171,175,178,180,181,182,184,195,200,210],[98,163,171,175,178,180,181,182,195,211],[98,163,171,175,178,180,181,182,184,195,212],[98,163,171,175,177,178,180,181,182,193,195,213],[98,163,171,175,178,180,181,182,195,214,215],[98,163,168,171,175,178,180,181,182,195,215],[98,163,171,175,178,180,181,182,195,200,216],[98,163,171,175,178,180,181,182,183,195,217],[98,163,171,175,178,180,181,182,195,218],[98,163,166,171,175,178,180,181,182,195],[98,163,168,171,175,178,180,181,182,195],[98,163,171,175,178,180,181,182,195,214],[98,150,163,171,175,178,180,181,182,195],[98,163,171,175,178,180,181,182,195,213],[98,163,171,175,178,180,181,182,195,219],[98,163,171,175,178,180,181,182,190,195],[98,163,171,175,178,180,181,182,195,209],[98,150,163,171,174,175,176,178,180,181,182,190,195,200,204,213,216,217,219],[98,163,171,175,178,180,181,182,195,200,220],[98,163,171,175,178,180,181,182,195,202,221],[98,163,171,175,178,180,181,182,195,223],[98,163,164,171,175,178,180,181,182,195,200,222,223,224,225,231],[98,163,171,175,178,180,181,182,195,232],[98,113,116,119,120,163,171,175,178,180,181,182,195,213],[98,116,163,171,175,178,180,181,182,195,200,213],[98,116,120,163,171,175,178,180,181,182,195,213],[98,163,171,175,178,180,181,182,195,200],[98,110,163,171,175,178,180,181,182,195],[98,114,163,171,175,178,180,181,182,195],[98,112,113,116,163,171,175,178,180,181,182,195,213],[98,163,171,175,178,180,181,182,184,195,210],[98,163,171,175,178,180,181,182,195,222],[98,110,163,171,175,178,180,181,182,195,222],[98,112,116,163,171,175,178,180,181,182,184,195,213],[98,107,108,109,111,115,163,171,174,175,178,180,181,182,195,200,213],[98,116,163,171,175,178,180,181,182,195],[98,116,125,134,163,171,175,178,180,181,182,195],[98,108,114,163,171,175,178,180,181,182,195],[98,116,144,145,163,171,175,178,180,181,182,195],[98,108,111,116,163,171,175,178,180,181,182,195,204,213,222],[98,112,116,163,171,175,178,180,181,182,195,213],[98,107,163,171,175,178,180,181,182,195],[98,110,111,112,114,115,116,117,118,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,145,146,147,148,149,163,171,175,178,180,181,182,195],[98,116,137,140,163,171,175,178,180,181,182,195],[98,116,125,127,128,163,171,175,178,180,181,182,195],[98,114,116,127,129,163,171,175,178,180,181,182,195],[98,115,163,171,175,178,180,181,182,195],[98,108,110,116,163,171,175,178,180,181,182,195],[98,116,120,127,129,163,171,175,178,180,181,182,195],[98,120,163,171,175,178,180,181,182,195],[98,114,116,119,163,171,175,178,180,181,182,195,213],[98,108,112,116,125,163,171,175,178,180,181,182,195],[98,116,137,163,171,175,178,180,181,182,195],[98,129,163,171,175,178,180,181,182,195],[98,108,112,116,120,163,171,175,178,180,181,182,195],[98,110,116,144,163,171,175,178,180,181,182,195,204,219,222],[98,163,171,175,178,180,181,182,195,226,227,228,229],[98,163,171,175,178,180,181,182,195,226,227,228,229,230],[91,98,163,171,175,178,180,181,182,195],[92,93,98,163,171,175,178,180,181,182,195,233,234,235,238,239,241,242],[98,163,171,175,178,180,181,182,195,234,238,239,241],[98,163,171,175,178,180,181,182,195,233,234],[95,96,98,163,171,175,178,180,181,182,195,234,244,260,268,269],[98,163,171,175,178,180,181,182,195,262],[98,163,171,175,178,180,181,182,195,233,234,257],[93,98,163,171,175,178,180,181,182,195,236,237],[93,98,163,171,175,178,180,181,182,195],[93,98,163,171,175,178,180,181,182,195,236],[92,93,98,163,171,175,178,180,181,182,195,240,271],[94,98,163,171,175,178,180,181,182,195],[92,95,96,98,163,171,175,178,180,181,182,195,233,234,238,242,243,245,257,258,259,260,261,263,264,265,266,267],[98,163,171,175,178,180,181,182,195,234],[93,94,95,96,98,163,171,175,178,180,181,182,195,233],[98,163,171,175,178,180,181,182,195,247],[98,163,171,175,178,180,181,182,195,247,248],[98,163,171,175,178,180,181,182,195,233,246,249,252],[98,163,171,175,178,180,181,182,195,246],[98,163,171,175,178,180,181,182,195,246,253,254,255,256],[98,163,171,175,178,180,181,182,195,246,249],[98,163,171,175,178,180,181,182,195,233],[98,163,171,175,178,180,181,182,195,251],[98,163,171,175,178,180,181,182,195,252],[98,163,171,175,178,180,181,182,195,250]],"fileInfos":[{"version":"bcd24271a113971ba9eb71ff8cb01bc6b0f872a85c23fdbe5d93065b375933cd","affectsGlobalScope":true,"impliedFormat":1},{"version":"3f88bedbeb09c6f5a6645cb24c7c55f1aa22d19ae96c8e6959cbd8b85a707bc6","impliedFormat":1},{"version":"7fe93b39b810eadd916be8db880dd7f0f7012a5cc6ffb62de8f62a2117fa6f1f","impliedFormat":1},{"version":"bb0074cc08b84a2374af33d8bf044b80851ccc9e719a5e202eacf40db2c31600","impliedFormat":1},{"version":"1a7daebe4f45fb03d9ec53d60008fbf9ac45a697fdc89e4ce218bc94b94f94d6","impliedFormat":1},{"version":"f94b133a3cb14a288803be545ac2683e0d0ff6661bcd37e31aaaec54fc382aed","impliedFormat":1},{"version":"f59d0650799f8782fd74cf73c19223730c6d1b9198671b1c5b3a38e1188b5953","impliedFormat":1},{"version":"8a15b4607d9a499e2dbeed9ec0d3c0d7372c850b2d5f1fb259e8f6d41d468a84","impliedFormat":1},{"version":"26e0fe14baee4e127f4365d1ae0b276f400562e45e19e35fd2d4c296684715e6","impliedFormat":1},{"version":"1e9332c23e9a907175e0ffc6a49e236f97b48838cc8aec9ce7e4cec21e544b65","impliedFormat":1},{"version":"3753fbc1113dc511214802a2342280a8b284ab9094f6420e7aa171e868679f91","impliedFormat":1},{"version":"999ca32883495a866aa5737fe1babc764a469e4cde6ee6b136a4b9ae68853e4b","impliedFormat":1},{"version":"17f13ecb98cbc39243f2eee1f16d45cd8ec4706b03ee314f1915f1a8b42f6984","impliedFormat":1},{"version":"d6b1eba8496bdd0eed6fc8a685768fe01b2da4a0388b5fe7df558290bffcf32f","affectsGlobalScope":true,"impliedFormat":1},{"version":"7f57fc4404ff020bc45b9c620aff2b40f700b95fe31164024c453a5e3c163c54","impliedFormat":1},{"version":"eadcffda2aa84802c73938e589b9e58248d74c59cb7fcbca6474e3435ac15504","affectsGlobalScope":true,"impliedFormat":1},{"version":"105ba8ff7ba746404fe1a2e189d1d3d2e0eb29a08c18dded791af02f29fb4711","affectsGlobalScope":true,"impliedFormat":1},{"version":"00343ca5b2e3d48fa5df1db6e32ea2a59afab09590274a6cccb1dbae82e60c7c","affectsGlobalScope":true,"impliedFormat":1},{"version":"ebd9f816d4002697cb2864bea1f0b70a103124e18a8cd9645eeccc09bdf80ab4","affectsGlobalScope":true,"impliedFormat":1},{"version":"2c1afac30a01772cd2a9a298a7ce7706b5892e447bb46bdbeef720f7b5da77ad","affectsGlobalScope":true,"impliedFormat":1},{"version":"7b0225f483e4fa685625ebe43dd584bb7973bbd84e66a6ba7bbe175ee1048b4f","affectsGlobalScope":true,"impliedFormat":1},{"version":"c0a4b8ac6ce74679c1da2b3795296f5896e31c38e888469a8e0f99dc3305de60","affectsGlobalScope":true,"impliedFormat":1},{"version":"3084a7b5f569088e0146533a00830e206565de65cae2239509168b11434cd84f","affectsGlobalScope":true,"impliedFormat":1},{"version":"c5079c53f0f141a0698faa903e76cb41cd664e3efb01cc17a5c46ec2eb0bef42","affectsGlobalScope":true,"impliedFormat":1},{"version":"32cafbc484dea6b0ab62cf8473182bbcb23020d70845b406f80b7526f38ae862","affectsGlobalScope":true,"impliedFormat":1},{"version":"fca4cdcb6d6c5ef18a869003d02c9f0fd95df8cfaf6eb431cd3376bc034cad36","affectsGlobalScope":true,"impliedFormat":1},{"version":"b93ec88115de9a9dc1b602291b85baf825c85666bf25985cc5f698073892b467","affectsGlobalScope":true,"impliedFormat":1},{"version":"f5c06dcc3fe849fcb297c247865a161f995cc29de7aa823afdd75aaaddc1419b","affectsGlobalScope":true,"impliedFormat":1},{"version":"b77e16112127a4b169ef0b8c3a4d730edf459c5f25fe52d5e436a6919206c4d7","affectsGlobalScope":true,"impliedFormat":1},{"version":"fbffd9337146eff822c7c00acbb78b01ea7ea23987f6c961eba689349e744f8c","affectsGlobalScope":true,"impliedFormat":1},{"version":"a995c0e49b721312f74fdfb89e4ba29bd9824c770bbb4021d74d2bf560e4c6bd","affectsGlobalScope":true,"impliedFormat":1},{"version":"c7b3542146734342e440a84b213384bfa188835537ddbda50d30766f0593aff9","affectsGlobalScope":true,"impliedFormat":1},{"version":"ce6180fa19b1cccd07ee7f7dbb9a367ac19c0ed160573e4686425060b6df7f57","affectsGlobalScope":true,"impliedFormat":1},{"version":"3f02e2476bccb9dbe21280d6090f0df17d2f66b74711489415a8aa4df73c9675","affectsGlobalScope":true,"impliedFormat":1},{"version":"45e3ab34c1c013c8ab2dc1ba4c80c780744b13b5676800ae2e3be27ae862c40c","affectsGlobalScope":true,"impliedFormat":1},{"version":"805c86f6cca8d7702a62a844856dbaa2a3fd2abef0536e65d48732441dde5b5b","affectsGlobalScope":true,"impliedFormat":1},{"version":"e42e397f1a5a77994f0185fd1466520691456c772d06bf843e5084ceb879a0ad","affectsGlobalScope":true,"impliedFormat":1},{"version":"f4c2b41f90c95b1c532ecc874bd3c111865793b23aebcc1c3cbbabcd5d76ffb0","affectsGlobalScope":true,"impliedFormat":1},{"version":"ab26191cfad5b66afa11b8bf935ef1cd88fabfcb28d30b2dfa6fad877d050332","affectsGlobalScope":true,"impliedFormat":1},{"version":"2088bc26531e38fb05eedac2951480db5309f6be3fa4a08d2221abb0f5b4200d","affectsGlobalScope":true,"impliedFormat":1},{"version":"cb9d366c425fea79716a8fb3af0d78e6b22ebbab3bd64d25063b42dc9f531c1e","affectsGlobalScope":true,"impliedFormat":1},{"version":"500934a8089c26d57ebdb688fc9757389bb6207a3c8f0674d68efa900d2abb34","affectsGlobalScope":true,"impliedFormat":1},{"version":"689da16f46e647cef0d64b0def88910e818a5877ca5379ede156ca3afb780ac3","affectsGlobalScope":true,"impliedFormat":1},{"version":"bc21cc8b6fee4f4c2440d08035b7ea3c06b3511314c8bab6bef7a92de58a2593","affectsGlobalScope":true,"impliedFormat":1},{"version":"7ca53d13d2957003abb47922a71866ba7cb2068f8d154877c596d63c359fed25","affectsGlobalScope":true,"impliedFormat":1},{"version":"54725f8c4df3d900cb4dac84b64689ce29548da0b4e9b7c2de61d41c79293611","affectsGlobalScope":true,"impliedFormat":1},{"version":"e5594bc3076ac29e6c1ebda77939bc4c8833de72f654b6e376862c0473199323","affectsGlobalScope":true,"impliedFormat":1},{"version":"2f3eb332c2d73e729f3364fcc0c2b375e72a121e8157d25a82d67a138c83a95c","affectsGlobalScope":true,"impliedFormat":1},{"version":"6f4427f9642ce8d500970e4e69d1397f64072ab73b97e476b4002a646ac743b1","affectsGlobalScope":true,"impliedFormat":1},{"version":"48915f327cd1dea4d7bd358d9dc7732f58f9e1626a29cc0c05c8c692419d9bb7","affectsGlobalScope":true,"impliedFormat":1},{"version":"b7bf9377723203b5a6a4b920164df22d56a43f593269ba6ae1fdc97774b68855","affectsGlobalScope":true,"impliedFormat":1},{"version":"db9709688f82c9e5f65a119c64d835f906efe5f559d08b11642d56eb85b79357","affectsGlobalScope":true,"impliedFormat":1},{"version":"4b25b8c874acd1a4cf8444c3617e037d444d19080ac9f634b405583fd10ce1f7","affectsGlobalScope":true,"impliedFormat":1},{"version":"37be57d7c90cf1f8112ee2636a068d8fd181289f82b744160ec56a7dc158a9f5","affectsGlobalScope":true,"impliedFormat":1},{"version":"a917a49ac94cd26b754ab84e113369a75d1a47a710661d7cd25e961cc797065f","affectsGlobalScope":true,"impliedFormat":1},{"version":"6d3261badeb7843d157ef3e6f5d1427d0eeb0af0cf9df84a62cfd29fd47ac86e","affectsGlobalScope":true,"impliedFormat":1},{"version":"195daca651dde22f2167ac0d0a05e215308119a3100f5e6268e8317d05a92526","affectsGlobalScope":true,"impliedFormat":1},{"version":"8b11e4285cd2bb164a4dc09248bdec69e9842517db4ca47c1ba913011e44ff2f","affectsGlobalScope":true,"impliedFormat":1},{"version":"0508571a52475e245b02bc50fa1394065a0a3d05277fbf5120c3784b85651799","affectsGlobalScope":true,"impliedFormat":1},{"version":"8f9af488f510c3015af3cc8c267a9e9d96c4dd38a1fdff0e11dc5a544711415b","affectsGlobalScope":true,"impliedFormat":1},{"version":"fc611fea8d30ea72c6bbfb599c9b4d393ce22e2f5bfef2172534781e7d138104","affectsGlobalScope":true,"impliedFormat":1},{"version":"0bd714129fca875f7d4c477a1a392200b0bcd13fb2e80928cd334b63830ea047","affectsGlobalScope":true,"impliedFormat":1},{"version":"e2c9037ae6cd2c52d80ceef0b3c5ffdb488627d71529cf4f63776daf11161c9a","affectsGlobalScope":true,"impliedFormat":1},{"version":"135d5cf4d345f59f1a9caadfafcd858d3d9cc68290db616cc85797224448cccc","affectsGlobalScope":true,"impliedFormat":1},{"version":"bc238c3f81c2984751932b6aab223cd5b830e0ac6cad76389e5e9d2ffc03287d","affectsGlobalScope":true,"impliedFormat":1},{"version":"4a07f9b76d361f572620927e5735b77d6d2101c23cdd94383eb5b706e7b36357","affectsGlobalScope":true,"impliedFormat":1},{"version":"7c4e8dc6ab834cc6baa0227e030606d29e3e8449a9f67cdf5605ea5493c4db29","affectsGlobalScope":true,"impliedFormat":1},{"version":"de7ba0fd02e06cd9a5bd4ab441ed0e122735786e67dde1e849cced1cd8b46b78","affectsGlobalScope":true,"impliedFormat":1},{"version":"6148e4e88d720a06855071c3db02069434142a8332cf9c182cda551adedf3156","affectsGlobalScope":true,"impliedFormat":1},{"version":"d63dba625b108316a40c95a4425f8d4294e0deeccfd6c7e59d819efa19e23409","affectsGlobalScope":true,"impliedFormat":1},{"version":"0568d6befee03dd435bed4fc25c4e46865b24bdcb8c563fdc21f580a2c301904","affectsGlobalScope":true,"impliedFormat":1},{"version":"30d62269b05b584741f19a5369852d5d34895aa2ac4fd948956f886d15f9cc0d","affectsGlobalScope":true,"impliedFormat":1},{"version":"f128dae7c44d8f35ee42e0a437000a57c9f06cc04f8b4fb42eebf44954d53dc8","affectsGlobalScope":true,"impliedFormat":1},{"version":"ffbe6d7b295306b2ba88030f65b74c107d8d99bdcf596ea99c62a02f606108b0","affectsGlobalScope":true,"impliedFormat":1},{"version":"996fb27b15277369c68a4ba46ed138b4e9e839a02fb4ec756f7997629242fd9f","affectsGlobalScope":true,"impliedFormat":1},{"version":"79b712591b270d4778c89706ca2cfc56ddb8c3f895840e477388f1710dc5eda9","affectsGlobalScope":true,"impliedFormat":1},{"version":"20884846cef428b992b9bd032e70a4ef88e349263f63aeddf04dda837a7dba26","affectsGlobalScope":true,"impliedFormat":1},{"version":"5fcab789c73a97cd43828ee3cc94a61264cf24d4c44472ce64ced0e0f148bdb2","affectsGlobalScope":true,"impliedFormat":1},{"version":"db59a81f070c1880ad645b2c0275022baa6a0c4f0acdc58d29d349c6efcf0903","affectsGlobalScope":true,"impliedFormat":1},{"version":"673294292640f5722b700e7d814e17aaf7d93f83a48a2c9b38f33cbc940ad8b0","affectsGlobalScope":true,"impliedFormat":1},{"version":"d786b48f934cbca483b3c6d0a798cb43bbb4ada283e76fb22c28e53ae05b9e69","affectsGlobalScope":true,"impliedFormat":1},{"version":"1ecb8e347cb6b2a8927c09b86263663289418df375f5e68e11a0ae683776978f","affectsGlobalScope":true,"impliedFormat":1},{"version":"142efd4ce210576f777dc34df121777be89eda476942d6d6663b03dcb53be3ff","affectsGlobalScope":true,"impliedFormat":1},{"version":"379bc41580c2d774f82e828c70308f24a005b490c25ba34d679d84bcf05c3d9d","affectsGlobalScope":true,"impliedFormat":1},{"version":"ed484fb2aa8a1a23d0277056ec3336e0a0b52f9b8d6a961f338a642faf43235d","affectsGlobalScope":true,"impliedFormat":1},{"version":"4ffedae1d1c2d53fdbca1c96d3c7dda544281f7d262f99b6880634f8fd8d9820","affectsGlobalScope":true,"impliedFormat":1},{"version":"83a730b125d477dd264df8ba479afab27a3dae7152b005c214ab94dc7ee44fd3","affectsGlobalScope":true,"impliedFormat":1},{"version":"1ce14b81c5cc821994aa8ec1d42b220dd41b27fcc06373bce3958af7421b77d4","affectsGlobalScope":true,"impliedFormat":1},{"version":"b3a048b3e9302ef9a34ef4ebb9aecfb28b66abb3bce577206a79fee559c230da","affectsGlobalScope":true,"impliedFormat":1},{"version":"fb893a0dfc3c9fb0f9ca93d0648694dd95f33cbad2c0f2c629f842981dfd4e2e","impliedFormat":1},{"version":"89e326922cadcc2331d7e851011cf9f0456a681aaf3c95b48b81f8d80e8cdfba","impliedFormat":1},{"version":"2c659ecaad09d70a5ed0cd5891f0b28b99b3c8e7406ccf717542f11100e1ffdf","signature":"b8fe33dafe03318964723bf2aa68ebbe1410415ec7bba32d8e889fc2ad400bd6","impliedFormat":99},{"version":"81e2f71482f830a4b58763c4643bec531cc3deef571065d9181801e1e3833540","signature":"30f666a23277efe541aa63162c2a92b8223916f5b89f4a1f931e9d1959dbddc6","impliedFormat":99},{"version":"711014bc66c9bc920a37b3cf1dc86c2858678558e983c3f5c31fda0d82e22d5f","impliedFormat":99},{"version":"5fc2e5495efb0b71dcb0964f9d1e6c06c11d421bb154a7306648149dec2e23b0","impliedFormat":99},{"version":"23f6f80b74cc0d7d3f6c368d3e6c65fcc6383f6667d6f5c502ddb660789929c4","impliedFormat":99},{"version":"0ccdaa19852d25ecd84eec365c3bfa16e7859cadecf6e9ca6d0dbbbee439743f","affectsGlobalScope":true,"impliedFormat":1},{"version":"cc2110f7decca6bfb9392e30421cfa1436479e4a6756e8fec6cbc22625d4f881","affectsGlobalScope":true,"impliedFormat":1},{"version":"f53a7652392cf26ebbe4e29fd0672aa87c93bd6d0241289c13fab87b9ac35c8a","affectsGlobalScope":true,"impliedFormat":1},{"version":"e5e01375c9e124a83b52ee4b3244ed1a4d214a6cfb54ac73e164a823a4a7860a","affectsGlobalScope":true,"impliedFormat":1},{"version":"f90ae2bbce1505e67f2f6502392e318f5714bae82d2d969185c4a6cecc8af2fc","affectsGlobalScope":true,"impliedFormat":1},{"version":"4b58e207b93a8f1c88bbf2a95ddc686ac83962b13830fe8ad3f404ffc7051fb4","affectsGlobalScope":true,"impliedFormat":1},{"version":"1fefabcb2b06736a66d2904074d56268753654805e829989a46a0161cd8412c5","affectsGlobalScope":true,"impliedFormat":1},{"version":"b00a630557d1622ad312633bdbfbdb9c6b7220d948dca9f899db30679f160074","affectsGlobalScope":true,"impliedFormat":1},{"version":"c18a99f01eb788d849ad032b31cafd49de0b19e083fe775370834c5675d7df8e","affectsGlobalScope":true,"impliedFormat":1},{"version":"5247874c2a23b9a62d178ae84f2db6a1d54e6c9a2e7e057e178cc5eea13757fc","affectsGlobalScope":true,"impliedFormat":1},{"version":"cdcf9ea426ad970f96ac930cd176d5c69c6c24eebd9fc580e1572d6c6a88f62c","impliedFormat":1},{"version":"88809d6c1b9c78d04a133646a6feb926def05a8774c308c7c93bc32ee163d271","impliedFormat":1},{"version":"156a859e21ef3244d13afeeba4e49760a6afa035c149dda52f0c45ea8903b338","impliedFormat":1},{"version":"3ac40516c33b87f751f7507346933081a26cdb8a3e11a6b3aa07d23f803c85db","impliedFormat":1},{"version":"615754924717c0b1e293e083b83503c0a872717ad5aa60ed7f1a699eb1b4ea5c","impliedFormat":1},{"version":"14e9acf826baba0ef4b5665704084896e7bcc06f65a9ab13af7e93d27d6b7069","impliedFormat":1},{"version":"68834d631c8838c715f225509cfc3927913b9cc7a4870460b5b60c8dbdb99baf","impliedFormat":1},{"version":"829bc57ee8f287b490ab5bbc5a962fca57e432c1e38ec680ecd3ecaf12800613","impliedFormat":1},{"version":"eec76bf6b9346f3f95fa402621b889489e96930e72295b0369022f332e9b4a6a","impliedFormat":1},{"version":"3a3ff14da53d5013f3e6d8c4ad55225e3649c08786c4421ce639c00d8d589b7d","impliedFormat":1},{"version":"ea6bc8de8b59f90a7a3960005fd01988f98fd0784e14bc6922dde2e93305ec7d","impliedFormat":1},{"version":"36107995674b29284a115e21a0618c4c2751b32a8766dd4cb3ba740308b16d59","impliedFormat":1},{"version":"914a0ae30d96d71915fc519ccb4efbf2b62c0ddfb3a3fc6129151076bc01dc60","impliedFormat":1},{"version":"38004e6801340cb890afb8cb5a9fc8972297e7f88ab94026e4b0b3c61fb32f8a","impliedFormat":1},{"version":"d243db6b25788f439e7e2f03c05688e92f46764351673bb0e7b2f3631232e186","impliedFormat":1},{"version":"4d327f7d72ad0918275cea3eee49a6a8dc8114ae1d5b7f3f5d0774de75f7439a","impliedFormat":1},{"version":"149f9a9e7f04e67afa0e2a49fc0ff421035c01d6b793cfcae7d2e9f6819431e2","impliedFormat":1},{"version":"e8a9dfa4c75ef6d25df8b40eaa9c31e0a69452aaf2ced4a3f4215dbdbaa876f4","impliedFormat":1},{"version":"a70af845a2eb9dd6e2723e319e14ea7fb28b129ec1361c21509b49305448c323","impliedFormat":1},{"version":"b53dc572d4f187904207ae1166652de47aab8eeb00c254d009cb226863076b56","impliedFormat":1},{"version":"0a60a292b89ca7218b8616f78e5bbd1c96b87e048849469cccb4355e98af959a","impliedFormat":1},{"version":"0b6e25234b4eec6ed96ab138d96eb70b135690d7dd01f3dd8a8ab291c35a683a","impliedFormat":1},{"version":"9666f2f84b985b62400d2e5ab0adae9ff44de9b2a34803c2c5bd3c8325b17dc0","impliedFormat":1},{"version":"40cd35c95e9cf22cfa5bd84e96408b6fcbca55295f4ff822390abb11afbc3dca","impliedFormat":1},{"version":"b1616b8959bf557feb16369c6124a97a0e74ed6f49d1df73bb4b9ddf68acf3f3","impliedFormat":1},{"version":"f501234c5aeeeb5d7659412335227466aaacf30b952372d60afeb21c02c96348","impliedFormat":1},{"version":"40b463c6766ca1b689bfcc46d26b5e295954f32ad43e37ee6953c0a677e4ae2b","impliedFormat":1},{"version":"9ac977503f15bf13ca7c82ad9a32a782f42d43e474824e8b3bffe228fd5f2639","impliedFormat":1},{"version":"8b91ff5bb912be3ea213cbcf0075aace1f5d4ff249a0d227ed673868cb7bfabc","impliedFormat":1},{"version":"80aae6afc67faa5ac0b32b5b8bc8cc9f7fa299cff15cf09cc2e11fd28c6ae29e","impliedFormat":1},{"version":"f473cd2288991ff3221165dcf73cd5d24da30391f87e85b3dd4d0450c787a391","impliedFormat":1},{"version":"499e5b055a5aba1e1998f7311a6c441a369831c70905cc565ceac93c28083d53","impliedFormat":1},{"version":"8aee8b6d4f9f62cf3776cda1305fb18763e2aade7e13cea5bbe699112df85214","impliedFormat":1},{"version":"98498b101803bb3dde9f76a56e65c14b75db1cc8bec5f4db72be541570f74fc5","impliedFormat":1},{"version":"7cb4f431a4591b0e23002bed805dc871a874dfed6b9a3994dce68a6df73e6739","impliedFormat":1},{"version":"5d0375ca7310efb77e3ef18d068d53784faf62705e0ad04569597ae0e755c401","impliedFormat":1},{"version":"59af37caec41ecf7b2e76059c9672a49e682c1a2aa6f9d7dc78878f53aa284d6","impliedFormat":1},{"version":"addf417b9eb3f938fddf8d81e96393a165e4be0d4a8b6402292f9c634b1cb00d","impliedFormat":1},{"version":"436d7b4543b340b0f3eef4310d524242e41369b9652aa9c70428767c4dcac455","impliedFormat":1},{"version":"adf27937dba6af9f08a68c5b1d3fce0ca7d4b960c57e6d6c844e7d1a8e53adae","impliedFormat":1},{"version":"12950411eeab8563b349cb7959543d92d8d02c289ed893d78499a19becb5a8cc","impliedFormat":1},{"version":"2e85db9e6fd73cfa3d7f28e0ab6b55417ea18931423bd47b409a96e4a169e8e6","impliedFormat":1},{"version":"c46e079fe54c76f95c67fb89081b3e399da2c7d109e7dca8e4b58d83e332e605","impliedFormat":1},{"version":"e99963ae1e3a48ca7a7958c02f3e88bb963eb7978c28b68ae6b8c9f03309d83c","impliedFormat":1},{"version":"c3f5289820990ab66b70c7fb5b63cb674001009ff84b13de40619619a9c8175f","affectsGlobalScope":true,"impliedFormat":1},{"version":"b3275d55fac10b799c9546804126239baf020d220136163f763b55a74e50e750","affectsGlobalScope":true,"impliedFormat":1},{"version":"fa68a0a3b7cb32c00e39ee3cd31f8f15b80cac97dce51b6ee7fc14a1e8deb30b","affectsGlobalScope":true,"impliedFormat":1},{"version":"1cf059eaf468efcc649f8cf6075d3cb98e9a35a0fe9c44419ec3d2f5428d7123","affectsGlobalScope":true,"impliedFormat":1},{"version":"6c36e755bced82df7fb6ce8169265d0a7bb046ab4e2cb6d0da0cb72b22033e89","affectsGlobalScope":true,"impliedFormat":1},{"version":"e7721c4f69f93c91360c26a0a84ee885997d748237ef78ef665b153e622b36c1","affectsGlobalScope":true,"impliedFormat":1},{"version":"7a93de4ff8a63bafe62ba86b89af1df0ccb5e40bb85b0c67d6bbcfdcf96bf3d4","affectsGlobalScope":true,"impliedFormat":1},{"version":"90e85f9bc549dfe2b5749b45fe734144e96cd5d04b38eae244028794e142a77e","affectsGlobalScope":true,"impliedFormat":1},{"version":"e0a5deeb610b2a50a6350bd23df6490036a1773a8a71d70f2f9549ab009e67ee","affectsGlobalScope":true,"impliedFormat":1},{"version":"594ae90cacd813fa392ff80d2e0a8eff4e41f4a136329a940e321399dd8895b4","impliedFormat":1},{"version":"d1f333ade8ff35a409b4984e1f11956fe11c61855b0c7e9b59f0313e48b40c4a","impliedFormat":1},{"version":"0224aa4b3464895d69c413a640a19ac2166778a74eb5eb3b36b021c72d42b274","impliedFormat":1},{"version":"0828724f6c17d63075bc7bfdd2f22875c4d00f90a6d8ef16d2e718a9e5f7e135","affectsGlobalScope":true,"impliedFormat":1},{"version":"177459cba484e2f1e08872a3d2fdbca3162d9d43ca5ec9dc0c946835b55f74be","impliedFormat":1},{"version":"2fbf504c4791f9d32cd766cfe6b605bcda63289b925401953a7900db9af85348","impliedFormat":1},{"version":"ed0fb633cae35948d9e144004299a4bdf1ab912667c787b7fbffcd6d8c7b92a2","impliedFormat":1},{"version":"1678b04557dca52feab73cc67610918a7f5e25bfdba3e7fa081acd625d93106d","impliedFormat":1},{"version":"637e244cbc5174cce5482388be2b4b51c49f7ce6dead7316448da61d7aa283b1","impliedFormat":1},{"version":"2ea729503db9793f2691162fec3dd1118cab62e96d025f8eeb376d43ec293395","impliedFormat":1},{"version":"afa8be176b15487addede2f996c733e8d33a23497e6efe01c3945f768cf79184","impliedFormat":1},{"version":"6a0de93048a43c4f492e1fe43cc4ec52eed57d4e03a07c78b2d502e20dbdcfd8","impliedFormat":1},{"version":"2bc7aa4fba46df0bd495425a7c8201437a7d465f83854fac859df2d67f664df3","impliedFormat":1},{"version":"41d17e1ad9a002feb11c8cdd2777e5bbc0cdb1e3f595d237e4dded0b6949983b","impliedFormat":1},{"version":"8c7e618c2a91ea7f6b5cca272a295864e92c16413be8fc56a943e8c7d5320011","affectsGlobalScope":true,"impliedFormat":1},{"version":"66e5d81f637da29b03689fbc84cc61f18c6fdde769b134e0649259384df453e2","impliedFormat":1},{"version":"f2bb6c145c2112b33fa26e7464c9c69212fd3fc163ee389230c22db39408ad1e","impliedFormat":1},{"version":"b02c915a1b0d9777a17e3249674735eec3f2fd929f0d63da84157aac7f9a4345","impliedFormat":1},{"version":"62e8f884c3bc6dff6189b6e662ebe8b238a645938f2df7a97b8a82fca56773a4","impliedFormat":1},{"version":"2c2bdaa1d8ead9f68628d6d9d250e46ee8e81aa4898b4769a36956ae15e060fe","impliedFormat":1},{"version":"57a0d1b3d59063d4af2d3f8aac27cfe3c20a0f5d1faf0f8598ccf0b779637939","impliedFormat":1},{"version":"5ff4433a2deae4f85ab1377e90a7554ce6b47ae51c69a84ca30a6e22fae85834","impliedFormat":1},{"version":"82b91e4e42e6c41bc7fc1b6c2dc5eba6a2ba98375eb1f210e6ff6bba2d54177e","impliedFormat":1},{"version":"97234c5303866576f913d0ccae7d58d6322d9e803c7bf1228a3fda46ab8087b2","affectsGlobalScope":true,"impliedFormat":1},{"version":"93ecf87143cac7b9d05cffc1d6bdc075b7e4fdd48ff05f1fad85043f6ae678d3","impliedFormat":1},{"version":"8e9c23ba78aabc2e0a27033f18737a6df754067731e69dc5f52823957d60a4b6","impliedFormat":1},{"version":"6f200afcb82b3e9a54bed6db23f2edf2508cd266801257312c0f124b47f2bdb9","impliedFormat":1},{"version":"ec501101c2a96133a6c695f934c8f6642149cc728571b29cbb7b770984c1088e","impliedFormat":1},{"version":"b214ebcf76c51b115453f69729ee8aa7b7f8eccdae2a922b568a45c2d7ff52f7","impliedFormat":1},{"version":"429c9cdfa7d126255779efd7e6d9057ced2d69c81859bbab32073bad52e9ba76","impliedFormat":1},{"version":"39338f84e8c4d0e3de7b3c4a7024fb3925f42100eed5cbe73be58902799dff4d","impliedFormat":1},{"version":"f1c92c0b24d678486042dfc038c7c1d6e8520fe384b82155720a42a893204588","affectsGlobalScope":true,"impliedFormat":1},{"version":"230763250f20449fa7b3c9273e1967adb0023dc890d4be1553faca658ee65971","impliedFormat":1},{"version":"c3e9078b60cb329d1221f5878e88cecfa3e74460550e605a58fcfb41a66029ff","impliedFormat":1},{"version":"8413d0641f293aed551c7464615b770d34a02dedede889b9591172287d68e773","impliedFormat":1},{"version":"441b9bb09013654aa3d050e68b06464d8959b473e85868249d9d18f692acd35b","impliedFormat":1},{"version":"bc18a1991ba681f03e13285fa1d7b99b03b67ee671b7bc936254467177543890","impliedFormat":1},{"version":"55246f15e33ff1e2e9e679b25fa9790a48db55dc63d567fe25fac8b6a0efe911","impliedFormat":1},{"version":"fa94bbf532b7af8f394b95fa310980d6e20bd2d4c871c6a6cb9f70f03750a44b","impliedFormat":1},{"version":"8bb351077998efc2d986a6a7373cba6f098a91a3679cefce3ba2aab90493161c","impliedFormat":1},{"version":"734665cf52eb63e20252412ca891601b1405f7c6abef6425f1939cbb15ed239d","affectsGlobalScope":true,"impliedFormat":1},{"version":"7fa2214bb0d64701bc6f9ce8cde2fd2ff8c571e0b23065fa04a8a5a6beb91511","impliedFormat":1},{"version":"f36b3fbe2be150a9ca140da48593f21e6a8172004f92ddc549b43efec39f3e54","impliedFormat":1},{"version":"f12624a4a8d042b68914eac1b0a16571fc1c523173fcdf2517c65d191bd5a86c","impliedFormat":1},{"version":"b4769767f13a1692a66186e01c3aa186ff808d5ff72ed36eda8c37738fb2ac92","impliedFormat":1},{"version":"841983e39bd4cbb463be385e92fda11057cab368bf27100a801c492f1d86cbaa","impliedFormat":1},{"version":"ae6adca0538007af480cf43e20b1e7631c5321406bc515bff980a0d31252f79f","impliedFormat":1},{"version":"1ec3f3a5f04cc42df33274fbe5c0937d9a9e06f249a7a26288d7d54f0763ffd4","impliedFormat":1},{"version":"e4156ddb25aa0e3b5303d372f26957b36778f0f6bbd4326359269873295e3058","affectsGlobalScope":true,"impliedFormat":1},{"version":"cc1b433a84cae05ddc5672d4823170af78606ad21ecef60dbc4570190cbf1357","impliedFormat":1},{"version":"e47f532d6e1617833f13a5b0710c0089d402c89c2f2b54f324e5a20e418d287a","impliedFormat":1},{"version":"7f78cfb2b343838612c192cb251746e3a7c62ac7675726a47e130d9b213f6580","impliedFormat":1},{"version":"201db9cf1687fab1adf5282fcba861f382b32303dc4f67c89d59655e78a25461","impliedFormat":1},{"version":"8e2577e7262051fd3c5bd6ca2b2056d358ff8853565720f92455860824c25188","impliedFormat":1},{"version":"5cbb49cb13edc05e52b239329932cfde34323c6bfe33020e381faa97d2300b22","impliedFormat":1},{"version":"bb9dbb4b2ad81e3e71ec5ba4314973718555b9d04ba2a17dfbf875efecb8e2c0","impliedFormat":1},{"version":"62e02b8bbc05076243cf153d10c27b3d886c7c08558dfb797f280d837881b3cd","impliedFormat":1},{"version":"045a210189ec63c5488410b33f9fca53d77d051599d0d6506d8048551399c5f3","impliedFormat":1},{"version":"99ab6d0d660ce4d21efb52288a39fd35bb3f556980ec5463b1ae8f304a3bbc85","impliedFormat":1},{"version":"3ead5b9bea1c59a375acdd494ac503f6e16a2b47cffbc31da1824fc17d023205","impliedFormat":1},{"version":"c9a2daf6cd1eb854cd5b9e424247c5e306692055738c2effd35f7871d942b76e","impliedFormat":1},{"version":"afa1c49f8e559e413d57343339db857d2a8159435cf9cf7d4deb41718fff1b88","impliedFormat":1},{"version":"e423ccd43347320b61eea979368bd0e80785c0823995b4f46ec3c9b4dadcd45f","impliedFormat":1},{"version":"55987c7f1ee17c227c061ea3b0fc3fdae389f7a88a06b1535614823e2c21820f","impliedFormat":1},{"version":"599e46168d3a3c2c21a50cb3e639c0b77c58bfabbe5a5c294b8b668f559eb7ba","impliedFormat":1},{"version":"6fc329e7ba09a2a03014076561621dcadd57cc25d8e2d92fb96c59e26739e47d","impliedFormat":1},{"version":"2e01ab648ec88951c1b04b98f692eaa77da914bcfa6346b8f298e78f10a19899","impliedFormat":1},{"version":"a081114975823082bd7f2a7743f2634e8669b00c2bd41eaf75ff4d7825dd2e4d","impliedFormat":1},{"version":"b1fc7cad221e8d71166e2109224e6a98894b78325138ce2f423d6eab3ee53d63","impliedFormat":1},{"version":"7854c65e65559b79ea904321c842c618a7b7719703746e7165050a006e50992b","impliedFormat":1},{"version":"6745d6da8a068e8abe19ff5af0c6f97e249297edfdf135d255142060b9ffeeea","impliedFormat":1},{"version":"fc649a6e398a6b17ca3c5311c3ac787ad306142e95735a86362f5adf75e44546","impliedFormat":1},{"version":"46f19b48edd90d4dd17b12ac9c858e6560bde3a0a9c6ed973298e28bf0d10e5d","impliedFormat":99},{"version":"44aa57dded46deaa11565b840954a4008f4b9adf4ba99ea1ef64a9dca0859b6a","impliedFormat":99},{"version":"de1d8b2c2e3d8c1bbde9df077969ca7a80597c19c9c3ecd639198608df400c97","signature":"0bce35102b3d83d87207e0e206a542ce2bf36dff1c0dd8b8f9ef3046ebdfccba","impliedFormat":99},{"version":"6a2d1db0495ce13c2b8966c8fba5f277d4161c0a466174cabe32aa70850e0228","impliedFormat":99},{"version":"a2ce5d65f1ad4bdaffb36d7656d96c0ea9a89f27edc6675fa02e5fa34e96bcb0","signature":"f2dbf7fc3b468db1e037b375b1afe1290ed091f857f1baf9bf84646448e73165","impliedFormat":99},{"version":"089babad084f9688335a93738124aa8736d81e52445b317755ddafaa4def0a55","signature":"dba6bbc3c835e5913a5ae57057aa7f2d14ed338c7cfdb6c5caef89a4e97a41d8","impliedFormat":99},{"version":"8124523216a0d1375559b3d846554467504831f30f3ab7f4909934b3a4540a71","signature":"10543aacf1b98032046c56af4b15b6a7a7f55ce0c0b925504e550936dcc8b3c6","impliedFormat":99},{"version":"f307ec1bd0a8fa421f0969babb707624dc062f9bcdba38882b5cb1642e1ddf68","signature":"4256939fd8c5cae3db691949208d65c91d0a139e467a74909908b3edca755715","impliedFormat":99},{"version":"e27539d55452607eae435cc91f54818ecc9e6f04926147b7d96b8c302332247c","signature":"7a1688ac3e1aa2126e4381eadb6c9489c50baa149e6e8e28691dd7772e19c1af","impliedFormat":99},{"version":"d800716868d27d54d95f5aeaecb8eaaca5ce9478c97654793dc7e4bf67113626","signature":"6a50bd8335bff073544c9add6b982ea6ec1783b33b3b97370b9d5339189669f7","impliedFormat":99},{"version":"06863674736743ede05fa680071d6bcbc697da13cb339afbebfb0039641e884b","signature":"aea04721395462abc47d7c951026ede16c4ca8f7d7a84c2f86a18c4b7af8e561","impliedFormat":99},{"version":"420352e0708dc6a592da71d82dab0d976846ed0c4b3116669c9ca775347d013b","signature":"73e4906fef5f5b9c33841e62d27049595b9eda9687a925dd68ee75e4c154675c","impliedFormat":99},{"version":"d6dbda87b37e13ef4584a5cd91e983596522617c46070bb12cb9d51a6ed628ef","signature":"f3b7245e0af1b1440fa34fa4d4c1fc1c65d1cbbf5b3719940591cafe1b358501","impliedFormat":99},{"version":"d730f0f08739928359f53b5f2057d2957c673d92a986fb4243314e54e1439329","signature":"153092f1d5abba4093fda4f6947c0279a80c01c9b2a38f83db9506669e004ca9","impliedFormat":99},{"version":"2665bb0a675194bdc12c2aae57640743d968ca0e152fd7e4b5b3798e303f5904","impliedFormat":99},{"version":"3bf1e1f4221c93d2602dbe1e8a5c42bd9d83035e591fd8330b5df5064d1cbb35","impliedFormat":99},{"version":"6f697f28a6f67bb02fafb09acdea590f9c288ca4e5ab871bee3612e37756d58f","impliedFormat":99},{"version":"3592ee14f09ea1bd7cc06232cd1d9dd2cf9717c3ff98e034a889398628458a33","impliedFormat":99},{"version":"51e95164bb91b5e35942e2652f67a6faed5aa207f3d304d9182f72aa80c57666","impliedFormat":99},{"version":"a9df07b5283a5d96084b0e1cc70d55ad71b8c0b12aa24b39909d1513f8c02d6f","impliedFormat":99},{"version":"ffde342e2ed009fa61cefb9fbe2a36e8a6051f0d3e538da00d31350ecfb2a3e9","impliedFormat":99},{"version":"1ff84db667ecf295ad0f780e2b38aa63c3577687c64b1b13415ffa78b87ef2dd","impliedFormat":99},{"version":"2502125756dad5170bc6bd5539213d2ea19eea5104515729f94ee90baf0a6e40","impliedFormat":99},{"version":"4634e5e90356906527f7facb89318b271abba009c73e5f55a00d5744f7ee23da","impliedFormat":99},{"version":"daf19d573bc043fe0b93c4e58fe2197f83321483b9a98e802f94c7a8eb765a9b","impliedFormat":99},{"version":"514634d9170a5a86711a6e90ba6b64cc9c2d6a7559acdb737cc5570d072e98d2","impliedFormat":99},{"version":"0bd87ab3f5ebb35156ad60befb5bf4a05a2b59100a129a4d850fdf04ec584639","impliedFormat":99},{"version":"c4b7f9d8ba3e3ef99fb003715b98fcfc26ae7de4c2d04243f1972d300431413d","impliedFormat":99},{"version":"750090051803f03c959b0bdb20f5223e4c798e1ced6924eb93fa049e3885af44","signature":"9437cb1a985a3373aeffb22d0b19b8bb19e196501406be06846383a634dacb97","impliedFormat":99},{"version":"7e1539ff2f22419672d027f5a143c198657febc0853dfe2664c27f5a3ddd11d6","signature":"847720ad6ca542e581988c529c911033cdc00930b88a80bb6c072c370e391dbf","impliedFormat":99},{"version":"0c114992fe460c5d1bccacd65a9be1e5ab80aa0f585077a682479a1b5629095b","impliedFormat":99},{"version":"1459c3948dcaa28da7a877d94e5b7ab57cf3943d3df5c681e15434ae4a98218b","signature":"5d20b3c0a1c92c48e9d17f8bc3ce63c8524adcdc85fa62ab1d2003a5f5f9fdc4","impliedFormat":99},{"version":"a59769722e3443df172a2e4457b5913e8decd20f2a8356cf83f0d8644499db0a","signature":"5de847dc23338cba453358aa5f68f88f383e2936a1139efa08e7481dfbd5cecd","impliedFormat":99},{"version":"8e55538e21f3a9de2af49d64e9cecb56bc8e110e6f48597d16cc3a99af83fd8a","signature":"727a2465c17b98fd96c231b0dbacef373a0b42f01901164af027c4107a6c1f43","impliedFormat":99},{"version":"760f33eddc8ad4eb1a3a91e2f3142de51e206a0314a62c595b1d478984cbb1b7","signature":"0372e9ae1d10be52aba26810d9f76605ef618fa3a8dfdd0b4cf2f70c7664c706","impliedFormat":99},{"version":"d9f2f68f7b46e82656413a4daa82f47eefe99804700472afc940bb853d35efa3","signature":"4fd81e97e7f015bb3f884cf3522cdd0404b7719a9644595d4275aa7501bed801","impliedFormat":99},{"version":"0ba4dfaa34f35b4bc2d9b0c0d1b6ac2fb509501340e690c7884fbd670cc0d59c","signature":"b430da29d8621bb8c69f1d9ecd97ba84a05bb09b3b7e9db8604f4b40cb2755e1","impliedFormat":99},{"version":"77940783509c3b23ff0ecfbc17a04bde608965e95b83e14491c09f2c60a2f15e","signature":"861776460bc3f169279156ed53c64555fe7c945d41a411ba80024f8b70dbc857","impliedFormat":99},{"version":"1fb40a06ad6def59b743bac46dddbe132f0db3700fa5e9c9241f3d9c6e6a1805","signature":"8c5f48733d6ec13eab48a3422633064a1068d8eff947a4317ecbe8639b1c3b3a","impliedFormat":99},{"version":"a5d642e0fb3d1f6fc363f8e09872e4ffff2ff56682d2badcecf4133a2a605f9e","impliedFormat":99}],"root":[92,93,234,[236,245],260,261,[263,271]],"options":{"allowUnreachableCode":false,"allowUnusedLabels":false,"composite":true,"esModuleInterop":true,"exactOptionalPropertyTypes":false,"module":199,"noFallthroughCasesInSwitch":true,"noImplicitOverride":true,"noImplicitReturns":true,"noPropertyAccessFromIndexSignature":false,"noUncheckedIndexedAccess":true,"noUnusedLocals":true,"noUnusedParameters":true,"outDir":"./dist","rootDir":"./src","skipLibCheck":true,"strict":true,"target":11},"referencedMap":[[91,1],[90,2],[160,3],[161,3],[162,4],[98,5],[163,6],[164,7],[165,8],[166,9],[167,10],[168,11],[169,12],[170,13],[171,14],[172,14],[173,15],[174,16],[175,17],[176,18],[99,2],[97,2],[177,19],[178,20],[179,21],[222,22],[180,23],[181,24],[182,23],[183,25],[184,26],[186,27],[187,28],[188,28],[189,28],[190,29],[191,30],[192,31],[193,32],[194,33],[195,34],[196,34],[197,35],[198,2],[199,2],[200,36],[201,37],[202,38],[203,36],[204,39],[205,40],[206,41],[207,42],[208,43],[209,44],[210,45],[211,46],[212,47],[213,48],[214,49],[215,50],[216,51],[217,52],[218,53],[100,23],[101,2],[102,54],[103,55],[104,2],[105,56],[106,2],[151,57],[152,58],[153,59],[154,59],[155,60],[156,2],[157,6],[158,61],[159,58],[219,62],[220,63],[221,64],[185,2],[224,65],[223,2],[232,66],[233,67],[225,2],[88,2],[89,2],[14,2],[15,2],[17,2],[16,2],[2,2],[18,2],[19,2],[20,2],[21,2],[22,2],[23,2],[24,2],[25,2],[3,2],[26,2],[27,2],[4,2],[28,2],[32,2],[29,2],[30,2],[31,2],[33,2],[34,2],[35,2],[5,2],[36,2],[37,2],[38,2],[39,2],[6,2],[43,2],[40,2],[41,2],[42,2],[44,2],[7,2],[45,2],[50,2],[51,2],[46,2],[47,2],[48,2],[49,2],[8,2],[55,2],[52,2],[53,2],[54,2],[56,2],[9,2],[57,2],[58,2],[59,2],[61,2],[60,2],[62,2],[63,2],[10,2],[64,2],[65,2],[66,2],[11,2],[67,2],[68,2],[69,2],[70,2],[71,2],[72,2],[12,2],[73,2],[74,2],[75,2],[76,2],[77,2],[1,2],[78,2],[79,2],[13,2],[80,2],[81,2],[82,2],[83,2],[84,2],[85,2],[86,2],[87,2],[125,68],[139,69],[122,70],[140,71],[149,72],[113,73],[114,74],[112,75],[148,76],[143,77],[147,78],[116,79],[126,80],[136,81],[115,82],[146,83],[110,84],[111,77],[117,80],[118,2],[124,85],[121,80],[108,86],[150,87],[141,88],[129,89],[128,80],[130,90],[133,91],[127,92],[131,93],[144,76],[119,94],[120,95],[134,96],[109,71],[138,97],[137,80],[123,95],[132,98],[135,99],[142,2],[107,2],[145,100],[226,2],[230,101],[227,2],[229,2],[228,2],[231,102],[92,103],[243,104],[244,105],[245,106],[270,107],[260,2],[261,2],[263,108],[269,2],[264,109],[238,110],[239,111],[240,2],[236,2],[237,112],[271,2],[241,113],[93,2],[265,2],[242,114],[268,115],[266,106],[267,116],[234,117],[248,118],[249,119],[247,2],[253,120],[254,121],[257,122],[256,123],[255,121],[246,124],[252,125],[96,2],[95,2],[94,2],[235,2],[250,2],[258,126],[251,127],[262,2],[259,2]],"latestChangedDtsFile":"./dist/index.d.ts","version":"6.0.3"}
|
|
1
|
+
{"fileNames":["../../../node_modules/typescript/lib/lib.es5.d.ts","../../../node_modules/typescript/lib/lib.es2015.d.ts","../../../node_modules/typescript/lib/lib.es2016.d.ts","../../../node_modules/typescript/lib/lib.es2017.d.ts","../../../node_modules/typescript/lib/lib.es2018.d.ts","../../../node_modules/typescript/lib/lib.es2019.d.ts","../../../node_modules/typescript/lib/lib.es2020.d.ts","../../../node_modules/typescript/lib/lib.es2021.d.ts","../../../node_modules/typescript/lib/lib.es2022.d.ts","../../../node_modules/typescript/lib/lib.es2023.d.ts","../../../node_modules/typescript/lib/lib.es2024.d.ts","../../../node_modules/typescript/lib/lib.es2025.d.ts","../../../node_modules/typescript/lib/lib.esnext.d.ts","../../../node_modules/typescript/lib/lib.dom.d.ts","../../../node_modules/typescript/lib/lib.dom.iterable.d.ts","../../../node_modules/typescript/lib/lib.es2015.core.d.ts","../../../node_modules/typescript/lib/lib.es2015.collection.d.ts","../../../node_modules/typescript/lib/lib.es2015.generator.d.ts","../../../node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../../node_modules/typescript/lib/lib.es2015.promise.d.ts","../../../node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../../node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../../node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../../node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../../node_modules/typescript/lib/lib.es2016.array.include.d.ts","../../../node_modules/typescript/lib/lib.es2016.intl.d.ts","../../../node_modules/typescript/lib/lib.es2017.arraybuffer.d.ts","../../../node_modules/typescript/lib/lib.es2017.date.d.ts","../../../node_modules/typescript/lib/lib.es2017.object.d.ts","../../../node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../../../node_modules/typescript/lib/lib.es2017.string.d.ts","../../../node_modules/typescript/lib/lib.es2017.intl.d.ts","../../../node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../../../node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../../../node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../../../node_modules/typescript/lib/lib.es2018.intl.d.ts","../../../node_modules/typescript/lib/lib.es2018.promise.d.ts","../../../node_modules/typescript/lib/lib.es2018.regexp.d.ts","../../../node_modules/typescript/lib/lib.es2019.array.d.ts","../../../node_modules/typescript/lib/lib.es2019.object.d.ts","../../../node_modules/typescript/lib/lib.es2019.string.d.ts","../../../node_modules/typescript/lib/lib.es2019.symbol.d.ts","../../../node_modules/typescript/lib/lib.es2019.intl.d.ts","../../../node_modules/typescript/lib/lib.es2020.bigint.d.ts","../../../node_modules/typescript/lib/lib.es2020.date.d.ts","../../../node_modules/typescript/lib/lib.es2020.promise.d.ts","../../../node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../../../node_modules/typescript/lib/lib.es2020.string.d.ts","../../../node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../../../node_modules/typescript/lib/lib.es2020.intl.d.ts","../../../node_modules/typescript/lib/lib.es2020.number.d.ts","../../../node_modules/typescript/lib/lib.es2021.promise.d.ts","../../../node_modules/typescript/lib/lib.es2021.string.d.ts","../../../node_modules/typescript/lib/lib.es2021.weakref.d.ts","../../../node_modules/typescript/lib/lib.es2021.intl.d.ts","../../../node_modules/typescript/lib/lib.es2022.array.d.ts","../../../node_modules/typescript/lib/lib.es2022.error.d.ts","../../../node_modules/typescript/lib/lib.es2022.intl.d.ts","../../../node_modules/typescript/lib/lib.es2022.object.d.ts","../../../node_modules/typescript/lib/lib.es2022.string.d.ts","../../../node_modules/typescript/lib/lib.es2022.regexp.d.ts","../../../node_modules/typescript/lib/lib.es2023.array.d.ts","../../../node_modules/typescript/lib/lib.es2023.collection.d.ts","../../../node_modules/typescript/lib/lib.es2023.intl.d.ts","../../../node_modules/typescript/lib/lib.es2024.arraybuffer.d.ts","../../../node_modules/typescript/lib/lib.es2024.collection.d.ts","../../../node_modules/typescript/lib/lib.es2024.object.d.ts","../../../node_modules/typescript/lib/lib.es2024.promise.d.ts","../../../node_modules/typescript/lib/lib.es2024.regexp.d.ts","../../../node_modules/typescript/lib/lib.es2024.sharedmemory.d.ts","../../../node_modules/typescript/lib/lib.es2024.string.d.ts","../../../node_modules/typescript/lib/lib.es2025.collection.d.ts","../../../node_modules/typescript/lib/lib.es2025.float16.d.ts","../../../node_modules/typescript/lib/lib.es2025.intl.d.ts","../../../node_modules/typescript/lib/lib.es2025.iterator.d.ts","../../../node_modules/typescript/lib/lib.es2025.promise.d.ts","../../../node_modules/typescript/lib/lib.es2025.regexp.d.ts","../../../node_modules/typescript/lib/lib.esnext.array.d.ts","../../../node_modules/typescript/lib/lib.esnext.collection.d.ts","../../../node_modules/typescript/lib/lib.esnext.date.d.ts","../../../node_modules/typescript/lib/lib.esnext.decorators.d.ts","../../../node_modules/typescript/lib/lib.esnext.disposable.d.ts","../../../node_modules/typescript/lib/lib.esnext.error.d.ts","../../../node_modules/typescript/lib/lib.esnext.intl.d.ts","../../../node_modules/typescript/lib/lib.esnext.sharedmemory.d.ts","../../../node_modules/typescript/lib/lib.esnext.temporal.d.ts","../../../node_modules/typescript/lib/lib.esnext.typedarrays.d.ts","../../../node_modules/typescript/lib/lib.decorators.d.ts","../../../node_modules/typescript/lib/lib.decorators.legacy.d.ts","../../../node_modules/@types/node/globals.typedarray.d.ts","../../../node_modules/@types/node/buffer.buffer.d.ts","../../../node_modules/@types/node/globals.d.ts","../../../node_modules/@types/node/web-globals/abortcontroller.d.ts","../../../node_modules/@types/node/web-globals/blob.d.ts","../../../node_modules/@types/node/web-globals/console.d.ts","../../../node_modules/@types/node/web-globals/crypto.d.ts","../../../node_modules/@types/node/web-globals/domexception.d.ts","../../../node_modules/@types/node/web-globals/encoding.d.ts","../../../node_modules/@types/node/web-globals/events.d.ts","../../../node_modules/undici-types/utility.d.ts","../../../node_modules/undici-types/header.d.ts","../../../node_modules/undici-types/readable.d.ts","../../../node_modules/undici-types/fetch.d.ts","../../../node_modules/undici-types/formdata.d.ts","../../../node_modules/undici-types/connector.d.ts","../../../node_modules/undici-types/client-stats.d.ts","../../../node_modules/undici-types/client.d.ts","../../../node_modules/undici-types/errors.d.ts","../../../node_modules/undici-types/dispatcher.d.ts","../../../node_modules/undici-types/global-dispatcher.d.ts","../../../node_modules/undici-types/global-origin.d.ts","../../../node_modules/undici-types/pool-stats.d.ts","../../../node_modules/undici-types/pool.d.ts","../../../node_modules/undici-types/handlers.d.ts","../../../node_modules/undici-types/balanced-pool.d.ts","../../../node_modules/undici-types/round-robin-pool.d.ts","../../../node_modules/undici-types/h2c-client.d.ts","../../../node_modules/undici-types/agent.d.ts","../../../node_modules/undici-types/dispatcher1-wrapper.d.ts","../../../node_modules/undici-types/mock-interceptor.d.ts","../../../node_modules/undici-types/mock-call-history.d.ts","../../../node_modules/undici-types/mock-agent.d.ts","../../../node_modules/undici-types/mock-client.d.ts","../../../node_modules/undici-types/mock-pool.d.ts","../../../node_modules/undici-types/snapshot-agent.d.ts","../../../node_modules/undici-types/mock-errors.d.ts","../../../node_modules/undici-types/proxy-agent.d.ts","../../../node_modules/undici-types/socks5-proxy-agent.d.ts","../../../node_modules/undici-types/env-http-proxy-agent.d.ts","../../../node_modules/undici-types/retry-handler.d.ts","../../../node_modules/undici-types/retry-agent.d.ts","../../../node_modules/undici-types/api.d.ts","../../../node_modules/undici-types/cache-interceptor.d.ts","../../../node_modules/undici-types/interceptors.d.ts","../../../node_modules/undici-types/util.d.ts","../../../node_modules/undici-types/cookies.d.ts","../../../node_modules/undici-types/patch.d.ts","../../../node_modules/undici-types/websocket.d.ts","../../../node_modules/undici-types/eventsource.d.ts","../../../node_modules/undici-types/diagnostics-channel.d.ts","../../../node_modules/undici-types/content-type.d.ts","../../../node_modules/undici-types/cache.d.ts","../../../node_modules/undici-types/index.d.ts","../../../node_modules/@types/node/web-globals/fetch.d.ts","../../../node_modules/@types/node/web-globals/importmeta.d.ts","../../../node_modules/@types/node/web-globals/messaging.d.ts","../../../node_modules/@types/node/web-globals/navigator.d.ts","../../../node_modules/@types/node/web-globals/performance.d.ts","../../../node_modules/@types/node/web-globals/storage.d.ts","../../../node_modules/@types/node/web-globals/streams.d.ts","../../../node_modules/@types/node/web-globals/timers.d.ts","../../../node_modules/@types/node/web-globals/url.d.ts","../../../node_modules/@types/node/assert.d.ts","../../../node_modules/@types/node/assert/strict.d.ts","../../../node_modules/@types/node/async_hooks.d.ts","../../../node_modules/@types/node/buffer.d.ts","../../../node_modules/@types/node/child_process.d.ts","../../../node_modules/@types/node/cluster.d.ts","../../../node_modules/@types/node/console.d.ts","../../../node_modules/@types/node/constants.d.ts","../../../node_modules/@types/node/crypto.d.ts","../../../node_modules/@types/node/dgram.d.ts","../../../node_modules/@types/node/diagnostics_channel.d.ts","../../../node_modules/@types/node/dns.d.ts","../../../node_modules/@types/node/dns/promises.d.ts","../../../node_modules/@types/node/domain.d.ts","../../../node_modules/@types/node/events.d.ts","../../../node_modules/@types/node/fs.d.ts","../../../node_modules/@types/node/fs/promises.d.ts","../../../node_modules/@types/node/http.d.ts","../../../node_modules/@types/node/http2.d.ts","../../../node_modules/@types/node/https.d.ts","../../../node_modules/@types/node/inspector.d.ts","../../../node_modules/@types/node/inspector.generated.d.ts","../../../node_modules/@types/node/inspector/promises.d.ts","../../../node_modules/@types/node/module.d.ts","../../../node_modules/@types/node/net.d.ts","../../../node_modules/buffer/index.d.ts","../../../node_modules/@types/node/os.d.ts","../../../node_modules/@types/node/path.d.ts","../../../node_modules/@types/node/path/posix.d.ts","../../../node_modules/@types/node/path/win32.d.ts","../../../node_modules/@types/node/perf_hooks.d.ts","../../../node_modules/@types/node/process.d.ts","../../../node_modules/@types/node/punycode.d.ts","../../../node_modules/@types/node/querystring.d.ts","../../../node_modules/@types/node/quic.d.ts","../../../node_modules/@types/node/readline.d.ts","../../../node_modules/@types/node/readline/promises.d.ts","../../../node_modules/@types/node/repl.d.ts","../../../node_modules/@types/node/sea.d.ts","../../../node_modules/@types/node/sqlite.d.ts","../../../node_modules/@types/node/stream.d.ts","../../../node_modules/@types/node/stream/consumers.d.ts","../../../node_modules/@types/node/stream/iter.d.ts","../../../node_modules/@types/node/stream/promises.d.ts","../../../node_modules/@types/node/stream/web.d.ts","../../../node_modules/@types/node/string_decoder.d.ts","../../../node_modules/@types/node/test.d.ts","../../../node_modules/@types/node/test/reporters.d.ts","../../../node_modules/@types/node/timers.d.ts","../../../node_modules/@types/node/timers/promises.d.ts","../../../node_modules/@types/node/tls.d.ts","../../../node_modules/@types/node/trace_events.d.ts","../../../node_modules/@types/node/tty.d.ts","../../../node_modules/@types/node/url.d.ts","../../../node_modules/@types/node/util.d.ts","../../../node_modules/@types/node/util/types.d.ts","../../../node_modules/@types/node/v8.d.ts","../../../node_modules/@types/node/vm.d.ts","../../../node_modules/@types/node/wasi.d.ts","../../../node_modules/@types/node/worker_threads.d.ts","../../../node_modules/@types/node/zlib.d.ts","../../../node_modules/@types/node/zlib/iter.d.ts","../../../node_modules/@types/node/index.d.ts","../../../node_modules/devtools-protocol/types/protocol.d.ts","../../../node_modules/devtools-protocol/types/protocol-mapping.d.ts","../../../node_modules/typed-query-selector/parser.d.ts","../../../node_modules/webdriver-bidi-protocol/out/gen/main.d.ts","../../../node_modules/webdriver-bidi-protocol/out/gen/permissions.d.ts","../../../node_modules/webdriver-bidi-protocol/out/gen/web-bluetooth.d.ts","../../../node_modules/webdriver-bidi-protocol/out/gen/ua-client-hints.d.ts","../../../node_modules/webdriver-bidi-protocol/out/gen/mapping.d.ts","../../../node_modules/webdriver-bidi-protocol/out/index.d.ts","../../../node_modules/puppeteer-core/lib/types.d.ts","../../../node_modules/puppeteer/lib/types.d.ts","../puppeteer-page-scan/dist/types.d.ts","../puppeteer-general-actions/dist/types.d.ts","../puppeteer-general-actions/dist/create-listener.d.ts","../puppeteer-general-actions/dist/index.d.ts","../shared/dist/random-int.d.ts","../shared/dist/sample-distribution.d.ts","../shared/dist/delay.d.ts","../puppeteer-page-scan/dist/before-page-scan.d.ts","../puppeteer-page-scan/dist/default-sizes.d.ts","../puppeteer-page-scan/dist/read-page-hooks.d.ts","../puppeteer-page-scan/dist/page-scan-listener.d.ts","../puppeteer-page-scan/dist/navigation-unsettled-error.d.ts","../puppeteer-page-scan/dist/index.d.ts","../puppeteer-scroll/dist/scroll-all-over.d.ts","../puppeteer-scroll/dist/evaluate-with-frame-retry.d.ts","../puppeteer-scroll/dist/index.d.ts","./src/image-scan-code.ts","./src/classify-image-scan-error.ts","../../../node_modules/@types/ms/index.d.ts","../../../node_modules/@types/debug/index.d.ts","./src/debug.ts","./src/meta/types.ts","../shared/dist/parse-url.d.ts","../shared/dist/detect-compress.d.ts","../shared/dist/detect-cdn.d.ts","./src/types.ts","../shared/dist/race-with-timeout.d.ts","./src/meta/keys.ts","./src/meta/parsers.ts","./src/meta/classify.ts","./src/meta/collect-head.ts","./src/meta/id-extractors.ts","./src/meta/tag-detection.ts","./src/parse-url.ts","./src/dom-evaluation.ts","./src/extract-meta.ts","./src/get-main-contents.ts","../shared/dist/retry.d.ts","../shared/dist/typed-await-event-emitter.d.ts","./src/is-error.ts","./src/is-html-content-type.ts","../shared/dist/str-to-regex.d.ts","./src/keyword-check.ts","./src/measure-scroll-height.ts","./src/network-disconnection.ts","./src/to-console-log-entry.ts","./src/to-page-error-entry.ts","./src/scraper.ts","./src/main-content-selectors.ts","./src/index.ts","./src/meta/simple-wappalyzer.d.ts"],"fileIdsList":[[91,156,164,168,171,173,174,175,188,245],[91,156,164,168,171,173,174,175,188],[91,153,154,156,164,168,171,173,174,175,188],[91,155,156,164,168,171,173,174,175,188],[156,164,168,171,173,174,175,188],[91,156,164,168,171,173,174,175,188,197],[91,156,157,162,164,167,168,171,173,174,175,177,188,193,206],[91,156,157,158,164,167,168,171,173,174,175,188],[91,156,159,164,168,171,173,174,175,188,207],[91,156,160,161,164,168,171,173,174,175,179,188],[91,156,161,164,168,171,173,174,175,188,193,203],[91,156,162,164,167,168,171,173,174,175,177,188],[91,155,156,163,164,168,171,173,174,175,188],[91,156,164,165,168,171,173,174,175,188],[91,156,164,166,167,168,171,173,174,175,188],[91,155,156,164,167,168,171,173,174,175,188],[91,156,164,167,168,169,171,173,174,175,188,193,206],[91,156,164,167,168,169,171,173,174,175,188,193,195,197],[91,143,156,164,167,168,170,171,173,174,175,177,188,193,206],[91,156,164,167,168,170,171,173,174,175,177,188,193,203,206],[91,156,164,168,170,171,172,173,174,175,188,193,203,206],[90,91,92,93,94,95,96,97,98,99,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214],[91,156,164,167,168,171,173,174,175,188],[91,156,164,168,171,173,175,188],[91,156,164,168,171,173,174,175,176,188,206],[91,156,164,167,168,171,173,174,175,177,188,193],[91,156,164,168,171,173,174,175,179,188],[91,156,164,168,171,173,174,175,180,188],[91,156,164,167,168,171,173,174,175,183,188],[91,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213],[91,156,164,168,171,173,174,175,185,188],[91,156,164,168,171,173,174,175,186,188],[91,156,161,164,168,171,173,174,175,177,188,197],[91,156,164,167,168,171,173,174,175,188,189],[91,156,164,168,171,173,174,175,188,190,207,210],[91,156,164,167,168,171,173,174,175,188,193,196,197],[91,156,164,168,171,173,174,175,188,194,197],[91,156,164,168,171,173,174,175,188,195],[91,156,164,168,171,173,174,175,188,197,207],[91,156,164,168,171,173,174,175,188,198],[91,153,156,164,168,171,173,174,175,188,193,200,206],[91,156,164,168,171,173,174,175,188,193,199],[91,156,164,167,168,171,173,174,175,188,201,202],[91,156,164,168,171,173,174,175,188,201,202],[91,156,161,164,168,171,173,174,175,177,188,193,203],[91,156,164,168,171,173,174,175,188,204],[91,156,164,168,171,173,174,175,177,188,205],[91,156,164,168,170,171,173,174,175,186,188,206],[91,156,164,168,171,173,174,175,188,207,208],[91,156,161,164,168,171,173,174,175,188,208],[91,156,164,168,171,173,174,175,188,193,209],[91,156,164,168,171,173,174,175,176,188,210],[91,156,164,168,171,173,174,175,188,211],[91,156,159,164,168,171,173,174,175,188],[91,156,161,164,168,171,173,174,175,188],[91,156,164,168,171,173,174,175,188,207],[91,143,156,164,168,171,173,174,175,188],[91,156,164,168,171,173,174,175,188,206],[91,156,164,168,171,173,174,175,188,212],[91,156,164,168,171,173,174,175,183,188],[91,156,164,168,171,173,174,175,188,202],[91,143,156,164,167,168,169,171,173,174,175,183,188,193,197,206,209,210,212],[91,156,164,168,171,173,174,175,188,193,213],[91,156,164,168,171,173,174,175,188,195,214],[91,156,164,168,171,173,174,175,188,216],[91,156,157,164,168,171,173,174,175,188,193,215,216,217,218,224],[91,156,164,168,171,173,174,175,188,225],[91,106,109,112,113,156,164,168,171,173,174,175,188,206],[91,109,156,164,168,171,173,174,175,188,193,206],[91,109,113,156,164,168,171,173,174,175,188,206],[91,156,164,168,171,173,174,175,188,193],[91,103,156,164,168,171,173,174,175,188],[91,107,156,164,168,171,173,174,175,188],[91,105,106,109,156,164,168,171,173,174,175,188,206],[91,156,164,168,171,173,174,175,177,188,203],[91,156,164,168,171,173,174,175,188,215],[91,103,156,164,168,171,173,174,175,188,215],[91,105,109,156,164,168,171,173,174,175,177,188,206],[91,100,101,102,104,108,156,164,167,168,171,173,174,175,188,193,206],[91,109,156,164,168,171,173,174,175,188],[91,109,118,127,156,164,168,171,173,174,175,188],[91,101,107,156,164,168,171,173,174,175,188],[91,109,137,138,156,164,168,171,173,174,175,188],[91,101,104,109,156,164,168,171,173,174,175,188,197,206,215],[91,105,109,156,164,168,171,173,174,175,188,206],[91,100,156,164,168,171,173,174,175,188],[91,103,104,105,107,108,109,110,111,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,138,139,140,141,142,156,164,168,171,173,174,175,188],[91,109,130,133,156,164,168,171,173,174,175,188],[91,109,118,120,121,156,164,168,171,173,174,175,188],[91,107,109,120,122,156,164,168,171,173,174,175,188],[91,108,156,164,168,171,173,174,175,188],[91,101,103,109,156,164,168,171,173,174,175,188],[91,109,113,120,122,156,164,168,171,173,174,175,188],[91,113,156,164,168,171,173,174,175,188],[91,107,109,112,156,164,168,171,173,174,175,188,206],[91,101,105,109,118,156,164,168,171,173,174,175,188],[91,109,130,156,164,168,171,173,174,175,188],[91,122,156,164,168,171,173,174,175,188],[91,101,105,109,113,156,164,168,171,173,174,175,188],[91,103,109,137,156,164,168,171,173,174,175,188,197,212,215],[91,156,164,168,171,173,174,175,188,219,220,221,222],[91,156,164,168,171,173,174,175,188,219,220,221,222,223],[91,156,164,168,171,173,174,175,188,239,242,243],[91,156,164,168,171,173,174,175,188,246],[91,156,164,168,171,173,174,175,188,226,247,248,252,253,256,257,259,260],[91,156,164,168,171,173,174,175,188,252,256,257,259],[91,156,164,168,171,173,174,175,188,226,252],[91,156,164,168,171,173,174,175,188,243,250,251,252,262,266,274,275],[91,156,164,168,171,173,174,175,188,268],[91,156,164,168,171,173,174,175,188,226,239,252],[91,156,164,168,171,173,174,175,188,248,254,255],[91,156,164,168,171,173,174,175,188,248],[91,156,164,168,171,173,174,175,188,248,254],[91,156,164,168,171,173,174,175,188,247,248,258,277],[91,156,164,168,171,173,174,175,188,249],[91,156,164,168,171,173,174,175,188,226,239,243,244,247,250,251,252,256,260,261,263,264,265,266,267,269,270,271,272,273],[91,156,164,168,171,173,174,175,188,252],[91,156,164,168,171,173,174,175,188,226,243,248,249,250,251],[91,156,164,168,171,173,174,175,188,228],[91,156,164,168,171,173,174,175,188,228,229],[91,156,164,168,171,173,174,175,188,226,227,230,233],[91,156,164,168,171,173,174,175,188,227],[91,156,164,168,171,173,174,175,188,227,234,235,236,237,238],[91,156,164,168,171,173,174,175,188,227,230],[91,156,164,168,171,173,174,175,188,226],[91,156,164,168,171,173,174,175,188,240,241],[91,156,164,168,171,173,174,175,188,226,233],[91,156,164,168,171,173,174,175,188,232],[91,156,164,168,171,173,174,175,188,233],[91,156,164,168,171,173,174,175,188,231]],"fileInfos":[{"version":"bcd24271a113971ba9eb71ff8cb01bc6b0f872a85c23fdbe5d93065b375933cd","affectsGlobalScope":true,"impliedFormat":1},{"version":"3f88bedbeb09c6f5a6645cb24c7c55f1aa22d19ae96c8e6959cbd8b85a707bc6","impliedFormat":1},{"version":"7fe93b39b810eadd916be8db880dd7f0f7012a5cc6ffb62de8f62a2117fa6f1f","impliedFormat":1},{"version":"bb0074cc08b84a2374af33d8bf044b80851ccc9e719a5e202eacf40db2c31600","impliedFormat":1},{"version":"1a7daebe4f45fb03d9ec53d60008fbf9ac45a697fdc89e4ce218bc94b94f94d6","impliedFormat":1},{"version":"f94b133a3cb14a288803be545ac2683e0d0ff6661bcd37e31aaaec54fc382aed","impliedFormat":1},{"version":"f59d0650799f8782fd74cf73c19223730c6d1b9198671b1c5b3a38e1188b5953","impliedFormat":1},{"version":"8a15b4607d9a499e2dbeed9ec0d3c0d7372c850b2d5f1fb259e8f6d41d468a84","impliedFormat":1},{"version":"26e0fe14baee4e127f4365d1ae0b276f400562e45e19e35fd2d4c296684715e6","impliedFormat":1},{"version":"1e9332c23e9a907175e0ffc6a49e236f97b48838cc8aec9ce7e4cec21e544b65","impliedFormat":1},{"version":"3753fbc1113dc511214802a2342280a8b284ab9094f6420e7aa171e868679f91","impliedFormat":1},{"version":"999ca32883495a866aa5737fe1babc764a469e4cde6ee6b136a4b9ae68853e4b","impliedFormat":1},{"version":"17f13ecb98cbc39243f2eee1f16d45cd8ec4706b03ee314f1915f1a8b42f6984","impliedFormat":1},{"version":"d6b1eba8496bdd0eed6fc8a685768fe01b2da4a0388b5fe7df558290bffcf32f","affectsGlobalScope":true,"impliedFormat":1},{"version":"7f57fc4404ff020bc45b9c620aff2b40f700b95fe31164024c453a5e3c163c54","impliedFormat":1},{"version":"eadcffda2aa84802c73938e589b9e58248d74c59cb7fcbca6474e3435ac15504","affectsGlobalScope":true,"impliedFormat":1},{"version":"105ba8ff7ba746404fe1a2e189d1d3d2e0eb29a08c18dded791af02f29fb4711","affectsGlobalScope":true,"impliedFormat":1},{"version":"00343ca5b2e3d48fa5df1db6e32ea2a59afab09590274a6cccb1dbae82e60c7c","affectsGlobalScope":true,"impliedFormat":1},{"version":"ebd9f816d4002697cb2864bea1f0b70a103124e18a8cd9645eeccc09bdf80ab4","affectsGlobalScope":true,"impliedFormat":1},{"version":"2c1afac30a01772cd2a9a298a7ce7706b5892e447bb46bdbeef720f7b5da77ad","affectsGlobalScope":true,"impliedFormat":1},{"version":"7b0225f483e4fa685625ebe43dd584bb7973bbd84e66a6ba7bbe175ee1048b4f","affectsGlobalScope":true,"impliedFormat":1},{"version":"c0a4b8ac6ce74679c1da2b3795296f5896e31c38e888469a8e0f99dc3305de60","affectsGlobalScope":true,"impliedFormat":1},{"version":"3084a7b5f569088e0146533a00830e206565de65cae2239509168b11434cd84f","affectsGlobalScope":true,"impliedFormat":1},{"version":"c5079c53f0f141a0698faa903e76cb41cd664e3efb01cc17a5c46ec2eb0bef42","affectsGlobalScope":true,"impliedFormat":1},{"version":"32cafbc484dea6b0ab62cf8473182bbcb23020d70845b406f80b7526f38ae862","affectsGlobalScope":true,"impliedFormat":1},{"version":"fca4cdcb6d6c5ef18a869003d02c9f0fd95df8cfaf6eb431cd3376bc034cad36","affectsGlobalScope":true,"impliedFormat":1},{"version":"b93ec88115de9a9dc1b602291b85baf825c85666bf25985cc5f698073892b467","affectsGlobalScope":true,"impliedFormat":1},{"version":"f5c06dcc3fe849fcb297c247865a161f995cc29de7aa823afdd75aaaddc1419b","affectsGlobalScope":true,"impliedFormat":1},{"version":"b77e16112127a4b169ef0b8c3a4d730edf459c5f25fe52d5e436a6919206c4d7","affectsGlobalScope":true,"impliedFormat":1},{"version":"fbffd9337146eff822c7c00acbb78b01ea7ea23987f6c961eba689349e744f8c","affectsGlobalScope":true,"impliedFormat":1},{"version":"a995c0e49b721312f74fdfb89e4ba29bd9824c770bbb4021d74d2bf560e4c6bd","affectsGlobalScope":true,"impliedFormat":1},{"version":"c7b3542146734342e440a84b213384bfa188835537ddbda50d30766f0593aff9","affectsGlobalScope":true,"impliedFormat":1},{"version":"ce6180fa19b1cccd07ee7f7dbb9a367ac19c0ed160573e4686425060b6df7f57","affectsGlobalScope":true,"impliedFormat":1},{"version":"3f02e2476bccb9dbe21280d6090f0df17d2f66b74711489415a8aa4df73c9675","affectsGlobalScope":true,"impliedFormat":1},{"version":"45e3ab34c1c013c8ab2dc1ba4c80c780744b13b5676800ae2e3be27ae862c40c","affectsGlobalScope":true,"impliedFormat":1},{"version":"805c86f6cca8d7702a62a844856dbaa2a3fd2abef0536e65d48732441dde5b5b","affectsGlobalScope":true,"impliedFormat":1},{"version":"e42e397f1a5a77994f0185fd1466520691456c772d06bf843e5084ceb879a0ad","affectsGlobalScope":true,"impliedFormat":1},{"version":"f4c2b41f90c95b1c532ecc874bd3c111865793b23aebcc1c3cbbabcd5d76ffb0","affectsGlobalScope":true,"impliedFormat":1},{"version":"ab26191cfad5b66afa11b8bf935ef1cd88fabfcb28d30b2dfa6fad877d050332","affectsGlobalScope":true,"impliedFormat":1},{"version":"2088bc26531e38fb05eedac2951480db5309f6be3fa4a08d2221abb0f5b4200d","affectsGlobalScope":true,"impliedFormat":1},{"version":"cb9d366c425fea79716a8fb3af0d78e6b22ebbab3bd64d25063b42dc9f531c1e","affectsGlobalScope":true,"impliedFormat":1},{"version":"500934a8089c26d57ebdb688fc9757389bb6207a3c8f0674d68efa900d2abb34","affectsGlobalScope":true,"impliedFormat":1},{"version":"689da16f46e647cef0d64b0def88910e818a5877ca5379ede156ca3afb780ac3","affectsGlobalScope":true,"impliedFormat":1},{"version":"bc21cc8b6fee4f4c2440d08035b7ea3c06b3511314c8bab6bef7a92de58a2593","affectsGlobalScope":true,"impliedFormat":1},{"version":"7ca53d13d2957003abb47922a71866ba7cb2068f8d154877c596d63c359fed25","affectsGlobalScope":true,"impliedFormat":1},{"version":"54725f8c4df3d900cb4dac84b64689ce29548da0b4e9b7c2de61d41c79293611","affectsGlobalScope":true,"impliedFormat":1},{"version":"e5594bc3076ac29e6c1ebda77939bc4c8833de72f654b6e376862c0473199323","affectsGlobalScope":true,"impliedFormat":1},{"version":"2f3eb332c2d73e729f3364fcc0c2b375e72a121e8157d25a82d67a138c83a95c","affectsGlobalScope":true,"impliedFormat":1},{"version":"6f4427f9642ce8d500970e4e69d1397f64072ab73b97e476b4002a646ac743b1","affectsGlobalScope":true,"impliedFormat":1},{"version":"48915f327cd1dea4d7bd358d9dc7732f58f9e1626a29cc0c05c8c692419d9bb7","affectsGlobalScope":true,"impliedFormat":1},{"version":"b7bf9377723203b5a6a4b920164df22d56a43f593269ba6ae1fdc97774b68855","affectsGlobalScope":true,"impliedFormat":1},{"version":"db9709688f82c9e5f65a119c64d835f906efe5f559d08b11642d56eb85b79357","affectsGlobalScope":true,"impliedFormat":1},{"version":"4b25b8c874acd1a4cf8444c3617e037d444d19080ac9f634b405583fd10ce1f7","affectsGlobalScope":true,"impliedFormat":1},{"version":"37be57d7c90cf1f8112ee2636a068d8fd181289f82b744160ec56a7dc158a9f5","affectsGlobalScope":true,"impliedFormat":1},{"version":"a917a49ac94cd26b754ab84e113369a75d1a47a710661d7cd25e961cc797065f","affectsGlobalScope":true,"impliedFormat":1},{"version":"6d3261badeb7843d157ef3e6f5d1427d0eeb0af0cf9df84a62cfd29fd47ac86e","affectsGlobalScope":true,"impliedFormat":1},{"version":"195daca651dde22f2167ac0d0a05e215308119a3100f5e6268e8317d05a92526","affectsGlobalScope":true,"impliedFormat":1},{"version":"8b11e4285cd2bb164a4dc09248bdec69e9842517db4ca47c1ba913011e44ff2f","affectsGlobalScope":true,"impliedFormat":1},{"version":"0508571a52475e245b02bc50fa1394065a0a3d05277fbf5120c3784b85651799","affectsGlobalScope":true,"impliedFormat":1},{"version":"8f9af488f510c3015af3cc8c267a9e9d96c4dd38a1fdff0e11dc5a544711415b","affectsGlobalScope":true,"impliedFormat":1},{"version":"fc611fea8d30ea72c6bbfb599c9b4d393ce22e2f5bfef2172534781e7d138104","affectsGlobalScope":true,"impliedFormat":1},{"version":"0bd714129fca875f7d4c477a1a392200b0bcd13fb2e80928cd334b63830ea047","affectsGlobalScope":true,"impliedFormat":1},{"version":"e2c9037ae6cd2c52d80ceef0b3c5ffdb488627d71529cf4f63776daf11161c9a","affectsGlobalScope":true,"impliedFormat":1},{"version":"135d5cf4d345f59f1a9caadfafcd858d3d9cc68290db616cc85797224448cccc","affectsGlobalScope":true,"impliedFormat":1},{"version":"bc238c3f81c2984751932b6aab223cd5b830e0ac6cad76389e5e9d2ffc03287d","affectsGlobalScope":true,"impliedFormat":1},{"version":"4a07f9b76d361f572620927e5735b77d6d2101c23cdd94383eb5b706e7b36357","affectsGlobalScope":true,"impliedFormat":1},{"version":"7c4e8dc6ab834cc6baa0227e030606d29e3e8449a9f67cdf5605ea5493c4db29","affectsGlobalScope":true,"impliedFormat":1},{"version":"de7ba0fd02e06cd9a5bd4ab441ed0e122735786e67dde1e849cced1cd8b46b78","affectsGlobalScope":true,"impliedFormat":1},{"version":"6148e4e88d720a06855071c3db02069434142a8332cf9c182cda551adedf3156","affectsGlobalScope":true,"impliedFormat":1},{"version":"d63dba625b108316a40c95a4425f8d4294e0deeccfd6c7e59d819efa19e23409","affectsGlobalScope":true,"impliedFormat":1},{"version":"0568d6befee03dd435bed4fc25c4e46865b24bdcb8c563fdc21f580a2c301904","affectsGlobalScope":true,"impliedFormat":1},{"version":"30d62269b05b584741f19a5369852d5d34895aa2ac4fd948956f886d15f9cc0d","affectsGlobalScope":true,"impliedFormat":1},{"version":"f128dae7c44d8f35ee42e0a437000a57c9f06cc04f8b4fb42eebf44954d53dc8","affectsGlobalScope":true,"impliedFormat":1},{"version":"ffbe6d7b295306b2ba88030f65b74c107d8d99bdcf596ea99c62a02f606108b0","affectsGlobalScope":true,"impliedFormat":1},{"version":"996fb27b15277369c68a4ba46ed138b4e9e839a02fb4ec756f7997629242fd9f","affectsGlobalScope":true,"impliedFormat":1},{"version":"79b712591b270d4778c89706ca2cfc56ddb8c3f895840e477388f1710dc5eda9","affectsGlobalScope":true,"impliedFormat":1},{"version":"20884846cef428b992b9bd032e70a4ef88e349263f63aeddf04dda837a7dba26","affectsGlobalScope":true,"impliedFormat":1},{"version":"5fcab789c73a97cd43828ee3cc94a61264cf24d4c44472ce64ced0e0f148bdb2","affectsGlobalScope":true,"impliedFormat":1},{"version":"db59a81f070c1880ad645b2c0275022baa6a0c4f0acdc58d29d349c6efcf0903","affectsGlobalScope":true,"impliedFormat":1},{"version":"673294292640f5722b700e7d814e17aaf7d93f83a48a2c9b38f33cbc940ad8b0","affectsGlobalScope":true,"impliedFormat":1},{"version":"d786b48f934cbca483b3c6d0a798cb43bbb4ada283e76fb22c28e53ae05b9e69","affectsGlobalScope":true,"impliedFormat":1},{"version":"1ecb8e347cb6b2a8927c09b86263663289418df375f5e68e11a0ae683776978f","affectsGlobalScope":true,"impliedFormat":1},{"version":"142efd4ce210576f777dc34df121777be89eda476942d6d6663b03dcb53be3ff","affectsGlobalScope":true,"impliedFormat":1},{"version":"379bc41580c2d774f82e828c70308f24a005b490c25ba34d679d84bcf05c3d9d","affectsGlobalScope":true,"impliedFormat":1},{"version":"ed484fb2aa8a1a23d0277056ec3336e0a0b52f9b8d6a961f338a642faf43235d","affectsGlobalScope":true,"impliedFormat":1},{"version":"4ffedae1d1c2d53fdbca1c96d3c7dda544281f7d262f99b6880634f8fd8d9820","affectsGlobalScope":true,"impliedFormat":1},{"version":"83a730b125d477dd264df8ba479afab27a3dae7152b005c214ab94dc7ee44fd3","affectsGlobalScope":true,"impliedFormat":1},{"version":"1ce14b81c5cc821994aa8ec1d42b220dd41b27fcc06373bce3958af7421b77d4","affectsGlobalScope":true,"impliedFormat":1},{"version":"b3a048b3e9302ef9a34ef4ebb9aecfb28b66abb3bce577206a79fee559c230da","affectsGlobalScope":true,"impliedFormat":1},{"version":"0ccdaa19852d25ecd84eec365c3bfa16e7859cadecf6e9ca6d0dbbbee439743f","affectsGlobalScope":true,"impliedFormat":1},{"version":"cc2110f7decca6bfb9392e30421cfa1436479e4a6756e8fec6cbc22625d4f881","affectsGlobalScope":true,"impliedFormat":1},{"version":"f53a7652392cf26ebbe4e29fd0672aa87c93bd6d0241289c13fab87b9ac35c8a","affectsGlobalScope":true,"impliedFormat":1},{"version":"e5e01375c9e124a83b52ee4b3244ed1a4d214a6cfb54ac73e164a823a4a7860a","affectsGlobalScope":true,"impliedFormat":1},{"version":"f90ae2bbce1505e67f2f6502392e318f5714bae82d2d969185c4a6cecc8af2fc","affectsGlobalScope":true,"impliedFormat":1},{"version":"4b58e207b93a8f1c88bbf2a95ddc686ac83962b13830fe8ad3f404ffc7051fb4","affectsGlobalScope":true,"impliedFormat":1},{"version":"1fefabcb2b06736a66d2904074d56268753654805e829989a46a0161cd8412c5","affectsGlobalScope":true,"impliedFormat":1},{"version":"b00a630557d1622ad312633bdbfbdb9c6b7220d948dca9f899db30679f160074","affectsGlobalScope":true,"impliedFormat":1},{"version":"c18a99f01eb788d849ad032b31cafd49de0b19e083fe775370834c5675d7df8e","affectsGlobalScope":true,"impliedFormat":1},{"version":"5247874c2a23b9a62d178ae84f2db6a1d54e6c9a2e7e057e178cc5eea13757fc","affectsGlobalScope":true,"impliedFormat":1},{"version":"cdcf9ea426ad970f96ac930cd176d5c69c6c24eebd9fc580e1572d6c6a88f62c","impliedFormat":1},{"version":"88809d6c1b9c78d04a133646a6feb926def05a8774c308c7c93bc32ee163d271","impliedFormat":1},{"version":"156a859e21ef3244d13afeeba4e49760a6afa035c149dda52f0c45ea8903b338","impliedFormat":1},{"version":"3ac40516c33b87f751f7507346933081a26cdb8a3e11a6b3aa07d23f803c85db","impliedFormat":1},{"version":"615754924717c0b1e293e083b83503c0a872717ad5aa60ed7f1a699eb1b4ea5c","impliedFormat":1},{"version":"14e9acf826baba0ef4b5665704084896e7bcc06f65a9ab13af7e93d27d6b7069","impliedFormat":1},{"version":"68834d631c8838c715f225509cfc3927913b9cc7a4870460b5b60c8dbdb99baf","impliedFormat":1},{"version":"829bc57ee8f287b490ab5bbc5a962fca57e432c1e38ec680ecd3ecaf12800613","impliedFormat":1},{"version":"eec76bf6b9346f3f95fa402621b889489e96930e72295b0369022f332e9b4a6a","impliedFormat":1},{"version":"3a3ff14da53d5013f3e6d8c4ad55225e3649c08786c4421ce639c00d8d589b7d","impliedFormat":1},{"version":"ea6bc8de8b59f90a7a3960005fd01988f98fd0784e14bc6922dde2e93305ec7d","impliedFormat":1},{"version":"36107995674b29284a115e21a0618c4c2751b32a8766dd4cb3ba740308b16d59","impliedFormat":1},{"version":"914a0ae30d96d71915fc519ccb4efbf2b62c0ddfb3a3fc6129151076bc01dc60","impliedFormat":1},{"version":"38004e6801340cb890afb8cb5a9fc8972297e7f88ab94026e4b0b3c61fb32f8a","impliedFormat":1},{"version":"d243db6b25788f439e7e2f03c05688e92f46764351673bb0e7b2f3631232e186","impliedFormat":1},{"version":"4d327f7d72ad0918275cea3eee49a6a8dc8114ae1d5b7f3f5d0774de75f7439a","impliedFormat":1},{"version":"149f9a9e7f04e67afa0e2a49fc0ff421035c01d6b793cfcae7d2e9f6819431e2","impliedFormat":1},{"version":"e8a9dfa4c75ef6d25df8b40eaa9c31e0a69452aaf2ced4a3f4215dbdbaa876f4","impliedFormat":1},{"version":"a70af845a2eb9dd6e2723e319e14ea7fb28b129ec1361c21509b49305448c323","impliedFormat":1},{"version":"b53dc572d4f187904207ae1166652de47aab8eeb00c254d009cb226863076b56","impliedFormat":1},{"version":"0a60a292b89ca7218b8616f78e5bbd1c96b87e048849469cccb4355e98af959a","impliedFormat":1},{"version":"0b6e25234b4eec6ed96ab138d96eb70b135690d7dd01f3dd8a8ab291c35a683a","impliedFormat":1},{"version":"9666f2f84b985b62400d2e5ab0adae9ff44de9b2a34803c2c5bd3c8325b17dc0","impliedFormat":1},{"version":"40cd35c95e9cf22cfa5bd84e96408b6fcbca55295f4ff822390abb11afbc3dca","impliedFormat":1},{"version":"b1616b8959bf557feb16369c6124a97a0e74ed6f49d1df73bb4b9ddf68acf3f3","impliedFormat":1},{"version":"f501234c5aeeeb5d7659412335227466aaacf30b952372d60afeb21c02c96348","impliedFormat":1},{"version":"40b463c6766ca1b689bfcc46d26b5e295954f32ad43e37ee6953c0a677e4ae2b","impliedFormat":1},{"version":"9ac977503f15bf13ca7c82ad9a32a782f42d43e474824e8b3bffe228fd5f2639","impliedFormat":1},{"version":"8b91ff5bb912be3ea213cbcf0075aace1f5d4ff249a0d227ed673868cb7bfabc","impliedFormat":1},{"version":"80aae6afc67faa5ac0b32b5b8bc8cc9f7fa299cff15cf09cc2e11fd28c6ae29e","impliedFormat":1},{"version":"f473cd2288991ff3221165dcf73cd5d24da30391f87e85b3dd4d0450c787a391","impliedFormat":1},{"version":"499e5b055a5aba1e1998f7311a6c441a369831c70905cc565ceac93c28083d53","impliedFormat":1},{"version":"8aee8b6d4f9f62cf3776cda1305fb18763e2aade7e13cea5bbe699112df85214","impliedFormat":1},{"version":"98498b101803bb3dde9f76a56e65c14b75db1cc8bec5f4db72be541570f74fc5","impliedFormat":1},{"version":"7cb4f431a4591b0e23002bed805dc871a874dfed6b9a3994dce68a6df73e6739","impliedFormat":1},{"version":"5d0375ca7310efb77e3ef18d068d53784faf62705e0ad04569597ae0e755c401","impliedFormat":1},{"version":"59af37caec41ecf7b2e76059c9672a49e682c1a2aa6f9d7dc78878f53aa284d6","impliedFormat":1},{"version":"addf417b9eb3f938fddf8d81e96393a165e4be0d4a8b6402292f9c634b1cb00d","impliedFormat":1},{"version":"436d7b4543b340b0f3eef4310d524242e41369b9652aa9c70428767c4dcac455","impliedFormat":1},{"version":"adf27937dba6af9f08a68c5b1d3fce0ca7d4b960c57e6d6c844e7d1a8e53adae","impliedFormat":1},{"version":"12950411eeab8563b349cb7959543d92d8d02c289ed893d78499a19becb5a8cc","impliedFormat":1},{"version":"2e85db9e6fd73cfa3d7f28e0ab6b55417ea18931423bd47b409a96e4a169e8e6","impliedFormat":1},{"version":"c46e079fe54c76f95c67fb89081b3e399da2c7d109e7dca8e4b58d83e332e605","impliedFormat":1},{"version":"e99963ae1e3a48ca7a7958c02f3e88bb963eb7978c28b68ae6b8c9f03309d83c","impliedFormat":1},{"version":"c3f5289820990ab66b70c7fb5b63cb674001009ff84b13de40619619a9c8175f","affectsGlobalScope":true,"impliedFormat":1},{"version":"b3275d55fac10b799c9546804126239baf020d220136163f763b55a74e50e750","affectsGlobalScope":true,"impliedFormat":1},{"version":"fa68a0a3b7cb32c00e39ee3cd31f8f15b80cac97dce51b6ee7fc14a1e8deb30b","affectsGlobalScope":true,"impliedFormat":1},{"version":"1cf059eaf468efcc649f8cf6075d3cb98e9a35a0fe9c44419ec3d2f5428d7123","affectsGlobalScope":true,"impliedFormat":1},{"version":"6c36e755bced82df7fb6ce8169265d0a7bb046ab4e2cb6d0da0cb72b22033e89","affectsGlobalScope":true,"impliedFormat":1},{"version":"e7721c4f69f93c91360c26a0a84ee885997d748237ef78ef665b153e622b36c1","affectsGlobalScope":true,"impliedFormat":1},{"version":"7a93de4ff8a63bafe62ba86b89af1df0ccb5e40bb85b0c67d6bbcfdcf96bf3d4","affectsGlobalScope":true,"impliedFormat":1},{"version":"90e85f9bc549dfe2b5749b45fe734144e96cd5d04b38eae244028794e142a77e","affectsGlobalScope":true,"impliedFormat":1},{"version":"e0a5deeb610b2a50a6350bd23df6490036a1773a8a71d70f2f9549ab009e67ee","affectsGlobalScope":true,"impliedFormat":1},{"version":"594ae90cacd813fa392ff80d2e0a8eff4e41f4a136329a940e321399dd8895b4","impliedFormat":1},{"version":"d1f333ade8ff35a409b4984e1f11956fe11c61855b0c7e9b59f0313e48b40c4a","impliedFormat":1},{"version":"0224aa4b3464895d69c413a640a19ac2166778a74eb5eb3b36b021c72d42b274","impliedFormat":1},{"version":"0828724f6c17d63075bc7bfdd2f22875c4d00f90a6d8ef16d2e718a9e5f7e135","affectsGlobalScope":true,"impliedFormat":1},{"version":"177459cba484e2f1e08872a3d2fdbca3162d9d43ca5ec9dc0c946835b55f74be","impliedFormat":1},{"version":"2fbf504c4791f9d32cd766cfe6b605bcda63289b925401953a7900db9af85348","impliedFormat":1},{"version":"ed0fb633cae35948d9e144004299a4bdf1ab912667c787b7fbffcd6d8c7b92a2","impliedFormat":1},{"version":"1678b04557dca52feab73cc67610918a7f5e25bfdba3e7fa081acd625d93106d","impliedFormat":1},{"version":"637e244cbc5174cce5482388be2b4b51c49f7ce6dead7316448da61d7aa283b1","impliedFormat":1},{"version":"2ea729503db9793f2691162fec3dd1118cab62e96d025f8eeb376d43ec293395","impliedFormat":1},{"version":"afa8be176b15487addede2f996c733e8d33a23497e6efe01c3945f768cf79184","impliedFormat":1},{"version":"6a0de93048a43c4f492e1fe43cc4ec52eed57d4e03a07c78b2d502e20dbdcfd8","impliedFormat":1},{"version":"2bc7aa4fba46df0bd495425a7c8201437a7d465f83854fac859df2d67f664df3","impliedFormat":1},{"version":"41d17e1ad9a002feb11c8cdd2777e5bbc0cdb1e3f595d237e4dded0b6949983b","impliedFormat":1},{"version":"8c7e618c2a91ea7f6b5cca272a295864e92c16413be8fc56a943e8c7d5320011","affectsGlobalScope":true,"impliedFormat":1},{"version":"66e5d81f637da29b03689fbc84cc61f18c6fdde769b134e0649259384df453e2","impliedFormat":1},{"version":"f2bb6c145c2112b33fa26e7464c9c69212fd3fc163ee389230c22db39408ad1e","impliedFormat":1},{"version":"b02c915a1b0d9777a17e3249674735eec3f2fd929f0d63da84157aac7f9a4345","impliedFormat":1},{"version":"62e8f884c3bc6dff6189b6e662ebe8b238a645938f2df7a97b8a82fca56773a4","impliedFormat":1},{"version":"2c2bdaa1d8ead9f68628d6d9d250e46ee8e81aa4898b4769a36956ae15e060fe","impliedFormat":1},{"version":"57a0d1b3d59063d4af2d3f8aac27cfe3c20a0f5d1faf0f8598ccf0b779637939","impliedFormat":1},{"version":"5ff4433a2deae4f85ab1377e90a7554ce6b47ae51c69a84ca30a6e22fae85834","impliedFormat":1},{"version":"82b91e4e42e6c41bc7fc1b6c2dc5eba6a2ba98375eb1f210e6ff6bba2d54177e","impliedFormat":1},{"version":"97234c5303866576f913d0ccae7d58d6322d9e803c7bf1228a3fda46ab8087b2","affectsGlobalScope":true,"impliedFormat":1},{"version":"93ecf87143cac7b9d05cffc1d6bdc075b7e4fdd48ff05f1fad85043f6ae678d3","impliedFormat":1},{"version":"8e9c23ba78aabc2e0a27033f18737a6df754067731e69dc5f52823957d60a4b6","impliedFormat":1},{"version":"6f200afcb82b3e9a54bed6db23f2edf2508cd266801257312c0f124b47f2bdb9","impliedFormat":1},{"version":"ec501101c2a96133a6c695f934c8f6642149cc728571b29cbb7b770984c1088e","impliedFormat":1},{"version":"b214ebcf76c51b115453f69729ee8aa7b7f8eccdae2a922b568a45c2d7ff52f7","impliedFormat":1},{"version":"429c9cdfa7d126255779efd7e6d9057ced2d69c81859bbab32073bad52e9ba76","impliedFormat":1},{"version":"39338f84e8c4d0e3de7b3c4a7024fb3925f42100eed5cbe73be58902799dff4d","impliedFormat":1},{"version":"f1c92c0b24d678486042dfc038c7c1d6e8520fe384b82155720a42a893204588","affectsGlobalScope":true,"impliedFormat":1},{"version":"230763250f20449fa7b3c9273e1967adb0023dc890d4be1553faca658ee65971","impliedFormat":1},{"version":"c3e9078b60cb329d1221f5878e88cecfa3e74460550e605a58fcfb41a66029ff","impliedFormat":1},{"version":"8413d0641f293aed551c7464615b770d34a02dedede889b9591172287d68e773","impliedFormat":1},{"version":"441b9bb09013654aa3d050e68b06464d8959b473e85868249d9d18f692acd35b","impliedFormat":1},{"version":"bc18a1991ba681f03e13285fa1d7b99b03b67ee671b7bc936254467177543890","impliedFormat":1},{"version":"55246f15e33ff1e2e9e679b25fa9790a48db55dc63d567fe25fac8b6a0efe911","impliedFormat":1},{"version":"fa94bbf532b7af8f394b95fa310980d6e20bd2d4c871c6a6cb9f70f03750a44b","impliedFormat":1},{"version":"8bb351077998efc2d986a6a7373cba6f098a91a3679cefce3ba2aab90493161c","impliedFormat":1},{"version":"734665cf52eb63e20252412ca891601b1405f7c6abef6425f1939cbb15ed239d","affectsGlobalScope":true,"impliedFormat":1},{"version":"7fa2214bb0d64701bc6f9ce8cde2fd2ff8c571e0b23065fa04a8a5a6beb91511","impliedFormat":1},{"version":"f36b3fbe2be150a9ca140da48593f21e6a8172004f92ddc549b43efec39f3e54","impliedFormat":1},{"version":"f12624a4a8d042b68914eac1b0a16571fc1c523173fcdf2517c65d191bd5a86c","impliedFormat":1},{"version":"b4769767f13a1692a66186e01c3aa186ff808d5ff72ed36eda8c37738fb2ac92","impliedFormat":1},{"version":"841983e39bd4cbb463be385e92fda11057cab368bf27100a801c492f1d86cbaa","impliedFormat":1},{"version":"ae6adca0538007af480cf43e20b1e7631c5321406bc515bff980a0d31252f79f","impliedFormat":1},{"version":"1ec3f3a5f04cc42df33274fbe5c0937d9a9e06f249a7a26288d7d54f0763ffd4","impliedFormat":1},{"version":"e4156ddb25aa0e3b5303d372f26957b36778f0f6bbd4326359269873295e3058","affectsGlobalScope":true,"impliedFormat":1},{"version":"cc1b433a84cae05ddc5672d4823170af78606ad21ecef60dbc4570190cbf1357","impliedFormat":1},{"version":"e47f532d6e1617833f13a5b0710c0089d402c89c2f2b54f324e5a20e418d287a","impliedFormat":1},{"version":"7f78cfb2b343838612c192cb251746e3a7c62ac7675726a47e130d9b213f6580","impliedFormat":1},{"version":"201db9cf1687fab1adf5282fcba861f382b32303dc4f67c89d59655e78a25461","impliedFormat":1},{"version":"8e2577e7262051fd3c5bd6ca2b2056d358ff8853565720f92455860824c25188","impliedFormat":1},{"version":"5cbb49cb13edc05e52b239329932cfde34323c6bfe33020e381faa97d2300b22","impliedFormat":1},{"version":"bb9dbb4b2ad81e3e71ec5ba4314973718555b9d04ba2a17dfbf875efecb8e2c0","impliedFormat":1},{"version":"62e02b8bbc05076243cf153d10c27b3d886c7c08558dfb797f280d837881b3cd","impliedFormat":1},{"version":"045a210189ec63c5488410b33f9fca53d77d051599d0d6506d8048551399c5f3","impliedFormat":1},{"version":"99ab6d0d660ce4d21efb52288a39fd35bb3f556980ec5463b1ae8f304a3bbc85","impliedFormat":1},{"version":"3ead5b9bea1c59a375acdd494ac503f6e16a2b47cffbc31da1824fc17d023205","impliedFormat":1},{"version":"c9a2daf6cd1eb854cd5b9e424247c5e306692055738c2effd35f7871d942b76e","impliedFormat":1},{"version":"afa1c49f8e559e413d57343339db857d2a8159435cf9cf7d4deb41718fff1b88","impliedFormat":1},{"version":"e423ccd43347320b61eea979368bd0e80785c0823995b4f46ec3c9b4dadcd45f","impliedFormat":1},{"version":"55987c7f1ee17c227c061ea3b0fc3fdae389f7a88a06b1535614823e2c21820f","impliedFormat":1},{"version":"599e46168d3a3c2c21a50cb3e639c0b77c58bfabbe5a5c294b8b668f559eb7ba","impliedFormat":1},{"version":"6fc329e7ba09a2a03014076561621dcadd57cc25d8e2d92fb96c59e26739e47d","impliedFormat":1},{"version":"2e01ab648ec88951c1b04b98f692eaa77da914bcfa6346b8f298e78f10a19899","impliedFormat":1},{"version":"a081114975823082bd7f2a7743f2634e8669b00c2bd41eaf75ff4d7825dd2e4d","impliedFormat":1},{"version":"b1fc7cad221e8d71166e2109224e6a98894b78325138ce2f423d6eab3ee53d63","impliedFormat":1},{"version":"7854c65e65559b79ea904321c842c618a7b7719703746e7165050a006e50992b","impliedFormat":1},{"version":"6745d6da8a068e8abe19ff5af0c6f97e249297edfdf135d255142060b9ffeeea","impliedFormat":1},{"version":"fc649a6e398a6b17ca3c5311c3ac787ad306142e95735a86362f5adf75e44546","impliedFormat":1},{"version":"46f19b48edd90d4dd17b12ac9c858e6560bde3a0a9c6ed973298e28bf0d10e5d","impliedFormat":99},{"version":"44aa57dded46deaa11565b840954a4008f4b9adf4ba99ea1ef64a9dca0859b6a","impliedFormat":99},{"version":"2665bb0a675194bdc12c2aae57640743d968ca0e152fd7e4b5b3798e303f5904","impliedFormat":99},{"version":"3bf1e1f4221c93d2602dbe1e8a5c42bd9d83035e591fd8330b5df5064d1cbb35","impliedFormat":99},{"version":"6f697f28a6f67bb02fafb09acdea590f9c288ca4e5ab871bee3612e37756d58f","impliedFormat":99},{"version":"3592ee14f09ea1bd7cc06232cd1d9dd2cf9717c3ff98e034a889398628458a33","impliedFormat":99},{"version":"51e95164bb91b5e35942e2652f67a6faed5aa207f3d304d9182f72aa80c57666","impliedFormat":99},{"version":"a9df07b5283a5d96084b0e1cc70d55ad71b8c0b12aa24b39909d1513f8c02d6f","impliedFormat":99},{"version":"ffde342e2ed009fa61cefb9fbe2a36e8a6051f0d3e538da00d31350ecfb2a3e9","impliedFormat":99},{"version":"d40dd20b123a2cb25729b0807038ced70c3dfd33bdbe563c273cdcc745007323","impliedFormat":99},{"version":"2502125756dad5170bc6bd5539213d2ea19eea5104515729f94ee90baf0a6e40","impliedFormat":99},{"version":"4634e5e90356906527f7facb89318b271abba009c73e5f55a00d5744f7ee23da","impliedFormat":99},{"version":"daf19d573bc043fe0b93c4e58fe2197f83321483b9a98e802f94c7a8eb765a9b","impliedFormat":99},{"version":"bb29669dea1a0b82a1eae5937580372ca62c2b926b50b83568d97e00d7685524","impliedFormat":99},{"version":"2ede175e48b890287cfbea1d640cf56dbea81f787d89c4321b11357b0b1f9c73","impliedFormat":99},{"version":"fabb53f54249a6a81759a0e8842b7275477537ff0e2f713a0c177288ade5657f","impliedFormat":99},{"version":"c601604bc59aef572b6c80761a40fa06ca43c6ba7726d6e37f092f22af6db6e5","impliedFormat":99},{"version":"bbfee6fde415affb359dd4d9ead08a96d812d88746f718f89902c4160ddb9962","impliedFormat":99},{"version":"0bec6305f4a56c9e34160c66f7793c02fd7db45585dec295dbe2ea2a58a6b258","signature":"eb4c0629d6005f29608d74918077f2609b8ee77132f323c1501516d45828a353","impliedFormat":99},{"version":"1c094d2fd8aa49909db490c626e45fd541b1d534d828e8594ce3952f4105c053","signature":"d33fca73351dc7db2163522dd5cc9364a693526e8a950891726e387ce48675c6","impliedFormat":99},{"version":"fb893a0dfc3c9fb0f9ca93d0648694dd95f33cbad2c0f2c629f842981dfd4e2e","impliedFormat":1},{"version":"89e326922cadcc2331d7e851011cf9f0456a681aaf3c95b48b81f8d80e8cdfba","impliedFormat":1},{"version":"2c659ecaad09d70a5ed0cd5891f0b28b99b3c8e7406ccf717542f11100e1ffdf","signature":"b8fe33dafe03318964723bf2aa68ebbe1410415ec7bba32d8e889fc2ad400bd6","impliedFormat":99},{"version":"81e2f71482f830a4b58763c4643bec531cc3deef571065d9181801e1e3833540","signature":"30f666a23277efe541aa63162c2a92b8223916f5b89f4a1f931e9d1959dbddc6","impliedFormat":99},{"version":"711014bc66c9bc920a37b3cf1dc86c2858678558e983c3f5c31fda0d82e22d5f","impliedFormat":99},{"version":"5fc2e5495efb0b71dcb0964f9d1e6c06c11d421bb154a7306648149dec2e23b0","impliedFormat":99},{"version":"23f6f80b74cc0d7d3f6c368d3e6c65fcc6383f6667d6f5c502ddb660789929c4","impliedFormat":99},{"version":"c93b7b56df6f2616af85afd52cfe3177d1068bf8a2117f8c0c8c7df8bd978145","signature":"9803653ccfa86b2552f68c0af8863c2f02a4e7be03eba144294891036264565e","impliedFormat":99},{"version":"6a2d1db0495ce13c2b8966c8fba5f277d4161c0a466174cabe32aa70850e0228","impliedFormat":99},{"version":"a2ce5d65f1ad4bdaffb36d7656d96c0ea9a89f27edc6675fa02e5fa34e96bcb0","signature":"f2dbf7fc3b468db1e037b375b1afe1290ed091f857f1baf9bf84646448e73165","impliedFormat":99},{"version":"089babad084f9688335a93738124aa8736d81e52445b317755ddafaa4def0a55","signature":"dba6bbc3c835e5913a5ae57057aa7f2d14ed338c7cfdb6c5caef89a4e97a41d8","impliedFormat":99},{"version":"8124523216a0d1375559b3d846554467504831f30f3ab7f4909934b3a4540a71","signature":"10543aacf1b98032046c56af4b15b6a7a7f55ce0c0b925504e550936dcc8b3c6","impliedFormat":99},{"version":"f307ec1bd0a8fa421f0969babb707624dc062f9bcdba38882b5cb1642e1ddf68","signature":"4256939fd8c5cae3db691949208d65c91d0a139e467a74909908b3edca755715","impliedFormat":99},{"version":"e27539d55452607eae435cc91f54818ecc9e6f04926147b7d96b8c302332247c","signature":"7a1688ac3e1aa2126e4381eadb6c9489c50baa149e6e8e28691dd7772e19c1af","impliedFormat":99},{"version":"d800716868d27d54d95f5aeaecb8eaaca5ce9478c97654793dc7e4bf67113626","signature":"6a50bd8335bff073544c9add6b982ea6ec1783b33b3b97370b9d5339189669f7","impliedFormat":99},{"version":"06863674736743ede05fa680071d6bcbc697da13cb339afbebfb0039641e884b","signature":"aea04721395462abc47d7c951026ede16c4ca8f7d7a84c2f86a18c4b7af8e561","impliedFormat":99},{"version":"420352e0708dc6a592da71d82dab0d976846ed0c4b3116669c9ca775347d013b","signature":"73e4906fef5f5b9c33841e62d27049595b9eda9687a925dd68ee75e4c154675c","impliedFormat":99},{"version":"d6dbda87b37e13ef4584a5cd91e983596522617c46070bb12cb9d51a6ed628ef","signature":"f3b7245e0af1b1440fa34fa4d4c1fc1c65d1cbbf5b3719940591cafe1b358501","impliedFormat":99},{"version":"d730f0f08739928359f53b5f2057d2957c673d92a986fb4243314e54e1439329","signature":"153092f1d5abba4093fda4f6947c0279a80c01c9b2a38f83db9506669e004ca9","impliedFormat":99},{"version":"0bd87ab3f5ebb35156ad60befb5bf4a05a2b59100a129a4d850fdf04ec584639","impliedFormat":99},{"version":"c4b7f9d8ba3e3ef99fb003715b98fcfc26ae7de4c2d04243f1972d300431413d","impliedFormat":99},{"version":"750090051803f03c959b0bdb20f5223e4c798e1ced6924eb93fa049e3885af44","signature":"9437cb1a985a3373aeffb22d0b19b8bb19e196501406be06846383a634dacb97","impliedFormat":99},{"version":"7e1539ff2f22419672d027f5a143c198657febc0853dfe2664c27f5a3ddd11d6","signature":"847720ad6ca542e581988c529c911033cdc00930b88a80bb6c072c370e391dbf","impliedFormat":99},{"version":"0c114992fe460c5d1bccacd65a9be1e5ab80aa0f585077a682479a1b5629095b","impliedFormat":99},{"version":"1459c3948dcaa28da7a877d94e5b7ab57cf3943d3df5c681e15434ae4a98218b","signature":"5d20b3c0a1c92c48e9d17f8bc3ce63c8524adcdc85fa62ab1d2003a5f5f9fdc4","impliedFormat":99},{"version":"a59769722e3443df172a2e4457b5913e8decd20f2a8356cf83f0d8644499db0a","signature":"5de847dc23338cba453358aa5f68f88f383e2936a1139efa08e7481dfbd5cecd","impliedFormat":99},{"version":"8e55538e21f3a9de2af49d64e9cecb56bc8e110e6f48597d16cc3a99af83fd8a","signature":"727a2465c17b98fd96c231b0dbacef373a0b42f01901164af027c4107a6c1f43","impliedFormat":99},{"version":"760f33eddc8ad4eb1a3a91e2f3142de51e206a0314a62c595b1d478984cbb1b7","signature":"0372e9ae1d10be52aba26810d9f76605ef618fa3a8dfdd0b4cf2f70c7664c706","impliedFormat":99},{"version":"d9f2f68f7b46e82656413a4daa82f47eefe99804700472afc940bb853d35efa3","signature":"4fd81e97e7f015bb3f884cf3522cdd0404b7719a9644595d4275aa7501bed801","impliedFormat":99},{"version":"286451a8462aa50ad7efef5a6579b20bda661afbb945b8501e56566d87582224","signature":"b430da29d8621bb8c69f1d9ecd97ba84a05bb09b3b7e9db8604f4b40cb2755e1","impliedFormat":99},{"version":"77940783509c3b23ff0ecfbc17a04bde608965e95b83e14491c09f2c60a2f15e","signature":"861776460bc3f169279156ed53c64555fe7c945d41a411ba80024f8b70dbc857","impliedFormat":99},{"version":"2e5e0a80f71edff5b01a6f9b949bce658896ed4dee4f1c264642f6c0721949b4","signature":"e0c796add16f7a6b932cd8432c50cdf7d579665e6fbcce857e7942b5bfa5dac8","impliedFormat":99},{"version":"a5d642e0fb3d1f6fc363f8e09872e4ffff2ff56682d2badcecf4133a2a605f9e","impliedFormat":99}],"root":[243,244,247,248,252,[254,263],266,267,[269,277]],"options":{"allowUnreachableCode":false,"allowUnusedLabels":false,"composite":true,"esModuleInterop":true,"exactOptionalPropertyTypes":false,"module":199,"noFallthroughCasesInSwitch":true,"noImplicitOverride":true,"noImplicitReturns":true,"noPropertyAccessFromIndexSignature":false,"noUncheckedIndexedAccess":true,"noUnusedLocals":true,"noUnusedParameters":true,"outDir":"./dist","rootDir":"./src","skipLibCheck":true,"strict":true,"target":11},"referencedMap":[[246,1],[245,2],[153,3],[154,3],[155,4],[91,5],[156,6],[157,7],[158,8],[159,9],[160,10],[161,11],[162,12],[163,13],[164,14],[165,14],[166,15],[167,16],[168,17],[169,18],[92,2],[90,2],[170,19],[171,20],[172,21],[215,22],[173,23],[174,24],[175,23],[176,25],[177,26],[179,27],[180,28],[181,28],[182,28],[183,29],[184,30],[185,31],[186,32],[187,33],[188,34],[189,34],[190,35],[191,2],[192,2],[193,36],[194,37],[195,38],[196,36],[197,39],[198,40],[199,41],[200,42],[201,43],[202,44],[203,45],[204,46],[205,47],[206,48],[207,49],[208,50],[209,51],[210,52],[211,53],[93,23],[94,2],[95,54],[96,55],[97,2],[98,56],[99,2],[144,57],[145,58],[146,59],[147,59],[148,60],[149,2],[150,6],[151,61],[152,58],[212,62],[213,63],[214,64],[178,2],[217,65],[216,2],[225,66],[226,67],[218,2],[88,2],[89,2],[14,2],[15,2],[17,2],[16,2],[2,2],[18,2],[19,2],[20,2],[21,2],[22,2],[23,2],[24,2],[25,2],[3,2],[26,2],[27,2],[4,2],[28,2],[32,2],[29,2],[30,2],[31,2],[33,2],[34,2],[35,2],[5,2],[36,2],[37,2],[38,2],[39,2],[6,2],[43,2],[40,2],[41,2],[42,2],[44,2],[7,2],[45,2],[50,2],[51,2],[46,2],[47,2],[48,2],[49,2],[8,2],[55,2],[52,2],[53,2],[54,2],[56,2],[9,2],[57,2],[58,2],[59,2],[61,2],[60,2],[62,2],[63,2],[10,2],[64,2],[65,2],[66,2],[11,2],[67,2],[68,2],[69,2],[70,2],[71,2],[72,2],[12,2],[73,2],[74,2],[75,2],[76,2],[77,2],[1,2],[78,2],[79,2],[13,2],[80,2],[81,2],[82,2],[83,2],[84,2],[85,2],[86,2],[87,2],[118,68],[132,69],[115,70],[133,71],[142,72],[106,73],[107,74],[105,75],[141,76],[136,77],[140,78],[109,79],[119,80],[129,81],[108,82],[139,83],[103,84],[104,77],[110,80],[111,2],[117,85],[114,80],[101,86],[143,87],[134,88],[122,89],[121,80],[123,90],[126,91],[120,92],[124,93],[137,76],[112,94],[113,95],[127,96],[102,71],[131,97],[130,80],[116,95],[125,98],[128,99],[135,2],[100,2],[138,100],[219,2],[223,101],[220,2],[222,2],[221,2],[224,102],[244,103],[247,104],[261,105],[262,106],[263,107],[243,2],[276,108],[266,2],[267,2],[269,109],[275,2],[270,110],[256,111],[257,112],[258,2],[254,2],[255,113],[277,2],[259,114],[248,2],[271,2],[260,115],[274,116],[272,107],[273,117],[252,118],[229,119],[230,120],[228,2],[234,121],[235,122],[239,123],[238,2],[237,124],[236,122],[227,125],[241,2],[242,126],[240,127],[233,128],[251,2],[250,2],[249,2],[253,2],[231,2],[264,129],[232,130],[268,2],[265,2]],"latestChangedDtsFile":"./dist/index.d.ts","version":"6.0.3"}
|