create-opentray 0.24.0 → 0.26.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.
Files changed (52) hide show
  1. package/README.md +21 -13
  2. package/dist/{bin-BQb2Bjcu.mjs → bin-Bz16rwKs.mjs} +249 -313
  3. package/dist/bin-Bz16rwKs.mjs.map +1 -0
  4. package/dist/bin-CrMTyTux.d.mts +751 -0
  5. package/dist/bin-CrMTyTux.d.mts.map +1 -0
  6. package/dist/bin.d.mts +2 -15
  7. package/dist/bin.mjs +2 -2
  8. package/dist/{decode-ico-BHd2POHf.mjs → decode-ico-DDEIV7iZ.mjs} +2 -2
  9. package/dist/{decode-ico-BHd2POHf.mjs.map → decode-ico-DDEIV7iZ.mjs.map} +1 -1
  10. package/dist/encode-CTEluLqt.mjs +167 -0
  11. package/dist/encode-CTEluLqt.mjs.map +1 -0
  12. package/dist/icon-codec-Bs3XehqZ.mjs +20 -0
  13. package/dist/icon-codec-Bs3XehqZ.mjs.map +1 -0
  14. package/dist/index.d.mts +1 -724
  15. package/dist/index.d.mts.map +1 -1
  16. package/dist/index.mjs +1 -1
  17. package/dist/rolldown-runtime-DJK8HYOj.mjs +34 -0
  18. package/dist/shell/assets/ghostty-web.js +1 -1
  19. package/dist/shell/assets/index.css +1 -1
  20. package/dist/shell/assets/index.js +2 -9
  21. package/dist/shell/assets/index2.js +9 -2
  22. package/dist/shell/assets/input.js +1 -1
  23. package/dist/shell/assets/main.js +8 -8
  24. package/dist/shell/assets/terminal-pane.js +2 -2
  25. package/dist/shell/assets/terminal.js +1 -1
  26. package/dist/shell/assets/toolbar.js +1 -0
  27. package/dist/shell/index.html +1 -1
  28. package/dist/shell/terminal.html +1 -1
  29. package/dist/shell/{browse.html → toolbar.html} +3 -3
  30. package/dist/skill/SKILL.md +14 -11
  31. package/dist/skill/references/cli-reference.md +1 -1
  32. package/dist/skill/references/how-it-works.md +15 -9
  33. package/dist/webui/assets/ghostty-web.js +1 -1
  34. package/dist/webui/assets/index.css +1 -1
  35. package/dist/webui/assets/index.js +2 -9
  36. package/dist/webui/assets/index2.js +9 -2
  37. package/dist/webui/assets/input.js +1 -1
  38. package/dist/webui/assets/main.js +8 -8
  39. package/dist/webui/assets/terminal-pane.js +2 -2
  40. package/dist/webui/assets/terminal.js +1 -1
  41. package/dist/webui/assets/toolbar.js +1 -0
  42. package/dist/webui/index.html +1 -1
  43. package/dist/webui/terminal.html +1 -1
  44. package/dist/webui/{browse.html → toolbar.html} +3 -3
  45. package/package.json +6 -6
  46. package/skill/SKILL.md +14 -11
  47. package/skill/references/cli-reference.md +1 -1
  48. package/skill/references/how-it-works.md +15 -9
  49. package/dist/bin-BQb2Bjcu.mjs.map +0 -1
  50. package/dist/bin.d.mts.map +0 -1
  51. package/dist/shell/assets/browse.js +0 -1
  52. package/dist/webui/assets/browse.js +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bin-CrMTyTux.d.mts","names":[],"sources":["../packages/core/src/command-family.ts","../packages/core/src/launch-vector.ts","../packages/core/src/port-scan.ts","../packages/core/src/scrape.ts","../../icon/src/generate.ts","../../icon/src/default-icon.ts","../../icon/src/compose.ts","../packages/core/src/command-run.ts","../packages/core/src/user-messages.ts","../packages/core/src/scaffold.ts","../packages/core/src/materialize.ts","../src/wizard.ts","../src/bin.ts"],"mappings":"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"}
package/dist/bin.d.mts CHANGED
@@ -1,15 +1,2 @@
1
- //#region src/bin.d.ts
2
- interface WizardCliOptions {
3
- readonly open: boolean;
4
- readonly port: number | undefined;
5
- readonly pm: "npm" | "pnpm" | "bun" | undefined;
6
- readonly skipInstall: boolean;
7
- readonly force: boolean;
8
- readonly targetDir: string | undefined;
9
- }
10
- declare const parseWizardCli: (argv: readonly string[]) => WizardCliOptions;
11
- declare const openBrowser: (url: string) => Promise<void>;
12
- declare const main: (argv: readonly string[]) => Promise<number>;
13
- //#endregion
14
- export { WizardCliOptions, main, openBrowser, parseWizardCli };
15
- //# sourceMappingURL=bin.d.mts.map
1
+ import { a as parseWizardCli, i as openBrowser, n as main, r as normalizeDraftForm, t as WizardCliOptions } from "./bin-CrMTyTux.mjs";
2
+ export { WizardCliOptions, main, normalizeDraftForm, openBrowser, parseWizardCli };
package/dist/bin.mjs CHANGED
@@ -1,3 +1,3 @@
1
1
  #!/usr/bin/env node
2
- import { n as openBrowser, r as parseWizardCli, t as main } from "./bin-BQb2Bjcu.mjs";
3
- export { main, openBrowser, parseWizardCli };
2
+ import { i as parseWizardCli, n as normalizeDraftForm, r as openBrowser, t as main } from "./bin-Bz16rwKs.mjs";
3
+ export { main, normalizeDraftForm, openBrowser, parseWizardCli };
@@ -1,4 +1,4 @@
1
- import { I as __commonJSMin } from "./bin-BQb2Bjcu.mjs";
1
+ import { t as __commonJSMin } from "./rolldown-runtime-DJK8HYOj.mjs";
2
2
  //#region ../../node_modules/.pnpm/to-data-view@1.1.0/node_modules/to-data-view/index.js
