sb-edit-custom 0.20.25 → 0.20.27
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/lib/index.d.ts +1 -1
- package/lib/index.js +3 -2
- package/lib/models/game.js +51 -3
- package/lib/models/sprite.d.ts +1 -0
- package/lib/models/sprite.js +6 -2
- package/package.json +1 -1
package/lib/index.d.ts
CHANGED
|
@@ -13,4 +13,4 @@ export type { SpriteModel } from "./models/sprite";
|
|
|
13
13
|
export type { CostumeModel } from "./models/costume";
|
|
14
14
|
export type { SoundModel } from "./models/sound";
|
|
15
15
|
export { generateIndexJS } from "./models/game";
|
|
16
|
-
export { generateSpriteDefJS } from "./models/sprite";
|
|
16
|
+
export { generateSpriteDefJS, generateNewSpriteJS } from "./models/sprite";
|
package/lib/index.js
CHANGED
|
@@ -26,7 +26,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
26
26
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
27
27
|
};
|
|
28
28
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29
|
-
exports.generateSpriteDefJS = exports.generateIndexJS = exports.OpCode = exports.Script = exports.List = exports.Variable = exports.BlockInput = exports.Sound = exports.Costume = exports.Stage = exports.Sprite = exports.Project = void 0;
|
|
29
|
+
exports.generateNewSpriteJS = exports.generateSpriteDefJS = exports.generateIndexJS = exports.OpCode = exports.Script = exports.List = exports.Variable = exports.BlockInput = exports.Sound = exports.Costume = exports.Stage = exports.Sprite = exports.Project = void 0;
|
|
30
30
|
var BlockInput = __importStar(require("./BlockInput"));
|
|
31
31
|
exports.BlockInput = BlockInput;
|
|
32
32
|
var Costume_1 = __importDefault(require("./Costume"));
|
|
@@ -50,4 +50,5 @@ var game_1 = require("./models/game");
|
|
|
50
50
|
Object.defineProperty(exports, "generateIndexJS", { enumerable: true, get: function () { return game_1.generateIndexJS; } });
|
|
51
51
|
var sprite_1 = require("./models/sprite");
|
|
52
52
|
Object.defineProperty(exports, "generateSpriteDefJS", { enumerable: true, get: function () { return sprite_1.generateSpriteDefJS; } });
|
|
53
|
-
|
|
53
|
+
Object.defineProperty(exports, "generateNewSpriteJS", { enumerable: true, get: function () { return sprite_1.generateNewSpriteJS; } });
|
|
54
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFDQSx1REFBMkM7QUFVYSxnQ0FBVTtBQVRsRSxzREFBZ0M7QUFTQyxrQkFUMUIsaUJBQU8sQ0FTMEI7QUFSeEMsc0RBQWdDO0FBUXZCLGtCQVJGLGlCQUFPLENBUUU7QUFQaEIsa0RBQTRCO0FBT2MsZ0JBUG5DLGVBQUssQ0FPbUM7QUFOL0MsbUNBQXlDO0FBTXZCLHVGQU5ULGVBQU0sT0FNUztBQUFFLHNGQU5ULGNBQUssT0FNUztBQUwvQiwrQkFBd0M7QUFLc0MscUZBTHJFLFdBQUksT0FLcUU7QUFBZCx5RkFMckQsZUFBUSxPQUtxRDtBQUo1RSxvREFBOEI7QUFJc0QsaUJBSjdFLGdCQUFNLENBSTZFO0FBRjFGLG1DQUFrQztBQUUwRCx1RkFGbkYsZUFBTSxPQUVtRjtBQVFsRywyQkFBMkI7QUFDM0Isc0NBQWdEO0FBQXZDLHVHQUFBLGVBQWUsT0FBQTtBQUN4QiwwQ0FBMkU7QUFBbEUsNkdBQUEsbUJBQW1CLE9BQUE7QUFBRSw2R0FBQSxtQkFBbUIsT0FBQSJ9
|
package/lib/models/game.js
CHANGED
|
@@ -12,12 +12,60 @@ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
|
|
12
12
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
13
|
exports.generateIndexJS = void 0;
|
|
14
14
|
var toLeopard_1 = require("../io/leopard/toLeopard");
|
|
15
|
+
// export function generateIndexJS(game: GameModel): string {
|
|
16
|
+
// const toLeopardJS = getPathsToRelativeOrAbsolute(defaultOptions.leopardJSURL);
|
|
17
|
+
// return `
|
|
18
|
+
// import { Sprite, Trigger, Watcher, Costume, Color, Sound, Project } from ${JSON.stringify(toLeopardJS({ from: "index" }))};
|
|
19
|
+
// export const CostumeScale = ${game.costumeScale}; // Adjust this value to scale costumes
|
|
20
|
+
// ${[game.stage, ...Object.values(game.sprites)]
|
|
21
|
+
// .map(
|
|
22
|
+
// target =>
|
|
23
|
+
// `import ${target.name} from ${JSON.stringify(defaultOptions.getTargetURL({ name: target.name, from: "index" }))};`
|
|
24
|
+
// )
|
|
25
|
+
// .join("\n")}
|
|
26
|
+
// const stage = new Stage(${JSON.stringify({ costumeNumber: game.stage.costumeNumber + 1, width: game.stage.width, height: game.stage.height })});
|
|
27
|
+
// const sprites = {
|
|
28
|
+
// ${Object.values(game.sprites)
|
|
29
|
+
// .map(
|
|
30
|
+
// sprite =>
|
|
31
|
+
// `${sprite.name}: new ${sprite.name}({${Object.entries({
|
|
32
|
+
// x: sprite.x,
|
|
33
|
+
// y: sprite.y,
|
|
34
|
+
// direction: sprite.direction,
|
|
35
|
+
// rotationStyle: `Sprite.RotationStyle.${{
|
|
36
|
+
// normal: "ALL_AROUND",
|
|
37
|
+
// leftRight: "LEFT_RIGHT",
|
|
38
|
+
// none: "DONT_ROTATE"
|
|
39
|
+
// }[sprite.rotationStyle!]
|
|
40
|
+
// }`,
|
|
41
|
+
// costumeNumber: sprite.costumeNumber + 1,
|
|
42
|
+
// size: sprite.size,
|
|
43
|
+
// visible: sprite.visible,
|
|
44
|
+
// layerOrder: sprite.layerOrder
|
|
45
|
+
// })
|
|
46
|
+
// .map(([key, value]) => `${key}:${value!.toString()}`)
|
|
47
|
+
// .join(",")}})`
|
|
48
|
+
// )
|
|
49
|
+
// .join(",\n")}
|
|
50
|
+
// };
|
|
51
|
+
// const project = new Project(stage, sprites, {
|
|
52
|
+
// frameRate: 30 // Set to 60 to make your project run faster
|
|
53
|
+
// });
|
|
54
|
+
// project.attach('#project');
|
|
55
|
+
// document.querySelector('#greenFlag').addEventListener('click', () => {
|
|
56
|
+
// project.greenFlag();
|
|
57
|
+
// });
|
|
58
|
+
// // Autoplay
|
|
59
|
+
// project.greenFlag();
|
|
60
|
+
// export default project;
|
|
61
|
+
// `;
|
|
62
|
+
// }
|
|
15
63
|
function generateIndexJS(game) {
|
|
16
64
|
var toLeopardJS = (0, toLeopard_1.getPathsToRelativeOrAbsolute)(toLeopard_1.defaultOptions.leopardJSURL);
|
|
17
65
|
return "\n import { Sprite, Trigger, Watcher, Costume, Color, Sound, Project } from ".concat(JSON.stringify(toLeopardJS({ from: "index" })), ";\n\n export const CostumeScale = ").concat(game.costumeScale, "; // Adjust this value to scale costumes\n\n ").concat(__spreadArray([game.stage], Object.values(game.sprites), true).map(function (target) {
|
|
18
66
|
return "import ".concat(target.name, " from ").concat(JSON.stringify(toLeopard_1.defaultOptions.getTargetURL({ name: target.name, from: "index" })), ";");
|
|
19
67
|
})
|
|
20
|
-
.join("\n"), "\n\n const stage = new Stage(").concat(JSON.stringify({ costumeNumber: game.stage.costumeNumber + 1, width: game.stage.width, height: game.stage.height }), ");\n\n
|
|
68
|
+
.join("\n"), "\n\n // Wrap initialization in an async function to avoid temporal dead zone issues\n async function initProject() {\n try {\n const stage = new Stage(").concat(JSON.stringify({ costumeNumber: game.stage.costumeNumber + 1, width: game.stage.width, height: game.stage.height }), ");\n\n const sprites = {\n ").concat(Object.values(game.sprites)
|
|
21
69
|
.map(function (sprite) {
|
|
22
70
|
return "".concat(sprite.name, ": new ").concat(sprite.name, "({").concat(Object.entries({
|
|
23
71
|
x: sprite.x,
|
|
@@ -39,7 +87,7 @@ function generateIndexJS(game) {
|
|
|
39
87
|
})
|
|
40
88
|
.join(","), "})");
|
|
41
89
|
})
|
|
42
|
-
.join(",\n"), "\n
|
|
90
|
+
.join(",\n"), "\n };\n\n const project = new Project(stage, sprites, {\n frameRate: 30 // Set to 60 to make your project run faster\n });\n\n project.attach('#project');\n\n document.querySelector('#greenFlag')?.addEventListener('click', () => {\n project.greenFlag();\n });\n\n // Autoplay\n project.greenFlag();\n\n // Export for external access\n window.project = project;\n return project;\n } catch (error) {\n console.error('Error initializing Scratch project:', error);\n throw error;\n }\n }\n\n // Initialize when DOM is ready\n let project;\n if (document.readyState === 'loading') {\n document.addEventListener('DOMContentLoaded', async () => {\n project = await initProject();\n });\n } else {\n initProject().then(p => { project = p; });\n }\n\n export default project;\n ");
|
|
43
91
|
}
|
|
44
92
|
exports.generateIndexJS = generateIndexJS;
|
|
45
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
93
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2FtZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9tb2RlbHMvZ2FtZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsK0NBQStDOzs7Ozs7Ozs7Ozs7QUFFL0MscURBQXVGO0FBVXZGLDZEQUE2RDtBQUM3RCxtRkFBbUY7QUFFbkYsYUFBYTtBQUNiLGtJQUFrSTtBQUVsSSwrRkFBK0Y7QUFFL0YscURBQXFEO0FBQ3JELGNBQWM7QUFDZCxvQkFBb0I7QUFDcEIsK0hBQStIO0FBQy9ILFVBQVU7QUFDVixxQkFBcUI7QUFFckIsdUpBQXVKO0FBRXZKLHdCQUF3QjtBQUN4QixzQ0FBc0M7QUFDdEMsY0FBYztBQUNkLG9CQUFvQjtBQUNwQixvRUFBb0U7QUFDcEUsMkJBQTJCO0FBQzNCLDJCQUEyQjtBQUMzQiwyQ0FBMkM7QUFDM0MsdURBQXVEO0FBQ3ZELHNDQUFzQztBQUN0Qyx5Q0FBeUM7QUFDekMsb0NBQW9DO0FBQ3BDLHVDQUF1QztBQUN2QyxvQkFBb0I7QUFDcEIsdURBQXVEO0FBQ3ZELGlDQUFpQztBQUNqQyx1Q0FBdUM7QUFDdkMsNENBQTRDO0FBQzVDLGVBQWU7QUFDZixvRUFBb0U7QUFDcEUsNkJBQTZCO0FBQzdCLFVBQVU7QUFDVixzQkFBc0I7QUFDdEIsU0FBUztBQUVULG9EQUFvRDtBQUNwRCxtRUFBbUU7QUFDbkUsVUFBVTtBQUVWLGtDQUFrQztBQUVsQyw2RUFBNkU7QUFDN0UsNkJBQTZCO0FBQzdCLFVBQVU7QUFFVixrQkFBa0I7QUFDbEIsMkJBQTJCO0FBRTNCLDhCQUE4QjtBQUM5QixPQUFPO0FBQ1AsSUFBSTtBQUlKLFNBQWdCLGVBQWUsQ0FBQyxJQUFlO0lBQzdDLElBQU0sV0FBVyxHQUFHLElBQUEsd0NBQTRCLEVBQUMsMEJBQWMsQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUU5RSxPQUFPLHlGQUNzRSxJQUFJLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFDLGtEQUUzRixJQUFJLENBQUMsWUFBWSw2REFFN0MsZUFBQyxJQUFJLENBQUMsS0FBSyxHQUFLLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUMxQyxHQUFHLENBQ0YsVUFBQSxNQUFNO1FBQ0osT0FBQSxpQkFBVSxNQUFNLENBQUMsSUFBSSxtQkFBUyxJQUFJLENBQUMsU0FBUyxDQUFDLDBCQUFjLENBQUMsWUFBWSxDQUFDLEVBQUUsSUFBSSxFQUFFLE1BQU0sQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUMsTUFBRztJQUFsSCxDQUFrSCxDQUNySDtTQUNBLElBQUksQ0FBQyxJQUFJLENBQUMsc0xBS2lCLElBQUksQ0FBQyxTQUFTLENBQUMsRUFBRSxhQUFhLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLEdBQUcsQ0FBQyxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQyx3REFHekksTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDO1NBQ2hDLEdBQUcsQ0FDRixVQUFBLE1BQU07UUFDSixPQUFBLFVBQUcsTUFBTSxDQUFDLElBQUksbUJBQVMsTUFBTSxDQUFDLElBQUksZUFBSyxNQUFNLENBQUMsT0FBTyxDQUFDO1lBQ3BELENBQUMsRUFBRSxNQUFNLENBQUMsQ0FBQztZQUNYLENBQUMsRUFBRSxNQUFNLENBQUMsQ0FBQztZQUNYLFNBQVMsRUFBRSxNQUFNLENBQUMsU0FBUztZQUMzQixhQUFhLEVBQUUsK0JBQXdCO2dCQUNyQyxNQUFNLEVBQUUsWUFBWTtnQkFDcEIsU0FBUyxFQUFFLFlBQVk7Z0JBQ3ZCLElBQUksRUFBRSxhQUFhO2FBQ3BCLENBQUMsTUFBTSxDQUFDLGFBQWMsQ0FBQyxDQUNwQjtZQUNKLGFBQWEsRUFBRSxNQUFNLENBQUMsYUFBYSxHQUFHLENBQUM7WUFDdkMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxJQUFJO1lBQ2pCLE9BQU8sRUFBRSxNQUFNLENBQUMsT0FBTztZQUN2QixVQUFVLEVBQUUsTUFBTSxDQUFDLFVBQVU7U0FDOUIsQ0FBQzthQUNDLEdBQUcsQ0FBQyxVQUFDLEVBQVk7Z0JBQVgsR0FBRyxRQUFBLEVBQUUsS0FBSyxRQUFBO1lBQU0sT0FBQSxVQUFHLEdBQUcsY0FBSSxLQUFNLENBQUMsUUFBUSxFQUFFLENBQUU7UUFBN0IsQ0FBNkIsQ0FBQzthQUNwRCxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQUk7SUFoQmhCLENBZ0JnQixDQUNuQjtTQUNBLElBQUksQ0FBQyxLQUFLLENBQUMsMDZCQW9DZixDQUFDO0FBQ0osQ0FBQztBQS9FRCwwQ0ErRUMifQ==
|
package/lib/models/sprite.d.ts
CHANGED
|
@@ -18,4 +18,5 @@ export interface SpriteModel {
|
|
|
18
18
|
sounds: Record<string, SoundModel>;
|
|
19
19
|
costumes: Record<string, CostumeModel>;
|
|
20
20
|
}
|
|
21
|
+
export declare function generateNewSpriteJS(sprite: SpriteModel): [string, string];
|
|
21
22
|
export declare function generateSpriteDefJS(sprite: SpriteModel): [string, string];
|
package/lib/models/sprite.js
CHANGED
|
@@ -1,8 +1,12 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
// Sprite model used for generating js and def.js files
|
|
3
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
-
exports.generateSpriteDefJS = void 0;
|
|
4
|
+
exports.generateSpriteDefJS = exports.generateNewSpriteJS = void 0;
|
|
5
5
|
var toLeopard_1 = require("../io/leopard/toLeopard");
|
|
6
|
+
function generateNewSpriteJS(sprite) {
|
|
7
|
+
return ["".concat(sprite.name, "/").concat(sprite.name, ".js"), "\n import { Stage as StageBase, Trigger, Watcher, Costume, Color, Project, Sound } from 'https://pub-3089f37cd1294d71b62f5431c86b90ef.r2.dev/dist/index.esm.js';\n\n export function makeTriggers(self, Trigger) {\n return [\n\n ];\n }\n\n export function initVars(self) {\n\n }\n\n export const behaviors = {\n\n };\n "];
|
|
8
|
+
}
|
|
9
|
+
exports.generateNewSpriteJS = generateNewSpriteJS;
|
|
6
10
|
function generateSpriteDefJS(sprite) {
|
|
7
11
|
var _a;
|
|
8
12
|
var toLeopardJS = (0, toLeopard_1.getPathsToRelativeOrAbsolute)(toLeopard_1.defaultOptions.leopardJSURL);
|
|
@@ -30,4 +34,4 @@ function generateSpriteDefJS(sprite) {
|
|
|
30
34
|
];
|
|
31
35
|
}
|
|
32
36
|
exports.generateSpriteDefJS = generateSpriteDefJS;
|
|
33
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
37
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3ByaXRlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL21vZGVscy9zcHJpdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLHVEQUF1RDs7O0FBRXZELHFEQUF1RjtBQXVCdkYsU0FBZ0IsbUJBQW1CLENBQUMsTUFBbUI7SUFDckQsT0FBTyxDQUFDLFVBQUcsTUFBTSxDQUFDLElBQUksY0FBSSxNQUFNLENBQUMsSUFBSSxRQUFLLEVBQ3hDLDhXQWdCRCxDQUFDLENBQUE7QUFDSixDQUFDO0FBbkJELGtEQW1CQztBQUVELFNBQWdCLG1CQUFtQixDQUFDLE1BQW1COztJQUNyRCxJQUFNLFdBQVcsR0FBRyxJQUFBLHdDQUE0QixFQUFDLDBCQUFjLENBQUMsWUFBWSxDQUFDLENBQUM7SUFFOUUsT0FBTyxDQUFDLFVBQUcsTUFBTSxDQUFDLElBQUksY0FBSSxNQUFNLENBQUMsSUFBSSxZQUFTLEVBQzlDLDJCQUNlLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLG9CQUFvQixDQUFDLENBQUMsQ0FBQyxRQUFRLHdFQUNELFdBQVcsQ0FBQyxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsQ0FBQyw4RUFFbEMsTUFBTSxDQUFDLElBQUksY0FBSSxNQUFNLENBQUMsSUFBSSxrR0FHM0QsTUFBQSxNQUFNLENBQUMsS0FBSyxtQ0FBSSxDQUFDLDZDQUVoQixNQUFNLENBQUMsSUFBSSxzQkFBWSxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLFFBQVEseUhBSzNFLE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQzthQUN6QyxHQUFHLENBQ0YsVUFBQSxPQUFPOztZQUNMLE9BQUEsNkJBQXNCLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxvQkFBVSxJQUFJLENBQUMsU0FBUyxDQUN4RSwwQkFBYyxDQUFDLFdBQVcsQ0FBQztnQkFDekIsSUFBSSxFQUFFLFNBQVM7Z0JBQ2YsTUFBTSxFQUFFLE1BQU0sQ0FBQyxJQUFJO2dCQUNuQixJQUFJLEVBQUUsT0FBTyxDQUFDLElBQUk7Z0JBQ2xCLEdBQUcsRUFBRSxPQUFPLENBQUMsR0FBRztnQkFDaEIsR0FBRyxFQUFFLE9BQU8sQ0FBQyxHQUFHO2FBQ2pCLENBQUMsQ0FDSCxzSEFHVSxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFBLE9BQU8sQ0FBQyxPQUFPLG1DQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxrRkFDdEYsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBQSxPQUFPLENBQUMsT0FBTyxtQ0FBSSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsOEdBQ2xELENBQUE7U0FBQSxDQUNsRDthQUNBLElBQUksQ0FBQyxLQUFLLENBQUMsNEVBSUEsTUFBTSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxDQUMxQyxVQUFBLEtBQUs7WUFDSCxPQUFBLG9CQUFhLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxlQUFLLElBQUksQ0FBQyxTQUFTLENBQ3hELDBCQUFjLENBQUMsV0FBVyxDQUFDO2dCQUN6QixJQUFJLEVBQUUsT0FBTztnQkFDYixNQUFNLEVBQUUsTUFBTSxDQUFDLElBQUk7Z0JBQ25CLElBQUksRUFBRSxLQUFLLENBQUMsSUFBSTtnQkFDaEIsR0FBRyxFQUFFLEtBQUssQ0FBQyxHQUFHO2dCQUNkLEdBQUcsRUFBRSxLQUFLLENBQUMsR0FBRzthQUNmLENBQUMsQ0FDSCxNQUFHO1FBUkosQ0FRSSxDQUNQO2FBQ0EsSUFBSSxDQUFDLEtBQUssQ0FBQyw4SkFRTSxNQUFNLENBQUMsSUFBSSxrQ0FDNUI7S0FDRixDQUFBO0FBQ0gsQ0FBQztBQS9ERCxrREErREMifQ==
|