@ignifx/physics-2d 0.10.0 → 0.11.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.ts +98 -9
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +273 -15
- package/dist/index.js.map +1 -1
- package/package.json +5 -5
- package/skills/physics-2d/SKILL.md +9 -7
package/dist/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { AssetHandle, AssetLoader, Component, ComponentHooks, DiagnosticsGroup, Disconnect, Entity, ErrorContext, Extension, ExtensionContext, IgnifxError, JsonValue, LayerMask, MutableVec2, Schema, SchemaDescription, Signal, Vec2, Vec2Like } from "@ignifx/core";
|
|
1
|
+
import { AssetHandle, AssetLoader, Component, ComponentHooks, DiagnosticsGroup, Disconnect, Entity, ErrorContext, Extension, ExtensionContext, IgnifxError, JsonValue, LayerMask, MutableVec2, Schema, SchemaDescription, Signal, Vec2, Vec2Like, Vec3 } from "@ignifx/core";
|
|
2
2
|
import { Collider, EventQueue, RigidBody, World } from "@dimforge/rapier2d-compat";
|
|
3
3
|
import { TilemapCollisionData } from "@ignifx/2d";
|
|
4
4
|
//#region src/settings.d.ts
|
|
@@ -315,6 +315,13 @@ export declare abstract class Collider2D extends Component implements ComponentH
|
|
|
315
315
|
onAttach(): void;
|
|
316
316
|
/** Marks the entity's body for a rebuild, which removes this collider from it. */
|
|
317
317
|
onDetach(): void;
|
|
318
|
+
/**
|
|
319
|
+
* Rebuilds the body after a tool changed fields from outside: an editor's inspector, or a hot
|
|
320
|
+
* reload's new default (`ComponentHooks.onValidate`).
|
|
321
|
+
*
|
|
322
|
+
* @param fields - The fields that changed.
|
|
323
|
+
*/
|
|
324
|
+
onValidate(fields: readonly string[]): void;
|
|
318
325
|
/**
|
|
319
326
|
* Rebuilds the entity's body and shapes at the start of the next fixed step. Call it after
|
|
320
327
|
* changing a size, an offset, `isTrigger`, or the entity's scale.
|
|
@@ -511,6 +518,13 @@ export declare class Rigidbody2D extends Component implements ComponentHooks {
|
|
|
511
518
|
onAttach(): void;
|
|
512
519
|
/** Marks the entity's body for a rebuild, which turns it back into an implicit static body. */
|
|
513
520
|
onDetach(): void;
|
|
521
|
+
/**
|
|
522
|
+
* Rebuilds the body after a tool changed fields from outside: an editor's inspector, or a hot
|
|
523
|
+
* reload's new default (`ComponentHooks.onValidate`).
|
|
524
|
+
*
|
|
525
|
+
* @param fields - The fields that changed.
|
|
526
|
+
*/
|
|
527
|
+
onValidate(fields: readonly string[]): void;
|
|
514
528
|
/**
|
|
515
529
|
* Rebuilds the body at the start of the next fixed step. Call it after changing `bodyType`,
|
|
516
530
|
* `mass`, `freezeRotation`, damping, or the entity's scale.
|
|
@@ -655,6 +669,13 @@ export declare class CharacterController2D extends Component implements Componen
|
|
|
655
669
|
onAttach(): void;
|
|
656
670
|
/** Releases the Rapier controller and its collider. */
|
|
657
671
|
onDetach(): void;
|
|
672
|
+
/**
|
|
673
|
+
* Rebuilds the body after a tool changed fields from outside: an editor's inspector, or a hot
|
|
674
|
+
* reload's new default (`ComponentHooks.onValidate`).
|
|
675
|
+
*
|
|
676
|
+
* @param fields - The fields that changed.
|
|
677
|
+
*/
|
|
678
|
+
onValidate(fields: readonly string[]): void;
|
|
658
679
|
/** Rebuilds the capsule or box at the start of the next fixed step. */
|
|
659
680
|
rebuild(): void;
|
|
660
681
|
/**
|
|
@@ -910,8 +931,9 @@ export declare class TilemapCollider2D extends Collider2D {
|
|
|
910
931
|
* `Tilemap` on the same entity.
|
|
911
932
|
*
|
|
912
933
|
* @remarks
|
|
913
|
-
* Reading it works in
|
|
914
|
-
*
|
|
934
|
+
* Reading it works in any app, before any body is built. An edit-mode app also builds the body
|
|
935
|
+
* without stepping (ADR-0028, amendment of 2026-10-20), so `app.physics2d.colliderOutlines` draws
|
|
936
|
+
* the same outlines from Rapier.
|
|
915
937
|
*
|
|
916
938
|
* @returns The data, or `null` when nothing was assigned and the entity has no `Tilemap`.
|
|
917
939
|
*/
|
|
@@ -1147,6 +1169,13 @@ interface BodyRecord2D {
|
|
|
1147
1169
|
staticVersion: number;
|
|
1148
1170
|
/** Whether the `IGX-1151` diagnostic has already been reported for this body. */
|
|
1149
1171
|
reportedMove: boolean;
|
|
1172
|
+
/**
|
|
1173
|
+
* `Transform.worldMatrixVersion` when the body was last placed. An edit-mode app compares it each
|
|
1174
|
+
* frame to follow a transform the editor moved (ADR-0028, amendment of 2026-10-20).
|
|
1175
|
+
*/
|
|
1176
|
+
placedVersion: number;
|
|
1177
|
+
/** The lossy scale the colliders were built at; a different scale needs new colliders. */
|
|
1178
|
+
readonly placedScale: Vec3;
|
|
1150
1179
|
/** Signal connections the record owns, dropped when it is torn down. */
|
|
1151
1180
|
disconnects: Disconnect[];
|
|
1152
1181
|
}
|
|
@@ -1219,6 +1248,13 @@ declare class Physics2DRuntime {
|
|
|
1219
1248
|
* @returns `true` once a step has completed.
|
|
1220
1249
|
*/
|
|
1221
1250
|
get hasStepped(): boolean;
|
|
1251
|
+
/**
|
|
1252
|
+
* Whether this runtime belongs to an edit-mode app, where bodies are kept in sync with the world
|
|
1253
|
+
* by {@link Physics2DRuntime.syncEditMode} and never stepped (ADR-0028, amendment of 2026-10-20).
|
|
1254
|
+
*
|
|
1255
|
+
* @returns `true` in an editor's scene view.
|
|
1256
|
+
*/
|
|
1257
|
+
get isEditMode(): boolean;
|
|
1222
1258
|
/**
|
|
1223
1259
|
* Every body, in creation order.
|
|
1224
1260
|
*
|
|
@@ -1362,6 +1398,19 @@ declare class Physics2DRuntime {
|
|
|
1362
1398
|
* @param fixedDeltaSeconds - The fixed step in seconds.
|
|
1363
1399
|
*/
|
|
1364
1400
|
step(fixedDeltaSeconds: number): void;
|
|
1401
|
+
/**
|
|
1402
|
+
* Brings the bodies in line with the world without stepping, which is all an edit-mode app ever
|
|
1403
|
+
* does with them (ADR-0028, amendment of 2026-10-20): it builds, rebuilds, and removes bodies for
|
|
1404
|
+
* component, layer, and tile changes, and places every body whose transform moved where the
|
|
1405
|
+
* transform now is, so a query sees what the editor shows. The world is never stepped, so nothing
|
|
1406
|
+
* falls, no contact or trigger callback fires, and no pose is written back to a transform.
|
|
1407
|
+
*
|
|
1408
|
+
* @remarks
|
|
1409
|
+
* Rapier refreshes its broadphase only inside a step, so after a change this runs the same
|
|
1410
|
+
* zero-length step a game runs before its first real one (S6.2). With a zero timestep nothing
|
|
1411
|
+
* moves; the events it reports are dropped. A changed scale rebuilds the body's colliders.
|
|
1412
|
+
*/
|
|
1413
|
+
syncEditMode(): void;
|
|
1365
1414
|
/**
|
|
1366
1415
|
* Writes the interpolated display pose of every interpolated body.
|
|
1367
1416
|
*
|
|
@@ -1401,6 +1450,23 @@ interface Physics2DRapierHandles {
|
|
|
1401
1450
|
/** Rapier's `World`. */
|
|
1402
1451
|
readonly world: RapierWorld;
|
|
1403
1452
|
}
|
|
1453
|
+
/**
|
|
1454
|
+
* One 2D collider's outline, from `app.physics2d.colliderOutlines`: what an editor draws as a
|
|
1455
|
+
* collider gizmo (ADR-0028, amendment of 2026-10-20).
|
|
1456
|
+
*
|
|
1457
|
+
* @public
|
|
1458
|
+
*/
|
|
1459
|
+
interface ColliderOutline2D {
|
|
1460
|
+
/** The collider the outline is of. */
|
|
1461
|
+
readonly collider: Collider2D;
|
|
1462
|
+
/** Whether the collider is a trigger, which an editor usually draws in another colour. */
|
|
1463
|
+
readonly isTrigger: boolean;
|
|
1464
|
+
/**
|
|
1465
|
+
* The outline as world-space line segments in the XY plane: every four numbers are one segment,
|
|
1466
|
+
* the `x, y` of its two ends, in metres.
|
|
1467
|
+
*/
|
|
1468
|
+
readonly lines: Float32Array;
|
|
1469
|
+
}
|
|
1404
1470
|
/**
|
|
1405
1471
|
* The service behind `app.physics2d`.
|
|
1406
1472
|
*
|
|
@@ -1451,7 +1517,7 @@ export declare class Physics2DService {
|
|
|
1451
1517
|
* @param maxDistance - How far to travel; defaults to 10 km.
|
|
1452
1518
|
* @param options - Layer mask and trigger behaviour.
|
|
1453
1519
|
* @returns The hit, or `null` when the ray clears everything.
|
|
1454
|
-
* @throws IgnifxError with code `IGX-1153` when no fixed step has run yet.
|
|
1520
|
+
* @throws IgnifxError with code `IGX-1153` when no fixed step has run yet, outside edit mode.
|
|
1455
1521
|
*/
|
|
1456
1522
|
raycast(origin: Vec2Like, direction: Vec2Like, maxDistance?: number, options?: QueryOptions2D): RaycastHit2D | null;
|
|
1457
1523
|
/**
|
|
@@ -1462,7 +1528,7 @@ export declare class Physics2DService {
|
|
|
1462
1528
|
* @param maxDistance - How far to travel; defaults to 10 km.
|
|
1463
1529
|
* @param options - Layer mask and trigger behaviour.
|
|
1464
1530
|
* @returns The hits, in increasing distance. The array is reused between calls.
|
|
1465
|
-
* @throws IgnifxError with code `IGX-1153` when no fixed step has run yet.
|
|
1531
|
+
* @throws IgnifxError with code `IGX-1153` when no fixed step has run yet, outside edit mode.
|
|
1466
1532
|
*/
|
|
1467
1533
|
raycastAll(origin: Vec2Like, direction: Vec2Like, maxDistance?: number, options?: QueryOptions2D): readonly RaycastHit2D[];
|
|
1468
1534
|
/**
|
|
@@ -1472,7 +1538,7 @@ export declare class Physics2DService {
|
|
|
1472
1538
|
* @param radius - Its radius in metres.
|
|
1473
1539
|
* @param options - Layer mask and trigger behaviour.
|
|
1474
1540
|
* @returns The overlapping entities, in Rapier's order. The array is reused between calls.
|
|
1475
|
-
* @throws IgnifxError with code `IGX-1153` when no fixed step has run yet.
|
|
1541
|
+
* @throws IgnifxError with code `IGX-1153` when no fixed step has run yet, outside edit mode.
|
|
1476
1542
|
*/
|
|
1477
1543
|
overlapCircle(centre: Vec2Like, radius: number, options?: QueryOptions2D): readonly Entity[];
|
|
1478
1544
|
/**
|
|
@@ -1483,7 +1549,7 @@ export declare class Physics2DService {
|
|
|
1483
1549
|
* @param rotation - Its rotation in degrees counter-clockwise; defaults to `0`.
|
|
1484
1550
|
* @param options - Layer mask and trigger behaviour.
|
|
1485
1551
|
* @returns The overlapping entities. The array is reused between calls.
|
|
1486
|
-
* @throws IgnifxError with code `IGX-1153` when no fixed step has run yet.
|
|
1552
|
+
* @throws IgnifxError with code `IGX-1153` when no fixed step has run yet, outside edit mode.
|
|
1487
1553
|
*/
|
|
1488
1554
|
overlapBox(centre: Vec2Like, size: Vec2Like, rotation?: number, options?: QueryOptions2D): readonly Entity[];
|
|
1489
1555
|
/**
|
|
@@ -1495,9 +1561,32 @@ export declare class Physics2DService {
|
|
|
1495
1561
|
* @param maxDistance - How far to sweep.
|
|
1496
1562
|
* @param options - Layer mask and trigger behaviour.
|
|
1497
1563
|
* @returns The hit, or `null`.
|
|
1498
|
-
* @throws IgnifxError with code `IGX-1153` when no fixed step has run yet.
|
|
1564
|
+
* @throws IgnifxError with code `IGX-1153` when no fixed step has run yet, outside edit mode.
|
|
1499
1565
|
*/
|
|
1500
1566
|
shapeCast(centre: Vec2Like, radius: number, direction: Vec2Like, maxDistance: number, options?: QueryOptions2D): ShapeCastHit2D | null;
|
|
1567
|
+
/**
|
|
1568
|
+
* The outlines of an entity's 2D colliders, as world-space line segments: what an editor draws as
|
|
1569
|
+
* collider gizmos (ADR-0028, amendment of 2026-10-20).
|
|
1570
|
+
*
|
|
1571
|
+
* @remarks
|
|
1572
|
+
* The segments are Rapier's own debug drawing of the colliders the entity's body is built from,
|
|
1573
|
+
* so a polygon, an edge chain, a capsule, a one-way platform, and every piece of a
|
|
1574
|
+
* `TilemapCollider2D` are outlined exactly. A body exists from the first fixed step in a game,
|
|
1575
|
+
* and from the first frame or query in an edit-mode app, which keeps bodies on the transforms the
|
|
1576
|
+
* editor moves; an entity without one (no enabled collider yet, or before that point) has no
|
|
1577
|
+
* outline. A `CharacterController2D`'s own shape is not a collider and is not outlined.
|
|
1578
|
+
*
|
|
1579
|
+
* @param entity - The entity whose colliders to outline.
|
|
1580
|
+
* @returns One outline per collider that produced a shape, in component order; empty when none.
|
|
1581
|
+
*
|
|
1582
|
+
* @example
|
|
1583
|
+
* ```ts
|
|
1584
|
+
* for (const outline of app.physics2d.colliderOutlines(selected)) {
|
|
1585
|
+
* drawLines2D(outline.lines, outline.isTrigger ? "orange" : "green");
|
|
1586
|
+
* }
|
|
1587
|
+
* ```
|
|
1588
|
+
*/
|
|
1589
|
+
colliderOutlines(entity: Entity): readonly ColliderOutline2D[];
|
|
1501
1590
|
}
|
|
1502
1591
|
//#endregion
|
|
1503
1592
|
//#region src/extension.d.ts
|
|
@@ -1566,5 +1655,5 @@ export declare const physics2d: (options?: Physics2DOptions) => Extension;
|
|
|
1566
1655
|
*/
|
|
1567
1656
|
export declare function describeSchemas(): Readonly<Record<string, SchemaDescription>>;
|
|
1568
1657
|
//#endregion
|
|
1569
|
-
export type { BodyType2D, CapsuleDirection2D, CharacterCollision2D, CharacterShape2D, Collision2D, CollisionEventMode2D, CombineRule, ContactPoint2D, InterpolationMode2D, Physics2DErrorOptions, Physics2DMaterialValues, Physics2DOptions, Physics2DRapierHandles, Physics2DSettings, QueryOptions2D, RaycastHit2D, Rigidbody2DRapierHandles, ShapeCastHit2D, TriggerEvent2D };
|
|
1658
|
+
export type { BodyType2D, CapsuleDirection2D, CharacterCollision2D, CharacterShape2D, ColliderOutline2D, Collision2D, CollisionEventMode2D, CombineRule, ContactPoint2D, InterpolationMode2D, Physics2DErrorOptions, Physics2DMaterialValues, Physics2DOptions, Physics2DRapierHandles, Physics2DSettings, QueryOptions2D, RaycastHit2D, Rigidbody2DRapierHandles, ShapeCastHit2D, TriggerEvent2D };
|
|
1570
1659
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","names":[],"sources":["../src/settings.ts","../src/material.ts","../src/lite/rapier/world.ts","../src/components/collider.ts","../src/events.ts","../src/components/rigidbody.ts","../src/components/character-controller.ts","../src/components/colliders.ts","../src/components/tilemap-collider.ts","../src/errors.ts","../src/queries.ts","../src/runtime/body-record.ts","../src/runtime/runtime.ts","../src/runtime/host.ts","../src/service.ts","../src/extension.ts","../src/schemas.ts"],"mappings":";;;;;;;;;;;;;;;;;qBAiBa;;;;;;UAOI;;WAEN;;WAEA;;;;;;;;;;;;;;;;;;;UAoBM;;WAEN,SAAS;;;;;WAKT,iBAAiB,SAAS;;WAE1B,iBAAiB;;WAEjB;;WAEA;;;;;;;;;;;;;wBAuBK,2BAA2B;;;;;;;;wBAoB3B,4BAA4B;;;;;;;;;;;;;qBCzF/B;;;;;;qBAOA;;;;;;qBAOA;;;;;;qBAOA;;;;;;;;;;;;qBAaA,6BAA6B;;SAEjC;;WAGE;;WAGA;;WAGA;;;;;;;EAQT,YAAY,cAAc,QAAQ;;;;;;;;;;;;;SAkB3B,WAAW,cAAc,QAAQ,QAAQ,2BAA2B;;;;;;;;;wBAe7D,iCAAiC,YAAY;;;;;;;;;;;wBAqB7C,uBAAuB,iBAAiB,UAAU,YAAY;;;;;;;;;;;;;;KC3FlE,cAAc;;;;;;KAOd,aAAa;;;;;;KAOb,iBAAiB;;;;;;cAchB;;WAEX;;WAEA;;WAEA;;;;;;;KAQU,uBAAuB,2BAA2B;;;;;;KA+BlD;WACG;WAAsB;WAA4B;;WAClD;WAAyB;;WACzB;WAA0B;WAA6B;;WACvD;WAA0B,QAAQ;;WAClC;WAA2B,QAAQ;;;;;;;;;;;;;;;qBC1FrC;;;;;;KAOD,sBAAsB;;;;;;UAOjB;;WAEN,OAAO;;WAEP,QAAQ;;WAER;;WAEA;;;;;;;;;wBAUK,oBAAoB;;;;;;8BAuBd,mBAAmB,qBAAqB;;SAErD;;EAGP,QAAgB;;EAGhB;;EAGA,UAAkB,YAAY;;EAG9B,gBAAwB;;EAGxB,iBAAyB;;EAGzB,oBAA4B;;;;;;EAO5B;;EAGA;;EAGA;;EAMA;;EAKA;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"index.d.ts","names":[],"sources":["../src/settings.ts","../src/material.ts","../src/lite/rapier/world.ts","../src/components/collider.ts","../src/events.ts","../src/components/rigidbody.ts","../src/components/character-controller.ts","../src/components/colliders.ts","../src/components/tilemap-collider.ts","../src/errors.ts","../src/queries.ts","../src/runtime/body-record.ts","../src/runtime/runtime.ts","../src/runtime/host.ts","../src/service.ts","../src/extension.ts","../src/schemas.ts"],"mappings":";;;;;;;;;;;;;;;;;qBAiBa;;;;;;UAOI;;WAEN;;WAEA;;;;;;;;;;;;;;;;;;;UAoBM;;WAEN,SAAS;;;;;WAKT,iBAAiB,SAAS;;WAE1B,iBAAiB;;WAEjB;;WAEA;;;;;;;;;;;;;wBAuBK,2BAA2B;;;;;;;;wBAoB3B,4BAA4B;;;;;;;;;;;;;qBCzF/B;;;;;;qBAOA;;;;;;qBAOA;;;;;;qBAOA;;;;;;;;;;;;qBAaA,6BAA6B;;SAEjC;;WAGE;;WAGA;;WAGA;;;;;;;EAQT,YAAY,cAAc,QAAQ;;;;;;;;;;;;;SAkB3B,WAAW,cAAc,QAAQ,QAAQ,2BAA2B;;;;;;;;;wBAe7D,iCAAiC,YAAY;;;;;;;;;;;wBAqB7C,uBAAuB,iBAAiB,UAAU,YAAY;;;;;;;;;;;;;;KC3FlE,cAAc;;;;;;KAOd,aAAa;;;;;;KAOb,iBAAiB;;;;;;cAchB;;WAEX;;WAEA;;WAEA;;;;;;;KAQU,uBAAuB,2BAA2B;;;;;;KA+BlD;WACG;WAAsB;WAA4B;;WAClD;WAAyB;;WACzB;WAA0B;WAA6B;;WACvD;WAA0B,QAAQ;;WAClC;WAA2B,QAAQ;;;;;;;;;;;;;;;qBC1FrC;;;;;;KAOD,sBAAsB;;;;;;UAOjB;;WAEN,OAAO;;WAEP,QAAQ;;WAER;;WAEA;;;;;;;;;wBAUK,oBAAoB;;;;;;8BAuBd,mBAAmB,qBAAqB;;SAErD;;EAGP,QAAgB;;EAGhB;;EAGA,UAAkB,YAAY;;EAG9B,gBAAwB;;EAGxB,iBAAyB;;EAGzB,oBAA4B;;;;;;EAO5B;;EAGA;;EAGA;;EAMA;;EAKA;;;;;;;EAUA,WAAW;;;;;;;;;;;EAeX;;;;;;;EAUA,gBAAgB,UAAU,0BAA0B;;;;;;;;;WAY3C,cAAc,OAAO,UAAU,KAAK;;;;;;;;;;;;;UCxJ9B;;WAEN,OAAO;;WAEP,QAAQ;;WAER;;;;;;;;;;;;;;;;;;;UAoBM;;WAEN,OAAO;;WAEP,eAAe;;WAEf,MAAM;;WAEN,cAAc;;;;;;;UAQR;;WAEN,OAAO;;WAEP,eAAe;;WAEf,MAAM;;WAEN,cAAc;;WAEd,mBAAmB;;WAEnB,kBAAkB;;;;;;;UAQZ;;WAEN,OAAO;;WAEP,eAAe;;WAEf,OAAO;;WAEP,QAAQ;;;;;;;;;;;;;;qBClEN;;;;;;KAOD,qBAAqB;;;;;;qBAOpB;;;;;;KAOD,8BAA8B;;;;;;qBAO7B;;;;;;KAOD,+BAA+B;;;;;;;UAQ1B;;WAEN,MAAM;;;;;;;;;;;;;;;qBAgBJ,oBAAoB,qBAAqB;;;SAE7C;;SAGA;;SAGA,QAAQ;EAEf,UAAkB;EAElB;EAEA;EAEA;EAEA;EAEA;EAEA,eAAuB;EAEvB,iBAAyB;;EAGzB;;EAMA;;EAKA;;;;;;;EAUA,WAAW;;;;;EASX;;;;;;MASI,UAAU;;;;;;MASV,kBAAkB;;;;;;MAWlB,eAAe,OAAO;;;;;;;EAU1B,oBAAoB,KAAK,cAAc;;;;;;MAUnC;;;;;;MASA,gBAAgB;;;;;;MAShB;;;;;;;;;;;;;;EAiBJ,SAAS,OAAO,UAAU,QAAQ;;;;;;;EAUlC,WAAW,SAAS,UAAU,QAAQ;;;;;;EAStC,UAAU;;;;;;;;EAWV,SAAS,UAAU,UAAU;;;;;;;;;;;;;;qBCtOlB;;;;;;KAOD,2BAA2B;;;;;;;;;;;;;;;;;qBAkB1B,8BAA8B,qBAAqB;;;SAEvD;;SAGA;;SAGA,QAAQ;EAEf,OAAe;EAEf;EAEA;EAEA,QAAgB;EAEhB;EAEA;EAEA;EAEA;EAEA;EAEA;EAEA,eAAuB;;EAqBvB;;EAMA;;EAKA;;;;;;;EAUA,WAAW;;EAMX;;;;;;EASA,KAAK,cAAc;;;;;;MASf,YAAY;;;;;;MAYZ;;;;;;MASA,gBAAgB;;;;;;;;;;MAahB,cAAc,OAAO;;;;;;EAUzB,SAAS,UAAU;;;;;;;;EAYnB,mBAAmB;;;;;;;;;;;EAcnB,gBAAgB,UAAU,UAAU,mBAAmB,QAAQ,iBAAiB;;;;;;;;EAiBhF,UAAU,WAAW;;;;;;;;;qBC/MV;;;;;;KAOD,6BAA6B;;;;;;;;;;;;qBAa5B,sBAAsB;;SAE1B;;SAGA,QAAQ;EAEf,MAAc;;EAGd;;;;;;;;;EAaA,cAAc,OAAO,UAAU,KAAK;;;;;;;;qBAoBzB,yBAAyB;;SAE7B;;SAGA,QAAQ;EAEf;;EAGA;;;;;;;;;EAaA,cAAc,OAAO,UAAU,KAAK;;;;;;;;;;;;;qBAqBzB,0BAA0B;;SAE9B;;SAGA,QAAQ;EAEf;EAEA;EAEA,WAAmB;;EAGnB;;;;;;;;;EAaA,cAAc,OAAO,UAAU,KAAK;;;;;;;;;;;;qBA2BzB,0BAA0B;;SAE9B;;SAGA,QAAQ;EAEf,QAAgB;;EAGhB;;;;;;;;;;EAcA,cAAc,OAAO,UAAU,KAAK;;;;;;;qBAkBzB,uBAAuB;;SAE3B;;SAGA,QAAQ;EAEf,QAAgB;;EAGhB;;;;;;;;;;EAcA,cAAc,OAAO,UAAU,KAAK;;;;;;;;;;;;;;;;;;;;;;;qBCnNzB,0BAA0B;;;SAE9B;;SAGA,QAAQ;;EAYf;;;;;;;;;;;;MAgBI,iBAAiB;;;;;;;MAUjB,cAAc,OAAO;;;;;;;;;;;;;;EAoBzB;;;;;;;;;EAgBA,cAAc,OAAO,UAAU,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;qBCxFzB;;WAEX;;WAEA;;WAEA;;WAEA;;WAEA;;WAEA;;WAEA;;WAEA;;WAEA;;;;;;;YAQU,6BAA6B,iCAAiC;;;;;;qBAO7D,2BAA2B,SAAS;;;;;;UAiBhC;;WAEN,UAAU;;WAEV;;WAEA;;;;;;;;;;;;;;;;;;;wBAoBK,eACd,MAAM,oBACN,iBACA,UAAU,wBACT;;;;;;;;;;;;;;;;;UCzFc;;WAEN,YAAY;;WAEZ;;;;;;;;;;;UAYM;;WAEN,QAAQ;;WAER,UAAU;;WAEV,OAAO;;WAEP,QAAQ;;WAER;;;;;;;UAQM;;WAEN,QAAQ;;WAER,UAAU;;WAEV,OAAO;;WAEP,QAAQ;;WAER;;WAEA;;;;;;;;;;;UCnDM;;WAEN,QAAQ;;EAEjB,WAAW;;EAEX,YAAY;;EAEZ,MAAM;;EAEN,WAAW;;EAEX,SAAS;;EAET,oBAAoB;;EAEpB,QAAQ;;EAER;;EAEA;;EAEA;;WAES,kBAAkB;;EAE3B;;WAES,iBAAiB;;EAE1B;;;;;;WAMS,iBAAiB;;EAE1B;;EAEA;;;;;EAKA;;WAES,aAAa;;EAEtB,aAAa;;;;;;;;;;;;;UCgBE;;WAEN,KAAK;;WAEL,UAAU;;WAEV,OAAO;;WAEP,UAAU;;;;;;;qBAQR;;;;;;qBAcA;;UAiEH;;WAEC,QAAQ;;WAER,OAAO;;WAEP,UAAU;;;;;;;cAiBR;;;;;;;;EAkGX,YAAY,SAAS;;;;;;MAoBjB,SAAS;;;;;;;MAUT;;;;;;;MAUA;;;;;;MASA,oBAAoB;;;;;;MASpB,YAAY;;;;;;EAShB,WAAW,SAAS;;;;;;EASpB,UAAU,QAAQ;;;;;;EAWlB,oBAAoB,WAAW;;;;;;EAS/B,kBAAkB,WAAW;;;;;;;EAU7B,aAAa,QAAQ,SAAS;;;;;;;EAU9B,SAAS,QAAQ,SAAS;;;;;;;;EAW1B,UAAU,UAAU,wBAAwB;;;;;;;EAU5C,OAAO,QAAQ;;;;;;;EAWf,WAAW,QAAQ,QAAQ,KAAK;;;;;;;EAahC,YAAY,QAAQ;;;;;;;EAWpB,kBAAkB,QAAQ,QAAQ,UAAU;;;;;;;EAa5C,mBAAmB,QAAQ,QAAQ;;;;;;;;EAcnC,SAAS,QAAQ,QAAQ,OAAO,UAAU,OAAO;;;;;;;;EAcjD,WAAW,QAAQ,QAAQ,SAAS,UAAU,OAAO;;;;;;;EAarD,UAAU,QAAQ,QAAQ;;;;;;;;EAc1B,SAAS,QAAQ,QAAQ,UAAU,UAAU;;;;;;;EAqB7C,mBAAmB,WAAW,uBAAuB,UAAU;;;;;EAQ/D;;;;;;;EAeA,KAAK;;;;;;;;;;;;;EAsCL;;;;;;EAqBA,YAAY;;EAiBZ;;;;;;;;;;;;;;;;cChoBW;;EAEX,SAAS;;;;;;;;;;UCyBM;;WAEN,OAAO;;;;;;;;UASD;;WAEN,UAAU;;WAEV;;;;;WAKA,OAAO;;;;;;;;;;;;;;;qBAgBL;;;;;;;;;;EAyBX,YAAY,MAAM,eAAe,UAAU;;;;;;MAUvC,WAAW;;;;;;MASX,QAAQ,OAAO;;;;;;MAUf,UAAU;;;;;;;;;;;EAcd,QACE,QAAQ,UACR,WAAW,UACX,sBACA,UAAU,iBACT;;;;;;;;;;;EA8BH,WACE,QAAQ,UACR,WAAW,UACX,sBACA,UAAU,0BACA;;;;;;;;;;EA0CZ,cAAc,QAAQ,UAAU,gBAAgB,UAAU,0BAA0B;;;;;;;;;;;EAcpF,WAAW,QAAQ,UAAU,MAAM,UAAU,mBAAsB,UAAU,0BAA0B;;;;;;;;;;;;EAqBvG,UACE,QAAQ,UACR,gBACA,WAAW,UACX,qBACA,UAAU,iBACT;;;;;;;;;;;;;;;;;;;;;;;EAmIH,iBAAiB,QAAQ,kBAAkB;;;;;;;;;;;;;;UClW5B;;;;;;;WAON,mBAAmB;;;YAIlB;;aAEC,WAAW;;;;;;;;;;;;;;;;qBAiBX,YAAY,UAAU,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;wBCvCxC,mBAAmB,SAAS,eAAe"}
|