3
3
  var require_to_data_view = /* @__PURE__ */ __commonJSMin(((exports, module) => {
4
4
  module.exports = function toDataView(data) {
@@ -271,4 +271,4 @@ var require_decode_ico = /* @__PURE__ */ __commonJSMin(((exports, module) => {
271
271
  export default require_decode_ico();
272
272
  export {};
273
273
 
274
- //# sourceMappingURL=decode-ico-BHd2POHf.mjs.map
274
+ //# sourceMappingURL=decode-ico-DDEIV7iZ.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"decode-ico-BHd2POHf.mjs","names":[],"sources":["../../../node_modules/.pnpm/to-data-view@1.1.0/node_modules/to-data-view/index.js","../../../node_modules/.pnpm/@canvas+image-data@1.1.0/node_modules/@canvas/image-data/index.js","../../../node_modules/.pnpm/decode-bmp@0.2.1/node_modules/decode-bmp/index.js","../../../node_modules/.pnpm/decode-ico@0.4.1/node_modules/decode-ico/index.js"],"sourcesContent":["module.exports = function toDataView (data) {\n if (data instanceof Int8Array || data instanceof Uint8Array || data instanceof Uint8ClampedArray) {\n return new DataView(data.buffer, data.byteOffset, data.byteLength)\n }\n\n if (data instanceof ArrayBuffer) {\n return new DataView(data)\n }\n\n throw new TypeError('Expected `data` to be an ArrayBuffer, Buffer, Int8Array, Uint8Array or Uint8ClampedArray')\n}\n","const widthMap = new WeakMap()\nconst heightMap = new WeakMap()\n\nclass ImageData {\n constructor (width, height, ...args) {\n if (arguments.length < 2) {\n throw new TypeError(`Failed to construct 'ImageData': 2 arguments required, but only ${arguments.length} present.`)\n }\n\n if (typeof width === 'object') {\n if (!(width instanceof Uint8ClampedArray)) {\n throw new TypeError(\"Failed to construct 'ImageData': parameter 1 is not of type 'Uint8ClampedArray'.\")\n }\n\n if (typeof height !== 'number' || height === 0) {\n throw new Error(\"Failed to construct 'ImageData': The source width is zero or not a number.\")\n }\n\n height = height >>> 0\n\n if ((height * 4) > width.length) {\n throw new Error(\"Failed to construct 'ImageData': The requested image size exceeds the supported range.\")\n }\n\n if ((width.length % 4) !== 0) {\n throw new Error(\"Failed to construct 'ImageData': The input data length is not a multiple of 4.\")\n }\n\n if ((width.length % (4 * height)) !== 0) {\n throw new Error(\"Failed to construct 'ImageData': The input data length is not a multiple of (4 * width).\")\n }\n\n if (typeof args[0] !== 'undefined') {\n if (typeof args[0] !== 'number' || args[0] === 0) {\n throw new Error(\"Failed to construct 'ImageData': The source height is zero or not a number.\")\n }\n\n args[0] = args[0] >>> 0\n\n if ((width.length % (4 * height * args[0])) !== 0) {\n throw new Error(\"Failed to construct 'ImageData': The input data length is not equal to (4 * width * height).\")\n }\n }\n\n widthMap.set(this, height)\n heightMap.set(this, typeof args[0] !== 'undefined' ? args[0] : (width.byteLength / height / 4))\n Object.defineProperty(this, 'data', { configurable: true, enumerable: true, value: width, writable: false })\n } else {\n if (typeof width !== 'number' || width === 0) {\n throw new Error(\"Failed to construct 'ImageData': The source width is zero or not a number.\")\n }\n\n width = width >>> 0\n\n if (typeof height !== 'number' || height === 0) {\n throw new Error(\"Failed to construct 'ImageData': The source height is zero or not a number.\")\n }\n\n height = height >>> 0\n\n if ((width * height) >= (1 << 30)) {\n throw new Error(\"Failed to construct 'ImageData': The requested image size exceeds the supported range.\")\n }\n\n widthMap.set(this, width)\n heightMap.set(this, height)\n Object.defineProperty(this, 'data', { configurable: true, enumerable: true, value: new Uint8ClampedArray(width * height * 4), writable: false })\n }\n }\n}\n\nObject.defineProperty(ImageData.prototype, 'width', {\n enumerable: true,\n configurable: true,\n get () { return widthMap.get(this) }\n})\n\nObject.defineProperty(ImageData.prototype, 'height', {\n enumerable: true,\n configurable: true,\n get () { return heightMap.get(this) }\n})\n\nmodule.exports = ImageData\n","const toDataView = require('to-data-view')\nconst ImageData = require('@canvas/image-data')\n\nfunction makeDivisibleByFour (input) {\n const rest = input % 4\n\n return rest ? input + 4 - rest : input\n}\n\nclass Bitmap {\n constructor (data, offset, { width, height, colorDepth, format }) {\n this.format = format\n this.offset = offset\n this.depth = colorDepth\n this.stride = makeDivisibleByFour(width * this.depth / 8)\n this.size = (this.stride * height)\n this.data = data.slice(this.offset, this.offset + this.size)\n\n if (this.size !== this.data.byteLength) {\n throw new Error('Truncated bitmap data')\n }\n }\n\n get (x, y, channel) {\n const idx = this.format.indexOf(channel)\n\n if (this.depth === 1) {\n const slice = this.data[(y * this.stride) + (x / 8 | 0)]\n const mask = 1 << (7 - (x % 8) * 1)\n\n return (slice & mask) >> (7 - (x % 8) * 1)\n }\n\n if (this.depth === 2) {\n const slice = this.data[(y * this.stride) + (x / 4 | 0)]\n const mask = 3 << (6 - (x % 4) * 2)\n\n return (slice & mask) >>> (6 - (x % 4) * 2)\n }\n\n if (this.depth === 4) {\n const slice = this.data[(y * this.stride) + (x / 2 | 0)]\n const mask = 15 << (4 - (x % 2) * 4)\n\n return (slice & mask) >>> (4 - (x % 2) * 4)\n }\n\n return this.data[(y * this.stride) + (x * (this.depth / 8)) + idx]\n }\n}\n\nfunction decodeTrueColorBmp (data, { width, height, colorDepth, icon }) {\n if (colorDepth !== 32 && colorDepth !== 24) {\n throw new Error(`A color depth of ${colorDepth} is not supported`)\n }\n\n const xor = new Bitmap(data, 0, { width, height, colorDepth, format: 'BGRA' })\n const and = (colorDepth === 24 && icon)\n ? new Bitmap(data, xor.offset + xor.size, { width, height, colorDepth: 1, format: 'A' })\n : null\n\n const result = new Uint8Array(width * height * 4)\n\n let idx = 0\n for (let y = 0; y < height; y++) {\n for (let x = 0; x < width; x++) {\n result[idx++] = xor.get(x, height - y - 1, 'R')\n result[idx++] = xor.get(x, height - y - 1, 'G')\n result[idx++] = xor.get(x, height - y - 1, 'B')\n\n if (colorDepth === 32) {\n result[idx++] = xor.get(x, height - y - 1, 'A')\n } else {\n result[idx++] = and && and.get(x, height - y - 1, 'A') ? 0 : 255\n }\n }\n }\n\n return new Uint8ClampedArray(result.buffer, result.byteOffset, result.byteLength)\n}\n\nfunction decodePaletteBmp (data, { width, height, colorDepth, colorCount, icon }) {\n if (colorDepth !== 8 && colorDepth !== 4 && colorDepth !== 2 && colorDepth !== 1) {\n throw new Error(`A color depth of ${colorDepth} is not supported`)\n }\n\n const colors = new Bitmap(data, 0, { width: colorCount, height: 1, colorDepth: 32, format: 'BGRA' })\n const xor = new Bitmap(data, colors.offset + colors.size, { width, height, colorDepth, format: 'C' })\n const and = icon ? new Bitmap(data, xor.offset + xor.size, { width, height, colorDepth: 1, format: 'A' }) : null\n\n const result = new Uint8Array(width * height * 4)\n\n let idx = 0\n for (let y = 0; y < height; y++) {\n for (let x = 0; x < width; x++) {\n const colorIndex = xor.get(x, height - y - 1, 'C')\n\n result[idx++] = colors.get(colorIndex, 0, 'R')\n result[idx++] = colors.get(colorIndex, 0, 'G')\n result[idx++] = colors.get(colorIndex, 0, 'B')\n result[idx++] = and && and.get(x, height - y - 1, 'A') ? 0 : 255\n }\n }\n\n return new Uint8ClampedArray(result.buffer, result.byteOffset, result.byteLength)\n}\n\nfunction checkMagicBytes (bytes) {\n if (bytes !== 0x4D42) throw new Error(`Invalid magic byte 0x${bytes.toString(16)}`)\n}\n\nmodule.exports = function decodeBmp (source, { width: iconWidth = 0, height: iconHeight = 0, icon = false } = {}) {\n const data = toDataView(source)\n\n let headerSize\n let bitmapWidth\n let bitmapHeight\n let colorDepth\n let colorCount\n\n if (icon) {\n headerSize = data.getUint32(0, true)\n bitmapWidth = (data.getUint32(4, true) / 1) | 0\n bitmapHeight = (data.getUint32(8, true) / 2) | 0\n colorDepth = data.getUint16(14, true)\n colorCount = data.getUint32(32, true)\n } else {\n checkMagicBytes(data.getUint16(0, true))\n headerSize = 14 + data.getUint32(14, true)\n bitmapWidth = data.getUint32(18, true)\n bitmapHeight = data.getUint32(22, true)\n colorDepth = data.getUint16(28, true)\n colorCount = data.getUint32(46, true)\n }\n\n if (colorCount === 0 && colorDepth <= 8) {\n colorCount = (1 << colorDepth)\n }\n\n const width = (bitmapWidth === 0 ? iconWidth : bitmapWidth)\n const height = (bitmapHeight === 0 ? iconHeight : bitmapHeight)\n\n const bitmapData = new Uint8Array(data.buffer, data.byteOffset + headerSize, data.byteLength - headerSize)\n\n const result = colorCount\n ? decodePaletteBmp(bitmapData, { width, height, colorDepth, colorCount, icon })\n : decodeTrueColorBmp(bitmapData, { width, height, colorDepth, icon })\n\n return Object.assign(new ImageData(result, width, height), { colorDepth })\n}\n","const toDataView = require('to-data-view')\nconst decodeBmp = require('decode-bmp')\nconst ImageData = require('@canvas/image-data')\n\nfunction isPng (view, offset) {\n return (view.getUint32(offset + 0) === 0x89504e47 && view.getUint32(offset + 4) === 0x0d0a1a0a)\n}\n\nfunction pngBitsPerPixel (view, offset) {\n const bitDepth = view.getUint8(offset + 24)\n const colorType = view.getUint8(offset + 25)\n\n if (colorType === 0) return bitDepth * 1\n if (colorType === 2) return bitDepth * 3\n if (colorType === 3) return bitDepth * 1\n if (colorType === 4) return bitDepth * 2\n if (colorType === 6) return bitDepth * 4\n\n throw new Error('Invalid PNG colorType')\n}\n\nfunction pngWidth (view, offset) {\n return view.getUint32(offset + 16, false)\n}\n\nfunction pngHeight (view, offset) {\n return view.getUint32(offset + 20, false)\n}\n\nmodule.exports = function decodeIco (input) {\n const view = toDataView(input)\n\n if (view.byteLength < 6) {\n throw new Error('Truncated header')\n }\n\n if (isPng(view, 0)) {\n // the file is actually a png masquerading as an ico\n\n return [{\n bpp: pngBitsPerPixel(view, 0),\n data: new Uint8Array(view.buffer, view.byteOffset, view.byteLength),\n height: pngHeight(view, 0),\n hotspot: null,\n type: 'png',\n width: pngWidth(view, 0)\n }]\n }\n\n if (view.getUint16(0, true) !== 0) {\n throw new Error('Invalid magic bytes')\n }\n\n const type = view.getUint16(2, true)\n\n if (type !== 1 && type !== 2) {\n throw new Error('Invalid image type')\n }\n\n const length = view.getUint16(4, true)\n\n if (view.byteLength < 6 + (16 * length)) {\n throw new Error('Truncated image list')\n }\n\n return Array.from({ length }, (_, idx) => {\n const width = view.getUint8(6 + (16 * idx) + 0)\n const height = view.getUint8(6 + (16 * idx) + 1)\n const size = view.getUint32(6 + (16 * idx) + 8, true)\n const offset = view.getUint32(6 + (16 * idx) + 12, true)\n\n const hotspot = (type !== 2 ? null : {\n x: view.getUint16(6 + (16 * idx) + 4, true),\n y: view.getUint16(6 + (16 * idx) + 6, true)\n })\n\n if (isPng(view, offset)) {\n return {\n bpp: pngBitsPerPixel(view, offset),\n data: new Uint8Array(view.buffer, view.byteOffset + offset, size),\n height: pngHeight(view, offset),\n hotspot,\n type: 'png',\n width: pngWidth(view, offset)\n }\n }\n\n const data = new Uint8Array(view.buffer, view.byteOffset + offset, size)\n const bmp = decodeBmp(data, { width, height, icon: true })\n const info = { bpp: bmp.colorDepth, hotspot, type: 'bmp' }\n\n return Object.assign(new ImageData(bmp.data, bmp.width, bmp.height), info)\n })\n}\n"],"x_google_ignoreList":[0,1,2,3],"mappings":"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"}
1
+ {"version":3,"file":"decode-ico-DDEIV7iZ.mjs","names":[],"sources":["../../../node_modules/.pnpm/to-data-view@1.1.0/node_modules/to-data-view/index.js","../../../node_modules/.pnpm/@canvas+image-data@1.1.0/node_modules/@canvas/image-data/index.js","../../../node_modules/.pnpm/decode-bmp@0.2.1/node_modules/decode-bmp/index.js","../../../node_modules/.pnpm/decode-ico@0.4.1/node_modules/decode-ico/index.js"],"sourcesContent":["module.exports = function toDataView (data) {\n if (data instanceof Int8Array || data instanceof Uint8Array || data instanceof Uint8ClampedArray) {\n return new DataView(data.buffer, data.byteOffset, data.byteLength)\n }\n\n if (data instanceof ArrayBuffer) {\n return new DataView(data)\n }\n\n throw new TypeError('Expected `data` to be an ArrayBuffer, Buffer, Int8Array, Uint8Array or Uint8ClampedArray')\n}\n","const widthMap = new WeakMap()\nconst heightMap = new WeakMap()\n\nclass ImageData {\n constructor (width, height, ...args) {\n if (arguments.length < 2) {\n throw new TypeError(`Failed to construct 'ImageData': 2 arguments required, but only ${arguments.length} present.`)\n }\n\n if (typeof width === 'object') {\n if (!(width instanceof Uint8ClampedArray)) {\n throw new TypeError(\"Failed to construct 'ImageData': parameter 1 is not of type 'Uint8ClampedArray'.\")\n }\n\n if (typeof height !== 'number' || height === 0) {\n throw new Error(\"Failed to construct 'ImageData': The source width is zero or not a number.\")\n }\n\n height = height >>> 0\n\n if ((height * 4) > width.length) {\n throw new Error(\"Failed to construct 'ImageData': The requested image size exceeds the supported range.\")\n }\n\n if ((width.length % 4) !== 0) {\n throw new Error(\"Failed to construct 'ImageData': The input data length is not a multiple of 4.\")\n }\n\n if ((width.length % (4 * height)) !== 0) {\n throw new Error(\"Failed to construct 'ImageData': The input data length is not a multiple of (4 * width).\")\n }\n\n if (typeof args[0] !== 'undefined') {\n if (typeof args[0] !== 'number' || args[0] === 0) {\n throw new Error(\"Failed to construct 'ImageData': The source height is zero or not a number.\")\n }\n\n args[0] = args[0] >>> 0\n\n if ((width.length % (4 * height * args[0])) !== 0) {\n throw new Error(\"Failed to construct 'ImageData': The input data length is not equal to (4 * width * height).\")\n }\n }\n\n widthMap.set(this, height)\n heightMap.set(this, typeof args[0] !== 'undefined' ? args[0] : (width.byteLength / height / 4))\n Object.defineProperty(this, 'data', { configurable: true, enumerable: true, value: width, writable: false })\n } else {\n if (typeof width !== 'number' || width === 0) {\n throw new Error(\"Failed to construct 'ImageData': The source width is zero or not a number.\")\n }\n\n width = width >>> 0\n\n if (typeof height !== 'number' || height === 0) {\n throw new Error(\"Failed to construct 'ImageData': The source height is zero or not a number.\")\n }\n\n height = height >>> 0\n\n if ((width * height) >= (1 << 30)) {\n throw new Error(\"Failed to construct 'ImageData': The requested image size exceeds the supported range.\")\n }\n\n widthMap.set(this, width)\n heightMap.set(this, height)\n Object.defineProperty(this, 'data', { configurable: true, enumerable: true, value: new Uint8ClampedArray(width * height * 4), writable: false })\n }\n }\n}\n\nObject.defineProperty(ImageData.prototype, 'width', {\n enumerable: true,\n configurable: true,\n get () { return widthMap.get(this) }\n})\n\nObject.defineProperty(ImageData.prototype, 'height', {\n enumerable: true,\n configurable: true,\n get () { return heightMap.get(this) }\n})\n\nmodule.exports = ImageData\n","const toDataView = require('to-data-view')\nconst ImageData = require('@canvas/image-data')\n\nfunction makeDivisibleByFour (input) {\n const rest = input % 4\n\n return rest ? input + 4 - rest : input\n}\n\nclass Bitmap {\n constructor (data, offset, { width, height, colorDepth, format }) {\n this.format = format\n this.offset = offset\n this.depth = colorDepth\n this.stride = makeDivisibleByFour(width * this.depth / 8)\n this.size = (this.stride * height)\n this.data = data.slice(this.offset, this.offset + this.size)\n\n if (this.size !== this.data.byteLength) {\n throw new Error('Truncated bitmap data')\n }\n }\n\n get (x, y, channel) {\n const idx = this.format.indexOf(channel)\n\n if (this.depth === 1) {\n const slice = this.data[(y * this.stride) + (x / 8 | 0)]\n const mask = 1 << (7 - (x % 8) * 1)\n\n return (slice & mask) >> (7 - (x % 8) * 1)\n }\n\n if (this.depth === 2) {\n const slice = this.data[(y * this.stride) + (x / 4 | 0)]\n const mask = 3 << (6 - (x % 4) * 2)\n\n return (slice & mask) >>> (6 - (x % 4) * 2)\n }\n\n if (this.depth === 4) {\n const slice = this.data[(y * this.stride) + (x / 2 | 0)]\n const mask = 15 << (4 - (x % 2) * 4)\n\n return (slice & mask) >>> (4 - (x % 2) * 4)\n }\n\n return this.data[(y * this.stride) + (x * (this.depth / 8)) + idx]\n }\n}\n\nfunction decodeTrueColorBmp (data, { width, height, colorDepth, icon }) {\n if (colorDepth !== 32 && colorDepth !== 24) {\n throw new Error(`A color depth of ${colorDepth} is not supported`)\n }\n\n const xor = new Bitmap(data, 0, { width, height, colorDepth, format: 'BGRA' })\n const and = (colorDepth === 24 && icon)\n ? new Bitmap(data, xor.offset + xor.size, { width, height, colorDepth: 1, format: 'A' })\n : null\n\n const result = new Uint8Array(width * height * 4)\n\n let idx = 0\n for (let y = 0; y < height; y++) {\n for (let x = 0; x < width; x++) {\n result[idx++] = xor.get(x, height - y - 1, 'R')\n result[idx++] = xor.get(x, height - y - 1, 'G')\n result[idx++] = xor.get(x, height - y - 1, 'B')\n\n if (colorDepth === 32) {\n result[idx++] = xor.get(x, height - y - 1, 'A')\n } else {\n result[idx++] = and && and.get(x, height - y - 1, 'A') ? 0 : 255\n }\n }\n }\n\n return new Uint8ClampedArray(result.buffer, result.byteOffset, result.byteLength)\n}\n\nfunction decodePaletteBmp (data, { width, height, colorDepth, colorCount, icon }) {\n if (colorDepth !== 8 && colorDepth !== 4 && colorDepth !== 2 && colorDepth !== 1) {\n throw new Error(`A color depth of ${colorDepth} is not supported`)\n }\n\n const colors = new Bitmap(data, 0, { width: colorCount, height: 1, colorDepth: 32, format: 'BGRA' })\n const xor = new Bitmap(data, colors.offset + colors.size, { width, height, colorDepth, format: 'C' })\n const and = icon ? new Bitmap(data, xor.offset + xor.size, { width, height, colorDepth: 1, format: 'A' }) : null\n\n const result = new Uint8Array(width * height * 4)\n\n let idx = 0\n for (let y = 0; y < height; y++) {\n for (let x = 0; x < width; x++) {\n const colorIndex = xor.get(x, height - y - 1, 'C')\n\n result[idx++] = colors.get(colorIndex, 0, 'R')\n result[idx++] = colors.get(colorIndex, 0, 'G')\n result[idx++] = colors.get(colorIndex, 0, 'B')\n result[idx++] = and && and.get(x, height - y - 1, 'A') ? 0 : 255\n }\n }\n\n return new Uint8ClampedArray(result.buffer, result.byteOffset, result.byteLength)\n}\n\nfunction checkMagicBytes (bytes) {\n if (bytes !== 0x4D42) throw new Error(`Invalid magic byte 0x${bytes.toString(16)}`)\n}\n\nmodule.exports = function decodeBmp (source, { width: iconWidth = 0, height: iconHeight = 0, icon = false } = {}) {\n const data = toDataView(source)\n\n let headerSize\n let bitmapWidth\n let bitmapHeight\n let colorDepth\n let colorCount\n\n if (icon) {\n headerSize = data.getUint32(0, true)\n bitmapWidth = (data.getUint32(4, true) / 1) | 0\n bitmapHeight = (data.getUint32(8, true) / 2) | 0\n colorDepth = data.getUint16(14, true)\n colorCount = data.getUint32(32, true)\n } else {\n checkMagicBytes(data.getUint16(0, true))\n headerSize = 14 + data.getUint32(14, true)\n bitmapWidth = data.getUint32(18, true)\n bitmapHeight = data.getUint32(22, true)\n colorDepth = data.getUint16(28, true)\n colorCount = data.getUint32(46, true)\n }\n\n if (colorCount === 0 && colorDepth <= 8) {\n colorCount = (1 << colorDepth)\n }\n\n const width = (bitmapWidth === 0 ? iconWidth : bitmapWidth)\n const height = (bitmapHeight === 0 ? iconHeight : bitmapHeight)\n\n const bitmapData = new Uint8Array(data.buffer, data.byteOffset + headerSize, data.byteLength - headerSize)\n\n const result = colorCount\n ? decodePaletteBmp(bitmapData, { width, height, colorDepth, colorCount, icon })\n : decodeTrueColorBmp(bitmapData, { width, height, colorDepth, icon })\n\n return Object.assign(new ImageData(result, width, height), { colorDepth })\n}\n","const toDataView = require('to-data-view')\nconst decodeBmp = require('decode-bmp')\nconst ImageData = require('@canvas/image-data')\n\nfunction isPng (view, offset) {\n return (view.getUint32(offset + 0) === 0x89504e47 && view.getUint32(offset + 4) === 0x0d0a1a0a)\n}\n\nfunction pngBitsPerPixel (view, offset) {\n const bitDepth = view.getUint8(offset + 24)\n const colorType = view.getUint8(offset + 25)\n\n if (colorType === 0) return bitDepth * 1\n if (colorType === 2) return bitDepth * 3\n if (colorType === 3) return bitDepth * 1\n if (colorType === 4) return bitDepth * 2\n if (colorType === 6) return bitDepth * 4\n\n throw new Error('Invalid PNG colorType')\n}\n\nfunction pngWidth (view, offset) {\n return view.getUint32(offset + 16, false)\n}\n\nfunction pngHeight (view, offset) {\n return view.getUint32(offset + 20, false)\n}\n\nmodule.exports = function decodeIco (input) {\n const view = toDataView(input)\n\n if (view.byteLength < 6) {\n throw new Error('Truncated header')\n }\n\n if (isPng(view, 0)) {\n // the file is actually a png masquerading as an ico\n\n return [{\n bpp: pngBitsPerPixel(view, 0),\n data: new Uint8Array(view.buffer, view.byteOffset, view.byteLength),\n height: pngHeight(view, 0),\n hotspot: null,\n type: 'png',\n width: pngWidth(view, 0)\n }]\n }\n\n if (view.getUint16(0, true) !== 0) {\n throw new Error('Invalid magic bytes')\n }\n\n const type = view.getUint16(2, true)\n\n if (type !== 1 && type !== 2) {\n throw new Error('Invalid image type')\n }\n\n const length = view.getUint16(4, true)\n\n if (view.byteLength < 6 + (16 * length)) {\n throw new Error('Truncated image list')\n }\n\n return Array.from({ length }, (_, idx) => {\n const width = view.getUint8(6 + (16 * idx) + 0)\n const height = view.getUint8(6 + (16 * idx) + 1)\n const size = view.getUint32(6 + (16 * idx) + 8, true)\n const offset = view.getUint32(6 + (16 * idx) + 12, true)\n\n const hotspot = (type !== 2 ? null : {\n x: view.getUint16(6 + (16 * idx) + 4, true),\n y: view.getUint16(6 + (16 * idx) + 6, true)\n })\n\n if (isPng(view, offset)) {\n return {\n bpp: pngBitsPerPixel(view, offset),\n data: new Uint8Array(view.buffer, view.byteOffset + offset, size),\n height: pngHeight(view, offset),\n hotspot,\n type: 'png',\n width: pngWidth(view, offset)\n }\n }\n\n const data = new Uint8Array(view.buffer, view.byteOffset + offset, size)\n const bmp = decodeBmp(data, { width, height, icon: true })\n const info = { bpp: bmp.colorDepth, hotspot, type: 'bmp' }\n\n return Object.assign(new ImageData(bmp.data, bmp.width, bmp.height), info)\n })\n}\n"],"x_google_ignoreList":[0,1,2,3],"mappings":"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"}
@@ -0,0 +1,167 @@
1
+ import { n as __exportAll } from "./rolldown-runtime-DJK8HYOj.mjs";
2
+ import { c as encodeImagePng } from "./raster-DeMbA2zI.mjs";
3
+ import { IconIcns, IconIco } from "@shockpkg/icon-encoder";
4
+ //#region ../icon/src/encode.ts
5
+ /**
6
+ * Platform encoders. PNG payloads carry explicit 72 DPI density: the WASM PNG
7
+ * encoder emits no `pHYs` chunk (spike-verified), so density is injected with
8
+ * a minimal chunk surgery (insert/replace after IHDR, CRC32 over type+data).
9
+ * ICNS keeps the ten-tag explicit representation set; ICO and Linux PNGs keep
10
+ * their ladders. All encoders consume PNG bytes so the density law applies to
11
+ * every emitted pixel payload.
12
+ */
13
+ var encode_exports = /* @__PURE__ */ __exportAll({
14
+ ICNS_REPRESENTATIONS: () => ICNS_REPRESENTATIONS,
15
+ ICO_SIZES: () => ICO_SIZES,
16
+ LINUX_SIZES: () => LINUX_SIZES,
17
+ encodeDensePng: () => encodeDensePng,
18
+ encodeIcns: () => encodeIcns,
19
+ encodeIco: () => encodeIco,
20
+ pngWithDensity: () => pngWithDensity
21
+ });
22
+ /** Pixels per metre for 72 DPI (72 × 39.3701 ≈ 2834.65, the Apple value). */
23
+ const PIXELS_PER_METRE_72DPI = 2835;
24
+ const ICNS_REPRESENTATIONS = [
25
+ {
26
+ tag: "ic12",
27
+ size: 64
28
+ },
29
+ {
30
+ tag: "ic07",
31
+ size: 128
32
+ },
33
+ {
34
+ tag: "ic13",
35
+ size: 256
36
+ },
37
+ {
38
+ tag: "ic08",
39
+ size: 256
40
+ },
41
+ {
42
+ tag: "ic04",
43
+ size: 16
44
+ },
45
+ {
46
+ tag: "ic14",
47
+ size: 512
48
+ },
49
+ {
50
+ tag: "ic09",
51
+ size: 512
52
+ },
53
+ {
54
+ tag: "ic05",
55
+ size: 32
56
+ },
57
+ {
58
+ tag: "ic10",
59
+ size: 1024
60
+ },
61
+ {
62
+ tag: "ic11",
63
+ size: 32
64
+ }
65
+ ];
66
+ const ICO_SIZES = [
67
+ 16,
68
+ 24,
69
+ 32,
70
+ 48,
71
+ 64,
72
+ 128,
73
+ 256
74
+ ];
75
+ const LINUX_SIZES = [
76
+ 16,
77
+ 32,
78
+ 48,
79
+ 64,
80
+ 128,
81
+ 256,
82
+ 512
83
+ ];
84
+ const CRC_TABLE = (() => {
85
+ const table = new Array(256);
86
+ for (let n = 0; n < 256; n += 1) {
87
+ let c = n;
88
+ for (let k = 0; k < 8; k += 1) c = c & 1 ? 3988292384 ^ c >>> 1 : c >>> 1;
89
+ table[n] = c >>> 0;
90
+ }
91
+ return table;
92
+ })();
93
+ const crc32 = (bytes) => {
94
+ let crc = 4294967295;
95
+ for (let i = 0; i < bytes.length; i += 1) crc = CRC_TABLE[(crc ^ bytes[i]) & 255] ^ crc >>> 8;
96
+ return (crc ^ 4294967295) >>> 0;
97
+ };
98
+ const chunkLength = (view, offset) => view.getUint32(offset);
99
+ const chunkType = (bytes, offset) => String.fromCharCode(bytes[offset], bytes[offset + 1], bytes[offset + 2], bytes[offset + 3]);
100
+ const PHYS_DATA = (() => {
101
+ const data = /* @__PURE__ */ new Uint8Array(9);
102
+ const view = new DataView(data.buffer);
103
+ view.setUint32(0, PIXELS_PER_METRE_72DPI);
104
+ view.setUint32(4, PIXELS_PER_METRE_72DPI);
105
+ data[8] = 1;
106
+ return data;
107
+ })();
108
+ /**
109
+ * Ensure a PNG carries exactly one `pHYs` chunk at 72 DPI, inserted after
110
+ * IHDR. Every pre-existing `pHYs` chunk (however many a malformed input
111
+ * carried) is dropped so the emitted density cannot drift.
112
+ */
113
+ const pngWithDensity = (png) => {
114
+ const view = new DataView(png.buffer, png.byteOffset, png.byteLength);
115
+ let offset = 8;
116
+ let ihdrEnd = -1;
117
+ const segments = [];
118
+ const tail = [];
119
+ while (offset + 12 <= png.length) {
120
+ const length = chunkLength(view, offset);
121
+ const type = chunkType(png, offset + 4);
122
+ const chunkEnd = offset + 12 + length;
123
+ if (type === "IHDR") {
124
+ ihdrEnd = chunkEnd;
125
+ segments.push(png.subarray(offset, chunkEnd));
126
+ } else if (type !== "pHYs") (ihdrEnd === -1 ? segments : tail).push(png.subarray(offset, chunkEnd));
127
+ offset = chunkEnd;
128
+ if (type === "IEND") break;
129
+ }
130
+ if (ihdrEnd === -1) throw new Error("pngWithDensity: IHDR chunk not found");
131
+ const chunk = new Uint8Array(12 + PHYS_DATA.length);
132
+ const chunkView = new DataView(chunk.buffer);
133
+ chunkView.setUint32(0, PHYS_DATA.length);
134
+ chunk.set(new TextEncoder().encode("pHYs"), 4);
135
+ chunk.set(PHYS_DATA, 8);
136
+ chunkView.setUint32(8 + PHYS_DATA.length, crc32(chunk.subarray(4, 8 + PHYS_DATA.length)));
137
+ return concat(png.subarray(0, 8), ...segments, chunk, ...tail);
138
+ };
139
+ const concat = (...parts) => {
140
+ const total = parts.reduce((sum, part) => sum + part.byteLength, 0);
141
+ const out = new Uint8Array(total);
142
+ let offset = 0;
143
+ for (const part of parts) {
144
+ out.set(part, offset);
145
+ offset += part.byteLength;
146
+ }
147
+ return out;
148
+ };
149
+ /** Encode RGBA pixels to a density-carrying PNG. */
150
+ const encodeDensePng = async (image) => pngWithDensity(await encodeImagePng(image));
151
+ /** Encode the ten-tag ICNS from per-size PNG payloads (macOS variant source). */
152
+ const encodeIcns = async (pngAt) => {
153
+ const icns = new IconIcns();
154
+ icns.toc = true;
155
+ for (const { tag, size } of ICNS_REPRESENTATIONS) await icns.addFromPng(await pngAt(size), [tag], false);
156
+ return icns.encode();
157
+ };
158
+ /** Encode the ICO ladder from per-size PNG payloads (Windows variant source). */
159
+ const encodeIco = async (pngAt) => {
160
+ const ico = new IconIco();
161
+ for (const size of ICO_SIZES) await ico.addFromPng(await pngAt(size), null, false);
162
+ return ico.encode();
163
+ };
164
+ //#endregion
165
+ export { encode_exports as a, encodeIco as i, encodeDensePng as n, encodeIcns as r, LINUX_SIZES as t };
166
+
167
+ //# sourceMappingURL=encode-CTEluLqt.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"encode-CTEluLqt.mjs","names":[],"sources":["../../icon/src/encode.ts"],"sourcesContent":["/**\n * Platform encoders. PNG payloads carry explicit 72 DPI density: the WASM PNG\n * encoder emits no `pHYs` chunk (spike-verified), so density is injected with\n * a minimal chunk surgery (insert/replace after IHDR, CRC32 over type+data).\n * ICNS keeps the ten-tag explicit representation set; ICO and Linux PNGs keep\n * their ladders. All encoders consume PNG bytes so the density law applies to\n * every emitted pixel payload.\n */\nimport { IconIcns, IconIco } from \"@shockpkg/icon-encoder\";\n\nimport { encodeImagePng, type ImageDataLike } from \"./raster\";\n\n/** Pixels per metre for 72 DPI (72 × 39.3701 ≈ 2834.65, the Apple value). */\nconst PIXELS_PER_METRE_72DPI = 2835;\n\nexport const ICNS_REPRESENTATIONS = [\n { tag: \"ic12\", size: 64 },\n { tag: \"ic07\", size: 128 },\n { tag: \"ic13\", size: 256 },\n { tag: \"ic08\", size: 256 },\n { tag: \"ic04\", size: 16 },\n { tag: \"ic14\", size: 512 },\n { tag: \"ic09\", size: 512 },\n { tag: \"ic05\", size: 32 },\n { tag: \"ic10\", size: 1024 },\n { tag: \"ic11\", size: 32 },\n] as const;\n\nexport const ICO_SIZES = [16, 24, 32, 48, 64, 128, 256] as const;\nexport const LINUX_SIZES = [16, 32, 48, 64, 128, 256, 512] as const;\n\n/* ---------------------------------- CRC32 ---------------------------------- */\n\nconst CRC_TABLE: readonly number[] = (() => {\n const table = new Array<number>(256);\n for (let n = 0; n < 256; n += 1) {\n let c = n;\n for (let k = 0; k < 8; k += 1) {\n c = c & 1 ? 0xedb88320 ^ (c >>> 1) : c >>> 1;\n }\n table[n] = c >>> 0;\n }\n return table;\n})();\n\nconst crc32 = (bytes: Uint8Array): number => {\n let crc = 0xffffffff;\n for (let i = 0; i < bytes.length; i += 1) {\n crc = CRC_TABLE[(crc ^ bytes[i]!) & 0xff]! ^ (crc >>> 8);\n }\n return (crc ^ 0xffffffff) >>> 0;\n};\n\n/* ------------------------------ PNG chunk surgery --------------------------- */\n\nconst chunkLength = (view: DataView, offset: number): number =>\n view.getUint32(offset);\n\nconst chunkType = (bytes: Uint8Array, offset: number): string =>\n String.fromCharCode(\n bytes[offset]!,\n bytes[offset + 1]!,\n bytes[offset + 2]!,\n bytes[offset + 3]!,\n );\n\nconst PHYS_DATA = (() => {\n const data = new Uint8Array(9);\n const view = new DataView(data.buffer);\n view.setUint32(0, PIXELS_PER_METRE_72DPI);\n view.setUint32(4, PIXELS_PER_METRE_72DPI);\n data[8] = 1; // unit: metre\n return data;\n})();\n\n/**\n * Ensure a PNG carries exactly one `pHYs` chunk at 72 DPI, inserted after\n * IHDR. Every pre-existing `pHYs` chunk (however many a malformed input\n * carried) is dropped so the emitted density cannot drift.\n */\nexport const pngWithDensity = (png: Uint8Array): Uint8Array => {\n const view = new DataView(png.buffer, png.byteOffset, png.byteLength);\n // Walk chunks; the IHDR/IEND pair bounds the file in any valid PNG.\n let offset = 8; // signature\n let ihdrEnd = -1;\n const segments: Uint8Array[] = [];\n const tail: Uint8Array[] = [];\n while (offset + 12 <= png.length) {\n const length = chunkLength(view, offset);\n const type = chunkType(png, offset + 4);\n const chunkEnd = offset + 12 + length;\n if (type === \"IHDR\") {\n ihdrEnd = chunkEnd;\n segments.push(png.subarray(offset, chunkEnd));\n } else if (type !== \"pHYs\") {\n (ihdrEnd === -1 ? segments : tail).push(png.subarray(offset, chunkEnd));\n }\n offset = chunkEnd;\n if (type === \"IEND\") break;\n }\n if (ihdrEnd === -1) throw new Error(\"pngWithDensity: IHDR chunk not found\");\n\n const chunk = new Uint8Array(12 + PHYS_DATA.length);\n const chunkView = new DataView(chunk.buffer);\n chunkView.setUint32(0, PHYS_DATA.length);\n chunk.set(\n new TextEncoder().encode(\"pHYs\"),\n 4,\n );\n chunk.set(PHYS_DATA, 8);\n chunkView.setUint32(\n 8 + PHYS_DATA.length,\n crc32(chunk.subarray(4, 8 + PHYS_DATA.length)),\n );\n\n return concat(\n png.subarray(0, 8),\n ...segments,\n chunk,\n ...tail,\n );\n};\n\nconst concat = (...parts: readonly Uint8Array[]): Uint8Array => {\n const total = parts.reduce((sum, part) => sum + part.byteLength, 0);\n const out = new Uint8Array(total);\n let offset = 0;\n for (const part of parts) {\n out.set(part, offset);\n offset += part.byteLength;\n }\n return out;\n};\n\n/* ------------------------------- icon encoders ------------------------------ */\n\n/** Encode RGBA pixels to a density-carrying PNG. */\nexport const encodeDensePng = async (\n image: ImageDataLike,\n): Promise<Uint8Array> => pngWithDensity(await encodeImagePng(image));\n\n/** Encode the ten-tag ICNS from per-size PNG payloads (macOS variant source). */\nexport const encodeIcns = async (\n pngAt: (size: number) => Promise<Uint8Array>,\n): Promise<Uint8Array> => {\n const icns = new IconIcns();\n icns.toc = true;\n for (const { tag, size } of ICNS_REPRESENTATIONS) {\n await icns.addFromPng(await pngAt(size), [tag], false);\n }\n return icns.encode();\n};\n\n/** Encode the ICO ladder from per-size PNG payloads (Windows variant source). */\nexport const encodeIco = async (\n pngAt: (size: number) => Promise<Uint8Array>,\n): Promise<Uint8Array> => {\n const ico = new IconIco();\n for (const size of ICO_SIZES) {\n await ico.addFromPng(await pngAt(size), null, false);\n }\n return ico.encode();\n};\n"],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ import { n as __exportAll } from "./rolldown-runtime-DJK8HYOj.mjs";
2
+ import { c as encodeImagePng, s as emptyImageOf } from "./raster-DeMbA2zI.mjs";
3
+ //#region packages/core/src/icon-codec.ts
4
+ var icon_codec_exports = /* @__PURE__ */ __exportAll({ toPngBuffer: () => toPngBuffer });
5
+ const toPngBuffer = async (rgba, width, height, channels) => {
6
+ const pixels = width * height;
7
+ const image = emptyImageOf(width, height);
8
+ if (channels === 3) for (let i = 0; i < pixels; i += 1) {
9
+ image.data[i * 4] = rgba[i * 3] ?? 0;
10
+ image.data[i * 4 + 1] = rgba[i * 3 + 1] ?? 0;
11
+ image.data[i * 4 + 2] = rgba[i * 3 + 2] ?? 0;
12
+ image.data[i * 4 + 3] = 255;
13
+ }
14
+ else image.data.set(rgba.subarray(0, pixels * 4));
15
+ return Buffer.from(await encodeImagePng(image));
16
+ };
17
+ //#endregion
18
+ export { icon_codec_exports as t };
19
+
20
+ //# sourceMappingURL=icon-codec-Bs3XehqZ.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"icon-codec-Bs3XehqZ.mjs","names":[],"sources":["../packages/core/src/icon-codec.ts"],"sourcesContent":["// Thin image-encoding seam (raw pixels → PNG through the shared icon\n// kernel). Kept as its own module so tests can stub encoding without\n// stubbing the rest of the kernel.\nimport { emptyImageOf, encodeImagePng } from \"@opentray/icon\";\n\nexport const toPngBuffer = async (\n rgba: Buffer,\n width: number,\n height: number,\n channels: 3 | 4,\n): Promise<Buffer> => {\n const pixels = width * height;\n const image = emptyImageOf(width, height);\n if (channels === 3) {\n for (let i = 0; i < pixels; i += 1) {\n image.data[i * 4] = rgba[i * 3] ?? 0;\n image.data[i * 4 + 1] = rgba[i * 3 + 1] ?? 0;\n image.data[i * 4 + 2] = rgba[i * 3 + 2] ?? 0;\n image.data[i * 4 + 3] = 255;\n }\n } else {\n image.data.set(rgba.subarray(0, pixels * 4));\n }\n return Buffer.from(await encodeImagePng(image));\n};\n"],"mappings":";;;;AAKA,MAAa,cAAc,OACzB,MACA,OACA,QACA,aACoB;CACpB,MAAM,SAAS,QAAQ;CACvB,MAAM,QAAQ,aAAa,OAAO,MAAM;CACxC,IAAI,aAAa,GACf,KAAK,IAAI,IAAI,GAAG,IAAI,QAAQ,KAAK,GAAG;EAClC,MAAM,KAAK,IAAI,KAAK,KAAK,IAAI,MAAM;EACnC,MAAM,KAAK,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,MAAM;EAC3C,MAAM,KAAK,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,MAAM;EAC3C,MAAM,KAAK,IAAI,IAAI,KAAK;CAC1B;MAEA,MAAM,KAAK,IAAI,KAAK,SAAS,GAAG,SAAS,CAAC,CAAC;CAE7C,OAAO,OAAO,KAAK,MAAM,eAAe,KAAK,CAAC;AAChD"}