@4bitlabs/sci0 2.1.1 → 2.3.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/README.md +24 -18
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -2
- package/dist/index.js.map +1 -1
- package/dist/models/view.d.ts +10 -3
- package/dist/models/view.d.ts.map +1 -1
- package/dist/parsers/view.d.ts.map +1 -1
- package/dist/parsers/view.js +12 -5
- package/dist/parsers/view.js.map +1 -1
- package/dist/screen/index.d.ts +1 -1
- package/dist/screen/index.d.ts.map +1 -1
- package/dist/screen/index.js +3 -3
- package/dist/screen/index.js.map +1 -1
- package/dist/screen/loop-padding-filter.d.ts +5 -0
- package/dist/screen/loop-padding-filter.d.ts.map +1 -0
- package/dist/screen/loop-padding-filter.js +34 -0
- package/dist/screen/loop-padding-filter.js.map +1 -0
- package/dist/screen/loop-render-filter.d.ts.map +1 -1
- package/dist/screen/loop-render-filter.js +1 -2
- package/dist/screen/loop-render-filter.js.map +1 -1
- package/dist/screen/render-pic.d.ts +1 -6
- package/dist/screen/render-pic.d.ts.map +1 -1
- package/dist/screen/render-pic.js +11 -36
- package/dist/screen/render-pic.js.map +1 -1
- package/dist/screen/render-result.d.ts +8 -0
- package/dist/screen/render-result.d.ts.map +1 -0
- package/dist/screen/render-result.js +3 -0
- package/dist/screen/render-result.js.map +1 -0
- package/dist/screen/sci0-screen-impl.d.ts +2 -2
- package/dist/screen/sci0-screen-impl.d.ts.map +1 -1
- package/dist/screen/sci0-screen-impl.js +18 -18
- package/dist/screen/sci0-screen-impl.js.map +1 -1
- package/dist/screen/screen-buffer.d.ts +2 -3
- package/dist/screen/screen-buffer.d.ts.map +1 -1
- package/dist/screen/screen-buffer.js +53 -14
- package/dist/screen/screen-buffer.js.map +1 -1
- package/dist/screen/screen.d.ts +8 -6
- package/dist/screen/screen.d.ts.map +1 -1
- package/package.json +5 -5
- package/dist/.tscache +0 -1
package/README.md
CHANGED
|
@@ -1,6 +1,27 @@
|
|
|
1
|
-
#
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
# @4bitlabs/sci0 [![License][license]][npm] [![NPM Version][version]][npm] ![Size][size] [![NPM Downloads][dl]][npm]
|
|
2
|
+
|
|
3
|
+
[npm]: https://www.npmjs.com/package/@4bitlabs/sci0
|
|
4
|
+
[version]: https://img.shields.io/npm/v/%404bitlabs%2Fsci0
|
|
5
|
+
[license]: https://img.shields.io/npm/l/%404bitlabs%2Fsci0
|
|
6
|
+
[dl]: https://img.shields.io/npm/dy/%404bitlabs%2Fsci0
|
|
7
|
+
[size]: https://img.shields.io/bundlephobia/min/%404bitlabs/sci0
|
|
8
|
+
|
|
9
|
+
Library for parsing and rendering assets from [Sierra On-line's][sierra] [<abbr title="Sierra Creative Interpreter">SCI</abbr>-engine][sci0].
|
|
10
|
+
|
|
11
|
+
## Supported SCI0 resource types
|
|
12
|
+
|
|
13
|
+
| Type | Extract | Parse/Render | Write |
|
|
14
|
+
| ------ | :-----: | :----------: | :---: |
|
|
15
|
+
| View | ✅ | ✅ | ❌ |
|
|
16
|
+
| Pic | ✅ | ✅ | ❌ |
|
|
17
|
+
| Script | ✅ | ❌ | ❌ |
|
|
18
|
+
| Text | ✅ | ✅ | ❌ |
|
|
19
|
+
| Sound | ✅ | ❌ | ❌ |
|
|
20
|
+
| Memory | ✅ | ❌ | ❌ |
|
|
21
|
+
| Vocab | ✅ | ❌ | ❌ |
|
|
22
|
+
| Font | ✅ | ✅ | ❌ |
|
|
23
|
+
| Cursor | ✅ | ✅ | ❌ |
|
|
24
|
+
| Patch | ✅ | ❌ | ❌ |
|
|
4
25
|
|
|
5
26
|
## Parse `RESOURCE.MAP` file
|
|
6
27
|
|
|
@@ -70,20 +91,5 @@ const image = renderPixelData(visible, {
|
|
|
70
91
|
});
|
|
71
92
|
```
|
|
72
93
|
|
|
73
|
-
## Supported Resource Types
|
|
74
|
-
|
|
75
|
-
| ID | Type | Read | Write |
|
|
76
|
-
| :-: | ------ | :--: | :---: |
|
|
77
|
-
| `0` | View | ✅ | |
|
|
78
|
-
| `1` | Pic | ✅ | |
|
|
79
|
-
| `2` | Script | ❌ | |
|
|
80
|
-
| `3` | Text | ✅ | |
|
|
81
|
-
| `4` | Sound | ❌ | |
|
|
82
|
-
| `5` | Memory | ❌ | |
|
|
83
|
-
| `6` | Vocab | ❌ | |
|
|
84
|
-
| `7` | Font | ✅ | |
|
|
85
|
-
| `8` | Cursor | ✅ | |
|
|
86
|
-
| `9` | Patch | ❌ | |
|
|
87
|
-
|
|
88
94
|
[sierra]: https://en.wikipedia.org/wiki/Sierra_Entertainment
|
|
89
95
|
[sci0]: http://sciwiki.sierrahelp.com/index.php/Sierra_Creative_Interpreter
|
package/dist/index.d.ts
CHANGED
|
@@ -4,7 +4,7 @@ export type { ResourceType } from './models/resource-type';
|
|
|
4
4
|
export type { DrawCommand } from './models/draw-command';
|
|
5
5
|
export { getResourceNumber, getResourceType, getResourceIdStr, getResourceTypeStr, isResourceType, isResourceNumber, } from './models/resource-id';
|
|
6
6
|
export { ResourceTypes } from './models/resource-type';
|
|
7
|
-
export { renderPic,
|
|
7
|
+
export { renderPic, loopPaddingFilter } from './screen';
|
|
8
8
|
export { parseAll as parseAllMappings, consume as consumeNextMappingChunk, } from './parsers/mapping';
|
|
9
9
|
export { getPayloadLength, parseHeaderFrom } from './parsers/resource-header';
|
|
10
10
|
export { decompress } from './parsers/compression';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC/D,YAAY,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACzD,YAAY,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAC3D,YAAY,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAEzD,OAAO,EACL,iBAAiB,EACjB,eAAe,EACf,gBAAgB,EAChB,kBAAkB,EAClB,cAAc,EACd,gBAAgB,GACjB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAEvD,OAAO,EAAE,SAAS,EAAE,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC/D,YAAY,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACzD,YAAY,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAC3D,YAAY,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAEzD,OAAO,EACL,iBAAiB,EACjB,eAAe,EACf,gBAAgB,EAChB,kBAAkB,EAClB,cAAc,EACd,gBAAgB,GACjB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAEvD,OAAO,EAAE,SAAS,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAExD,OAAO,EACL,QAAQ,IAAI,gBAAgB,EAC5B,OAAO,IAAI,uBAAuB,GACnC,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC9E,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,EAAE,SAAS,IAAI,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC5D,OAAO,EAAE,SAAS,IAAI,SAAS,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,EAAE,SAAS,IAAI,SAAS,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,EAAE,SAAS,IAAI,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEtD,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC;AAEvD,OAAO,EAAE,KAAK,IAAI,EAAE,MAAM,eAAe,CAAC;AAC1C,OAAO,EAAE,KAAK,GAAG,EAAE,MAAM,cAAc,CAAC;AAExC,4CAA4C;AAC5C,eAAO,MAAM,MAAM;;CAElB,CAAC;AAEF,0CAA0C;AAC1C,eAAO,MAAM,IAAI;;CAEhB,CAAC;AAEF,0CAA0C;AAC1C,eAAO,MAAM,IAAI;;CAEhB,CAAC;AAEF,yCAAyC;AACzC,eAAO,MAAM,GAAG;;CAEf,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.Pic = exports.View = exports.Font = exports.Cursor = exports.parsePic = exports.parseView = exports.parseFont = exports.parseCursor = exports.decompress = exports.parseHeaderFrom = exports.getPayloadLength = exports.consumeNextMappingChunk = exports.parseAllMappings = exports.
|
|
3
|
+
exports.Pic = exports.View = exports.Font = exports.Cursor = exports.parsePic = exports.parseView = exports.parseFont = exports.parseCursor = exports.decompress = exports.parseHeaderFrom = exports.getPayloadLength = exports.consumeNextMappingChunk = exports.parseAllMappings = exports.loopPaddingFilter = exports.renderPic = exports.ResourceTypes = exports.isResourceNumber = exports.isResourceType = exports.getResourceTypeStr = exports.getResourceIdStr = exports.getResourceType = exports.getResourceNumber = void 0;
|
|
4
4
|
var resource_id_1 = require("./models/resource-id");
|
|
5
5
|
Object.defineProperty(exports, "getResourceNumber", { enumerable: true, get: function () { return resource_id_1.getResourceNumber; } });
|
|
6
6
|
Object.defineProperty(exports, "getResourceType", { enumerable: true, get: function () { return resource_id_1.getResourceType; } });
|
|
@@ -12,7 +12,7 @@ var resource_type_1 = require("./models/resource-type");
|
|
|
12
12
|
Object.defineProperty(exports, "ResourceTypes", { enumerable: true, get: function () { return resource_type_1.ResourceTypes; } });
|
|
13
13
|
var screen_1 = require("./screen");
|
|
14
14
|
Object.defineProperty(exports, "renderPic", { enumerable: true, get: function () { return screen_1.renderPic; } });
|
|
15
|
-
Object.defineProperty(exports, "
|
|
15
|
+
Object.defineProperty(exports, "loopPaddingFilter", { enumerable: true, get: function () { return screen_1.loopPaddingFilter; } });
|
|
16
16
|
var mapping_1 = require("./parsers/mapping");
|
|
17
17
|
Object.defineProperty(exports, "parseAllMappings", { enumerable: true, get: function () { return mapping_1.parseAll; } });
|
|
18
18
|
Object.defineProperty(exports, "consumeNextMappingChunk", { enumerable: true, get: function () { return mapping_1.consume; } });
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAKA,oDAO8B;AAN5B,gHAAA,iBAAiB,OAAA;AACjB,8GAAA,eAAe,OAAA;AACf,+GAAA,gBAAgB,OAAA;AAChB,iHAAA,kBAAkB,OAAA;AAClB,6GAAA,cAAc,OAAA;AACd,+GAAA,gBAAgB,OAAA;AAElB,wDAAuD;AAA9C,8GAAA,aAAa,OAAA;AAEtB,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAKA,oDAO8B;AAN5B,gHAAA,iBAAiB,OAAA;AACjB,8GAAA,eAAe,OAAA;AACf,+GAAA,gBAAgB,OAAA;AAChB,iHAAA,kBAAkB,OAAA;AAClB,6GAAA,cAAc,OAAA;AACd,+GAAA,gBAAgB,OAAA;AAElB,wDAAuD;AAA9C,8GAAA,aAAa,OAAA;AAEtB,mCAAwD;AAA/C,mGAAA,SAAS,OAAA;AAAE,2GAAA,iBAAiB,OAAA;AAErC,6CAG2B;AAFzB,2GAAA,QAAQ,OAAoB;AAC5B,kHAAA,OAAO,OAA2B;AAEpC,6DAA8E;AAArE,mHAAA,gBAAgB,OAAA;AAAE,kHAAA,eAAe,OAAA;AAC1C,qDAAmD;AAA1C,yGAAA,UAAU,OAAA;AACnB,6CAA4D;AAKnD,4FALa,kBAAW,OAKb;AAJpB,yCAAwD;AAIlC,0FAJA,gBAAS,OAIA;AAH/B,yCAAwD;AAGvB,0FAHX,gBAAS,OAGW;AAF1C,uCAAsD;AAEV,yFAFtB,eAAQ,OAEsB;AAKpD,4CAA4C;AAC/B,QAAA,MAAM,GAAG;IACpB,SAAS,EAAE,kBAAW;CACvB,CAAC;AAEF,0CAA0C;AAC7B,QAAA,IAAI,GAAG;IAClB,SAAS,EAAE,gBAAS;CACrB,CAAC;AAEF,0CAA0C;AAC7B,QAAA,IAAI,GAAG;IAClB,SAAS,EAAE,gBAAS;CACrB,CAAC;AAEF,yCAAyC;AAC5B,QAAA,GAAG,GAAG;IACjB,SAAS,EAAE,eAAQ;CACpB,CAAC"}
|
package/dist/models/view.d.ts
CHANGED
|
@@ -1,8 +1,15 @@
|
|
|
1
1
|
import { Cel } from './cel';
|
|
2
2
|
export interface Loop {
|
|
3
|
-
frames: Cel[];
|
|
4
|
-
isMirrored: boolean;
|
|
5
|
-
bounds:
|
|
3
|
+
readonly frames: Cel[];
|
|
4
|
+
readonly isMirrored: boolean;
|
|
5
|
+
readonly bounds: {
|
|
6
|
+
readonly left: number;
|
|
7
|
+
readonly top: number;
|
|
8
|
+
readonly right: number;
|
|
9
|
+
readonly bottom: number;
|
|
10
|
+
readonly width: number;
|
|
11
|
+
readonly height: number;
|
|
12
|
+
};
|
|
6
13
|
}
|
|
7
14
|
export type View = Loop[];
|
|
8
15
|
//# sourceMappingURL=view.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"view.d.ts","sourceRoot":"","sources":["../../src/models/view.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAE5B,MAAM,WAAW,IAAI;IACnB,MAAM,EAAE,GAAG,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"view.d.ts","sourceRoot":"","sources":["../../src/models/view.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAE5B,MAAM,WAAW,IAAI;IACnB,QAAQ,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC;IACvB,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;IAC7B,QAAQ,CAAC,MAAM,EAAE;QACf,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;QACtB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;QACrB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;QACvB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;QACxB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;QACvB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;KACzB,CAAC;CACH;AAED,MAAM,MAAM,IAAI,GAAG,IAAI,EAAE,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"view.d.ts","sourceRoot":"","sources":["../../src/parsers/view.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,IAAI,EAAa,MAAM,gBAAgB,CAAC;AAItD,eAAO,MAAM,SAAS,WAAY,UAAU,
|
|
1
|
+
{"version":3,"file":"view.d.ts","sourceRoot":"","sources":["../../src/parsers/view.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,IAAI,EAAa,MAAM,gBAAgB,CAAC;AAItD,eAAO,MAAM,SAAS,WAAY,UAAU,SAyD3C,CAAC"}
|
package/dist/parsers/view.js
CHANGED
|
@@ -17,19 +17,26 @@ const parseFrom = (source) => {
|
|
|
17
17
|
const frameView = new DataView(source.buffer, source.byteOffset + frameOffset);
|
|
18
18
|
return (0, cel_1.parseCel)(frameView);
|
|
19
19
|
});
|
|
20
|
-
const
|
|
21
|
-
const
|
|
20
|
+
const [left, top, right, bottom] = frames.reduce(([x0, y0, x1, y1], { width, height, dx, dy }) => {
|
|
21
|
+
const fLeft = -(width >>> 1);
|
|
22
22
|
return [
|
|
23
|
-
Math.min(x0,
|
|
23
|
+
Math.min(x0, fLeft + dx),
|
|
24
24
|
Math.min(y0, -height + dy),
|
|
25
|
-
Math.max(x1,
|
|
25
|
+
Math.max(x1, fLeft + width + dx),
|
|
26
26
|
Math.max(y1, dy),
|
|
27
27
|
];
|
|
28
28
|
}, [0, 0, 0, 0]);
|
|
29
29
|
return {
|
|
30
30
|
frames,
|
|
31
31
|
isMirrored,
|
|
32
|
-
bounds
|
|
32
|
+
bounds: {
|
|
33
|
+
left,
|
|
34
|
+
top,
|
|
35
|
+
right,
|
|
36
|
+
bottom,
|
|
37
|
+
width: right - left,
|
|
38
|
+
height: bottom - top,
|
|
39
|
+
},
|
|
33
40
|
};
|
|
34
41
|
});
|
|
35
42
|
};
|
package/dist/parsers/view.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"view.js","sourceRoot":"","sources":["../../src/parsers/view.ts"],"names":[],"mappings":";;;AACA,+BAAiC;AACjC,4CAAyC;AAElC,MAAM,SAAS,GAAG,CAAC,MAAkB,EAAQ,EAAE;IACpD,MAAM,IAAI,GAAG,IAAI,QAAQ,CACvB,MAAM,CAAC,MAAM,EACb,MAAM,CAAC,UAAU,EACjB,MAAM,CAAC,UAAU,CAClB,CAAC;IAEF,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;IAC3C,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;IAEzC,OAAO,IAAA,eAAM,EAAO,UAAU,EAAE,CAAC,QAAQ,EAAE,EAAE;QAC3C,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,GAAG,QAAQ,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC;QAE3D,MAAM,SAAS,GAAG,IAAI,QAAQ,CAC5B,MAAM,CAAC,MAAM,EACb,MAAM,CAAC,UAAU,GAAG,WAAW,CAChC,CAAC;QACF,MAAM,UAAU,GAAG,SAAS,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;QAChD,MAAM,UAAU,GAAG,CAAC,QAAQ,GAAG,CAAC,CAAC,IAAI,QAAQ,CAAC,CAAC,KAAK,CAAC,CAAC;QAEtD,MAAM,MAAM,GAAG,IAAA,eAAM,EAAC,UAAU,EAAE,CAAC,QAAQ,EAAE,EAAE;YAC7C,MAAM,WAAW,GAAG,SAAS,CAAC,SAAS,CAAC,QAAQ,GAAG,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC;YAChE,MAAM,SAAS,GAAG,IAAI,QAAQ,CAC5B,MAAM,CAAC,MAAM,EACb,MAAM,CAAC,UAAU,GAAG,WAAW,CAChC,CAAC;YACF,OAAO,IAAA,cAAQ,EAAC,SAAS,CAAC,CAAC;QAC7B,CAAC,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,
|
|
1
|
+
{"version":3,"file":"view.js","sourceRoot":"","sources":["../../src/parsers/view.ts"],"names":[],"mappings":";;;AACA,+BAAiC;AACjC,4CAAyC;AAElC,MAAM,SAAS,GAAG,CAAC,MAAkB,EAAQ,EAAE;IACpD,MAAM,IAAI,GAAG,IAAI,QAAQ,CACvB,MAAM,CAAC,MAAM,EACb,MAAM,CAAC,UAAU,EACjB,MAAM,CAAC,UAAU,CAClB,CAAC;IAEF,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;IAC3C,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;IAEzC,OAAO,IAAA,eAAM,EAAO,UAAU,EAAE,CAAC,QAAQ,EAAE,EAAE;QAC3C,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,GAAG,QAAQ,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC;QAE3D,MAAM,SAAS,GAAG,IAAI,QAAQ,CAC5B,MAAM,CAAC,MAAM,EACb,MAAM,CAAC,UAAU,GAAG,WAAW,CAChC,CAAC;QACF,MAAM,UAAU,GAAG,SAAS,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;QAChD,MAAM,UAAU,GAAG,CAAC,QAAQ,GAAG,CAAC,CAAC,IAAI,QAAQ,CAAC,CAAC,KAAK,CAAC,CAAC;QAEtD,MAAM,MAAM,GAAG,IAAA,eAAM,EAAC,UAAU,EAAE,CAAC,QAAQ,EAAE,EAAE;YAC7C,MAAM,WAAW,GAAG,SAAS,CAAC,SAAS,CAAC,QAAQ,GAAG,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC;YAChE,MAAM,SAAS,GAAG,IAAI,QAAQ,CAC5B,MAAM,CAAC,MAAM,EACb,MAAM,CAAC,UAAU,GAAG,WAAW,CAChC,CAAC;YACF,OAAO,IAAA,cAAQ,EAAC,SAAS,CAAC,CAAC;QAC7B,CAAC,CAAC,CAAC;QAEH,MAAM,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,CAAC,GAAG,MAAM,CAAC,MAAM,CAG9C,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;YAC9C,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC;YAC7B,OAAO;gBACL,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,KAAK,GAAG,EAAE,CAAC;gBACxB,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,MAAM,GAAG,EAAE,CAAC;gBAC1B,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,KAAK,GAAG,KAAK,GAAG,EAAE,CAAC;gBAChC,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC;aACjB,CAAC;QACJ,CAAC,EACD,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CACb,CAAC;QAEF,OAAO;YACL,MAAM;YACN,UAAU;YACV,MAAM,EAAE;gBACN,IAAI;gBACJ,GAAG;gBACH,KAAK;gBACL,MAAM;gBACN,KAAK,EAAE,KAAK,GAAG,IAAI;gBACnB,MAAM,EAAE,MAAM,GAAG,GAAG;aACrB;SACF,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AAzDW,QAAA,SAAS,aAyDpB"}
|
package/dist/screen/index.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/screen/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/screen/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC"}
|
package/dist/screen/index.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.loopPaddingFilter = exports.renderPic = void 0;
|
|
4
4
|
var render_pic_1 = require("./render-pic");
|
|
5
5
|
Object.defineProperty(exports, "renderPic", { enumerable: true, get: function () { return render_pic_1.renderPic; } });
|
|
6
|
-
var
|
|
7
|
-
Object.defineProperty(exports, "
|
|
6
|
+
var loop_padding_filter_1 = require("./loop-padding-filter");
|
|
7
|
+
Object.defineProperty(exports, "loopPaddingFilter", { enumerable: true, get: function () { return loop_padding_filter_1.loopPaddingFilter; } });
|
|
8
8
|
//# sourceMappingURL=index.js.map
|
package/dist/screen/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/screen/index.ts"],"names":[],"mappings":";;;AAAA,2CAAyC;AAAhC,uGAAA,SAAS,OAAA;AAClB,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/screen/index.ts"],"names":[],"mappings":";;;AAAA,2CAAyC;AAAhC,uGAAA,SAAS,OAAA;AAClB,6DAA0D;AAAjD,wHAAA,iBAAiB,OAAA"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { IndexedPixelData } from '@4bitlabs/image';
|
|
2
|
+
import { type Loop } from '../models/view';
|
|
3
|
+
import { type Cel } from '../models/cel';
|
|
4
|
+
export declare const loopPaddingFilter: (loop: Loop) => (source: IndexedPixelData | Cel) => IndexedPixelData;
|
|
5
|
+
//# sourceMappingURL=loop-padding-filter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"loop-padding-filter.d.ts","sourceRoot":"","sources":["../../src/screen/loop-padding-filter.ts"],"names":[],"mappings":"AAAA,OAAO,EAA0B,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAC3E,OAAO,EAAE,KAAK,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,KAAK,GAAG,EAAE,MAAM,eAAe,CAAC;AAEzC,eAAO,MAAM,iBAAiB,SAAU,IAAI,cAI1B,gBAAgB,GAAG,GAAG,KAAG,gBA+B1C,CAAC"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.loopPaddingFilter = void 0;
|
|
4
|
+
const image_1 = require("@4bitlabs/image");
|
|
5
|
+
const loopPaddingFilter = (loop) => {
|
|
6
|
+
const { isMirrored, bounds } = loop;
|
|
7
|
+
const { left, top, right, width: loopWidth, height: loopHeight } = bounds;
|
|
8
|
+
return (source) => {
|
|
9
|
+
if (!('dx' in source)) {
|
|
10
|
+
return source;
|
|
11
|
+
}
|
|
12
|
+
const dest = (0, image_1.createIndexedPixelData)(loopWidth, loopHeight, {
|
|
13
|
+
keyColor: source.keyColor,
|
|
14
|
+
});
|
|
15
|
+
const sStride = source.width;
|
|
16
|
+
const dStride = dest.width;
|
|
17
|
+
for (let ySource = 0; ySource < source.height; ySource++) {
|
|
18
|
+
const yDest = source.dy - top - source.height + ySource;
|
|
19
|
+
for (let xSource = 0; xSource < source.width; xSource++) {
|
|
20
|
+
const xActual = isMirrored ? source.width - xSource - 1 : xSource;
|
|
21
|
+
const edge = isMirrored
|
|
22
|
+
? +right - source.dx - (source.width & 0b1)
|
|
23
|
+
: -left + source.dx;
|
|
24
|
+
const xDest = xSource - (source.width >>> 1) + edge;
|
|
25
|
+
const destIdx = yDest * dStride + xDest;
|
|
26
|
+
const sourceIdx = ySource * sStride + xActual;
|
|
27
|
+
dest.pixels[destIdx] = source.pixels[sourceIdx];
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
return dest;
|
|
31
|
+
};
|
|
32
|
+
};
|
|
33
|
+
exports.loopPaddingFilter = loopPaddingFilter;
|
|
34
|
+
//# sourceMappingURL=loop-padding-filter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"loop-padding-filter.js","sourceRoot":"","sources":["../../src/screen/loop-padding-filter.ts"],"names":[],"mappings":";;;AAAA,2CAA2E;AAIpE,MAAM,iBAAiB,GAAG,CAAC,IAAU,EAAE,EAAE;IAC9C,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IACpC,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,MAAM,CAAC;IAE1E,OAAO,CAAC,MAA8B,EAAoB,EAAE;QAC1D,IAAI,CAAC,CAAC,IAAI,IAAI,MAAM,CAAC,EAAE,CAAC;YACtB,OAAO,MAAM,CAAC;QAChB,CAAC;QAED,MAAM,IAAI,GAAG,IAAA,8BAAsB,EAAC,SAAS,EAAE,UAAU,EAAE;YACzD,QAAQ,EAAE,MAAM,CAAC,QAAQ;SAC1B,CAAC,CAAC;QAEH,MAAM,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC;QAC7B,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC;QAE3B,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE,CAAC;YACzD,MAAM,KAAK,GAAG,MAAM,CAAC,EAAE,GAAG,GAAG,GAAG,MAAM,CAAC,MAAM,GAAG,OAAO,CAAC;YAExD,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE,CAAC;gBACxD,MAAM,OAAO,GAAG,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,GAAG,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;gBAElE,MAAM,IAAI,GAAG,UAAU;oBACrB,CAAC,CAAC,CAAC,KAAK,GAAG,MAAM,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,KAAK,GAAG,GAAG,CAAC;oBAC3C,CAAC,CAAC,CAAC,IAAI,GAAG,MAAM,CAAC,EAAE,CAAC;gBACtB,MAAM,KAAK,GAAG,OAAO,GAAG,CAAC,MAAM,CAAC,KAAK,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC;gBAEpD,MAAM,OAAO,GAAG,KAAK,GAAG,OAAO,GAAG,KAAK,CAAC;gBACxC,MAAM,SAAS,GAAG,OAAO,GAAG,OAAO,GAAG,OAAO,CAAC;gBAC9C,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;YAClD,CAAC;QACH,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC,CAAC;AACJ,CAAC,CAAC;AAnCW,QAAA,iBAAiB,qBAmC5B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loop-render-filter.d.ts","sourceRoot":"","sources":["../../src/screen/loop-render-filter.ts"],"names":[],"mappings":"AAAA,OAAO,EAA0B,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAC3E,OAAO,EAAE,KAAK,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,KAAK,GAAG,EAAE,MAAM,eAAe,CAAC;AAEzC,eAAO,MAAM,gBAAgB,SAAU,IAAI,
|
|
1
|
+
{"version":3,"file":"loop-render-filter.d.ts","sourceRoot":"","sources":["../../src/screen/loop-render-filter.ts"],"names":[],"mappings":"AAAA,OAAO,EAA0B,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAC3E,OAAO,EAAE,KAAK,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,KAAK,GAAG,EAAE,MAAM,eAAe,CAAC;AAEzC,eAAO,MAAM,gBAAgB,SAAU,IAAI,cAIzB,gBAAgB,GAAG,GAAG,KAAG,gBA+B1C,CAAC"}
|
|
@@ -4,8 +4,7 @@ exports.loopRenderFilter = void 0;
|
|
|
4
4
|
const image_1 = require("@4bitlabs/image");
|
|
5
5
|
const loopRenderFilter = (loop) => {
|
|
6
6
|
const { isMirrored, bounds } = loop;
|
|
7
|
-
const
|
|
8
|
-
const [loopWidth, loopHeight] = [right - left, bottom - top];
|
|
7
|
+
const { left, top, right, width: loopWidth, height: loopHeight } = bounds;
|
|
9
8
|
return (source) => {
|
|
10
9
|
if (!('dx' in source)) {
|
|
11
10
|
return source;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loop-render-filter.js","sourceRoot":"","sources":["../../src/screen/loop-render-filter.ts"],"names":[],"mappings":";;;AAAA,2CAA2E;AAIpE,MAAM,gBAAgB,GAAG,CAAC,IAAU,EAAE,EAAE;IAC7C,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IACpC,MAAM,
|
|
1
|
+
{"version":3,"file":"loop-render-filter.js","sourceRoot":"","sources":["../../src/screen/loop-render-filter.ts"],"names":[],"mappings":";;;AAAA,2CAA2E;AAIpE,MAAM,gBAAgB,GAAG,CAAC,IAAU,EAAE,EAAE;IAC7C,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IACpC,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,MAAM,CAAC;IAE1E,OAAO,CAAC,MAA8B,EAAoB,EAAE;QAC1D,IAAI,CAAC,CAAC,IAAI,IAAI,MAAM,CAAC,EAAE,CAAC;YACtB,OAAO,MAAM,CAAC;QAChB,CAAC;QAED,MAAM,IAAI,GAAG,IAAA,8BAAsB,EAAC,SAAS,EAAE,UAAU,EAAE;YACzD,QAAQ,EAAE,MAAM,CAAC,QAAQ;SAC1B,CAAC,CAAC;QAEH,MAAM,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC;QAC7B,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC;QAE3B,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE,CAAC;YACzD,MAAM,KAAK,GAAG,MAAM,CAAC,EAAE,GAAG,GAAG,GAAG,MAAM,CAAC,MAAM,GAAG,OAAO,CAAC;YAExD,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE,CAAC;gBACxD,MAAM,OAAO,GAAG,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,GAAG,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;gBAElE,MAAM,IAAI,GAAG,UAAU;oBACrB,CAAC,CAAC,CAAC,KAAK,GAAG,MAAM,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,KAAK,GAAG,GAAG,CAAC;oBAC3C,CAAC,CAAC,CAAC,IAAI,GAAG,MAAM,CAAC,EAAE,CAAC;gBACtB,MAAM,KAAK,GAAG,OAAO,GAAG,CAAC,MAAM,CAAC,KAAK,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC;gBAEpD,MAAM,OAAO,GAAG,KAAK,GAAG,OAAO,GAAG,KAAK,CAAC;gBACxC,MAAM,SAAS,GAAG,OAAO,GAAG,OAAO,GAAG,OAAO,CAAC;gBAC9C,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;YAClD,CAAC;QACH,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC,CAAC;AACJ,CAAC,CAAC;AAnCW,QAAA,gBAAgB,oBAmC3B"}
|
|
@@ -1,13 +1,8 @@
|
|
|
1
|
-
import { type IndexedPixelData } from '@4bitlabs/image';
|
|
2
1
|
import { DrawCommand } from '../models/draw-command';
|
|
2
|
+
import { RenderResult } from './render-result';
|
|
3
3
|
interface RenderOptions {
|
|
4
4
|
forcePal?: 0 | 1 | 2 | 3 | undefined;
|
|
5
5
|
}
|
|
6
|
-
interface RenderResult {
|
|
7
|
-
visible: IndexedPixelData;
|
|
8
|
-
priority: IndexedPixelData;
|
|
9
|
-
control: IndexedPixelData;
|
|
10
|
-
}
|
|
11
6
|
export declare const renderPic: (commands: DrawCommand[], options?: RenderOptions) => RenderResult;
|
|
12
7
|
export {};
|
|
13
8
|
//# sourceMappingURL=render-pic.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"render-pic.d.ts","sourceRoot":"","sources":["../../src/screen/render-pic.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"render-pic.d.ts","sourceRoot":"","sources":["../../src/screen/render-pic.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAY,MAAM,wBAAwB,CAAC;AAC/D,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE/C,UAAU,aAAa;IACrB,QAAQ,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC;CACtC;AAED,eAAO,MAAM,SAAS,aACV,WAAW,EAAE,YACd,aAAa,KACrB,YA2EF,CAAC"}
|
|
@@ -4,28 +4,22 @@ exports.renderPic = void 0;
|
|
|
4
4
|
const screen_buffer_1 = require("./screen-buffer");
|
|
5
5
|
const default_palette_1 = require("./default-palette");
|
|
6
6
|
const draw_command_1 = require("../models/draw-command");
|
|
7
|
-
function extractPixelData(buffer) {
|
|
8
|
-
const { brush, fill, line, plot, ...pixelData } = buffer;
|
|
9
|
-
return pixelData;
|
|
10
|
-
}
|
|
11
7
|
const renderPic = (commands, options = {}) => {
|
|
12
8
|
const { forcePal } = options;
|
|
13
|
-
const visible = (0, screen_buffer_1.createScreenBuffer)(0xff);
|
|
14
|
-
const priority = (0, screen_buffer_1.createScreenBuffer)(0x00);
|
|
15
|
-
const control = (0, screen_buffer_1.createScreenBuffer)(0x00);
|
|
16
9
|
const palettes = [
|
|
17
10
|
Uint8Array.from(default_palette_1.DEFAULT_PALETTE),
|
|
18
11
|
Uint8Array.from(default_palette_1.DEFAULT_PALETTE),
|
|
19
12
|
Uint8Array.from(default_palette_1.DEFAULT_PALETTE),
|
|
20
13
|
Uint8Array.from(default_palette_1.DEFAULT_PALETTE),
|
|
21
14
|
];
|
|
22
|
-
|
|
15
|
+
const [result, screen] = (0, screen_buffer_1.createScreenBuffer)(forcePal, palettes);
|
|
16
|
+
for (const cmd of commands) {
|
|
23
17
|
const [mode] = cmd;
|
|
24
18
|
switch (mode) {
|
|
25
19
|
case 'SET_PALETTE': {
|
|
26
20
|
const [, idx, palette] = cmd;
|
|
27
21
|
palettes[idx] = palette;
|
|
28
|
-
|
|
22
|
+
break;
|
|
29
23
|
}
|
|
30
24
|
case 'UPDATE_PALETTE': {
|
|
31
25
|
const [, entries] = cmd;
|
|
@@ -34,44 +28,29 @@ const renderPic = (commands, options = {}) => {
|
|
|
34
28
|
palette[idx] = color;
|
|
35
29
|
palettes[pal] = palette;
|
|
36
30
|
});
|
|
37
|
-
|
|
31
|
+
break;
|
|
38
32
|
}
|
|
39
33
|
case 'FILL': {
|
|
40
34
|
const [, drawMode, drawCodes, pos] = cmd;
|
|
41
|
-
if ((drawMode & draw_command_1.DrawMode.Visual) !== draw_command_1.DrawMode.Visual)
|
|
42
|
-
return;
|
|
43
|
-
const pal = (drawCodes[0] / 40) >>> 0;
|
|
44
|
-
const idx = drawCodes[0] % 40 >>> 0;
|
|
45
|
-
const color = palettes[forcePal !== null && forcePal !== void 0 ? forcePal : pal][idx];
|
|
46
35
|
const [x, y] = pos;
|
|
47
|
-
|
|
36
|
+
screen.fill(x, y, drawMode, drawCodes);
|
|
48
37
|
break;
|
|
49
38
|
}
|
|
50
39
|
case 'PLINE': {
|
|
51
40
|
const [, drawMode, drawCodes, ...points] = cmd;
|
|
52
|
-
if ((drawMode & draw_command_1.DrawMode.Visual) !== draw_command_1.DrawMode.Visual)
|
|
53
|
-
return;
|
|
54
|
-
const pal = (drawCodes[0] / 40) >>> 0;
|
|
55
|
-
const idx = drawCodes[0] % 40 >>> 0;
|
|
56
|
-
const color = palettes[forcePal !== null && forcePal !== void 0 ? forcePal : pal][idx];
|
|
57
41
|
for (let p = 0; p < points.length - 1; p++)
|
|
58
|
-
|
|
42
|
+
screen.line(points[p][0], points[p][1], points[p + 1][0], points[p + 1][1], drawMode, drawCodes);
|
|
59
43
|
break;
|
|
60
44
|
}
|
|
61
45
|
case 'BRUSH': {
|
|
62
46
|
const [, drawMode, drawCodes, patternCode, textureCode, [cx, cy]] = cmd;
|
|
63
|
-
|
|
64
|
-
return;
|
|
65
|
-
const pal = (drawCodes[0] / 40) >>> 0;
|
|
66
|
-
const idx = drawCodes[0] % 40 >>> 0;
|
|
67
|
-
const color = palettes[forcePal !== null && forcePal !== void 0 ? forcePal : pal][idx];
|
|
68
|
-
visible.brush(cx, cy, ...patternCode, textureCode, color);
|
|
47
|
+
screen.brush(cx, cy, ...patternCode, textureCode, drawMode, drawCodes);
|
|
69
48
|
break;
|
|
70
49
|
}
|
|
71
50
|
case 'CEL': {
|
|
72
51
|
const [, drawMode, pos, cel] = cmd;
|
|
73
52
|
if ((drawMode & draw_command_1.DrawMode.Visual) !== draw_command_1.DrawMode.Visual)
|
|
74
|
-
|
|
53
|
+
continue;
|
|
75
54
|
const data = cel.pixels;
|
|
76
55
|
for (let y = pos[1]; y < pos[1] + cel.height; y++)
|
|
77
56
|
for (let x = pos[0]; x < pos[0] + cel.width; x++) {
|
|
@@ -80,19 +59,15 @@ const renderPic = (commands, options = {}) => {
|
|
|
80
59
|
const color = data[x + y * cel.width];
|
|
81
60
|
if (color === cel.keyColor)
|
|
82
61
|
continue;
|
|
83
|
-
|
|
62
|
+
screen.setPixel(x, y, color);
|
|
84
63
|
}
|
|
85
64
|
break;
|
|
86
65
|
}
|
|
87
66
|
default:
|
|
88
67
|
console.log(`unhandled opcode: ${mode}`);
|
|
89
68
|
}
|
|
90
|
-
}
|
|
91
|
-
return
|
|
92
|
-
visible: extractPixelData(visible),
|
|
93
|
-
priority: extractPixelData(priority),
|
|
94
|
-
control: extractPixelData(control),
|
|
95
|
-
};
|
|
69
|
+
}
|
|
70
|
+
return result;
|
|
96
71
|
};
|
|
97
72
|
exports.renderPic = renderPic;
|
|
98
73
|
//# sourceMappingURL=render-pic.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"render-pic.js","sourceRoot":"","sources":["../../src/screen/render-pic.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"render-pic.js","sourceRoot":"","sources":["../../src/screen/render-pic.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"render-result.d.ts","sourceRoot":"","sources":["../../src/screen/render-result.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAExD,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,gBAAgB,CAAC;IAC1B,QAAQ,EAAE,gBAAgB,CAAC;IAC3B,OAAO,EAAE,gBAAgB,CAAC;IAC1B,KAAK,EAAE,gBAAgB,CAAC;CACzB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"render-result.js","sourceRoot":"","sources":["../../src/screen/render-result.ts"],"names":[],"mappings":""}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { Plotter, Brusher, IsFillable, Filler } from './screen';
|
|
1
|
+
import { Plotter, Brusher, IsFillable, Filler, Liner } from './screen';
|
|
2
2
|
import { StaticVec2 } from '../models/vec2';
|
|
3
|
-
export declare const createLine: (plot: Plotter) =>
|
|
3
|
+
export declare const createLine: (plot: Plotter) => Liner;
|
|
4
4
|
export declare const createFloodFill: (plot: Plotter, isLegal: IsFillable, [width, height]: StaticVec2) => Filler;
|
|
5
5
|
export declare const createBrush: (plot: Plotter, [stageWidth, stageHeight]: StaticVec2) => Brusher;
|
|
6
6
|
export declare const createMarker: (plot: Plotter) => Filler;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sci0-screen-impl.d.ts","sourceRoot":"","sources":["../../src/screen/sci0-screen-impl.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"sci0-screen-impl.d.ts","sourceRoot":"","sources":["../../src/screen/sci0-screen-impl.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AACvE,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAG5C,eAAO,MAAM,UAAU,SAAU,OAAO,KAAG,KAoDxC,CAAC;AAEJ,eAAO,MAAM,eAAe,SACpB,OAAO,WACJ,UAAU,kCAElB,MAkCF,CAAC;AAEF,eAAO,MAAM,WAAW,SAChB,OAAO,4CAEZ,OAmCA,CAAC;AAEJ,eAAO,MAAM,YAAY,SAAU,OAAO,KAAG,MAW1C,CAAC"}
|
|
@@ -7,19 +7,19 @@ exports.createMarker = exports.createBrush = exports.createFloodFill = exports.c
|
|
|
7
7
|
const numeric_deque_1 = require("@4bitlabs/numeric-deque");
|
|
8
8
|
const circles_1 = __importDefault(require("./circles"));
|
|
9
9
|
const noise_1 = require("./noise");
|
|
10
|
-
const createLine = (plot) => function line(x0, y0, x1, y1,
|
|
10
|
+
const createLine = (plot) => function line(x0, y0, x1, y1, drawMode, drawCodes) {
|
|
11
11
|
if (x0 === x1) {
|
|
12
12
|
for (let y = Math.min(y0, y1); y <= Math.max(y0, y1); y++)
|
|
13
|
-
plot(x0, y,
|
|
13
|
+
plot(x0, y, drawMode, drawCodes);
|
|
14
14
|
return;
|
|
15
15
|
}
|
|
16
16
|
if (y0 === y1) {
|
|
17
17
|
for (let x = Math.min(x0, x1); x <= Math.max(x0, x1); x++)
|
|
18
|
-
plot(x, y0,
|
|
18
|
+
plot(x, y0, drawMode, drawCodes);
|
|
19
19
|
return;
|
|
20
20
|
}
|
|
21
|
-
plot(x0, y0,
|
|
22
|
-
plot(x1, y1,
|
|
21
|
+
plot(x0, y0, drawMode, drawCodes);
|
|
22
|
+
plot(x1, y1, drawMode, drawCodes);
|
|
23
23
|
const dx = x1 - x0;
|
|
24
24
|
const dy = y1 - y0;
|
|
25
25
|
const adx = Math.abs(dx);
|
|
@@ -29,7 +29,7 @@ const createLine = (plot) => function line(x0, y0, x1, y1, clr) {
|
|
|
29
29
|
let eps = 0;
|
|
30
30
|
if (adx > ady) {
|
|
31
31
|
for (let x = x0, y = y0; sx < 0 ? x >= x1 : x <= x1; x += sx) {
|
|
32
|
-
plot(x, y,
|
|
32
|
+
plot(x, y, drawMode, drawCodes);
|
|
33
33
|
eps += ady;
|
|
34
34
|
if (eps << 1 >= adx) {
|
|
35
35
|
y += sy;
|
|
@@ -39,7 +39,7 @@ const createLine = (plot) => function line(x0, y0, x1, y1, clr) {
|
|
|
39
39
|
}
|
|
40
40
|
else {
|
|
41
41
|
for (let x = x0, y = y0; sy < 0 ? y >= y1 : y <= y1; y += sy) {
|
|
42
|
-
plot(x, y,
|
|
42
|
+
plot(x, y, drawMode, drawCodes);
|
|
43
43
|
eps += adx;
|
|
44
44
|
if (eps << 1 >= ady) {
|
|
45
45
|
x += sx;
|
|
@@ -52,8 +52,8 @@ exports.createLine = createLine;
|
|
|
52
52
|
const createFloodFill = (plot, isLegal, [width, height]) => {
|
|
53
53
|
const visited = new Set();
|
|
54
54
|
const stack = new numeric_deque_1.NumericDeque(width * height, Uint32Array);
|
|
55
|
-
return function floodFill(
|
|
56
|
-
const startI =
|
|
55
|
+
return function floodFill(sx, sy, drawMode, drawCodes) {
|
|
56
|
+
const startI = sy * width + sx;
|
|
57
57
|
stack.push(startI);
|
|
58
58
|
while (!stack.isEmpty()) {
|
|
59
59
|
const i = stack.shift();
|
|
@@ -62,9 +62,9 @@ const createFloodFill = (plot, isLegal, [width, height]) => {
|
|
|
62
62
|
visited.add(i);
|
|
63
63
|
const x = i % width;
|
|
64
64
|
const y = (i / width) >>> 0;
|
|
65
|
-
if (!isLegal(x, y))
|
|
65
|
+
if (!isLegal(x, y, drawMode))
|
|
66
66
|
continue;
|
|
67
|
-
plot(x, y,
|
|
67
|
+
plot(x, y, drawMode, drawCodes);
|
|
68
68
|
if (y - 1 >= 0 && !visited.has(i - width))
|
|
69
69
|
stack.push(i - width);
|
|
70
70
|
if (y + 1 < height && !visited.has(i + width))
|
|
@@ -78,7 +78,7 @@ const createFloodFill = (plot, isLegal, [width, height]) => {
|
|
|
78
78
|
};
|
|
79
79
|
};
|
|
80
80
|
exports.createFloodFill = createFloodFill;
|
|
81
|
-
const createBrush = (plot, [stageWidth, stageHeight]) => function brush(cx, cy, size, isRect, isSpray, textureCode,
|
|
81
|
+
const createBrush = (plot, [stageWidth, stageHeight]) => function brush(cx, cy, size, isRect, isSpray, textureCode, drawMode, drawCodes) {
|
|
82
82
|
const baseWidth = isRect ? 2 : 1;
|
|
83
83
|
const width = baseWidth + size * 2;
|
|
84
84
|
const height = 1 + size * 2;
|
|
@@ -102,15 +102,15 @@ const createBrush = (plot, [stageWidth, stageHeight]) => function brush(cx, cy,
|
|
|
102
102
|
}
|
|
103
103
|
if (isSpray && !noise_1.NOISE[noiseIdx++ & 0xff])
|
|
104
104
|
continue;
|
|
105
|
-
plot(px, py,
|
|
105
|
+
plot(px, py, drawMode, drawCodes);
|
|
106
106
|
}
|
|
107
107
|
};
|
|
108
108
|
exports.createBrush = createBrush;
|
|
109
|
-
const createMarker = (plot) => function marker(x, y,
|
|
110
|
-
plot(x - 1, y,
|
|
111
|
-
plot(x, y - 1,
|
|
112
|
-
plot(x + 1, y,
|
|
113
|
-
plot(x, y + 1,
|
|
109
|
+
const createMarker = (plot) => function marker(x, y, drawMode, drawCodes) {
|
|
110
|
+
plot(x - 1, y, drawMode, drawCodes);
|
|
111
|
+
plot(x, y - 1, drawMode, drawCodes);
|
|
112
|
+
plot(x + 1, y, drawMode, drawCodes);
|
|
113
|
+
plot(x, y + 1, drawMode, drawCodes);
|
|
114
114
|
};
|
|
115
115
|
exports.createMarker = createMarker;
|
|
116
116
|
//# sourceMappingURL=sci0-screen-impl.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sci0-screen-impl.js","sourceRoot":"","sources":["../../src/screen/sci0-screen-impl.ts"],"names":[],"mappings":";;;;;;AAAA,2DAAuD;AACvD,wDAAgC;AAChC,mCAA+C;
|
|
1
|
+
{"version":3,"file":"sci0-screen-impl.js","sourceRoot":"","sources":["../../src/screen/sci0-screen-impl.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import { type IndexedPixelData } from '@4bitlabs/image';
|
|
2
1
|
import { type Screen } from './screen';
|
|
3
|
-
|
|
4
|
-
export declare const createScreenBuffer: (
|
|
2
|
+
import { type RenderResult } from './render-result';
|
|
3
|
+
export declare const createScreenBuffer: (forcePal: 0 | 1 | 2 | 3 | undefined, palettes: [Uint8Array, Uint8Array, Uint8Array, Uint8Array]) => [RenderResult, Screen];
|
|
5
4
|
//# sourceMappingURL=screen-buffer.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"screen-buffer.d.ts","sourceRoot":"","sources":["../../src/screen/screen-buffer.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"screen-buffer.d.ts","sourceRoot":"","sources":["../../src/screen/screen-buffer.ts"],"names":[],"mappings":"AAEA,OAAO,EAAwC,KAAK,MAAM,EAAE,MAAM,UAAU,CAAC;AAE7E,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAKpD,eAAO,MAAM,kBAAkB,aACnB,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,SAAS,YACzB,CAAC,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,CAAC,KACzD,CAAC,YAAY,EAAE,MAAM,CAmEvB,CAAC"}
|
|
@@ -3,25 +3,64 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.createScreenBuffer = void 0;
|
|
4
4
|
const image_1 = require("@4bitlabs/image");
|
|
5
5
|
const sci0_screen_impl_1 = require("./sci0-screen-impl");
|
|
6
|
+
const draw_command_1 = require("../models/draw-command");
|
|
6
7
|
const bufferWidth = 320;
|
|
7
8
|
const bufferHeight = 190;
|
|
8
|
-
const createScreenBuffer = (
|
|
9
|
-
const
|
|
10
|
-
const
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
9
|
+
const createScreenBuffer = (forcePal, palettes) => {
|
|
10
|
+
const visible = (0, image_1.createIndexedPixelData)(bufferWidth, bufferHeight);
|
|
11
|
+
const priority = (0, image_1.createIndexedPixelData)(bufferWidth, bufferHeight);
|
|
12
|
+
const control = (0, image_1.createIndexedPixelData)(bufferWidth, bufferHeight);
|
|
13
|
+
const alpha = (0, image_1.createIndexedPixelData)(bufferWidth, bufferHeight);
|
|
14
|
+
visible.pixels.fill(0xff);
|
|
15
|
+
priority.pixels.fill(0x00);
|
|
16
|
+
control.pixels.fill(0x00);
|
|
17
|
+
const setPixel = (x, y, color) => {
|
|
14
18
|
const idx = bufferWidth * y + x;
|
|
15
|
-
pixels[idx] = color;
|
|
19
|
+
visible.pixels[idx] = (color & 0b1111) | (color << 4);
|
|
16
20
|
};
|
|
17
|
-
const
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
21
|
+
const plot = (x, y, drawMode, drawCodes) => {
|
|
22
|
+
const idx = bufferWidth * y + x;
|
|
23
|
+
if ((drawMode & draw_command_1.DrawMode.Visual) === draw_command_1.DrawMode.Visual) {
|
|
24
|
+
const pal = forcePal !== null && forcePal !== void 0 ? forcePal : (drawCodes[0] / 40) >>> 0;
|
|
25
|
+
const palette = palettes[pal];
|
|
26
|
+
const palIndex = drawCodes[0] % 40 >>> 0;
|
|
27
|
+
visible.pixels[idx] = palette[palIndex];
|
|
28
|
+
alpha.pixels[idx] = 255;
|
|
29
|
+
}
|
|
30
|
+
if ((drawMode & draw_command_1.DrawMode.Priority) === draw_command_1.DrawMode.Priority) {
|
|
31
|
+
priority.pixels[idx] = drawCodes[1];
|
|
32
|
+
}
|
|
33
|
+
if ((drawMode & draw_command_1.DrawMode.Control) === draw_command_1.DrawMode.Control) {
|
|
34
|
+
control.pixels[idx] = drawCodes[2];
|
|
35
|
+
}
|
|
36
|
+
};
|
|
37
|
+
const isFillable = (x, y, drawMode) => {
|
|
38
|
+
const idx = x + y * bufferWidth;
|
|
39
|
+
const isVisible = (drawMode & draw_command_1.DrawMode.Visual) === draw_command_1.DrawMode.Visual;
|
|
40
|
+
if (isVisible) {
|
|
41
|
+
const dither = (x & 1) ^ (y & 1);
|
|
42
|
+
const val = visible.pixels[idx];
|
|
43
|
+
return 0xf === (dither ? val & 0xf : val >>> 4);
|
|
44
|
+
}
|
|
45
|
+
/* TODO not sure if this is correct… but it looks *okay*-ish.
|
|
46
|
+
* SCI Companion seems to be able to recognize the difference between "never-touched" pixels and
|
|
47
|
+
* replaced 0x00 pixels in control and priority layers. Not sure if its intentional or not. But
|
|
48
|
+
* may require a different way of modeling indexed "alpha" channel.
|
|
49
|
+
*/
|
|
50
|
+
const isPriority = (drawMode & draw_command_1.DrawMode.Priority) === draw_command_1.DrawMode.Priority;
|
|
51
|
+
const isControl = (drawMode & draw_command_1.DrawMode.Control) === draw_command_1.DrawMode.Control;
|
|
52
|
+
return ((isPriority && priority.pixels[idx] === 0x00) ||
|
|
53
|
+
(isControl && control.pixels[idx] === 0x00));
|
|
24
54
|
};
|
|
55
|
+
return [
|
|
56
|
+
{ visible, priority, control, alpha },
|
|
57
|
+
{
|
|
58
|
+
setPixel,
|
|
59
|
+
brush: (0, sci0_screen_impl_1.createBrush)(plot, [bufferWidth, bufferHeight]),
|
|
60
|
+
fill: (0, sci0_screen_impl_1.createFloodFill)(plot, isFillable, [bufferWidth, bufferHeight]),
|
|
61
|
+
line: (0, sci0_screen_impl_1.createLine)(plot),
|
|
62
|
+
},
|
|
63
|
+
];
|
|
25
64
|
};
|
|
26
65
|
exports.createScreenBuffer = createScreenBuffer;
|
|
27
66
|
//# sourceMappingURL=screen-buffer.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"screen-buffer.js","sourceRoot":"","sources":["../../src/screen/screen-buffer.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"screen-buffer.js","sourceRoot":"","sources":["../../src/screen/screen-buffer.ts"],"names":[],"mappings":"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"}
|
package/dist/screen/screen.d.ts
CHANGED
|
@@ -1,12 +1,14 @@
|
|
|
1
|
-
|
|
2
|
-
export type
|
|
3
|
-
export type
|
|
4
|
-
export type
|
|
5
|
-
export type
|
|
1
|
+
import { DrawCodes, DrawMode } from '../models/draw-command';
|
|
2
|
+
export type RawPlotter = (x: number, y: number, color: number) => void;
|
|
3
|
+
export type Plotter = (x: number, y: number, drawMode: DrawMode, drawCodes: DrawCodes) => void;
|
|
4
|
+
export type IsFillable = (x: number, y: number, drawMode: DrawMode) => boolean;
|
|
5
|
+
export type Filler = (x: number, y: number, drawMode: DrawMode, drawCodes: DrawCodes) => void;
|
|
6
|
+
export type Liner = (x0: number, y0: number, x1: number, y1: number, drawMode: DrawMode, drawCodes: DrawCodes) => void;
|
|
7
|
+
export type Brusher = (cx: number, cy: number, size: number, isRect: boolean, isSpray: boolean, textureCode: number, drawMode: DrawMode, drawCodes: DrawCodes) => void;
|
|
6
8
|
export interface Screen {
|
|
7
9
|
brush: Brusher;
|
|
8
10
|
fill: Filler;
|
|
9
11
|
line: Liner;
|
|
10
|
-
|
|
12
|
+
setPixel: RawPlotter;
|
|
11
13
|
}
|
|
12
14
|
//# sourceMappingURL=screen.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"screen.d.ts","sourceRoot":"","sources":["../../src/screen/screen.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,
|
|
1
|
+
{"version":3,"file":"screen.d.ts","sourceRoot":"","sources":["../../src/screen/screen.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAE7D,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;AAEvE,MAAM,MAAM,OAAO,GAAG,CACpB,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,EACT,QAAQ,EAAE,QAAQ,EAClB,SAAS,EAAE,SAAS,KACjB,IAAI,CAAC;AAEV,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,KAAK,OAAO,CAAC;AAE/E,MAAM,MAAM,MAAM,GAAG,CACnB,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,EACT,QAAQ,EAAE,QAAQ,EAClB,SAAS,EAAE,SAAS,KACjB,IAAI,CAAC;AAEV,MAAM,MAAM,KAAK,GAAG,CAClB,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,MAAM,EACV,QAAQ,EAAE,QAAQ,EAClB,SAAS,EAAE,SAAS,KACjB,IAAI,CAAC;AAEV,MAAM,MAAM,OAAO,GAAG,CACpB,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,MAAM,EACV,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,OAAO,EACf,OAAO,EAAE,OAAO,EAChB,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,QAAQ,EAClB,SAAS,EAAE,SAAS,KACjB,IAAI,CAAC;AAEV,MAAM,WAAW,MAAM;IACrB,KAAK,EAAE,OAAO,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,KAAK,CAAC;IACZ,QAAQ,EAAE,UAAU,CAAC;CACtB"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@4bitlabs/sci0",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.3.0",
|
|
4
4
|
"description": "Library for parsing and rendering assets from Sierra On-line's SCI-engine.",
|
|
5
5
|
"main": "./dist/index.js",
|
|
6
6
|
"types": "./dist/index.d.ts",
|
|
@@ -24,9 +24,9 @@
|
|
|
24
24
|
"author": "J. Holmes <j@holmes.codes>",
|
|
25
25
|
"license": "ISC",
|
|
26
26
|
"dependencies": {
|
|
27
|
-
"@4bitlabs/codecs": "^1.0.
|
|
28
|
-
"@4bitlabs/image": "^3.
|
|
29
|
-
"@4bitlabs/numeric-deque": "^1.1.
|
|
30
|
-
"@4bitlabs/readers": "^2.0.
|
|
27
|
+
"@4bitlabs/codecs": "^1.0.4",
|
|
28
|
+
"@4bitlabs/image": "^3.3.0",
|
|
29
|
+
"@4bitlabs/numeric-deque": "^1.1.3",
|
|
30
|
+
"@4bitlabs/readers": "^2.0.4"
|
|
31
31
|
}
|
|
32
32
|
}
|
package/dist/.tscache
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"program":{"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.dom.d.ts","../../../node_modules/typescript/lib/lib.dom.iterable.d.ts","../../../node_modules/typescript/lib/lib.dom.asynciterable.d.ts","../../../node_modules/typescript/lib/lib.webworker.importscripts.d.ts","../../../node_modules/typescript/lib/lib.scripthost.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.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.esnext.intl.d.ts","../../../node_modules/typescript/lib/lib.decorators.d.ts","../../../node_modules/typescript/lib/lib.decorators.legacy.d.ts","../../../node_modules/typescript/lib/lib.es2018.full.d.ts","../src/models/resource-header.ts","../src/models/resource-map.ts","../src/models/resource-type.ts","../../image/dist/image-data-like.d.ts","../../image/dist/indexed-pixel-data.d.ts","../../image/dist/image-filter.d.ts","../../color/dist/palettes/cga-palette.d.ts","../../color/dist/palettes/true-cga-palette.d.ts","../../color/dist/palettes/colly-soft-palette.d.ts","../../color/dist/palettes/dga-palette.d.ts","../../color/dist/palettes/index.d.ts","../../color/dist/ibm-5153-contrast.d.ts","../../color/dist/rgba.d.ts","../../color/dist/red-mean-diff.d.ts","../../color/dist/delta-e.d.ts","../../color/dist/dither-pair.d.ts","../../color/dist/dither-transform.d.ts","../../color/dist/generate-sci-dither-pairs.d.ts","../../color/dist/to-grayscale.d.ts","../../color/dist/index.d.ts","../../image/dist/dither-filter.d.ts","../../image/dist/palette-filter.d.ts","../../image/dist/render-pixel-data.d.ts","../../image/dist/pad-filter.d.ts","../../image/dist/index.d.ts","../src/models/cel.ts","../src/models/vec2.ts","../src/models/draw-command.ts","../src/models/resource-id.ts","../../numeric-deque/dist/numeric-deque.d.ts","../../numeric-deque/dist/index.d.ts","../src/screen/circles.ts","../src/screen/noise.ts","../src/screen/screen.ts","../src/screen/sci0-screen-impl.ts","../src/screen/screen-buffer.ts","../src/screen/default-palette.ts","../src/screen/render-pic.ts","../src/models/view.ts","../src/screen/loop-render-filter.ts","../src/screen/index.ts","../src/parsers/mapping.ts","../src/parsers/resource-header.ts","../../codecs/dist/shared.d.ts","../../codecs/dist/huffman.d.ts","../../codecs/dist/lzw.d.ts","../src/parsers/compression.ts","../src/models/cursor.ts","../src/parsers/cursor.ts","../src/models/font-face.ts","../src/utils/repeat.ts","../src/parsers/font.ts","../src/parsers/cel.ts","../src/parsers/view.ts","../../readers/dist/bit-reader.d.ts","../../readers/dist/bit-reader-options.d.ts","../../readers/dist/typed-array.d.ts","../../readers/dist/create-bit-reader.d.ts","../../readers/dist/async-bit-reader.d.ts","../../../node_modules/@types/node/assert.d.ts","../../../node_modules/@types/node/assert/strict.d.ts","../../../node_modules/@types/node/globals.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/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/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/readline.d.ts","../../../node_modules/@types/node/repl.d.ts","../../../node_modules/@types/node/stream.d.ts","../../../node_modules/@types/node/stream/promises.d.ts","../../../node_modules/@types/node/stream/consumers.d.ts","../../../node_modules/@types/node/stream/web.d.ts","../../../node_modules/@types/node/string_decoder.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/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/globals.global.d.ts","../../../node_modules/@types/node/index.d.ts","../../readers/dist/byte-reader.d.ts","../../readers/dist/index.d.ts","../src/parsers/pic/op-codes.ts","../src/parsers/pic/pic-state.ts","../src/parsers/pic/points.ts","../src/parsers/pic/handlers.ts","../src/parsers/pic/parser.ts","../src/parsers/pic/index.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/cli-progress/index.d.ts","../../../node_modules/@types/columnify/index.d.ts","../../../node_modules/@types/expand-tilde/index.d.ts","../../../node_modules/@types/gif-encoder/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/@types/json-schema/index.d.ts","../../../node_modules/@types/json5/index.d.ts","../../../node_modules/@types/minimatch/index.d.ts","../../../node_modules/@types/minimist/index.d.ts","../../../node_modules/@types/normalize-package-data/index.d.ts","../../../node_modules/@types/pngjs/index.d.ts","../../../node_modules/@types/semver/classes/semver.d.ts","../../../node_modules/@types/semver/functions/parse.d.ts","../../../node_modules/@types/semver/functions/valid.d.ts","../../../node_modules/@types/semver/functions/clean.d.ts","../../../node_modules/@types/semver/functions/inc.d.ts","../../../node_modules/@types/semver/functions/diff.d.ts","../../../node_modules/@types/semver/functions/major.d.ts","../../../node_modules/@types/semver/functions/minor.d.ts","../../../node_modules/@types/semver/functions/patch.d.ts","../../../node_modules/@types/semver/functions/prerelease.d.ts","../../../node_modules/@types/semver/functions/compare.d.ts","../../../node_modules/@types/semver/functions/rcompare.d.ts","../../../node_modules/@types/semver/functions/compare-loose.d.ts","../../../node_modules/@types/semver/functions/compare-build.d.ts","../../../node_modules/@types/semver/functions/sort.d.ts","../../../node_modules/@types/semver/functions/rsort.d.ts","../../../node_modules/@types/semver/functions/gt.d.ts","../../../node_modules/@types/semver/functions/lt.d.ts","../../../node_modules/@types/semver/functions/eq.d.ts","../../../node_modules/@types/semver/functions/neq.d.ts","../../../node_modules/@types/semver/functions/gte.d.ts","../../../node_modules/@types/semver/functions/lte.d.ts","../../../node_modules/@types/semver/functions/cmp.d.ts","../../../node_modules/@types/semver/functions/coerce.d.ts","../../../node_modules/@types/semver/classes/comparator.d.ts","../../../node_modules/@types/semver/classes/range.d.ts","../../../node_modules/@types/semver/functions/satisfies.d.ts","../../../node_modules/@types/semver/ranges/max-satisfying.d.ts","../../../node_modules/@types/semver/ranges/min-satisfying.d.ts","../../../node_modules/@types/semver/ranges/to-comparators.d.ts","../../../node_modules/@types/semver/ranges/min-version.d.ts","../../../node_modules/@types/semver/ranges/valid.d.ts","../../../node_modules/@types/semver/ranges/outside.d.ts","../../../node_modules/@types/semver/ranges/gtr.d.ts","../../../node_modules/@types/semver/ranges/ltr.d.ts","../../../node_modules/@types/semver/ranges/intersects.d.ts","../../../node_modules/@types/semver/ranges/simplify.d.ts","../../../node_modules/@types/semver/ranges/subset.d.ts","../../../node_modules/@types/semver/internals/identifiers.d.ts","../../../node_modules/@types/semver/index.d.ts","../../../node_modules/@types/stack-utils/index.d.ts","../../../node_modules/@types/through2/index.d.ts","../../../node_modules/@types/yargs-parser/index.d.ts","../../../node_modules/@types/yargs/index.d.ts"],"fileInfos":[{"version":"824cb491a40f7e8fdeb56f1df5edf91b23f3e3ee6b4cde84d4a99be32338faee","affectsGlobalScope":true,"impliedFormat":1},{"version":"45b7ab580deca34ae9729e97c13cfd999df04416a79116c3bfb483804f85ded4","impliedFormat":1},{"version":"3facaf05f0c5fc569c5649dd359892c98a85557e3e0c847964caeb67076f4d75","impliedFormat":1},{"version":"9a68c0c07ae2fa71b44384a839b7b8d81662a236d4b9ac30916718f7510b1b2d","impliedFormat":1},{"version":"5e1c4c362065a6b95ff952c0eab010f04dcd2c3494e813b493ecfd4fcb9fc0d8","impliedFormat":1},{"version":"68d73b4a11549f9c0b7d352d10e91e5dca8faa3322bfb77b661839c42b1ddec7","impliedFormat":1},{"version":"5efce4fc3c29ea84e8928f97adec086e3dc876365e0982cc8479a07954a3efd4","impliedFormat":1},{"version":"87d693a4920d794a73384b3c779cadcb8548ac6945aa7a925832fe2418c9527a","affectsGlobalScope":true,"impliedFormat":1},{"version":"76f838d5d49b65de83bc345c04aa54c62a3cfdb72a477dc0c0fce89a30596c30","affectsGlobalScope":true,"impliedFormat":1},{"version":"73e370058f82add1fdbc78ef3d1aab110108f2d5d9c857cb55d3361982347ace","affectsGlobalScope":true,"impliedFormat":1},{"version":"80e18897e5884b6723488d4f5652167e7bb5024f946743134ecc4aa4ee731f89","affectsGlobalScope":true,"impliedFormat":1},{"version":"cd034f499c6cdca722b60c04b5b1b78e058487a7085a8e0d6fb50809947ee573","affectsGlobalScope":true,"impliedFormat":1},{"version":"138fb588d26538783b78d1e3b2c2cc12d55840b97bf5e08bca7f7a174fbe2f17","affectsGlobalScope":true,"impliedFormat":1},{"version":"dc2df20b1bcdc8c2d34af4926e2c3ab15ffe1160a63e58b7e09833f616efff44","affectsGlobalScope":true,"impliedFormat":1},{"version":"4443e68b35f3332f753eacc66a04ac1d2053b8b035a0e0ac1d455392b5e243b3","affectsGlobalScope":true,"impliedFormat":1},{"version":"bc47685641087c015972a3f072480889f0d6c65515f12bd85222f49a98952ed7","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":"93495ff27b8746f55d19fcbcdbaccc99fd95f19d057aed1bd2c0cafe1335fbf0","affectsGlobalScope":true,"impliedFormat":1},{"version":"6fc23bb8c3965964be8c597310a2878b53a0306edb71d4b5a4dfe760186bcc01","affectsGlobalScope":true,"impliedFormat":1},{"version":"ea011c76963fb15ef1cdd7ce6a6808b46322c527de2077b6cfdf23ae6f5f9ec7","affectsGlobalScope":true,"impliedFormat":1},{"version":"38f0219c9e23c915ef9790ab1d680440d95419ad264816fa15009a8851e79119","affectsGlobalScope":true,"impliedFormat":1},{"version":"bb42a7797d996412ecdc5b2787720de477103a0b2e53058569069a0e2bae6c7e","affectsGlobalScope":true,"impliedFormat":1},{"version":"4738f2420687fd85629c9efb470793bb753709c2379e5f85bc1815d875ceadcd","affectsGlobalScope":true,"impliedFormat":1},{"version":"2f11ff796926e0832f9ae148008138ad583bd181899ab7dd768a2666700b1893","affectsGlobalScope":true,"impliedFormat":1},{"version":"4de680d5bb41c17f7f68e0419412ca23c98d5749dcaaea1896172f06435891fc","affectsGlobalScope":true,"impliedFormat":1},{"version":"9fc46429fbe091ac5ad2608c657201eb68b6f1b8341bd6d670047d32ed0a88fa","affectsGlobalScope":true,"impliedFormat":1},{"version":"61c37c1de663cf4171e1192466e52c7a382afa58da01b1dc75058f032ddf0839","affectsGlobalScope":true,"impliedFormat":1},{"version":"b541a838a13f9234aba650a825393ffc2292dc0fc87681a5d81ef0c96d281e7a","affectsGlobalScope":true,"impliedFormat":1},{"version":"b20fe0eca9a4e405f1a5ae24a2b3290b37cf7f21eba6cbe4fc3fab979237d4f3","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":"49ed889be54031e1044af0ad2c603d627b8bda8b50c1a68435fe85583901d072","affectsGlobalScope":true,"impliedFormat":1},{"version":"e93d098658ce4f0c8a0779e6cab91d0259efb88a318137f686ad76f8410ca270","affectsGlobalScope":true,"impliedFormat":1},{"version":"063600664504610fe3e99b717a1223f8b1900087fab0b4cad1496a114744f8df","affectsGlobalScope":true,"impliedFormat":1},{"version":"934019d7e3c81950f9a8426d093458b65d5aff2c7c1511233c0fd5b941e608ab","affectsGlobalScope":true,"impliedFormat":1},{"version":"bf14a426dbbf1022d11bd08d6b8e709a2e9d246f0c6c1032f3b2edb9a902adbe","affectsGlobalScope":true,"impliedFormat":1},{"version":"5e07ed3809d48205d5b985642a59f2eba47c402374a7cf8006b686f79efadcbd","affectsGlobalScope":true,"impliedFormat":1},{"version":"2b72d528b2e2fe3c57889ca7baef5e13a56c957b946906d03767c642f386bbc3","affectsGlobalScope":true,"impliedFormat":1},{"version":"8073890e29d2f46fdbc19b8d6d2eb9ea58db9a2052f8640af20baff9afbc8640","affectsGlobalScope":true,"impliedFormat":1},{"version":"368af93f74c9c932edd84c58883e736c9e3d53cec1fe24c0b0ff451f529ceab1","affectsGlobalScope":true,"impliedFormat":1},{"version":"13f6e6380c78e15e140243dc4be2fa546c287c6d61f4729bc2dd7cf449605471","affectsGlobalScope":true,"impliedFormat":1},{"version":"33358442698bb565130f52ba79bfd3d4d484ac85fe33f3cb1759c54d18201393","affectsGlobalScope":true,"impliedFormat":1},{"version":"782dec38049b92d4e85c1585fbea5474a219c6984a35b004963b00beb1aab538","affectsGlobalScope":true,"impliedFormat":1},{"version":"95f1023b824c2c511c48f1201e2d1188bcb0ca1138a309a870b956d2e92e44ab","impliedFormat":1},{"version":"84262150e685c00b3784caffbff174fdca009ca885af27bc3e8562b12877050b","signature":"4463f618791255fd325533319f66595b21f0c4e74b072eaa63b1fbab5b564026","impliedFormat":1},{"version":"956dcd3ad5937fd81f395c73626960bf5e2ccfa032b3be5ef33915a27f5c2a60","signature":"7715a14e89ecca02425c6788e7b0332c50e2fd9e604cd66dc3744e4dc314a078","impliedFormat":1},{"version":"90a264f8f5a72b8514ef273df6a6f499ebc1ec9c8136d40fff2c42a0b0d2b852","signature":"59238e490da3c407a5a1f451731c489af25adb5c488114b49ece64c6dd3e6449","impliedFormat":1},{"version":"966f056ebe72b9837610a3ae01ec9347180a809367aa7a293960926f705168c2","impliedFormat":1},{"version":"0c1f44637600972d33677d52632a72d66c5aa3fb95617349128854335acc40df","impliedFormat":1},{"version":"4ae1783dd5e689d626e58eec7f1c889f594433d06c2f0b06c064de89bf3182a5","impliedFormat":1},{"version":"1ef067f412b9522d68f2d91e80101a8cb9fc61b7bf3e77eee5ef3d5093590d80","impliedFormat":1},{"version":"53f113de3ad81fa30502b308e01184bb5bd43cefbac01708a13d42dc2c797d36","impliedFormat":1},{"version":"4e8cc940cf260dbba14214900d0c6c6e5b4baca87b9d1fca26966d298813c0fe","impliedFormat":1},{"version":"ac94d807a1f50cb7a91b6c6955053631760ae013953bb248254a00ea30efea53","impliedFormat":1},{"version":"e0ea30630363a32a33162935b07fee3ff3a3c68aab6ccd4e88b1209ed1c26649","impliedFormat":1},{"version":"1f26d9b96afdc94c316cf80d81fcb738ade487904b09b63023426a904dad28b3","impliedFormat":1},{"version":"c0ae93dcc900c0b315aa24fa199be41a0fb6c42ca6c163f7fd465e3c73f7191e","impliedFormat":1},{"version":"e71a8c03346f55366f9a3c97fb741e5f04ea42cd410c803a269ac36388030135","impliedFormat":1},{"version":"88bd045b42de48e787820d524a08d44f6fb80e263cbe6ffcfeae8f4aa4aa39d1","impliedFormat":1},{"version":"d66e0f949adbb090a9dac1ede8cc30a6fac008337cff5fb639e65b7f455fc8ef","impliedFormat":1},{"version":"948f71d774b9a1f26e65bf31e98f7a496c950545f65ac1a02efdb5a069425f21","impliedFormat":1},{"version":"612758c2d8a1b3be83fd212e89a8261b646be05d7b98a171d81b99d56d607398","impliedFormat":1},{"version":"dbe05245abd840f479bd6c72a58ff59502925242a896fdfe908977645fccc338","impliedFormat":1},{"version":"357b052e668cf066f810343881e13093a5583be9636522fb0d90c3e73547ea34","impliedFormat":1},{"version":"3df9c868676b1070679b6de2a5be1c99b7fbe914fd4db60e7282b3e0ab0c0d22","impliedFormat":1},{"version":"a5c5a8123654b5a3d5bb475b43a841078ca9fc2c98f55c29569ab9474d249713","impliedFormat":1},{"version":"9bb6489557890cef5e623d866c1ae6833fabe2741ca53c08519ca04103c1fc39","impliedFormat":1},{"version":"2bab226c52a83e1776d6ce3a2616a65f12f84e8d95b59c0a64f1ae047665a8ab","impliedFormat":1},{"version":"5de4170f40bfacf9bf725faf3b98ae0e4884f4f0d6bdc43fad7fe8477d0171df","impliedFormat":1},{"version":"dbd40c1f1211397825616b5dfce6b0740442fe6aba2a93595150ff12cecd0af9","signature":"9b6605e3b54ecbdbcaedc8ce1a6764405d6d2e3440819630cc76ea04bfe73f1e","impliedFormat":1},{"version":"f1cea97930ea24f1182dfa46b3f509700c0d13e752af114c9b6ae3203320790a","signature":"f1f44bb2304b5f9954632bff7027821701818a087ee92b831767be8bc62fee3f","impliedFormat":1},{"version":"9f9d9e2954f8fb62c6625ec1f50e387424606ddfc2acd055ded79d435a410000","signature":"8ce14b0a5c49b1b7eb1141ad62567bd21fe30c7daa1ffe32ba7a98a567273583","impliedFormat":1},{"version":"c5a731c403086d8ee2f818194c05d6c5724feb623806048318241aed8e9bbbb3","signature":"3cb322004419c2a1eb2d10e9d00483ddf10a85117ed874a256cb2ec8370b8ce3","impliedFormat":1},{"version":"d61792ec9e2e502c06ad41f33df2bbce509ad22ab9450f0314e16ba082c8d08c","impliedFormat":1},{"version":"2a709c43cb7a76b169fe263764d8dbc18097b8b86ba8210d76d9cd4023abb325","impliedFormat":1},{"version":"25c32c53025d96a4ee0f9b8fea2aaee819e5eb4d7ad27e33b193fa98c9678c32","signature":"d9dc66dcd59912c35945d10df79339fee79798dca9097a574a5acbfb21d28599","impliedFormat":1},{"version":"c260da830617f35f3f6ff1cd5eea15faba534ce688400817c29d2d2fee272621","signature":"41fcdbf982b82e63a9dccad36d31f0a6c854878972fc9c2671664cbb501138d4","impliedFormat":1},{"version":"b5c6c6d627455e08d4537ebf771a8ea492f01dcdf9073687c09dda459a0a7b7e","signature":"344214287be164f0e980277e6fe7a5d08c0e92b72a9e566750b0627482c741e5","impliedFormat":1},{"version":"0601552f328313512e824600ac362f5eceb256e78777d4f5dc79109f093fbb3b","signature":"1fa8261db3828325e7f6e8e337f3afbf03a8e38fbdf1b9e09f0fea5c58f75232","impliedFormat":1},{"version":"a27b86391646ea8f9935262e0e68482d7cc6c446c8f04543e5c51fff676fd636","signature":"7f5182e487151e5d36ad8edef1cbb0c8d937ad3241a5cda002089f1e7628c4fd","impliedFormat":1},{"version":"f4cfc0d2be917ec3525542053170077016131024e12a80e28cf256921449e1bd","signature":"9b83897677d9e9cb3f2961baa19cf19999a15c2a27c085a4ec025caeb23977db","impliedFormat":1},{"version":"250f702ea7e393d1c7587057cbce90aa119dababc429c9ed2a017b4f9e52df83","signature":"e17612c7859b4cea20aaf4da0447697ef455dfc8069cb955f0ac71b66559145b","impliedFormat":1},{"version":"e481f3f104b12d676d611a2ad8fa1ea1a2c42082ddb092bceeeb81c4415169eb","signature":"953d85ddd865a02d67a199f3166e3e68053bd959d5efabe97d884583c6ff88f3","impliedFormat":1},{"version":"4779b4707da9adff86e571993927d246f1537ec4d252390ee6b51f3fe636cc18","signature":"a0dad3fda1440240b023de9c0804d62df4095db62dcc9b271b25ce641ecb8bb2","impliedFormat":1},{"version":"aeab2f92a25cd6845103fd4bbbd75ca047e2479ceec95b40a234078951c173e6","impliedFormat":1},{"version":"d9b46eda5b9931b8c01af32ddb45c53042b76b8c2162f0881ac5ea10cf3b9aa1","signature":"39b3e5c519a1525af059deda1a004afcab50609c019754b8ea808929881ca1f1","impliedFormat":1},{"version":"dd5e23862e9694fae51d6939fc74519a7a434e2b9c1225f89a9a3fb42acb815d","signature":"4e28abd87409fadea7a87bc648ea0ac967ad9c908bc66011b19a917bbf4e0c41","impliedFormat":1},{"version":"f7394eafbbd3382c3fe8bcd0db893c66a7f99358a8b80b6ccafb59ba97e71da9","impliedFormat":1},{"version":"6fc9bbb9bec4ca352f671847050b85a48fe88ec1088a9693e9a1a46425d622ff","impliedFormat":1},{"version":"6da88a4f11ff14ca90fa8aaa4775fdc477d5c387fa8e6531adc4489f207b8a6a","impliedFormat":1},{"version":"c5021c781740b11d7fb1dc3275d00c10a4fb7204e8fab84f5baac93198258979","signature":"0b7cf32145a98ac3a7006dcc4a2adb38e0555e7a6e4c1fef69501173ef234564","impliedFormat":1},{"version":"17e2b1d71ecb9b33f6d73531e1ffa50330cc67f3a76f8711613b8734a4cacf99","signature":"30bdec16be05da0c26571ddb86b871acec317914bdbccd03152cf2d729c73867","impliedFormat":1},{"version":"ffa79c6998c09b74ecdba1910ff592fedd9f8b2856bbc02cc24a77cf1ca28836","signature":"832da91b5c7ff38ad738070712567062323e51f66847179b814662af547e07d4","impliedFormat":1},{"version":"293b0d2b440c905c97b29748469019e4682f9293cd52eab66e87ef59a8970c94","signature":"7253b54af4864c44cf622e876befdd400cb925267174363df0962443f3ada530","impliedFormat":1},{"version":"959b0f8a7159d6883db9dc233ea7ffbb4c97603a6cc649e4cf0f1f3285587c6f","signature":"6e2bd81b0a6b8244316538c35bd28ed16152aaadb127a4f398035b83799e6332","impliedFormat":1},{"version":"f761962437082fe85ac7a5b947f4d79fbcf91b0be67f60ee4677b714791ca428","signature":"2d9faf05ebdf6afb9b48836c2c1fb0b0cb7947fea54070f1751730e94cad0707","impliedFormat":1},{"version":"f6b7558415b247109f5b8bcd567360ed74c39381719ab47db7dfeb81b23ab78f","signature":"046bef1774d16131116507bda40c17fa8e5163520fe418a0320c2c04fa9f615c","impliedFormat":1},{"version":"a8c9302bb537ebb2a7d747aaa04560b663d1a5975ada8604a4e7e7cd5f6caab7","signature":"d2b6fddc7d21a3d1abbd0c029199d17021004838f2ede3b8785faac82eba2b81","impliedFormat":1},{"version":"c1cf9eee1528f7a244a803bc200d9342b955a27290fb990fb64a390048ca0c51","impliedFormat":1},{"version":"0b8fe149e4f052afdf21b6021bf88abe7260cf23cc871615eb12841dea80af9b","impliedFormat":1},{"version":"e25d0306af431489ee181c56dc8b8a4c95cac276a576e872f96d15aeb9482ee0","impliedFormat":1},{"version":"19bc8ad93c20fbb0c2c164240009b05e714cac5dcb785260583156d9305cb249","impliedFormat":1},{"version":"10d0e79cf92e795accfd4bc6b2df6c4589feb3ebc0aaaba3997fc1df254eb2e4","impliedFormat":1},{"version":"0cba3a5d7b81356222594442753cf90dd2892e5ccfe1d262aaca6896ba6c1380","impliedFormat":1},{"version":"a69c09dbea52352f479d3e7ac949fde3d17b195abe90b045d619f747b38d6d1a","impliedFormat":1},{"version":"c2ab70bbc7a24c42a790890739dd8a0ba9d2e15038b40dff8163a97a5d148c00","affectsGlobalScope":true,"impliedFormat":1},{"version":"422dbb183fdced59425ca072c8bd09efaa77ce4e2ab928ec0d8a1ce062d2a45a","impliedFormat":1},{"version":"2a801b0322994c3dd7f0ef30265d19b3dd3bae6d793596879166ed6219c3da68","affectsGlobalScope":true,"impliedFormat":1},{"version":"1dab5ab6bcf11de47ab9db295df8c4f1d92ffa750e8f095e88c71ce4c3299628","impliedFormat":1},{"version":"f71f46ccd5a90566f0a37b25b23bc4684381ab2180bdf6733f4e6624474e1894","impliedFormat":1},{"version":"54e65985a3ee3cec182e6a555e20974ea936fc8b8d1738c14e8ed8a42bd921d4","affectsGlobalScope":true,"impliedFormat":1},{"version":"82408ed3e959ddc60d3e9904481b5a8dc16469928257af22a3f7d1a3bc7fd8c4","impliedFormat":1},{"version":"bcc8caf03ee65fe8610d258752f255fbdddbb2e4de7b6c5628956a5a0d859ec8","impliedFormat":1},{"version":"34e5de87d983bc6aefef8b17658556e3157003e8d9555d3cb098c6bef0b5fbc8","impliedFormat":1},{"version":"cc0b61316c4f37393f1f9595e93b673f4184e9d07f4c127165a490ec4a928668","impliedFormat":1},{"version":"f27371653aded82b2b160f7a7033fb4a5b1534b6f6081ef7be1468f0f15327d3","impliedFormat":1},{"version":"c762cd6754b13a461c54b59d0ae0ab7aeef3c292c6cf889873f786ee4d8e75c9","impliedFormat":1},{"version":"f4ea7d5df644785bd9fbf419930cbaec118f0d8b4160037d2339b8e23c059e79","impliedFormat":1},{"version":"c28e5baab1b53377c90d12970e207a2644bc3627840066449e37e2a59125d07e","affectsGlobalScope":true,"impliedFormat":1},{"version":"7a5459efa09ea82088234e6533a203d528c594b01787fb90fba148885a36e8b6","impliedFormat":1},{"version":"ae97e20f2e10dbeec193d6a2f9cd9a367a1e293e7d6b33b68bacea166afd7792","impliedFormat":1},{"version":"fce6a1a1553ff7d54ffb8bb3ae488c9cb5f2f4f4e52212c1abe40f544819ef35","impliedFormat":1},{"version":"ad41bb744149e92adb06eb953da195115620a3f2ad48e7d3ae04d10762dae197","impliedFormat":1},{"version":"bf73c576885408d4a176f44a9035d798827cc5020d58284cb18d7573430d9022","impliedFormat":1},{"version":"7ae078ca42a670445ae0c6a97c029cb83d143d62abd1730efb33f68f0b2c0e82","impliedFormat":1},{"version":"e8b18c6385ff784228a6f369694fcf1a6b475355ba89090a88de13587a9391d5","affectsGlobalScope":true,"impliedFormat":1},{"version":"5d0a9ea09d990b5788f867f1c79d4878f86f7384cb7dab38eecbf22f9efd063d","impliedFormat":1},{"version":"12eea70b5e11e924bb0543aea5eadc16ced318aa26001b453b0d561c2fd0bd1e","impliedFormat":1},{"version":"08777cd9318d294646b121838574e1dd7acbb22c21a03df84e1f2c87b1ad47f2","impliedFormat":1},{"version":"08a90bcdc717df3d50a2ce178d966a8c353fd23e5c392fd3594a6e39d9bb6304","impliedFormat":1},{"version":"8207e7e6db9aa5fc7e61c8f17ba74cf9c115d26f51f91ee93f790815a7ea9dfb","affectsGlobalScope":true,"impliedFormat":1},{"version":"2a12d2da5ac4c4979401a3f6eaafa874747a37c365e4bc18aa2b171ae134d21b","impliedFormat":1},{"version":"002b837927b53f3714308ecd96f72ee8a053b8aeb28213d8ec6de23ed1608b66","impliedFormat":1},{"version":"1dc9c847473bb47279e398b22c740c83ea37a5c88bf66629666e3cf4c5b9f99c","impliedFormat":1},{"version":"a9e4a5a24bf2c44de4c98274975a1a705a0abbaad04df3557c2d3cd8b1727949","impliedFormat":1},{"version":"00fa7ce8bc8acc560dc341bbfdf37840a8c59e6a67c9bfa3fa5f36254df35db2","impliedFormat":1},{"version":"1b952304137851e45bc009785de89ada562d9376177c97e37702e39e60c2f1ff","impliedFormat":1},{"version":"806ef4cac3b3d9fa4a48d849c8e084d7c72fcd7b16d76e06049a9ed742ff79c0","affectsGlobalScope":true,"impliedFormat":1},{"version":"cfe724f7c694aab65a9bdd1acb05997848c504548c9d4c71645c187a091cfa2a","impliedFormat":1},{"version":"5f0ed51db151c2cdc4fa3bb0f44ce6066912ad001b607a34e65a96c52eb76248","impliedFormat":1},{"version":"3345c276cab0e76dda86c0fb79104ff915a4580ba0f3e440870e183b1baec476","affectsGlobalScope":true,"impliedFormat":1},{"version":"664d8f2d59164f2e08c543981453893bc7e003e4dfd29651ce09db13e9457980","impliedFormat":1},{"version":"e383ff72aabf294913f8c346f5da1445ae6ad525836d28efd52cbadc01a361a6","impliedFormat":1},{"version":"f52fbf64c7e480271a9096763c4882d356b05cab05bf56a64e68a95313cd2ce2","impliedFormat":1},{"version":"59bdb65f28d7ce52ccfc906e9aaf422f8b8534b2d21c32a27d7819be5ad81df7","impliedFormat":1},{"version":"1835259a20b9fa6b1882931375b69ae5978195f2b139b4e0db51ec8319261649","impliedFormat":1},{"version":"b52cd693219a63dd21282ac99a7bf55f77cbe8a91f097968856419cc2e05f017","impliedFormat":1},{"version":"3aff9c8c36192e46a84afe7b926136d520487155154ab9ba982a8b544ea8fc95","impliedFormat":1},{"version":"a880cf8d85af2e4189c709b0fea613741649c0e40fffb4360ec70762563d5de0","impliedFormat":1},{"version":"85bbf436a15bbeda4db888be3062d47f99c66fd05d7c50f0f6473a9151b6a070","impliedFormat":1},{"version":"9f9c49c95ecd25e0cb2587751925976cf64fd184714cb11e213749c80cf0f927","impliedFormat":1},{"version":"f0c75c08a71f9212c93a719a25fb0320d53f2e50ca89a812640e08f8ad8c408c","impliedFormat":1},{"version":"ab9b9a36e5284fd8d3bf2f7d5fcbc60052f25f27e4d20954782099282c60d23e","affectsGlobalScope":true,"impliedFormat":1},{"version":"267af67ea520cabd16402522756b19ac63d9e2c1c86e7c4d1ddeb991c32e12c9","impliedFormat":1},{"version":"15814a8b6bc106ed3c3389ab110a650f837605b77680dd19b67b31cfa4d0f529","impliedFormat":1},{"version":"c19ede4a7e25ff7631d53c9e46ceafb460074b76c52faaf0d7782e5cd1253446","impliedFormat":1},{"version":"d7087404bd1a4e438c77becd4a21cc13a65534ca51224e954f787e9e09b33970","signature":"e36d6b19a8118c1888ad582ea165b727dd392705a3a2d4632884f58f08ff2391","impliedFormat":1},{"version":"297a0fb7ed4bd878288dd2e31c5d7f1c60d5191ef29c5f327821b0bc2f64c55d","signature":"c9217d779de87affdfd1a0c5512167e6fc06ee2bcb985987542b08e4db621d33","impliedFormat":1},{"version":"7a07c624ad970ef808dd2b4a3e5136a4eabbeba3575c7ab2bdc40cab2ad4a1c6","signature":"7eec1925441d2e3144444cd7d59b2deed712004f4a3928569927eff9a735f2f9","impliedFormat":1},{"version":"e006f27b178624dfe86a8d3a1f731650cb51458ec29f4a310bbdd9e17a45a3e3","signature":"b0fcab3e0a12b6e87e1121486dfde06883b5020dd30ddcf48c4d8e9f017d6e7b","impliedFormat":1},{"version":"23cd4e0c75cb6de7214de81e72a3b5cac892d2476df76d16d9ef55cc1497ee15","signature":"3f0a545bed4b9610aaa866710bc8a6ee8714a3f07c5e8059d2f1853efc4fe3c2","impliedFormat":1},{"version":"8780b2d813736784da80ba71d640e468ec1be4648558710bd49a799b027bd9b5","impliedFormat":1},{"version":"020f5d225d7433bc6c3e90f508ddd2c3e1e8a5d84e5900aea0af87d6076d93cf","signature":"0553f1075155e84048c656482b9ea2469f8c41c3c4175d7ebdaa07f28013fd37","impliedFormat":1},{"version":"4489c6a9fde8934733aa7df6f7911461ee6e9e4ad092736bd416f6b2cc20b2c6","impliedFormat":1},{"version":"7a1f3d0b8dd0e869c58b44848d9f0be3592c3ff6dc77091e7130306f6d2907ed","impliedFormat":1},{"version":"8041cfce439ff29d339742389de04c136e3029d6b1817f07b2d7fcbfb7534990","impliedFormat":1},{"version":"670a76db379b27c8ff42f1ba927828a22862e2ab0b0908e38b671f0e912cc5ed","impliedFormat":1},{"version":"29a46d003ca3c721e6405f00dee7e3de91b14e09701eba5d887bf76fb2d47d38","impliedFormat":1},{"version":"069bebfee29864e3955378107e243508b163e77ab10de6a5ee03ae06939f0bb9","impliedFormat":1},{"version":"70b3cf5c5122849e757a21b3a4ec8cac43d06a133f161acf52189c38179badde","impliedFormat":1},{"version":"f4054ad0c9b4ce4e3f3a3a545be2388af5c1636d23c5adc663e1efbeeabf344d","impliedFormat":1},{"version":"cb290230e6c5d547a2791e709ebcdd52594cfc76221518081c1c22ae39b03c8b","impliedFormat":1},{"version":"d5406af78680a9a0e1ed3c758e4c7999d4c77c89a9cbfbbe3142c20c1f0ad122","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":"c085e9aa62d1ae1375794c1fb927a445fa105fed891a7e24edbb1c3300f7384a","impliedFormat":1},{"version":"f315e1e65a1f80992f0509e84e4ae2df15ecd9ef73df975f7c98813b71e4c8da","impliedFormat":1},{"version":"5b9586e9b0b6322e5bfbd2c29bd3b8e21ab9d871f82346cb71020e3d84bae73e","impliedFormat":1},{"version":"3e70a7e67c2cb16f8cd49097360c0309fe9d1e3210ff9222e9dac1f8df9d4fb6","impliedFormat":1},{"version":"ab68d2a3e3e8767c3fba8f80de099a1cfc18c0de79e42cb02ae66e22dfe14a66","impliedFormat":1},{"version":"d96cc6598148bf1a98fb2e8dcf01c63a4b3558bdaec6ef35e087fd0562eb40ec","impliedFormat":1},{"version":"5ab630d466ac55baa6d32820378098404fc18ba9da6f7bc5df30c5dbb1cffae8","affectsGlobalScope":true,"impliedFormat":1},{"version":"f3d8c757e148ad968f0d98697987db363070abada5f503da3c06aefd9d4248c1","impliedFormat":1},{"version":"96d14f21b7652903852eef49379d04dbda28c16ed36468f8c9fa08f7c14c9538","impliedFormat":1},{"version":"8841e2aa774b89bd23302dede20663306dc1b9902431ac64b24be8b8d0e3f649","impliedFormat":1},{"version":"fbca5ffaebf282ec3cdac47b0d1d4a138a8b0bb32105251a38acb235087d3318","impliedFormat":1},{"version":"22293bd6fa12747929f8dfca3ec1684a3fe08638aa18023dd286ab337e88a592","impliedFormat":1},{"version":"90ac19cb97ae85c7ccfd0c04322b02ce088bda9de7b42cc081cbb3674fe5446d","impliedFormat":1},{"version":"cf3d384d082b933d987c4e2fe7bfb8710adfd9dc8155190056ed6695a25a559e","impliedFormat":1},{"version":"9871b7ee672bc16c78833bdab3052615834b08375cb144e4d2cba74473f4a589","impliedFormat":1},{"version":"c863198dae89420f3c552b5a03da6ed6d0acfa3807a64772b895db624b0de707","impliedFormat":1},{"version":"8b03a5e327d7db67112ebbc93b4f744133eda2c1743dbb0a990c61a8007823ef","impliedFormat":1},{"version":"86c73f2ee1752bac8eeeece234fd05dfcf0637a4fbd8032e4f5f43102faa8eec","impliedFormat":1},{"version":"42fad1f540271e35ca37cecda12c4ce2eef27f0f5cf0f8dd761d723c744d3159","impliedFormat":1},{"version":"ff3743a5de32bee10906aff63d1de726f6a7fd6ee2da4b8229054dfa69de2c34","impliedFormat":1},{"version":"83acd370f7f84f203e71ebba33ba61b7f1291ca027d7f9a662c6307d74e4ac22","impliedFormat":1},{"version":"1445cec898f90bdd18b2949b9590b3c012f5b7e1804e6e329fb0fe053946d5ec","impliedFormat":1},{"version":"0e5318ec2275d8da858b541920d9306650ae6ac8012f0e872fe66eb50321a669","impliedFormat":1},{"version":"cf530297c3fb3a92ec9591dd4fa229d58b5981e45fe6702a0bd2bea53a5e59be","impliedFormat":1},{"version":"c1f6f7d08d42148ddfe164d36d7aba91f467dbcb3caa715966ff95f55048b3a4","impliedFormat":1},{"version":"f4e9bf9103191ef3b3612d3ec0044ca4044ca5be27711fe648ada06fad4bcc85","impliedFormat":1},{"version":"0c1ee27b8f6a00097c2d6d91a21ee4d096ab52c1e28350f6362542b55380059a","impliedFormat":1},{"version":"7677d5b0db9e020d3017720f853ba18f415219fb3a9597343b1b1012cfd699f7","impliedFormat":1},{"version":"bc1c6bc119c1784b1a2be6d9c47addec0d83ef0d52c8fbe1f14a51b4dfffc675","impliedFormat":1},{"version":"52cf2ce99c2a23de70225e252e9822a22b4e0adb82643ab0b710858810e00bf1","impliedFormat":1},{"version":"770625067bb27a20b9826255a8d47b6b5b0a2d3dfcbd21f89904c731f671ba77","impliedFormat":1},{"version":"d1ed6765f4d7906a05968fb5cd6d1db8afa14dbe512a4884e8ea5c0f5e142c80","impliedFormat":1},{"version":"799c0f1b07c092626cf1efd71d459997635911bb5f7fc1196efe449bba87e965","impliedFormat":1},{"version":"2a184e4462b9914a30b1b5c41cf80c6d3428f17b20d3afb711fff3f0644001fd","impliedFormat":1},{"version":"9eabde32a3aa5d80de34af2c2206cdc3ee094c6504a8d0c2d6d20c7c179503cc","impliedFormat":1},{"version":"397c8051b6cfcb48aa22656f0faca2553c5f56187262135162ee79d2b2f6c966","impliedFormat":1},{"version":"a8ead142e0c87dcd5dc130eba1f8eeed506b08952d905c47621dc2f583b1bff9","impliedFormat":1},{"version":"a02f10ea5f73130efca046429254a4e3c06b5475baecc8f7b99a0014731be8b3","impliedFormat":1},{"version":"c2576a4083232b0e2d9bd06875dd43d371dee2e090325a9eac0133fd5650c1cb","impliedFormat":1},{"version":"4c9a0564bb317349de6a24eb4efea8bb79898fa72ad63a1809165f5bd42970dd","impliedFormat":1},{"version":"f40ac11d8859092d20f953aae14ba967282c3bb056431a37fced1866ec7a2681","impliedFormat":1},{"version":"cc11e9e79d4746cc59e0e17473a59d6f104692fd0eeea1bdb2e206eabed83b03","impliedFormat":1},{"version":"b444a410d34fb5e98aa5ee2b381362044f4884652e8bc8a11c8fe14bbd85518e","impliedFormat":1},{"version":"c35808c1f5e16d2c571aa65067e3cb95afeff843b259ecfa2fc107a9519b5392","impliedFormat":1},{"version":"14d5dc055143e941c8743c6a21fa459f961cbc3deedf1bfe47b11587ca4b3ef5","impliedFormat":1},{"version":"a3ad4e1fc542751005267d50a6298e6765928c0c3a8dce1572f2ba6ca518661c","impliedFormat":1},{"version":"f237e7c97a3a89f4591afd49ecb3bd8d14f51a1c4adc8fcae3430febedff5eb6","impliedFormat":1},{"version":"3ffdfbec93b7aed71082af62b8c3e0cc71261cc68d796665faa1e91604fbae8f","impliedFormat":1},{"version":"662201f943ed45b1ad600d03a90dffe20841e725203ced8b708c91fcd7f9379a","impliedFormat":1},{"version":"c9ef74c64ed051ea5b958621e7fb853fe3b56e8787c1587aefc6ea988b3c7e79","impliedFormat":1},{"version":"2462ccfac5f3375794b861abaa81da380f1bbd9401de59ffa43119a0b644253d","impliedFormat":1},{"version":"34baf65cfee92f110d6653322e2120c2d368ee64b3c7981dff08ed105c4f19b0","impliedFormat":1},{"version":"7d8ddf0f021c53099e34ee831a06c394d50371816caa98684812f089b4c6b3d4","impliedFormat":1},{"version":"ab82804a14454734010dcdcd43f564ff7b0389bee4c5692eec76ff5b30d4cf66","impliedFormat":1},{"version":"2cb91e85af2e2a3956a6d5614ffce76abc80705fef2c1e472c4fd75c196c892b","impliedFormat":1},{"version":"bae8d023ef6b23df7da26f51cea44321f95817c190342a36882e93b80d07a960","impliedFormat":1},{"version":"8495c63868f001b156fdeb6382ddd63dc6b2c9b91529ce08019caf312da37c59","impliedFormat":1}],"root":[[52,54],[77,80],[83,94],[98,105],[164,170]],"options":{"declaration":true,"declarationMap":true,"esModuleInterop":true,"module":100,"outDir":"./","skipLibCheck":true,"sourceMap":true,"strict":true,"target":5,"tsBuildInfoFile":"./.tscache"},"fileIdsList":[[95,154],[154],[64,154],[67,154],[67,68,154],[62,63,65,66,67,68,69,70,154],[58,59,60,61,154],[57,71,154],[55,56,154],[55,56,57,72,73,74,75,154],[57,154],[55,56,57,154],[81,154],[128,154,161],[106,107,108,154],[106,109,110,154,162],[52,53,54,77,79,80,90,92,93,94,98,100,103,105,154,169],[76,154],[77,78,154],[54,154],[77,154],[76,77,154],[96,97,154],[76,99,154],[76,101,102,154],[53,154],[78,79,102,104,154,163,164,165,166],[154,168],[79,154,163,164,165,167],[79,154],[78,154,163],[52,154],[90,102,104,154],[89,91,154],[76,77,90,154],[76,79,87,88,154],[78,82,83,84,85,154],[76,85,86,154],[154,171],[154,187],[154,171,172,173,174,175],[154,171,173],[126,154,161],[143,154,161],[127,154,161],[154,182],[154,183],[154,189,192],[111,154],[114,154],[115,120,154],[116,126,127,134,143,153,154],[116,117,126,134,154],[118,154],[119,120,127,135,154],[120,143,150,154],[121,123,126,134,154],[122,154],[123,124,154],[125,126,154],[126,154],[126,127,128,143,153,154],[126,127,128,143,154],[129,134,143,153,154],[126,127,129,130,134,143,150,153,154],[129,131,143,150,153,154],[111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,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],[126,132,154],[133,153,154],[123,126,134,143,154],[135,154],[136,154],[114,137,154],[138,152,154,158],[139,154],[140,154],[126,141,154],[141,142,154,156],[126,143,144,145,154],[143,145,154],[143,144,154],[146,154],[147,154],[126,148,149,154],[148,149,154],[120,134,143,150,154],[151,154],[134,152,154],[115,129,140,153,154],[120,154],[143,154,155],[154,156],[154,157],[115,120,126,128,137,143,153,154,156,158],[143,154,159],[143,154,159,161],[154,200,239],[154,200,224,239],[154,239],[154,200],[154,200,225,239],[154,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],[154,225,239],[154,242],[154,185,191],[154,189],[154,186,190],[154,188],[52,53,54,77,79,80,90,92,93,94,98,99,100,101,103,105,169],[76],[77,78],[54],[77],[99],[101],[53],[79,163,164,165],[79],[78,163],[52],[90],[89,91],[76,77,90],[76,79],[78,85],[76,85]],"referencedMap":[[96,1],[97,1],[95,2],[66,3],[67,2],[68,4],[69,5],[63,2],[71,6],[58,2],[60,2],[61,2],[62,7],[59,2],[65,3],[64,2],[70,2],[72,8],[55,2],[57,9],[76,10],[56,2],[75,11],[73,11],[74,12],[82,13],[81,2],[110,2],[107,2],[106,2],[162,14],[109,15],[163,16],[108,2],[170,17],[77,18],[99,18],[79,19],[101,18],[52,2],[80,20],[53,2],[54,2],[78,2],[90,21],[104,22],[98,23],[100,24],[103,25],[93,26],[167,27],[169,28],[164,2],[168,29],[165,30],[166,31],[94,32],[105,33],[83,2],[88,2],[92,34],[91,35],[84,2],[89,36],[86,37],[87,38],[85,2],[102,2],[173,39],[171,2],[185,2],[188,40],[187,2],[176,41],[172,39],[174,42],[175,39],[177,43],[178,2],[179,2],[180,44],[181,45],[182,2],[183,46],[184,47],[193,48],[194,2],[195,2],[196,2],[197,2],[111,49],[112,49],[114,50],[115,51],[116,52],[117,53],[118,54],[119,55],[120,56],[121,57],[122,58],[123,59],[124,59],[125,60],[126,61],[127,62],[128,63],[113,2],[160,2],[129,64],[130,65],[131,66],[161,67],[132,68],[133,69],[134,70],[135,71],[136,72],[137,73],[138,74],[139,75],[140,76],[141,77],[142,78],[143,79],[145,80],[144,81],[146,82],[147,83],[148,84],[149,85],[150,86],[151,87],[152,88],[153,89],[154,90],[155,91],[156,92],[157,93],[158,94],[159,95],[198,2],[199,96],[224,97],[225,98],[200,99],[203,99],[222,97],[223,97],[213,97],[212,100],[210,97],[205,97],[218,97],[216,97],[220,97],[204,97],[217,97],[221,97],[206,97],[207,97],[219,97],[201,97],[208,97],[209,97],[211,97],[215,97],[226,101],[214,97],[202,97],[239,102],[238,2],[233,101],[235,103],[234,101],[227,101],[228,101],[230,101],[232,101],[236,103],[237,103],[229,103],[231,103],[240,2],[241,44],[242,2],[243,104],[186,2],[192,105],[190,106],[191,107],[189,108],[49,2],[50,2],[10,2],[8,2],[9,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],[4,2],[24,2],[28,2],[25,2],[26,2],[27,2],[29,2],[30,2],[31,2],[5,2],[51,2],[32,2],[33,2],[34,2],[35,2],[6,2],[39,2],[36,2],[37,2],[38,2],[40,2],[7,2],[41,2],[46,2],[47,2],[42,2],[43,2],[44,2],[45,2],[1,2],[48,2],[12,2],[11,2]],"exportedModulesMap":[[96,1],[97,1],[95,2],[66,3],[67,2],[68,4],[69,5],[63,2],[71,6],[58,2],[60,2],[61,2],[62,7],[59,2],[65,3],[64,2],[70,2],[72,8],[55,2],[57,9],[76,10],[56,2],[75,11],[73,11],[74,12],[82,13],[81,2],[110,2],[107,2],[106,2],[162,14],[109,15],[163,16],[108,2],[170,109],[77,110],[99,110],[79,111],[101,110],[80,112],[90,113],[104,113],[100,114],[103,115],[93,116],[167,117],[169,28],[168,118],[165,118],[166,119],[94,120],[105,121],[92,122],[91,123],[89,124],[86,125],[87,126],[173,39],[171,2],[185,2],[188,40],[187,2],[176,41],[172,39],[174,42],[175,39],[177,43],[178,2],[179,2],[180,44],[181,45],[182,2],[183,46],[184,47],[193,48],[194,2],[195,2],[196,2],[197,2],[111,49],[112,49],[114,50],[115,51],[116,52],[117,53],[118,54],[119,55],[120,56],[121,57],[122,58],[123,59],[124,59],[125,60],[126,61],[127,62],[128,63],[113,2],[160,2],[129,64],[130,65],[131,66],[161,67],[132,68],[133,69],[134,70],[135,71],[136,72],[137,73],[138,74],[139,75],[140,76],[141,77],[142,78],[143,79],[145,80],[144,81],[146,82],[147,83],[148,84],[149,85],[150,86],[151,87],[152,88],[153,89],[154,90],[155,91],[156,92],[157,93],[158,94],[159,95],[198,2],[199,96],[224,97],[225,98],[200,99],[203,99],[222,97],[223,97],[213,97],[212,100],[210,97],[205,97],[218,97],[216,97],[220,97],[204,97],[217,97],[221,97],[206,97],[207,97],[219,97],[201,97],[208,97],[209,97],[211,97],[215,97],[226,101],[214,97],[202,97],[239,102],[238,2],[233,101],[235,103],[234,101],[227,101],[228,101],[230,101],[232,101],[236,103],[237,103],[229,103],[231,103],[240,2],[241,44],[242,2],[243,104],[186,2],[192,105],[190,106],[191,107],[189,108],[49,2],[50,2],[10,2],[8,2],[9,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],[4,2],[24,2],[28,2],[25,2],[26,2],[27,2],[29,2],[30,2],[31,2],[5,2],[51,2],[32,2],[33,2],[34,2],[35,2],[6,2],[39,2],[36,2],[37,2],[38,2],[40,2],[7,2],[41,2],[46,2],[47,2],[42,2],[43,2],[44,2],[45,2],[1,2],[48,2],[12,2],[11,2]],"semanticDiagnosticsPerFile":[96,97,95,66,67,68,69,63,71,58,60,61,62,59,65,64,70,72,55,57,76,56,75,73,74,82,81,110,107,106,162,109,163,108,170,77,99,79,101,52,80,53,54,78,90,104,98,100,103,93,167,169,164,168,165,166,94,105,83,88,92,91,84,89,86,87,85,102,173,171,185,188,187,176,172,174,175,177,178,179,180,181,182,183,184,193,194,195,196,197,111,112,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,113,160,129,130,131,161,132,133,134,135,136,137,138,139,140,141,142,143,145,144,146,147,148,149,150,151,152,153,154,155,156,157,158,159,198,199,224,225,200,203,222,223,213,212,210,205,218,216,220,204,217,221,206,207,219,201,208,209,211,215,226,214,202,239,238,233,235,234,227,228,230,232,236,237,229,231,240,241,242,243,186,192,190,191,189,49,50,10,8,9,14,13,2,15,16,17,18,19,20,21,22,3,23,4,24,28,25,26,27,29,30,31,5,51,32,33,34,35,6,39,36,37,38,40,7,41,46,47,42,43,44,45,1,48,12,11]},"version":"5.4.3"}
|