@helixdev/helix-sdk 0.1.1-staging.6 → 0.1.1-staging.8
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/dist/index.d.ts +4 -0
- package/dist/index.js +12 -0
- package/dist/index.js.map +1 -1
- package/dist/multiplayer-contract/credential.d.ts +25 -0
- package/dist/multiplayer-contract/credential.js +5 -0
- package/dist/multiplayer-contract/credential.js.map +1 -0
- package/dist/multiplayer-contract/index.d.ts +9 -0
- package/dist/multiplayer-contract/index.js +25 -0
- package/dist/multiplayer-contract/index.js.map +1 -0
- package/dist/multiplayer-contract/messages.d.ts +61 -0
- package/dist/multiplayer-contract/messages.js +27 -0
- package/dist/multiplayer-contract/messages.js.map +1 -0
- package/dist/multiplayer-contract/room.d.ts +33 -0
- package/dist/multiplayer-contract/room.js +17 -0
- package/dist/multiplayer-contract/room.js.map +1 -0
- package/dist/multiplayer-contract/state.d.ts +46 -0
- package/dist/multiplayer-contract/state.js +15 -0
- package/dist/multiplayer-contract/state.js.map +1 -0
- package/dist/multiplayer.d.ts +69 -0
- package/dist/multiplayer.js +161 -0
- package/dist/multiplayer.js.map +1 -0
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/package.json +14 -1
package/dist/index.d.ts
CHANGED
|
@@ -1,5 +1,8 @@
|
|
|
1
1
|
import { HelixWorldContext, HelixUser } from './protocol';
|
|
2
|
+
import { HelixMultiplayer } from './multiplayer';
|
|
2
3
|
export type { HelixWorldContext, HelixSession, HelixUser } from './protocol';
|
|
4
|
+
export type { HelixRoom, JoinRoomOptions, ReplicaInput } from './multiplayer';
|
|
5
|
+
export * from './multiplayer-contract';
|
|
3
6
|
export type HelixInitResult = {
|
|
4
7
|
embedded: boolean;
|
|
5
8
|
world: HelixWorldContext | null;
|
|
@@ -14,6 +17,7 @@ declare class HelixSdk {
|
|
|
14
17
|
private listeners;
|
|
15
18
|
private pendingLogins;
|
|
16
19
|
init(): Promise<HelixInitResult>;
|
|
20
|
+
readonly multiplayer: HelixMultiplayer;
|
|
17
21
|
readonly auth: {
|
|
18
22
|
getUser: () => Promise<HelixUser | null>;
|
|
19
23
|
isAuthenticated: () => boolean;
|
package/dist/index.js
CHANGED
|
@@ -1,4 +1,9 @@
|
|
|
1
1
|
import { isShellMessage, PROTOCOL_VERSION, } from './protocol';
|
|
2
|
+
import { HelixMultiplayer } from './multiplayer';
|
|
3
|
+
// The multiplayer wire contract. Re-exported here so `@hypersoniclabs/helix-sdk` root consumers (and
|
|
4
|
+
// classic node-resolution type imports, e.g. the backend minting RoomCredentialClaims) get it; bundler
|
|
5
|
+
// consumers that want only the contract import the lighter '@hypersoniclabs/helix-sdk/multiplayer-contract'.
|
|
6
|
+
export * from './multiplayer-contract';
|
|
2
7
|
const INIT_TIMEOUT_MS = 3000;
|
|
3
8
|
const LOGIN_TIMEOUT_MS = 5 * 60 * 1000;
|
|
4
9
|
class HelixSdk {
|
|
@@ -21,6 +26,13 @@ class HelixSdk {
|
|
|
21
26
|
this.initialized = true;
|
|
22
27
|
return this.snapshot();
|
|
23
28
|
}
|
|
29
|
+
// Multiplayer (pillar D): Helix.multiplayer.joinRoom(). Reads the world_session token + world id off
|
|
30
|
+
// this singleton; the heavy Colyseus client is dynamically imported only on join.
|
|
31
|
+
multiplayer = new HelixMultiplayer({
|
|
32
|
+
isInitialized: () => this.initialized,
|
|
33
|
+
getToken: () => this.session?.token ?? null,
|
|
34
|
+
getWorldId: () => this.world?.id ?? null,
|
|
35
|
+
});
|
|
24
36
|
auth = {
|
|
25
37
|
getUser: async () => {
|
|
26
38
|
this.assertInitialized();
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAKL,cAAc,EACd,gBAAgB,GACjB,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
export declare const ROOM_CREDENTIAL_AUDIENCE: "helix-instant-room";
|
|
2
|
+
/**
|
|
3
|
+
* Claims the backend signs (HS384) and the room verifies. Mirrors the world_session claim shape
|
|
4
|
+
* (sub/displayName/worldId/scopes/jti) plus the immutable buildId the room loads its config from.
|
|
5
|
+
*/
|
|
6
|
+
export interface RoomCredentialClaims {
|
|
7
|
+
/** Player/user id. */
|
|
8
|
+
sub: string;
|
|
9
|
+
/** Sanitized display name for nameplates. */
|
|
10
|
+
displayName: string;
|
|
11
|
+
/** World the room belongs to. */
|
|
12
|
+
worldId: string;
|
|
13
|
+
/** Immutable build the room loads its declarative config (allowed messages, room-var shape) from. */
|
|
14
|
+
buildId: string;
|
|
15
|
+
/** Scopes from manifest.permissions; must include 'multiplayer' to join a room. */
|
|
16
|
+
scopes: string[];
|
|
17
|
+
/** Manifest maxPlayers (authoritative) → the room's maxClients cap, so it auto-locks + spills when full. */
|
|
18
|
+
maxPlayers: number;
|
|
19
|
+
/** Always ROOM_CREDENTIAL_AUDIENCE. */
|
|
20
|
+
aud: typeof ROOM_CREDENTIAL_AUDIENCE;
|
|
21
|
+
iss: string;
|
|
22
|
+
exp: number;
|
|
23
|
+
iat: number;
|
|
24
|
+
jti: string;
|
|
25
|
+
}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
// Room credential — the short-lived JWT the backend mints (createRoomSession) and the Colyseus room
|
|
2
|
+
// verifies in onAuth with a shared HMAC secret (ROOM_JWT_SECRET, Option C). Distinct audience from the
|
|
3
|
+
// world_session token (aud 'helix-instant-world') so a world token can't be replayed to join a room.
|
|
4
|
+
export const ROOM_CREDENTIAL_AUDIENCE = 'helix-instant-room';
|
|
5
|
+
//# sourceMappingURL=credential.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"credential.js","sourceRoot":"","sources":["../../src/multiplayer-contract/credential.ts"],"names":[],"mappings":"AAAA,oGAAoG;AACpG,uGAAuG;AACvG,qGAAqG;AAErG,MAAM,CAAC,MAAM,wBAAwB,GAAG,oBAA6B,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Wire format version. Bump on any incompatible change to PlayerReplicaState, the message table, or
|
|
3
|
+
* the credential claims, so the room/SDK/driver can detect a mismatch instead of misreading bytes.
|
|
4
|
+
*/
|
|
5
|
+
export declare const CONTRACT_VERSION: 2;
|
|
6
|
+
export * from './state';
|
|
7
|
+
export * from './room';
|
|
8
|
+
export * from './messages';
|
|
9
|
+
export * from './credential';
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
// @hypersoniclabs/helix-sdk/multiplayer-contract — the multiplayer wire contract.
|
|
2
|
+
//
|
|
3
|
+
// The single source of truth for the data shapes three independently-built pieces must agree on:
|
|
4
|
+
// • the Colyseus room (@colyseus/schema state + message dispatch + runtime validation),
|
|
5
|
+
// • this SDK's Helix.multiplayer client (send path + room.state),
|
|
6
|
+
// • the engine's NetworkDriver adapter (consumes the replicated params → blackboard).
|
|
7
|
+
// Plus the backend (mints RoomCredentialClaims) and the room (verifies them).
|
|
8
|
+
//
|
|
9
|
+
// Pure types + constants, ZERO runtime deps — so the standalone three.js engine adapter can import
|
|
10
|
+
// the types at zero runtime cost. Runtime message validation lives in the room (the only place
|
|
11
|
+
// untrusted inbound messages arrive), not here.
|
|
12
|
+
//
|
|
13
|
+
// The state has two layers (see room.ts): players are FIXED (the engine character contract); roomVars,
|
|
14
|
+
// per-player vars, and entities are DECLARED per-world — that's how an agent syncs custom game state
|
|
15
|
+
// without writing server code. The generic 'action' message (messages.ts) is the channel for it.
|
|
16
|
+
/**
|
|
17
|
+
* Wire format version. Bump on any incompatible change to PlayerReplicaState, the message table, or
|
|
18
|
+
* the credential claims, so the room/SDK/driver can detect a mismatch instead of misreading bytes.
|
|
19
|
+
*/
|
|
20
|
+
export const CONTRACT_VERSION = 2;
|
|
21
|
+
export * from './state';
|
|
22
|
+
export * from './room';
|
|
23
|
+
export * from './messages';
|
|
24
|
+
export * from './credential';
|
|
25
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/multiplayer-contract/index.ts"],"names":[],"mappings":"AAAA,kFAAkF;AAClF,EAAE;AACF,iGAAiG;AACjG,0FAA0F;AAC1F,oEAAoE;AACpE,wFAAwF;AACxF,8EAA8E;AAC9E,EAAE;AACF,mGAAmG;AACnG,+FAA+F;AAC/F,gDAAgD;AAChD,EAAE;AACF,uGAAuG;AACvG,qGAAqG;AACrG,iGAAiG;AAEjG;;;GAGG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAU,CAAC;AAE3C,cAAc,SAAS,CAAC;AACxB,cAAc,QAAQ,CAAC;AACvB,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import type { Vec3 } from './state';
|
|
2
|
+
import type { RoomVarValue } from './room';
|
|
3
|
+
export declare const ClientMessageType: {
|
|
4
|
+
/** The player's predicted kinematic state for this tick (seq-tagged for reconciliation). */
|
|
5
|
+
readonly State: "state";
|
|
6
|
+
/** Activate or deactivate an ability on this player (the built-in, engine-level intent). */
|
|
7
|
+
readonly Ability: "ability";
|
|
8
|
+
/** A world-authored declared action (the generic extensibility channel — see ActionMessage). */
|
|
9
|
+
readonly Action: "action";
|
|
10
|
+
};
|
|
11
|
+
export type ClientMessageType = (typeof ClientMessageType)[keyof typeof ClientMessageType];
|
|
12
|
+
/** Per-tick state upload. Units match PlayerReplicaState (position m; all angles degrees, see *Deg). */
|
|
13
|
+
export interface StateMessage {
|
|
14
|
+
/** Monotonic per-client sequence; the room echoes the last applied seq for client reconciliation. */
|
|
15
|
+
seq: number;
|
|
16
|
+
position: Vec3;
|
|
17
|
+
facingYawDeg: number;
|
|
18
|
+
speed: number;
|
|
19
|
+
moveDirectionDeg: number;
|
|
20
|
+
verticalVelocity: number;
|
|
21
|
+
grounded: boolean;
|
|
22
|
+
crouched: boolean;
|
|
23
|
+
aimYawDeg: number;
|
|
24
|
+
aimPitchDeg: number;
|
|
25
|
+
}
|
|
26
|
+
/** Discrete ability activation intent. */
|
|
27
|
+
export interface AbilityMessage {
|
|
28
|
+
/** Ability id (must be one the world's build declares). */
|
|
29
|
+
ability: string;
|
|
30
|
+
/** true = activate, false = deactivate. */
|
|
31
|
+
active: boolean;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* A world-authored declared action — the generic extensibility channel (e.g. 'captureFlag',
|
|
35
|
+
* 'scorePoint'). The room validates `name` against the world's declared action set and `args` against
|
|
36
|
+
* that action's declared arg schema before mutating authoritative state (table-driven dispatch); this
|
|
37
|
+
* module carries the envelope + arg vocabulary only, never the per-world rules.
|
|
38
|
+
*/
|
|
39
|
+
export interface ActionMessage {
|
|
40
|
+
/** Action name; must be one the world's build declares. */
|
|
41
|
+
name: string;
|
|
42
|
+
/** Primitive/Vec3 args, validated against the declared action's schema by the room. */
|
|
43
|
+
args?: Record<string, RoomVarValue>;
|
|
44
|
+
}
|
|
45
|
+
/** Maps each message type to its payload, so senders/handlers stay in lockstep. */
|
|
46
|
+
export interface ClientMessagePayloads {
|
|
47
|
+
[ClientMessageType.State]: StateMessage;
|
|
48
|
+
[ClientMessageType.Ability]: AbilityMessage;
|
|
49
|
+
[ClientMessageType.Action]: ActionMessage;
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Per-connection rate ceilings (messages/second) the room enforces; over-rate clients are dropped.
|
|
53
|
+
* State is the throttled input channel (≤~10Hz, plan D3); ability is bursty but bounded.
|
|
54
|
+
*/
|
|
55
|
+
export declare const MESSAGE_RATE: {
|
|
56
|
+
readonly stateHz: 10;
|
|
57
|
+
readonly abilityHz: 20;
|
|
58
|
+
readonly actionHz: 20;
|
|
59
|
+
};
|
|
60
|
+
/** Hard payload bound the room rejects above (defense against oversized frames). */
|
|
61
|
+
export declare const MAX_MESSAGE_BYTES = 1024;
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
// Client → server messages. The SDK send path emits these; the room dispatches them through a
|
|
2
|
+
// table keyed by ClientMessageType and validates every payload before mutating authoritative state
|
|
3
|
+
// (the room owns runtime validation — this module is types + limits only, no validator, no deps).
|
|
4
|
+
//
|
|
5
|
+
// Tier 1 (lean authoritative, no server physics): the client predicts locally and sends its state
|
|
6
|
+
// each tick (seq-tagged so the room can echo for reconciliation); the room validates bounds/rate and
|
|
7
|
+
// writes the authoritative copy. Discrete intents (ability on/off) are their own message.
|
|
8
|
+
export const ClientMessageType = {
|
|
9
|
+
/** The player's predicted kinematic state for this tick (seq-tagged for reconciliation). */
|
|
10
|
+
State: 'state',
|
|
11
|
+
/** Activate or deactivate an ability on this player (the built-in, engine-level intent). */
|
|
12
|
+
Ability: 'ability',
|
|
13
|
+
/** A world-authored declared action (the generic extensibility channel — see ActionMessage). */
|
|
14
|
+
Action: 'action',
|
|
15
|
+
};
|
|
16
|
+
/**
|
|
17
|
+
* Per-connection rate ceilings (messages/second) the room enforces; over-rate clients are dropped.
|
|
18
|
+
* State is the throttled input channel (≤~10Hz, plan D3); ability is bursty but bounded.
|
|
19
|
+
*/
|
|
20
|
+
export const MESSAGE_RATE = {
|
|
21
|
+
stateHz: 10,
|
|
22
|
+
abilityHz: 20,
|
|
23
|
+
actionHz: 20,
|
|
24
|
+
};
|
|
25
|
+
/** Hard payload bound the room rejects above (defense against oversized frames). */
|
|
26
|
+
export const MAX_MESSAGE_BYTES = 1024;
|
|
27
|
+
//# sourceMappingURL=messages.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"messages.js","sourceRoot":"","sources":["../../src/multiplayer-contract/messages.ts"],"names":[],"mappings":"AAAA,8FAA8F;AAC9F,mGAAmG;AACnG,kGAAkG;AAClG,EAAE;AACF,kGAAkG;AAClG,qGAAqG;AACrG,0FAA0F;AAK1F,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAC/B,4FAA4F;IAC5F,KAAK,EAAE,OAAO;IACd,4FAA4F;IAC5F,OAAO,EAAE,SAAS;IAClB,gGAAgG;IAChG,MAAM,EAAE,QAAQ;CACR,CAAC;AA8CX;;;GAGG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG;IAC1B,OAAO,EAAE,EAAE;IACX,SAAS,EAAE,EAAE;IACb,QAAQ,EAAE,EAAE;CACJ,CAAC;AAEX,oFAAoF;AACpF,MAAM,CAAC,MAAM,iBAAiB,GAAG,IAAI,CAAC"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import type { Vec3 } from './state';
|
|
2
|
+
import type { PlayerIdentity, PlayerReplicaState } from './state';
|
|
3
|
+
/** The value vocabulary an agent may declare for custom state (Tier 1). Tier 2 widens this. */
|
|
4
|
+
export type RoomVarValue = number | string | boolean | Vec3;
|
|
5
|
+
/** A declared bag of custom state — names + types are declared per-world; used for both room-level and per-player vars. */
|
|
6
|
+
export type RoomVars = Record<string, RoomVarValue>;
|
|
7
|
+
/** Full authoritative per-player state: the FIXED character contract + identity + DECLARED game vars. */
|
|
8
|
+
export interface PlayerState extends PlayerIdentity, PlayerReplicaState {
|
|
9
|
+
/** Declared per-player game state (e.g. team, health, score). Same vocabulary as roomVars; declared per-world. */
|
|
10
|
+
vars: RoomVars;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* RESERVED (Tier 2): a server-spawned object (pickup, projectile, NPC). Empty in v1 — the shape is
|
|
14
|
+
* reserved so adding server-spawned entities later is additive. Tier 2 gives these author-defined
|
|
15
|
+
* behavior; v1 only freezes the slot in RoomState.
|
|
16
|
+
*/
|
|
17
|
+
export interface EntityState {
|
|
18
|
+
id: string;
|
|
19
|
+
/** Author-defined kind (e.g. 'flag', 'pickup'). */
|
|
20
|
+
kind: string;
|
|
21
|
+
position?: Vec3;
|
|
22
|
+
/** Declared custom vars (same vocabulary as roomVars). */
|
|
23
|
+
vars: RoomVars;
|
|
24
|
+
}
|
|
25
|
+
/** The authoritative shared state. Always carries all three collections (entities empty until Tier 2). */
|
|
26
|
+
export interface RoomState {
|
|
27
|
+
/** Per-player authoritative state, keyed by player id. Realized as a colyseus MapSchema. */
|
|
28
|
+
players: Record<string, PlayerState>;
|
|
29
|
+
/** Room-level declared game state (scores, timers, objectives). Names/types declared per-world. */
|
|
30
|
+
roomVars: RoomVars;
|
|
31
|
+
/** RESERVED (Tier 2): server-spawned entities. Empty in v1. */
|
|
32
|
+
entities: Record<string, EntityState>;
|
|
33
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
// The authoritative room state shape — the FRAMEWORK for what a world syncs. The room holds this as
|
|
2
|
+
// @colyseus/schema (the Record<string, T> maps below are realized as MapSchema); the SDK exposes it as
|
|
3
|
+
// room.state. Two layers, and the distinction is the whole answer to "how does an agent sync more?":
|
|
4
|
+
//
|
|
5
|
+
// • players — FIXED. Each player is the engine's character contract (PlayerReplicaState) + identity.
|
|
6
|
+
// Universal across every world; an agent never changes its fields.
|
|
7
|
+
// • roomVars / per-player vars / entities — DECLARED PER-WORLD. This is where an agent's game state
|
|
8
|
+
// lives (scores, timers, teams, objectives). The agent DECLARES names + types in the
|
|
9
|
+
// world's multiplayer config (loaded by buildId at onCreate); the one generic HelixRoom
|
|
10
|
+
// interprets the declaration — no agent-authored server code (Tier 1).
|
|
11
|
+
//
|
|
12
|
+
// Tier-1 vocabulary is intentionally bounded (primitives + Vec3). Rich/nested custom state and
|
|
13
|
+
// author-defined entity behavior are Tier 2 (a reflection-based dynamic schema + behavior DSL),
|
|
14
|
+
// deferred — the `entities` collection and this declared-bag shape are the reserved seams that keep
|
|
15
|
+
// Tier 2 additive rather than a rewrite.
|
|
16
|
+
export {};
|
|
17
|
+
//# sourceMappingURL=room.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"room.js","sourceRoot":"","sources":["../../src/multiplayer-contract/room.ts"],"names":[],"mappings":"AAAA,oGAAoG;AACpG,uGAAuG;AACvG,qGAAqG;AACrG,EAAE;AACF,wGAAwG;AACxG,kFAAkF;AAClF,sGAAsG;AACtG,oGAAoG;AACpG,uGAAuG;AACvG,sFAAsF;AACtF,EAAE;AACF,+FAA+F;AAC/F,gGAAgG;AAChG,oGAAoG;AACpG,yCAAyC"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
export type Vec3 = {
|
|
2
|
+
x: number;
|
|
3
|
+
y: number;
|
|
4
|
+
z: number;
|
|
5
|
+
};
|
|
6
|
+
/** Pinned units. Linear in meters / meters-per-second; every angle is degrees (see the *Deg suffixes). */
|
|
7
|
+
export declare const UNITS: {
|
|
8
|
+
readonly position: "meters";
|
|
9
|
+
readonly velocity: "meters/second";
|
|
10
|
+
readonly angles: "degrees";
|
|
11
|
+
};
|
|
12
|
+
/** Stable per-player identity (set at join from the room credential; not part of the per-tick churn). */
|
|
13
|
+
export interface PlayerIdentity {
|
|
14
|
+
/** Player/user id (the credential `sub`). */
|
|
15
|
+
id: string;
|
|
16
|
+
/** Sanitized display name for nameplates (sanitized before it enters room state — see plan H4). */
|
|
17
|
+
displayName: string;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* The per-tick replicated kinematic + animation parameters for one player. The room holds the
|
|
21
|
+
* authoritative copy (a @colyseus/schema mirror of these fields); the NetworkDriver maps each field
|
|
22
|
+
* onto the named character blackboard param. FIRST DRAFT — the exact injected set is confirmed by
|
|
23
|
+
* spike S2 (engine headless-replica write-path); changing the field set bumps CONTRACT_VERSION.
|
|
24
|
+
*/
|
|
25
|
+
export interface PlayerReplicaState {
|
|
26
|
+
/** World feet position, METERS. Interpolated by the remote replica. */
|
|
27
|
+
position: Vec3;
|
|
28
|
+
/** Body facing, DEGREES. The adapter converts to radians for body.setFacingYaw. */
|
|
29
|
+
facingYawDeg: number;
|
|
30
|
+
/** Horizontal planar speed, M/S. → blackboard 'speed' (blend-space input). */
|
|
31
|
+
speed: number;
|
|
32
|
+
/** Signed movement direction relative to facing, DEGREES (−180..180). → blackboard 'direction'. */
|
|
33
|
+
moveDirectionDeg: number;
|
|
34
|
+
/** Vertical velocity, M/S (+up). → blackboard 'verticalVelocity' (jump/fall states). */
|
|
35
|
+
verticalVelocity: number;
|
|
36
|
+
/** Ground contact. → blackboard 'isGrounded' (grounded/air transitions). */
|
|
37
|
+
grounded: boolean;
|
|
38
|
+
/** Crouch stance. → routes the locomotion anim graph to its crouched states. */
|
|
39
|
+
crouched: boolean;
|
|
40
|
+
/** Aim yaw, DEGREES (world). → blackboard 'cameraYaw' (aim-additive source). */
|
|
41
|
+
aimYawDeg: number;
|
|
42
|
+
/** Aim pitch, DEGREES. → blackboard 'cameraPitch' (aim-additive source). */
|
|
43
|
+
aimPitchDeg: number;
|
|
44
|
+
/** Ability ids currently active (e.g. ['locomotion','fly']). Drives remote ability activation. */
|
|
45
|
+
activeAbilities: string[];
|
|
46
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
// Replicated player state — the parameters the room broadcasts and the engine's NetworkDriver feeds
|
|
2
|
+
// into the character blackboard. We replicate PARAMETERS, never bone transforms: animation runs fully
|
|
3
|
+
// client-side off these values (see character-architecture §3).
|
|
4
|
+
//
|
|
5
|
+
// ALL ANGLES ARE DEGREES — every angular field is suffixed *Deg. One unit on the wire, so there is no
|
|
6
|
+
// radians/degrees ambiguity to forget. The engine mixes units internally (the body is radians, the
|
|
7
|
+
// animation params are degrees); the engine adapter owns the single deg↔rad conversion at the body
|
|
8
|
+
// boundary (body.setFacingYaw) — the contract itself stays all-degrees.
|
|
9
|
+
/** Pinned units. Linear in meters / meters-per-second; every angle is degrees (see the *Deg suffixes). */
|
|
10
|
+
export const UNITS = {
|
|
11
|
+
position: 'meters',
|
|
12
|
+
velocity: 'meters/second',
|
|
13
|
+
angles: 'degrees',
|
|
14
|
+
};
|
|
15
|
+
//# sourceMappingURL=state.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"state.js","sourceRoot":"","sources":["../../src/multiplayer-contract/state.ts"],"names":[],"mappings":"AAAA,oGAAoG;AACpG,sGAAsG;AACtG,gEAAgE;AAChE,EAAE;AACF,sGAAsG;AACtG,mGAAmG;AACnG,mGAAmG;AACnG,wEAAwE;AAIxE,0GAA0G;AAC1G,MAAM,CAAC,MAAM,KAAK,GAAG;IACnB,QAAQ,EAAE,QAAQ;IAClB,QAAQ,EAAE,eAAe;IACzB,MAAM,EAAE,SAAS;CACT,CAAC"}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import { type StateMessage, type RoomState, type PlayerState, type EntityState, type RoomVarValue } from './multiplayer-contract';
|
|
2
|
+
export type ReplicaInput = Omit<StateMessage, 'seq'>;
|
|
3
|
+
/** Options for joinRoom — only needed where the API base can't be derived from the token (local dev/tests). */
|
|
4
|
+
export interface JoinRoomOptions {
|
|
5
|
+
/** Override the platform API base URL. Default: the world_session token's `iss`, else configure({ apiBaseUrl }). */
|
|
6
|
+
apiBaseUrl?: string;
|
|
7
|
+
}
|
|
8
|
+
/** The curated live-room surface handed to world authors. Colyseus's API, re-exposed under Helix.*. */
|
|
9
|
+
export interface HelixRoom {
|
|
10
|
+
readonly roomId: string;
|
|
11
|
+
readonly sessionId: string;
|
|
12
|
+
/** Authoritative shared state (a @colyseus/schema instance shaped like the contract RoomState). */
|
|
13
|
+
readonly state: RoomState;
|
|
14
|
+
/** Fires after every applied patch from the server. */
|
|
15
|
+
onStateChange(cb: (state: RoomState) => void): void;
|
|
16
|
+
/** Subscribe to a collection's adds (Tier-2 seam: players today, entities reserved). Fires for existing entries too. */
|
|
17
|
+
onAdd(collection: 'players', cb: (player: PlayerState, id: string) => void): void;
|
|
18
|
+
onAdd(collection: 'entities', cb: (entity: EntityState, id: string) => void): void;
|
|
19
|
+
onRemove(collection: 'players', cb: (player: PlayerState, id: string) => void): void;
|
|
20
|
+
onRemove(collection: 'entities', cb: (entity: EntityState, id: string) => void): void;
|
|
21
|
+
/** A world-authored server→client message (the room broadcasts these for declared events). */
|
|
22
|
+
onMessage<Payload = unknown>(type: string, cb: (payload: Payload) => void): void;
|
|
23
|
+
/** Per-tick predicted state. Coalesced + flushed at MESSAGE_RATE.stateHz, seq-tagged (D3/D4). */
|
|
24
|
+
sendState(input: ReplicaInput): void;
|
|
25
|
+
/** Activate/deactivate a built-in ability (sent immediately; server enforces the rate ceiling). */
|
|
26
|
+
sendAbility(ability: string, active: boolean): void;
|
|
27
|
+
/** A world-authored declared action (the generic extensibility channel). */
|
|
28
|
+
sendAction(name: string, args?: Record<string, RoomVarValue>): void;
|
|
29
|
+
/** Sent-but-unacknowledged states — the reconciliation tail the engine NetworkDriver replays (D4). */
|
|
30
|
+
pendingInputs(): readonly StateMessage[];
|
|
31
|
+
/** Prune the reconciliation buffer once the server confirms it processed up to `seq` (D4). */
|
|
32
|
+
acknowledge(seq: number): void;
|
|
33
|
+
/** Connection dropped; the client is auto-reconnecting (built into @colyseus/sdk). */
|
|
34
|
+
onDrop(cb: () => void): void;
|
|
35
|
+
/** Auto-reconnection succeeded. */
|
|
36
|
+
onReconnect(cb: () => void): void;
|
|
37
|
+
/** Left for good (kicked, room disposed, or after we leave) — `code` is the close code. */
|
|
38
|
+
onLeave(cb: (code: number) => void): void;
|
|
39
|
+
/** Leave intentionally (no reconnection grace held server-side). */
|
|
40
|
+
leave(): Promise<void>;
|
|
41
|
+
}
|
|
42
|
+
export interface MultiplayerHost {
|
|
43
|
+
isInitialized(): boolean;
|
|
44
|
+
getToken(): string | null;
|
|
45
|
+
getWorldId(): string | null;
|
|
46
|
+
}
|
|
47
|
+
export declare class HelixMultiplayer {
|
|
48
|
+
private readonly host;
|
|
49
|
+
private apiBaseUrl;
|
|
50
|
+
private room;
|
|
51
|
+
private callbacks;
|
|
52
|
+
private seq;
|
|
53
|
+
private pendingInput;
|
|
54
|
+
private flushTimer;
|
|
55
|
+
private inputBuffer;
|
|
56
|
+
private onUnload;
|
|
57
|
+
constructor(host: MultiplayerHost);
|
|
58
|
+
configure(options: {
|
|
59
|
+
apiBaseUrl: string;
|
|
60
|
+
}): void;
|
|
61
|
+
joinRoom(worldId?: string, options?: JoinRoomOptions): Promise<HelixRoom>;
|
|
62
|
+
private requestJoin;
|
|
63
|
+
private makeHandle;
|
|
64
|
+
private startFlush;
|
|
65
|
+
private flush;
|
|
66
|
+
private attachUnload;
|
|
67
|
+
private leave;
|
|
68
|
+
private teardown;
|
|
69
|
+
}
|
|
@@ -0,0 +1,161 @@
|
|
|
1
|
+
// Helix.multiplayer — the client half of HELIX multiplayer (plan pillar D). Wraps the official
|
|
2
|
+
// Colyseus browser client (@colyseus/sdk, schema v4 — the renamed colyseus.js, paired with the 0.17
|
|
3
|
+
// room server) so world authors never import it directly. Flow: POST the platform
|
|
4
|
+
// /api/v1/instant-worlds/:worldId/join with the world_session token → { wsUrl, roomName, credential }
|
|
5
|
+
// → Client.joinOrCreate(token) → a curated HelixRoom handle. The engine NetworkDriver consumes the
|
|
6
|
+
// room state; this module owns the connect handshake, the throttled seq-tagged send path (D3), the
|
|
7
|
+
// reconciliation buffer (D4), and teardown/reconnection wiring (D5).
|
|
8
|
+
import { ClientMessageType, MESSAGE_RATE, } from './multiplayer-contract';
|
|
9
|
+
// ~12s of inputs at 10Hz — generous reconciliation window; bounded so a missing server ack can't grow it forever.
|
|
10
|
+
const INPUT_BUFFER_MAX = 120;
|
|
11
|
+
export class HelixMultiplayer {
|
|
12
|
+
host;
|
|
13
|
+
apiBaseUrl = null;
|
|
14
|
+
room = null;
|
|
15
|
+
callbacks = null;
|
|
16
|
+
seq = 0;
|
|
17
|
+
pendingInput = null;
|
|
18
|
+
flushTimer = null;
|
|
19
|
+
inputBuffer = [];
|
|
20
|
+
onUnload = null;
|
|
21
|
+
constructor(host) {
|
|
22
|
+
this.host = host;
|
|
23
|
+
}
|
|
24
|
+
// Pin the platform API base once (local dev / staging where the token issuer isn't the live host).
|
|
25
|
+
configure(options) {
|
|
26
|
+
this.apiBaseUrl = options.apiBaseUrl.replace(/\/$/, '');
|
|
27
|
+
}
|
|
28
|
+
// Join (or create) this world's room. worldId defaults to the current world. Requires login: a guest
|
|
29
|
+
// has no world_session and can't reach /join — multiplayer is logged-in only (single-player for guests).
|
|
30
|
+
async joinRoom(worldId, options = {}) {
|
|
31
|
+
if (!this.host.isInitialized())
|
|
32
|
+
throw new Error('Helix: call Helix.init() before Helix.multiplayer.joinRoom()');
|
|
33
|
+
if (this.room)
|
|
34
|
+
throw new Error('Helix.multiplayer: already in a room — call leave() first');
|
|
35
|
+
const token = this.host.getToken();
|
|
36
|
+
if (!token)
|
|
37
|
+
throw new Error('Helix.multiplayer: multiplayer requires login (no session) — call Helix.auth.requestLogin() first');
|
|
38
|
+
const id = worldId ?? this.host.getWorldId();
|
|
39
|
+
if (!id)
|
|
40
|
+
throw new Error('Helix.multiplayer: no world id — pass joinRoom(worldId) when running outside a HELIX shell');
|
|
41
|
+
const apiBase = options.apiBaseUrl?.replace(/\/$/, '') ?? this.apiBaseUrl ?? issuerOf(token);
|
|
42
|
+
if (!apiBase)
|
|
43
|
+
throw new Error('Helix.multiplayer: cannot resolve the API base URL — call Helix.multiplayer.configure({ apiBaseUrl })');
|
|
44
|
+
const reservation = await this.requestJoin(apiBase, id, token);
|
|
45
|
+
const colyseus = (await import('@colyseus/sdk'));
|
|
46
|
+
const client = new colyseus.Client(reservation.wsUrl);
|
|
47
|
+
// buildId is the matchmaking filter (room filterBy(['buildId'])) — it groups players per active build.
|
|
48
|
+
// The room re-validates it against the verified credential in onAuth, so a spoofed value can't cross builds.
|
|
49
|
+
const room = await client.joinOrCreate(reservation.roomName, { token: reservation.credential, buildId: reservation.buildId });
|
|
50
|
+
this.room = room;
|
|
51
|
+
this.callbacks = colyseus.getStateCallbacks(room);
|
|
52
|
+
this.startFlush();
|
|
53
|
+
this.attachUnload();
|
|
54
|
+
room.onLeave(() => this.teardown());
|
|
55
|
+
return this.makeHandle(room);
|
|
56
|
+
}
|
|
57
|
+
async requestJoin(apiBase, worldId, token) {
|
|
58
|
+
const res = await fetch(`${apiBase}/api/v1/instant-worlds/${encodeURIComponent(worldId)}/join`, {
|
|
59
|
+
method: 'POST',
|
|
60
|
+
headers: { authorization: `Bearer ${token}` },
|
|
61
|
+
});
|
|
62
|
+
if (!res.ok) {
|
|
63
|
+
const detail = await res.json().catch(() => null);
|
|
64
|
+
const message = (detail && typeof detail.message === 'string' && detail.message) || `HTTP ${res.status}`;
|
|
65
|
+
throw new Error(`Helix.multiplayer: join failed — ${message}`);
|
|
66
|
+
}
|
|
67
|
+
return (await res.json());
|
|
68
|
+
}
|
|
69
|
+
makeHandle(room) {
|
|
70
|
+
const collection = (name) => {
|
|
71
|
+
if (!this.callbacks)
|
|
72
|
+
throw new Error('Helix.multiplayer: room not ready');
|
|
73
|
+
return this.callbacks(room.state)[name];
|
|
74
|
+
};
|
|
75
|
+
return {
|
|
76
|
+
roomId: room.roomId,
|
|
77
|
+
sessionId: room.sessionId,
|
|
78
|
+
get state() {
|
|
79
|
+
return room.state;
|
|
80
|
+
},
|
|
81
|
+
onStateChange: (cb) => void room.onStateChange((s) => cb(s)),
|
|
82
|
+
onAdd: (name, cb) => void collection(name).onAdd((v, k) => cb(v, k), true),
|
|
83
|
+
onRemove: (name, cb) => void collection(name).onRemove((v, k) => cb(v, k)),
|
|
84
|
+
onMessage: (type, cb) => void room.onMessage(type, (p) => cb(p)),
|
|
85
|
+
sendState: (input) => {
|
|
86
|
+
this.pendingInput = input;
|
|
87
|
+
},
|
|
88
|
+
sendAbility: (ability, active) => room.send(ClientMessageType.Ability, { ability, active }),
|
|
89
|
+
sendAction: (name, args) => room.send(ClientMessageType.Action, { name, args }),
|
|
90
|
+
pendingInputs: () => this.inputBuffer.slice(),
|
|
91
|
+
acknowledge: (seq) => {
|
|
92
|
+
this.inputBuffer = this.inputBuffer.filter((m) => m.seq > seq);
|
|
93
|
+
},
|
|
94
|
+
onDrop: (cb) => void room.onDrop(() => cb()),
|
|
95
|
+
onReconnect: (cb) => void room.onReconnect(() => cb()),
|
|
96
|
+
onLeave: (cb) => void room.onLeave((code) => cb(code)),
|
|
97
|
+
leave: () => this.leave(),
|
|
98
|
+
};
|
|
99
|
+
}
|
|
100
|
+
// D3: coalesce per-frame sendState calls and flush the latest at most stateHz times/second, tagging a
|
|
101
|
+
// monotonic seq. D4: buffer each sent state (bounded) so the engine can replay the unacknowledged tail.
|
|
102
|
+
startFlush() {
|
|
103
|
+
const periodMs = Math.round(1000 / MESSAGE_RATE.stateHz);
|
|
104
|
+
this.flushTimer = setInterval(() => this.flush(), periodMs);
|
|
105
|
+
}
|
|
106
|
+
flush() {
|
|
107
|
+
if (!this.pendingInput || !this.room)
|
|
108
|
+
return;
|
|
109
|
+
const message = { ...this.pendingInput, seq: ++this.seq };
|
|
110
|
+
this.pendingInput = null;
|
|
111
|
+
this.room.send(ClientMessageType.State, message);
|
|
112
|
+
this.inputBuffer.push(message);
|
|
113
|
+
if (this.inputBuffer.length > INPUT_BUFFER_MAX)
|
|
114
|
+
this.inputBuffer.shift();
|
|
115
|
+
}
|
|
116
|
+
// D5: leave on tab close with consented=true so the server frees the seat immediately (no grace window).
|
|
117
|
+
attachUnload() {
|
|
118
|
+
if (typeof window === 'undefined')
|
|
119
|
+
return;
|
|
120
|
+
this.onUnload = () => void this.room?.leave(true);
|
|
121
|
+
window.addEventListener('beforeunload', this.onUnload);
|
|
122
|
+
}
|
|
123
|
+
async leave() {
|
|
124
|
+
const room = this.room;
|
|
125
|
+
this.teardown();
|
|
126
|
+
if (room)
|
|
127
|
+
await room.leave(true);
|
|
128
|
+
}
|
|
129
|
+
teardown() {
|
|
130
|
+
if (this.flushTimer)
|
|
131
|
+
clearInterval(this.flushTimer);
|
|
132
|
+
if (this.onUnload && typeof window !== 'undefined')
|
|
133
|
+
window.removeEventListener('beforeunload', this.onUnload);
|
|
134
|
+
this.flushTimer = null;
|
|
135
|
+
this.onUnload = null;
|
|
136
|
+
this.room = null;
|
|
137
|
+
this.callbacks = null;
|
|
138
|
+
this.pendingInput = null;
|
|
139
|
+
this.inputBuffer = [];
|
|
140
|
+
this.seq = 0;
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
// Read the `iss` claim from a JWT without verifying (the world_session issuer is the platform API
|
|
144
|
+
// origin). Verification isn't this side's job; the room verifies the credential against JWKS. Returns
|
|
145
|
+
// null if there's no usable http(s) issuer — in which case the world must configure({ apiBaseUrl }).
|
|
146
|
+
// NOTE: the new backend does not set `iss` on the world_session yet, so configure()/options is the
|
|
147
|
+
// resolution path until the join lane adds it (tracked in MIGRATION.md, backend step).
|
|
148
|
+
function issuerOf(token) {
|
|
149
|
+
const segment = token.split('.')[1];
|
|
150
|
+
if (!segment)
|
|
151
|
+
return null;
|
|
152
|
+
try {
|
|
153
|
+
const json = atob(segment.replace(/-/g, '+').replace(/_/g, '/'));
|
|
154
|
+
const iss = JSON.parse(json).iss;
|
|
155
|
+
return typeof iss === 'string' && /^https?:\/\//.test(iss) ? iss.replace(/\/$/, '') : null;
|
|
156
|
+
}
|
|
157
|
+
catch {
|
|
158
|
+
return null;
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
//# sourceMappingURL=multiplayer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"multiplayer.js","sourceRoot":"","sources":["../src/multiplayer.ts"],"names":[],"mappings":"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"}
|
|
@@ -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.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.esnext.disposable.d.ts","../node_modules/typescript/lib/lib.decorators.d.ts","../node_modules/typescript/lib/lib.decorators.legacy.d.ts","../src/protocol.ts","../src/index.ts","../node_modules/@babel/types/lib/index.d.ts","../node_modules/@types/babel__generator/index.d.ts","../node_modules/@babel/parser/typings/babel-parser.d.ts","../node_modules/@types/babel__template/index.d.ts","../node_modules/@types/babel__traverse/index.d.ts","../node_modules/@types/babel__core/index.d.ts","../node_modules/@types/node/ts5.7/compatibility/float16array.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/@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/ts5.7/index.d.ts","../node_modules/@types/graceful-fs/index.d.ts","../node_modules/@types/istanbul-lib-coverage/index.d.ts","../node_modules/@types/istanbul-lib-report/index.d.ts","../node_modules/@types/istanbul-reports/index.d.ts","../node_modules/@jest/expect-utils/build/index.d.ts","../node_modules/chalk/index.d.ts","../node_modules/@sinclair/typebox/typebox.d.ts","../node_modules/@jest/schemas/build/index.d.ts","../node_modules/pretty-format/build/index.d.ts","../node_modules/jest-diff/build/index.d.ts","../node_modules/jest-matcher-utils/build/index.d.ts","../node_modules/expect/build/index.d.ts","../node_modules/@types/jest/index.d.ts","../node_modules/parse5/dist/common/html.d.ts","../node_modules/parse5/dist/common/token.d.ts","../node_modules/parse5/dist/common/error-codes.d.ts","../node_modules/parse5/dist/tokenizer/preprocessor.d.ts","../node_modules/entities/dist/esm/generated/decode-data-html.d.ts","../node_modules/entities/dist/esm/generated/decode-data-xml.d.ts","../node_modules/entities/dist/esm/decode-codepoint.d.ts","../node_modules/entities/dist/esm/decode.d.ts","../node_modules/parse5/dist/tokenizer/index.d.ts","../node_modules/parse5/dist/tree-adapters/interface.d.ts","../node_modules/parse5/dist/parser/open-element-stack.d.ts","../node_modules/parse5/dist/parser/formatting-element-list.d.ts","../node_modules/parse5/dist/parser/index.d.ts","../node_modules/parse5/dist/tree-adapters/default.d.ts","../node_modules/parse5/dist/serializer/index.d.ts","../node_modules/parse5/dist/common/foreign-content.d.ts","../node_modules/parse5/dist/index.d.ts","../node_modules/@types/tough-cookie/index.d.ts","../node_modules/@types/jsdom/base.d.ts","../node_modules/@types/jsdom/index.d.ts","../node_modules/@types/stack-utils/index.d.ts","../node_modules/@types/yargs-parser/index.d.ts","../node_modules/@types/yargs/index.d.ts"],"fileIdsList":[[67,75,140,148,152,155,157,158,159,171],[75,140,148,152,155,157,158,159,171],[75,140,148,152,155,157,158,159,171,205],[67,68,69,70,71,75,140,148,152,155,157,158,159,171],[67,69,75,140,148,152,155,157,158,159,171],[75,140,148,152,155,157,158,159,171,198],[75,140,148,152,155,157,158,159,171,200],[75,140,148,152,155,157,158,159,171,201],[75,140,148,152,155,157,158,159,171,207,210],[75,140,148,151,152,155,157,158,159,171,193,198,228,229,231],[75,140,148,152,155,157,158,159,171,230],[75,137,138,140,148,152,155,157,158,159,171],[75,139,140,148,152,155,157,158,159,171],[140,148,152,155,157,158,159,171],[75,140,148,152,155,157,158,159,171,180],[75,140,141,146,148,151,152,155,157,158,159,161,171,176,189],[75,140,141,142,148,151,152,155,157,158,159,171],[75,140,143,148,152,155,157,158,159,171,190],[75,140,144,145,148,152,155,157,158,159,162,171],[75,140,145,148,152,155,157,158,159,171,176,186],[75,140,146,148,151,152,155,157,158,159,161,171],[75,139,140,147,148,152,155,157,158,159,171],[75,140,148,149,152,155,157,158,159,171],[75,140,148,150,151,152,155,157,158,159,171],[75,139,140,148,151,152,155,157,158,159,171],[75,140,148,151,152,153,155,157,158,159,171,176,189],[75,140,148,151,152,153,155,157,158,159,171,176,178,180],[75,127,140,148,151,152,154,155,157,158,159,161,171,176,189],[75,140,148,151,152,154,155,157,158,159,161,171,176,186,189],[75,140,148,152,154,155,156,157,158,159,171,176,186,189],[75,140,148,151,152,155,157,158,159,171],[75,140,148,152,155,157,159,171],[75,140,148,152,155,157,158,159,160,171,189],[75,140,148,151,152,155,157,158,159,161,171,176],[75,140,148,152,155,157,158,159,162,171],[75,140,148,152,155,157,158,159,163,171],[75,140,148,151,152,155,157,158,159,166,171],[75,137,138,139,140,141,142,143,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,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196],[75,140,148,152,155,157,158,159,168,171],[75,140,148,152,155,157,158,159,169,171],[75,140,145,148,152,155,157,158,159,161,171,180],[75,140,148,151,152,155,157,158,159,171,172],[75,140,148,152,155,157,158,159,171,173,190,193],[75,140,148,151,152,155,157,158,159,171,176,179,180],[75,140,148,152,155,157,158,159,171,177,180],[75,140,148,152,155,157,158,159,171,178],[75,140,148,152,155,157,158,159,171,180,190],[75,140,148,152,155,157,158,159,171,181],[75,137,140,148,152,155,157,158,159,171,176,183,189],[75,140,148,152,155,157,158,159,171,176,182],[75,140,148,151,152,155,157,158,159,171,184,185],[75,140,148,152,155,157,158,159,171,184,185],[75,140,145,148,152,155,157,158,159,161,171,176,186],[75,140,148,152,155,157,158,159,171,187],[73,74,75,76,77,78,79,80,81,82,83,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,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,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197],[75,140,148,152,155,157,158,159,161,171,188],[75,140,148,152,154,155,157,158,159,169,171,189],[75,140,148,152,155,157,158,159,171,190,191],[75,140,145,148,152,155,157,158,159,171,191],[75,140,148,152,155,157,158,159,171,176,192],[75,140,148,152,155,157,158,159,160,171,193],[75,140,148,152,155,157,158,159,171,194],[75,140,143,148,152,155,157,158,159,171],[75,140,145,148,152,155,157,158,159,171],[75,140,148,152,155,157,158,159,171,190],[75,127,140,148,152,155,157,158,159,171],[75,140,148,152,155,157,158,159,171,189],[75,140,148,152,155,157,158,159,171,195],[75,140,148,152,155,157,158,159,166,171],[75,140,148,152,155,157,158,159,171,185],[75,127,140,148,151,152,153,155,157,158,159,166,171,176,180,189,192,193,195],[75,140,148,152,155,157,158,159,171,176,196],[75,140,148,152,155,157,158,159,171,178,197],[75,140,148,152,155,157,158,159,171,233],[75,140,148,152,155,157,158,159,171,216,217,218],[75,140,148,152,155,157,158,159,171,203,209],[75,140,148,152,155,157,158,159,171,207],[75,140,148,152,155,157,158,159,171,204,208],[75,140,148,152,155,157,158,159,171,213],[75,140,148,152,155,157,158,159,171,212,213],[75,140,148,152,155,157,158,159,171,212],[75,140,148,152,155,157,158,159,171,212,213,214,220,221,224,225,226,227],[75,140,148,152,155,157,158,159,171,213,221],[75,140,148,152,155,157,158,159,171,212,213,214,220,221,222,223],[75,140,148,152,155,157,158,159,171,212,221],[75,140,148,152,155,157,158,159,171,221,225],[75,140,148,152,155,157,158,159,171,213,214,215,219],[75,140,148,152,155,157,158,159,171,214],[75,140,148,152,155,157,158,159,171,212,213,221],[75,140,148,152,155,157,158,159,171,206],[75,90,93,96,97,140,148,152,155,157,158,159,171,189],[75,93,140,148,152,155,157,158,159,171,176,189],[75,93,97,140,148,152,155,157,158,159,171,189],[75,140,148,152,155,157,158,159,171,176],[75,87,140,148,152,155,157,158,159,171],[75,91,140,148,152,155,157,158,159,171],[75,89,90,93,140,148,152,155,157,158,159,171,189],[75,140,148,152,155,157,158,159,161,171,186],[75,87,140,148,152,155,157,158,159,171,198],[75,89,93,140,148,152,155,157,158,159,161,171,189],[75,84,85,86,88,92,140,148,151,152,155,157,158,159,171,176,189],[75,93,140,148,152,155,157,158,159,171],[75,93,102,111,140,148,152,155,157,158,159,171],[75,85,91,140,148,152,155,157,158,159,171],[75,93,121,122,140,148,152,155,157,158,159,171],[75,85,88,93,140,148,152,155,157,158,159,171,180,189,198],[75,89,93,140,148,152,155,157,158,159,171,189],[75,84,140,148,152,155,157,158,159,171],[75,87,88,89,91,92,93,94,95,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,122,123,124,125,126,140,148,152,155,157,158,159,171],[75,93,114,117,140,148,152,155,157,158,159,171],[75,93,102,104,105,140,148,152,155,157,158,159,171],[75,91,93,104,106,140,148,152,155,157,158,159,171],[75,92,140,148,152,155,157,158,159,171],[75,85,87,93,140,148,152,155,157,158,159,171],[75,93,97,104,106,140,148,152,155,157,158,159,171],[75,97,140,148,152,155,157,158,159,171],[75,91,93,96,140,148,152,155,157,158,159,171,189],[75,85,89,93,102,140,148,152,155,157,158,159,171],[75,93,114,140,148,152,155,157,158,159,171],[75,106,140,148,152,155,157,158,159,171],[75,85,89,93,97,140,148,152,155,157,158,159,171],[75,87,93,121,140,148,152,155,157,158,159,171,180,195,198],[65,75,140,148,152,155,157,158,159,171]],"fileInfos":[{"version":"e41c290ef7dd7dab3493e6cbe5909e0148edf4a8dad0271be08edec368a0f7b9","affectsGlobalScope":true,"impliedFormat":1},{"version":"45b7ab580deca34ae9729e97c13cfd999df04416a79116c3bfb483804f85ded4","impliedFormat":1},{"version":"3facaf05f0c5fc569c5649dd359892c98a85557e3e0c847964caeb67076f4d75","impliedFormat":1},{"version":"e44bb8bbac7f10ecc786703fe0a6a4b952189f908707980ba8f3c8975a760962","impliedFormat":1},{"version":"5e1c4c362065a6b95ff952c0eab010f04dcd2c3494e813b493ecfd4fcb9fc0d8","impliedFormat":1},{"version":"68d73b4a11549f9c0b7d352d10e91e5dca8faa3322bfb77b661839c42b1ddec7","impliedFormat":1},{"version":"5efce4fc3c29ea84e8928f97adec086e3dc876365e0982cc8479a07954a3efd4","impliedFormat":1},{"version":"feecb1be483ed332fad555aff858affd90a48ab19ba7272ee084704eb7167569","impliedFormat":1},{"version":"ee7bad0c15b58988daa84371e0b89d313b762ab83cb5b31b8a2d1162e8eb41c2","impliedFormat":1},{"version":"27bdc30a0e32783366a5abeda841bc22757c1797de8681bbe81fbc735eeb1c10","impliedFormat":1},{"version":"4fd3f3422b2d2a3dfd5cdd0f387b3a8ec45f006c6ea896a4cb41264c2100bb2c","affectsGlobalScope":true,"impliedFormat":1},{"version":"69e65d976bf166ce4a9e6f6c18f94d2424bf116e90837ace179610dbccad9b42","affectsGlobalScope":true,"impliedFormat":1},{"version":"c57796738e7f83dbc4b8e65132f11a377649c00dd3eee333f672b8f0a6bea671","affectsGlobalScope":true,"impliedFormat":1},{"version":"dc2df20b1bcdc8c2d34af4926e2c3ab15ffe1160a63e58b7e09833f616efff44","affectsGlobalScope":true,"impliedFormat":1},{"version":"515d0b7b9bea2e31ea4ec968e9edd2c39d3eebf4a2d5cbd04e88639819ae3b71","affectsGlobalScope":true,"impliedFormat":1},{"version":"62bb211266ee48b2d0edf0d8d1b191f0c24fc379a82bd4c1692a082c540bc6b1","affectsGlobalScope":true,"impliedFormat":1},{"version":"0dc1e7ceda9b8b9b455c3a2d67b0412feab00bd2f66656cd8850e8831b08b537","affectsGlobalScope":true,"impliedFormat":1},{"version":"ce691fb9e5c64efb9547083e4a34091bcbe5bdb41027e310ebba8f7d96a98671","affectsGlobalScope":true,"impliedFormat":1},{"version":"8d697a2a929a5fcb38b7a65594020fcef05ec1630804a33748829c5ff53640d0","affectsGlobalScope":true,"impliedFormat":1},{"version":"4ff2a353abf8a80ee399af572debb8faab2d33ad38c4b4474cff7f26e7653b8d","affectsGlobalScope":true,"impliedFormat":1},{"version":"936e80ad36a2ee83fc3caf008e7c4c5afe45b3cf3d5c24408f039c1d47bdc1df","affectsGlobalScope":true,"impliedFormat":1},{"version":"d15bea3d62cbbdb9797079416b8ac375ae99162a7fba5de2c6c505446486ac0a","affectsGlobalScope":true,"impliedFormat":1},{"version":"68d18b664c9d32a7336a70235958b8997ebc1c3b8505f4f1ae2b7e7753b87618","affectsGlobalScope":true,"impliedFormat":1},{"version":"eb3d66c8327153d8fa7dd03f9c58d351107fe824c79e9b56b462935176cdf12a","affectsGlobalScope":true,"impliedFormat":1},{"version":"38f0219c9e23c915ef9790ab1d680440d95419ad264816fa15009a8851e79119","affectsGlobalScope":true,"impliedFormat":1},{"version":"69ab18c3b76cd9b1be3d188eaf8bba06112ebbe2f47f6c322b5105a6fbc45a2e","affectsGlobalScope":true,"impliedFormat":1},{"version":"fef8cfad2e2dc5f5b3d97a6f4f2e92848eb1b88e897bb7318cef0e2820bceaab","affectsGlobalScope":true,"impliedFormat":1},{"version":"2f11ff796926e0832f9ae148008138ad583bd181899ab7dd768a2666700b1893","affectsGlobalScope":true,"impliedFormat":1},{"version":"4de680d5bb41c17f7f68e0419412ca23c98d5749dcaaea1896172f06435891fc","affectsGlobalScope":true,"impliedFormat":1},{"version":"954296b30da6d508a104a3a0b5d96b76495c709785c1d11610908e63481ee667","affectsGlobalScope":true,"impliedFormat":1},{"version":"ac9538681b19688c8eae65811b329d3744af679e0bdfa5d842d0e32524c73e1c","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a969edff4bd52585473d24995c5ef223f6652d6ef46193309b3921d65dd4376","affectsGlobalScope":true,"impliedFormat":1},{"version":"9e9fbd7030c440b33d021da145d3232984c8bb7916f277e8ffd3dc2e3eae2bdb","affectsGlobalScope":true,"impliedFormat":1},{"version":"811ec78f7fefcabbda4bfa93b3eb67d9ae166ef95f9bff989d964061cbf81a0c","affectsGlobalScope":true,"impliedFormat":1},{"version":"717937616a17072082152a2ef351cb51f98802fb4b2fdabd32399843875974ca","affectsGlobalScope":true,"impliedFormat":1},{"version":"d7e7d9b7b50e5f22c915b525acc5a49a7a6584cf8f62d0569e557c5cfc4b2ac2","affectsGlobalScope":true,"impliedFormat":1},{"version":"71c37f4c9543f31dfced6c7840e068c5a5aacb7b89111a4364b1d5276b852557","affectsGlobalScope":true,"impliedFormat":1},{"version":"576711e016cf4f1804676043e6a0a5414252560eb57de9faceee34d79798c850","affectsGlobalScope":true,"impliedFormat":1},{"version":"89c1b1281ba7b8a96efc676b11b264de7a8374c5ea1e6617f11880a13fc56dc6","affectsGlobalScope":true,"impliedFormat":1},{"version":"74f7fa2d027d5b33eb0471c8e82a6c87216223181ec31247c357a3e8e2fddc5b","affectsGlobalScope":true,"impliedFormat":1},{"version":"f1e2a172204962276504466a6393426d2ca9c54894b1ad0a6c9dad867a65f876","affectsGlobalScope":true,"impliedFormat":1},{"version":"063600664504610fe3e99b717a1223f8b1900087fab0b4cad1496a114744f8df","affectsGlobalScope":true,"impliedFormat":1},{"version":"934019d7e3c81950f9a8426d093458b65d5aff2c7c1511233c0fd5b941e608ab","affectsGlobalScope":true,"impliedFormat":1},{"version":"52ada8e0b6e0482b728070b7639ee42e83a9b1c22d205992756fe020fd9f4a47","affectsGlobalScope":true,"impliedFormat":1},{"version":"3bdefe1bfd4d6dee0e26f928f93ccc128f1b64d5d501ff4a8cf3c6371200e5e6","affectsGlobalScope":true,"impliedFormat":1},{"version":"59fb2c069260b4ba00b5643b907ef5d5341b167e7d1dbf58dfd895658bda2867","affectsGlobalScope":true,"impliedFormat":1},{"version":"639e512c0dfc3fad96a84caad71b8834d66329a1f28dc95e3946c9b58176c73a","affectsGlobalScope":true,"impliedFormat":1},{"version":"368af93f74c9c932edd84c58883e736c9e3d53cec1fe24c0b0ff451f529ceab1","affectsGlobalScope":true,"impliedFormat":1},{"version":"af3dd424cf267428f30ccfc376f47a2c0114546b55c44d8c0f1d57d841e28d74","affectsGlobalScope":true,"impliedFormat":1},{"version":"995c005ab91a498455ea8dfb63aa9f83fa2ea793c3d8aa344be4a1678d06d399","affectsGlobalScope":true,"impliedFormat":1},{"version":"959d36cddf5e7d572a65045b876f2956c973a586da58e5d26cde519184fd9b8a","affectsGlobalScope":true,"impliedFormat":1},{"version":"965f36eae237dd74e6cca203a43e9ca801ce38824ead814728a2807b1910117d","affectsGlobalScope":true,"impliedFormat":1},{"version":"3925a6c820dcb1a06506c90b1577db1fdbf7705d65b62b99dce4be75c637e26b","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a3d63ef2b853447ec4f749d3f368ce642264246e02911fcb1590d8c161b8005","affectsGlobalScope":true,"impliedFormat":1},{"version":"b5ce7a470bc3628408429040c4e3a53a27755022a32fd05e2cb694e7015386c7","affectsGlobalScope":true,"impliedFormat":1},{"version":"8444af78980e3b20b49324f4a16ba35024fef3ee069a0eb67616ea6ca821c47a","affectsGlobalScope":true,"impliedFormat":1},{"version":"3287d9d085fbd618c3971944b65b4be57859f5415f495b33a6adc994edd2f004","affectsGlobalScope":true,"impliedFormat":1},{"version":"b4b67b1a91182421f5df999988c690f14d813b9850b40acd06ed44691f6727ad","affectsGlobalScope":true,"impliedFormat":1},{"version":"bab26767638ab3557de12c900f0b91f710c7dc40ee9793d5a27d32c04f0bf646","affectsGlobalScope":true,"impliedFormat":1},{"version":"436aaf437562f276ec2ddbee2f2cdedac7664c1e4c1d2c36839ddd582eeb3d0a","affectsGlobalScope":true,"impliedFormat":1},{"version":"8e3c06ea092138bf9fa5e874a1fdbc9d54805d074bee1de31b99a11e2fec239d","affectsGlobalScope":true,"impliedFormat":1},{"version":"51ad4c928303041605b4d7ae32e0c1ee387d43a24cd6f1ebf4a2699e1076d4fa","affectsGlobalScope":true,"impliedFormat":1},{"version":"8e7f8264d0fb4c5339605a15daadb037bf238c10b654bb3eee14208f860a32ea","affectsGlobalScope":true,"impliedFormat":1},{"version":"782dec38049b92d4e85c1585fbea5474a219c6984a35b004963b00beb1aab538","affectsGlobalScope":true,"impliedFormat":1},{"version":"5ec55264cabb439baec0f77e5d3caf8640a965dd992d1845314e7f63d30e5c90","signature":"1f16a731cd32d37ae348495f6a2556e24f970869821fbcdd2f3155ab7e92e9ef"},{"version":"3c7348b02669da9d320e92276e3f6276976bcdcb198c933cadc492adec76ba81","signature":"69e31586f6cd423d506d83b32ab3d91da2c910e2d14f2d7ab72b8d5efd321492"},{"version":"556ccd493ec36c7d7cb130d51be66e147b91cc1415be383d71da0f1e49f742a9","impliedFormat":1},{"version":"b6d03c9cfe2cf0ba4c673c209fcd7c46c815b2619fd2aad59fc4229aaef2ed43","impliedFormat":1},{"version":"95aba78013d782537cc5e23868e736bec5d377b918990e28ed56110e3ae8b958","impliedFormat":1},{"version":"670a76db379b27c8ff42f1ba927828a22862e2ab0b0908e38b671f0e912cc5ed","impliedFormat":1},{"version":"13b77ab19ef7aadd86a1e54f2f08ea23a6d74e102909e3c00d31f231ed040f62","impliedFormat":1},{"version":"069bebfee29864e3955378107e243508b163e77ab10de6a5ee03ae06939f0bb9","impliedFormat":1},{"version":"cebfeedf63623d54f7423d58cae1ec204c0d8d97a66d5fb17579e26a902085e1","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":"0dc7f45811b1cc811c2701a280f038e9e150b79ad90ae3917e999bdc43c100b4","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":"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":"bec726f1f7d2061cf17cfbb01b74283ada49933037695423f37fc91c1c2e2db6","impliedFormat":1},{"version":"afe73051ff6a03a9565cbd8ebb0e956ee3df5e913ad5c1ded64218aabfa3dcb5","impliedFormat":1},{"version":"035a5df183489c2e22f3cf59fc1ed2b043d27f357eecc0eb8d8e840059d44245","impliedFormat":1},{"version":"a4809f4d92317535e6b22b01019437030077a76fec1d93b9881c9ed4738fcc54","impliedFormat":1},{"version":"5f53fa0bd22096d2a78533f94e02c899143b8f0f9891a46965294ee8b91a9434","impliedFormat":1},{"version":"cdcc132f207d097d7d3aa75615ab9a2e71d6a478162dde8b67f88ea19f3e54de","impliedFormat":1},{"version":"0d14fa22c41fdc7277e6f71473b20ebc07f40f00e38875142335d5b63cdfc9d2","impliedFormat":1},{"version":"e1028394c1cf96d5d057ecc647e31e457b919092f882ed0c7092152b077fed9d","impliedFormat":1},{"version":"f315e1e65a1f80992f0509e84e4ae2df15ecd9ef73df975f7c98813b71e4c8da","impliedFormat":1},{"version":"5b9586e9b0b6322e5bfbd2c29bd3b8e21ab9d871f82346cb71020e3d84bae73e","impliedFormat":1},{"version":"3e70a7e67c2cb16f8cd49097360c0309fe9d1e3210ff9222e9dac1f8df9d4fb6","impliedFormat":1},{"version":"ab68d2a3e3e8767c3fba8f80de099a1cfc18c0de79e42cb02ae66e22dfe14a66","impliedFormat":1},{"version":"d96cc6598148bf1a98fb2e8dcf01c63a4b3558bdaec6ef35e087fd0562eb40ec","impliedFormat":1},{"version":"f8db4fea512ab759b2223b90ecbbe7dae919c02f8ce95ec03f7fb1cf757cfbeb","affectsGlobalScope":true,"impliedFormat":1},{"version":"19990350fca066265b2c190c9b6cde1229f35002ea2d4df8c9e397e9942f6c89","impliedFormat":99},{"version":"8fb8fdda477cd7382477ffda92c2bb7d9f7ef583b1aa531eb6b2dc2f0a206c10","impliedFormat":99},{"version":"66995b0c991b5c5d42eff1d950733f85482c7419f7296ab8952e03718169e379","impliedFormat":99},{"version":"9863f888da357e35e013ca3465b794a490a198226bd8232c2f81fb44e16ff323","impliedFormat":99},{"version":"84bc2d80326a83ee4a6e7cba2fd480b86502660770c0e24da96535af597c9f1e","impliedFormat":99},{"version":"ea27768379b866ee3f5da2419650acdb01125479f7af73580a4bceb25b79e372","impliedFormat":99},{"version":"598931eeb4362542cae5845f95c5f0e45ac668925a40ce201e244d7fe808e965","impliedFormat":99},{"version":"da9ef88cde9f715756da642ad80c4cd87a987f465d325462d6bc2a0b11d202c8","impliedFormat":99},{"version":"b4c6184d78303b0816e779a48bef779b15aea4a66028eb819aac0abee8407dea","impliedFormat":99},{"version":"db085d2171d48938a99e851dafe0e486dce9859e5dfa73c21de5ed3d4d6fb0c5","impliedFormat":99},{"version":"62a3ad1ddd1f5974b3bf105680b3e09420f2230711d6520a521fab2be1a32838","impliedFormat":99},{"version":"a77be6fc44c876bc10c897107f84eaba10790913ebdcad40fcda7e47469b2160","impliedFormat":99},{"version":"06cf55b6da5cef54eaaf51cdc3d4e5ebf16adfdd9ebd20cec7fe719be9ced017","impliedFormat":99},{"version":"91f5dbcdb25d145a56cffe957ec665256827892d779ef108eb2f3864faff523b","impliedFormat":99},{"version":"052ba354bab8fb943e0bc05a0769f7b81d7c3b3c6cd0f5cfa53c7b2da2a525c5","impliedFormat":99},{"version":"927955a3de5857e0a1c575ced5a4245e74e6821d720ed213141347dd1870197f","impliedFormat":99},{"version":"fec804d54cd97dd77e956232fc37dc13f53e160d4bbeeb5489e86eeaa91f7ebd","impliedFormat":99},{"version":"03c258e060b7da220973f84b89615e4e9850e9b5d30b3a8e4840b3e3268ae8eb","impliedFormat":1},{"version":"fd0589ca571ad090b531d8c095e26caa53d4825c64d3ff2b2b1ab95d72294175","impliedFormat":1},{"version":"669843ecafb89ae1e944df06360e8966219e4c1c34c0d28aa2503272cdd444a7","affectsGlobalScope":true,"impliedFormat":1},{"version":"ab82804a14454734010dcdcd43f564ff7b0389bee4c5692eec76ff5b30d4cf66","impliedFormat":1},{"version":"bae8d023ef6b23df7da26f51cea44321f95817c190342a36882e93b80d07a960","impliedFormat":1},{"version":"26a770cec4bd2e7dbba95c6e536390fffe83c6268b78974a93727903b515c4e7","impliedFormat":1}],"root":[65,66],"options":{"declaration":true,"esModuleInterop":true,"module":7,"noFallthroughCasesInSwitch":true,"noImplicitOverride":true,"outDir":"./","skipLibCheck":true,"sourceMap":true,"strict":true,"strictPropertyInitialization":false,"target":10},"referencedMap":[[69,1],[67,2],[203,2],[206,3],[205,2],[72,4],[68,1],[70,5],[71,1],[199,6],[200,2],[201,7],[202,8],[211,9],[230,10],[231,11],[137,12],[138,12],[139,13],[75,14],[140,15],[141,16],[142,17],[143,18],[144,19],[145,20],[146,21],[147,22],[148,23],[149,23],[150,24],[151,25],[152,26],[153,27],[76,2],[74,2],[154,28],[155,29],[156,30],[157,31],[158,32],[159,31],[160,33],[161,34],[162,35],[163,36],[164,36],[165,36],[166,37],[167,38],[168,39],[169,40],[170,41],[171,42],[172,42],[173,43],[174,2],[175,2],[176,44],[177,45],[178,46],[179,44],[180,47],[181,48],[182,49],[183,50],[184,51],[185,52],[186,53],[187,54],[73,2],[198,55],[188,56],[189,57],[190,58],[191,59],[192,60],[193,61],[194,62],[77,31],[78,2],[79,63],[80,64],[81,2],[82,65],[83,2],[128,66],[129,67],[130,68],[131,68],[132,69],[133,2],[134,15],[135,70],[136,67],[195,71],[196,72],[197,73],[232,2],[229,2],[233,2],[234,74],[204,2],[218,2],[219,75],[216,2],[217,2],[210,76],[208,77],[209,78],[214,79],[227,80],[212,2],[213,81],[228,82],[223,83],[224,84],[222,85],[226,86],[220,87],[215,88],[225,89],[221,80],[207,90],[63,2],[64,2],[11,2],[12,2],[14,2],[13,2],[2,2],[15,2],[16,2],[17,2],[18,2],[19,2],[20,2],[21,2],[22,2],[3,2],[23,2],[24,2],[4,2],[25,2],[29,2],[26,2],[27,2],[28,2],[30,2],[31,2],[32,2],[5,2],[33,2],[34,2],[35,2],[36,2],[6,2],[40,2],[37,2],[38,2],[39,2],[41,2],[7,2],[42,2],[47,2],[48,2],[43,2],[44,2],[45,2],[46,2],[8,2],[52,2],[49,2],[50,2],[51,2],[53,2],[9,2],[54,2],[55,2],[56,2],[58,2],[57,2],[59,2],[60,2],[10,2],[61,2],[1,2],[62,2],[102,91],[116,92],[99,93],[117,94],[126,95],[90,96],[91,97],[89,98],[125,6],[120,99],[124,100],[93,101],[103,102],[113,103],[92,104],[123,105],[87,106],[88,99],[94,102],[95,2],[101,107],[98,102],[85,108],[127,109],[118,110],[106,111],[105,102],[107,112],[110,113],[104,114],[108,115],[121,6],[96,116],[97,117],[111,118],[86,94],[115,119],[114,102],[100,117],[109,120],[112,121],[119,2],[84,2],[122,122],[66,123],[65,2]],"version":"5.7.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.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.esnext.disposable.d.ts","../node_modules/typescript/lib/lib.decorators.d.ts","../node_modules/typescript/lib/lib.decorators.legacy.d.ts","../src/protocol.ts","../src/multiplayer-contract/state.ts","../src/multiplayer-contract/room.ts","../src/multiplayer-contract/messages.ts","../src/multiplayer-contract/credential.ts","../src/multiplayer-contract/index.ts","../node_modules/@colyseus/sdk/build/legacy.d.ts","../node_modules/@standard-schema/spec/dist/index.d.ts","../node_modules/@colyseus/shared-types/build/Protocol.d.ts","../node_modules/@colyseus/shared-types/build/index.d.ts","../node_modules/@colyseus/schema/build/encoding/spec.d.ts","../node_modules/@colyseus/schema/build/symbol.shim.d.ts","../node_modules/@colyseus/schema/build/types/symbols.d.ts","../node_modules/@colyseus/schema/build/encoder/StateView.d.ts","../node_modules/@colyseus/schema/build/types/TypeContext.d.ts","../node_modules/@colyseus/schema/build/encoding/encode.d.ts","../node_modules/@colyseus/schema/build/encoding/decode.d.ts","../node_modules/@colyseus/schema/build/encoder/Root.d.ts","../node_modules/@colyseus/schema/build/encoder/Encoder.d.ts","../node_modules/@colyseus/schema/build/Metadata.d.ts","../node_modules/@colyseus/schema/build/encoder/EncodeOperation.d.ts","../node_modules/@colyseus/schema/build/decoder/ReferenceTracker.d.ts","../node_modules/@colyseus/schema/build/decoder/Decoder.d.ts","../node_modules/@colyseus/schema/build/decoder/DecodeOperation.d.ts","../node_modules/@colyseus/schema/build/types/custom/CollectionSchema.d.ts","../node_modules/@colyseus/schema/build/types/custom/SetSchema.d.ts","../node_modules/@colyseus/schema/build/types/HelperTypes.d.ts","../node_modules/@colyseus/schema/build/types/custom/MapSchema.d.ts","../node_modules/@colyseus/schema/build/encoder/ChangeTree.d.ts","../node_modules/@colyseus/schema/build/types/custom/ArraySchema.d.ts","../node_modules/@colyseus/schema/build/types/registry.d.ts","../node_modules/@colyseus/schema/build/annotations.d.ts","../node_modules/@colyseus/schema/build/Schema.d.ts","../node_modules/@colyseus/schema/build/utils.d.ts","../node_modules/@colyseus/schema/build/Reflection.d.ts","../node_modules/@colyseus/schema/build/decoder/strategy/getDecoderStateCallbacks.d.ts","../node_modules/@colyseus/schema/build/decoder/strategy/Callbacks.d.ts","../node_modules/@colyseus/schema/build/decoder/strategy/RawChanges.d.ts","../node_modules/@colyseus/schema/build/index.d.ts","../node_modules/@colyseus/msgpackr/index.d.ts","../node_modules/@colyseus/sdk/build/transport/ITransport.d.ts","../node_modules/@colyseus/sdk/build/Connection.d.ts","../node_modules/@colyseus/sdk/build/serializer/Serializer.d.ts","../node_modules/@colyseus/sdk/build/serializer/SchemaSerializer.d.ts","../node_modules/@colyseus/sdk/build/core/signal.d.ts","../node_modules/@colyseus/sdk/build/core/nanoevents.d.ts","../node_modules/@colyseus/sdk/build/Room.d.ts","../node_modules/@colyseus/better-call/dist/helper.d.mts","../node_modules/@colyseus/better-call/dist/standard-schema.d.mts","../node_modules/@colyseus/better-call/dist/error.d.mts","../node_modules/@colyseus/better-call/dist/cookies.d.mts","../node_modules/@colyseus/better-call/dist/openapi.d.mts","../node_modules/@colyseus/better-call/dist/endpoint.d.mts","../node_modules/@colyseus/better-call/dist/middleware.d.mts","../node_modules/@colyseus/better-call/dist/context.d.mts","../node_modules/@colyseus/better-call/dist/router.d.mts","../node_modules/@colyseus/better-call/dist/to-response.d.mts","../node_modules/@colyseus/better-call/dist/index.d.mts","../node_modules/@colyseus/sdk/build/HTTP.d.ts","../node_modules/@colyseus/sdk/build/Auth.d.ts","../node_modules/@colyseus/sdk/build/Client.d.ts","../node_modules/@colyseus/sdk/build/errors/Errors.d.ts","../node_modules/@colyseus/sdk/build/core/utils.d.ts","../node_modules/@colyseus/sdk/build/index.d.ts","../src/multiplayer.ts","../src/index.ts","../node_modules/@babel/types/lib/index.d.ts","../node_modules/@types/babel__generator/index.d.ts","../node_modules/@babel/parser/typings/babel-parser.d.ts","../node_modules/@types/babel__template/index.d.ts","../node_modules/@types/babel__traverse/index.d.ts","../node_modules/@types/babel__core/index.d.ts","../node_modules/@types/node/ts5.7/compatibility/float16array.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/@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/ts5.7/index.d.ts","../node_modules/@types/graceful-fs/index.d.ts","../node_modules/@types/istanbul-lib-coverage/index.d.ts","../node_modules/@types/istanbul-lib-report/index.d.ts","../node_modules/@types/istanbul-reports/index.d.ts","../node_modules/@jest/expect-utils/build/index.d.ts","../node_modules/chalk/index.d.ts","../node_modules/@sinclair/typebox/typebox.d.ts","../node_modules/@jest/schemas/build/index.d.ts","../node_modules/pretty-format/build/index.d.ts","../node_modules/jest-diff/build/index.d.ts","../node_modules/jest-matcher-utils/build/index.d.ts","../node_modules/expect/build/index.d.ts","../node_modules/@types/jest/index.d.ts","../node_modules/parse5/dist/common/html.d.ts","../node_modules/parse5/dist/common/token.d.ts","../node_modules/parse5/dist/common/error-codes.d.ts","../node_modules/parse5/dist/tokenizer/preprocessor.d.ts","../node_modules/entities/dist/esm/generated/decode-data-html.d.ts","../node_modules/entities/dist/esm/generated/decode-data-xml.d.ts","../node_modules/entities/dist/esm/decode-codepoint.d.ts","../node_modules/entities/dist/esm/decode.d.ts","../node_modules/parse5/dist/tokenizer/index.d.ts","../node_modules/parse5/dist/tree-adapters/interface.d.ts","../node_modules/parse5/dist/parser/open-element-stack.d.ts","../node_modules/parse5/dist/parser/formatting-element-list.d.ts","../node_modules/parse5/dist/parser/index.d.ts","../node_modules/parse5/dist/tree-adapters/default.d.ts","../node_modules/parse5/dist/serializer/index.d.ts","../node_modules/parse5/dist/common/foreign-content.d.ts","../node_modules/parse5/dist/index.d.ts","../node_modules/@types/tough-cookie/index.d.ts","../node_modules/@types/jsdom/base.d.ts","../node_modules/@types/jsdom/index.d.ts","../node_modules/@types/stack-utils/index.d.ts","../node_modules/@types/yargs-parser/index.d.ts","../node_modules/@types/yargs/index.d.ts"],"fileIdsList":[[131,139,204,212,216,219,221,222,223,235],[139,204,212,216,219,221,222,223,235],[112,113,114,115,117,118,139,204,212,216,219,221,222,223,235],[112,113,114,115,116,118,119,139,204,212,216,219,221,222,223,235],[113,139,204,212,216,219,221,222,223,235],[112,113,114,115,116,117,118,119,120,121,139,204,212,216,219,221,222,223,235],[112,117,119,139,204,212,216,219,221,222,223,235],[117,139,204,212,216,219,221,222,223,235],[117,118,139,204,212,216,219,221,222,223,235],[139,204,212,216,219,221,222,223,235,240],[77,96,139,204,212,216,219,221,222,223,235],[81,83,87,96,97,103,139,204,212,216,219,221,222,223,235],[75,77,78,84,85,87,88,91,93,96,139,204,212,216,219,221,222,223,235],[75,76,89,90,91,92,94,95,97,103,139,204,212,216,219,221,222,223,235],[75,81,87,93,97,139,204,212,216,219,221,222,223,235],[79,81,86,88,91,93,97,139,204,212,216,219,221,222,223,235],[93,139,204,212,216,219,221,222,223,235],[75,77,86,87,88,91,92,93,94,97,100,139,204,212,216,219,221,222,223,235],[87,88,139,204,212,216,219,221,222,223,235],[87,91,97,139,204,212,216,219,221,222,223,235],[75,77,82,84,85,88,89,90,92,94,97,139,204,212,216,219,221,222,223,235],[75,81,83,84,93,139,204,212,216,219,221,222,223,235],[78,79,81,82,93,97,139,204,212,216,219,221,222,223,235],[79,93,139,204,212,216,219,221,222,223,235],[80,139,204,212,216,219,221,222,223,235],[81,139,204,212,216,219,221,222,223,235],[75,77,78,79,80,81,83,84,85,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,139,204,212,216,219,221,222,223,235],[89,90,92,94,96,97,139,204,212,216,219,221,222,223,235],[97,139,204,212,216,219,221,222,223,235],[75,77,78,85,88,91,93,97,139,204,212,216,219,221,222,223,235],[77,78,85,88,91,93,97,139,204,212,216,219,221,222,223,235],[80,81,139,204,212,216,219,221,222,223,235],[123,139,204,212,216,219,221,222,223,235],[74,108,111,123,124,139,204,212,216,219,221,222,223,235],[105,139,204,212,216,219,221,222,223,235],[122,125,139,204,212,216,219,221,222,223,235],[74,103,104,106,107,108,109,110,139,204,212,216,219,221,222,223,235],[74,103,107,108,111,123,124,125,126,127,139,204,212,216,219,221,222,223,235],[103,107,111,139,204,212,216,219,221,222,223,235],[103,139,204,212,216,219,221,222,223,235],[72,73,139,204,212,216,219,221,222,223,235],[139,204,212,216,219,221,222,223,235,269],[131,132,133,134,135,139,204,212,216,219,221,222,223,235],[131,133,139,204,212,216,219,221,222,223,235],[139,204,212,216,219,221,222,223,235,262],[139,204,212,216,219,221,222,223,235,264],[139,204,212,216,219,221,222,223,235,265],[139,204,212,216,219,221,222,223,235,271,274],[139,204,212,215,216,219,221,222,223,235,257,262,292,293,295],[139,204,212,216,219,221,222,223,235,294],[139,201,202,204,212,216,219,221,222,223,235],[139,203,204,212,216,219,221,222,223,235],[204,212,216,219,221,222,223,235],[139,204,212,216,219,221,222,223,235,244],[139,204,205,210,212,215,216,219,221,222,223,225,235,240,253],[139,204,205,206,212,215,216,219,221,222,223,235],[139,204,207,212,216,219,221,222,223,235,254],[139,204,208,209,212,216,219,221,222,223,226,235],[139,204,209,212,216,219,221,222,223,235,240,250],[139,204,210,212,215,216,219,221,222,223,225,235],[139,203,204,211,212,216,219,221,222,223,235],[139,204,212,213,216,219,221,222,223,235],[139,204,212,214,215,216,219,221,222,223,235],[139,203,204,212,215,216,219,221,222,223,235],[139,204,212,215,216,217,219,221,222,223,235,240,253],[139,204,212,215,216,217,219,221,222,223,235,240,242,244],[139,191,204,212,215,216,218,219,221,222,223,225,235,240,253],[139,204,212,215,216,218,219,221,222,223,225,235,240,250,253],[139,204,212,216,218,219,220,221,222,223,235,240,250,253],[139,204,212,215,216,219,221,222,223,235],[139,204,212,216,219,221,223,235],[139,204,212,216,219,221,222,223,224,235,253],[139,204,212,215,216,219,221,222,223,225,235,240],[139,204,212,216,219,221,222,223,226,235],[139,204,212,216,219,221,222,223,227,235],[139,204,212,215,216,219,221,222,223,230,235],[139,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260],[139,204,212,216,219,221,222,223,232,235],[139,204,212,216,219,221,222,223,233,235],[139,204,209,212,216,219,221,222,223,225,235,244],[139,204,212,215,216,219,221,222,223,235,236],[139,204,212,216,219,221,222,223,235,237,254,257],[139,204,212,215,216,219,221,222,223,235,240,243,244],[139,204,212,216,219,221,222,223,235,241,244],[139,204,212,216,219,221,222,223,235,242],[139,204,212,216,219,221,222,223,235,244,254],[139,204,212,216,219,221,222,223,235,245],[139,201,204,212,216,219,221,222,223,235,240,247,253],[139,204,212,216,219,221,222,223,235,240,246],[139,204,212,215,216,219,221,222,223,235,248,249],[139,204,212,216,219,221,222,223,235,248,249],[139,204,209,212,216,219,221,222,223,225,235,240,250],[139,204,212,216,219,221,222,223,235,251],[137,138,139,140,141,142,143,144,145,146,147,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,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261],[139,204,212,216,219,221,222,223,225,235,252],[139,204,212,216,218,219,221,222,223,233,235,253],[139,204,212,216,219,221,222,223,235,254,255],[139,204,209,212,216,219,221,222,223,235,255],[139,204,212,216,219,221,222,223,235,240,256],[139,204,212,216,219,221,222,223,224,235,257],[139,204,212,216,219,221,222,223,235,258],[139,204,207,212,216,219,221,222,223,235],[139,204,209,212,216,219,221,222,223,235],[139,204,212,216,219,221,222,223,235,254],[139,191,204,212,216,219,221,222,223,235],[139,204,212,216,219,221,222,223,235,253],[139,204,212,216,219,221,222,223,235,259],[139,204,212,216,219,221,222,223,230,235],[139,204,212,216,219,221,222,223,235,249],[139,191,204,212,215,216,217,219,221,222,223,230,235,240,244,253,256,257,259],[139,204,212,216,219,221,222,223,235,240,260],[139,204,212,216,219,221,222,223,235,242,261],[139,204,212,216,219,221,222,223,235,297],[139,204,212,216,219,221,222,223,235,280,281,282],[139,204,212,216,219,221,222,223,235,267,273],[139,204,212,216,219,221,222,223,235,271],[139,204,212,216,219,221,222,223,235,268,272],[139,204,212,216,219,221,222,223,235,277],[139,204,212,216,219,221,222,223,235,276,277],[139,204,212,216,219,221,222,223,235,276],[139,204,212,216,219,221,222,223,235,276,277,278,284,285,288,289,290,291],[139,204,212,216,219,221,222,223,235,277,285],[139,204,212,216,219,221,222,223,235,276,277,278,284,285,286,287],[139,204,212,216,219,221,222,223,235,276,285],[139,204,212,216,219,221,222,223,235,285,289],[139,204,212,216,219,221,222,223,235,277,278,279,283],[139,204,212,216,219,221,222,223,235,278],[139,204,212,216,219,221,222,223,235,276,277,285],[139,204,212,216,219,221,222,223,235,270],[139,154,157,160,161,204,212,216,219,221,222,223,235,253],[139,157,204,212,216,219,221,222,223,235,240,253],[139,157,161,204,212,216,219,221,222,223,235,253],[139,151,204,212,216,219,221,222,223,235],[139,155,204,212,216,219,221,222,223,235],[139,153,154,157,204,212,216,219,221,222,223,235,253],[139,204,212,216,219,221,222,223,225,235,250],[139,151,204,212,216,219,221,222,223,235,262],[139,153,157,204,212,216,219,221,222,223,225,235,253],[139,148,149,150,152,156,204,212,215,216,219,221,222,223,235,240,253],[139,157,204,212,216,219,221,222,223,235],[139,157,166,175,204,212,216,219,221,222,223,235],[139,149,155,204,212,216,219,221,222,223,235],[139,157,185,186,204,212,216,219,221,222,223,235],[139,149,152,157,204,212,216,219,221,222,223,235,244,253,262],[139,153,157,204,212,216,219,221,222,223,235,253],[139,148,204,212,216,219,221,222,223,235],[139,151,152,153,155,156,157,158,159,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,204,212,216,219,221,222,223,235],[139,157,178,181,204,212,216,219,221,222,223,235],[139,157,166,168,169,204,212,216,219,221,222,223,235],[139,155,157,168,170,204,212,216,219,221,222,223,235],[139,156,204,212,216,219,221,222,223,235],[139,149,151,157,204,212,216,219,221,222,223,235],[139,157,161,168,170,204,212,216,219,221,222,223,235],[139,161,204,212,216,219,221,222,223,235],[139,155,157,160,204,212,216,219,221,222,223,235,253],[139,149,153,157,166,204,212,216,219,221,222,223,235],[139,157,178,204,212,216,219,221,222,223,235],[139,170,204,212,216,219,221,222,223,235],[139,149,153,157,161,204,212,216,219,221,222,223,235],[139,151,157,185,204,212,216,219,221,222,223,235,244,259,262],[65,70,129,139,204,212,216,219,221,222,223,235],[66,67,68,69,139,204,212,216,219,221,222,223,235],[66,67,139,204,212,216,219,221,222,223,235],[66,139,204,212,216,219,221,222,223,235],[70,128,139,204,212,216,219,221,222,223,235]],"fileInfos":[{"version":"e41c290ef7dd7dab3493e6cbe5909e0148edf4a8dad0271be08edec368a0f7b9","affectsGlobalScope":true,"impliedFormat":1},{"version":"45b7ab580deca34ae9729e97c13cfd999df04416a79116c3bfb483804f85ded4","impliedFormat":1},{"version":"3facaf05f0c5fc569c5649dd359892c98a85557e3e0c847964caeb67076f4d75","impliedFormat":1},{"version":"e44bb8bbac7f10ecc786703fe0a6a4b952189f908707980ba8f3c8975a760962","impliedFormat":1},{"version":"5e1c4c362065a6b95ff952c0eab010f04dcd2c3494e813b493ecfd4fcb9fc0d8","impliedFormat":1},{"version":"68d73b4a11549f9c0b7d352d10e91e5dca8faa3322bfb77b661839c42b1ddec7","impliedFormat":1},{"version":"5efce4fc3c29ea84e8928f97adec086e3dc876365e0982cc8479a07954a3efd4","impliedFormat":1},{"version":"feecb1be483ed332fad555aff858affd90a48ab19ba7272ee084704eb7167569","impliedFormat":1},{"version":"ee7bad0c15b58988daa84371e0b89d313b762ab83cb5b31b8a2d1162e8eb41c2","impliedFormat":1},{"version":"27bdc30a0e32783366a5abeda841bc22757c1797de8681bbe81fbc735eeb1c10","impliedFormat":1},{"version":"4fd3f3422b2d2a3dfd5cdd0f387b3a8ec45f006c6ea896a4cb41264c2100bb2c","affectsGlobalScope":true,"impliedFormat":1},{"version":"69e65d976bf166ce4a9e6f6c18f94d2424bf116e90837ace179610dbccad9b42","affectsGlobalScope":true,"impliedFormat":1},{"version":"c57796738e7f83dbc4b8e65132f11a377649c00dd3eee333f672b8f0a6bea671","affectsGlobalScope":true,"impliedFormat":1},{"version":"dc2df20b1bcdc8c2d34af4926e2c3ab15ffe1160a63e58b7e09833f616efff44","affectsGlobalScope":true,"impliedFormat":1},{"version":"515d0b7b9bea2e31ea4ec968e9edd2c39d3eebf4a2d5cbd04e88639819ae3b71","affectsGlobalScope":true,"impliedFormat":1},{"version":"62bb211266ee48b2d0edf0d8d1b191f0c24fc379a82bd4c1692a082c540bc6b1","affectsGlobalScope":true,"impliedFormat":1},{"version":"0dc1e7ceda9b8b9b455c3a2d67b0412feab00bd2f66656cd8850e8831b08b537","affectsGlobalScope":true,"impliedFormat":1},{"version":"ce691fb9e5c64efb9547083e4a34091bcbe5bdb41027e310ebba8f7d96a98671","affectsGlobalScope":true,"impliedFormat":1},{"version":"8d697a2a929a5fcb38b7a65594020fcef05ec1630804a33748829c5ff53640d0","affectsGlobalScope":true,"impliedFormat":1},{"version":"4ff2a353abf8a80ee399af572debb8faab2d33ad38c4b4474cff7f26e7653b8d","affectsGlobalScope":true,"impliedFormat":1},{"version":"936e80ad36a2ee83fc3caf008e7c4c5afe45b3cf3d5c24408f039c1d47bdc1df","affectsGlobalScope":true,"impliedFormat":1},{"version":"d15bea3d62cbbdb9797079416b8ac375ae99162a7fba5de2c6c505446486ac0a","affectsGlobalScope":true,"impliedFormat":1},{"version":"68d18b664c9d32a7336a70235958b8997ebc1c3b8505f4f1ae2b7e7753b87618","affectsGlobalScope":true,"impliedFormat":1},{"version":"eb3d66c8327153d8fa7dd03f9c58d351107fe824c79e9b56b462935176cdf12a","affectsGlobalScope":true,"impliedFormat":1},{"version":"38f0219c9e23c915ef9790ab1d680440d95419ad264816fa15009a8851e79119","affectsGlobalScope":true,"impliedFormat":1},{"version":"69ab18c3b76cd9b1be3d188eaf8bba06112ebbe2f47f6c322b5105a6fbc45a2e","affectsGlobalScope":true,"impliedFormat":1},{"version":"fef8cfad2e2dc5f5b3d97a6f4f2e92848eb1b88e897bb7318cef0e2820bceaab","affectsGlobalScope":true,"impliedFormat":1},{"version":"2f11ff796926e0832f9ae148008138ad583bd181899ab7dd768a2666700b1893","affectsGlobalScope":true,"impliedFormat":1},{"version":"4de680d5bb41c17f7f68e0419412ca23c98d5749dcaaea1896172f06435891fc","affectsGlobalScope":true,"impliedFormat":1},{"version":"954296b30da6d508a104a3a0b5d96b76495c709785c1d11610908e63481ee667","affectsGlobalScope":true,"impliedFormat":1},{"version":"ac9538681b19688c8eae65811b329d3744af679e0bdfa5d842d0e32524c73e1c","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a969edff4bd52585473d24995c5ef223f6652d6ef46193309b3921d65dd4376","affectsGlobalScope":true,"impliedFormat":1},{"version":"9e9fbd7030c440b33d021da145d3232984c8bb7916f277e8ffd3dc2e3eae2bdb","affectsGlobalScope":true,"impliedFormat":1},{"version":"811ec78f7fefcabbda4bfa93b3eb67d9ae166ef95f9bff989d964061cbf81a0c","affectsGlobalScope":true,"impliedFormat":1},{"version":"717937616a17072082152a2ef351cb51f98802fb4b2fdabd32399843875974ca","affectsGlobalScope":true,"impliedFormat":1},{"version":"d7e7d9b7b50e5f22c915b525acc5a49a7a6584cf8f62d0569e557c5cfc4b2ac2","affectsGlobalScope":true,"impliedFormat":1},{"version":"71c37f4c9543f31dfced6c7840e068c5a5aacb7b89111a4364b1d5276b852557","affectsGlobalScope":true,"impliedFormat":1},{"version":"576711e016cf4f1804676043e6a0a5414252560eb57de9faceee34d79798c850","affectsGlobalScope":true,"impliedFormat":1},{"version":"89c1b1281ba7b8a96efc676b11b264de7a8374c5ea1e6617f11880a13fc56dc6","affectsGlobalScope":true,"impliedFormat":1},{"version":"74f7fa2d027d5b33eb0471c8e82a6c87216223181ec31247c357a3e8e2fddc5b","affectsGlobalScope":true,"impliedFormat":1},{"version":"f1e2a172204962276504466a6393426d2ca9c54894b1ad0a6c9dad867a65f876","affectsGlobalScope":true,"impliedFormat":1},{"version":"063600664504610fe3e99b717a1223f8b1900087fab0b4cad1496a114744f8df","affectsGlobalScope":true,"impliedFormat":1},{"version":"934019d7e3c81950f9a8426d093458b65d5aff2c7c1511233c0fd5b941e608ab","affectsGlobalScope":true,"impliedFormat":1},{"version":"52ada8e0b6e0482b728070b7639ee42e83a9b1c22d205992756fe020fd9f4a47","affectsGlobalScope":true,"impliedFormat":1},{"version":"3bdefe1bfd4d6dee0e26f928f93ccc128f1b64d5d501ff4a8cf3c6371200e5e6","affectsGlobalScope":true,"impliedFormat":1},{"version":"59fb2c069260b4ba00b5643b907ef5d5341b167e7d1dbf58dfd895658bda2867","affectsGlobalScope":true,"impliedFormat":1},{"version":"639e512c0dfc3fad96a84caad71b8834d66329a1f28dc95e3946c9b58176c73a","affectsGlobalScope":true,"impliedFormat":1},{"version":"368af93f74c9c932edd84c58883e736c9e3d53cec1fe24c0b0ff451f529ceab1","affectsGlobalScope":true,"impliedFormat":1},{"version":"af3dd424cf267428f30ccfc376f47a2c0114546b55c44d8c0f1d57d841e28d74","affectsGlobalScope":true,"impliedFormat":1},{"version":"995c005ab91a498455ea8dfb63aa9f83fa2ea793c3d8aa344be4a1678d06d399","affectsGlobalScope":true,"impliedFormat":1},{"version":"959d36cddf5e7d572a65045b876f2956c973a586da58e5d26cde519184fd9b8a","affectsGlobalScope":true,"impliedFormat":1},{"version":"965f36eae237dd74e6cca203a43e9ca801ce38824ead814728a2807b1910117d","affectsGlobalScope":true,"impliedFormat":1},{"version":"3925a6c820dcb1a06506c90b1577db1fdbf7705d65b62b99dce4be75c637e26b","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a3d63ef2b853447ec4f749d3f368ce642264246e02911fcb1590d8c161b8005","affectsGlobalScope":true,"impliedFormat":1},{"version":"b5ce7a470bc3628408429040c4e3a53a27755022a32fd05e2cb694e7015386c7","affectsGlobalScope":true,"impliedFormat":1},{"version":"8444af78980e3b20b49324f4a16ba35024fef3ee069a0eb67616ea6ca821c47a","affectsGlobalScope":true,"impliedFormat":1},{"version":"3287d9d085fbd618c3971944b65b4be57859f5415f495b33a6adc994edd2f004","affectsGlobalScope":true,"impliedFormat":1},{"version":"b4b67b1a91182421f5df999988c690f14d813b9850b40acd06ed44691f6727ad","affectsGlobalScope":true,"impliedFormat":1},{"version":"bab26767638ab3557de12c900f0b91f710c7dc40ee9793d5a27d32c04f0bf646","affectsGlobalScope":true,"impliedFormat":1},{"version":"436aaf437562f276ec2ddbee2f2cdedac7664c1e4c1d2c36839ddd582eeb3d0a","affectsGlobalScope":true,"impliedFormat":1},{"version":"8e3c06ea092138bf9fa5e874a1fdbc9d54805d074bee1de31b99a11e2fec239d","affectsGlobalScope":true,"impliedFormat":1},{"version":"51ad4c928303041605b4d7ae32e0c1ee387d43a24cd6f1ebf4a2699e1076d4fa","affectsGlobalScope":true,"impliedFormat":1},{"version":"8e7f8264d0fb4c5339605a15daadb037bf238c10b654bb3eee14208f860a32ea","affectsGlobalScope":true,"impliedFormat":1},{"version":"782dec38049b92d4e85c1585fbea5474a219c6984a35b004963b00beb1aab538","affectsGlobalScope":true,"impliedFormat":1},{"version":"5ec55264cabb439baec0f77e5d3caf8640a965dd992d1845314e7f63d30e5c90","signature":"1f16a731cd32d37ae348495f6a2556e24f970869821fbcdd2f3155ab7e92e9ef"},{"version":"67123386a4c5995f6bba8ed67c703d08d786f34bf959cd0cc9760f2fcc49a730","signature":"ff532479e01940a50c088836b5db7b4a0c282b5dabac8e226c85ceb4b744263d"},{"version":"a3b0008baf0af5f8bfa6900db881d4ca34bcc65210852da5f85c8ebd2ffcb397","signature":"98241a35c8c90e37f386adc82dea07c389c75ff93f6d1684bfae76d3a2cbb49c"},{"version":"7117fb4d4d9f267a7b5ae1a9805e86660b1f9bc5b252edac0042e03b37cecc56","signature":"b535c0a3685adcc31711888a773efc5421c68f4bd52a59b6cb62bcd0570d3da4"},{"version":"3e1651fd58401ec9275712fa856d14c511882005b5a052e23a2ad4b395f69213","signature":"3966c87388077e7f64a3d39751985f7decb5ac97145b7c61ff024d2ed284fd7b"},{"version":"f30b98d3186d17c64007176a621d917fc034ed6f09a245f4b844b0dc09593d28","signature":"1aa74c484ccfff22f0b2b4777cc5017d6eb4bc5e407e614f103a426cd7f5b2e5"},{"version":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","impliedFormat":99},{"version":"bdd14f07b4eca0b4b5203b85b8dbc4d084c749fa590bee5ea613e1641dcd3b29","impliedFormat":99},{"version":"e3ef129dc51e131068e6cd025789f405fd1b7ab0142397364c51d6cf11a58238","impliedFormat":99},{"version":"9e5927b182ea7aeb463ed8ee2b13bf7e4e96f5e3bfa26b097cdc8bb006d858d4","impliedFormat":99},{"version":"8270df05e495c8a618bdfaf0c49c83a07bc7cdd0750525b78fb7bd1e771fb03b","impliedFormat":99},{"version":"f45246a7a8ee560984696029f277e5f86377495f89c2d418df8abf9e19fb2990","affectsGlobalScope":true,"impliedFormat":99},{"version":"43d21296b16a2171ba6bfbc518cceecad0b05f4db6653f081534a36e9d9c5910","impliedFormat":99},{"version":"e12d2f436faccdc227c8bca75b7ee9fbd8de528f02611169a927d9868a8e91eb","impliedFormat":99},{"version":"55926a9ce1ca733a689c61721591ad156f6fd0b92f48eb5b42d59eb6209893b0","impliedFormat":99},{"version":"5992a3187574e46c970865247b5553044a5e8a05aac596b71486898e76272cc2","impliedFormat":99},{"version":"0cf050a836edf5bf00b6f120c81eefc9dc710bf5d1d78dea89e87c09e8f30879","impliedFormat":99},{"version":"0aa11dc4f4dd2b77d16e35e03071a7ff8e09aaf282be977f09e7de438708bce0","impliedFormat":99},{"version":"867bb8b49fcc286560140aaa32062adeb8542bb3d554a69039f2b71195942c85","impliedFormat":99},{"version":"18c19db2d439d376b3b009ec585af0b8f7f88c20f268c20a3d91ef8ffb060ccd","impliedFormat":99},{"version":"b1f0f6979e4c7a23ca4b79274e28ee44c96449559ce1d30b103714306bd55f71","impliedFormat":99},{"version":"ed2f3765976327e31fc1df8f5baacbc178e6168a1330d80080e36442ea83deab","impliedFormat":99},{"version":"fdc51a118ab68c73780eb6ee7bd4c42260a193b613c0c6c5916aeef3aa60df81","impliedFormat":99},{"version":"aa0fe5ea3330aa939533788105b9cb89aa9ccfe9346dff2838c8454dbbb22e48","impliedFormat":99},{"version":"e6443a8f2cdfb639fb27d06b46f2779a9a4e2ed37862d1033b89d59b534ec946","impliedFormat":99},{"version":"994b1ef8dac1f4145c9ec1e76750019f071894d2006552b9ff4bb2f6552b6c9e","impliedFormat":99},{"version":"d6f69a976a1d7774f81a844275ccab7da0a8134bf26938e93df3b18b219dd514","impliedFormat":99},{"version":"6511c81fa9473915f20d0ced0d55b530d752d7b61daa92599d09b03d5f08b904","impliedFormat":99},{"version":"c7298861b1bb6ed6590358c39b39cd6c5223e77caba80d58b67f18e372edb71e","affectsGlobalScope":true,"impliedFormat":99},{"version":"169ea0353fd8d6b8ceea01c867ddcaf9ac3c6fc029585492518fe9b6af27a4e9","impliedFormat":99},{"version":"313c2032fc38557ae38a3f450f5d22baca411e8fad0ff7a8cfb8d60312672134","impliedFormat":99},{"version":"64ed5aa54688ed7bf2389b5ae64b418aef046afa405b7ccbd09e668b54f25a4e","impliedFormat":99},{"version":"7699de0b8fe5282d216259107959b6b899e0de25a69f31f474a767f5c8e8d42f","impliedFormat":99},{"version":"f5083f15e35d17da5d472a5858531940d8fa51d6107ef4fb03d6b8ecc67da547","impliedFormat":99},{"version":"f4048c9a1ab8ad01960e3424403adc0b988994e0b0f9357ff4146893276600a4","impliedFormat":99},{"version":"02d578cf62571de1d1e5768fee82da981748a61186ebc3a9024e85772b7d700e","impliedFormat":99},{"version":"f68ca3b5c6df435c5465b326a93bfb51bf245d59a1126265859725a553cf69d4","impliedFormat":99},{"version":"08bdf9e8a0226958def47a0fdcdda9985e62be643a771aaebd7b2dfecb7ef766","impliedFormat":99},{"version":"dab440222ac0e689aa1436f0f9e149bc80cca8f88fc23093cbaadb2d5e472262","impliedFormat":99},{"version":"5ddc9b07a1f21f4d498721165bafa339528e989af0741aa367ec60dc31de331c","impliedFormat":99},{"version":"69773f9a33f734a896046e80024f74551ffb2b66b668583bcc1d6d8ac4ea94e3","impliedFormat":99},{"version":"6bcf134636c0dec10fcaba1e461b41ea35ad1d4ce880c409aaaeeb6255789f18","impliedFormat":99},{"version":"ae11bfc8bca6601b802647f81546520469cf2e7f5e267bf71a5997a9be041741","impliedFormat":99},{"version":"6f4aa08e82445cf10c5b22cf0c5b62e91865d2cfe66159fce18b275931107008","impliedFormat":99},{"version":"6be853b81aab58f72e77d404aff81bc9bd602723bcec966a93fd23c259b8638e","impliedFormat":99},{"version":"10488b6129451b2729811d281ad7c0d1354fc2207e8916da7f8d289b9f287971","impliedFormat":99},{"version":"a7c9ae15af4332eb5ae448e7f1c2c5b33316503e97c8a25344ce55691c4aac52","impliedFormat":99},{"version":"767cfb1496df590e9132052dbf9d5a2ed4d7864823eafb4eafcc5f9569f3c152","impliedFormat":99},{"version":"b9f9f77327ef54fc055ab78fc6fc6c93b88410621fd9b2374bb956022018a62a","impliedFormat":99},{"version":"5498a276bff1969c1bee4375f0c41d9a00e26597ecf35d174d61d59e47f6c158","impliedFormat":99},{"version":"aa015d746ff96c12818a7ad742e45f40bc6f72f4b7df2af0f7200dacfe0ca65e","impliedFormat":99},{"version":"01a6da71fc05a9195f334ab1092b3f4952b0f2e2c460ea55d206ef629309062d","impliedFormat":99},{"version":"4f213c7e007630af73b6f3d3525191b3d4b9387dc903ea7b002d1c82d2989108","impliedFormat":99},{"version":"8d9b0d78ee11670d4caa429ce908ef681663d65e94dc1507b47d6eb44abf903d","impliedFormat":99},{"version":"f4bbfedc2a1b2cdba481f59ef5ac1c239b889cb2d64737260895417d300351c9","impliedFormat":99},{"version":"f4627f7b94088c75527e5fe21124b431782032a35022fcac6ecaa0ad52618d46","impliedFormat":99},{"version":"6a8ab860d18807ef3ebcbba3c436ae6432640a8e9fd3b3e965d3b923d7ab1043","impliedFormat":99},{"version":"792c99091f78c76438d644bfb960d343b08c90ecec02b5f2e9f7170b90c1c4dd","impliedFormat":99},{"version":"673ffa56b8d26d79fa7ba4b8ef51a17245fe4ad754c5541e634c44dec8d71fa9","impliedFormat":99},{"version":"af4ca4266eb49eb93950f1b40af2b159f5b457756c22ed90da470ad35035cef9","impliedFormat":99},{"version":"3466cc0ea5600192770f1b1ca9205b8fb8d801b2a86e96c0e509a9be5d3cbaab","impliedFormat":99},{"version":"4c0ca485b3e45bda2bcbf81dfa1675e7404832eb770935223d32c0582784b822","impliedFormat":99},{"version":"6691c27223e3f40b66607da59baf24a4d5988c352955a6646e7d4c91a4c1aaf9","impliedFormat":99},{"version":"e15d9bbfd0802af440138e918e6d8e6c39429ad92dd725f489272ca8b82938a0","impliedFormat":99},{"version":"4e1c505480916b154275d18a18af8b0f3aa9f6bf37d89b486c75bed135dd8668","signature":"57428498f9fb2c4de5bea218bc845b69f096f6847648ffa3c5c070989d8c0068"},{"version":"e8042341f37eceee73310bd865c6dc1ea3eb17e0c34095707ddfecff0995c6f2","signature":"6bfd201c92586510770b20b3dc20813ffd7df7399655019184a9814c68576dd0"},{"version":"556ccd493ec36c7d7cb130d51be66e147b91cc1415be383d71da0f1e49f742a9","impliedFormat":1},{"version":"b6d03c9cfe2cf0ba4c673c209fcd7c46c815b2619fd2aad59fc4229aaef2ed43","impliedFormat":1},{"version":"95aba78013d782537cc5e23868e736bec5d377b918990e28ed56110e3ae8b958","impliedFormat":1},{"version":"670a76db379b27c8ff42f1ba927828a22862e2ab0b0908e38b671f0e912cc5ed","impliedFormat":1},{"version":"13b77ab19ef7aadd86a1e54f2f08ea23a6d74e102909e3c00d31f231ed040f62","impliedFormat":1},{"version":"069bebfee29864e3955378107e243508b163e77ab10de6a5ee03ae06939f0bb9","impliedFormat":1},{"version":"cebfeedf63623d54f7423d58cae1ec204c0d8d97a66d5fb17579e26a902085e1","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":"0dc7f45811b1cc811c2701a280f038e9e150b79ad90ae3917e999bdc43c100b4","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":"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":"bec726f1f7d2061cf17cfbb01b74283ada49933037695423f37fc91c1c2e2db6","impliedFormat":1},{"version":"afe73051ff6a03a9565cbd8ebb0e956ee3df5e913ad5c1ded64218aabfa3dcb5","impliedFormat":1},{"version":"035a5df183489c2e22f3cf59fc1ed2b043d27f357eecc0eb8d8e840059d44245","impliedFormat":1},{"version":"a4809f4d92317535e6b22b01019437030077a76fec1d93b9881c9ed4738fcc54","impliedFormat":1},{"version":"5f53fa0bd22096d2a78533f94e02c899143b8f0f9891a46965294ee8b91a9434","impliedFormat":1},{"version":"cdcc132f207d097d7d3aa75615ab9a2e71d6a478162dde8b67f88ea19f3e54de","impliedFormat":1},{"version":"0d14fa22c41fdc7277e6f71473b20ebc07f40f00e38875142335d5b63cdfc9d2","impliedFormat":1},{"version":"e1028394c1cf96d5d057ecc647e31e457b919092f882ed0c7092152b077fed9d","impliedFormat":1},{"version":"f315e1e65a1f80992f0509e84e4ae2df15ecd9ef73df975f7c98813b71e4c8da","impliedFormat":1},{"version":"5b9586e9b0b6322e5bfbd2c29bd3b8e21ab9d871f82346cb71020e3d84bae73e","impliedFormat":1},{"version":"3e70a7e67c2cb16f8cd49097360c0309fe9d1e3210ff9222e9dac1f8df9d4fb6","impliedFormat":1},{"version":"ab68d2a3e3e8767c3fba8f80de099a1cfc18c0de79e42cb02ae66e22dfe14a66","impliedFormat":1},{"version":"d96cc6598148bf1a98fb2e8dcf01c63a4b3558bdaec6ef35e087fd0562eb40ec","impliedFormat":1},{"version":"f8db4fea512ab759b2223b90ecbbe7dae919c02f8ce95ec03f7fb1cf757cfbeb","affectsGlobalScope":true,"impliedFormat":1},{"version":"19990350fca066265b2c190c9b6cde1229f35002ea2d4df8c9e397e9942f6c89","impliedFormat":99},{"version":"8fb8fdda477cd7382477ffda92c2bb7d9f7ef583b1aa531eb6b2dc2f0a206c10","impliedFormat":99},{"version":"66995b0c991b5c5d42eff1d950733f85482c7419f7296ab8952e03718169e379","impliedFormat":99},{"version":"9863f888da357e35e013ca3465b794a490a198226bd8232c2f81fb44e16ff323","impliedFormat":99},{"version":"84bc2d80326a83ee4a6e7cba2fd480b86502660770c0e24da96535af597c9f1e","impliedFormat":99},{"version":"ea27768379b866ee3f5da2419650acdb01125479f7af73580a4bceb25b79e372","impliedFormat":99},{"version":"598931eeb4362542cae5845f95c5f0e45ac668925a40ce201e244d7fe808e965","impliedFormat":99},{"version":"da9ef88cde9f715756da642ad80c4cd87a987f465d325462d6bc2a0b11d202c8","impliedFormat":99},{"version":"b4c6184d78303b0816e779a48bef779b15aea4a66028eb819aac0abee8407dea","impliedFormat":99},{"version":"db085d2171d48938a99e851dafe0e486dce9859e5dfa73c21de5ed3d4d6fb0c5","impliedFormat":99},{"version":"62a3ad1ddd1f5974b3bf105680b3e09420f2230711d6520a521fab2be1a32838","impliedFormat":99},{"version":"a77be6fc44c876bc10c897107f84eaba10790913ebdcad40fcda7e47469b2160","impliedFormat":99},{"version":"06cf55b6da5cef54eaaf51cdc3d4e5ebf16adfdd9ebd20cec7fe719be9ced017","impliedFormat":99},{"version":"91f5dbcdb25d145a56cffe957ec665256827892d779ef108eb2f3864faff523b","impliedFormat":99},{"version":"052ba354bab8fb943e0bc05a0769f7b81d7c3b3c6cd0f5cfa53c7b2da2a525c5","impliedFormat":99},{"version":"927955a3de5857e0a1c575ced5a4245e74e6821d720ed213141347dd1870197f","impliedFormat":99},{"version":"fec804d54cd97dd77e956232fc37dc13f53e160d4bbeeb5489e86eeaa91f7ebd","impliedFormat":99},{"version":"03c258e060b7da220973f84b89615e4e9850e9b5d30b3a8e4840b3e3268ae8eb","impliedFormat":1},{"version":"fd0589ca571ad090b531d8c095e26caa53d4825c64d3ff2b2b1ab95d72294175","impliedFormat":1},{"version":"669843ecafb89ae1e944df06360e8966219e4c1c34c0d28aa2503272cdd444a7","affectsGlobalScope":true,"impliedFormat":1},{"version":"ab82804a14454734010dcdcd43f564ff7b0389bee4c5692eec76ff5b30d4cf66","impliedFormat":1},{"version":"bae8d023ef6b23df7da26f51cea44321f95817c190342a36882e93b80d07a960","impliedFormat":1},{"version":"26a770cec4bd2e7dbba95c6e536390fffe83c6268b78974a93727903b515c4e7","impliedFormat":1}],"root":[[65,70],129,130],"options":{"declaration":true,"esModuleInterop":true,"module":7,"noFallthroughCasesInSwitch":true,"noImplicitOverride":true,"outDir":"./","skipLibCheck":true,"sourceMap":true,"strict":true,"strictPropertyInitialization":false,"target":10},"referencedMap":[[133,1],[131,2],[119,3],[115,2],[117,4],[114,5],[112,2],[122,6],[118,7],[116,8],[120,9],[113,2],[121,2],[104,10],[84,11],[99,12],[97,13],[96,14],[88,15],[87,16],[86,17],[101,18],[102,19],[100,20],[93,21],[85,22],[83,23],[82,24],[78,17],[81,25],[80,26],[75,2],[103,27],[76,2],[91,28],[79,29],[94,30],[89,31],[92,31],[90,31],[95,32],[77,2],[98,29],[124,33],[125,34],[106,35],[123,36],[111,37],[110,2],[109,2],[127,2],[126,2],[128,38],[71,2],[108,39],[107,40],[105,2],[73,2],[74,41],[267,2],[270,42],[269,2],[72,2],[136,43],[132,1],[134,44],[135,1],[263,45],[264,2],[265,46],[266,47],[275,48],[294,49],[295,50],[201,51],[202,51],[203,52],[139,53],[204,54],[205,55],[206,56],[207,57],[208,58],[209,59],[210,60],[211,61],[212,62],[213,62],[214,63],[215,64],[216,65],[217,66],[140,2],[138,2],[218,67],[219,68],[220,69],[221,70],[222,71],[223,70],[224,72],[225,73],[226,74],[227,75],[228,75],[229,75],[230,76],[231,77],[232,78],[233,79],[234,80],[235,81],[236,81],[237,82],[238,2],[239,2],[240,83],[241,84],[242,85],[243,83],[244,86],[245,87],[246,88],[247,89],[248,90],[249,91],[250,92],[251,93],[137,2],[262,94],[252,95],[253,96],[254,97],[255,98],[256,99],[257,100],[258,101],[141,70],[142,2],[143,102],[144,103],[145,2],[146,104],[147,2],[192,105],[193,106],[194,107],[195,107],[196,108],[197,2],[198,54],[199,109],[200,106],[259,110],[260,111],[261,112],[296,2],[293,2],[297,2],[298,113],[268,2],[282,2],[283,114],[280,2],[281,2],[274,115],[272,116],[273,117],[278,118],[291,119],[276,2],[277,120],[292,121],[287,122],[288,123],[286,124],[290,125],[284,126],[279,127],[289,128],[285,119],[271,129],[63,2],[64,2],[11,2],[12,2],[14,2],[13,2],[2,2],[15,2],[16,2],[17,2],[18,2],[19,2],[20,2],[21,2],[22,2],[3,2],[23,2],[24,2],[4,2],[25,2],[29,2],[26,2],[27,2],[28,2],[30,2],[31,2],[32,2],[5,2],[33,2],[34,2],[35,2],[36,2],[6,2],[40,2],[37,2],[38,2],[39,2],[41,2],[7,2],[42,2],[47,2],[48,2],[43,2],[44,2],[45,2],[46,2],[8,2],[52,2],[49,2],[50,2],[51,2],[53,2],[9,2],[54,2],[55,2],[56,2],[58,2],[57,2],[59,2],[60,2],[10,2],[61,2],[1,2],[62,2],[166,130],[180,131],[163,132],[181,10],[190,133],[154,134],[155,135],[153,136],[189,45],[184,137],[188,138],[157,139],[167,140],[177,141],[156,142],[187,143],[151,144],[152,137],[158,140],[159,2],[165,145],[162,140],[149,146],[191,147],[182,148],[170,149],[169,140],[171,150],[174,151],[168,152],[172,153],[185,45],[160,154],[161,155],[175,156],[150,10],[179,157],[178,140],[164,155],[173,158],[176,159],[183,2],[148,2],[186,160],[130,161],[69,2],[70,162],[68,163],[67,164],[66,2],[129,165],[65,2]],"version":"5.7.3"}
|
package/package.json
CHANGED
|
@@ -1,12 +1,25 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@helixdev/helix-sdk",
|
|
3
|
-
"version": "0.1.1-staging.
|
|
3
|
+
"version": "0.1.1-staging.8",
|
|
4
4
|
"description": "HELIX Instant SDK — identity (and later multiplayer/voice/wallet) for worlds running on HELIX Instant",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
7
|
+
"exports": {
|
|
8
|
+
".": {
|
|
9
|
+
"types": "./dist/index.d.ts",
|
|
10
|
+
"default": "./dist/index.js"
|
|
11
|
+
},
|
|
12
|
+
"./multiplayer-contract": {
|
|
13
|
+
"types": "./dist/multiplayer-contract/index.d.ts",
|
|
14
|
+
"default": "./dist/multiplayer-contract/index.js"
|
|
15
|
+
}
|
|
16
|
+
},
|
|
7
17
|
"files": [
|
|
8
18
|
"dist"
|
|
9
19
|
],
|
|
20
|
+
"dependencies": {
|
|
21
|
+
"@colyseus/sdk": "^0.17.43"
|
|
22
|
+
},
|
|
10
23
|
"scripts": {
|
|
11
24
|
"build": "tsc -p tsconfig.build.json",
|
|
12
25
|
"lint": "eslint \"src/**/*.ts\"",
|