melonjs 20.0.0 → 20.1.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/build/camera/effects/fade_effect.d.ts.map +1 -1
- package/build/camera/effects/mask_effect.d.ts.map +1 -1
- package/build/index.d.ts +1 -1
- package/build/index.d.ts.map +1 -1
- package/build/index.js +364 -36
- package/build/index.js.map +3 -3
- package/build/physics/adapter.d.ts +74 -0
- package/build/physics/adapter.d.ts.map +1 -1
- package/build/physics/builtin/body.d.ts +0 -9
- package/build/physics/builtin/body.d.ts.map +1 -1
- package/build/physics/builtin/detector.d.ts +174 -1
- package/build/physics/builtin/detector.d.ts.map +1 -1
- package/build/utils/utils.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -27,6 +27,80 @@ export type BodyType = "static" | "dynamic" | "kinematic";
|
|
|
27
27
|
* to the parts it is built from, so per-shape values are ignored there.
|
|
28
28
|
*/
|
|
29
29
|
export type BodyShape = Rect | Ellipse | Polygon;
|
|
30
|
+
/**
|
|
31
|
+
* One overlapping SHAPE pair, passed to the shape-level collision lifecycle
|
|
32
|
+
* hooks (`onShapeCollisionStart`, `onShapeCollisionActive`,
|
|
33
|
+
* `onShapeCollisionEnd`).
|
|
34
|
+
*
|
|
35
|
+
* **Why this exists alongside `CollisionResponse`.** A body may collide with
|
|
36
|
+
* another through several shapes at once. `onCollision` and the
|
|
37
|
+
* `onCollision*` lifecycle report ONE contact per body pair — the one chosen
|
|
38
|
+
* for physical resolution — so a footprint contact can mask a simultaneous
|
|
39
|
+
* hurtbox contact. These hooks report every overlapping pair, without changing
|
|
40
|
+
* which one resolves.
|
|
41
|
+
*
|
|
42
|
+
* **Opt-in.** The detector only enumerates shape pairs when an object declares
|
|
43
|
+
* at least one of these handlers. Declaring none costs nothing.
|
|
44
|
+
*
|
|
45
|
+
* **Supported on every backend.** The builtin detector enumerates shape pairs
|
|
46
|
+
* directly; `@melonjs/planck-adapter` and `@melonjs/matter-adapter` map one
|
|
47
|
+
* melonJS shape onto one native collider and their engines already report
|
|
48
|
+
* contacts per collider pair, so both dispatch these natively. The adapters
|
|
49
|
+
* supply `normal` and `depth` rather than the full SAT vector set, matching
|
|
50
|
+
* what they already provide to `onCollision`.
|
|
51
|
+
*
|
|
52
|
+
* **Receiver-symmetric**, exactly like `CollisionResponse`: `a` and `shapeA`
|
|
53
|
+
* are always the side whose handler is firing, `b` and `shapeB` the partner.
|
|
54
|
+
*
|
|
55
|
+
* **Do not retain it.** The object is pooled and reused across pairs and
|
|
56
|
+
* frames. Copy anything needed beyond the handler call.
|
|
57
|
+
* @example
|
|
58
|
+
* onShapeCollisionStart(contact, other) {
|
|
59
|
+
* // which of MY shapes was hit
|
|
60
|
+
* if (contact.indexShapeA === HURTBOX && contact.isTrigger) {
|
|
61
|
+
* this.takeHit(other, contact.normal);
|
|
62
|
+
* }
|
|
63
|
+
* }
|
|
64
|
+
*/
|
|
65
|
+
export interface ShapeCollisionContact {
|
|
66
|
+
/** the renderable whose handler is firing — always `=== this`. */
|
|
67
|
+
a: Renderable;
|
|
68
|
+
/** the partner renderable — always `=== other`. */
|
|
69
|
+
b: Renderable;
|
|
70
|
+
/** the receiver's own shape in this contact. */
|
|
71
|
+
shapeA: BodyShape;
|
|
72
|
+
/** the partner's shape in this contact. */
|
|
73
|
+
shapeB: BodyShape;
|
|
74
|
+
/** index of `shapeA` in the receiver's `body.shapes`. */
|
|
75
|
+
indexShapeA: number;
|
|
76
|
+
/** index of `shapeB` in the partner's `body.shapes`. */
|
|
77
|
+
indexShapeB: number;
|
|
78
|
+
/** true when either shape is a trigger, so the pair contributes no push-out. */
|
|
79
|
+
isTrigger: boolean;
|
|
80
|
+
/** penetration depth. Zero in `onShapeCollisionEnd`, where the shapes have separated. */
|
|
81
|
+
overlap: number;
|
|
82
|
+
/** alias of `overlap`. */
|
|
83
|
+
depth: number;
|
|
84
|
+
/** minimum translation vector for the receiver. */
|
|
85
|
+
overlapV: {
|
|
86
|
+
x: number;
|
|
87
|
+
y: number;
|
|
88
|
+
};
|
|
89
|
+
/** contact normal in the legacy `overlapN` convention. */
|
|
90
|
+
overlapN: {
|
|
91
|
+
x: number;
|
|
92
|
+
y: number;
|
|
93
|
+
};
|
|
94
|
+
/** contact normal oriented for the receiver. */
|
|
95
|
+
normal: {
|
|
96
|
+
x: number;
|
|
97
|
+
y: number;
|
|
98
|
+
};
|
|
99
|
+
/** Z components, non-zero only for a `Box3d` pair that resolved along Z. */
|
|
100
|
+
overlapZ: number;
|
|
101
|
+
overlapNZ: number;
|
|
102
|
+
normalZ: number;
|
|
103
|
+
}
|
|
30
104
|
/**
|
|
31
105
|
* Collision response passed to the modern collision lifecycle hooks
|
|
32
106
|
* (`onCollisionStart`, `onCollisionActive`, `onCollisionEnd`) on every
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../../src/physics/adapter.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../../src/physics/adapter.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,12 +1,3 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @import Entity from "../../renderable/entity/entity.js";
|
|
3
|
-
* @import Container from "../../renderable/container.js";
|
|
4
|
-
* @import Renderable from "../../renderable/renderable.js";
|
|
5
|
-
* @import Sprite from "../../renderable/sprite.js";
|
|
6
|
-
* @import NineSliceSprite from "../../renderable/nineslicesprite.js";
|
|
7
|
-
* @import {Vector2d} from "../../math/vector2d.js";
|
|
8
|
-
* @import ResponseObject from "../response.js";
|
|
9
|
-
**/
|
|
10
1
|
/**
|
|
11
2
|
* a Generic Physic Body Object with some physic properties and behavior functionality, to add as a member of a Renderable.
|
|
12
3
|
* @category Physics
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"body.d.ts","sourceRoot":"","sources":["../../../src/physics/builtin/body.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"body.d.ts","sourceRoot":"","sources":["../../../src/physics/builtin/body.js"],"names":[],"mappings":"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"}
|
|
@@ -66,6 +66,59 @@ declare class Detector {
|
|
|
66
66
|
indexShapeB: number;
|
|
67
67
|
isTriggerContact: boolean;
|
|
68
68
|
}[];
|
|
69
|
+
/**
|
|
70
|
+
* Shape-pair contacts that were overlapping in the previous step (#1596).
|
|
71
|
+
* Keyed by `_shapePairKey`, diffed against `_frameShapeSeen` in
|
|
72
|
+
* `endFrame()` to fire `onShapeCollisionEnd`. Populated only when someone
|
|
73
|
+
* subscribes, so a game that does not use the feature keeps these empty.
|
|
74
|
+
* @ignore
|
|
75
|
+
*/
|
|
76
|
+
_activeShapePairs: Map<any, any>;
|
|
77
|
+
/** @ignore */
|
|
78
|
+
_frameShapeSeen: Map<any, any>;
|
|
79
|
+
/**
|
|
80
|
+
* Two-slot pool of receiver-symmetric shape-contact views, mirroring
|
|
81
|
+
* `_symViews`: `a` is the receiver, `b` the partner, and `shapeA` /
|
|
82
|
+
* `indexShapeA` are always the RECEIVER's shape. Two slots because both
|
|
83
|
+
* sides may be live at once when a handler mutates the world.
|
|
84
|
+
* @ignore
|
|
85
|
+
*/
|
|
86
|
+
_shapeViews: {
|
|
87
|
+
a: null;
|
|
88
|
+
b: null;
|
|
89
|
+
shapeA: null;
|
|
90
|
+
shapeB: null;
|
|
91
|
+
overlap: number;
|
|
92
|
+
overlapN: {
|
|
93
|
+
x: number;
|
|
94
|
+
y: number;
|
|
95
|
+
};
|
|
96
|
+
overlapV: {
|
|
97
|
+
x: number;
|
|
98
|
+
y: number;
|
|
99
|
+
};
|
|
100
|
+
normal: {
|
|
101
|
+
x: number;
|
|
102
|
+
y: number;
|
|
103
|
+
};
|
|
104
|
+
depth: number;
|
|
105
|
+
overlapNZ: number;
|
|
106
|
+
overlapZ: number;
|
|
107
|
+
normalZ: number;
|
|
108
|
+
indexShapeA: number;
|
|
109
|
+
indexShapeB: number;
|
|
110
|
+
isTrigger: boolean;
|
|
111
|
+
}[];
|
|
112
|
+
/**
|
|
113
|
+
* The pair currently being enumerated, so the contact callback can be a
|
|
114
|
+
* single pre-bound function rather than a closure allocated per body pair
|
|
115
|
+
* per frame.
|
|
116
|
+
* @ignore
|
|
117
|
+
*/
|
|
118
|
+
_contactObjA: Container | Renderable | Entity | Sprite | NineSliceSprite | null;
|
|
119
|
+
_contactObjB: any;
|
|
120
|
+
/** @ignore */
|
|
121
|
+
_onShapeContact: (shapeA: any, indexA: any, shapeB: any, indexB: any, isTrigger: any, res: any) => void;
|
|
69
122
|
/**
|
|
70
123
|
* Populate one of the pooled symmetric views from a SAT response.
|
|
71
124
|
* `flip=false` builds the view for `response.a`'s side (legacy
|
|
@@ -114,6 +167,38 @@ declare class Detector {
|
|
|
114
167
|
* @ignore
|
|
115
168
|
*/
|
|
116
169
|
endFrame(): void;
|
|
170
|
+
/**
|
|
171
|
+
* Identity-only shape-contact view for `onShapeCollisionEnd`: the shapes
|
|
172
|
+
* have separated, so every geometric field is zeroed rather than left
|
|
173
|
+
* holding the last overlap, which would read as a live contact.
|
|
174
|
+
* @ignore
|
|
175
|
+
*/
|
|
176
|
+
_fillEndedView(slot: any, receiver: any, partner: any, ownShape: any, otherShape: any): {
|
|
177
|
+
a: null;
|
|
178
|
+
b: null;
|
|
179
|
+
shapeA: null;
|
|
180
|
+
shapeB: null;
|
|
181
|
+
overlap: number;
|
|
182
|
+
overlapN: {
|
|
183
|
+
x: number;
|
|
184
|
+
y: number;
|
|
185
|
+
};
|
|
186
|
+
overlapV: {
|
|
187
|
+
x: number;
|
|
188
|
+
y: number;
|
|
189
|
+
};
|
|
190
|
+
normal: {
|
|
191
|
+
x: number;
|
|
192
|
+
y: number;
|
|
193
|
+
};
|
|
194
|
+
depth: number;
|
|
195
|
+
overlapNZ: number;
|
|
196
|
+
overlapZ: number;
|
|
197
|
+
normalZ: number;
|
|
198
|
+
indexShapeA: number;
|
|
199
|
+
indexShapeB: number;
|
|
200
|
+
isTrigger: boolean;
|
|
201
|
+
};
|
|
117
202
|
/**
|
|
118
203
|
* Build a stable order-independent key for a pair of renderables,
|
|
119
204
|
* using their GUID. Returns undefined if either lacks a GUID (defensive
|
|
@@ -121,6 +206,94 @@ declare class Detector {
|
|
|
121
206
|
* @ignore
|
|
122
207
|
*/
|
|
123
208
|
_pairKey(a: any, b: any): string | undefined;
|
|
209
|
+
/**
|
|
210
|
+
* Re-run the narrowphase for a remembered shape pair and repopulate
|
|
211
|
+
* `response` from it.
|
|
212
|
+
*
|
|
213
|
+
* The scan clears `response` on every test, so whichever pair won has to be
|
|
214
|
+
* measured again before handlers and the solver read it. Indices are looked
|
|
215
|
+
* up here rather than carried from the scan because an enumeration handler
|
|
216
|
+
* may have mutated either body in between: `removeShape()` re-indexes, and
|
|
217
|
+
* `destroy()` empties the array outright. A shape that is no longer on its
|
|
218
|
+
* body has no contact left to resolve, so this reports failure and the
|
|
219
|
+
* caller falls through instead of throwing.
|
|
220
|
+
* @ignore
|
|
221
|
+
* @returns {boolean} true when the pair was re-measured
|
|
222
|
+
*/
|
|
223
|
+
_retest(bodyA: any, bodyB: any, shapeA: any, shapeB: any, response: any): boolean;
|
|
224
|
+
/**
|
|
225
|
+
* Stable, order-independent key for one SHAPE pair (#1596).
|
|
226
|
+
*
|
|
227
|
+
* The renderable GUIDs order the pair, exactly as `_pairKey` does, and the
|
|
228
|
+
* two shape ids MUST swap alongside them: keying `guidA|guidB|idA|idB`
|
|
229
|
+
* without that swap gives the same physical contact two different keys
|
|
230
|
+
* depending on which object the outer loop visited first, and the contact
|
|
231
|
+
* would then End and Start every step.
|
|
232
|
+
*
|
|
233
|
+
* Shape identity is `_contactId`, stamped once in `Body#addShape` and never
|
|
234
|
+
* derived from array position, because `removeShape()` re-indexes every
|
|
235
|
+
* surviving shape.
|
|
236
|
+
* @ignore
|
|
237
|
+
*/
|
|
238
|
+
_shapePairKey(a: any, b: any, shapeA: any, shapeB: any): string | undefined;
|
|
239
|
+
/**
|
|
240
|
+
* True when an object subscribes to any shape-contact event.
|
|
241
|
+
*
|
|
242
|
+
* This is the opt-in gate: `collides()` only runs the full M x N scan when
|
|
243
|
+
* this returns true for one of the two objects, so an application that
|
|
244
|
+
* never declares these handlers performs exactly the narrowphase work it
|
|
245
|
+
* did before the feature existed.
|
|
246
|
+
* @ignore
|
|
247
|
+
*/
|
|
248
|
+
_wantsShapeContacts(obj: any): boolean;
|
|
249
|
+
/**
|
|
250
|
+
* Populate a pooled shape-contact view, same flip convention as
|
|
251
|
+
* `_fillSymView`: `flip=false` builds the view for `response.a`'s side,
|
|
252
|
+
* `flip=true` for `response.b`'s, so `shapeA` is always the receiver's.
|
|
253
|
+
* @ignore
|
|
254
|
+
*/
|
|
255
|
+
_fillShapeView(slot: any, satResponse: any, flip: any, shapeA: any, shapeB: any, isTrigger: any): {
|
|
256
|
+
a: null;
|
|
257
|
+
b: null;
|
|
258
|
+
shapeA: null;
|
|
259
|
+
shapeB: null;
|
|
260
|
+
overlap: number;
|
|
261
|
+
overlapN: {
|
|
262
|
+
x: number;
|
|
263
|
+
y: number;
|
|
264
|
+
};
|
|
265
|
+
overlapV: {
|
|
266
|
+
x: number;
|
|
267
|
+
y: number;
|
|
268
|
+
};
|
|
269
|
+
normal: {
|
|
270
|
+
x: number;
|
|
271
|
+
y: number;
|
|
272
|
+
};
|
|
273
|
+
depth: number;
|
|
274
|
+
overlapNZ: number;
|
|
275
|
+
overlapZ: number;
|
|
276
|
+
normalZ: number;
|
|
277
|
+
indexShapeA: number;
|
|
278
|
+
indexShapeB: number;
|
|
279
|
+
isTrigger: boolean;
|
|
280
|
+
};
|
|
281
|
+
/**
|
|
282
|
+
* Fire Start / Active for one overlapping shape pair. Called back from
|
|
283
|
+
* `collides()` once per pair, in scan order.
|
|
284
|
+
* @ignore
|
|
285
|
+
*/
|
|
286
|
+
_dispatchShapeContact(shapeA: any, shapeB: any, isTrigger: any, response: any): void;
|
|
287
|
+
/**
|
|
288
|
+
* Drop the references the enumeration callback reads.
|
|
289
|
+
*
|
|
290
|
+
* They are plain fields rather than a per-pair closure so the hot path
|
|
291
|
+
* allocates nothing, which means they outlive the pair unless cleared, and
|
|
292
|
+
* would hold two renderables (and everything they reach) against garbage
|
|
293
|
+
* collection until the next subscribed pair happened to overwrite them.
|
|
294
|
+
* @ignore
|
|
295
|
+
*/
|
|
296
|
+
_clearContactPair(): void;
|
|
124
297
|
/**
|
|
125
298
|
* determine if two objects should collide (based on both respective objects body collision mask and type).<br>
|
|
126
299
|
* you can redefine this function if you need any specific rules over what should collide with what.
|
|
@@ -135,7 +308,7 @@ declare class Detector {
|
|
|
135
308
|
* @param {Body} bodyB - a reference to body B.
|
|
136
309
|
* @returns {boolean} true if colliding
|
|
137
310
|
*/
|
|
138
|
-
collides(bodyA: Body, bodyB: Body, response?: ResponseObject): boolean;
|
|
311
|
+
collides(bodyA: Body, bodyB: Body, response?: ResponseObject, onContact?: undefined): boolean;
|
|
139
312
|
/**
|
|
140
313
|
* find all the collisions for the specified object using a broadphase algorithm
|
|
141
314
|
* @ignore
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"detector.d.ts","sourceRoot":"","sources":["../../../src/physics/builtin/detector.js"],"names":[],"mappings":";AAyEA;;GAEG;AACH;IACC;;OAEG;IACH,mBAFW,SAAS,
|
|
1
|
+
{"version":3,"file":"detector.d.ts","sourceRoot":"","sources":["../../../src/physics/builtin/detector.js"],"names":[],"mappings":";AAyEA;;GAEG;AACH;IACC;;OAEG;IACH,mBAFW,SAAS,EA2JnB;IAvJA,iBAAkB;IAElB;;;;OAIG;IACH,UAFU,cAAc,CAEY;IAEpC;;;;;OAKG;IACH,4BAA6B;IAC7B;;;;OAIG;IACH,0BAA2B;IAC3B;;;;;;;;;;;;;;OAcG;IACH;;;;;;;;;;;;;;;;;;;;;;;QAsCC;IAED;;;;;;OAMG;IACH,iCAAkC;IAClC,cAAc;IACd,+BAAgC;IAEhC;;;;;;OAMG;IACH;;;;;;;;;;;;;;;;;;;;;;;;;QAmCC;IAED;;;;;OAKG;IACH,gFAAwB;IACxB,kBAAwB;IACxB,cAAc;IACd,wGASC;IAGF;;;;;;;;OAQG;IACH;;;;;;;;;;;;;;;;;;;;;;;MA0CC;IAED;;;;;OAKG;IACH,mBAGC;IAED;;;;;;OAMG;IACH,iBA0DC;IAED;;;;;OAKG;IACH;;;;;;;;;;;;;;;;;;;;;;;;;MAsBC;IAED;;;;;OAKG;IACH,6CAOC;IAED;;;;;;;;;;;;;OAaG;IACH,0EAFa,OAAO,CAuBnB;IAED;;;;;;;;;;;;;OAaG;IACH,4EAqBC;IAED;;;;;;;;OAQG;IACH,uCAMC;IAED;;;;;OAKG;IACH;;;;;;;;;;;;;;;;;;;;;;;;;MA2CC;IAED;;;;OAIG;IACH,qFAyCC;IAED;;;;;;;;OAQG;IACH,0BAGC;IAED;;;;;;OAMG;IACH,iBAJW,UAAU,GAAC,SAAS,GAAC,MAAM,GAAC,MAAM,GAAC,eAAe,KAClD,UAAU,GAAC,SAAS,GAAC,MAAM,GAAC,MAAM,GAAC,eAAe,GAChD,OAAO,CAiBnB;IAED;;;;;OAKG;IACH,gBAJW,IAAI,SACJ,IAAI,qDACF,OAAO,CAyJnB;IAED;;;;;OAKG;IACH,iBAHW,UAAU,GAAC,SAAS,GAAC,MAAM,GAAC,MAAM,GAAC,eAAe,GAChD,OAAO,CA0PnB;IAED;;;;;;;;;;;;;;;;;;;;;;;OAuBG;IACH,cArBW,IAAI,WACJ,KAAK,CAAE,UAAU,CAAC,GAChB,KAAK,CAAE,UAAU,CAAC,CAqC9B;CACD;2BA3gCyB,+BAA+B;2BA7D9B,gBAAgB;4BA8DhB,gCAAgC;wBAFpC,mCAAmC;wBAGnC,4BAA4B;iCACnB,qCAAqC;0BAC9C,0BAA0B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/utils/utils.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,KAAK,MAAM,YAAY,CAAC;AACpC,OAAO,KAAK,KAAK,MAAM,YAAY,CAAC;AACpC,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,KAAK,QAAQ,MAAM,eAAe,CAAC;AAC1C,OAAO,KAAK,MAAM,MAAM,aAAa,CAAC;AAWtC;;;;;;;;;;;GAWG;AACH,wBAAgB,YAAY,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,cAalD;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,cAAc,CAAC,GAAG,CAAC,EAAE,MAAM,oCA2C1C;AAED;;;;;GAKG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,SAAI,QAIhD;AAED;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,KAAK,
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/utils/utils.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,KAAK,MAAM,YAAY,CAAC;AACpC,OAAO,KAAK,KAAK,MAAM,YAAY,CAAC;AACpC,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,KAAK,QAAQ,MAAM,eAAe,CAAC;AAC1C,OAAO,KAAK,MAAM,MAAM,aAAa,CAAC;AAWtC;;;;;;;;;;;GAWG;AACH,wBAAgB,YAAY,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,cAalD;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,cAAc,CAAC,GAAG,CAAC,EAAE,MAAM,oCA2C1C;AAED;;;;;GAKG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,SAAI,QAIhD;AAED;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,KAAK,CAAC,EAAE,MAAM,UAuBxC;AAED,eAAO,MAAM,aAAa,GAAI,OAAO,OAAO,KAAG,KAAK,IAAI,MAAM,EAO7D,CAAC"}
|