@mateuszjs/magic-render 0.1.0-next.1 → 0.1.0-next.3

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 (147) hide show
  1. package/README.md +4 -0
  2. package/lib/index.mjs +2 -1
  3. package/lib/index.mjs.map +1 -0
  4. package/lib/types/WebGPU/canvasSizeObserver.d.ts.map +1 -0
  5. package/lib/types/WebGPU/getDevice.d.ts.map +1 -0
  6. package/lib/types/WebGPU/getTexture/createCheckedImageData.d.ts.map +1 -0
  7. package/lib/types/WebGPU/getTexture/generateMimapsArray.d.ts.map +1 -0
  8. package/lib/types/WebGPU/getTexture/index.d.ts.map +1 -0
  9. package/lib/types/WebGPU/m3.d.ts.map +1 -0
  10. package/lib/types/WebGPU/pick.d.ts +19 -0
  11. package/lib/types/WebGPU/pick.d.ts.map +1 -0
  12. package/lib/types/WebGPU/pointer.d.ts.map +1 -0
  13. package/lib/types/WebGPU/programs/blur/getProgram.d.ts.map +1 -0
  14. package/lib/types/WebGPU/programs/draw3dModel/getProgram.d.ts.map +1 -0
  15. package/lib/types/WebGPU/programs/draw3dModelLight/getProgram.d.ts.map +1 -0
  16. package/lib/types/WebGPU/programs/draw3dModelTexture/getProgram.d.ts.map +1 -0
  17. package/lib/types/WebGPU/programs/drawBezier/getProgram.d.ts.map +1 -0
  18. package/lib/types/WebGPU/programs/drawTexture/getProgram.d.ts.map +1 -0
  19. package/lib/types/WebGPU/programs/drawTriangle/getProgram.d.ts.map +1 -0
  20. package/lib/types/{src/WebGPU → WebGPU}/programs/initPrograms.d.ts +10 -8
  21. package/lib/types/WebGPU/programs/initPrograms.d.ts.map +1 -0
  22. package/lib/types/WebGPU/programs/pickTexture/getProgram.d.ts +2 -0
  23. package/lib/types/WebGPU/programs/pickTexture/getProgram.d.ts.map +1 -0
  24. package/lib/types/WebGPU/programs/pickTriangle/getProgram.d.ts +2 -0
  25. package/lib/types/WebGPU/programs/pickTriangle/getProgram.d.ts.map +1 -0
  26. package/lib/types/__test__/index.test.d.ts.map +1 -0
  27. package/lib/types/consts.d.ts.map +1 -0
  28. package/lib/types/getCanvasMatrix.d.ts.map +1 -0
  29. package/lib/types/getCanvasRenderDescriptor.d.ts.map +1 -0
  30. package/lib/types/getDepthTexture.d.ts.map +1 -0
  31. package/lib/types/getRenderDescriptor.d.ts.map +1 -0
  32. package/lib/types/index.d.ts +13 -0
  33. package/lib/types/index.d.ts.map +1 -0
  34. package/lib/types/models/Video/MiniatureVideo.d.ts.map +1 -0
  35. package/lib/types/run.d.ts +5 -0
  36. package/lib/types/run.d.ts.map +1 -0
  37. package/lib/types/types.d.ts.map +1 -0
  38. package/lib/types/utils/atNormIndex.d.ts.map +1 -0
  39. package/lib/types/utils/captureCanvasStream.d.ts.map +1 -0
  40. package/lib/types/utils/captureCanvasStreamWasm.d.ts.map +1 -0
  41. package/lib/types/utils/clamp.d.ts.map +1 -0
  42. package/lib/types/utils/distancePointToLine.d.ts.map +1 -0
  43. package/lib/types/utils/fitCurve.d.ts.map +1 -0
  44. package/lib/types/utils/getAngle.d.ts.map +1 -0
  45. package/lib/types/utils/getAngleDiff.d.ts.map +1 -0
  46. package/lib/types/utils/getBezierPos.d.ts.map +1 -0
  47. package/lib/types/utils/getBezierTan.d.ts.map +1 -0
  48. package/lib/types/utils/getCurveLength.d.ts.map +1 -0
  49. package/lib/types/utils/getDefaultPoints.d.ts +2 -0
  50. package/lib/types/utils/getDefaultPoints.d.ts.map +1 -0
  51. package/lib/types/utils/getDistance.d.ts.map +1 -0
  52. package/lib/types/utils/mat4.d.ts.map +1 -0
  53. package/lib/types/utils/normalizeVec2.d.ts.map +1 -0
  54. package/lib/types/utils/resizeArray.d.ts.map +1 -0
  55. package/lib/types/utils/vec3.d.ts.map +1 -0
  56. package/package.json +8 -8
  57. package/lib/types/crate/glue_code.d.ts +0 -2
  58. package/lib/types/crate/glue_code.d.ts.map +0 -1
  59. package/lib/types/crate/pkg/index_bg.d.ts +0 -59
  60. package/lib/types/crate/pkg/index_bg.d.ts.map +0 -1
  61. package/lib/types/src/WebGPU/canvasSizeObserver.d.ts.map +0 -1
  62. package/lib/types/src/WebGPU/getDevice.d.ts.map +0 -1
  63. package/lib/types/src/WebGPU/getTexture/createCheckedImageData.d.ts.map +0 -1
  64. package/lib/types/src/WebGPU/getTexture/generateMimapsArray.d.ts.map +0 -1
  65. package/lib/types/src/WebGPU/getTexture/index.d.ts.map +0 -1
  66. package/lib/types/src/WebGPU/m3.d.ts.map +0 -1
  67. package/lib/types/src/WebGPU/pick.d.ts +0 -13
  68. package/lib/types/src/WebGPU/pick.d.ts.map +0 -1
  69. package/lib/types/src/WebGPU/pointer.d.ts.map +0 -1
  70. package/lib/types/src/WebGPU/programs/blur/getProgram.d.ts.map +0 -1
  71. package/lib/types/src/WebGPU/programs/draw3dModel/getProgram.d.ts.map +0 -1
  72. package/lib/types/src/WebGPU/programs/draw3dModelLight/getProgram.d.ts.map +0 -1
  73. package/lib/types/src/WebGPU/programs/draw3dModelTexture/getProgram.d.ts.map +0 -1
  74. package/lib/types/src/WebGPU/programs/drawBezier/getProgram.d.ts.map +0 -1
  75. package/lib/types/src/WebGPU/programs/drawTexture/getProgram.d.ts.map +0 -1
  76. package/lib/types/src/WebGPU/programs/drawTriangle/getProgram.d.ts.map +0 -1
  77. package/lib/types/src/WebGPU/programs/initPrograms.d.ts.map +0 -1
  78. package/lib/types/src/WebGPU/programs/pickTexture/getProgram.d.ts +0 -2
  79. package/lib/types/src/WebGPU/programs/pickTexture/getProgram.d.ts.map +0 -1
  80. package/lib/types/src/__test__/index.test.d.ts.map +0 -1
  81. package/lib/types/src/components/Preview/index.d.ts +0 -1
  82. package/lib/types/src/components/Preview/index.d.ts.map +0 -1
  83. package/lib/types/src/consts.d.ts.map +0 -1
  84. package/lib/types/src/getCanvasMatrix.d.ts.map +0 -1
  85. package/lib/types/src/getCanvasRenderDescriptor.d.ts.map +0 -1
  86. package/lib/types/src/getDepthTexture.d.ts.map +0 -1
  87. package/lib/types/src/getRenderDescriptor.d.ts.map +0 -1
  88. package/lib/types/src/index.d.ts +0 -8
  89. package/lib/types/src/index.d.ts.map +0 -1
  90. package/lib/types/src/models/Video/MiniatureVideo.d.ts.map +0 -1
  91. package/lib/types/src/run.d.ts +0 -5
  92. package/lib/types/src/run.d.ts.map +0 -1
  93. package/lib/types/src/types.d.ts.map +0 -1
  94. package/lib/types/src/utils/atNormIndex.d.ts.map +0 -1
  95. package/lib/types/src/utils/captureCanvasStream.d.ts.map +0 -1
  96. package/lib/types/src/utils/captureCanvasStreamWasm.d.ts.map +0 -1
  97. package/lib/types/src/utils/clamp.d.ts.map +0 -1
  98. package/lib/types/src/utils/distancePointToLine.d.ts.map +0 -1
  99. package/lib/types/src/utils/fitCurve.d.ts.map +0 -1
  100. package/lib/types/src/utils/getAngle.d.ts.map +0 -1
  101. package/lib/types/src/utils/getAngleDiff.d.ts.map +0 -1
  102. package/lib/types/src/utils/getBezierPos.d.ts.map +0 -1
  103. package/lib/types/src/utils/getBezierTan.d.ts.map +0 -1
  104. package/lib/types/src/utils/getCurveLength.d.ts.map +0 -1
  105. package/lib/types/src/utils/getDistance.d.ts.map +0 -1
  106. package/lib/types/src/utils/mat4.d.ts.map +0 -1
  107. package/lib/types/src/utils/normalizeVec2.d.ts.map +0 -1
  108. package/lib/types/src/utils/resizeArray.d.ts.map +0 -1
  109. package/lib/types/src/utils/vec3.d.ts.map +0 -1
  110. /package/lib/types/{src/WebGPU → WebGPU}/canvasSizeObserver.d.ts +0 -0
  111. /package/lib/types/{src/WebGPU → WebGPU}/getDevice.d.ts +0 -0
  112. /package/lib/types/{src/WebGPU → WebGPU}/getTexture/createCheckedImageData.d.ts +0 -0
  113. /package/lib/types/{src/WebGPU → WebGPU}/getTexture/generateMimapsArray.d.ts +0 -0
  114. /package/lib/types/{src/WebGPU → WebGPU}/getTexture/index.d.ts +0 -0
  115. /package/lib/types/{src/WebGPU → WebGPU}/m3.d.ts +0 -0
  116. /package/lib/types/{src/WebGPU → WebGPU}/pointer.d.ts +0 -0
  117. /package/lib/types/{src/WebGPU → WebGPU}/programs/blur/getProgram.d.ts +0 -0
  118. /package/lib/types/{src/WebGPU → WebGPU}/programs/draw3dModel/getProgram.d.ts +0 -0
  119. /package/lib/types/{src/WebGPU → WebGPU}/programs/draw3dModelLight/getProgram.d.ts +0 -0
  120. /package/lib/types/{src/WebGPU → WebGPU}/programs/draw3dModelTexture/getProgram.d.ts +0 -0
  121. /package/lib/types/{src/WebGPU → WebGPU}/programs/drawBezier/getProgram.d.ts +0 -0
  122. /package/lib/types/{src/WebGPU → WebGPU}/programs/drawTexture/getProgram.d.ts +0 -0
  123. /package/lib/types/{src/WebGPU → WebGPU}/programs/drawTriangle/getProgram.d.ts +0 -0
  124. /package/lib/types/{src/__test__ → __test__}/index.test.d.ts +0 -0
  125. /package/lib/types/{src/consts.d.ts → consts.d.ts} +0 -0
  126. /package/lib/types/{src/getCanvasMatrix.d.ts → getCanvasMatrix.d.ts} +0 -0
  127. /package/lib/types/{src/getCanvasRenderDescriptor.d.ts → getCanvasRenderDescriptor.d.ts} +0 -0
  128. /package/lib/types/{src/getDepthTexture.d.ts → getDepthTexture.d.ts} +0 -0
  129. /package/lib/types/{src/getRenderDescriptor.d.ts → getRenderDescriptor.d.ts} +0 -0
  130. /package/lib/types/{src/models → models}/Video/MiniatureVideo.d.ts +0 -0
  131. /package/lib/types/{src/types.d.ts → types.d.ts} +0 -0
  132. /package/lib/types/{src/utils → utils}/atNormIndex.d.ts +0 -0
  133. /package/lib/types/{src/utils → utils}/captureCanvasStream.d.ts +0 -0
  134. /package/lib/types/{src/utils → utils}/captureCanvasStreamWasm.d.ts +0 -0
  135. /package/lib/types/{src/utils → utils}/clamp.d.ts +0 -0
  136. /package/lib/types/{src/utils → utils}/distancePointToLine.d.ts +0 -0
  137. /package/lib/types/{src/utils → utils}/fitCurve.d.ts +0 -0
  138. /package/lib/types/{src/utils → utils}/getAngle.d.ts +0 -0
  139. /package/lib/types/{src/utils → utils}/getAngleDiff.d.ts +0 -0
  140. /package/lib/types/{src/utils → utils}/getBezierPos.d.ts +0 -0
  141. /package/lib/types/{src/utils → utils}/getBezierTan.d.ts +0 -0
  142. /package/lib/types/{src/utils → utils}/getCurveLength.d.ts +0 -0
  143. /package/lib/types/{src/utils → utils}/getDistance.d.ts +0 -0
  144. /package/lib/types/{src/utils → utils}/mat4.d.ts +0 -0
  145. /package/lib/types/{src/utils → utils}/normalizeVec2.d.ts +0 -0
  146. /package/lib/types/{src/utils → utils}/resizeArray.d.ts +0 -0
  147. /package/lib/types/{src/utils → utils}/vec3.d.ts +0 -0
package/lib/index.mjs CHANGED
@@ -1 +1,2 @@
1
- var A={d:(I,g)=>{for(var B in g)A.o(g,B)&&!A.o(I,B)&&Object.defineProperty(I,B,{enumerable:!0,get:g[B]})},o:(A,I)=>Object.prototype.hasOwnProperty.call(A,I),r:A=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(A,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(A,"__esModule",{value:!0})}},I={};A.d(I,{A:()=>aA});var g={};function B(A,I,g,B){A.width=Math.max(1,Math.min(I,B.limits.maxTextureDimension2D)),A.height=Math.max(1,Math.min(g,B.limits.maxTextureDimension2D))}A.r(g),A.d(g,{State:()=>P,__wbg_error_53abcd6a461f73d8:()=>iA,__wbg_new_034f913e7636e987:()=>BA,__wbg_new_e69b5f66fda8f13c:()=>$,__wbg_set_20cbc34131e76824:()=>IA,__wbg_set_425e70f7c64ac962:()=>QA,__wbg_set_wasm:()=>K,__wbg_stringify_eead5648c09faaf8:()=>j,__wbindgen_debug_string:()=>gA,__wbindgen_init_externref_table:()=>oA,__wbindgen_is_undefined:()=>z,__wbindgen_number_new:()=>AA,__wbindgen_string_get:()=>CA,__wbindgen_string_new:()=>_,__wbindgen_throw:()=>EA});var Q=function(A,I,g,B){return new(g||(g=Promise))((function(Q,C){function E(A){try{o(B.next(A))}catch(A){C(A)}}function i(A){try{o(B.throw(A))}catch(A){C(A)}}function o(A){var I;A.done?Q(A.value):(I=A.value,I instanceof g?I:new g((function(A){A(I)}))).then(E,i)}o((B=B.apply(A,I||[])).next())}))};const C="struct Vertex {\n @location(0) position: vec4f,\n @location(1) color: vec4f,\n};\n\nstruct Uniforms {\n worldViewProjection: mat4x4f,\n};\n\nstruct VertexOutput {\n @builtin(position) position: vec4f,\n @location(0) color: vec4f,\n};\n\n@group(0) @binding(0) var<uniform> u: Uniforms;\n\n@vertex fn vs(vert: Vertex) -> VertexOutput {\n var out: VertexOutput;\n out.position = u.worldViewProjection * vert.position;\n out.color = vert.color;\n \n return out;\n}\n\n@fragment fn fs(in: VertexOutput) -> @location(0) vec4f {\n return in.color;\n}\n",E=8,i="struct Uniforms {\n matrix: mat4x4f,\n zoom: f32,\n};\n\nstruct Vertex {\n @location(0) t: f32,\n @location(1) dir: f32,\n @location(2) segmentIndex: u32,\n};\n\n@group(0) @binding(0) var<uniform> u: Uniforms;\n\n@group(0) @binding(1) var<storage> points: array<vec2f>;\n\nstruct VSOutput {\n @builtin(position) position: vec4f,\n @location(0) color: vec4f,\n};\n\n@vertex fn vs(vert: Vertex) -> VSOutput {\n var vsOut: VSOutput;\n \n let p1 = points[vert.segmentIndex * 4 + 0];\n let p2 = points[vert.segmentIndex * 4 + 1];\n let p3 = points[vert.segmentIndex * 4 + 2];\n let p4 = points[vert.segmentIndex * 4 + 3];\n\n let t2 = vert.t * vert.t;\n let one_minus_t = 1.0 - vert.t;\n let one_minus_t2 = one_minus_t * one_minus_t;\n let pos = p1 * one_minus_t2 * one_minus_t + p2 * 3.0 * vert.t * one_minus_t2 + p3 * 3.0 * t2 * one_minus_t + p4 * t2 * vert.t;\n\n let angle = one_minus_t2 * (p2 - p1) + 2.0 * vert.t * one_minus_t * (p3 - p2) + t2 * (p4 - p3);\n let angleNorm = normalize(angle) * 5 / u.zoom;\n let transPos = vec2(pos.x - angleNorm.y * vert.dir, pos.y + angleNorm.x * vert.dir);\n let clipSpace = (u.matrix * vec4f(transPos, 1, 1));\n vsOut.position = clipSpace;\n vsOut.color = vec4f(f32(vert.segmentIndex) % 3, (f32(vert.segmentIndex) + 1) % 3, (f32(vert.segmentIndex) + 2) % 3, 1);\n\n return vsOut;\n}\n\n@fragment fn fs(vsOut: VSOutput) -> @location(0) vec4f {\n return vsOut.color;\n}\n",o="struct Uniforms {\n matrix: mat4x4f,\n};\n\nstruct Vertex {\n @location(0) position: vec4f,\n @location(1) texcoord: vec2f,\n};\n\nstruct VSOutput {\n @builtin(position) position: vec4f,\n @location(0) texcoord: vec2f,\n};\n\n@group(0) @binding(0) var<uniform> uni: Uniforms;\n\n@vertex fn vs(vert: Vertex) -> VSOutput {\n var vsOut: VSOutput;\n vsOut.position = uni.matrix * vert.position;\n vsOut.texcoord = vert.texcoord;\n return vsOut;\n}\n\n@group(0) @binding(1) var ourSampler: sampler;\n@group(0) @binding(2) var ourTexture: texture_2d<f32>;\n\n@fragment fn fs(vsOut: VSOutput) -> @location(0) vec4f {\n return textureSample(ourTexture, ourSampler, vsOut.texcoord);\n}\n",D="struct Uniforms {\n matrix: mat4x4f,\n};\n\nstruct Vertex {\n @location(0) position: vec4f,\n};\n\nstruct VSOutput {\n @builtin(position) position: vec4f,\n @location(0) color: vec4f,\n};\n\n@group(0) @binding(0) var<uniform> uni: Uniforms;\n\n@vertex fn vs(\n vert: Vertex,\n @builtin(vertex_index) vertexIndex : u32,\n // @builtin(instance_index) instanceIndex: u32\n ) -> VSOutput {\n var vsOut: VSOutput;\n vsOut.position = uni.matrix * vert.position;\n vsOut.color = vec4f(f32(vertexIndex) % 3, (f32(vertexIndex) + 1) % 3, (f32(vertexIndex) + 2) % 3, 1);\n return vsOut;\n}\n\n\n@fragment fn fs(vsOut: VSOutput) -> @location(0) vec4f {\n return vsOut.color;\n}\n",e="struct Uniforms {\n normalMatrix: mat3x3f,\n worldViewProjection: mat4x4f,\n lightColor: vec4f,\n lightDirection: vec3f,\n};\n\nstruct Vertex {\n @location(0) position: vec4f,\n @location(1) normal: vec3f,\n};\n\nstruct VSOutput {\n @builtin(position) position: vec4f,\n @location(0) color: vec4f,\n @location(1) normal: vec3f,\n};\n\n@group(0) @binding(0) var<uniform> uni: Uniforms;\n\n@vertex fn vs(\n vert: Vertex,\n @builtin(vertex_index) vertexIndex : u32,\n // @builtin(instance_index) instanceIndex: u32\n ) -> VSOutput {\n var vsOut: VSOutput;\n vsOut.position = uni.worldViewProjection * vert.position;\n vsOut.normal = uni.normalMatrix * vert.normal;\n vsOut.color = vec4f(f32(vertexIndex) % 3, (f32(vertexIndex) + 1) % 3, (f32(vertexIndex) + 2) % 3, 1);\n\n return vsOut;\n}\n\n\n@fragment fn fs(vsOut: VSOutput) -> @location(0) vec4f {\n // Because vsOut.normal is an inter-stage variable \n // it's interpolated so it will not be a unit vector.\n // Normalizing it will make it a unit vector again\n let normal = normalize(vsOut.normal);\n \n // Compute the light by taking the dot product\n // of the normal to the light's reverse direction\n let light = dot(normal, -uni.lightDirection);\n \n // Lets multiply just the color portion (not the alpha)\n // by the light\n let color = vec3f(0.23) + uni.lightColor.rgb * light;\n // let color = vsOut.color.rgb * 0.5 + uni.lightColor.rgb * light;\n return vec4f(color, vsOut.color.a);\n}\n",t="struct Params {\n filterDim : i32,\n blockDim : u32,\n}\n\n@group(0) @binding(0) var samp : sampler;\n@group(0) @binding(1) var<uniform> params : Params;\n@group(1) @binding(1) var inputTex : texture_2d<f32>;\n@group(1) @binding(2) var outputTex : texture_storage_2d<rgba8unorm, write>;\n\nstruct Flip {\n value : u32,\n}\n@group(1) @binding(3) var<uniform> flip : Flip;\n\n// This shader blurs the input texture in one direction, depending on whether\n// |flip.value| is 0 or 1.\n// It does so by running (128 / 4) threads per workgroup to load 128\n// texels into 4 rows of shared memory. Each thread loads a\n// 4 x 4 block of texels to take advantage of the texture sampling\n// hardware.\n// Then, each thread computes the blur result by averaging the adjacent texel values\n// in shared memory.\n// Because we're operating on a subset of the texture, we cannot compute all of the\n// results since not all of the neighbors are available in shared memory.\n// Specifically, with 128 x 128 tiles, we can only compute and write out\n// square blocks of size 128 - (filterSize - 1). We compute the number of blocks\n// needed in Javascript and dispatch that amount.\n\n// 128/4 = 32 -> number of threads per working group\n// does it in 4x4 block of texels(takes advantage of texture sampling hardware)\n// with this beign said, we don't have all the neighbours, only this block\n// That's why we can only compute & write out blocks of size 128 - (filterSize - 1)\nvar<workgroup> tile : array<array<vec3<f32>, 128>, 4>;\n\n@compute @workgroup_size(32, 1, 1)\nfn main(\n @builtin(workgroup_id) WorkGroupID : vec3<u32>,\n @builtin(local_invocation_id) LocalInvocationID : vec3<u32>\n) {\n let filterOffset = (params.filterDim - 1) / 2;\n let dims = vec2<i32>(textureDimensions(inputTex, 0));\n let baseIndex = vec2<i32>(WorkGroupID.xy * vec2(params.blockDim, 4) + // it's just the index of the first texel in a group\n LocalInvocationID.xy * vec2(4, 1)) // <0, 128>\n - vec2(filterOffset, 0);\n // baseIndex = xy of first texel of group\n for (var r = 0; r < 4; r++) {\n for (var c = 0; c < 4; c++) {\n var loadIndex = baseIndex + vec2(c, r);\n if (flip.value != 0) {\n loadIndex = loadIndex.yx;\n }\n\n tile[r][4 * LocalInvocationID.x + u32(c)] = textureSampleLevel(\n inputTex,\n samp,\n (vec2<f32>(loadIndex) + vec2<f32>(0.25, 0.25)) / vec2<f32>(dims),\n 0.0\n ).rgb;\n }\n }\n\n workgroupBarrier();\n // helps coordinate access to read-write memory\n // so all threads(32) will wait to hit this barrer, and then start form here together\n\n for (var r = 0; r < 4; r++) {\n for (var c = 0; c < 4; c++) {\n var writeIndex = baseIndex + vec2(c, r);\n if (flip.value != 0) {\n writeIndex = writeIndex.yx;\n }\n\n let center = i32(4 * LocalInvocationID.x) + c;\n if (center >= filterOffset &&\n center < 128 - filterOffset &&\n all(writeIndex < dims)) {\n var acc = vec3(0.0, 0.0, 0.0);\n for (var f = 0; f < params.filterDim; f++) {\n var i = center + f - filterOffset;\n acc = acc + (1.0 / f32(params.filterDim)) * tile[r][i];\n }\n textureStore(outputTex, writeIndex, vec4(acc, 1.0));\n }\n }\n }\n}\n",a=128,w=[4,4],s="struct Vertex {\n @location(0) position: vec4f,\n @location(1) uv: vec2f,\n};\n\nstruct Uniforms {\n worldViewProjection: mat4x4f,\n};\n\nstruct VertexOutput {\n @builtin(position) position: vec4f,\n @location(0) texCoord: vec2f,\n};\n\n@group(0) @binding(0) var<uniform> u: Uniforms;\n@group(0) @binding(1) var ourSampler: sampler;\n@group(0) @binding(2) var ourTexture: texture_2d<f32>;\n\n@vertex fn vs(vert: Vertex) -> VertexOutput {\n var out: VertexOutput;\n // maybe we should pass offsets from the position instead of... position?\n out.position = u.worldViewProjection * vert.position;\n out.texCoord = vert.uv;\n \n return out;\n}\n\n@fragment fn fs(in: VertexOutput) -> @location(0) vec4f {\n return textureSample(ourTexture, ourSampler, in.texCoord);\n}\n",r=6,n="struct Vertex {\n @location(0) position: vec4f,\n @location(1) uv: vec2f,\n @location(2) id: f32,\n};\n\nstruct Uniforms {\n worldViewProjection: mat4x4f\n};\n\nstruct VertexOutput {\n @builtin(position) position: vec4f,\n @location(0) texCoord: vec2f,\n @location(1) @interpolate(flat) id: f32\n};\n\n@group(0) @binding(0) var<uniform> u: Uniforms;\n@group(0) @binding(1) var ourSampler: sampler;\n@group(0) @binding(2) var ourTexture: texture_2d<f32>;\n\n@vertex fn vs(vert: Vertex) -> VertexOutput {\n var out: VertexOutput;\n // maybe we should pass offsets from the position instead of... position?\n out.position = u.worldViewProjection * vert.position;\n out.texCoord = vert.uv;\n out.id = vert.id;\n\n return out;\n}\n\n\n// @fragment fn fs(in: VertexOutput) -> @location(0) vec4f {\n@fragment fn fs(in: VertexOutput) -> @location(0) u32 {\n let alpha = textureSample(ourTexture, ourSampler, in.texCoord).a;\n\n if (alpha < 0.1) {\n discard; // r32uint doesn't support blending so only skipping pixels lefts\n }\n\n return u32(in.id);\n}\n",F=7;let G,h,y,c,N,R,U,k,S;const M={cross(A,I,g=new Float32Array(3)){const B=A[1]*I[2]-A[2]*I[1],Q=A[2]*I[0]-A[0]*I[2],C=A[0]*I[1]-A[1]*I[0];return g[0]=B,g[1]=Q,g[2]=C,g},subtract:(A,I,g=new Float32Array(3))=>(g[0]=A[0]-I[0],g[1]=A[1]-I[1],g[2]=A[2]-I[2],g),normalize(A,I=new Float32Array(3)){const g=Math.sqrt(A[0]*A[0]+A[1]*A[1]+A[2]*A[2]);return g>1e-5?(I[0]=A[0]/g,I[1]=A[1]/g,I[2]=A[2]/g):(I[0]=0,I[1]=0,I[2]=0),I}},J={projection:(A,I,g,B)=>J.ortho(0,A,I,0,g,-g,B),perspective(A,I,g,B,Q=new Float32Array(16)){const C=Math.tan(.5*Math.PI-.5*A),E=1/(g-B);return Q[0]=C/I,Q[1]=0,Q[2]=0,Q[3]=0,Q[4]=0,Q[5]=C,Q[6]=0,Q[7]=0,Q[8]=0,Q[9]=0,Q[10]=B*E,Q[11]=-1,Q[12]=0,Q[13]=0,Q[14]=g*B*E,Q[15]=0,Q},ortho:(A,I,g,B,Q,C,E=new Float32Array(16))=>(E[0]=2/(I-A),E[1]=0,E[2]=0,E[3]=0,E[4]=0,E[5]=2/(B-g),E[6]=0,E[7]=0,E[8]=0,E[9]=0,E[10]=1/(Q-C),E[11]=0,E[12]=(I+A)/(A-I),E[13]=(B+g)/(g-B),E[14]=Q/(Q-C),E[15]=1,E),identity:(A=new Float32Array(16))=>(A[0]=1,A[1]=0,A[2]=0,A[3]=0,A[4]=0,A[5]=1,A[6]=0,A[7]=0,A[8]=0,A[9]=0,A[10]=1,A[11]=0,A[12]=0,A[13]=0,A[14]=0,A[15]=1,A),multiply(A,I,g=new Float32Array(16)){const B=I[0],Q=I[1],C=I[2],E=I[3],i=I[4],o=I[5],D=I[6],e=I[7],t=I[8],a=I[9],w=I[10],s=I[11],r=I[12],n=I[13],F=I[14],G=I[15],h=A[0],y=A[1],c=A[2],N=A[3],R=A[4],U=A[5],k=A[6],S=A[7],M=A[8],J=A[9],Y=A[10],L=A[11],f=A[12],u=A[13],H=A[14],d=A[15];return g[0]=B*h+Q*R+C*M+E*f,g[1]=B*y+Q*U+C*J+E*u,g[2]=B*c+Q*k+C*Y+E*H,g[3]=B*N+Q*S+C*L+E*d,g[4]=i*h+o*R+D*M+e*f,g[5]=i*y+o*U+D*J+e*u,g[6]=i*c+o*k+D*Y+e*H,g[7]=i*N+o*S+D*L+e*d,g[8]=t*h+a*R+w*M+s*f,g[9]=t*y+a*U+w*J+s*u,g[10]=t*c+a*k+w*Y+s*H,g[11]=t*N+a*S+w*L+s*d,g[12]=r*h+n*R+F*M+G*f,g[13]=r*y+n*U+F*J+G*u,g[14]=r*c+n*k+F*Y+G*H,g[15]=r*N+n*S+F*L+G*d,g},cameraAim(A,I,g,B=new Float32Array(16)){const Q=M.normalize(M.subtract(A,I)),C=M.normalize(M.cross(g,Q)),E=M.normalize(M.cross(Q,C));return B[0]=C[0],B[1]=C[1],B[2]=C[2],B[3]=0,B[4]=E[0],B[5]=E[1],B[6]=E[2],B[7]=0,B[8]=Q[0],B[9]=Q[1],B[10]=Q[2],B[11]=0,B[12]=A[0],B[13]=A[1],B[14]=A[2],B[15]=1,B},inverse(A,I=new Float32Array(16)){const g=A[0],B=A[1],Q=A[2],C=A[3],E=A[4],i=A[5],o=A[6],D=A[7],e=A[8],t=A[9],a=A[10],w=A[11],s=A[12],r=A[13],n=A[14],F=A[15],G=a*F,h=n*w,y=o*F,c=n*D,N=o*w,R=a*D,U=Q*F,k=n*C,S=Q*w,M=a*C,J=Q*D,Y=o*C,L=e*r,f=s*t,u=E*r,H=s*i,d=E*t,K=e*i,l=g*r,b=s*B,p=g*t,q=e*B,x=g*i,m=E*B,Z=G*i+c*t+N*r-(h*i+y*t+R*r),T=h*B+U*t+M*r-(G*B+k*t+S*r),v=y*B+k*i+J*r-(c*B+U*i+Y*r),V=R*B+S*i+Y*t-(N*B+M*i+J*t),W=1/(g*Z+E*T+e*v+s*V);return I[0]=W*Z,I[1]=W*T,I[2]=W*v,I[3]=W*V,I[4]=W*(h*E+y*e+R*s-(G*E+c*e+N*s)),I[5]=W*(G*g+k*e+S*s-(h*g+U*e+M*s)),I[6]=W*(c*g+U*E+Y*s-(y*g+k*E+J*s)),I[7]=W*(N*g+M*E+J*e-(R*g+S*E+Y*e)),I[8]=W*(L*D+H*w+d*F-(f*D+u*w+K*F)),I[9]=W*(f*C+l*w+q*F-(L*C+b*w+p*F)),I[10]=W*(u*C+b*D+x*F-(H*C+l*D+m*F)),I[11]=W*(K*C+p*D+m*w-(d*C+q*D+x*w)),I[12]=W*(u*a+K*n+f*o-(d*n+L*o+H*a)),I[13]=W*(p*n+L*Q+b*a-(l*a+q*n+f*Q)),I[14]=W*(l*o+m*n+H*Q-(x*n+u*Q+b*o)),I[15]=W*(x*a+d*Q+q*o-(p*o+m*a+K*Q)),I},transpose:(A,I=new Float32Array(16))=>(I[0]=A[0],I[1]=A[4],I[2]=A[8],I[3]=A[12],I[4]=A[1],I[5]=A[5],I[6]=A[9],I[7]=A[13],I[8]=A[2],I[9]=A[6],I[10]=A[10],I[11]=A[14],I[12]=A[3],I[13]=A[7],I[14]=A[11],I[15]=A[15],I),aim(A,I,g,B=new Float32Array(16)){const Q=M.normalize(M.subtract(I,A)),C=M.normalize(M.cross(g,Q)),E=M.normalize(M.cross(Q,C));return B[0]=C[0],B[1]=C[1],B[2]=C[2],B[3]=0,B[4]=E[0],B[5]=E[1],B[6]=E[2],B[7]=0,B[8]=Q[0],B[9]=Q[1],B[10]=Q[2],B[11]=0,B[12]=A[0],B[13]=A[1],B[14]=A[2],B[15]=1,B},lookAt:(A,I,g,B)=>J.inverse(J.cameraAim(A,I,g,B),B),translation:([A,I,g],B=new Float32Array(16))=>(B[0]=1,B[1]=0,B[2]=0,B[3]=0,B[4]=0,B[5]=1,B[6]=0,B[7]=0,B[8]=0,B[9]=0,B[10]=1,B[11]=0,B[12]=A,B[13]=I,B[14]=g,B[15]=1,B),rotationX(A,I=new Float32Array(16)){const g=Math.cos(A),B=Math.sin(A);return I[0]=1,I[1]=0,I[2]=0,I[3]=0,I[4]=0,I[5]=g,I[6]=B,I[7]=0,I[8]=0,I[9]=-B,I[10]=g,I[11]=0,I[12]=0,I[13]=0,I[14]=0,I[15]=1,I},rotationY(A,I=new Float32Array(16)){const g=Math.cos(A),B=Math.sin(A);return I[0]=g,I[1]=0,I[2]=-B,I[3]=0,I[4]=0,I[5]=1,I[6]=0,I[7]=0,I[8]=B,I[9]=0,I[10]=g,I[11]=0,I[12]=0,I[13]=0,I[14]=0,I[15]=1,I},rotationZ(A,I=new Float32Array(16)){const g=Math.cos(A),B=Math.sin(A);return I[0]=g,I[1]=B,I[2]=0,I[3]=0,I[4]=-B,I[5]=g,I[6]=0,I[7]=0,I[8]=0,I[9]=0,I[10]=1,I[11]=0,I[12]=0,I[13]=0,I[14]=0,I[15]=1,I},scaling:([A,I,g],B=new Float32Array(16))=>(B[0]=A,B[1]=0,B[2]=0,B[3]=0,B[4]=0,B[5]=I,B[6]=0,B[7]=0,B[8]=0,B[9]=0,B[10]=g,B[11]=0,B[12]=0,B[13]=0,B[14]=0,B[15]=1,B),translate:(A,I,g)=>J.multiply(A,J.translation(I),g),rotateX:(A,I,g)=>J.multiply(A,J.rotationX(I),g),rotateY:(A,I,g)=>J.multiply(A,J.rotationY(I),g),rotateZ:(A,I,g)=>J.multiply(A,J.rotationZ(I),g),scale:(A,I,g)=>J.multiply(A,J.scaling(I),g)},Y=J,L={x:0,y:0};class f{constructor(A,I){this.device=A,this.canvas=I,this.isPreviousDone=!0,this.pickBuffer=A.createBuffer({size:4,usage:GPUBufferUsage.MAP_READ|GPUBufferUsage.COPY_DST}),this.pickTexture=A.createTexture({size:[1,1],format:"r32uint",usage:GPUTextureUsage.COPY_SRC|GPUTextureUsage.RENDER_ATTACHMENT}),this.pickDepthTexture=A.createTexture({size:[1,1],format:"depth24plus",usage:GPUTextureUsage.RENDER_ATTACHMENT})}render(A,I,g,B){const{clientWidth:Q,clientHeight:C}=this.canvas,E={label:"our render to canvas renderPass",colorAttachments:[{view:this.pickTexture.createView(),loadOp:"clear",clearValue:[0,0,0,1],storeOp:"store"}]},i=-(L.x/Q*2-1),o=L.y/C*2-1,D=[Y.scaling([Q,C,0]),Y.translation([i,o,0]),I].reduce(((A,I)=>Y.multiply(A,I)),Y.translation([-1,1,0])),e=A.beginRenderPass(E);e.setViewport(0,0,1,1,0,1),e.setScissorRect(0,0,1,1),g(e,D),e.end(),A.copyTextureToBuffer({texture:this.pickTexture,origin:{x:0,y:0}},{buffer:this.pickBuffer},{width:1})}asyncPick(A){return I=this,g=void 0,Q=function*(){if(!this.isPreviousDone)return;this.isPreviousDone=!1,yield this.pickBuffer.mapAsync(GPUMapMode.READ,0,4);const[I]=new Uint32Array(this.pickBuffer.getMappedRange(0,4));A.update_hover(I),this.pickBuffer.unmap(),this.isPreviousDone=!0},new((B=void 0)||(B=Promise))((function(A,C){function E(A){try{o(Q.next(A))}catch(A){C(A)}}function i(A){try{o(Q.throw(A))}catch(A){C(A)}}function o(I){var g;I.done?A(I.value):(g=I.value,g instanceof B?g:new B((function(A){A(g)}))).then(E,i)}o((Q=Q.apply(I,g||[])).next())}));var I,g,B,Q}}new Float32Array;const u=(...A)=>{const I=Math.max(...A);return 1+Math.log2(I)|0};function H(A,I,g){return Math.min(g,Math.max(I,A))}let d;function K(A){d=A}let l=new("undefined"==typeof TextDecoder?(0,module.require)("util").TextDecoder:TextDecoder)("utf-8",{ignoreBOM:!0,fatal:!0});l.decode();let b=null;function p(){return null!==b&&0!==b.byteLength||(b=new Uint8Array(d.memory.buffer)),b}function q(A,I){return A>>>=0,l.decode(p().subarray(A,A+I))}function x(A){const I=typeof A;if("number"==I||"boolean"==I||null==A)return`${A}`;if("string"==I)return`"${A}"`;if("symbol"==I){const I=A.description;return null==I?"Symbol":`Symbol(${I})`}if("function"==I){const I=A.name;return"string"==typeof I&&I.length>0?`Function(${I})`:"Function"}if(Array.isArray(A)){const I=A.length;let g="[";I>0&&(g+=x(A[0]));for(let B=1;B<I;B++)g+=", "+x(A[B]);return g+="]",g}const g=/\[object ([^\]]+)\]/.exec(toString.call(A));let B;if(!(g.length>1))return toString.call(A);if(B=g[1],"Object"==B)try{return"Object("+JSON.stringify(A)+")"}catch(A){return"Object"}return A instanceof Error?`${A.name}: ${A.message}\n${A.stack}`:B}let m=0,Z=new("undefined"==typeof TextEncoder?(0,module.require)("util").TextEncoder:TextEncoder)("utf-8");const T="function"==typeof Z.encodeInto?function(A,I){return Z.encodeInto(A,I)}:function(A,I){const g=Z.encode(A);return I.set(g),{read:A.length,written:g.length}};function v(A,I,g){if(void 0===g){const g=Z.encode(A),B=I(g.length,1)>>>0;return p().subarray(B,B+g.length).set(g),m=g.length,B}let B=A.length,Q=I(B,1)>>>0;const C=p();let E=0;for(;E<B;E++){const I=A.charCodeAt(E);if(I>127)break;C[Q+E]=I}if(E!==B){0!==E&&(A=A.slice(E)),Q=g(Q,B,B=E+3*A.length,1)>>>0;const I=p().subarray(Q+E,Q+B);E+=T(A,I).written,Q=g(Q,B,E,1)>>>0}return m=E,Q}let V=null;function W(){return(null===V||!0===V.buffer.detached||void 0===V.buffer.detached&&V.buffer!==d.memory.buffer)&&(V=new DataView(d.memory.buffer)),V}let X=null;const O="undefined"==typeof FinalizationRegistry?{register:()=>{},unregister:()=>{}}:new FinalizationRegistry((A=>d.__wbg_state_free(A>>>0,1)));class P{static __wrap(A){A>>>=0;const I=Object.create(P.prototype);return I.__wbg_ptr=A,O.register(I,I.__wbg_ptr,I),I}__destroy_into_raw(){const A=this.__wbg_ptr;return this.__wbg_ptr=0,O.unregister(this),A}free(){const A=this.__destroy_into_raw();d.__wbg_state_free(A,0)}static new(A,I){const g=d.state_new(A,I);return P.__wrap(g)}add_texture(A,I,g){d.state_add_texture(this.__wbg_ptr,A,I,g)}get_shader_input(A){return d.state_get_shader_input(this.__wbg_ptr,A)}get_shader_pick_input(A){return d.state_get_shader_pick_input(this.__wbg_ptr,A)}update_points(A,I){d.state_update_points(this.__wbg_ptr,A,I)}update_hover(A){d.state_update_hover(this.__wbg_ptr,A)}get_border(){const A=d.state_get_border(this.__wbg_ptr);var I,g,B=(I=A[0],g=A[1],I>>>=0,(null!==X&&0!==X.byteLength||(X=new Float32Array(d.memory.buffer)),X).subarray(I/4,I/4+g)).slice();return d.__wbindgen_free(A[0],4*A[1],4),B}}function z(A){return void 0===A}function j(){return function(A,I){try{return A.apply(this,I)}catch(A){const I=function(A){const I=d.__externref_table_alloc();return d.__wbindgen_export_2.set(I,A),I}(A);d.__wbindgen_exn_store(I)}}((function(A){return JSON.stringify(A)}),arguments)}function _(A,I){return q(A,I)}function $(){return new Object}function AA(A){return A}function IA(A,I,g){A[I]=g}function gA(A,I){const g=v(x(I),d.__wbindgen_malloc,d.__wbindgen_realloc),B=m;W().setInt32(A+4,B,!0),W().setInt32(A+0,g,!0)}function BA(){return new Array}function QA(A,I,g){A[I>>>0]=g}function CA(A,I){const g="string"==typeof I?I:void 0;var B=null==g?0:v(g,d.__wbindgen_malloc,d.__wbindgen_realloc),Q=m;W().setInt32(A+4,Q,!0),W().setInt32(A+0,B,!0)}function EA(A,I){throw new Error(q(A,I))}const iA="function"==typeof console.error?console.error:()=>{throw new Error("console.error is not defined")};function oA(){const A=d.__wbindgen_export_2,I=A.grow(4);A.set(0,void 0),A.set(I+0,void 0),A.set(I+1,null),A.set(I+2,!0),A.set(I+3,!1)}const DA="data:application/wasm;base64,AGFzbQEAAAABkgIrYAN/f38Bf2ACf38Bf2ACf38AYAN/f38AYAF/AGABfwF/YAAAYAR/f39/AGAFf39/f38AYAV/f39+fwBgAn9/AW9gAX0BfWAEf39/fwF/YAV/f39/fwF/YAABb2ACf28AYAZ/f39/f38Bf2AAAX9gAAJ/f2ABbwF/YAFvAW9gAXwBb2ADb29vAGADb39vAGABbwBgBH9/f34AYAJ+fwBgA35/fwF/YAd/f39/f39/AX9gBn9/f39/fwBgAn19AX9gA39+fgBgBH9+fn8AYAF/An9/YAV/f31/fwBgBH99f38AYAV/f3x/fwBgBH98f38AYAV/f35/fwBgBH9+f38AYAR/f29/AGABfAF/YAN/f28AAp4EDQ0uL2luZGV4X2JnLmpzF19fd2JpbmRnZW5faXNfdW5kZWZpbmVkABMNLi9pbmRleF9iZy5qcyBfX3diZ19zdHJpbmdpZnlfZWVhZDU2NDhjMDlmYWFmOAAUDS4vaW5kZXhfYmcuanMVX193YmluZGdlbl9zdHJpbmdfbmV3AAoNLi9pbmRleF9iZy5qcxpfX3diZ19uZXdfZTY5YjVmNjZmZGE4ZjEzYwAODS4vaW5kZXhfYmcuanMVX193YmluZGdlbl9udW1iZXJfbmV3ABUNLi9pbmRleF9iZy5qcxpfX3diZ19zZXRfMjBjYmMzNDEzMWU3NjgyNAAWDS4vaW5kZXhfYmcuanMXX193YmluZGdlbl9kZWJ1Z19zdHJpbmcADw0uL2luZGV4X2JnLmpzGl9fd2JnX25ld18wMzRmOTEzZTc2MzZlOTg3AA4NLi9pbmRleF9iZy5qcxpfX3diZ19zZXRfNDI1ZTcwZjdjNjRhYzk2MgAXDS4vaW5kZXhfYmcuanMVX193YmluZGdlbl9zdHJpbmdfZ2V0AA8NLi9pbmRleF9iZy5qcxBfX3diaW5kZ2VuX3Rocm93AAINLi9pbmRleF9iZy5qcxxfX3diZ19lcnJvcl81M2FiY2Q2YTQ2MWY3M2Q4ABgNLi9pbmRleF9iZy5qcx9fX3diaW5kZ2VuX2luaXRfZXh0ZXJucmVmX3RhYmxlAAYDmAGWAQAFAQUCAAADAwsLBBkBDAIJAgAQAgAAAQMHBQEJAhECAgIFABoCBAQBGwIBCwUCHAkBAgIBBQgAHQQIAwMFAgEe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CyACKAIAIANGBEAgAkHghsEAEEsgAigCBCEECyACIANBAWo2AgggAyAEakHcADoAAAwKCyACKAIAIANGBEAgAkHwhsEAEEsgAigCBCEECyACIANBAWo2AgggAyAEakEvOgAADAkLIAIoAgAgA0YEQCACQYCHwQAQSyACKAIEIQQLIAIgA0EBajYCCCADIARqQQg6AAAMCAsgAigCACADRgRAIAJBkIfBABBLIAIoAgQhBAsgAiADQQFqNgIIIAMgBGpBDDoAAAwHCyACKAIAIANGBEAgAkGgh8EAEEsgAigCBCEECyACIANBAWo2AgggAyAEakEKOgAADAYLIAIoAgAgA0YEQCACQbCHwQAQSyACKAIEIQQLIAIgA0EBajYCCCADIARqQQ06AAAMBQsgAigCACADRgRAIAJBwIfBABBLIAIoAgQhBAsgAiADQQFqNgIIIAMgBGpBCToAAAwECyADIAVBoIbBABCVAQALIAIoAggiBEUNASADIAVLBEAgAyAFQZCGwQAQlQEACyAFIANrIgcgAigCACAEa0sEQCACIAQgBxBJIAIoAgghBAsgAigCBCIIIARqIAMgBmogBxAfGiABIAVBAWo2AgggAiAEIAdqIgE2AgggACABNgIIIAAgCDYCBCAAQQE2AgAMBgsACyADIAVLBEAgAyAFQYCGwQAQlQEACyAAQQA2AgAgACAFIANrNgIIIAAgAyAGajYCBCABIAVBAWo2AggMBAsMAQsLIAMgAjYCDCADIAE2AhALIABBAjYCACAAIAM2AgQLIAlBIGokAAv8CgIDfAN/IwBBEGsiBSQAIAC7IQECQCAAvCIGQf////8HcSIEQdufpPoDTwRAIARB0qftgwRPBEAgBEHW44iHBE8EQAJAAkACQAJAIARB////+wdNBEAgBUIANwMIAnwgBEHan6TuBE0EQCABRIPIyW0wX+Q/okQAAAAAAAA4Q6BEAAAAAAAAOMOgIgJEAAAAAAAA4MFmIQZB/////wcCfyACmUQAAAAAAADgQWMEQCACqgwBC0GAgICAeAtBgICAgHggBhsgAkQAAMD////fQWQbQQAgAiACYRshBCABIAJEAAAAUPsh+b+ioCACRGNiGmG0EFG+oqAMAQsgBSAEIARBF3ZBlgFrIgRBF3Rrvrs5AwAgBSAFQQhqIAQQDSEEIAZBAE4EQCAFKwMIDAELQQAgBGshBCAFKwMImgshASAEQQNxQQFrDgMDBAECCyAAIACTIQAMBwsgASABoiIBRIFeDP3//9+/okQAAAAAAADwP6AgASABoiICREI6BeFTVaU/oqAgASACoiABRGlQ7uBCk/k+okQnHg/oh8BWv6CioLaMIQAMBgsgASABIAGiIgKiIgMgAiACoqIgAkSnRjuMh83GPqJEdOfK4vkAKr+goiABIAMgAkSy+26JEBGBP6JEd6zLVFVVxb+goqCgtiEADAULIAEgAaIiAUSBXgz9///fv6JEAAAAAAAA8D+gIAEgAaIiAkRCOgXhU1WlP6KgIAEgAqIgAURpUO7gQpP5PqJEJx4P6IfAVr+goqC2IQAMBAsgASABoiICIAGaoiIDIAIgAqKiIAJEp0Y7jIfNxj6iRHTnyuL5ACq/oKIgAyACRLL7bokQEYE/okR3rMtUVVXFv6CiIAGhoLYhAAwDCyAEQeDbv4UETwRARBgtRFT7IRnARBgtRFT7IRlAIAZBAE4bIAGgIgIgAiACoiIBoiIDIAEgAaKiIAFEp0Y7jIfNxj6iRHTnyuL5ACq/oKIgAiADIAFEsvtuiRARgT+iRHesy1RVVcW/oKKgoLYhAAwDCyAGQQBOBEAgAUTSITN/fNkSwKAiASABoiIBRIFeDP3//9+/okQAAAAAAADwP6AgASABoiICREI6BeFTVaU/oqAgASACoiABRGlQ7uBCk/k+okQnHg/oh8BWv6CioLaMIQAMAwsgAUTSITN/fNkSQKAiASABoiIBRIFeDP3//9+/okQAAAAAAADwP6AgASABoiICREI6BeFTVaU/oqAgASACoiABRGlQ7uBCk/k+okQnHg/oh8BWv6CioLYhAAwCCyAEQeSX24AETwRARBgtRFT7IQnARBgtRFT7IQlAIAZBAE4bIAGgIgIgAqIiASACmqIiAyABIAGioiABRKdGO4yHzcY+okR058ri+QAqv6CiIAMgAUSy+26JEBGBP6JEd6zLVFVVxb+goiACoaC2IQAMAgsgBkEATgRAIAFEGC1EVPsh+b+gIgEgAaIiAUSBXgz9///fv6JEAAAAAAAA8D+gIAEgAaIiAkRCOgXhU1WlP6KgIAEgAqIgAURpUO7gQpP5PqJEJx4P6IfAVr+goqC2IQAMAgsgAUQYLURU+yH5P6AiASABoiIBRIFeDP3//9+/okQAAAAAAADwP6AgASABoiICREI6BeFTVaU/oqAgASACoiABRGlQ7uBCk/k+okQnHg/oh8BWv6CioLaMIQAMAQsgBEGAgIDMA08EQCABIAGiIgIgAaIiAyACIAKioiACRKdGO4yHzcY+okR058ri+QAqv6CiIAMgAkSy+26JEBGBP6JEd6zLVFVVxb+goiABoKC2IQAMAQsgBSAAQwAAgAOUIABDAACAe5IgBEGAgIAESRs4AgggBSoCCBoLIAVBEGokACAAC9QKAgN8A38jAEEQayIFJAAgALshAQJ9AkACQCAAvCIGQf////8HcSIEQdufpPoDTwRAIARB0qftgwRPBEAgBEHW44iHBE8EQAJAAkACQAJAIARB////+wdNBEAgBUIANwMIAnwgBEHan6TuBE0EQCABRIPIyW0wX+Q/okQAAAAAAAA4Q6BEAAAAAAAAOMOgIgJEAAAAAAAA4MFmIQZB/////wcCfyACmUQAAAAAAADgQWMEQCACqgwBC0GAgICAeAtBgICAgHggBhsgAkQAAMD////fQWQbQQAgAiACYRshBCABIAJEAAAAUPsh+b+ioCACRGNiGmG0EFG+oqAMAQsgBSAEIARBF3ZBlgFrIgRBF3Rrvrs5AwAgBSAFQQhqIAQQDSEEIAZBAE4EQCAFKwMIDAELQQAgBGshBCAFKwMImgshASAEQQNxQQFrDgMDBAECCyAAIACTDAkLIAEgASABoiICoiIDIAIgAqKiIAJEp0Y7jIfNxj6iRHTnyuL5ACq/oKIgASADIAJEsvtuiRARgT+iRHesy1RVVcW/oKKgoLYMCAsgASABoiIBRIFeDP3//9+/okQAAAAAAADwP6AgASABoiICREI6BeFTVaU/oqAgASACoiABRGlQ7uBCk/k+okQnHg/oh8BWv6CioLYMBwsgASABoiICIAGaoiIDIAIgAqKiIAJEp0Y7jIfNxj6iRHTnyuL5ACq/oKIgAyACRLL7bokQEYE/okR3rMtUVVXFv6CiIAGhoLYMBgsgASABoiIBRIFeDP3//9+/okQAAAAAAADwP6AgASABoiICREI6BeFTVaU/oqAgASACoiABRGlQ7uBCk/k+okQnHg/oh8BWv6CioLaMDAULIARB39u/hQRLDQIgBkEATgRAIAFE0iEzf3zZEsCgIgIgAiACoiIB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BH8gAyABNgIcIAMgACgCBDYCFEEBBSACCzYCGCADQQhqIAQgA0EUahBlIAMoAghBAUcNASADKAIQIQAgAygCDAsgAEG4pcEAEJABAAsgAygCDCEBIAAgBDYCACAAIAE2AgQgA0EgaiQAC/gZAhl/AX4jAEEQayIOJAAgACgCDCEDAkACQAJAAkACQAJAIAAoAgQOAgABAgsgAw0BQQAhAEEBIQNBASECDAMLIANFDQELIA5BBGogABA3DAILIAAoAgAiAygCBCIAQQBOBH8gAygCACECIABFBEBBACEAQQEhAwwCC0G8r8EALQAAGiAAEA4iAw0BQQEFQQALIABBgILBABCQAQALIAMgAiAAEB8hAyAOIAA2AgwgDiADNgIIIA4gADYCBAsCfyMAQdAAayILJAAgDkEEaiISKAIIIQUgEigCBCEJQQEhAkEBIQBBASEHAkACQAJAAkACQAJAAkACQAJAAkADQCABIAZqIgRBCEsNASAAIQMCQCACQdCCwQBqLQAAIgIgBEHQgsEAai0AACIESQRAIAAgAWpBAWoiACAGayEHQQAhAQwBCyACIARHBEBBASEHIANBAWohAEEAIQEgAyEGDAELQQAgAUEBaiIAIAAgB0YiAhshASAAQQAgAhsgA2ohAAsgACABaiICQQlJDQALQQEhAkEAIQNBASEAQQAhAUEBIQQDQCABIANqIgpBCEsNAiAAIQgCQCACQdCCwQBqLQAAIgIgCkHQgsEAai0AACIKSwRAIAAgAWpBAWoiACADayEEQQAhAQwBCyACIApHBEBBASEEIAhBAWohAEEAIQEgCCEDDAELQQAgAUEBaiIAIAAgBEYiAhshASAAQQAgAhsgCGohAAsgACABaiICQQlJDQALIAYgAyADIAZJIgAbIghBCk8NAiAHIAQgABsiACAIaiIDIABJDQMgA0EJSw0EIABB0ILBAGohA0EAIQZB0ILBACEKAkAgCCIERQ0AA0AgCi0AACIHIAMtAAAiAUYEQCAKQQFqIQogA0EBaiEDIARBAWsiBA0BDAILCyAHIAFrIQYLIAYiEA0HQQEhBkEAIQFBASECQQAhBwNAIAIiBCABaiIKQQhNBEAgAkF/cyABayIDQXdJDQtBCCABIAdqayICQQlPDQcCQCADQdmCwQBqLQAAIgMgAkHQgsEAai0AACICSQRAIApB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AyAANgIAIANBAjYCDCADQcifwAA2AgggA0ICNwIUIAMgA0EEaq1CgICAgDCENwMoIAMgA61CgICAgDCENwMgIAMgA0EgajYCECADQQhqIAIQbwALaAEBfyMAQTBrIgMkACADIAE2AgQgAyAANgIAIANBAjYCDCADQfyfwAA2AgggA0ICNwIUIAMgA0EEaq1CgICAgDCENwMoIAMgA61CgICAgDCENwMgIAMgA0EgajYCECADQQhqIAIQbwALDQAgACkDAEEBIAEQNgsNAEGMp8EAQRsQmAEACwkAIAAgARAKAAsOAEGnp8EAQc8AEJgBAAspAQF/IwBBEGsiACQAIABBADYCDCAAQQE2AgggAEEIakEcQQFBABBcAAsLACAAKAIAIAEQOAsNACAAQeiKwAAgARAiCw0AIABB1I7AACABECILDAAgACABKQIANwMAC8YJAQh/AkACQCACIgUgACIHIAFrSwRAIAEgAmohACACIAdqIQIgBUEQSQ0BQQAgAkEDcSIGayEJAkAgAkF8cSIDIAJPDQAgBkEBawJAIAZFBEAgACEEDAELIAYhCCAAIQQDQCACQQFrIgIgBEEBayIELQAAOgAAIAhBAWsiCA0ACwtBA0kNACAEQQRrIQQDQCACQQFrIARBA2otAAA6AAAgAkECayAEQQJqLQAAOgAAIAJBA2sgBEEBai0AADoAACACQQRrIgIgBC0AADoAACAEQQRrIQQgAiADSw0ACwsgAyAFIAZrIgRBfHEiBWshAkEAIAVrIQYCQCAAIAlqIgBBA3FFBEAgAiADTw0BIAEgBGpBBGshAQNAIANBBGsiAyABKAIANgIAIAFBBGshASACIANJDQALDAELIAIgA08NACAAQQN0IgVBGHEhCCAAQXxxIglBBGshAUEAIAVrQRhxIQogCSgCACEFA0AgA0EEayIDIAUgCnQgASgCACIFIAh2cjYCACABQQRrIQEgAiADSQ0ACwsgBEEDcSEFIAAgBmohAAwBCwJAIAVBEEkEQCAHIQIMAQsCQCAHQQAgB2tBA3EiBmoiBCAHTQ0AIAchAiABIQMgBgRAIAYhAANAIAIgAy0AADoAACADQQFqIQMgAkEBaiECIABBAWsiAA0ACwsgBkEBa0EHSQ0AA0AgAiADLQAAOgAAIAJBAWogA0EBai0AADoAACACQQJqIANBAmot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bmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi9zZXJkZS0xLjAuMjE2L3NyYy9kZS9pbXBscy5ycwAAADIEEABfAAAAmAQAABwAAAAvcnVzdGMvMDVmOTg0NmY4OTNiMDlhMWJlMWZjODU2MGUzM2ZjM2M4MTVjZmVjYi9saWJyYXJ5L2NvcmUvc3JjL2l0ZXIvdHJhaXRzL2l0ZXJhdG9yLnJzY2FsbGVkIGBSZXN1bHQ6OnVud3JhcF90aHJvdygpYCBvbiBhbiBgRXJyYCB2YWx1ZQAAAKQEEABYAAAAswcAAAkAAAB4eXN0cnVjdCBQb2ludHV2c3RydWN0IFZlcnRleFBvaW50RXJyb3IAJQAAAAwAAAAEAAAAJgAAACcAAAAoAAAAY2FwYWNpdHkgb3ZlcmZsb3cAAACABRAAEQAAAGxpYnJhcnkvYWxsb2Mvc3JjL3Jhd192ZWMucnOcBRAAHAAAACoCAAARAAAAbGlicmFyeS9hbGxvYy9zcmMvc3RyaW5nLnJzAMgFEAAbAAAA6gEAABcAQfyLwAALzR0BAAAAKQAAAGEgZm9ybWF0dGluZyB0cmFpdCBpbXBsZW1lbnRhdGlvbiByZXR1cm5lZCBhbiBlcnJvciB3aGVuIHRoZSB1bmRlcmx5aW5nIHN0cmVhbSBkaWQgbm90bGlicmFyeS9hbGxvYy9zcmMvZm10LnJzAABaBhAAGAAAAIoCAAAOAAAAyAUQABsAAACNBQAAGwAAAC4uMDEyMzQ1Njc4OWFiY2RlZkJvcnJvd011dEVycm9yYWxyZWFkeSBib3Jyb3dlZDogAAC0BhAAEgAAAGNhbGxlZCBgT3B0aW9uOjp1bndyYXAoKWAgb24gYSBgTm9uZWAgdmFsdWVpbmRleCBvdXQgb2YgYm91bmRzOiB0aGUgbGVuIGlzICBidXQgdGhlIGluZGV4IGlzIAAAAPsGEAAgAAAAGwcQABIAAAA6IAAAAQAAAAAAAABABxAAAgAAAAAAAAAMAAAABAAAACoAAAArAAAALAAAACAgICAsCigoCjB4bGlicmFyeS9jb3JlL3NyYy9mbXQvbW9kLnJzZmFsc2V0cnVlAHcHEAAbAAAAqQoAACYAAAB3BxAAGwAAALIKAAAaAAAAbGlicmFyeS9jb3JlL3NyYy9zdHIvbW9kLnJzbGli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/////////////////////////////////////////////////////////////////////////////////////////wAAAQACAAMABAAFAAYABwAIAAkA//////////////////8KAAsADAANAA4ADwD/////////////////////////////////////////////////////////////////////CgALAAwADQAOAA8A////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////AAAQACAAMABAAFAAYABwAIAAkAD//////////////////6AAsADAANAA4ADwAP////////////////////////////////////////////////////////////////////+gALAAwADQAOAA8AD///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////8AAAAAAADwPwAAAAAAACRAAAAAAAAAWUAAAAAAAECPQAAAAAAAiMNAAAAAAABq+EAAAAAAgIQuQQAAAADQEmNBAAAAAITXl0EAAAAAZc3NQQAAACBfoAJCAAAA6HZIN0IAAACilBptQgAAQOWcMKJCAACQHsS81kIAADQm9WsMQwCA4Dd5w0FDAKDYhVc0dkMAyE5nbcGrQwA9kWDkWOFDQIy1eB2vFURQ7+LW5BpLRJLVTQbP8IBE9krhxwIttUS0ndl5Q3jqRJECKCwqiyBFNQMyt/StVEUChP7kcdmJRYESHy/nJ8BFIdfm+uAx9EXqjKA5WT4pRiSwCIjvjV9GF24FtbW4k0acyUYi46bIRgN82Oqb0P5Ggk3HcmFCM0fjIHnP+RJoRxtpV0O4F55HsaEWKtPO0kcdSpz0h4IHSKVcw/EpYz1I5xkaN/pdckhhoODEePWmSHnIGPbWstxITH3PWcbvEUmeXEPwt2tGScYzVOylBnxJXKC0syeEsUlzyKGgMeXlSY86ygh+XhtKmmR+xQ4bUUrA/d120mGFSjB9lRRHurpKPm7dbGy08ErOyRSIh+EkS0H8GWrpGVpLqT1Q4jFQkEsTTeRaPmTES1dgnfFNfflLbbgEbqHcL0xE88Lk5OljTBWw8x1e5JhMG5xwpXUdz0yRYWaHaXIDTfX5P+kDTzhNcviP48Ribk1H+zkOu/2iTRl6yNEpvddNn5g6RnSsDU5kn+SryItCTj3H3da6LndODDmVjGn6rE6nQ933gRziTpGU1HWioxZPtblJE4tMTE8RFA7s1q+BTxaZEafMG7ZPW//V0L+i60+Zv4Xit0UhUH8vJ9sll1VQX/vwUe/8ilAbnTaTFd7AUGJEBPiaFfVQe1UFtgFbKlFtVcMR4XhgUcgqNFYZl5RRejXBq9+8yVFswVjLCxYAUsfxLr6OGzRSOa66bXIiaVLHWSkJD2ufUh3YuWXpotNSJE4ov6OLCFOtYfKujK4+Uwx9V+0XLXNTT1yt6F34p1Njs9hidfbdUx5wx10JuhJUJUw5tYtoR1Qun4eirkJ9VH3DlCWt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////CFIQAEGgpMEAC/AGL3J1c3RjLzA1Zjk4NDZmODkzYjA5YTFiZTFmYzg1NjBlMzNmYzNjODE1Y2ZlY2IvbGlicmFyeS9hbGxvYy9zcmMvc3RyaW5nLnJzL3J1c3RjLzA1Zjk4NDZmODkzYjA5YTFiZTFmYzg1NjBlMzNmYzNjODE1Y2ZlY2IvbGlicmFyeS9hbGxvYy9zcmMvcmF3X3ZlYy5ycwBrUhAATAAAACoCAAARAAAAL3J1c3QvZGVwcy9kbG1hbGxvYy0wLjIuNy9zcmMvZGxtYWxsb2MucnNhc3NlcnRpb24gZmFpbGVkOiBwc2l6ZSA+PSBzaXplICsgbWluX292ZXJoZWFkAMhSEAApAAAAqAQAAAkAAABhc3NlcnRpb24gZmFpbGVkOiBwc2l6ZSA8PSBzaXplICsgbWF4X292ZXJoZWFkAADIUhAAKQAAAK4EAAANAAAASnNWYWx1ZSgpAAAAcFMQAAgAAAB4UxAAAQAAAG51bGwgcG9pbnRlciBwYXNzZWQgdG8gcnVzdHJlY3Vyc2l2ZSB1c2Ugb2YgYW4gb2JqZWN0IGRldGVjdGVkIHdoaWNoIHdvdWxkIGxlYWQgdG8gdW5zYWZlIGFsaWFzaW5nIGluIHJ1c3QAAAMAAAAEAAAABAAAAAYAAACD+aIARE5uAPwpFQDRVycA3TT1AGLbwAA8mZUAQZBDAGNR/gC73qsAt2HFADpuJADSTUIASQbgAAnqLgAcktEA6x3+ACmxHADoPqcA9TWCAES7LgCc6YQAtCZwAEF+XwDWkTkAU4M5AJz0OQCLX4QAKPm9APgfOwDe/5cAD5gFABEv7wAKWosAbR9tAM9+NgAJyycARk+3AJ5mPwAt6l8Auid1AOXrxwA9e/EA9zkHAJJSigD7a+oAH7FfAAhdjQAwA1YAe/xGAPCrawAgvM8ANvSaAOOpHQBeYZEACBvmAIWZZQCgFF8AjUBoAIDY/wAnc00ABgYxAMpWFQDJqHMAe+JgAGuMwAAAAABA+yH5PwAAAAAtRHQ+AAAAgJhG+DwAAABgUcx4OwAAAICDG/A5AAAAQCAlejgAAACAIoLjNgAAAAAd82k1OGPtPtoPST9emHs/2g/JP2k3rDFoISIztA8UM2ghojPbD0k/2w9Jv+TLFkDkyxbAAAAAAAAAAIDbD0lA2w9JwAB7CXByb2R1Y2VycwIIbGFuZ3VhZ2UBBFJ1c3QADHByb2Nlc3NlZC1ieQMFcnVzdGMdMS44Ni4wICgwNWY5ODQ2ZjggMjAyNS0wMy0zMSkGd2FscnVzBjAuMjIuMAx3YXNtLWJpbmRnZW4SMC4yLjk1ICgzYThkYTdjYjgpAEkPdGFyZ2V0X2ZlYXR1cmVzBCsPbXV0YWJsZS1nbG9iYWxzKwhzaWduLWV4dCsPcmVmZXJlbmNlLXR5cGVzKwptdWx0aXZhbHVl".split("base64,")[1],eA=Uint8Array.from(atob(DA),(A=>A.charCodeAt(0)));WebAssembly.instantiate(eA,{"./index_bg.js":g}).then((A=>{K(A.instance.exports),A.instance.exports.__wbindgen_start()}));var tA=function(A,I,g,B){return new(g||(g=Promise))((function(Q,C){function E(A){try{o(B.next(A))}catch(A){C(A)}}function i(A){try{o(B.throw(A))}catch(A){C(A)}}function o(A){var I;A.done?Q(A.value):(I=A.value,I instanceof g?I:new g((function(A){A(I)}))).then(E,i)}o((B=B.apply(A,I||[])).next())}))};function aA(A){return tA(this,void 0,void 0,(function*(){const I=yield function(){return Q(this,void 0,void 0,(function*(){if(!navigator.gpu)throw Error("this browser does not support WebGPU");const A=yield navigator.gpu.requestAdapter();if(!A)throw Error("this browser supports webgpu but it appears disabled");const I=yield A.requestDevice();return I.lost.then((A=>{console.error(`WebGPU device was lost: ${A.message}`),A.reason})),I}))}(),g=P.new(300,300),M=A.getContext("webgpu");if(!M)throw Error("WebGPU from canvas needs to be always provided");const J=navigator.gpu.getPreferredCanvasFormat();M.configure({device:I,format:J}),function(A,I){new ResizeObserver((A=>{for(const g of A)B(g.target,0|g.contentBoxSize[0].inlineSize,0|g.contentBoxSize[0].blockSize,I)})).observe(A),B(A,A.clientWidth,A.clientHeight,I)}(A,I),function(A,I){G=function(A,I){const g=A.createShaderModule({label:"draw triangle module",code:C}),B=A.createRenderPipeline({label:"draw triangle pipeline",layout:"auto",vertex:{module:g,entryPoint:"vs",buffers:[{arrayStride:4*E,attributes:[{shaderLocation:0,offset:0,format:"float32x4"},{shaderLocation:1,offset:16,format:"float32x4"}]}]},fragment:{module:g,entryPoint:"fs",targets:[{format:I}]}}),Q=A.createBuffer({label:"uniforms",size:64,usage:GPUBufferUsage.UNIFORM|GPUBufferUsage.COPY_DST}),i=new Float32Array(16),o=i.subarray(0,16);return function(I,g,C){const D=C.length/E|0,e=A.createBuffer({label:"vertex buffer vertices",size:C.byteLength,usage:GPUBufferUsage.VERTEX|GPUBufferUsage.COPY_DST});A.queue.writeBuffer(e,0,C);const t=A.createBindGroup({layout:B.getBindGroupLayout(0),entries:[{binding:0,resource:{buffer:Q}}]});I.setPipeline(B),I.setVertexBuffer(0,e),o.set(g),A.queue.writeBuffer(Q,0,i),I.setBindGroup(0,t),I.draw(D)}}(A,I),h=function(A,I){const g=A.createShaderModule({label:"bezier shader module",code:i}),B=A.createRenderPipeline({label:"bezier pipline",layout:"auto",primitive:{topology:"triangle-strip"},vertex:{module:g,entryPoint:"vs",buffers:[{arrayStride:4,attributes:[{shaderLocation:0,offset:0,format:"float32"}]},{arrayStride:4,attributes:[{shaderLocation:1,offset:0,format:"float32"}]},{arrayStride:4,attributes:[{shaderLocation:2,offset:0,format:"uint32"}]}]},fragment:{module:g,entryPoint:"fs",targets:[{format:I}]},depthStencil:{depthWriteEnabled:!1,depthCompare:"always",format:"depth24plus"}});return function(I,g,Q,C,E,i,o){const D=4*Q.length,e=A.createBuffer({label:"storage points",size:D,usage:GPUBufferUsage.STORAGE|GPUBufferUsage.COPY_DST}),t=A.createBuffer({label:"uniforms",size:80,usage:GPUBufferUsage.UNIFORM|GPUBufferUsage.COPY_DST}),a=new Float32Array(20),w=a.subarray(0,16),s=a.subarray(16,17),r=A.createBindGroup({label:"bezier bind group for object",layout:B.getBindGroupLayout(0),entries:[{binding:0,resource:{buffer:t}},{binding:1,resource:{buffer:e}}]}),n=A.createBuffer({label:"bezier vertex buffer vertices",size:C.byteLength,usage:GPUBufferUsage.VERTEX|GPUBufferUsage.COPY_DST});A.queue.writeBuffer(n,0,C);const F=A.createBuffer({label:"bezier vertex buffer vertices",size:E.byteLength,usage:GPUBufferUsage.VERTEX|GPUBufferUsage.COPY_DST});A.queue.writeBuffer(F,0,E);const G=A.createBuffer({label:"bezier vertex buffer vertices",size:i.byteLength,usage:GPUBufferUsage.VERTEX|GPUBufferUsage.COPY_DST});A.queue.writeBuffer(G,0,i),I.setPipeline(B),I.setVertexBuffer(0,n),I.setVertexBuffer(1,F),I.setVertexBuffer(2,G),w.set(g),s.set(new Float32Array([o])),A.queue.writeBuffer(t,0,a),A.queue.writeBuffer(e,0,Q),I.setBindGroup(0,r),I.draw(C.length)}}(A,I),c=function(A,I){const g=A.createShaderModule({label:"3d model texture shader module",code:o}),B=A.createRenderPipeline({label:"3d model texture pipline",layout:"auto",vertex:{module:g,entryPoint:"vs",buffers:[{arrayStride:20,attributes:[{shaderLocation:0,offset:0,format:"float32x3"},{shaderLocation:1,offset:12,format:"float32x2"}]}]},fragment:{module:g,entryPoint:"fs",targets:[{format:I}]},depthStencil:{depthWriteEnabled:!1,depthCompare:"always",format:"depth24plus"}});return function(I,g,Q,C,E){const i=A.createSampler({magFilter:"linear",minFilter:"linear"}),o=A.createBuffer({label:"uniforms",size:64,usage:GPUBufferUsage.UNIFORM|GPUBufferUsage.COPY_DST}),D=new Float32Array(16),e=D.subarray(0,16),t=E.length,a=A.createBuffer({label:"3d model texture vertex buffer vertices",size:C.byteLength,usage:GPUBufferUsage.VERTEX|GPUBufferUsage.COPY_DST});A.queue.writeBuffer(a,0,C);const w=A.createBuffer({label:"3d model texture index buffer",size:E.byteLength,usage:GPUBufferUsage.INDEX|GPUBufferUsage.COPY_DST});A.queue.writeBuffer(w,0,E);const s=A.createBindGroup({label:"3d model texture bind group for object",layout:B.getBindGroupLayout(0),entries:[{binding:0,resource:{buffer:o}},{binding:1,resource:i},{binding:2,resource:Q.createView()}]});I.setPipeline(B),I.setVertexBuffer(0,a),I.setIndexBuffer(w,"uint32"),e.set(g),A.queue.writeBuffer(o,0,D),I.setBindGroup(0,s),I.drawIndexed(t)}}(A,I),y=function(A,I){const g=A.createShaderModule({label:"3d model shader module",code:D}),B=A.createRenderPipeline({label:"3d model pipline",layout:"auto",vertex:{module:g,entryPoint:"vs",buffers:[{arrayStride:12,attributes:[{shaderLocation:0,offset:0,format:"float32x3"}]}]},fragment:{module:g,entryPoint:"fs",targets:[{format:I}]},primitive:{cullMode:"back"},depthStencil:{depthWriteEnabled:!0,depthCompare:"less",format:"depth24plus"}});return function(I,g,Q,C){const E=A.createBuffer({label:"uniforms",size:64,usage:GPUBufferUsage.UNIFORM|GPUBufferUsage.COPY_DST}),i=new Float32Array(16),o=i.subarray(0,16),D=C.length,e=A.createBuffer({label:"vertex buffer vertices",size:Q.byteLength,usage:GPUBufferUsage.VERTEX|GPUBufferUsage.COPY_DST});A.queue.writeBuffer(e,0,Q);const t=A.createBuffer({label:"index buffer",size:C.byteLength,usage:GPUBufferUsage.INDEX|GPUBufferUsage.COPY_DST});A.queue.writeBuffer(t,0,C);const a=A.createBindGroup({label:"bind group for object",layout:B.getBindGroupLayout(0),entries:[{binding:0,resource:{buffer:E}}]});I.setPipeline(B),I.setVertexBuffer(0,e),I.setIndexBuffer(t,"uint32"),o.set(g),A.queue.writeBuffer(E,0,i),I.setBindGroup(0,a),I.drawIndexed(D)}}(A,I),N=function(A,I){const g=A.createShaderModule({label:"3d model light shader module",code:e}),B=A.createRenderPipeline({label:"3d model light pipline",layout:"auto",vertex:{module:g,entryPoint:"vs",buffers:[{arrayStride:24,attributes:[{shaderLocation:0,offset:0,format:"float32x3"},{shaderLocation:1,offset:12,format:"float32x3"}]}]},fragment:{module:g,entryPoint:"fs",targets:[{format:I}]},primitive:{cullMode:"back"},depthStencil:{depthWriteEnabled:!0,depthCompare:"less",format:"depth24plus"}});return function(I,g,Q,C){const{worldViewProjection:E,normalMatrix:i,lightColor:o,lightDirection:D}=g,e=A.createBuffer({label:"uniforms",size:144,usage:GPUBufferUsage.UNIFORM|GPUBufferUsage.COPY_DST}),t=new Float32Array(36),a=t.subarray(0,12),w=t.subarray(12,28),s=t.subarray(28,32),r=t.subarray(32,35),n=A.createBindGroup({label:"bind group for object",layout:B.getBindGroupLayout(0),entries:[{binding:0,resource:{buffer:e}}]}),F=C.length,G=A.createBuffer({label:"vertex buffer vertices",size:Q.byteLength,usage:GPUBufferUsage.VERTEX|GPUBufferUsage.COPY_DST});A.queue.writeBuffer(G,0,Q);const h=A.createBuffer({label:"index buffer",size:C.byteLength,usage:GPUBufferUsage.INDEX|GPUBufferUsage.COPY_DST});A.queue.writeBuffer(h,0,C),I.setPipeline(B),I.setVertexBuffer(0,G),I.setIndexBuffer(h,"uint32"),a.set(i),w.set(E),s.set(o),r.set(D),A.queue.writeBuffer(e,0,t),I.setBindGroup(0,n),I.drawIndexed(F)}}(A,I),R=function(A){const I=A.createShaderModule({label:"blur shader module",code:t}),g=A.createComputePipeline({layout:"auto",compute:{module:I,entryPoint:"main"}});return function(I,B){const Q=[0,1].map((()=>A.createTexture({size:{width:I.width,height:I.height},format:"rgba8unorm",usage:GPUTextureUsage.COPY_DST|GPUTextureUsage.STORAGE_BINDING|GPUTextureUsage.TEXTURE_BINDING}))),C=(()=>{const I=A.createBuffer({size:4,mappedAtCreation:!0,usage:GPUBufferUsage.UNIFORM});return new Uint32Array(I.getMappedRange())[0]=0,I.unmap(),I})(),E=(()=>{const I=A.createBuffer({size:4,mappedAtCreation:!0,usage:GPUBufferUsage.UNIFORM});return new Uint32Array(I.getMappedRange())[0]=1,I.unmap(),I})(),i=A.createBuffer({size:8,usage:GPUBufferUsage.COPY_DST|GPUBufferUsage.UNIFORM}),o=A.createSampler({magFilter:"linear",minFilter:"linear"}),D=A.createBindGroup({layout:g.getBindGroupLayout(0),entries:[{binding:0,resource:o},{binding:1,resource:{buffer:i}}]}),e=A.createBindGroup({layout:g.getBindGroupLayout(1),entries:[{binding:1,resource:I.createView()},{binding:2,resource:Q[0].createView()},{binding:3,resource:{buffer:C}}]}),t=A.createBindGroup({layout:g.getBindGroupLayout(1),entries:[{binding:1,resource:Q[0].createView()},{binding:2,resource:Q[1].createView()},{binding:3,resource:{buffer:E}}]}),s=A.createBindGroup({layout:g.getBindGroupLayout(1),entries:[{binding:1,resource:Q[1].createView()},{binding:2,resource:Q[0].createView()},{binding:3,resource:{buffer:C}}]}),r=a-14;A.queue.writeBuffer(i,0,new Uint32Array([15,r]));const n=B.beginComputePass();n.setPipeline(g),n.setBindGroup(0,D),n.setBindGroup(1,e),n.dispatchWorkgroups(Math.ceil(I.width/r),Math.ceil(I.height/w[1])),n.setBindGroup(1,t),n.dispatchWorkgroups(Math.ceil(I.height/r),Math.ceil(I.width/w[1]));for(let A=0;A<1;++A)n.setBindGroup(1,s),n.dispatchWorkgroups(Math.ceil(I.width/r),Math.ceil(I.height/w[1])),n.setBindGroup(1,t),n.dispatchWorkgroups(Math.ceil(I.height/r),Math.ceil(I.width/w[1]));return n.end(),Q[1]}}(A),U=function(A,I){const g=A.createShaderModule({label:"texture module",code:s}),B=A.createSampler({minFilter:"linear",magFilter:"linear"}),Q=A.createRenderPipeline({label:"texture pipeline",layout:"auto",vertex:{module:g,entryPoint:"vs",buffers:[{arrayStride:4*r,attributes:[{shaderLocation:0,offset:0,format:"float32x4"},{shaderLocation:1,offset:16,format:"float32x2"}]}]},fragment:{module:g,entryPoint:"fs",targets:[{format:I}]}}),C=A.createBuffer({label:"uniforms",size:64,usage:GPUBufferUsage.UNIFORM|GPUBufferUsage.COPY_DST}),E=new Float32Array(16),i=E.subarray(0,16);return function(I,g,o,D){const e=o.length/r|0,t=A.createBuffer({label:"vertex buffer vertices",size:o.byteLength,usage:GPUBufferUsage.VERTEX|GPUBufferUsage.COPY_DST});A.queue.writeBuffer(t,0,o);const a=A.createBindGroup({layout:Q.getBindGroupLayout(0),entries:[{binding:0,resource:{buffer:C}},{binding:1,resource:B},{binding:2,resource:D.createView()}]});I.setPipeline(Q),I.setVertexBuffer(0,t),i.set(g),A.queue.writeBuffer(C,0,E),I.setBindGroup(0,a),I.draw(e)}}(A,I),k=function(A){const I=A.createShaderModule({label:"texture module",code:n}),g=A.createSampler({minFilter:"linear",magFilter:"linear"}),B=A.createRenderPipeline({label:"texture pipeline",layout:"auto",vertex:{module:I,entryPoint:"vs",buffers:[{arrayStride:4*F,attributes:[{shaderLocation:0,offset:0,format:"float32x4"},{shaderLocation:1,offset:16,format:"float32x2"},{shaderLocation:2,offset:24,format:"float32"}]}]},fragment:{module:I,entryPoint:"fs",targets:[{format:"r32uint"}]}}),Q=A.createBuffer({label:"uniforms",size:64,usage:GPUBufferUsage.UNIFORM|GPUBufferUsage.COPY_DST}),C=new Float32Array(16),E=C.subarray(0,16);return function(I,i,o,D){const e=o.length/F|0,t=A.createBuffer({label:"vertex buffer vertices",size:o.byteLength,usage:GPUBufferUsage.VERTEX|GPUBufferUsage.COPY_DST});A.queue.writeBuffer(t,0,o);const a=A.createBindGroup({layout:B.getBindGroupLayout(0),entries:[{binding:0,resource:{buffer:Q}},{binding:1,resource:g},{binding:2,resource:D.createView()}]});I.setPipeline(B),I.setVertexBuffer(0,t),E.set(i),A.queue.writeBuffer(Q,0,C),I.setBindGroup(0,a),I.draw(e)}}(A)}(I,J),function(A){L.x=0,L.y=0,A.addEventListener("mouseleave",(()=>{})),A.addEventListener("mousemove",(I=>{const g=A.getBoundingClientRect();L.x=I.clientX-g.left,L.y=I.clientY-g.top})),A.addEventListener("mousedown",(A=>{})),A.addEventListener("mouseup",(A=>{})),A.addEventListener("wheel",(A=>{console.log(A.deltaY)}))}(A);const d=[],K=[];return function(A,I,g,B,Q,C,E){const i=function(A){return Y.ortho(0,A.clientWidth,A.clientHeight,0,1,-1)}(I),o=new f(B,I);requestAnimationFrame((function I(Q){const D=B.createCommandEncoder(),e=function(A,I){const g=A.getCurrentTexture();return function(A,I,g){S&&S.width===I&&S.height===g||(null==S||S.destroy(),S=A.createTexture({size:[I,g],format:"depth24plus",usage:GPUTextureUsage.RENDER_ATTACHMENT}))}(I,g.width,g.height),{label:"our render to canvas renderPass",colorAttachments:[{view:g.createView(),clearValue:[0,0,0,1],loadOp:"clear",storeOp:"store"}]}}(g,B),t=D.beginRenderPass(e);E.forEach((I=>{const{texture_id:g,vertex_data:B}=A.get_shader_input(I);U(t,i,new Float32Array(B),C[g])}));const a=A.get_border();a.length>0&&G(t,i,a),t.end(),o.render(D,i,((I,g)=>{E.forEach((B=>{const{texture_id:Q,vertex_data:E}=A.get_shader_pick_input(B);k(I,g,new Float32Array(E),C[Q])}))}),t);const w=D.finish();B.queue.submit([w]),o.asyncPick(A),requestAnimationFrame(I)}))}(g,A,M,I,0,d,K),{addImage:(B,Q)=>{const C=d.length;d.push(function(A,I,g={}){const B=A.createTexture({format:"rgba8unorm",mipLevelCount:g.mips?u(I.width,I.height):1,size:[I.width,I.height],usage:GPUTextureUsage.TEXTURE_BINDING|GPUTextureUsage.COPY_DST|GPUTextureUsage.RENDER_ATTACHMENT});return function(A,I,g,{flipY:B,depthOrArrayLayers:Q}={}){A.queue.copyExternalImageToTexture({source:g,flipY:B},{texture:I},{width:g.width,height:g.height,depthOrArrayLayers:Q})}(A,B,I,g),B}(I,Q));const E=function(A,I){if(I.height-A.height<I.width-A.width)return H(A.height,.2*I.height,.8*I.height)/A.height;return H(A.width,.2*I.width,.8*I.width)/A.width}(Q,A),i=Q.width*E,o=Q.height*E,D=.5*(A.width-i),e=.5*(A.height-o);g.add_texture(B,[{x:D,y:e,u:0,v:0},{x:D+i,y:e,u:1,v:0},{x:D+i,y:e+o,u:1,v:1},{x:D,y:e+o,u:0,v:1}],C),K.push(B)},updatePoints:(A,I)=>{g.update_points(A,I)},destroy:()=>{M.unconfigure(),I.destroy()}}}))}var wA=I.A;export{wA as default};
1
+ var A,e,t,g,i={214:(A,e,t)=>{function g(A,e,t,g){A.width=Math.max(1,Math.min(e,g.limits.maxTextureDimension2D)),A.height=Math.max(1,Math.min(t,g.limits.maxTextureDimension2D))}function i(A,e,t){new ResizeObserver((A=>{for(const i of A)g(i.target,0|i.contentBoxSize[0].inlineSize,0|i.contentBoxSize[0].blockSize,e),t()})).observe(A),g(A,A.clientWidth,A.clientHeight,e)}t.d(e,{A:()=>i})},1911:(A,e,t)=>{t.d(e,{A:()=>i});var g=function(A,e,t,g){return new(t||(t=Promise))((function(i,I){function r(A){try{Q(g.next(A))}catch(A){I(A)}}function n(A){try{Q(g.throw(A))}catch(A){I(A)}}function Q(A){var e;A.done?i(A.value):(e=A.value,e instanceof t?e:new t((function(A){A(e)}))).then(r,n)}Q((g=g.apply(A,e||[])).next())}))};function i(){return g(this,void 0,void 0,(function*(){if(!navigator.gpu)throw Error("this browser does not support WebGPU");const A=yield navigator.gpu.requestAdapter();if(!A)throw Error("this browser supports webgpu but it appears disabled");const e=yield A.requestDevice();return e.lost.then((A=>{console.error(`WebGPU device was lost: ${A.message}`),A.reason})),e}))}},1549:(A,e,t)=>{t.d(e,{Be:()=>i});const g=(...A)=>{const e=Math.max(...A);return 1+Math.log2(e)|0};function i(A,e,t={}){const i=A.createTexture({format:"rgba8unorm",mipLevelCount:t.mips?g(e.width,e.height):1,size:[e.width,e.height],usage:GPUTextureUsage.TEXTURE_BINDING|GPUTextureUsage.COPY_DST|GPUTextureUsage.RENDER_ATTACHMENT});return function(A,e,t,{flipY:g,depthOrArrayLayers:i}={}){A.queue.copyExternalImageToTexture({source:t,flipY:g},{texture:e},{width:t.width,height:t.height,depthOrArrayLayers:i})}(A,i,e,t),i}},2872:(A,e,t)=>{t.a(A,(async(A,g)=>{try{t.d(e,{A:()=>C});var i=t(2842),I=t(9200),r=t(3979),n=A([I,r]);[I,r]=n.then?(await n)():n;const Q=1;class C{constructor(A){this.isPreviousPickDone=!0,this.pickBuffer=A.createBuffer({size:4*Q,usage:GPUBufferUsage.MAP_READ|GPUBufferUsage.COPY_DST}),this.pickTexture=A.createTexture({size:[1,1],format:"r32uint",usage:GPUTextureUsage.COPY_SRC|GPUTextureUsage.RENDER_ATTACHMENT}),this.pickDepthTexture=A.createTexture({size:[1,1],format:"depth24plus",usage:GPUTextureUsage.RENDER_ATTACHMENT})}startPicking(A){const e={label:"our render to canvas renderPass",colorAttachments:[{view:this.pickTexture.createView(),loadOp:"clear",clearValue:[0,0,0,1],storeOp:"store"}]},t=A.beginRenderPass(e);return t.setViewport(0,0,1,1,0,1),t.setScissorRect(0,0,1,1),{pass:t,end:()=>{t.end(),this.isPreviousPickDone&&A.copyTextureToBuffer({texture:this.pickTexture,origin:{x:0,y:0}},{buffer:this.pickBuffer},{width:Q})}}}createMatrix(A,e){const{clientWidth:t,clientHeight:g}=A,r=-(I.W.x/t*2-1),n=I.W.y/g*2-1;return[i.A.scaling([t,g,0]),i.A.translation([r,n,0]),e].reduce(((A,e)=>i.A.multiply(A,e)),i.A.translation([-1,1,0]))}asyncPick(){return A=this,e=void 0,g=function*(){if(this.isPreviousPickDone){this.isPreviousPickDone=!1;try{yield this.pickBuffer.mapAsync(GPUMapMode.READ,0,4*Q);const[A]=new Uint32Array(this.pickBuffer.getMappedRange(0,4*Q));(0,r.OI)(A),this.pickBuffer.unmap()}catch(A){}this.isPreviousPickDone=!0}},new((t=void 0)||(t=Promise))((function(i,I){function r(A){try{Q(g.next(A))}catch(A){I(A)}}function n(A){try{Q(g.throw(A))}catch(A){I(A)}}function Q(A){var e;A.done?i(A.value):(e=A.value,e instanceof t?e:new t((function(A){A(e)}))).then(r,n)}Q((g=g.apply(A,e||[])).next())}));var A,e,t,g}}g()}catch(A){g(A)}}))},9200:(A,e,t)=>{t.a(A,(async(A,g)=>{try{t.d(e,{A:()=>n,W:()=>r});var i=t(3979),I=A([i]);i=(I.then?(await I)():I)[0];const r={x:0,y:0};function n(A){r.x=0,r.y=0,A.addEventListener("mouseleave",(()=>{})),A.addEventListener("mousemove",(e=>{!function(e){const t=A.getBoundingClientRect();r.x=e.clientX-t.left,r.y=e.clientY-t.top}(e),(0,i.wU)(r.x,A.height-r.y)})),A.addEventListener("mousedown",(()=>{(0,i.Dk)(r.x,A.height-r.y)})),A.addEventListener("mouseup",(()=>{(0,i._R)()})),A.addEventListener("wheel",(A=>{console.log(A.deltaY)}))}g()}catch(Q){g(Q)}}))},7076:(A,e,t)=>{t.d(e,{Ay:()=>F,_J:()=>p,D4:()=>f,Fh:()=>S,Q3:()=>m});const g="struct Vertex {\n @location(0) position: vec4f,\n @location(1) color: vec4f,\n};\n\nstruct Uniforms {\n worldViewProjection: mat4x4f,\n};\n\nstruct VertexOutput {\n @builtin(position) position: vec4f,\n @location(0) color: vec4f,\n};\n\n@group(0) @binding(0) var<uniform> u: Uniforms;\n\n@vertex fn vs(vert: Vertex) -> VertexOutput {\n var out: VertexOutput;\n out.position = u.worldViewProjection * vert.position;\n out.color = vert.color;\n \n return out;\n}\n\n@fragment fn fs(in: VertexOutput) -> @location(0) vec4f {\n return in.color;\n}\n",i=8,I="struct Uniforms {\n matrix: mat4x4f,\n zoom: f32,\n};\n\nstruct Vertex {\n @location(0) t: f32,\n @location(1) dir: f32,\n @location(2) segmentIndex: u32,\n};\n\n@group(0) @binding(0) var<uniform> u: Uniforms;\n\n@group(0) @binding(1) var<storage> points: array<vec2f>;\n\nstruct VSOutput {\n @builtin(position) position: vec4f,\n @location(0) color: vec4f,\n};\n\n@vertex fn vs(vert: Vertex) -> VSOutput {\n var vsOut: VSOutput;\n \n let p1 = points[vert.segmentIndex * 4 + 0];\n let p2 = points[vert.segmentIndex * 4 + 1];\n let p3 = points[vert.segmentIndex * 4 + 2];\n let p4 = points[vert.segmentIndex * 4 + 3];\n\n let t2 = vert.t * vert.t;\n let one_minus_t = 1.0 - vert.t;\n let one_minus_t2 = one_minus_t * one_minus_t;\n let pos = p1 * one_minus_t2 * one_minus_t + p2 * 3.0 * vert.t * one_minus_t2 + p3 * 3.0 * t2 * one_minus_t + p4 * t2 * vert.t;\n\n let angle = one_minus_t2 * (p2 - p1) + 2.0 * vert.t * one_minus_t * (p3 - p2) + t2 * (p4 - p3);\n let angleNorm = normalize(angle) * 5 / u.zoom;\n let transPos = vec2(pos.x - angleNorm.y * vert.dir, pos.y + angleNorm.x * vert.dir);\n let clipSpace = (u.matrix * vec4f(transPos, 1, 1));\n vsOut.position = clipSpace;\n vsOut.color = vec4f(f32(vert.segmentIndex) % 3, (f32(vert.segmentIndex) + 1) % 3, (f32(vert.segmentIndex) + 2) % 3, 1);\n\n return vsOut;\n}\n\n@fragment fn fs(vsOut: VSOutput) -> @location(0) vec4f {\n return vsOut.color;\n}\n",r="struct Uniforms {\n matrix: mat4x4f,\n};\n\nstruct Vertex {\n @location(0) position: vec4f,\n @location(1) texcoord: vec2f,\n};\n\nstruct VSOutput {\n @builtin(position) position: vec4f,\n @location(0) texcoord: vec2f,\n};\n\n@group(0) @binding(0) var<uniform> uni: Uniforms;\n\n@vertex fn vs(vert: Vertex) -> VSOutput {\n var vsOut: VSOutput;\n vsOut.position = uni.matrix * vert.position;\n vsOut.texcoord = vert.texcoord;\n return vsOut;\n}\n\n@group(0) @binding(1) var ourSampler: sampler;\n@group(0) @binding(2) var ourTexture: texture_2d<f32>;\n\n@fragment fn fs(vsOut: VSOutput) -> @location(0) vec4f {\n return textureSample(ourTexture, ourSampler, vsOut.texcoord);\n}\n",n="struct Uniforms {\n matrix: mat4x4f,\n};\n\nstruct Vertex {\n @location(0) position: vec4f,\n};\n\nstruct VSOutput {\n @builtin(position) position: vec4f,\n @location(0) color: vec4f,\n};\n\n@group(0) @binding(0) var<uniform> uni: Uniforms;\n\n@vertex fn vs(\n vert: Vertex,\n @builtin(vertex_index) vertexIndex : u32,\n // @builtin(instance_index) instanceIndex: u32\n ) -> VSOutput {\n var vsOut: VSOutput;\n vsOut.position = uni.matrix * vert.position;\n vsOut.color = vec4f(f32(vertexIndex) % 3, (f32(vertexIndex) + 1) % 3, (f32(vertexIndex) + 2) % 3, 1);\n return vsOut;\n}\n\n\n@fragment fn fs(vsOut: VSOutput) -> @location(0) vec4f {\n return vsOut.color;\n}\n",Q="struct Uniforms {\n normalMatrix: mat3x3f,\n worldViewProjection: mat4x4f,\n lightColor: vec4f,\n lightDirection: vec3f,\n};\n\nstruct Vertex {\n @location(0) position: vec4f,\n @location(1) normal: vec3f,\n};\n\nstruct VSOutput {\n @builtin(position) position: vec4f,\n @location(0) color: vec4f,\n @location(1) normal: vec3f,\n};\n\n@group(0) @binding(0) var<uniform> uni: Uniforms;\n\n@vertex fn vs(\n vert: Vertex,\n @builtin(vertex_index) vertexIndex : u32,\n // @builtin(instance_index) instanceIndex: u32\n ) -> VSOutput {\n var vsOut: VSOutput;\n vsOut.position = uni.worldViewProjection * vert.position;\n vsOut.normal = uni.normalMatrix * vert.normal;\n vsOut.color = vec4f(f32(vertexIndex) % 3, (f32(vertexIndex) + 1) % 3, (f32(vertexIndex) + 2) % 3, 1);\n\n return vsOut;\n}\n\n\n@fragment fn fs(vsOut: VSOutput) -> @location(0) vec4f {\n // Because vsOut.normal is an inter-stage variable \n // it's interpolated so it will not be a unit vector.\n // Normalizing it will make it a unit vector again\n let normal = normalize(vsOut.normal);\n \n // Compute the light by taking the dot product\n // of the normal to the light's reverse direction\n let light = dot(normal, -uni.lightDirection);\n \n // Lets multiply just the color portion (not the alpha)\n // by the light\n let color = vec3f(0.23) + uni.lightColor.rgb * light;\n // let color = vsOut.color.rgb * 0.5 + uni.lightColor.rgb * light;\n return vec4f(color, vsOut.color.a);\n}\n",C="struct Params {\n filterDim : i32,\n blockDim : u32,\n}\n\n@group(0) @binding(0) var samp : sampler;\n@group(0) @binding(1) var<uniform> params : Params;\n@group(1) @binding(1) var inputTex : texture_2d<f32>;\n@group(1) @binding(2) var outputTex : texture_storage_2d<rgba8unorm, write>;\n\nstruct Flip {\n value : u32,\n}\n@group(1) @binding(3) var<uniform> flip : Flip;\n\n// This shader blurs the input texture in one direction, depending on whether\n// |flip.value| is 0 or 1.\n// It does so by running (128 / 4) threads per workgroup to load 128\n// texels into 4 rows of shared memory. Each thread loads a\n// 4 x 4 block of texels to take advantage of the texture sampling\n// hardware.\n// Then, each thread computes the blur result by averaging the adjacent texel values\n// in shared memory.\n// Because we're operating on a subset of the texture, we cannot compute all of the\n// results since not all of the neighbors are available in shared memory.\n// Specifically, with 128 x 128 tiles, we can only compute and write out\n// square blocks of size 128 - (filterSize - 1). We compute the number of blocks\n// needed in Javascript and dispatch that amount.\n\n// 128/4 = 32 -> number of threads per working group\n// does it in 4x4 block of texels(takes advantage of texture sampling hardware)\n// with this beign said, we don't have all the neighbours, only this block\n// That's why we can only compute & write out blocks of size 128 - (filterSize - 1)\nvar<workgroup> tile : array<array<vec3<f32>, 128>, 4>;\n\n@compute @workgroup_size(32, 1, 1)\nfn main(\n @builtin(workgroup_id) WorkGroupID : vec3<u32>,\n @builtin(local_invocation_id) LocalInvocationID : vec3<u32>\n) {\n let filterOffset = (params.filterDim - 1) / 2;\n let dims = vec2<i32>(textureDimensions(inputTex, 0));\n let baseIndex = vec2<i32>(WorkGroupID.xy * vec2(params.blockDim, 4) + // it's just the index of the first texel in a group\n LocalInvocationID.xy * vec2(4, 1)) // <0, 128>\n - vec2(filterOffset, 0);\n // baseIndex = xy of first texel of group\n for (var r = 0; r < 4; r++) {\n for (var c = 0; c < 4; c++) {\n var loadIndex = baseIndex + vec2(c, r);\n if (flip.value != 0) {\n loadIndex = loadIndex.yx;\n }\n\n tile[r][4 * LocalInvocationID.x + u32(c)] = textureSampleLevel(\n inputTex,\n samp,\n (vec2<f32>(loadIndex) + vec2<f32>(0.25, 0.25)) / vec2<f32>(dims),\n 0.0\n ).rgb;\n }\n }\n\n workgroupBarrier();\n // helps coordinate access to read-write memory\n // so all threads(32) will wait to hit this barrer, and then start form here together\n\n for (var r = 0; r < 4; r++) {\n for (var c = 0; c < 4; c++) {\n var writeIndex = baseIndex + vec2(c, r);\n if (flip.value != 0) {\n writeIndex = writeIndex.yx;\n }\n\n let center = i32(4 * LocalInvocationID.x) + c;\n if (center >= filterOffset &&\n center < 128 - filterOffset &&\n all(writeIndex < dims)) {\n var acc = vec3(0.0, 0.0, 0.0);\n for (var f = 0; f < params.filterDim; f++) {\n var i = center + f - filterOffset;\n acc = acc + (1.0 / f32(params.filterDim)) * tile[r][i];\n }\n textureStore(outputTex, writeIndex, vec4(acc, 1.0));\n }\n }\n }\n}\n",B=128,o=[4,4],s="struct Vertex {\n @location(0) position: vec4f,\n @location(1) uv: vec2f,\n};\n\nstruct Uniforms {\n worldViewProjection: mat4x4f,\n};\n\nstruct VertexOutput {\n @builtin(position) position: vec4f,\n @location(0) texCoord: vec2f,\n};\n\n@group(0) @binding(0) var<uniform> u: Uniforms;\n@group(0) @binding(1) var ourSampler: sampler;\n@group(0) @binding(2) var ourTexture: texture_2d<f32>;\n\n@vertex fn vs(vert: Vertex) -> VertexOutput {\n var out: VertexOutput;\n // maybe we should pass offsets from the position instead of... position?\n out.position = u.worldViewProjection * vert.position;\n out.texCoord = vert.uv;\n \n return out;\n}\n\n@fragment fn fs(in: VertexOutput) -> @location(0) vec4f {\n return textureSample(ourTexture, ourSampler, in.texCoord);\n}\n",a=6,E="struct Vertex {\n @location(0) position: vec4f,\n @location(1) uv: vec2f,\n @location(2) id: f32,\n};\n\nstruct Uniforms {\n worldViewProjection: mat4x4f\n};\n\nstruct VertexOutput {\n @builtin(position) position: vec4f,\n @location(0) texCoord: vec2f,\n @location(1) @interpolate(flat) id: f32\n};\n\n@group(0) @binding(0) var<uniform> u: Uniforms;\n@group(0) @binding(1) var ourSampler: sampler;\n@group(0) @binding(2) var ourTexture: texture_2d<f32>;\n\n@vertex fn vs(vert: Vertex) -> VertexOutput {\n var out: VertexOutput;\n // maybe we should pass offsets from the position instead of... position?\n out.position = u.worldViewProjection * vert.position;\n out.texCoord = vert.uv;\n out.id = vert.id;\n\n return out;\n}\n\n\n@fragment fn fs(in: VertexOutput) -> @location(0) u32 {\n let alpha = textureSample(ourTexture, ourSampler, in.texCoord).a;\n\n if (alpha < 0.1) {\n discard; // r32uint doesn't support blending so only skipping pixels lefts\n }\n\n return u32(in.id);\n}\n",c=7,u="struct Vertex {\n @location(0) position: vec4f,\n @location(1) id: f32,\n};\n\nstruct Uniforms {\n worldViewProjection: mat4x4f,\n};\n\nstruct VertexOutput {\n @builtin(position) position: vec4f,\n @location(0) @interpolate(flat) id: f32\n};\n\n@group(0) @binding(0) var<uniform> u: Uniforms;\n\n@vertex fn vs(vert: Vertex) -> VertexOutput {\n var out: VertexOutput;\n out.position = u.worldViewProjection * vert.position;\n out.id = vert.id;\n \n return out;\n}\n\n@fragment fn fs(in: VertexOutput) -> @location(0) u32 {\n return u32(in.id);\n}\n\n",l=5;let f,h,w,D,y,d,p,S,m;function F(A,e){f=function(A,e){const t=A.createShaderModule({label:"draw triangle module",code:g}),I=A.createRenderPipeline({label:"draw triangle pipeline",layout:"auto",vertex:{module:t,entryPoint:"vs",buffers:[{arrayStride:4*i,attributes:[{shaderLocation:0,offset:0,format:"float32x4"},{shaderLocation:1,offset:16,format:"float32x4"}]}]},fragment:{module:t,entryPoint:"fs",targets:[{format:e}]}}),r=A.createBuffer({label:"uniforms",size:64,usage:GPUBufferUsage.UNIFORM|GPUBufferUsage.COPY_DST}),n=new Float32Array(16),Q=n.subarray(0,16);return function(e,t,g){const C=g.length/i|0,B=A.createBuffer({label:"vertex buffer vertices",size:g.byteLength,usage:GPUBufferUsage.VERTEX|GPUBufferUsage.COPY_DST});A.queue.writeBuffer(B,0,g);const o=A.createBindGroup({layout:I.getBindGroupLayout(0),entries:[{binding:0,resource:{buffer:r}}]});e.setPipeline(I),e.setVertexBuffer(0,B),Q.set(t),A.queue.writeBuffer(r,0,n),e.setBindGroup(0,o),e.draw(C)}}(A,e),h=function(A,e){const t=A.createShaderModule({label:"bezier shader module",code:I}),g=A.createRenderPipeline({label:"bezier pipline",layout:"auto",primitive:{topology:"triangle-strip"},vertex:{module:t,entryPoint:"vs",buffers:[{arrayStride:4,attributes:[{shaderLocation:0,offset:0,format:"float32"}]},{arrayStride:4,attributes:[{shaderLocation:1,offset:0,format:"float32"}]},{arrayStride:4,attributes:[{shaderLocation:2,offset:0,format:"uint32"}]}]},fragment:{module:t,entryPoint:"fs",targets:[{format:e}]},depthStencil:{depthWriteEnabled:!1,depthCompare:"always",format:"depth24plus"}});return function(e,t,i,I,r,n,Q){const C=4*i.length,B=A.createBuffer({label:"storage points",size:C,usage:GPUBufferUsage.STORAGE|GPUBufferUsage.COPY_DST}),o=A.createBuffer({label:"uniforms",size:80,usage:GPUBufferUsage.UNIFORM|GPUBufferUsage.COPY_DST}),s=new Float32Array(20),a=s.subarray(0,16),E=s.subarray(16,17),c=A.createBindGroup({label:"bezier bind group for object",layout:g.getBindGroupLayout(0),entries:[{binding:0,resource:{buffer:o}},{binding:1,resource:{buffer:B}}]}),u=A.createBuffer({label:"bezier vertex buffer vertices",size:I.byteLength,usage:GPUBufferUsage.VERTEX|GPUBufferUsage.COPY_DST});A.queue.writeBuffer(u,0,I);const l=A.createBuffer({label:"bezier vertex buffer vertices",size:r.byteLength,usage:GPUBufferUsage.VERTEX|GPUBufferUsage.COPY_DST});A.queue.writeBuffer(l,0,r);const f=A.createBuffer({label:"bezier vertex buffer vertices",size:n.byteLength,usage:GPUBufferUsage.VERTEX|GPUBufferUsage.COPY_DST});A.queue.writeBuffer(f,0,n),e.setPipeline(g),e.setVertexBuffer(0,u),e.setVertexBuffer(1,l),e.setVertexBuffer(2,f),a.set(t),E.set(new Float32Array([Q])),A.queue.writeBuffer(o,0,s),A.queue.writeBuffer(B,0,i),e.setBindGroup(0,c),e.draw(I.length)}}(A,e),D=function(A,e){const t=A.createShaderModule({label:"3d model texture shader module",code:r}),g=A.createRenderPipeline({label:"3d model texture pipline",layout:"auto",vertex:{module:t,entryPoint:"vs",buffers:[{arrayStride:20,attributes:[{shaderLocation:0,offset:0,format:"float32x3"},{shaderLocation:1,offset:12,format:"float32x2"}]}]},fragment:{module:t,entryPoint:"fs",targets:[{format:e}]},depthStencil:{depthWriteEnabled:!1,depthCompare:"always",format:"depth24plus"}});return function(e,t,i,I,r){const n=A.createSampler({magFilter:"linear",minFilter:"linear"}),Q=A.createBuffer({label:"uniforms",size:64,usage:GPUBufferUsage.UNIFORM|GPUBufferUsage.COPY_DST}),C=new Float32Array(16),B=C.subarray(0,16),o=r.length,s=A.createBuffer({label:"3d model texture vertex buffer vertices",size:I.byteLength,usage:GPUBufferUsage.VERTEX|GPUBufferUsage.COPY_DST});A.queue.writeBuffer(s,0,I);const a=A.createBuffer({label:"3d model texture index buffer",size:r.byteLength,usage:GPUBufferUsage.INDEX|GPUBufferUsage.COPY_DST});A.queue.writeBuffer(a,0,r);const E=A.createBindGroup({label:"3d model texture bind group for object",layout:g.getBindGroupLayout(0),entries:[{binding:0,resource:{buffer:Q}},{binding:1,resource:n},{binding:2,resource:i.createView()}]});e.setPipeline(g),e.setVertexBuffer(0,s),e.setIndexBuffer(a,"uint32"),B.set(t),A.queue.writeBuffer(Q,0,C),e.setBindGroup(0,E),e.drawIndexed(o)}}(A,e),w=function(A,e){const t=A.createShaderModule({label:"3d model shader module",code:n}),g=A.createRenderPipeline({label:"3d model pipline",layout:"auto",vertex:{module:t,entryPoint:"vs",buffers:[{arrayStride:12,attributes:[{shaderLocation:0,offset:0,format:"float32x3"}]}]},fragment:{module:t,entryPoint:"fs",targets:[{format:e}]},primitive:{cullMode:"back"},depthStencil:{depthWriteEnabled:!0,depthCompare:"less",format:"depth24plus"}});return function(e,t,i,I){const r=A.createBuffer({label:"uniforms",size:64,usage:GPUBufferUsage.UNIFORM|GPUBufferUsage.COPY_DST}),n=new Float32Array(16),Q=n.subarray(0,16),C=I.length,B=A.createBuffer({label:"vertex buffer vertices",size:i.byteLength,usage:GPUBufferUsage.VERTEX|GPUBufferUsage.COPY_DST});A.queue.writeBuffer(B,0,i);const o=A.createBuffer({label:"index buffer",size:I.byteLength,usage:GPUBufferUsage.INDEX|GPUBufferUsage.COPY_DST});A.queue.writeBuffer(o,0,I);const s=A.createBindGroup({label:"bind group for object",layout:g.getBindGroupLayout(0),entries:[{binding:0,resource:{buffer:r}}]});e.setPipeline(g),e.setVertexBuffer(0,B),e.setIndexBuffer(o,"uint32"),Q.set(t),A.queue.writeBuffer(r,0,n),e.setBindGroup(0,s),e.drawIndexed(C)}}(A,e),y=function(A,e){const t=A.createShaderModule({label:"3d model light shader module",code:Q}),g=A.createRenderPipeline({label:"3d model light pipline",layout:"auto",vertex:{module:t,entryPoint:"vs",buffers:[{arrayStride:24,attributes:[{shaderLocation:0,offset:0,format:"float32x3"},{shaderLocation:1,offset:12,format:"float32x3"}]}]},fragment:{module:t,entryPoint:"fs",targets:[{format:e}]},primitive:{cullMode:"back"},depthStencil:{depthWriteEnabled:!0,depthCompare:"less",format:"depth24plus"}});return function(e,t,i,I){const{worldViewProjection:r,normalMatrix:n,lightColor:Q,lightDirection:C}=t,B=A.createBuffer({label:"uniforms",size:144,usage:GPUBufferUsage.UNIFORM|GPUBufferUsage.COPY_DST}),o=new Float32Array(36),s=o.subarray(0,12),a=o.subarray(12,28),E=o.subarray(28,32),c=o.subarray(32,35),u=A.createBindGroup({label:"bind group for object",layout:g.getBindGroupLayout(0),entries:[{binding:0,resource:{buffer:B}}]}),l=I.length,f=A.createBuffer({label:"vertex buffer vertices",size:i.byteLength,usage:GPUBufferUsage.VERTEX|GPUBufferUsage.COPY_DST});A.queue.writeBuffer(f,0,i);const h=A.createBuffer({label:"index buffer",size:I.byteLength,usage:GPUBufferUsage.INDEX|GPUBufferUsage.COPY_DST});A.queue.writeBuffer(h,0,I),e.setPipeline(g),e.setVertexBuffer(0,f),e.setIndexBuffer(h,"uint32"),s.set(n),a.set(r),E.set(Q),c.set(C),A.queue.writeBuffer(B,0,o),e.setBindGroup(0,u),e.drawIndexed(l)}}(A,e),d=function(A){const e=A.createShaderModule({label:"blur shader module",code:C}),t=A.createComputePipeline({layout:"auto",compute:{module:e,entryPoint:"main"}});return function(e,g){const i=[0,1].map((()=>A.createTexture({size:{width:e.width,height:e.height},format:"rgba8unorm",usage:GPUTextureUsage.COPY_DST|GPUTextureUsage.STORAGE_BINDING|GPUTextureUsage.TEXTURE_BINDING}))),I=(()=>{const e=A.createBuffer({size:4,mappedAtCreation:!0,usage:GPUBufferUsage.UNIFORM});return new Uint32Array(e.getMappedRange())[0]=0,e.unmap(),e})(),r=(()=>{const e=A.createBuffer({size:4,mappedAtCreation:!0,usage:GPUBufferUsage.UNIFORM});return new Uint32Array(e.getMappedRange())[0]=1,e.unmap(),e})(),n=A.createBuffer({size:8,usage:GPUBufferUsage.COPY_DST|GPUBufferUsage.UNIFORM}),Q=A.createSampler({magFilter:"linear",minFilter:"linear"}),C=A.createBindGroup({layout:t.getBindGroupLayout(0),entries:[{binding:0,resource:Q},{binding:1,resource:{buffer:n}}]}),s=A.createBindGroup({layout:t.getBindGroupLayout(1),entries:[{binding:1,resource:e.createView()},{binding:2,resource:i[0].createView()},{binding:3,resource:{buffer:I}}]}),a=A.createBindGroup({layout:t.getBindGroupLayout(1),entries:[{binding:1,resource:i[0].createView()},{binding:2,resource:i[1].createView()},{binding:3,resource:{buffer:r}}]}),E=A.createBindGroup({layout:t.getBindGroupLayout(1),entries:[{binding:1,resource:i[1].createView()},{binding:2,resource:i[0].createView()},{binding:3,resource:{buffer:I}}]}),c=B-14;A.queue.writeBuffer(n,0,new Uint32Array([15,c]));const u=g.beginComputePass();u.setPipeline(t),u.setBindGroup(0,C),u.setBindGroup(1,s),u.dispatchWorkgroups(Math.ceil(e.width/c),Math.ceil(e.height/o[1])),u.setBindGroup(1,a),u.dispatchWorkgroups(Math.ceil(e.height/c),Math.ceil(e.width/o[1]));for(let A=0;A<1;++A)u.setBindGroup(1,E),u.dispatchWorkgroups(Math.ceil(e.width/c),Math.ceil(e.height/o[1])),u.setBindGroup(1,a),u.dispatchWorkgroups(Math.ceil(e.height/c),Math.ceil(e.width/o[1]));return u.end(),i[1]}}(A),p=function(A,e){const t=A.createShaderModule({label:"texture module",code:s}),g=A.createSampler({minFilter:"linear",magFilter:"linear"}),i=A.createRenderPipeline({label:"texture pipeline",layout:"auto",vertex:{module:t,entryPoint:"vs",buffers:[{arrayStride:4*a,attributes:[{shaderLocation:0,offset:0,format:"float32x4"},{shaderLocation:1,offset:16,format:"float32x2"}]}]},fragment:{module:t,entryPoint:"fs",targets:[{format:e}]}}),I=A.createBuffer({label:"uniforms",size:64,usage:GPUBufferUsage.UNIFORM|GPUBufferUsage.COPY_DST}),r=new Float32Array(16),n=r.subarray(0,16);return function(e,t,Q,C){const B=Q.length/a|0,o=A.createBuffer({label:"vertex buffer vertices",size:Q.byteLength,usage:GPUBufferUsage.VERTEX|GPUBufferUsage.COPY_DST});A.queue.writeBuffer(o,0,Q);const s=A.createBindGroup({layout:i.getBindGroupLayout(0),entries:[{binding:0,resource:{buffer:I}},{binding:1,resource:g},{binding:2,resource:C.createView()}]});e.setPipeline(i),e.setVertexBuffer(0,o),n.set(t),A.queue.writeBuffer(I,0,r),e.setBindGroup(0,s),e.draw(B)}}(A,e),S=function(A){const e=A.createShaderModule({label:"pick texture module",code:E}),t=A.createSampler({minFilter:"linear",magFilter:"linear"}),g=A.createRenderPipeline({label:"pick texture pipeline",layout:"auto",vertex:{module:e,entryPoint:"vs",buffers:[{arrayStride:4*c,attributes:[{shaderLocation:0,offset:0,format:"float32x4"},{shaderLocation:1,offset:16,format:"float32x2"},{shaderLocation:2,offset:24,format:"float32"}]}]},fragment:{module:e,entryPoint:"fs",targets:[{format:"r32uint"}]}}),i=A.createBuffer({label:"uniforms",size:64,usage:GPUBufferUsage.UNIFORM|GPUBufferUsage.COPY_DST}),I=new Float32Array(16),r=I.subarray(0,16);return function(e,n,Q,C){const B=Q.length/c|0,o=A.createBuffer({label:"pic texture vertex buffer vertices",size:Q.byteLength,usage:GPUBufferUsage.VERTEX|GPUBufferUsage.COPY_DST});A.queue.writeBuffer(o,0,Q);const s=A.createBindGroup({layout:g.getBindGroupLayout(0),entries:[{binding:0,resource:{buffer:i}},{binding:1,resource:t},{binding:2,resource:C.createView()}]});e.setPipeline(g),e.setVertexBuffer(0,o),r.set(n),A.queue.writeBuffer(i,0,I),e.setBindGroup(0,s),e.draw(B)}}(A),m=function(A){const e=A.createShaderModule({label:"pick triangle module",code:u}),t=A.createRenderPipeline({label:"pick triangle pipeline",layout:"auto",vertex:{module:e,entryPoint:"vs",buffers:[{arrayStride:4*l,attributes:[{shaderLocation:0,offset:0,format:"float32x4"},{shaderLocation:1,offset:16,format:"float32"}]}]},fragment:{module:e,entryPoint:"fs",targets:[{format:"r32uint"}]}}),g=A.createBuffer({label:"uniforms",size:64,usage:GPUBufferUsage.UNIFORM|GPUBufferUsage.COPY_DST}),i=new Float32Array(16),I=i.subarray(0,16);return function(e,r,n){const Q=n.length/l|0,C=A.createBuffer({label:"pick triangle vertex buffer vertices",size:n.byteLength,usage:GPUBufferUsage.VERTEX|GPUBufferUsage.COPY_DST});A.queue.writeBuffer(C,0,n);const B=A.createBindGroup({layout:t.getBindGroupLayout(0),entries:[{binding:0,resource:{buffer:g}}]});e.setPipeline(t),e.setVertexBuffer(0,C),I.set(r),A.queue.writeBuffer(g,0,i),e.setBindGroup(0,B),e.draw(Q)}}(A)}},4461:(A,e,t)=>{t.d(e,{A:()=>i});var g=t(2842);function i(A){return g.A.ortho(0,A.clientWidth,0,A.clientHeight,1,-1)}},4304:(A,e,t)=>{let g;function i(A,e){const t=A.getCurrentTexture();return function(A,e,t){g&&g.width===e&&g.height===t||(null==g||g.destroy(),g=A.createTexture({size:[e,t],format:"depth24plus",usage:GPUTextureUsage.RENDER_ATTACHMENT}))}(e,t.width,t.height),{label:"our render to canvas renderPass",colorAttachments:[{view:t.createView(),clearValue:[0,0,0,1],loadOp:"clear",storeOp:"store"}]}}t.d(e,{A:()=>i})},8156:(A,e,t)=>{t.a(A,(async(A,g)=>{try{t.d(e,{A:()=>E});var i=t(214),I=t(1911),r=t(7076),n=t(2633),Q=t(1549),C=t(3979),B=t(9200),o=t(4559),s=A([n,C,B]);[n,C,B]=s.then?(await s)():s;var a=function(A,e,t,g){return new(t||(t=Promise))((function(i,I){function r(A){try{Q(g.next(A))}catch(A){I(A)}}function n(A){try{Q(g.throw(A))}catch(A){I(A)}}function Q(A){var e;A.done?i(A.value):(e=A.value,e instanceof t?e:new t((function(A){A(e)}))).then(r,n)}Q((g=g.apply(A,e||[])).next())}))};function E(A,e,t){return a(this,void 0,void 0,(function*(){const g=yield(0,I.A)();(0,C.vH)(A.clientWidth,A.clientHeight);const s=A.getContext("webgpu");if(!s)throw Error("WebGPU from canvas needs to be always provided");const a=navigator.gpu.getPreferredCanvasFormat();s.configure({device:g,format:a}),(0,i.A)(A,g,(()=>{})),(0,r.Ay)(g,a),(0,B.A)(A);const E=[];function c(e,t){const i=E.length;E.push({url:e.src,texture:(0,Q.Be)(g,e,{flipY:!0})}),(0,C.S2)(t||(0,o.A)(e,A),i)}(0,C.kO)((A=>{const e=[...A].map((A=>({points:[...A.points].map((A=>({x:A.x,y:A.y,u:A.u,v:A.v}))),url:E[A.texture_id].url})));t(e)})),e.forEach((A=>{const e=new Image;e.src=A.url,e.onload=()=>{c(e,A.points)}}));const u=(0,n.Ay)(A,s,g,a,E);return{addImage:c,destroy:()=>{u(),(0,C.Nl)(),s.unconfigure(),g.destroy()}}}))}g()}catch(c){g(c)}}))},2633:(A,e,t)=>{t.a(A,(async(A,g)=>{try{t.d(e,{Ay:()=>B});var i=t(4304),I=t(7076),r=t(4461),n=t(2872),Q=t(3979),C=A([n,Q]);function B(A,e,t,g,C){const B=(0,r.A)(A);let o;const s=new n.A(t);let a,E;(0,Q.Vh)({draw_texture:(A,e)=>(0,I._J)(o,B,A.typedArray,C[e].texture),draw_triangle:A=>(0,I.D4)(o,B,A.typedArray),pick_texture:(A,e)=>(0,I.Fh)(E,a,A.typedArray,C[e].texture),pick_triangle:A=>(0,I.Q3)(E,a,A.typedArray)});let c=0;return c=requestAnimationFrame((function g(I){const r=t.createCommandEncoder(),n=(0,i.A)(e,t);o=r.beginRenderPass(n),(0,Q.Gp)(),o.end(),a=s.createMatrix(A,B);const C=s.startPicking(r);E=C.pass,(0,Q.A4)(),C.end();const u=r.finish();t.queue.submit([u]),s.asyncPick(),c=requestAnimationFrame(g)})),()=>{cancelAnimationFrame(c)}}[n,Q]=C.then?(await C)():C,new Float32Array,g()}catch(o){g(o)}}))},4559:(A,e,t)=>{function g(A,e,t){return Math.min(t,Math.max(e,A))}function i(A,e){const t=function(A,e){if(e.height-A.height<e.width-A.width)return g(A.height,.2*e.height,.8*e.height)/A.height;return g(A.width,.2*e.width,.8*e.width)/A.width}(A,e),i=A.width*t,I=A.height*t,r=.5*(e.width-i),n=.5*(e.height-I);return[{x:r,y:n+I,u:0,v:1},{x:r+i,y:n+I,u:1,v:1},{x:r+i,y:n,u:1,v:0},{x:r,y:n,u:0,v:0}]}t.d(e,{A:()=>i})},2842:(A,e,t)=>{t.d(e,{A:()=>I});const g={cross(A,e,t=new Float32Array(3)){const g=A[1]*e[2]-A[2]*e[1],i=A[2]*e[0]-A[0]*e[2],I=A[0]*e[1]-A[1]*e[0];return t[0]=g,t[1]=i,t[2]=I,t},subtract:(A,e,t=new Float32Array(3))=>(t[0]=A[0]-e[0],t[1]=A[1]-e[1],t[2]=A[2]-e[2],t),normalize(A,e=new Float32Array(3)){const t=Math.sqrt(A[0]*A[0]+A[1]*A[1]+A[2]*A[2]);return t>1e-5?(e[0]=A[0]/t,e[1]=A[1]/t,e[2]=A[2]/t):(e[0]=0,e[1]=0,e[2]=0),e}},i={projection:(A,e,t,g)=>i.ortho(0,A,e,0,t,-t,g),perspective(A,e,t,g,i=new Float32Array(16)){const I=Math.tan(.5*Math.PI-.5*A),r=1/(t-g);return i[0]=I/e,i[1]=0,i[2]=0,i[3]=0,i[4]=0,i[5]=I,i[6]=0,i[7]=0,i[8]=0,i[9]=0,i[10]=g*r,i[11]=-1,i[12]=0,i[13]=0,i[14]=t*g*r,i[15]=0,i},ortho:(A,e,t,g,i,I,r=new Float32Array(16))=>(r[0]=2/(e-A),r[1]=0,r[2]=0,r[3]=0,r[4]=0,r[5]=2/(g-t),r[6]=0,r[7]=0,r[8]=0,r[9]=0,r[10]=1/(i-I),r[11]=0,r[12]=(e+A)/(A-e),r[13]=(g+t)/(t-g),r[14]=i/(i-I),r[15]=1,r),identity:(A=new Float32Array(16))=>(A[0]=1,A[1]=0,A[2]=0,A[3]=0,A[4]=0,A[5]=1,A[6]=0,A[7]=0,A[8]=0,A[9]=0,A[10]=1,A[11]=0,A[12]=0,A[13]=0,A[14]=0,A[15]=1,A),multiply(A,e,t=new Float32Array(16)){const g=e[0],i=e[1],I=e[2],r=e[3],n=e[4],Q=e[5],C=e[6],B=e[7],o=e[8],s=e[9],a=e[10],E=e[11],c=e[12],u=e[13],l=e[14],f=e[15],h=A[0],w=A[1],D=A[2],y=A[3],d=A[4],p=A[5],S=A[6],m=A[7],F=A[8],b=A[9],U=A[10],k=A[11],N=A[12],M=A[13],G=A[14],v=A[15];return t[0]=g*h+i*d+I*F+r*N,t[1]=g*w+i*p+I*b+r*M,t[2]=g*D+i*S+I*U+r*G,t[3]=g*y+i*m+I*k+r*v,t[4]=n*h+Q*d+C*F+B*N,t[5]=n*w+Q*p+C*b+B*M,t[6]=n*D+Q*S+C*U+B*G,t[7]=n*y+Q*m+C*k+B*v,t[8]=o*h+s*d+a*F+E*N,t[9]=o*w+s*p+a*b+E*M,t[10]=o*D+s*S+a*U+E*G,t[11]=o*y+s*m+a*k+E*v,t[12]=c*h+u*d+l*F+f*N,t[13]=c*w+u*p+l*b+f*M,t[14]=c*D+u*S+l*U+f*G,t[15]=c*y+u*m+l*k+f*v,t},cameraAim(A,e,t,i=new Float32Array(16)){const I=g.normalize(g.subtract(A,e)),r=g.normalize(g.cross(t,I)),n=g.normalize(g.cross(I,r));return i[0]=r[0],i[1]=r[1],i[2]=r[2],i[3]=0,i[4]=n[0],i[5]=n[1],i[6]=n[2],i[7]=0,i[8]=I[0],i[9]=I[1],i[10]=I[2],i[11]=0,i[12]=A[0],i[13]=A[1],i[14]=A[2],i[15]=1,i},inverse(A,e=new Float32Array(16)){const t=A[0],g=A[1],i=A[2],I=A[3],r=A[4],n=A[5],Q=A[6],C=A[7],B=A[8],o=A[9],s=A[10],a=A[11],E=A[12],c=A[13],u=A[14],l=A[15],f=s*l,h=u*a,w=Q*l,D=u*C,y=Q*a,d=s*C,p=i*l,S=u*I,m=i*a,F=s*I,b=i*C,U=Q*I,k=B*c,N=E*o,M=r*c,G=E*n,v=r*o,J=B*n,K=t*c,L=E*g,R=t*o,x=B*g,Y=t*n,q=r*g,H=f*n+D*o+y*c-(h*n+w*o+d*c),O=h*g+p*o+F*c-(f*g+S*o+m*c),V=w*g+S*n+b*c-(D*g+p*n+U*c),T=d*g+m*n+U*o-(y*g+F*n+b*o),P=1/(t*H+r*O+B*V+E*T);return e[0]=P*H,e[1]=P*O,e[2]=P*V,e[3]=P*T,e[4]=P*(h*r+w*B+d*E-(f*r+D*B+y*E)),e[5]=P*(f*t+S*B+m*E-(h*t+p*B+F*E)),e[6]=P*(D*t+p*r+U*E-(w*t+S*r+b*E)),e[7]=P*(y*t+F*r+b*B-(d*t+m*r+U*B)),e[8]=P*(k*C+G*a+v*l-(N*C+M*a+J*l)),e[9]=P*(N*I+K*a+x*l-(k*I+L*a+R*l)),e[10]=P*(M*I+L*C+Y*l-(G*I+K*C+q*l)),e[11]=P*(J*I+R*C+q*a-(v*I+x*C+Y*a)),e[12]=P*(M*s+J*u+N*Q-(v*u+k*Q+G*s)),e[13]=P*(R*u+k*i+L*s-(K*s+x*u+N*i)),e[14]=P*(K*Q+q*u+G*i-(Y*u+M*i+L*Q)),e[15]=P*(Y*s+v*i+x*Q-(R*Q+q*s+J*i)),e},transpose:(A,e=new Float32Array(16))=>(e[0]=A[0],e[1]=A[4],e[2]=A[8],e[3]=A[12],e[4]=A[1],e[5]=A[5],e[6]=A[9],e[7]=A[13],e[8]=A[2],e[9]=A[6],e[10]=A[10],e[11]=A[14],e[12]=A[3],e[13]=A[7],e[14]=A[11],e[15]=A[15],e),aim(A,e,t,i=new Float32Array(16)){const I=g.normalize(g.subtract(e,A)),r=g.normalize(g.cross(t,I)),n=g.normalize(g.cross(I,r));return i[0]=r[0],i[1]=r[1],i[2]=r[2],i[3]=0,i[4]=n[0],i[5]=n[1],i[6]=n[2],i[7]=0,i[8]=I[0],i[9]=I[1],i[10]=I[2],i[11]=0,i[12]=A[0],i[13]=A[1],i[14]=A[2],i[15]=1,i},lookAt:(A,e,t,g)=>i.inverse(i.cameraAim(A,e,t,g),g),translation:([A,e,t],g=new Float32Array(16))=>(g[0]=1,g[1]=0,g[2]=0,g[3]=0,g[4]=0,g[5]=1,g[6]=0,g[7]=0,g[8]=0,g[9]=0,g[10]=1,g[11]=0,g[12]=A,g[13]=e,g[14]=t,g[15]=1,g),rotationX(A,e=new Float32Array(16)){const t=Math.cos(A),g=Math.sin(A);return e[0]=1,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=t,e[6]=g,e[7]=0,e[8]=0,e[9]=-g,e[10]=t,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,e},rotationY(A,e=new Float32Array(16)){const t=Math.cos(A),g=Math.sin(A);return e[0]=t,e[1]=0,e[2]=-g,e[3]=0,e[4]=0,e[5]=1,e[6]=0,e[7]=0,e[8]=g,e[9]=0,e[10]=t,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,e},rotationZ(A,e=new Float32Array(16)){const t=Math.cos(A),g=Math.sin(A);return e[0]=t,e[1]=g,e[2]=0,e[3]=0,e[4]=-g,e[5]=t,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[10]=1,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,e},scaling:([A,e,t],g=new Float32Array(16))=>(g[0]=A,g[1]=0,g[2]=0,g[3]=0,g[4]=0,g[5]=e,g[6]=0,g[7]=0,g[8]=0,g[9]=0,g[10]=t,g[11]=0,g[12]=0,g[13]=0,g[14]=0,g[15]=1,g),translate:(A,e,t)=>i.multiply(A,i.translation(e),t),rotateX:(A,e,t)=>i.multiply(A,i.rotationX(e),t),rotateY:(A,e,t)=>i.multiply(A,i.rotationY(e),t),rotateZ:(A,e,t)=>i.multiply(A,i.rotationZ(e),t),scale:(A,e,t)=>i.multiply(A,i.scaling(e),t)},I=i},3979:(A,e,t)=>{t.a(A,(async(A,g)=>{try{t.d(e,{A4:()=>oe,Dk:()=>ne,Gp:()=>Be,Nl:()=>se,OI:()=>re,S2:()=>ie,Vh:()=>Ae,_R:()=>Qe,kO:()=>ee,vH:()=>ge,wU:()=>Ce});var i=t(4773);t(1285),t(4828),t(6973),t(2427),t(1669),t(6929),t(4936),t(8738),t(1432),t(1454),t(6402),t(9098),t(9494),t(7431),t(7591),t(6717),t(2164),t(6135),t(3793),t(8305),t(3456),t(8539),t(7679),t(2244),t(3509),t(9433),t(7382),t(1425),t(8773),t(3086),t(8771),t(8991),t(8502),t(9025),t(5558),t(4358),t(2436),t(7409),t(9268),t(5239);const A={constructor:null,type:0,flags:0,signature:void 0,name:void 0,byteSize:0,align:0,instance:{members:[],template:null},static:{members:[],template:null}},I={type:0,flags:0},r={},n={},Q={},C={},B={},o={},s={},a={},E={},c={},u={},l={},f={},h={},w={},D={},y={},d={},p={},S={},m={},F={},b={},U={},k={},N={},M={},G={},v={},J={},K={},L={},R={},x={},Y={},q={},H={},O={},V={},T={},P={},z={},Z={},j={},W={},X={},_={},$={},AA={},eA={},tA={},gA={},iA={},IA={},rA={},nA={},QA={},CA={},BA={},oA={},sA={},aA={},EA={},cA={},uA={},lA={},fA={},hA={},wA={},DA={},yA={},dA={},pA={},SA={},mA={},FA={},bA={},UA={},kA={},NA={},MA={},GA={},vA={},JA={},KA={},LA={},RA={},xA=A=>new Uint8Array(A),YA=xA(0),qA=xA(16),HA=xA(8),OA=xA(16),VA=xA(68),TA=xA([232,3,0,0]),PA=Object.assign;PA(j,{memory:{array:YA},handle:24}),PA(W,{memory:{array:YA},handle:25}),PA(X,{memory:{array:YA},handle:26}),PA(_,{memory:{array:YA},handle:27}),PA($,{memory:{array:qA},handle:262960,slots:{0:AA,1:tA,2:iA,3:IA}}),PA(AA,{structure:a,memory:{array:qA,offset:0,length:4},slots:{0:eA}}),PA(eA,{structure:s,memory:{array:YA}}),PA(tA,{structure:u,memory:{array:qA,offset:4,length:4},slots:{0:gA}}),PA(gA,{structure:c,memory:{array:YA}}),PA(iA,{structure:a,memory:{array:qA,offset:8,length:4},slots:{0:eA}}),PA(IA,{structure:u,memory:{array:qA,offset:12,length:4},slots:{0:gA}}),PA(rA,{memory:{array:YA},handle:14}),PA(nA,{memory:{array:HA}}),PA(QA,{memory:{array:YA},handle:47}),PA(CA,{memory:{array:YA},handle:48}),PA(BA,{memory:{array:OA}}),PA(oA,{slots:{0:sA,1:aA,2:EA}}),PA(sA,{structure:d,memory:{array:YA},handle:44}),PA(aA,{structure:S,memory:{array:YA},handle:45}),PA(EA,{structure:S,memory:{array:YA},handle:46}),PA(cA,{memory:{array:VA}}),PA(uA,{memory:{array:YA},handle:15}),PA(lA,{memory:{array:YA},handle:16}),PA(fA,{memory:{array:YA},handle:17}),PA(hA,{memory:{array:YA},handle:18}),PA(wA,{memory:{array:YA},handle:19}),PA(DA,{memory:{array:YA},handle:20}),PA(yA,{memory:{array:YA},handle:21}),PA(dA,{memory:{array:YA},handle:22}),PA(pA,{memory:{array:YA},handle:23}),PA(SA,{slots:{0:mA,1:FA,2:bA,3:UA,4:kA,5:NA,6:MA,7:GA,8:vA,9:JA,10:KA,11:LA,12:RA}}),PA(mA,{structure:w,memory:{array:YA},handle:2}),PA(FA,{structure:J,memory:{array:YA},handle:3}),PA(bA,{structure:B,memory:{array:TA},const:!0}),PA(UA,{structure:L,memory:{array:YA},handle:4}),PA(kA,{structure:x,memory:{array:YA},handle:5}),PA(NA,{structure:q,memory:{array:YA},handle:6}),PA(MA,{structure:O,memory:{array:YA},handle:7}),PA(GA,{structure:T,memory:{array:YA},handle:8}),PA(vA,{structure:z,memory:{array:YA},handle:9}),PA(JA,{structure:T,memory:{array:YA},handle:10}),PA(KA,{structure:z,memory:{array:YA},handle:11}),PA(LA,{structure:z,memory:{array:YA},handle:12}),PA(RA,{structure:z,memory:{array:YA},handle:13}),PA(r,{...A,flags:1,signature:0xa310b7d01f11b8can,name:"void",align:1,instance:{members:[{...I,bitOffset:0,bitSize:0,byteSize:0,structure:r}]}}),PA(n,{...A,flags:1,signature:0x61e77abe97c52d51n,name:"f32",byteSize:4,align:4,instance:{members:[{...I,type:4,bitOffset:0,bitSize:32,byteSize:4,structure:n}]}}),PA(Q,{...A,type:9,flags:64,signature:0x9212e6749825a514n,name:"[_]f32",byteSize:4,align:4,instance:{members:[{...I,type:4,bitSize:32,byteSize:4,structure:n}]}}),PA(C,{...A,type:8,flags:188,signature:0xfc4e3831fa228a2en,name:"[]const f32",byteSize:8,align:4,instance:{members:[{...I,type:5,bitSize:64,byteSize:8,slot:0,structure:Q}]}}),PA(B,{...A,flags:1,signature:0x68598db431a811a3n,name:"u32",byteSize:4,align:4,instance:{members:[{...I,type:3,bitOffset:0,bitSize:32,byteSize:4,structure:B}]}}),PA(o,{...A,type:12,flags:14,signature:0x09675e7a1ffd5485n,name:"Arg(fn ([]const f32, u32) void)",length:2,byteSize:12,align:4,instance:{members:[{...I,flags:1,bitOffset:96,bitSize:0,byteSize:0,slot:0,name:"retval",structure:r},{...I,type:5,flags:1,bitOffset:0,bitSize:64,byteSize:8,slot:1,name:"0",structure:C},{...I,type:3,flags:1,bitOffset:64,bitSize:32,byteSize:4,slot:2,name:"1",structure:B}]}}),PA(s,{...A,type:14,signature:0xe1a5d27f9960e020n,name:"fn ([]const f32, u32) void",length:2,instance:{members:[{...I,type:5,bitSize:96,byteSize:12,structure:o}],template:j},static:{members:[],template:W}}),PA(a,{...A,type:8,flags:204,signature:0x4d3813c518971895n,name:"*const fn ([]const f32, u32) void",byteSize:4,align:4,instance:{members:[{...I,type:5,bitSize:32,byteSize:4,slot:0,structure:s}]}}),PA(E,{...A,type:12,flags:14,signature:0x0292a02ab8f8020cn,name:"Arg(fn ([]const f32) void)",length:1,byteSize:8,align:4,instance:{members:[{...I,flags:1,bitOffset:64,bitSize:0,byteSize:0,slot:0,name:"retval",structure:r},{...I,type:5,flags:1,bitOffset:0,bitSize:64,byteSize:8,slot:1,name:"0",structure:C}]}}),PA(c,{...A,type:14,signature:0x47389ea7e1d3d337n,name:"fn ([]const f32) void",length:1,instance:{members:[{...I,type:5,bitSize:64,byteSize:8,structure:E}],template:X},static:{members:[],template:_}}),PA(u,{...A,type:8,flags:204,signature:0x4224bff88f0203f5n,name:"*const fn ([]const f32) void",byteSize:4,align:4,instance:{members:[{...I,type:5,bitSize:32,byteSize:4,slot:0,structure:c}]}}),PA(l,{...A,type:2,flags:14,signature:0xa163853d6eea84ffn,name:"WebGpuPrograms",byteSize:16,align:4,instance:{members:[{...I,type:5,flags:1,bitOffset:0,bitSize:32,byteSize:4,slot:0,name:"draw_texture",structure:a},{...I,type:5,flags:1,bitOffset:32,bitSize:32,byteSize:4,slot:1,name:"draw_triangle",structure:u},{...I,type:5,flags:1,bitOffset:64,bitSize:32,byteSize:4,slot:2,name:"pick_texture",structure:a},{...I,type:5,flags:1,bitOffset:96,bitSize:32,byteSize:4,slot:3,name:"pick_triangle",structure:u}],template:$}}),PA(f,{...A,type:8,flags:204,signature:0xf88af90d134a19c1n,name:"*const WebGpuPrograms",byteSize:4,align:4,instance:{members:[{...I,type:5,bitSize:32,byteSize:4,slot:0,structure:l}]}}),PA(h,{...A,type:12,flags:14,signature:0xa86f8c1238de4df5n,name:"Arg(fn (*const WebGpuPrograms) void)",length:1,byteSize:4,align:4,instance:{members:[{...I,flags:1,bitOffset:32,bitSize:0,byteSize:0,slot:0,name:"retval",structure:r},{...I,type:5,flags:1,bitOffset:0,bitSize:32,byteSize:4,slot:1,name:"0",structure:f}]}}),PA(w,{...A,type:14,signature:0xc28f54a51c95c6f5n,name:"fn (*const WebGpuPrograms) void",length:1,instance:{members:[{...I,type:5,bitSize:32,byteSize:4,structure:h}],template:rA}}),PA(D,{...A,type:2,signature:0x3c18d236acd7668dn,name:"Point",byteSize:8,align:4,instance:{members:[{...I,type:4,flags:1,bitOffset:0,bitSize:32,byteSize:4,slot:0,name:"x",structure:n},{...I,type:4,flags:1,bitOffset:32,bitSize:32,byteSize:4,slot:1,name:"y",structure:n}],template:nA}}),PA(y,{...A,type:12,flags:10,signature:0xd1d7035b6147a5d4n,name:"Arg(fn (PointUV, PointUV) Point)",length:2,byteSize:40,align:4,instance:{members:[{...I,type:5,flags:1,bitOffset:0,bitSize:64,byteSize:8,slot:0,name:"retval",structure:D},{...I,type:5,flags:1,bitOffset:64,bitSize:128,byteSize:16,slot:1,name:"0",structure:m},{...I,type:5,flags:1,bitOffset:192,bitSize:128,byteSize:16,slot:2,name:"1",structure:m}]}}),PA(d,{...A,type:14,signature:0xbb0f8218864060e9n,name:"fn (PointUV, PointUV) Point",length:2,instance:{members:[{...I,type:5,bitSize:320,byteSize:40,structure:y}],template:QA}}),PA(p,{...A,type:12,flags:10,signature:0x0fa3968ee7482ac2n,name:"Arg(fn (PointUV, PointUV) f32)",length:2,byteSize:36,align:4,instance:{members:[{...I,type:4,flags:1,bitOffset:0,bitSize:32,byteSize:4,slot:0,name:"retval",structure:n},{...I,type:5,flags:1,bitOffset:32,bitSize:128,byteSize:16,slot:1,name:"0",structure:m},{...I,type:5,flags:1,bitOffset:160,bitSize:128,byteSize:16,slot:2,name:"1",structure:m}]}}),PA(S,{...A,type:14,signature:0x3170ee9a1e36ef3an,name:"fn (PointUV, PointUV) f32",length:2,instance:{members:[{...I,type:5,bitSize:288,byteSize:36,structure:p}],template:CA}}),PA(m,{...A,type:2,signature:0x9d77c3c6a1a73d02n,name:"PointUV",byteSize:16,align:4,instance:{members:[{...I,type:4,flags:1,bitOffset:0,bitSize:32,byteSize:4,slot:0,name:"x",structure:n},{...I,type:4,flags:1,bitOffset:32,bitSize:32,byteSize:4,slot:1,name:"y",structure:n},{...I,type:4,flags:1,bitOffset:64,bitSize:32,byteSize:4,slot:2,name:"u",structure:n},{...I,type:4,flags:1,bitOffset:96,bitSize:32,byteSize:4,slot:3,name:"v",structure:n}],template:BA},static:{members:[{...I,type:5,flags:18,slot:0,name:"mid",structure:d},{...I,type:5,flags:18,slot:1,name:"angle_to",structure:S},{...I,type:5,flags:18,slot:2,name:"distance",structure:S}],template:oA}}),PA(F,{...A,type:1,flags:10,signature:0x4aba6e79b2a51d1dn,name:"[4]PointUV",length:4,byteSize:64,align:4,instance:{members:[{...I,type:5,bitSize:128,byteSize:16,structure:m}]}}),PA(b,{...A,type:2,flags:10,signature:0xa0d33217006c82a9n,name:"AssetZig",byteSize:68,align:4,instance:{members:[{...I,type:5,flags:1,bitOffset:0,bitSize:512,byteSize:64,slot:0,name:"points",structure:F},{...I,type:3,flags:1,bitOffset:512,bitSize:32,byteSize:4,slot:1,name:"texture_id",structure:B}],template:cA}}),PA(U,{...A,type:9,flags:10,signature:0x11c865473620af61n,name:"[_]AssetZig",byteSize:68,align:4,instance:{members:[{...I,type:5,bitSize:544,byteSize:68,structure:b}]}}),PA(k,{...A,type:8,flags:60,signature:0xcae982de4df134f9n,name:"[]AssetZig",byteSize:8,align:4,instance:{members:[{...I,type:5,bitSize:64,byteSize:8,slot:0,structure:U}]}}),PA(N,{...A,type:12,flags:14,signature:0x5a346ed510be0421n,name:"Arg(fn ([]AssetZig) void)",length:1,byteSize:8,align:4,instance:{members:[{...I,flags:1,bitOffset:64,bitSize:0,byteSize:0,slot:0,name:"retval",structure:r},{...I,type:5,flags:1,bitOffset:0,bitSize:64,byteSize:8,slot:1,name:"0",structure:k}]}}),PA(M,{...A,type:14,signature:0xe4b315df8532c4cdn,name:"fn ([]AssetZig) void",length:1,instance:{members:[{...I,type:5,bitSize:64,byteSize:8,structure:N}],template:uA},static:{members:[],template:lA}}),PA(G,{...A,type:8,flags:204,signature:0x5f373919b4d68f19n,name:"*const fn ([]AssetZig) void",byteSize:4,align:4,instance:{members:[{...I,type:5,bitSize:32,byteSize:4,slot:0,structure:M}]}}),PA(v,{...A,type:12,flags:14,signature:0xbc781ae065eb0cf9n,name:"Arg(fn (*const fn ([]AssetZig) void) void)",length:1,byteSize:4,align:4,instance:{members:[{...I,flags:1,bitOffset:32,bitSize:0,byteSize:0,slot:0,name:"retval",structure:r},{...I,type:5,flags:1,bitOffset:0,bitSize:32,byteSize:4,slot:1,name:"0",structure:G}]}}),PA(J,{...A,type:14,signature:0x4dc72d4c2f1365ebn,name:"fn (*const fn ([]AssetZig) void) void",length:1,instance:{members:[{...I,type:5,bitSize:32,byteSize:4,structure:v}],template:fA}}),PA(K,{...A,type:12,signature:0x3f075bf644453a95n,name:"Arg(fn (u32, u32) void)",length:2,byteSize:8,align:4,instance:{members:[{...I,flags:1,bitOffset:64,bitSize:0,byteSize:0,slot:0,name:"retval",structure:r},{...I,type:3,flags:1,bitOffset:0,bitSize:32,byteSize:4,slot:1,name:"0",structure:B},{...I,type:3,flags:1,bitOffset:32,bitSize:32,byteSize:4,slot:2,name:"1",structure:B}]}}),PA(L,{...A,type:14,signature:0x4c7e047aa4ecbc8an,name:"fn (u32, u32) void",length:2,instance:{members:[{...I,type:5,bitSize:64,byteSize:8,structure:K}],template:hA}}),PA(R,{...A,type:12,flags:10,signature:0xc762e73c81793f51n,name:"Arg(fn ([4]PointUV, u32) void)",length:2,byteSize:68,align:4,instance:{members:[{...I,flags:1,bitOffset:544,bitSize:0,byteSize:0,slot:0,name:"retval",structure:r},{...I,type:5,flags:1,bitOffset:0,bitSize:512,byteSize:64,slot:1,name:"0",structure:F},{...I,type:3,flags:1,bitOffset:512,bitSize:32,byteSize:4,slot:2,name:"1",structure:B}]}}),PA(x,{...A,type:14,signature:0x0e773631f1483b71n,name:"fn ([4]PointUV, u32) void",length:2,instance:{members:[{...I,type:5,bitSize:544,byteSize:68,structure:R}],template:wA}}),PA(Y,{...A,type:12,flags:10,signature:0xebd988516fdd5651n,name:"Arg(fn (u32, [4]PointUV) void)",length:2,byteSize:68,align:4,instance:{members:[{...I,flags:1,bitOffset:544,bitSize:0,byteSize:0,slot:0,name:"retval",structure:r},{...I,type:3,flags:1,bitOffset:0,bitSize:32,byteSize:4,slot:1,name:"0",structure:B},{...I,type:5,flags:1,bitOffset:32,bitSize:512,byteSize:64,slot:2,name:"1",structure:F}]}}),PA(q,{...A,type:14,signature:0xb6b0d32aa9cdf62cn,name:"fn (u32, [4]PointUV) void",length:2,instance:{members:[{...I,type:5,bitSize:544,byteSize:68,structure:Y}],template:DA}}),PA(H,{...A,type:12,signature:0x6364608841bf263en,name:"Arg(fn (u32) void)",length:1,byteSize:4,align:4,instance:{members:[{...I,flags:1,bitOffset:32,bitSize:0,byteSize:0,slot:0,name:"retval",structure:r},{...I,type:3,flags:1,bitOffset:0,bitSize:32,byteSize:4,slot:1,name:"0",structure:B}]}}),PA(O,{...A,type:14,signature:0x956e45a1c96ff5e6n,name:"fn (u32) void",length:1,instance:{members:[{...I,type:5,bitSize:32,byteSize:4,structure:H}],template:yA}}),PA(V,{...A,type:12,signature:0xb1afac27f34003f4n,name:"Arg(fn (f32, f32) void)",length:2,byteSize:8,align:4,instance:{members:[{...I,flags:1,bitOffset:64,bitSize:0,byteSize:0,slot:0,name:"retval",structure:r},{...I,type:4,flags:1,bitOffset:0,bitSize:32,byteSize:4,slot:1,name:"0",structure:n},{...I,type:4,flags:1,bitOffset:32,bitSize:32,byteSize:4,slot:2,name:"1",structure:n}]}}),PA(T,{...A,type:14,signature:0x63bac1760494db20n,name:"fn (f32, f32) void",length:2,instance:{members:[{...I,type:5,bitSize:64,byteSize:8,structure:V}],template:dA}}),PA(P,{...A,type:12,signature:0xfa22378c989ae19dn,name:"Arg(fn () void)",length:0,align:1,instance:{members:[{...I,flags:1,bitOffset:0,bitSize:0,byteSize:0,slot:0,name:"retval",structure:r}]}}),PA(z,{...A,type:14,signature:0xe3c3b022a28cd076n,name:"fn () void",length:0,instance:{members:[{...I,type:5,bitSize:0,byteSize:0,structure:P}],template:pA}}),PA(Z,{...A,type:2,flags:4096,signature:0x239ab4f327f6ac1bn,name:"index",align:1,static:{members:[{...I,type:5,flags:2,slot:0,name:"connect_web_gpu_programs",structure:w},{...I,type:5,flags:2,slot:1,name:"connect_on_asset_update_callback",structure:J},{...I,type:5,flags:2,slot:2,name:"ASSET_ID_TRESHOLD",structure:B},{...I,type:5,flags:2,slot:3,name:"init_state",structure:L},{...I,type:5,flags:2,slot:4,name:"add_texture",structure:x},{...I,type:5,flags:2,slot:5,name:"update_points",structure:q},{...I,type:5,flags:2,slot:6,name:"on_update_pick",structure:O},{...I,type:5,flags:2,slot:7,name:"on_pointer_down",structure:T},{...I,type:5,flags:2,slot:8,name:"on_pointer_up",structure:z},{...I,type:5,flags:2,slot:9,name:"on_pointer_move",structure:T},{...I,type:5,flags:2,slot:10,name:"canvas_render",structure:z},{...I,type:5,flags:2,slot:11,name:"picks_render",structure:z},{...I,type:5,flags:2,slot:12,name:"destroy_state",structure:z}],template:SA}});const zA=[r,n,Q,C,B,o,s,a,E,c,u,l,f,h,w,D,y,d,p,S,m,F,b,U,k,N,M,G,v,J,K,L,R,x,Y,q,H,O,V,T,P,z,Z],ZA=Z,jA={runtimeSafety:!1,littleEndian:!0,libc:!1},WA=(0,i.M)();WA.recreateStructures(zA,jA);const XA=(async()=>{const A=atob("AGFzbQEAAAABmgEYYAR/f39/AX9gAn9/AGADf39/AGAFf39/f38AYAZ/f39/f38Bf2ABfwBgAn19AGAAAGACf38BfWACf38Bf2AEf39/fwBgAX8Bf2AAAX9gBH9/fn8AYAN/f38Bf2ACfX0BfWABfQF9YAV/f399fwBgBX9/f39/AX9gBX9+fn5+AGACfH8BfGACfX8Bf2ADfHx8AXxgA3x8fwF8AskDFgNlbnYGbWVtb3J5AgAFA2VudhlfX2luZGlyZWN0X2Z1bmN0aW9uX3RhYmxlAXAAWQNlbnYJX3JlYWRTbG90AAkDZW52Cl93cml0ZVNsb3QAAgNlbnYQX2RlZmluZVN0cnVjdHVyZQALA2VudglfY2FzdFZpZXcAAANlbnYPX2NyZWF0ZVRlbXBsYXRlAAsDZW52D19hdHRhY2hUZW1wbGF0ZQACA2Vudg1fZW5kU3RydWN0dXJlAAUDZW52EF9iZWdpbkRlZmluaXRpb24ADANlbnYOX2NhcHR1cmVTdHJpbmcACQNlbnYNX2luc2VydFN0cmluZwACA2Vudg5faW5zZXJ0SW50ZWdlcgAKA2VudhFfaW5zZXJ0QmlnSW50ZWdlcgANA2Vudg9fYmVnaW5TdHJ1Y3R1cmUACwNlbnYNX2luc2VydE9iamVjdAACA2Vudg1fYXR0YWNoTWVtYmVyAAIDZW52DF9jYXB0dXJlVmlldwAOA2Vudg1faGFuZGxlSnNDYWxsAAADZW52DV9kaXNwbGF5UGFuaWMAAQNlbnYQX2FsbG9jYXRlSnNUaHVuawAJA2VudgxfZnJlZUpzVGh1bmsACQOPAY0BBwwJAQUOBQUFBQUBBQEFAQUFBQYFBwYHBwcCCA8QCAsBDgIRBQUFCQUJCgkJCQkJBQkJBQUFBQkKCQoBAQEBAQEBAQEBAQEBAQEBCQkCAgICAgICAgICAgICAgICAgEBAQEBAQEBAQEBAQEBAQEBCgIBAQcJAAQEAwIOEgkJBwwABAQDExQQFRIWFw8QBggBfwFBgIAQCwe4AQoPZ2V0RmFjdG9yeVRodW5rABUKaW5pdGlhbGl6ZQCHARVhbGxvY2F0ZVNjcmF0Y2hNZW1vcnkAiAERZnJlZVNjcmF0Y2hNZW1vcnkAjQEIcnVuVGh1bmsAjgEQcnVuVmFyaWFkaWNUaHVuawCPAQ1jcmVhdGVKc1RodW5rAJABDmRlc3Ryb3lKc1RodW5rAJEBC2ZsdXNoU3Rkb3V0AJIBE2dldE1vZHVsZUF0dHJpYnV0ZXMAkwEIARQJaAEAQQELWBYaHB8hIyUnKSorLC07PT4/QEFCQ0VGS0xNTk9QUVJTVFVWV1hZWltcXV4uLzJfYGJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXp7fH1+f4ABgQGUAZUBlgGXAYkBigGLAYwBCoqFA40BDgBBiKAQQQBBnAP8CwALBABBAQucFAEEfyMAQeAGayICJAACQAJAAkBBAEEdEAAiA0UNACACIAM2AgAgAkEAOwEEIAIhBAwBCyACQYAgNgIcIAJChYCAgCA3AhQgAkGSgBA2AhAgAkGBgAQ2AjAgAkKAgICAEDcDKCACQgA3AyAgAkKb2Nq/sp6tzSM3AwggAkE4aiACQQhqEBcgAi8BPCIDDQFBAEEdIAIoAjgiBBABAkACQCAEEAIiAw0AQciEECEDDAELIAIgAzYCoAYgAkEAOwGkBiACQaAGaiEDCyADLwEEIgMNASACQcgAahAYIAIvAUwiAw0BIAJB6ABqQgA3AgAgAkHwAGpCADcCACACQgA3AmAgAkECNgJcIAJCmICAgNAANwJUIAJBxYAQNgJQIAIgAigCSDYCgAEgAkKAgICAEDcCeCAEIAJB0ABqQQEQGSIDQf//A3ENASACQdgGahAYIAIvAdwGIgMNAQJAQQJBAEEAIAIoAtgGEAMiAw0AQQ0hAwwCCwJAQQAQBCIFDQBBFSEDDAILIAVBACADEAEgAkGEAWoQGyACLwGIASIDDQEgAkGkAWpCADcCACACQawBakIANwIAIAJCADcCnAEgAkECNgKYASACQqCAgIDQADcCkAEgAkHXgRA2AowBIAIgAigChAE2ArwBIAJCgYCAgBA3ArQBIAQgAkGMAWpBARAZIgNB//8DcQ0BIAJB2AZqEBsgAi8B3AYiAw0BAkBBA0EAQQAgAigC2AYQAyIDDQBBDSEDDAILIAVBASADEAEgAkHAAWoQHSACLwHEASIDDQEgAkHgAWpCADcCACACQegBakIANwIAIAJCADcC2AEgAkECNgLUASACQpGAgIDQADcCzAEgAkGphBA2AsgBIAIgAigCwAE2AvgBIAJCgoCAgBA3AvABIAQgAkHIAWpBARAZIgNB//8DcQ0BIAJB2AZqEB0gAi8B3AYiAw0BAkBB0IQQQQRBASACKALYBhADIgMNAEENIQMMAgsgBUECIAMQASACQfwBahAeIAIvAYACIgMNASACQZwCakIANwIAIAJBpAJqQgA3AgAgAkIANwKUAiACQQI2ApACIAJCioCAgNAANwKIAiACQb+CEDYChAIgAiACKAL8ATYCtAIgAkKDgICAEDcCrAIgBCACQYQCakEBEBkiA0H//wNxDQEgAkHYBmoQHiACLwHcBiIDDQECQEEEQQBBACACKALYBhADIgMNAEENIQMMAgsgBUEDIAMQASACQbgCahAgIAIvAbwCIgMNASACQdgCakIANwIAIAJB4AJqQgA3AgAgAkIANwLQAiACQQI2AswCIAJCi4CAgNAANwLEAiACQeSCEDYCwAIgAiACKAK4AjYC8AIgAkKEgICAEDcC6AIgBCACQcACakEBEBkiA0H//wNxDQEgAkHYBmoQICACLwHcBiIDDQECQEEFQQBBACACKALYBhADIgMNAEENIQMMAgsgBUEEIAMQASACQfQCahAiIAIvAfgCIgMNASACQZQDakIANwIAIAJBnANqQgA3AgAgAkIANwKMAyACQQI2AogDIAJCjYCAgNAANwKAAyACQbeAEDYC/AIgAiACKAL0AjYCrAMgAkKFgICAEDcCpAMgBCACQfwCakEBEBkiA0H//wNxDQEgAkHYBmoQIiACLwHcBiIDDQECQEEGQQBBACACKALYBhADIgMNAEENIQMMAgsgBUEFIAMQASACQbADahAkIAIvAbQDIgMNASACQdADakIANwIAIAJB2ANqQgA3AgAgAkIANwLIAyACQQI2AsQDIAJCjoCAgNAANwK8AyACQciBEDYCuAMgAiACKAKwAzYC6AMgAkKGgICAEDcC4AMgBCACQbgDakEBEBkiA0H//wNxDQEgAkHYBmoQJCACLwHcBiIDDQECQEEHQQBBACACKALYBhADIgMNAEENIQMMAgsgBUEGIAMQASACQewDahAmIAIvAfADIgMNASACQYwEakIANwIAIAJBlARqQgA3AgAgAkIANwKEBCACQQI2AoAEIAJCj4CAgNAANwL4AyACQauBEDYC9AMgAiACKALsAzYCpAQgAkKHgICAEDcCnAQgBCACQfQDakEBEBkiA0H//wNxDQEgAkHYBmoQJiACLwHcBiIDDQECQEEIQQBBACACKALYBhADIgMNAEENIQMMAgsgBUEHIAMQASACQagEahAoIAIvAawEIgMNASACQcgEakIANwIAIAJB0ARqQgA3AgAgAkIANwLABCACQQI2ArwEIAJCjYCAgNAANwK0BCACQZSBEDYCsAQgAiACKAKoBDYC4AQgAkKIgICAEDcC2AQgBCACQbAEakEBEBkiA0H//wNxDQEgAkHYBmoQKCACLwHcBiIDDQECQEEJQQBBACACKALYBhADIgMNAEENIQMMAgsgBUEIIAMQASACQeQEahAmIAIvAegEIgMNASACQYQFakIANwIAIAJBjAVqQgA3AgAgAkIANwL8BCACQQI2AvgEIAJCj4CAgNAANwLwBCACQaGCEDYC7AQgAiACKALkBDYCnAUgAkKJgICAEDcClAUgBCACQewEakEBEBkiA0H//wNxDQEgAkHYBmoQJiACLwHcBiIDDQECQEEKQQBBACACKALYBhADIgMNAEENIQMMAgsgBUEJIAMQASACQaAFahAoIAIvAaQFIgMNASACQcAFakIANwIAIAJByAVqQgA3AgAgAkIANwK4BSACQQI2ArQFIAJCjYCAgNAANwKsBSACQYaBEDYCqAUgAiACKAKgBTYC2AUgAkKKgICAEDcC0AUgBCACQagFakEBEBkiA0H//wNxDQEgAkHYBmoQKCACLwHcBiIDDQECQEELQQBBACACKALYBhADIgMNAEENIQMMAgsgBUEKIAMQASACQdwFahAoIAIvAeAFIgMNASACQfwFakIANwIAIAJBhAZqQgA3AgAgAkIANwL0BSACQQI2AvAFIAJCjICAgNAANwLoBSACQfmAEDYC5AUgAiACKALcBTYClAYgAkKLgICAEDcCjAYgBCACQeQFakEBEBkiA0H//wNxDQEgAkHYBmoQKCACLwHcBiIDDQECQEEMQQBBACACKALYBhADIgMNAEENIQMMAgsgBUELIAMQASACQZgGahAoIAIvAZwGIgMNASACQbgGakIANwIAIAJBwAZqQgA3AgAgAkIANwKwBiACQQI2AqwGIAJCjYCAgNAANwKkBiACQbGCEDYCoAYgAiACKAKYBjYC0AYgAkKMgICAEDcCyAYgBCACQaAGakEBEBkiA0H//wNxDQEgAkHYBmoQKCACLwHcBiIDDQECQEENQQBB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IAFBwYEQNgLQBCAHIAFB0ARqQQAQGSICQf//A3ENBQJAQQBBNBAAIggNACABQoiAgIDABzcDyAUgAUIANwPABSABQYSABDYC4AUgAUKIgICAEDcD2AUgAUIANwPQBSABQvnpxO/k2+D0SjcDuAUgAUHsBWogAUG4BWoQFyABLwHwBSICDQZBAEE0IAEoAuwFIggQAQJAQQBBPxAAIgkNACABQomAgICgATcDuAYgAUIANwOwBiABQYSABDYC0AYgAULEgICAEDcDyAYgAUIANwPABiABQuHegrHzqJnkETcDqAYgAUHcBmogAUGoBmoQFyABLwHgBiICDQdBAEE/IAEoAtwGIgkQAQJAQQBBNRAAIgoNACABQQo2AqwHIAFCiICAgCA3AqQHIAFBh4IQNgKgByABQYSABDYCwAcgAULEgICAEDcDuAcgAUIANwOwByABQqmFsoPwwszpoH83A5gHIAFBzAdqIAFBmAdqEBcgAS8B0AciAg0IQQBBNSABKALMByIKEAEgAUHUB2oQPCABLwHYByICDQggASABKALUBzYCjAggAUKAgICAEDcChAggAULAgICAEDcC/AcgAUKAhICAEDcC9AcgAUKAgICAEDcC7AcgAUEBNgLoByABQoaAgIDQADcC4AcgAUG+gBA2AtwHIAogAUHcB2pBABAZIgJB//8DcQ0IIAFBkAhqEB0gAS8BlAgiAg0IIAEgASgCkAg2AsgIIAFCgYCAgBA3AsAIIAFChICAgBA3ArgIIAFCoICAgBA3ArAIIAFCgISAgBA3AqgIIAFBATYCpAggAUKKgICAMDcCnAggAUG3gxA2ApgIIAogAUGYCGpBABAZIgJB//8DcQ0IAkBBqIgQQcQAQQEQDyICDQAgAEEMOwEEDAwLIAIQBCICRQ0HIAogAkEAEAUCQAJAIAoQAiICDQBByIQQIQIMAQsgASACNgKYCCABQQA7AZwIIAFBmAhqIQILIAIvAQQiAg0IIAoQBgsgASAKNgKUByABQgA3AowHIAFCxICAgBA3AoQHIAFCoISAgBA3AvwGIAFCADcC9AYgAUIFNwLsBiABQgA3AuQGIAkgAUHkBmpBABAZIgJB//8DcQ0HAkACQCAJEAIiAg0AQciEECECDAELIAEgAjYCmAggAUEAOwGcCCABQZgIaiECCyACLwEEIgINByAJEAYLIAEgCTYCpAYgAUKAgICAEDcCnAYgAUKIgICAEDcClAYgAULAgICAEDcCjAYgAUIANwKEBiABQgU3AvwFIAFCADcC9AUgCCABQfQFakEAEBkiAkH//wNxDQYCQAJAIAgQAiICDQBByIQQIQIMAQsgASACNgKYCCABQQA7AZwIIAFBmAhqIQILIAIvAQQiAg0GIAgQBgsgASAINgK0BSABQoGAgIAQNwKsBSABQoiAgIAQNwKkBSABQsCAgIAQNwKcBSABQoCAgIAQNwKUBSABQQE2ApAFIAFCgYCAgNAANwKIBSABQb2EEDYChAUgByABQYQFakEAEBkiAkH//wNxDQUCQAJAIAcQAiICDQBByIQQIQIMAQsgASACNgKYCCABQQA7AZwIIAFBmAhqIQILIAIvAQQiAg0FIAcQBgsgASAHNgKMBCABQgA3AoQEIAFCiICAgBA3AvwDIAFCwICAgBA3AvQDIAFCADcC7AMgAUIFNwLkAyABQgA3AtwDIAYgAUHcA2pBABAZIgJB//8DcQ0EQQwhAkEPQQBBABAPIgdFDQQgBxAEIgdFDQMgBiAHQQAQBUEQQQBBABAPIgdFDQRBFSECIAcQBCIHRQ0EIAYgB0EBEAUCQAJAIAYQAiICDQBByIQQIQIMAQsgASACNgKYCCABQQA7AZwIIAFBmAhqIQILIAIvAQQiAg0EIAYQBgsgASAGNgKcAyABQoCAgIAQNwKUAyABQoSAgIAQNwKMAyABQqCAgIAQNwKEAyABQgA3AvwCIAFCBTcC9AIgAUIANwLsAiAFIAFB7AJqQQAQGSICQf//A3ENAwJAAkAgBRACIgINAEHIhBAhAgwBCyABIAI2ApgIIAFBADsBnAggAUGYCGohAgsgAi8BBCICDQMgBRAGCyABIAU2AqwCIAFCgYCAgBA3AqQCIAFChICAgBA3ApwCIAFCoICAgBA3ApQCIAFCgICAgBA3AowCIAFBATYCiAIgAUKBgICA0AA3AoACIAFBvYQQNgL8ASAEIAFB/AFqQQAQGSICQf//A3ENAgJAAkAgBBACIgINAEHIhBAhAgwBCyABIAI2ApgIIAFBADsBnAggAUGYCGohAgsgAi8BBCICDQIgBBAGCyABIAQ2AoQBIAFCADcCfCABQoSAgIAQNwJ0IAFCoICAgBA3AmwgAUIANwJkIAFCBTcCXCABQgA3AlQgAyABQdQAakEAEBkiAkH//wNxDQECQEERQQBBABAPIgINACAAQQw7AQQMBQsgAhAEIgINAgtBFSECCyAAIAI7AQQMAgsgAyACQQAQBQJAAkAgAxACIgINAEHIhBAhAgwBCyABIAI2ApgIIAFBADsBnAggAUGYCGohAgsCQCACLwEEIgJFDQAgACACOwEEDAILIAMQBiABIAM2AkggAUEAOwFMIAFByABqIQILIAAgAikDADcCAAsgAUHQCGokAAsLAEEAIAA2AoygEAuMAwEDfyMAQZABayIBJAACQAJAAkBBAEEqEAAiAkUNACABIAI2AgggAUEAOwEMIAFBCGohAgwBCyABQoCAgIAQNwMgIAFCADcDGCABQYSABDYCOCABQoSAgIAQNwMwIAFCADcDKCABQqOjoI3DtuOs6AA3AxAgAUHAAGogAUEQahAXAkAgAS8BRCICRQ0AIAAgAjsBBAwCC0EAQSogASgCQCICEAEgAUHQAGoQHQJAAkAgAS8BVCIDDQAgASABKAJQNgKIASABQgA3AoABIAFChICAgBA3AnggAUKggICAEDcCcCABQoCAgIAQNwJoIAFCAzcCYCABQgA3AlggAiABQdgAakEAEBkiA0H//wNxRQ0BCyAAIAM7AQQMAgsCQAJAIAIQAiIDDQBByIQQIQMMAQsgASADNgJYIAFBADsBXCABQdgAaiEDCwJAIAMvAQQiA0UNACAAIAM7AQQMAgsgAhAGIAEgAjYCSCABQQA7AUwgAUHIAGohAgsgACACKQMANwIACyABQZABaiQAC84HAQR/IwBB8AJrIgEkAAJAAkACQEEAQccAEAAiAkUNACABIAI2AgAgAUEAOwEEIAEhAgwBCyABQg43AxggAUIANwMQIAFBgIAENgIwIAFCgICAgBA3AyggAUKCgICAEDcDICABQor5sqeqj4G/zAA3AwggAUE4aiABQQhqEBcCQCABLwE8IgJFDQAgACACOwEEDAILQQBBxwAgASgCOCIDEAECQAJAAkBBAEHIABAAIgQNACABQgw3A5ABIAFCADcDiAEgAUGEgAQ2AqgBIAFCiICAgBA3A6ABIAFCgoCAgBA3A5gBIAFClfWUouT+1oM/NwOAASABQbABaiABQYABahAXIAEvAbQBIgINAUEAQcgAIAEoArABIgQQASABQbgBahA4IAEvAbwBIgINASABIAEoArgBNgLwASABQoCAgIAQNwLoASABQoCAgIAQNwLgASABQoCAgIAQNwLYASABQsCAgIAQNwLQASABQQE2AswBIAFCBjcCxAEgAUHBgRA2AsABIAQgAUHAAWpBABAZIgJB//8DcQ0BIAFB9AFqEB0gAS8B+AEiAg0BIAEgASgC9AE2AqwCIAFCgYCAgBA3AqQCIAFChICAgBA3ApwCIAFCoICAgBA3ApQCIAFCgICAgBA3AowCIAFBATYCiAIgAUKBgICAMDcCgAIgAUG9hBA2AvwBIAQgAUH8AWpBABAZIgJB//8DcQ0BIAFBsAJqEB0gAS8BtAIiAg0BIAEgASgCsAI2AugCIAFCgoCAgBA3AuACIAFChICAgBA3AtgCIAFCoICAgBA3AtACIAFCoICAgBA3AsgCIAFBATYCxAIgAUKBgICAMDcCvAIgAUG7hBA2ArgCIAQgAUG4AmpBABAZIgJB//8DcQ0BAkACQCAEEAIiAg0AQciEECECDAELIAEgAjYCuAIgAUEAOwG8AiABQbgCaiECCyACLwEEIgINASAEEAYLIAEgBDYCfCABQgA3AnQgAUKIgICAEDcCbCABQsCAgIAQNwJkIAFCADcCXCABQgU3AlQgAUIANwJMIAMgAUHMAGpBABAZIgJB//8DcQ0AAkBBEkEAQQAQDyICDQAgAEEMOwEEDAQLIAIQBCICDQFBFSECCyAAIAI7AQQMAgsgAyACQQAQBQJAAkAgAxACIgINAEHIhBAhAgwBCyABIAI2ArgCIAFBADsBvAIgAUG4AmohAgsCQCACLwEEIgJFDQAgACACOwEEDAILIAMQBiABIAM2AkAgAUEAOwFEIAFBwABqIQILIAAgAikDADcCAAsgAUHwAmokAAs0AEEAQgA3AsifEEEAIAE2AsSfEEEAIAA2AsCfEEEAQQApA/CIEDcC1J8QQQBBADYC0J8QC9MHAQR/IwBB8AJrIgEkAAJAAkACQEEAQcoAEAAiAkUNACABIAI2AgAgAUEAOwEEIAEhAgwBCyABQg43AxggAUIANwMQIAFBgIAENgIwIAFCgICAgBA3AyggAUKCgICAEDcDICABQvH2oIqfxs27DjcDCCABQThqIAFBCGoQFwJAIAEvATwiAkUNACAAIAI7AQQMAgtBAEHKACABKAI4IgMQAQJAAkACQEEAQcsAEAAiBA0AIAFCjICAgKABNwOQASABQgA3A4gBIAFBhIAENgKoASABQsSAgIAQNwOgASABQoKAgIAQNwOYASABQtH+5IvI57mxRzcDgAEgAUGwAWogAUGAAWoQFyABLwG0ASICDQFBAEHLACABKAKwASIEEAEgAUG4AWoQOCABLwG8ASICDQEgASABKAK4ATYC8AEgAUKAgICAEDcC6AEgAUKAgICAEDcC4AEgAUKAgICAEDcC2AEgAUKghICAEDcC0AEgAUEBNgLMASABQgY3AsQBIAFBwYEQNgLAASAEIAFBwAFqQQAQGSICQf//A3ENASABQfQBahA8IAEvAfgBIgINASABIAEoAvQBNgKsAiABQoGAgIAQNwKkAiABQsCAgIAQNwKcAiABQoCEgIAQNwKUAiABQoCAgIAQNwKMAiABQQE2AogCIAFCgYCAgNAANwKAAiABQb2EEDYC/AEgBCABQfwBakEAEBkiAkH//wNxDQEgAUGwAmoQHSABLwG0AiICDQEgASABKAKwAjYC6AIgAUKCgICAEDcC4AIgAUKEgICAEDcC2AIgAUKggICAEDcC0AIgAUKAhICAEDcCyAIgAUEBNgLEAiABQoGAgIAwNwK8AiABQbuEEDYCuAIgBCABQbgCakEAEBkiAkH//wNxDQECQAJAIAQQAiICDQBByIQQIQIMAQsgASACNgK4AiABQQA7AbwCIAFBuAJqIQILIAIvAQQiAg0BIAQQBgsgASAENgJ8IAFCADcCdCABQsSAgIAQNwJsIAFCoISAgBA3AmQgAUIANwJcIAFCBTcCVCABQgA3AkwgAyABQcwAakEAEBkiAkH//wNxDQACQEETQQBBABAPIgINACAAQQw7AQQMBAsgAhAEIgINAUEVIQILIAAgAjsBBAwCCyADIAJBABAFAkACQCADEAIiAg0AQciEECECDAELIAEgAjYCuAIgAUEAOwG8AiABQbgCaiECCwJAIAIvAQQiAkUNACAAIAI7AQQMAgsgAxAGIAEgAzYCQCABQQA7AUQgAUHAAGohAgsgACACKQMANwIACyABQfACaiQAC+0JAwN/AX4JfyMAQZABayICJAAgAkHIAGpBCGogAEEIaikCADcDACACQcgAakEQaiAAQRBqKQIANwMAIAJByABqQRhqIABBGGopAgA3AwAgAkHIAGpBIGogAEEgaikCADcDACACQcgAakEoaiAAQShqKQIANwMAIAJByABqQTBqIABBMGopAgA3AwAgAkHIAGpBOGogAEE4aikCADcDACACIAApAgA3A0hBACgC8J8QIQMCQAJAAkACQEEAKALQnxANAEEBIQACQEEAKALInxAiBEUNACAEQXxqKAIArULQAH4iBSAFQuQAgn1C5AB8QtAAgKchAAtCAUEgIABna61C//8Dg4anEDNB//8DcQ0BCyACQRhqIAOtQoGAgIAQfiIFQtvR0IWa2t+BZ4VCACAFQqya4tOj0vD6H4VCABCYASACQQhqIAJBGGpBCGopAwBC29HQhZra34FnhUIAIAIpAxhCq8j1xcesh7ugf4VCABCYASACQQhqQQhqKQMAIAIpAwiFIQUCQAJAQQAoAsifECIGDQAgBachBEEAIQdBfyEIDAELIAZBfGooAgAiB0F/aiIIIAWncSEECyAFQjmIpyEJAkACQCAGIARqIgotAAAiAEUNACAHRQ0AIAdBf2ohCyAGQXhqIQwgBkF8aiENA0AgCyEOAkACQAJAIADAQX9KDQAgCSAAQf8AcUcNACAMKAIAIARBAnRqIgsoAgAgA0YNAQwCCyAHIA0oAgBHDQEgBCAHIABB/wFxQQFGGyEHDAELIAJBAToAjAEgBkF0aigCACAEQcgAbGohACACQYwBaiEEDAMLIAYgBEEBaiAIcSIEaiIKLQAAIgBFDQEgDkF/aiELIA4NAAsLIAZBfGooAgAhAEEAQQAoAtCfEEF/ajYC0J8QIAYgB2ogCiAHIABJIgAbIAlBgAFyOgAAQQAoAsifECIOQXhqKAIAIQsgDkF0aigCACEOQQBBACgCzJ8QQQFqNgLMnxAgAkEAOgCMASAOIAcgBCAAGyIEQcgAbGohACALIARBAnRqIQsgAkGMAWohBAsgBC0AAEEBcQ0CDAELIAJBOGogA61CgYCAgBB+IgVC29HQhZra34FnhUIAIAVCrJri06PS8PofhUIAEJgBIAJBKGogAkE4akEIaikDAELb0dCFmtrfgWeFQgAgAikDOEKryPXFx6yHu6B/hUIAEJgBIAJBKGpBCGopAwAgAikDKIUhBUF/IQYCQEEAKALInxAiDkUNACAOQXxqKAIAQX9qIQYLIAVCOYinIQcgDiAGIAWncSIEai0AACEAIA5BeGooAgAhCgNAAkAgAMBBf0oNACAHIABB/wBxRw0AIAogBEECdGoiCygCACADRw0AIAJBAToAiAEgDkF0aigCACAEQcgAbGohAEEBRQ0CDAMLIA4gBEEBaiAGcSIEai0AACEADAALCyALIAM2AgALIAAgAzYCACAAIAE2AkQgACACKQNINwIEIABBDGogAkHQAGopAwA3AgAgAEEUaiACQdgAaikDADcCACAAQRxqIAJB4ABqKQMANwIAIABBJGogAkHoAGopAwA3AgAgAEEsaiACQfAAaikDADcCACAAQTRqIAJB+ABqKQMANwIAIABBPGogAkGAAWopAwA3AgBBAEEAKALwnxBBAWo2AvCfECACQZABaiQAC9QHAQR/IwBB8AJrIgEkAAJAAkACQEEAQc0AEAAiAkUNACABIAI2AgAgAUEAOwEEIAEhAgwBCyABQg43AxggAUIANwMQIAFBgIAENgIwIAFCgICAgBA3AyggAUKCgICAEDcDICABQqzst86q5bTYtn83AwggAUE4aiABQQhqEBcCQCABLwE8IgJFDQAgACACOwEEDAILQQBBzQAgASgCOCIDEAECQAJAAkBBAEHOABAAIgQNACABQoyAgICgATcDkAEgAUIANwOIASABQYSABDYCqAEgAULEgICAEDcDoAEgAUKCgICAEDcDmAEgAULRrPX+lori7Gs3A4ABIAFBsAFqIAFBgAFqEBcgAS8BtAEiAg0BQQBBzgAgASgCsAEiBBABIAFBuAFqEDggAS8BvAEiAg0BIAEgASgCuAE2AvABIAFCgICAgBA3AugBIAFCgICAgBA3AuABIAFCgICAgBA3AtgBIAFCoISAgBA3AtABIAFBATYCzAEgAUIGNwLEASABQcGBEDYCwAEgBCABQcABakEAEBkiAkH//wNxDQEgAUH0AWoQHSABLwH4ASICDQEgASABKAL0ATYCrAIgAUKBgICAEDcCpAIgAUKEgICAEDcCnAIgAUKggICAEDcClAIgAUKAgICAEDcCjAIgAUEBNgKIAiABQoGAgIAwNwKAAiABQb2EEDYC/AEgBCABQfwBakEAEBkiAkH//wNxDQEgAUGwAmoQPCABLwG0AiICDQEgASABKAKwAjYC6AIgAUKCgICAEDcC4AIgAULAgICAEDcC2AIgAUKAhICAEDcC0AIgAUKggICAEDcCyAIgAUEBNgLEAiABQoGAgIDQADcCvAIgAUG7hBA2ArgCIAQgAUG4AmpBABAZIgJB//8DcQ0BAkACQCAEEAIiAg0AQciEECECDAELIAEgAjYCuAIgAUEAOwG8AiABQbgCaiECCyACLwEEIgINASAEEAYLIAEgBDYCfCABQgA3AnQgAULEgICAEDcCbCABQqCEgIAQNwJkIAFCADcCXCABQgU3AlQgAUIANwJMIAMgAUHMAGpBABAZIgJB//8DcQ0AAkBBFEEAQQAQDyICDQAgAEEMOwEEDAQLIAIQBCICDQFBFSECCyAAIAI7AQQMAgsgAyACQQAQBQJAAkAgAxACIgINAEHIhBAhAgwBCyABIAI2ArgCIAFBADsBvAIgAUG4AmohAgsCQCACLwEEIgJFDQAgACACOwEEDAILIAMQBiABIAM2AkAgAUEAOwFEIAFBwABqIQILIAAgAikDADcCAAsgAUHwAmokAAv/AgMBfwF+Bn8jAEEgayICJAAgAkEQaiAArUKBgICAEH4iA0Lb0dCFmtrfgWeFQgAgA0KsmuLTo9Lw+h+FQgAQmAEgAiACQRBqQQhqKQMAQtvR0IWa2t+BZ4VCACACKQMQQqvI9cXHrIe7oH+FQgAQmAEgAkEIaikDACACKQMAhSEDQX8hBAJAQQAoAsifECIFRQ0AIAVBfGooAgBBf2ohBAsgA0I5iKchBiAFIAQgA6dxIgdqLQAAIQggBUF4aigCACEJA0ACQCAIwEF/Sg0AIAYgCEH/AHFHDQAgCSAHQQJ0aigCACAARw0AIAVBdGooAgAgB0HIAGxqIgggASkCADcCBCAIQQxqIAFBCGopAgA3AgAgCEEcaiABQRhqKQIANwIAIAggASkCEDcCFCAIIAEpAiA3AiQgCEEsaiABQShqKQIANwIAIAggASkCMDcCNCAIQTxqIAFBOGopAgA3AgAgAkEgaiQADwsgBSAHQQFqIARxIgdqLQAAIQgMAAsL0wYBBH8jAEHAAmsiASQAAkACQAJAQQBB0AAQACICRQ0AIAEgAjYCCCABQQA7AQwgAUEIaiECDAELIAFCDjcDICABQgA3AxggAUGAgAQ2AjggAUKAgICAEDcDMCABQoGAgIAQNwMoIAFC5uu/y5y0kbeVfzcDECABQcAAaiABQRBqEBcCQCABLwFEIgJFDQAgACACOwEEDAILQQBB0AAgASgCQCIDEAECQAJAAkBBAEHRABAAIgINACABQgw3A5gBIAFCADcDkAEgAUGEgAQ2ArABIAFChICAgBA3A6gBIAFCgYCAgBA3A6ABIAFCvsz8jYSRmLLjADcDiAEgAUG8AWogAUGIAWoQFyABLwHAASIEDQFBAEHRACABKAK8ASICEAEgAUHEAWoQOCABLwHIASIEDQEgASABKALEATYC/AEgAUKAgICAEDcC9AEgAUKAgICAEDcC7AEgAUKAgICAEDcC5AEgAUKggICAEDcC3AEgAUEBNgLYASABQgY3AtABIAFBwYEQNgLMASACIAFBzAFqQQAQGSIEQf//A3ENASABQYACahAdIAEvAYQCIgQNASABIAEoAoACNgK4AiABQoGAgIAQNwKwAiABQoSAgIAQNwKoAiABQqCAgIAQNwKgAiABQoCAgIAQNwKYAiABQQE2ApQCIAFCgYCAgDA3AowCIAFBvYQQNgKIAiACIAFBiAJqQQAQGSIEQf//A3ENAQJAAkAgAhACIgQNAEHIhBAhBAwBCyABIAQ2AogCIAFBADsBjAIgAUGIAmohBAsgBC8BBCIEDQEgAhAGCyABIAI2AoQBIAFCADcCfCABQoSAgIAQNwJ0IAFCoICAgBA3AmwgAUIANwJkIAFCBTcCXCABQgA3AlQgAyABQdQAakEAEBkiBEH//wNxDQACQEEVQQBBABAPIgINACAAQQw7AQQMBAsgAhAEIgINAUEVIQQLIAAgBDsBBAwCCyADIAJBABAFAkACQCADEAIiAg0AQciEECECDAELIAEgAjYCiAIgAUEAOwGMAiABQYgCaiECCwJAIAIvAQQiAkUNACAAIAI7AQQMAgsgAxAGIAEgAzYCSCABQQA7AUwgAUHIAGohAgsgACACKQMANwIACyABQcACaiQACx0AAkBBAC0A7J8QQQNxQQJGDQBBACAANgLcnxALC9EHAQR/IwBB8AJrIgEkAAJAAkACQEEAQdMAEAAiAkUNACABIAI2AgAgAUEAOwEEIAEhAgwBCyABQg43AxggAUIANwMQIAFBgIAENgIwIAFCgICAgBA3AyggAUKCgICAEDcDICABQqC206TgrrDd4wA3AwggAUE4aiABQQhqEBcCQCABLwE8IgJFDQAgACACOwEEDAILQQBB0wAgASgCOCIDEAECQAJAAkBB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wD83AgggBEEUaikCACEFIAAgBEEcaikCADcCKCAAIAU3AhggAEKAgICAgICAwD83AiAgBEEkaiIGKQIAIQUgACAEQSxqIgcpAgA3AkAgACAFNwIwIABCgICAgICAgMA/NwI4IAYpAgAhBSAAIAcpAgA3AlggACAFNwJIIABCgICAgICAgMA/NwJQIARBNGopAgAhBSAAIARBPGopAgA3AnAgACAFNwJgIABCgICAgICAgMA/NwJoIAEpAgAhBSAAIAMpAgA3AogBIAAgBTcCeCAAQoCAgICAgIDAPzcCgAEgAEEkIARBxABqKAIAQQAoAoigECgCABECACACQQFqIQJBACgCyJ8QIgENAAsLIABCqtWq1Qo3ApABIABBADYCmAEgAEEAKQPwiBA3ApwBAkBBACgC3J8QIgJBACgC4J8QRg0AIABBpAFqIAIQNCAALQDsAUUNACAAQfABaiAAQaQBakHIAPwKAAAgAEHwAmogAEHgAWopAgA3AwAgAEG4AmpBMGogAEHYAWopAgA3AwAgAEHgAmogAEHQAWopAgA3AwAgAEHYAmogAEHIAWopAgA3AwAgAEG4AmpBGGogAEHAAWopAgA3AwAgAEG4AmpBEGogAEGkAWpBFGopAgA3AwAgAEG4AmpBCGogAEGwAWopAgA3AwAgACAAKQKoATcDuAIgAEHwAWpBCGohByAAQfABakEEaiEIQQAhAgNAIAcgAEHwAWogAmoiBEEYaiACQTBGIgEbIgMqAgAgAEG4AmogAmoiBkEEaioCACIJkyAIIARBFGogARsiBCoCACAGKgIAIgqTEDAhCyAAQoCAgICAgIDAPzcCtAQgAEKAgID8AzcCrAQgAEKAgICAgICAwD83AqQEIABCgICAgICAgMA/NwKUBCAAQoCAgPwDNwKMBCAAQoCAgICAgIDAPzcChAQgAEKAgICAgICAwD83AvQDIABCgICA/AM3AuwDIABCgICAgICAgMA/NwLkAyAAQoCAgICAgIDAPzcC1AMgAEKAgID8AzcCzAMgAEKAgICAgICAwD83AsQDIABCgICAgICAgMA/NwK0AyAAQoCAgPwDNwKsAyAAQoCAgICAgIDAPzcCpAMgAEKAgICAgICAwD83ApQDIABCgICA/AM3AowDIABCgICAgICAgMA/NwKEAyALEKABIQwgAyoCACENIAAg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aiABQRBqKQIANwMAIAJBCGpBCGogAUEIaikCADcDACACIAEpAgA3AwggAiABKAJAIgE2AkggAkEIaiABIAARAQAgAkHQAGokAEEAC78BAQJ/IwBB0ABrIgIkACACQQxqQQxqIAFBDGopAgA3AgAgAkEMakEUaiABQRRqKQIANwIAIAJBDGpBHGogAUEcaikCADcCACACQQxqQSRqIAFBJGopAgA3AgAgAkEMakEsaiABQSxqKQIANwIAIAJBDGpBNGogAUE0aikCADcCACACQQxqQTxqIAFBPGopAgA3AgAgAiABKAIAIgM2AgwgAiABKQIENwIQIAMgAkEQaiAAEQEAIAJB0ABqJABBAAsOACABKAIAIAARBQBBAAuMAwEDfyMAQZABayIBJAACQAJAAkBBAEElEAAiAkUNACABIAI2AgggAUEAOwEMIAFBCGohAgwBCyABQoCAgIAQNwMgIAFCADcDGCABQYSABDYCOCABQoSAgIAQNwMwIAFCADcDKCABQtHalL7p197z4QA3AxAgAUHAAGogAUEQahAXAkAgAS8BRCICRQ0AIAAgAjsBBAwCC0EAQSUgASgCQCICEAEgAUHQAGoQRAJAAkAgAS8BVCIDDQAgASABKAJQNgKIASABQgA3AoABIAFChICAgBA3AnggAUKggICAEDcCcCABQoCAgIAQNwJoIAFCBDcCYCABQgA3AlggAiABQdgAakEAEBkiA0H//wNxRQ0BCyAAIAM7AQQMAgsCQAJAIAIQAiIDDQBByIQQIQMMAQsgASADNgJYIAFBADsBXCABQdgAaiEDCwJAIAMvAQQiA0UNACAAIAM7AQQMAgsgAhAGIAEgAjYCSCABQQA7AUwgAUHIAGohAgsgACACKQMANwIACyABQZABaiQACxMAIAEqAgAgASoCBCAAEQYAQQALCQAgABEHAEEAC/0KAQR/IwBBwAJrIgEkAAJAAkACQEEAQTcQACICRQ0AIAEgAjYCACABQQA7AQQgASECDAELIAFBADYCHCABQoeAgIAgNwIUIAFBoYQQNgIQIAFBhIAENgIwIAFCkICAgBA3AyggAUIANwMgIAFCgvqcjer48LudfzcDCCABQThqIAFBCGoQFwJAIAEvATwiAkUNACAAIAI7AQQMAgtBAEE3IAEoAjgiAxABIAFBzABqEEQCQAJAIAEvAVAiAg0AIAEgASgCTDYChAEgAUKAgICAEDcCfCABQoSAgIAQNwJ0IAFCoICAgBA3AmwgAUKAgICAEDcCZCABQQE2AmAgAUKBgICAwAA3AlggAUGWgBA2AlQgAyABQdQAakEAEBkiAkH//wNxDQAgAUGIAWoQRCABLwGMASICDQAgASABKAKIATYCwAEgAUKBgICAEDcCuAEgAUKEgICAEDcCsAEgAUKggICAEDcCqAEgAUKggICAEDcCoAEgAUEBNgKcASABQoGAgIDAADcClAEgAUGQgBA2ApABIAMgAUGQAWpBABAZIgJB//8DcQ0AIAFBxAFqEEQgAS8ByAEiAg0AIAEgASgCxAE2AvwBIAFCgoCAgBA3AvQBIAFChICAgBA3AuwBIAFCoICAgBA3AuQBIAFCwICAgBA3AtwBIAFBATYC2AEgAUKBgICAwAA3AtABIAFBmoAQNgLMASADIAFBzAFqQQAQGSICQf//A3ENACABQYACahBEIAEvAYQCIgINACABIAEoAoACNgK4AiABQoOAgIAQNwKwAiABQoSAgIAQNwKoAiABQqCAgIAQNwKgAiABQuCAgIAQNwKYAiABQQE2ApQCIAFCgYCAgMAANwKMAiABQZiAEDYCiAIgAyABQYgCakEAEBkiAkH//wNxDQACQEHAhhBBEEEBEA8iAg0AIABBDDsBBAwECyACEAQiAg0BQRUhAgsgACACOwEEDAILIAMgAkEAEAUCQAJAIAMQAiICDQBByIQQIQIMAQsgASACNgKIAiABQQA7AYwCIAFBiAJqIQILAkAgAi8BBCICRQ0AIAAgAjsBBAwCCyABQYgBahBIAkACQCABLwGMASICDQAgAUGoAWpCADcCACABQbABakIANwIAIAFCADcCoAEgAUESNgKcASABQoOAgIDQADcClAEgAUGzgxA2ApABIAEgASgCiAE2AsABIAFCgICAgBA3ArgBIAMgAUGQAWpBARAZIgJB//8DcQ0AIAFB1ABqEEggAS8BWCICDQACQEEsQQBBACABKAJUEAMiAkUNAAJAQQAQBCIEDQAgAEEVOwEEDAULIARBACACEAEgAUHEAWoQSSABLwHIASICDQEgAUHkAWpCADcCACABQewBakIANwIAIAFCADcC3AEgAUESNgLYASABQoiAgIDQADcC0AEgAUGigRA2AswBIAEgASgC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ACACOwEEDAILIAMQBiABIAM2AkAgAUEAOwFEIAFBwABqIQILIAAgAikDADcCAAsgAUHwAmokAAuWBQEEfyMAQYACayIBJAACQAJAAkBBAEEkEAAiAkUNACABIAI2AgggAUEAOwEMIAFBCGohAgwBCyABQoiAgIDAFzcDICABQgA3AxggAUGEgAQ2AjggAUKIgICAEDcDMCABQgA3AyggAUKulIrRn4aOp3w3AxAgAUHAAGogAUEQahAXAkAgAS8BRCICRQ0AIAAgAjsBBAwCC0EAQSQgASgCQCICEAECQAJAAkBBAEEmEAAiAw0AIAFCiYCAgIAINwOYASABQgA3A5ABIAFBhIAENgKwASABQoSAgIAQNwOoASABQgA3A6ABIAFClMqWwcnOuYmSfzcDiAEgAUG4AWogAUGIAWoQFyABLwG8ASIEDQFBAEEmIAEoArgBIgMQASABQcABahBEIAEvAcQBIgQNASABIAEoAsABNgL4ASABQgA3AvABIAFChICAgBA3AugBIAFCoICAgBA3AuABIAFCADcC2AEgAUIENwLQASABQgA3AsgBIAMgAUHIAWpBABAZIgRB//8DcQ0BAkACQCADEAIiBA0AQciEECEEDAELIAEgBDYCyAEgAUEAOwHMASABQcgBaiEECyAELwEEIgQNASADEAYLIAEgAzYChAEgAUKAgICAEDcCfCABQoiAgIAQNwJ0IAFCwICAgBA3AmwgAUIANwJkIAFCBTcCXCABQgA3AlQgAiABQdQAakEAEBkiBEH//wNxRQ0BCyAAIAQ7AQQMAgsCQAJAIAIQAiIDDQBByIQQIQMMAQsgASADNgLIASABQQA7AcwBIAFByAFqIQMLAkAgAy8BBCIDRQ0AIAAgAzsBBAwCCyACEAYgASACNgJIIAFBADsBTCABQcgAaiECCyAAIAIpAwA3AgALIAFBgAJqJAALGAAgASgCACABKAIEIAEoAgggABECAEEAC4wGAQJ/IwBBEGsiBCQAAkACQAJAIAINAAJAQQAoAtCgEA0AQdCgECECQQAhBQwCCwJAQQAoAtSgEA0AQdSgECECQQEhBQwCCwJAQQAoAtigEA0AQdigECECQQIhBQwCCwJAQQAoAtygEA0AQdygECECQQMhBQwCCwJAQQAoAuCgEA0AQeCgECECQQQhBQwCCwJAQQAoAuSgEA0A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QTBqJABBAAtbAQF/IwBBIGsiAiQAIAJBCGogAUEMaikCADcDACACQRhqIAFBHGopAgA3AwAgAiABKQIENwMAIAIgASkCFDcDECABIAIgAkEQaiAAEQgAOAIAIAJBIGokAEEAC4cBAQF/IwBBEGsiAyQAIAMgATYCBCADIAA2AgBBACEBAkBBAC0A0KEQDQAgA0F/NgIIIAMgA0EIajYCDCADQQhqIQELAkACQAJAAkAgAiADQQggARAQQX9qDgMCAAEDC0H4gxBBIhCCAQALQd2DEEEaEIIBAAtBwoMQQRoQggEACyADQRBqJAALEgAgACABIAJBACgC0KAQEIMBCxIAIAAgASACQQAoAtSgEBCDAQsSACAAIAEgAkEAKALYoBAQgwELEgAgACABIAJBACgC3KAQEIMBCxIAIAAgASACQQAoAuCgEBCDAQsSACAAIAEgAkEAKALkoBAQgwELEgAgACABIAJBACgC6KAQEIMBCxIAIAAgASACQQAoAuygEBCDAQsSACAAIAEgAkEAKALwoBAQgwELEgAgACABIAJBACgC9KAQEIMBCxIAIAAgASACQQAoAvigEBCDAQsSACAAIAEgAkEAKAL8oBAQgwELEgAgACABIAJBACgCgKEQEIMBCxIAIAAgASACQQAoAoShEBCDAQsSACAAIAEgAkEAKAKIoRAQgwELEgAgACABIAJBACgCjKEQEIMBCxAAIAAgAUEAKAKQoRAQhAELEAAgACABQQAoApShEBCEAQsQACAAIAFBACgCmKEQEIQBCxAAIAAgAUEAKAKcoRAQhAELEAAgACABQQAoAqChEBCEAQsQACAAIAFBACgCpKEQEIQBCxAAIAAgAUEAKAKooRAQhAELEAAgACABQQAoAqyhEBCEAQsQACAAIAFBACgCsKEQEIQBCxAAIAAgAUEAKAK0oRAQhAELEAAgACABQQAoArihEBCEAQsQACAAIAFBACgCvKEQEIQBCxAAIAAgAUEAKALAoRAQhAELEAAgACABQQAoAsShEBCEAQsQACAAIAFBACgCyKEQEIQBCxAAIAAgAUEAKALMoRAQhAELCgAgACABEIUBAAuRAQEBfyMAQSBrIgQkACAEIAI2AhQgBCABNgIQIAQgADYCDEEAIQICQEEALQDQoRANACAEQX82AhggBCAEQRhqNgIcIARBGGohAgsC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IAcgBEkbIgRBASADdCIDIAQgA0sbIQQCQAJAAkBCAUEgIAJBBGoiAiADIAIgA0sbIgNBf2pna61C//8Dg4anIgJoQX1qQQxLDQAgBEF/amciA0UNASACQgFBICADa61C//8Dg4anRw0BDAILQgFBICADQYOABGpBEHZBf2pna61C//8Dg4anQgFBICAEQYOABGpBEHZBf2pna61C//8Dg4anRg0BC0EAIQELIAZBEGokACABC7YBAQJ/IwBBEGsiBSQAIAUgA0EfcToADwJAAkBCAUEgIAJBBGoiAkEBIAN0IgMgAiADSxsiA0F/amdrrUL//wODhqciAmhBfWoiBkENTw0AIAZBAnRBgKIQaiEDIAEgAmpBfGohAgwBC0IBQSAgA0GDgARqQRB2QX9qZ2utQv//A4OGpyICaEECdEHoohBqIQMgASACQRB0akF8aiECCyACIAMoAgA2AgAgAyABNgIAIAVBEGokAAt1AQF+IAAgBCABfiACIAN+fCADQiCIIgIgAUIgiCIEfnwgA0L/////D4MiAyABQv////8PgyIBfiIFQiCIIAMgBH58IgNCIIh8IANC/////w+DIAIgAX58IgFCIIh8NwMIIAAgAUIghiAFQv////8Pg4Q3AwAL1AICA34CfwJAAkACQCAAIABiDQAgAL0iAkL///////////8Ag0KAgICAgICA+P8AWg0AIAJCgICAgICAgICAf4MhA0ELIAJCAYYiBHmnayAEQjWIpyAEQoCAgICAgIAQVBshBQJAIAFBAEgNAEH+DyAFayABSA0CAkAgBSABaiIGQQFODQAgAiABQT9xrYYgA4S/DwsCQCAFQQBKDQAgAkEBIAVrrYZC/////////weDIAatQjSGhCADhL8PCyABrUI0hiACfL8PC0EAIAFrIQZBACAFayABSA0CAkBBTCAFayABTA0AIAO/DwsgBUEASq1CNIYgAkL/////////B4OEIAZBASAFIAFqayIBIAYgAUgbQX9qQT9xrSIEiEIBfEIBiCACeiAEUa1Cf4WDIAOEvyEACyAADwsgA0KAgICAgICA+P8AhL8PCyACIAatQjSGfb8LlgkDA38BfQN8IwBBEGsiASQAAkACQCAAvCICQf////8HcSIDQdqfpPoDSw0AQwAAgD8hBCADQYCAgMwDSQ0BIAC7IgUgBaIiBUSB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BUGQA2ogBiAOakEDdGorAwCioCERCyAFQfABaiADQQN0aiAROQMAIAhBeGohCCAOQX9qIQIgDkEASg0ACwsCQAJAIARFDQACQAJAIA1BAE4NAEQAAAAAAAAAACERDAELAkACQCANQQFqQQNxIgcNAEQAAAAAAAAAACERIA0hBgwBCyAFQfABaiANQQN0aiECRAAAAAAAAAAAIREgDSEGA0AgBkF/aiEGIBEgAisDAKAhESACQXhqIQIgB0F/aiIHDQALCyANQQNJDQAgBkEBaiEHIAZBA3QgBUHwAWpqQWhqIQIDQCARIAJBGGorAwCgIAJBEGorAwCgIAJBCGorAwCgIAIrAwCgIREgAkFgaiECIAdBfGoiBw0ACwsgASARmiARIBMbOQMAIAUrA/ABIBGhIRFBASECAkAgDUEBSA0AIA1BA3EhBgJAIA1BBEkNACANQfz///8HcSEIIAVB8AFqQSBqIQJBACEHA0AgESACQWhqKwMAoCACQXBqKwMAoCACQXhqKwMAoCACKwMAoCERIAJBIGohAiAIIAdBBGoiB0cNAAsgB0EBaiECCyAGRQ0AIAVB8AFqIAJBA3RqIQIDQCARIAIrAwCgIREgAkEIaiECIAZBf2oiBg0ACwsgASARmiARIBMbOQMIDAELAkACQCANQQBODQBEAAAAAAAAAAAhEQwBCwJAAkAgDUEBakEDcSIHDQBEAAAAAAAAAAAhESANIQYMAQsgBUHwAWogDUEDdGohAkQAAAAAAAAAACERIA0hBgNAIAZBf2ohBiARIAIrAwCgIREgAkF4aiECIAdBf2oiBw0ACwsgDUEDSQ0AIAZBAWohByAGQQN0IAVB8AFqakFoaiECA0AgESACQRhqKwMAoCACQRBqKwMAoCACQQhqKwMAoCACKwMAoCERIAJBYGohAiAHQXxqIgcNAAsLIAEgEZogESATGzkDAAsgBUGwBGokACAfQQdxC+YIAwN+BX8CfAJAAkACQCAAvSIDQv///////////wCDQv/////////3/wBWDQAgAb0iBEL///////////8Ag0KAgICAgICA+P8AVA0BCyAAIAGiIAKgIQIMAQsgAr0iBUL///////////8Ag0L/////////9/8AVg0AAkACQCAARAAAAAAAAAAAYQ0AIAFEAAAAAAAAAABiDQELIAAgAaIgAqAPCwJAIAJEAAAAAAAAAABiDQAgACABog8LQQAhBgJAAkAgA0I0iKciB0H/D3EiCEH/D0cNAEEAIQcMAQsCQAJAIAgNACADQv////////8Hg1BFDQFBACEHDAILIANC/////////4eAf4NCgICAgICAgPA/hCEDIAdB/w9xQYJ4aiEHDAELIANCgICAgICAgICAf4NCACADIANCDIZ5pyIIQQFqrYZC/////////weDIAhBP3FBMksbhEKAgICAgICA8D+EIQNBgnggCGshBwsCQCAEQjSIpyIJQf8PcSIIQf8PRg0AAkAgCA0AIARC/////////weDUA0BIARCgICAgICAgICAf4NCACAEIARCDIZ5pyIGQQFqrYZC/////////weDIAZBP3FBMksbhEKAgICAgICA8D+EIQRBgnggBmshBgwBCyAEQv////////+HgH+DQoCAgICAgIDwP4QhBCAJQf8PcUGCeGohBgtBACEIAkAgBUI0iKciCkH/D3EiCUH/D0YNAAJAIAkNACAFQv////////8Hg1ANASAFQoCAgICAgICAgH+DQgAgBSAFQgyGeaciCEEBaq2GQv////////8HgyAIQT9xQTJLG4RCgICAgICAgPA/hCEFQYJ4IAhrIQgMAQsgBUL/////////h4B/g0KAgICAgICA8D+EIQUgCkH/D3FBgnhqIQgLIAO/IQIgBL8hAAJAAkAgBiAHaiIGIAhrIghB6wBODQAgBb9BACAIaxCZASELDAELIAVCgICAgICAgICAf4NCgICAgICAgAiEvyELCyACIAJEAAAAAgAAoEGiIgEgAiABoaAiAaEiDCAAIABEAAAAAgAAoEGiIgIgACACoaAiAqEiAKIgDCACoiABIACioCIAIAEgAqIiAiACIACgIgChoKAhAQJAIAAgC6AiAkQAAAAAAAAAAGINACACIAEgBhCZAaAPCwJAIAEgASALIAIgAKEiDKEgACACIAyhoaAiC6AiACALoSIMoSALIAAgDKGhoCIBRAAAAAAAAAAAYQ0AIAC9IgOnQQFxDQAgA0IBhCABvSADhUI+iH2/IQALAkACQAJAIAK9Qv///////////wCDIgNCNIinIghB/w9GDQAgCA0BAkAgA1BFDQBBgICAgHghCAwDC0GNeCADeadrIQgMAgtBgICAgHhB/////wcgA0KA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"),e=new Uint8Array(A.length);for(let t=0;t<A.length;t++)e[t]=A.charCodeAt(t);return await new Promise((A=>setTimeout(A,0))),e.buffer})();WA.loadModule(XA,{memoryInitial:5,tableInitial:89,multithreaded:!1}),WA.linkVariables(!1);const{constructor:_A}=ZA,$A=WA.getSpecialExports(),{connect_web_gpu_programs:Ae,connect_on_asset_update_callback:ee,ASSET_ID_TRESHOLD:te,init_state:ge,add_texture:ie,update_points:Ie,on_update_pick:re,on_pointer_down:ne,on_pointer_up:Qe,on_pointer_move:Ce,canvas_render:Be,picks_render:oe,destroy_state:se}=_A;await $A.init(),g()}catch(A){g(A)}}),1)},1285:(A,e,t)=>{var g=t(1388),i=t(6560),I=(t(4540),t(8e3));(0,i.co)({init(){this.accessorCache=new Map},getAccessor(A,e){const{type:t,bitSize:i,bitOffset:r,byteSize:n}=e,Q=[],C=void 0===n&&(7&i||7&r);C&&Q.push("Unaligned");let B=g.hQ[t];i>32&&(t===g.Z9.Int||t===g.Z9.Uint)&&(B=i<=64?`Big${B}`:`Jumbo${B}`),Q.push(B,`${t===g.Z9.Bool&&n?8*n:i}`),C&&Q.push(`@${r}`);const o=A+Q.join("");let s=DataView.prototype[o];if(s)return s;if(s=this.accessorCache.get(o),s)return s;for(;Q.length>0;){const t=`getAccessor${Q.join("")}`;if(s=this[t]?.(A,e))break;Q.pop()}if(!s)throw new Error(`No accessor available: ${o}`);return(0,I.n8)(s,"name",(0,I.vQ)(o)),this.accessorCache.set(o,s),s}})},5239:(A,e,t)=>{var g=t(1388);(0,t(6560).co)({getAccessorInt(A,e){const{bitSize:t,byteSize:i}=e;if(i){const e=this.getAccessor(A,{type:g.Z9.Uint,bitSize:8*i,byteSize:i}),I=2**(t-1),r=I-1;return"get"===A?function(A,t){const g=e.call(this,A,t);return(g&r)-(g&I)}:function(A,t,g){const i=t<0?I|t&r:t&r;e.call(this,A,i,g)}}}})},1388:(A,e,t)=>{t.d(e,{AD:()=>r,EK:()=>i,F7:()=>u,Q9:()=>c,UT:()=>C,Z9:()=>s,e2:()=>o,ev:()=>g,hQ:()=>a,pK:()=>E,sU:()=>Q,tv:()=>B,uE:()=>n,yi:()=>I});const g={Primitive:0,Array:1,Struct:2,Union:3,ErrorUnion:4,ErrorSet:5,Enum:6,Optional:7,Pointer:8,Slice:9,Vector:10,Opaque:11,ArgStruct:12,VariadicStruct:13,Function:14},i=Object.keys(g),I={HasValue:1,HasObject:2,HasPointer:4,HasSlot:8},r={IsSize:16},n={HasSentinel:16,IsString:32,IsTypedArray:64,IsClampedArray:128},Q={IsExtern:16,IsPacked:32,IsIterator:64,IsTuple:128,IsAllocator:256,IsPromise:512,IsGenerator:1024,IsAbortSignal:2048,IsOptional:4096},C={HasLength:16,IsMultiple:32,IsSingle:64,IsConst:128,IsNullable:256},B={HasSentinel:16,IsString:32,IsTypedArray:64,IsClampedArray:128,IsOpaque:256},o={HasOptions:16,IsThrowing:32,IsAsync:64},s={Void:0,Bool:1,Int:2,Uint:3,Float:4,Object:5,Type:6,Literal:7,Null:8,Undefined:9,Unsupported:10},a=Object.keys(s),E={IsRequired:1,IsReadOnly:2,IsPartOfSet:4,IsSelector:8,IsMethod:16,IsSentinel:32,IsBackingInt:64},c={OK:0,Failure:1,Deadlock:2,Disabled:3},u={IsInactive:1,IsImmutable:2,IgnoreUncreated:4,IgnoreInactive:8,IgnoreArguments:16,IgnoreRetval:32}},6560:(A,e,t)=>{t.d(e,{NP:()=>r,co:()=>I});var g=t(8e3);const i={name:"",mixins:[],constructor:null};function I(A){return i.constructor||i.mixins.push(A),A}function r(){return i.constructor||(i.constructor=function(A,e){const t=[],i=function(){for(const A of t)A.call(this)},{prototype:I}=i;(0,g.n8)(i,"name",(0,g.vQ)(A));for(const A of e)for(let[e,i]of Object.entries(A))if("init"===e)t.push(i);else{if("function"==typeof i);else{let A=I[e];if(void 0!==A)if(A?.constructor===Object)i=Object.assign({...A},i);else if(A!==i)throw new Error(`Duplicate property: ${e}`)}(0,g.n8)(I,e,(0,g.vQ)(i))}return i}(i.name,i.mixins),i.name="",i.mixins=[]),i.constructor}},4762:(A,e,t)=>{t.d(e,{BC:()=>r,BY:()=>p,G9:()=>D,Jc:()=>J,L2:()=>s,O0:()=>n,Pd:()=>d,QB:()=>m,Qm:()=>w,SB:()=>c,UQ:()=>U,Uv:()=>y,V0:()=>x,Vp:()=>k,Y8:()=>a,Zb:()=>B,_L:()=>E,_l:()=>b,ci:()=>Q,ck:()=>M,d_:()=>K,is:()=>o,nz:()=>l,qG:()=>f,qx:()=>R,t7:()=>C,v2:()=>G,vp:()=>v,x1:()=>F,xH:()=>u,xp:()=>S,zy:()=>h});var g=t(1388),i=t(4540),I=t(8e3);Error;class r extends SyntaxError{constructor(A){super(`Cannot convert ${A} to an Int`)}}class n extends TypeError{constructor(){super("Unsupported")}}class Q extends TypeError{constructor(A){const{name:e}=A;super(`An initializer must be provided to the constructor of ${e}, even when the intended value is undefined`)}}class C extends TypeError{constructor(A,e,t=null){const{name:i,type:I,byteSize:r}=A,n=e.byteLength,Q=1!==r?"s":"";let C;C=I!==g.ev.Slice||t?`${i} has ${I===g.ev.Slice?t.length*r:r} byte${Q}, received ${n}`:`${i} has elements that are ${r} byte${Q} in length, received ${n}`,super(C)}}class B extends TypeError{constructor(A){const{type:e,byteSize:t,typedArray:i}=A,I=1!==t?"s":"",r=["ArrayBuffer","DataView"].map(q);let n;i&&r.push(q(i.name)),n=e===g.ev.Slice?`Expecting ${O(r)} that can accommodate items ${t} byte${I} in length`:`Expecting ${O(r)} that is ${t} byte${I} in length`,super(n)}}TypeError,TypeError,TypeError,TypeError,TypeError,TypeError,TypeError;class o extends TypeError{constructor(A,e,t){const{name:g}=A,i=[];if(Array.isArray(e))for(const A of e)i.push(q(A));else i.push(q(e));const I=Y(t);super(`${g} expects ${O(i)} as argument, received ${I}`)}}class s extends o{constructor(A,e,t=!1){const{instance:{members:[r]},type:n,constructor:Q}=A,C=[],B=(0,I.BF)(r);if(B){let A;switch(r.structure?.type){case g.ev.Enum:A="enum item";break;case g.ev.ErrorSet:A="error";break;default:A=B}C.push(`array of ${A}s`)}else C.push("array of objects");Q[i.pM]&&C.push(Q[i.pM].name),n===g.ev.Slice&&t&&C.push("length"),super(A,C.join(" or "),e)}}class a extends TypeError{constructor(A,e,t){const{name:g,length:i,instance:{members:[I]}}=A,{structure:{constructor:r}}=I,{length:n,constructor:Q}=t,C=e?.length??i,B=1!==C?"s":"";let o;o=Q===r?"only a single one":Q.child===r?`a slice/array that has ${n}`:`${n} initializer${n>1?"s":""}`,super(`${g} has ${C} element${B}, received ${o}`)}}class E extends TypeError{constructor(A,e){super(A<0?"Length of slice cannot be negative":`Length of slice can be ${e} or less, received ${A}`)}}class c extends TypeError{constructor(A,e){const{name:t}=A;super(`Missing initializers for ${t}: ${e.join(", ")}`)}}class u extends TypeError{constructor(A,e){const{name:t,instance:{members:g}}=A;let i;i=g.find((A=>A.name===e))?`Comptime value cannot be changed: ${e}`:`${t} does not have a property with that name: ${e}`,super(i)}}class l extends Error{constructor(A,e,t=!1){super();const g=g=>{e-=g;const i=1!=(A-=g)?"s":"",I=t?"at least ":"";this.message=`Expecting ${I}${A} argument${i}, received ${e}`,this.stack=L(this.stack,"new Arg(")};g(0),(0,I.n8)(this,i.q6,{value:g,enumerable:!1})}}class f extends Error{constructor(){super("Undefined argument")}}class h extends TypeError{constructor(){super("Non-slice pointers can only be created with the help of the new operator")}}class w extends TypeError{constructor(){super("Casting to function is not allowed")}}class D extends TypeError{constructor(A,e){const{name:t}=A,{constructor:{name:g}}=e;super(`Conversion of ${g} to ${t} requires an explicit cast`)}}TypeError,TypeError;class y extends TypeError{constructor(A,e){super(`Unable to simultaneously align memory to ${e}-byte and ${A}-byte boundary`)}}TypeError;class d extends TypeError{constructor(A,e){const t=Y(e);super(`Expected ${q(A)}, received ${t}`)}}TypeError;class p extends TypeError{constructor(){super("Null pointer")}}class S extends TypeError{constructor(A){super(`Object has been freed already: ${A.constructor.name}`)}}class m extends TypeError{constructor(A,e){const{name:t}=A;let g;if(null!=e){const A=e instanceof Object&&e.constructor!==Object?`${e.constructor.name} object`:typeof e;g=`${H(A)} ${A}`}else g=e+"";super(`${t} cannot point to ${g}`)}}class F extends TypeError{constructor(){super("Pointers in Zig memory cannot point to garbage-collected object")}}TypeError;class b extends RangeError{constructor(A,e){const{name:t}=A;super(`Index exceeds the size of ${t??"array"}: ${e}`)}}class U extends TypeError{constructor(A){const{name:e}=A;super((void 0!==e?`Property ${e}`:"Element")+" can only be undefined")}}class k extends TypeError{constructor(A){const{name:e,structure:{name:t}}=A;super(`Unable to create ${t} as it is not situated on a byte boundary: ${e}`)}}class N extends TypeError{constructor(){super("Unable to modify read-only object")}}class M extends TypeError{constructor(A){const{name:e}=A;super(`${e} cannot point to a read-only object`)}}TypeError,TypeError,TypeError;class G extends TypeError{constructor(){super("Unexpected async generator")}}class v extends Error{constructor(A,e=0){if(A instanceof Error)return super(A.message),A.stack=L(this.stack,e),A;super(A??"Error encountered in Zig code")}}class J extends v{constructor(A){super("Program exited"),this.code=A}}function K(A,e){const t=t=>{e-=t,A.message=`args[${e}]: ${A.message}`,A.stack=L(A.stack,"new Arg(")};return t(0),(0,I.n8)(A,i.q6,{value:t,enumerable:!1}),A}function L(A,e){if("string"==typeof A){const t=A.split("\n"),g=t.findIndex((A=>A.includes(e)));-1!==g&&(t.splice(1,g),A=t.join("\n"))}return A}function R(A,e,t){return t instanceof RangeError&&!(t instanceof b)&&(t=new b(A,e)),t}function x(){throw new N}function Y(A){const e=typeof A;let t;return t="object"===e?A?Object.prototype.toString.call(A):"null":e,q(t)}function q(A){return`${H(A)} ${A}`}function H(A){return/^\W*[aeiou]/i.test(A)?"an":"a"}function O(A,e="or"){const t=` ${e} `;return A.length>2?A.slice(0,-1).join(", ")+t+A[A.length-1]:A.join(t)}},4358:(A,e,t)=>{var g=t(1388),i=t(6560),I=t(4540);(0,i.co)({init(){this.variables=[]},getSpecialExports(){const A=A=>{if(void 0===A)throw new Error("Not a Zig type");return A};return{init:(...A)=>this.initialize?.(...A),abandon:()=>this.abandonModule?.(),connect:A=>this.consoleObject=A,sizeOf:e=>A(e?.[I.SK]),alignOf:e=>A(e?.[I.Ec]),typeOf:e=>r[A(e?.[I.ZE])]}},recreateStructures(A,e){Object.assign(this,e);const t=(A,e)=>{for(const[t,g]of Object.entries(e))A[t]=i(g);return A},g=A=>A.length?A.buffer:new ArrayBuffer(0),i=A=>{const{memory:e,structure:i,actual:r}=A;if(e){if(r)return r;{const{array:r,offset:n,length:Q}=e,C=this.obtainView(g(r),n,Q),{handle:B,const:o}=A,s=i?.constructor,a=A.actual=s.call(I.M0,C);return o&&this.makeReadOnly(a),A.slots&&t(a[I._f],A.slots),B&&this.variables.push({handle:B,object:a}),a}}return i};this.resetGlobalErrorSet?.();const r=new Map;for(const e of A){for(const A of[e.instance,e.static])if(A.template){const{slots:e,memory:t,handle:i}=A.template,n=A.template={};if(t){const{array:A,offset:e,length:r}=t;n[I.Qy]=this.obtainView(g(A),e,r),i&&this.variables.push({handle:i,object:n})}if(e){const A=n[I._f]={};r.set(A,e)}}this.defineStructure(e)}for(const[A,e]of r)t(A,e);for(const e of A)this.finalizeStructure(e)}});const r=g.EK.map((A=>A.replace(/([a-z])([A-Z])/g,"$1 $2").toLowerCase()))},4828:(A,e,t)=>{var g=t(1388),i=t(6560),I=t(4762),r=t(4540);(0,i.co)({init(){this.jsFunctionThunkMap=new Map,this.jsFunctionCallerMap=new Map,this.jsFunctionControllerMap=new Map,this.jsFunctionIdMap=new WeakMap,this.jsFunctionNextId=1},getFunctionId(A){let e=this.jsFunctionIdMap.get(A);return void 0===e&&(e=this.jsFunctionNextId++,this.jsFunctionIdMap.set(A,e)),e},getFunctionThunk(A,e){const t=this.getFunctionId(A);let g=this.jsFunctionThunkMap.get(t);if(void 0===g){const A=this.getViewAddress(e[r.Qy]),i=this.createJsThunk(A,t);if(!i)throw new Error("Unable to create function thunk");g=this.obtainZigView(i,0),this.jsFunctionThunkMap.set(t,g),this.jsFunctionControllerMap.set(t,e)}return g},createInboundCaller(A,e){const t=this.getFunctionId(A);return this.jsFunctionCallerMap.set(t,((t,i)=>{let n=g.Q9.OK,Q=!1;try{const C=e(t);if(r.g9 in C){C[r.g9]("reset");const A=this.startContext();this.updatePointerTargets(A,C,!0),this.updateShadowTargets(A),this.endContext()}const B=function(A){try{if(!(e[r.du]&&A instanceof Error))throw A;C[r.zg](A)}catch(e){n=g.Q9.Failure,console.error(A)}},o=function(A){try{C[r.zg](A)}catch(A){n=g.Q9.Failure,console.error(A)}};try{const e=A(...C),t=C.hasOwnProperty(r.zg);if("Promise"===e?.[Symbol.toStringTag])if(i||t){const A=e.then(o,B);i&&A.then((()=>this.finalizeAsyncCall(i,n))),Q=!0,n=g.Q9.OK}else n=g.Q9.Deadlock;else if(e?.[Symbol.asyncIterator]){if(!C.hasOwnProperty(r.wg))throw new I.v2;this.pipeContents(e,C),n=g.Q9.OK}else null==e&&t||o(e)}catch(A){B(A)}}catch(A){console.error(A),n=g.Q9.Failure}return i&&!Q&&this.finalizeAsyncCall(i,n),n})),function(...e){return A(...e)}},defineArgIterator(A){const e=this,t=A.filter((({structure:A})=>A.type===g.ev.Struct&&A.flags&g.sU.IsAllocator)).length;return{value(){let i,I=0,n=0,Q=0;const C=[];for(const[B,{structure:o,type:s}]of A.entries())try{let A,a,E=this[B];s===g.Z9.Object&&E?.[r.Qy]?.[r.Dr]&&(E=new E.constructor(E)),o.type===g.ev.Struct&&(o.flags&g.sU.IsAllocator?(A=1===t?"allocator":"allocator"+ ++I,a=this[r.Gz]=E):o.flags&g.sU.IsPromise?(A="callback",1==++n&&(a=e.createPromiseCallback(this,E))):o.flags&g.sU.IsGenerator?(A="callback",1==++n&&(a=e.createGeneratorCallback(this,E))):o.flags&g.sU.IsAbortSignal&&(A="signal",1==++Q&&(a=e.createInboundSignal(E)))),void 0!==A?void 0!==a&&(i||={},i[A]=a):C.push(E)}catch(A){C.push(A)}return i&&C.push(i),C[Symbol.iterator]()}}},handleJsCall(A,e,t,i=0){const I=this.obtainZigView(e,t,!1),r=this.jsFunctionCallerMap.get(A);return r?r(I,i):g.Q9.Failure},releaseFunction(A){const e=this.jsFunctionThunkMap.get(A),t=this.jsFunctionControllerMap.get(A);if(e&&t){const g=this.getViewAddress(t[r.Qy]),i=this.getViewAddress(e);this.destroyJsThunk(g,i),this.releaseZigView(e),A&&(this.jsFunctionThunkMap.delete(A),this.jsFunctionCallerMap.delete(A),this.jsFunctionControllerMap.delete(A))}},exports:{handleJsCall:{argType:"iiii",returnType:"i"},releaseFunction:{argType:"i"}},imports:{createJsThunk:{argType:"ii",returnType:"i"},destroyJsThunk:{argType:"ii",returnType:"i"},finalizeAsyncCall:{argType:"ii"}}})},6973:(A,e,t)=>{var g=t(1388),i=t(6560),I=t(4762),r=t(4540);(0,i.co)({createOutboundCaller(A,e){const t=this,g=function(...i){if(!t.runThunk)return t.initPromise.then((()=>g(...i)));const n=new e(i,this?.[r.Gz]);try{return t.invokeThunk(A,g,n)}catch(A){if(A instanceof I.Jc&&0===A.code)return;throw A}};return g},copyArguments(A,e,t,i,n){let Q=0,C=0,B=0;const o=A[r.Bl];for(const{type:r,structure:s}of t){let t,a,E,c;if(s.type===g.ev.Struct&&(s.flags&g.sU.IsAllocator?t=(1==++B?i?.allocator??i?.allocator1:i?.[`allocator${B}`])??this.createDefaultAllocator(A,s):s.flags&g.sU.IsPromise?(a||=this.createPromise(A,i?.callback),t=a):s.flags&g.sU.IsGenerator?(E||=this.createGenerator(A,i?.callback),t=E):s.flags&g.sU.IsAbortSignal&&(c||=this.createSignal(s,i?.signal),t=c)),void 0===t&&(t=e[C++],void 0===t&&r!==g.Z9.Void))throw new I.qG;try{o[Q++].call(A,t,n)}catch(A){throw(0,I.d_)(A,Q-1)}}},invokeThunk(A,e,t){const g=this.startContext(),i=t[r.iw],n=this.getViewAddress(A[r.Qy]),Q=this.getViewAddress(e[r.Qy]),C=r.vm in t,B=r.g9 in t;B&&this.updatePointerAddresses(g,t);const o=this.getShadowAddress(g,t,null,!1),s=i?this.getShadowAddress(g,i):0;this.updateShadows(g);const a=()=>{this.updateShadowTargets(g),B&&this.updatePointerTargets(g,t),this.libc&&this.flushStdout?.(),this.flushConsole?.(),this.endContext()};if(C&&(t[r.vm]=a),!(i?this.runVariadicThunk(n,Q,o,s,i.length):this.runThunk(n,Q,o)))throw a(),new I.vp;if(t[r.sF]?.(this.findShadowView(t[r.Qy])),C){let A=null;try{A=t.retval}catch(e){A=new I.vp(e,1)}return null!=A&&t[r.zg](A),t[r.eR]??t[r._d]}a();try{return t.retval}catch(A){throw new I.vp(A,1)}},imports:{runThunk:{argType:"iii",returnType:"b"},runVariadicThunk:{argType:"iiiii",returnType:"b"}}})},2427:(A,e,t)=>{var g=t(1388),i=t(6560),I=t(4540),r=t(8e3);(0,i.co)({init(){const A={type:g.Z9.Int,bitSize:8,byteSize:1},e={type:g.Z9.Int,bitSize:16,byteSize:2},t={type:g.Z9.Int,bitSize:32,byteSize:4},i=this.getAccessor("get",A),I=this.getAccessor("set",A),n=this.getAccessor("get",e),Q=this.getAccessor("set",e),C=this.getAccessor("get",t),B=this.getAccessor("set",t);this.copiers={0:r.Ie,1:function(A,e){I.call(A,0,i.call(e,0))},2:function(A,e){Q.call(A,0,n.call(e,0,!0),!0)},4:function(A,e){B.call(A,0,C.call(e,0,!0),!0)},8:function(A,e){B.call(A,0,C.call(e,0,!0),!0),B.call(A,4,C.call(e,4,!0),!0)},16:function(A,e){B.call(A,0,C.call(e,0,!0),!0),B.call(A,4,C.call(e,4,!0),!0),B.call(A,8,C.call(e,8,!0),!0),B.call(A,12,C.call(e,12,!0),!0)},any:function(A,e){let t=0,g=A.byteLength;for(;t+4<=g;)B.call(A,t,C.call(e,t,!0),!0),t+=4;for(;t+1<=g;)I.call(A,t,i.call(e,t)),t++}},this.resetters={0:r.Ie,1:function(A,e){I.call(A,e,0)},2:function(A,e){Q.call(A,e,0,!0)},4:function(A,e){B.call(A,e,0,!0)},8:function(A,e){B.call(A,e+0,0,!0),B.call(A,e+4,0,!0)},16:function(A,e){B.call(A,e+0,0,!0),B.call(A,e+4,0,!0),B.call(A,e+8,0,!0),B.call(A,e+12,0,!0)},any:function(A,e,t){let g=e;for(;g+4<=t;)B.call(A,g,0,!0),g+=4;for(;g+1<=t;)I.call(A,g,0),g++}}},defineCopier(A,e){const t=this.getCopyFunction(A,e);return{value(A){this[I.zN]?.(),A[I.zN]?.();const e=A[I.Qy],g=this[I.Qy];t(g,e)}}},defineResetter(A,e){const t=this.getResetFunction(e);return{value(){this[I.zN]?.();const g=this[I.Qy];t(g,A,e)}}},getCopyFunction(A,e=!1){return(e?void 0:this.copiers[A])??this.copiers.any},getResetFunction(A){return this.resetters[A]??this.resetters.any},...{defineRetvalCopier({byteSize:A,bitOffset:e}){if(A>0){const t=this,g=e>>3,i=this.getCopyFunction(A);return{value(e){const r=this[I.Qy],{address:n}=e[I.Dr],Q=new DataView(t.memory.buffer,n+g,A),C=new DataView(r.buffer,r.byteOffset+g,A);i(C,Q)}}}},copyExternBytes(A,e,t){const{memory:g}=this,i=new DataView(g.buffer,e,t);this.getCopyFunction(t)(A,i)}}})},1669:(A,e,t)=>{var g=t(1388),i=t(6560),I=t(4762);(0,i.co)({addIntConversion:A=>function(e,t){const i=A.call(this,e,t),{flags:r,bitSize:n}=t;if("set"===e)return n>32?function(A,e,t){i.call(this,A,BigInt(e),t)}:function(A,e,t){const g=Number(e);if(!isFinite(g))throw new I.BC(e);i.call(this,A,g,t)};{const{flags:A}=t.structure;if(A&g.AD.IsSize&&n>32){const A=BigInt(Number.MAX_SAFE_INTEGER),e=BigInt(Number.MIN_SAFE_INTEGER);return function(t,g){const I=i.call(this,t,g);return e<=I&&I<=A?Number(I):I}}}return i}})},6929:(A,e,t)=>{var g=t(6560),i=t(4762),I=t(4540),r=t(8e3);function n(A,e){return(0,r.ZG)(A,e,(A=>A.address))}(0,g.co)({init(){this.isMemoryMapping=!0,this.memoryList=[],this.contextCount=0},startContext(){return++this.contextCount,{shadowList:[]}},endContext(){if(0==--this.contextCount){for(const{shadowDV:A}of this.memoryList)A&&this.freeShadowMemory(A);this.memoryList.splice(0)}},getShadowAddress(A,e,t,g){const n=e[I.Qy];if(t){if(void 0===t.address){const{start:e,end:C,targets:B}=t;let o,s=0;for(const A of B){const e=A[I.Qy],t=e.byteOffset,g=A.constructor[I.Ec]??e[I.Ec];(void 0===s||g>s)&&(s=g,o=t)}const a=C-e,E=this.allocateShadowMemory(a+s,1),c=this.getViewAddress(E),u=(0,r.hJ)((0,r.Au)(c,o-e),s),l=(0,r.Au)(u,e-o);for(const A of B){const t=A[I.Qy],g=t.byteOffset;if(g!==o){const n=A.constructor[I.Ec]??t[I.Ec];if((0,r.on)((0,r.Au)(l,g-e),n))throw new i.Uv(n,s)}}const f=E.byteOffset+Number(l-c),h=new DataView(E.buffer,f,a);h[I.Dr]={address:l,len:a,align:1,unalignedAddress:c,type:Q.Scratch};const w=new DataView(n.buffer,Number(e),a),D=this.registerMemory(l,a,1,g,w,h);A.shadowList.push(D),t.address=l}return(0,r.Au)(t.address,n.byteOffset-t.start)}{const t=e.constructor[I.Ec]??n[I.Ec],i=n.byteLength,r=this.allocateShadowMemory(i,t),Q=this.getViewAddress(r),C=this.registerMemory(Q,i,1,g,n,r);return A.shadowList.push(C),Q}},updateShadows(A){const e=this.getCopyFunction();for(let{targetDV:t,shadowDV:g}of A.shadowList)g=this.restoreView(g),e(g,t)},updateShadowTargets(A){const e=this.getCopyFunction();for(let{targetDV:t,shadowDV:g,writable:i}of A.shadowList)i&&(g=this.restoreView(g),e(t,g))},registerMemory(A,e,t,g,i,I){const r=n(this.memoryList,A);let Q=this.memoryList[r-1];return Q?.address===A&&Q.len===e?Q.writable||=g:(Q={address:A,len:e,align:t,writable:g,targetDV:i,shadowDV:I},this.memoryList.splice(r,0,Q)),Q},unregisterMemory(A,e){const t=n(this.memoryList,A),g=this.memoryList[t-1];if(g?.address===A&&g.len===e)return this.memoryList.splice(t-1,1),g},findMemory(A,e,t,g){let i=t*(g??0);const Q=n(this.memoryList,e),C=this.memoryList[Q-1];let B;if(C?.address===e&&C.len===i)B=C.targetDV;else if(C?.address<=e&&(0,r.Au)(e,i)<=(0,r.Au)(C.address,C.len)){const A=Number(e-C.address),t=void 0===g,{targetDV:r}=C;t&&(i=r.byteLength-A),B=this.obtainView(r.buffer,r.byteOffset+A,i),t&&(B[I.Ec]=C.align)}if(B){let{targetDV:e,shadowDV:t}=C;t&&A&&!A.shadowList.includes(C)&&(t=this.restoreView(t),this.getCopyFunction()(e,t))}else B=this.obtainZigView(e,i);return B},findShadowView(A){for(const{shadowDV:e,targetDV:t}of this.memoryList)if(t===A)return e},releaseZigView(A){const e=A[I.Dr],t=e?.address;t&&t!==r.Y$&&(e.address=r.Y$)},getViewAddress(A){const e=A[I.Dr];if(e)return e.address;{const e=this.getBufferAddress(A.buffer);return(0,r.Au)(e,A.byteOffset)}},...{imports:{allocateScratchMemory:{argType:"ii",returnType:"i"},freeScratchMemory:{argType:"iii"}},exports:{getViewAddress:{argType:"v",returnType:"i"}},usizeMaxBuffer:new ArrayBuffer(0),allocateShadowMemory(A,e){const t=A?this.allocateScratchMemory(A,e):0;if(!t&&A)throw new Error("Out of memory");const g=this.obtainZigView(t,A),i=g?.[I.Dr];return i&&(i.align=e),g},freeShadowMemory(A){const{address:e,unalignedAddress:t,len:g,align:i}=A[I.Dr];g&&this.freeScratchMemory(t??e,g,i),this.releaseZigView(A)},obtainZigView(A,e,t=!0){if((0,r.cv)(A)&&(A=e>0?0:r.Fy),!A&&e)return null;let{buffer:g}=this.memory;return A===r.Fy&&(g=this.usizeMaxBuffer,A=r.$k,e=0),t?this.obtainView(g,A,e):new DataView(g,A,e)},getTargetAddress(A,e,t,g){const i=e[I.Qy];return i[I.Dr]?this.getViewAddress(i):0===i.byteLength?0:this.getShadowAddress(A,e,t,g)},getBufferAddress:A=>0}});const Q={Normal:0,Scratch:1}},4936:(A,e,t)=>{var g=t(6560),i=t(8e3);(0,g.co)({init(){this.abandoned=!1,this.nextValueIndex=1,this.valueMap=new Map,this.valueIndices=new Map,this.options=null,this.executable=null,this.memory=null,this.table=null,this.initialTableLength=0,this.exportedFunctions=null},releaseFunctions(){const A=()=>{throw new Error("Module was abandoned")};for(const e of Object.keys(this.imports))this[e]&&(this[e]=A)},abandonModule(){this.abandoned||(this.releaseFunctions(),this.unlinkVariables?.(),this.abandoned=!0)},...{imports:{initialize:{argType:""}},exports:{displayPanic:{argType:"ii"}},async initialize(A){this.setCustomWASI?.(A),await this.initPromise},getObjectIndex(A){if(null!=A){let e=this.valueIndices.get(A);return void 0===e&&(e=this.nextValueIndex++,this.valueIndices.set(A,e),this.valueMap.set(e,A)),e}return 0},fromWebAssembly(A,e){switch(A){case"v":case"s":return this.valueMap.get(e);case"i":return e;case"b":return!!e}},toWebAssembly(A,e){switch(A){case"v":case"s":return this.getObjectIndex(e);case"i":return e;case"b":return e?1:0}},exportFunction(A,e="",t="",g){return A?(...g)=>{g=g.map(((A,t)=>this.fromWebAssembly(e.charAt(t),A)));const i=A.apply(this,g);return this.toWebAssembly(t,i)}:()=>{}},importFunction(A,e="",t=""){return(...g)=>{g=g.map(((A,t)=>this.toWebAssembly(e.charAt(t),A)));const i=A.apply(this,g);return this.fromWebAssembly(t,i)}},exportFunctions(){const A={};for(const[e,{argType:t,returnType:g,alias:i}]of Object.entries(this.exports)){const I=this[i??e];I&&(A[`_${e}`]=this.exportFunction(I,t,g,e))}return A},importFunctions(A){for(const[e,{argType:t,returnType:g}]of Object.entries(this.imports)){const I=A[e];I&&(0,i.n8)(this,e,{value:this.importFunction(I,t,g)})}},async instantiateWebAssembly(A,e){const{memoryInitial:t,memoryMax:g,tableInitial:I,multithreaded:r}=this.options=e,n=await A,Q="Response"===n[Symbol.toStringTag]?"Streaming":"",C=WebAssembly,B=C["compile"+Q],o=this.executable=await B(n),s=this.exportFunctions(),a={},E={},c={},u=this.exportedModules={env:a,wasi:E,wasi_snapshot_preview1:c};for(const{module:A,name:e,kind:t}of C.Module.imports(o))"function"===t&&("env"===A?a[e]=s[e]??i.Ie:"wasi_snapshot_preview1"===A?c[e]=this.getWASIHandler(e):"wasi"===A&&(E[e]=this.getThreadHandler?.(e)??i.Ie));return this.memory=a.memory=new C.Memory({initial:t,maximum:g,shared:r}),this.table=a.__indirect_function_table=new C.Table({initial:I,element:"anyfunc",shared:r}),this.initialTableLength=I,new C.Instance(o,u)},loadModule(A,e){return this.initPromise=(async()=>{const t=await this.instantiateWebAssembly(A,e),{exports:g}=t;if(this.importFunctions(g),this.customWASI){const A={...g,memory:this.memory},e=new Proxy(t,{get:(e,t)=>"exports"===t?A:e[t]});this.customWASI.initialize?.(e)}this.initialize()})()},displayPanic(A,e){const t=new Uint8Array(this.memory.buffer,A,e),g=(0,i.g7)(t);console.error(`Zig panic: ${g}`)}}})},9268:(A,e,t)=>{var g=t(1388),i=t(6560),I=t(4540);(0,i.co)({linkVariables(A){if(!this.memory)return void(this.initPromise=this.initPromise.then((()=>this.linkVariables(A))));const e=this.getCopyFunction();for(const{object:t,handle:i}of this.variables){const r=t[I.Qy],n=i,Q=t[I.Qy]=this.obtainZigView(n,r.byteLength);A&&e(Q,r),t.constructor[I.fV]?.save?.(Q,t);const C=A=>{const e=A[I._f];if(e){const A=Q.byteOffset;for(const t of Object.values(e))if(t){const e=t[I.Qy];if(e.buffer===r.buffer){const g=A+e.byteOffset-r.byteOffset;t[I.Qy]=this.obtainView(Q.buffer,g,e.byteLength),t.constructor[I.fV]?.save?.(Q,t),C(t)}}}};C(t),t[I.g9]?.((function(){this[I.q6]()}),g.F7.IgnoreInactive)}},unlinkVariables(){const A=this.getCopyFunction();for(const{object:e}of this.variables){const t=this.restoreView(e[I.Qy]),g=t[I.Dr];g&&A(e[I.Qy]=this.allocateMemory(g.len),t)}},imports:{recreateAddress:{argType:"i",returnType:"i"}}})},7409:(A,e,t)=>{var g=t(1388),i=t(6560),I=t(4540),r=t(8e3);(0,i.co)({updatePointerAddresses(A,e){const t=new Map,i=new Map,n=[],Q=function(A){const e=this[I.C7];if(void 0===t.get(e)){const A=e[I._f][0];if(A){const g={target:A,writable:!e.constructor.const},C=A[I.Qy];if(C[I.Dr])t.set(e,null);else{t.set(e,A);const B=i.get(C.buffer);if(B){const A=Array.isArray(B)?B:[B],e=(0,r.ZG)(A,C.byteOffset,(A=>A.target[I.Qy].byteOffset));A.splice(e,0,g),Array.isArray(B)||(i.set(C.buffer,A),n.push(A))}else i.set(C.buffer,g);A[I.g9]?.(Q,0)}}}},C=g.F7.IgnoreRetval|g.F7.IgnoreInactive;e[I.g9](Q,C);const B=this.findTargetClusters(n),o=new Map;for(const A of B)for(const e of A.targets)o.set(e,A);for(const[e,g]of t)if(g){const t=o.get(g),i=t?.writable??!e.constructor.const;e[I.BD]=this.getTargetAddress(A,g,t,i),I.pi in e&&(e[I.pi]=g.length)}},updatePointerTargets(A,e,t=!1){const i=new Map,r=function(e){const t=this[I.C7];if(!i.get(t)){i.set(t,!0);const n=t[I._f][0],Q=n&&e&g.F7.IsImmutable?n:t[I.q6](A,!0,!(e&g.F7.IsInactive)),C=t.constructor.const?g.F7.IsImmutable:0;C&g.F7.IsImmutable||n&&!n[I.Qy][I.Dr]&&n[I.g9]?.(r,C),Q!==n&&Q&&!Q[I.Qy][I.Dr]&&Q?.[I.g9]?.(r,C)}},n=t?g.F7.IgnoreRetval:0;e[I.g9](r,n)},findTargetClusters(A){const e=[];for(const t of A){let A=null,g=0,i=0,r=null;for(const{target:n,writable:Q}of t){const t=n[I.Qy],{byteOffset:C,byteLength:B}=t,o=C+B;let s=!0;A&&(i>C?(r?r.writable||=Q:(r={targets:[A],start:g,end:i,address:void 0,misaligned:void 0,writable:Q},e.push(r)),r.targets.push(n),o>i?r.end=o:s=!1):r=null),s&&(A=n,g=C,i=o)}}return e}})},2436:(A,e,t)=>{var g=t(6560),i=t(8e3);(0,g.co)({...{exports:{allocateJsThunk:{argType:"ii",returnType:"i"},freeJsThunk:{argType:"ii",returnType:"i"}},init(){this.thunkSources=[],this.thunkMap=new Map},addJsThunkSource(){const{memoryInitial:A,memoryMax:e,tableInitial:t,multithreaded:g}=this.options,I=WebAssembly,r={},n={},Q={env:r,wasi:{},wasi_snapshot_preview1:n};for(const{module:A,name:e,kind:t}of I.Module.imports(this.executable))"function"===t&&("env"===A?r[e]=i.Ie:"wasi_snapshot_preview1"===A&&(n[e]=i.Ie));r.memory=new I.Memory({initial:A,maximum:e,shared:g});const C=r.__indirect_function_table=new I.Table({initial:t,element:"anyfunc"}),{exports:B}=new I.Instance(this.executable,Q),{createJsThunk:o,destroyJsThunk:s}=B,a={thunkCount:0,createJsThunk:o,destroyJsThunk:s,table:C};return this.thunkSources.unshift(a),a},allocateJsThunk(A,e){let t,g=0;for(t of this.thunkSources){g=t.createJsThunk(A,e);break}g||(t=this.addJsThunkSource(),g=t.createJsThunk(A,e));const i=t.table.get(g);let I=0;for(let A=this.table.length-1;A>=this.initialTableLength;A--)if(!this.table.get(A)){I=A;break}return I||(I=this.table.length,this.table.grow(8)),this.table.set(I,i),t.thunkCount++,this.thunkMap.set(i,{source:t,sourceAddress:g}),I},freeJsThunk(A,e){let t=0;const g=this.table.get(e);this.table.set(e,null);const i=this.thunkMap.get(g);if(i){const{source:e,sourceAddress:I}=i;if(t=e.destroyJsThunk(A,I),0==--e.thunkCount){const A=this.thunkSources.indexOf(e);-1!==A&&this.thunkSources.splice(A,1)}this.thunkMap.delete(g)}return t}}})},8738:(A,e,t)=>{var g=t(1388),i=t(6560),I=t(4762),r=t(4540),n=t(8e3);function Q(A,e){const{byteSize:t,type:i}=e;if(!(i===g.ev.Slice?A.byteLength%t==0:A.byteLength===t))throw new I.t7(e,A)}function C(A){throw new I.Zb(A)}(0,i.co)({init(){this.viewMap=new WeakMap},extractView(A,e,t=C){const{type:i,byteSize:B,constructor:o}=A;let s;const a=e?.[Symbol.toStringTag];if(a&&("DataView"===a?s=this.registerView(e):"ArrayBuffer"===a?s=this.obtainView(e,0,e.byteLength):(a&&a===o[r.pM]?.name||"Uint8ClampedArray"===a&&o[r.pM]===Uint8Array)&&(s=this.obtainView(e.buffer,e.byteOffset,e.byteLength))),!s){const t=e?.[r.Qy];if(t){const{constructor:r,instance:{members:[Q]}}=A;if((0,n.pU)(e,r))return t;if(function(A){return A===g.ev.Array||A===g.ev.Vector||A===g.ev.Slice}(i)){const{byteSize:r,structure:{constructor:C}}=Q,o=(0,n.be)(e,C);if(void 0!==o){if(i===g.ev.Slice||o*r===B)return t;throw new I.Y8(A,null,e)}}}}return s?void 0!==B&&Q(s,A):t?.(A,e),s},assignView(A,e,t,i,n){const{byteSize:C,type:B}=t,o=C??1;if(A[r.Qy]){const i=B===g.ev.Slice?o*A.length:o;if(e.byteLength!==i)throw new I.t7(t,e,A);const n={[r.Qy]:e};A.constructor[r.fd]?.validateData?.(n,A.length),A[r.sF](n)}else{void 0!==C&&Q(e,t);const g=e.byteLength/o,I={[r.Qy]:e};A.constructor[r.fd]?.validateData?.(I,g),n&&(i=!0),A[r.IW](i?null:e,g,n),i&&A[r.sF](I)}},findViewAt(A,e,t){let g,i=this.viewMap.get(A);if(i)if(i instanceof DataView)if(i.byteOffset===e&&i.byteLength===t)g=i,i=null;else{const e=i,t=`${e.byteOffset}:${e.byteLength}`;i=new Map([[t,e]]),this.viewMap.set(A,i)}else g=i.get(`${e}:${t}`);return g?.[r.Dr]?.address===n.Y$&&(g=null),{existing:g,entry:i}},obtainView(A,e,t){const{existing:g,entry:i}=this.findViewAt(A,e,t);let I;return g||(I=new DataView(A,e,t),i?i.set(`${e}:${t}`,I):this.viewMap.set(A,I),A!==this.memory?.buffer&&A!==this.usizeMaxBuffer||(I[r.Dr]={address:e,len:t}),I)},registerView(A){if(!A[r.Dr]){const{buffer:e,byteOffset:t,byteLength:g}=A,{existing:i,entry:I}=this.findViewAt(e,t,g);if(i)return i;I?I.set(`${t}:${g}`,A):this.viewMap.set(e,A)}return A},allocateMemory(A,e=0,t=null){return t?.alloc?.(A,e)??this.allocateJSMemory(A,e)},...{allocateJSMemory(A,e){return this.obtainView(new ArrayBuffer(A),0,A)},restoreView(A){const e=A?.[r.Dr];return e?.len>0&&0===A.buffer.byteLength&&(A=this.obtainZigView(e.address,e.len),e.align&&(A[r.Dr].align=e.align)),A},defineRestorer(){const A=this;return{value(){const e=this[r.Qy],t=A.restoreView(e);if(e!==t){const A=this[r.KK]??this;return A[r.Qy]=t,A.constructor[r.fV]?.save?.(t,A[r.rG]??A),!0}return!1}}}}})},1432:(A,e,t)=>{var g=t(6560),i=t(4762),I=t(4540);(0,g.co)({makeReadOnly(A){Q(A)}});const r=Object.getOwnPropertyDescriptors,n=Object.defineProperty;function Q(A){const e=A[I.C7];if(e)C(e,["length"]);else{const e=A[I.sO];e?(C(e),function(A){n(A,"set",{value:i.V0});const e=A.get;n(A,"get",{value:function(A){const t=e.call(this,A);return null===t?.[I.KK]&&Q(t),t}})}(e)):C(A)}}function C(A,e=[]){const t=r(A.constructor.prototype);for(const[g,I]of Object.entries(t))I.set&&!e.includes(g)&&(I.set=i.V0,n(A,g,I));n(A,I.KK,{value:A})}},4773:(A,e,t)=>{t.d(e,{M:()=>i});var g=t(6560);function i(){return new((0,g.NP)())}},1454:(A,e,t)=>{var g=t(6560),i=t(4540),I=t(8e3);function r(){const A=this[i.sO]??this,e=this.length;let t=0;return{next(){let g,i;if(t<e){const e=t++;g=A.get(e),i=!1}else i=!0;return{value:g,done:i}}}}function n(A){const e=(0,I.L9)(A),t=this[i.sO]??this,g=this.length;let r=0;return{next(){let A,i;if(r<g){const g=r++;A=[g,e((()=>t.get(g)))],i=!1}else i=!0;return{value:A,done:i}}}}function Q(A){return{[Symbol.iterator]:n.bind(this,A),length:this.length}}(0,g.co)({defineArrayEntries:()=>(0,I.vQ)(Q),defineArrayIterator:()=>(0,I.vQ)(r)})},6402:(A,e,t)=>{var g=t(6560),i=t(4540),I=t(8e3);function r(A){return{[Symbol.iterator]:Q.bind(this,A),length:this[i.n5].length}}function n(A){return r.call(this,A)[Symbol.iterator]()}function Q(A){const e=(0,I.L9)(A),t=this,g=this[i.n5];let r=0;return{next(){let A,i;if(r<g.length){const I=g[r++];A=[I,e((()=>t[I]))],i=!1}else i=!0;return{value:A,done:i}}}}(0,g.co)({defineStructEntries:()=>(0,I.vQ)(r),defineStructIterator:()=>(0,I.vQ)(n)})},9098:(A,e,t)=>{t.d(e,{E:()=>i});var g=t(1388);function i(A,{get:e,set:t}){return void 0!==A?{get:function(){return e.call(this,A)},set:t?function(e,g){return t.call(this,A,e,g)}:void 0}:{get:e,set:t}}(0,t(6560).co)({defineMember(A,e=!0){if(!A)return{};const{type:t,structure:i}=A,I=this[`defineMember${g.hQ[t]}`].call(this,A);if(e&&i){const{type:e}=i,t=this[`transformDescriptor${g.EK[e]}`];if(t)return t.call(this,I,A)}return I}})},9494:(A,e,t)=>{var g=t(6560),i=t(4762),I=t(8e3);(0,g.co)({defineBase64(A){const e=this;return(0,I.NV)({get(){return(0,I.WG)(this.dataView)},set(t,g){if("string"!=typeof t)throw new i.Pd("string",t);const r=(0,I.y4)(t);e.assignView(this,r,A,!1,g)}})}})},7431:(A,e,t)=>{var g=t(6560),i=t(4762),I=t(4540),r=t(8e3);(0,g.co)({defineDataView(A){const e=this;return(0,r.NV)({get(){return this[I.zN]?.(),this[I.Qy]},set(t,g){if("DataView"!==t?.[Symbol.toStringTag])throw new i.Pd("DataView",t);e.assignView(this,t,A,!0,g)}})}})},7591:(A,e,t)=>{(0,t(6560).co)({defineMemberFloat(A){return this.defineMemberUsing(A,this.getAccessor)}})},6717:(A,e,t)=>{var g=t(1388),i=t(6560),I=t(4762),r=t(4540),n=t(9098);function Q(A){return(this[r._f][A]??this[r.tZ](A)).$}function C(A){return this[r._f][A]??this[r.tZ](A)}function B(A,e,t){(this[r._f][A]??this[r.tZ](A))[r.Zv](e,t)}(0,i.co)({defineMemberObject:A=>(0,n.E)(A.slot,{get:A.structure.flags&g.yi.HasValue?Q:C,set:A.flags&g.pK.IsReadOnly?I.V0:B})})},2164:(A,e,t)=>{var g=t(6560),i=t(4762),I=t(4540);(0,g.co)({...{defineMemberUsing(A,e){const{littleEndian:t}=this,{bitOffset:g,byteSize:r}=A,n=e.call(this,"get",A),Q=e.call(this,"set",A);if(void 0!==g){const A=g>>3;return{get:function(){try{return n.call(this[I.Qy],A,t)}catch(e){if(e instanceof TypeError&&this[I.zN]?.())return n.call(this[I.Qy],A,t);throw e}},set:function(e){try{return Q.call(this[I.Qy],A,e,t)}catch(g){if(g instanceof TypeError&&this[I.zN]?.())return Q.call(this[I.Qy],A,e,t);throw g}}}}return{get:function(e){try{return n.call(this[I.Qy],e*r,t)}catch(g){if(g instanceof TypeError&&this[I.zN]?.())return n.call(this[I.Qy],e*r,t);throw(0,i.qx)(A,e,g)}},set:function(e,g){try{return Q.call(this[I.Qy],e*r,g,t)}catch(n){if(n instanceof TypeError&&this[I.zN]?.())return Q.call(this[I.Qy],e*r,g,t);throw(0,i.qx)(A,e,n)}}}}}})},6135:(A,e,t)=>{var g=t(6560),i=t(3456);(0,g.co)({defineToJSON:()=>({value(){return(0,i.F)(this,!0)}})})},3793:(A,e,t)=>{var g=t(6560),i=t(4762),I=t(8e3);(0,g.co)({defineTypedArray(A){const e=this,t=this.getTypedArray(A);return(0,I.NV)({get(){const A=this.dataView,e=A.byteLength/t.BYTES_PER_ELEMENT;return new t(A.buffer,A.byteOffset,e)},set(g,I){if(g?.[Symbol.toStringTag]!==t.name)throw new i.Pd(t.name,g);const r=new DataView(g.buffer,g.byteOffset,g.byteLength);e.assignView(this,r,A,!0,I)}})}})},8305:(A,e,t)=>{(0,t(6560).co)({defineMemberUint(A){let e=this.getAccessor;return this.runtimeSafety&&(e=this.addRuntimeCheck(e)),e=this.addIntConversion(e),this.defineMemberUsing(A,e)}})},3456:(A,e,t)=>{t.d(e,{F:()=>C});var g=t(1388),i=t(6560),I=t(4540),r=t(8e3);(0,i.co)({defineValueOf:()=>({value(){return C(this,!1)}})});const n=BigInt(Number.MAX_SAFE_INTEGER),Q=BigInt(Number.MIN_SAFE_INTEGER);function C(A,e){const t={error:e?"return":"throw"},i=(0,r.L9)(t),C=new Map,B=function(A){const r="function"==typeof A?g.ev.Struct:A?.constructor?.[I.ZE];if(void 0===r){if(e){if("bigint"==typeof A&&Q<=A&&A<=n)return Number(A);if(A instanceof Error)return{error:A.message}}return A}let o=C.get(A);if(void 0===o){let e;switch(r){case g.ev.Struct:e=A[I.lf](t),o=A.constructor[I.Wg]&g.sU.IsTuple?[]:{};break;case g.ev.Union:e=A[I.lf](t),o={};break;case g.ev.Array:case g.ev.Vector:case g.ev.Slice:e=A[I.lf](),o=[];break;case g.ev.Pointer:try{o=A["*"]}catch(A){o=Symbol.for("inaccessible")}break;case g.ev.Enum:o=i((()=>String(A)));break;case g.ev.Opaque:o={};break;default:o=i((()=>A.$))}if(o=B(o),C.set(A,o),e)for(const[A,t]of e)o[A]=B(t)}return o};return B(A)}},8539:(A,e,t)=>{var g=t(6560),i=t(4762);(0,g.co)({defineMemberVoid(A,e){const{bitOffset:t}=A;return{get(){},set:void 0!==t?function(e){if(void 0!==e)throw new i.UQ(A)}:function(e,t){if(void 0!==t)throw new i.UQ(A);if(e<0||e>=this.length)throw new i._l(A,e)}}}})},7679:(A,e,t)=>{var g=t(1388),i=t(6560),I=t(4762),r=t(4540),n=t(8e3);(0,i.co)({defineStructure(A){const{type:e,byteSize:t}=A,i=this[`define${g.EK[e]}`],I=[],Q={},C={dataView:this.defineDataView(A),base64:this.defineBase64(A),toJSON:this.defineToJSON(),valueOf:this.defineValueOf(),[r.KK]:{value:null},[r.Bl]:(0,n.vQ)(Q),[r.Rk]:(0,n.vQ)(I),[r.sF]:this.defineCopier(t),[r.zN]:this.defineRestorer()},B=A.constructor=i.call(this,A,C);for(const[A,e]of Object.entries(C)){const t=e?.set;t&&!Q[A]&&"$"!==A&&(Q[A]=t,I.push(A))}return(0,n.ny)(B.prototype,C),B},finalizeStructure(A){const{name:e,type:t,constructor:i,align:I,byteSize:Q,flags:C,signature:B,static:{members:o,template:s}}=A,a=[],E={name:(0,n.vQ)(e),toJSON:this.defineToJSON(),valueOf:this.defineValueOf(),[r.J2]:(0,n.vQ)(B),[r.M0]:(0,n.vQ)(this),[r.Ec]:(0,n.vQ)(I),[r.SK]:(0,n.vQ)(Q),[r.ZE]:(0,n.vQ)(t),[r.Wg]:(0,n.vQ)(C),[r.n5]:(0,n.vQ)(a),[r.pM]:(0,n.vQ)(this.getTypedArray(A)),[Symbol.iterator]:this.defineStructIterator(),[r.lf]:this.defineStructEntries(),[r.n5]:(0,n.vQ)(a)},c={[Symbol.toStringTag]:(0,n.vQ)(e)};for(const A of o){const{name:e,slot:t}=A;if(A.structure.type===g.ev.Function){const i=s[r._f][t];E[e]=(0,n.vQ)(i),i.name||(0,n.n8)(i,"name",(0,n.vQ)(e));const[I,Q]=/^(get|set)\s+([\s\S]+)/.exec(e)?.slice(1)??[],C="get"===I?0:1;if(I&&i.length===C&&(E[Q]||={},E[Q][I]=i),A.flags&g.pK.IsMethod){const A=function(...A){try{return i(this,...A)}catch(A){throw A[r.q6]?.(1),A}};(0,n.ny)(A,{name:(0,n.vQ)(e),length:(0,n.vQ)(i.length-1)}),c[e]=(0,n.vQ)(A),I&&A.length===C&&((c[Q]||={})[I]=A)}}else E[e]=this.defineMember(A),a.push(e)}E[r._f]=a.length>0&&(0,n.vQ)(s[r._f]);const u=this[`finalize${g.EK[t]}`];!1!==u?.call(this,A,E,c)&&((0,n.ny)(i.prototype,c),(0,n.ny)(i,E))},createConstructor(A,e={}){const{type:t,byteSize:i,align:Q,flags:C,instance:{members:B,template:o}}=A,{onCastError:s}=e;let a;if(o?.[r._f]){const A=B.filter((A=>A.flags&g.pK.IsReadOnly));A.length>0&&(a=A.map((A=>A.slot)))}const E=new n.UF,c=this,u=function(e,n={}){const{allocator:B}=n,l=this instanceof u;let f,h;if(l){if(0===arguments.length)throw new I.ci(A);if(f=this,C&g.yi.HasSlot&&(f[r._f]={}),r.IW in f)f[r.Zv](e,B),h=f[r.Qy];else{const A=t!==g.ev.Pointer?B:null;f[r.Qy]=h=c.allocateMemory(i,Q,A)}}else{if(r.mL in u&&(f=u[r.mL].call(this,e,n),!1!==f))return f;if(h=c.extractView(A,e,s),f=E.find(h))return f;f=Object.create(u.prototype),r.IW in f?c.assignView(f,h,A,!1,!1):f[r.Qy]=h,C&g.yi.HasSlot&&(f[r._f]={})}if(a)for(const A of a)f[r._f][A]=o[r._f][A];return f[r.f$]?.(),l&&(r.IW in f||f[r.Zv](e,B)),r.vm in f&&(f=f[r.vm]()),E.save(h,f)};return(0,n.n8)(u,r.fV,(0,n.vQ)(E)),o?.[r.Qy]&&(0,n.n8)(o,r.zN,this.defineRestorer()),u},createApplier(A){const{instance:{template:e}}=A;return function(t,g){const i=Object.keys(t),n=this[r.Rk],Q=this[r.Bl];for(const e of i)if(!(e in Q))throw new I.xH(A,e);let C=0,B=0,o=0,s=0;for(const A of n){const e=Q[A];e.special?A in t&&s++:(C++,A in t?B++:e.required&&o++)}if(0!==o&&0===s){const e=n.filter((A=>Q[A].required&&!(A in t)));throw new I.SB(A,e)}if(s+B>i.length)for(const A of n)A in t&&(i.includes(A)||i.push(A));B<C&&0===s&&e&&e[r.Qy]&&this[r.sF](e);for(const A of i)Q[A].call(this,t[A],g);return i.length}},getTypedArray(A){const{type:e,instance:t}=A;if(void 0!==e&&t){const[A]=t.members;switch(e){case g.ev.Enum:case g.ev.ErrorSet:case g.ev.Primitive:{const{byteSize:e,type:t}=A,i=t===g.Z9.Float?"Float":t===g.Z9.Int?"Int":"Uint",I=e>4&&t!==g.Z9.Float?"Big":"";return globalThis[I+i+8*e+"Array"]}case g.ev.Array:case g.ev.Slice:case g.ev.Vector:return this.getTypedArray(A.structure)}}}})},2244:(A,e,t)=>{var g=t(1388),i=t(6560),I=t(4762),r=t(4540),n=t(8e3);(0,i.co)({defineArgStruct(A,e){const{flags:t,byteSize:i,align:Q,length:C,instance:{members:B}}=A,o=this,s=B.slice(1),a=function(A,e){const n=this instanceof a;let B,E;if(n?(B=this,E=o.allocateMemory(i,Q)):(B=Object.create(a.prototype),E=A),B[r.Qy]=E,t&g.yi.HasSlot&&(B[r._f]={}),!n)return B;{let i;if(t&g.e2.HasOptions&&A.length===C+1&&(i=A.pop()),A.length!==C)throw new I.nz(C,A.length);t&g.e2.IsAsync&&(B[r.vm]=null),o.copyArguments(B,A,s,i,e)}};for(const A of B)e[A.name]=this.defineMember(A);const E=e.retval.set;return e.length=(0,n.vQ)(s.length),e[r.tZ]=t&g.yi.HasObject&&this.defineVivificatorStruct(A),e[r.g9]=t&g.yi.HasPointer&&this.defineVisitorArgStruct(B),e[r.zg]=(0,n.vQ)((function(A){E.call(this,A,this[r.Gz])})),e[Symbol.iterator]=this.defineArgIterator?.(s),e[r.sF]=this.defineRetvalCopier(B[0]),a},finalizeArgStruct(A,e){const{flags:t}=A;e[r.du]=(0,n.vQ)(!!(t&g.e2.IsThrowing))}})},9433:(A,e,t)=>{var g=t(6560),i=t(4540),I=t(8e3);(0,g.co)({defineFinalizerArray:({get:A,set:e})=>({value(){const t=new Proxy(this,r);return(0,I.ny)(this,{[i.rG]:{value:t},get:{value:A.bind(this)},set:e&&{value:e.bind(this)}}),t}}),defineVivificatorArray(A){const{instance:{members:[e]}}=A,{byteSize:t,structure:g}=e,I=this;return{value:function(A){const{constructor:e}=g;this[i.zN]?.();const r=this[i.Qy],n=r.byteOffset+t*A,Q=I.obtainView(r.buffer,n,t);return this[i._f][A]=e.call(i.f7,Q)}}}});const r={get(A,e){const t="symbol"==typeof e?0:0|e;return 0!==t||t==e?A.get(t):e===i.sO?A:A[e]},set(A,e,t){const g="symbol"==typeof e?0:0|e;return 0!==g||g==e?A.set(g,t):A[e]=t,!0},deleteProperty(A,e){const t="symbol"==typeof e?0:0|e;return 0===t&&t!=e&&(delete A[e],!0)},has(A,e){const t="symbol"==typeof e?0:0|e;return 0!==t||t==e?t>=0&&t<A.length:A[e]},ownKeys(A){const e=[];for(let t=0,g=A.length;t<g;t++)e.push(`${t}`);return e.push("length",i.rG),e},getOwnPropertyDescriptor(A,e){const t="symbol"==typeof e?0:0|e;return 0===t&&t!=e?Object.getOwnPropertyDescriptor(A,e):t>=0&&t<A.length?{value:A.get(t),enumerable:!0,writable:!0,configurable:!0}:void 0}}},3509:(A,e,t)=>{var g=t(1388),i=t(6560),I=t(4762),r=t(4540),n=t(8e3);(0,i.co)({defineArray(A,e){const{length:t,instance:{members:[i]},flags:Q}=A,C=this.createApplier(A),B=this.defineMember(i),{set:o}=B,s=this.createConstructor(A),a=function(e,i){if((0,n.pU)(e,s))this[r.sF](e),Q&g.yi.HasPointer&&this[r.g9]("copy",g.F7.Vivificate,e);else if("string"==typeof e&&Q&g.uE.IsString&&(e={string:e}),e?.[Symbol.iterator]){if((e=(0,n.FU)(e)).length!==t)throw new I.Y8(A,this,e);let g=0;for(const A of e)o.call(this,g++,A,i)}else if(e&&"object"==typeof e){if(0===C.call(this,e))throw new I.L2(A,e)}else if(void 0!==e)throw new I.L2(A,e)};return e.$={get:n.V_,set:a},e.length=(0,n.vQ)(t),e.entries=e[r.lf]=this.defineArrayEntries(),Q&g.uE.IsTypedArray&&(e.typedArray=this.defineTypedArray(A),Q&g.uE.IsString&&(e.string=this.defineString(A)),Q&g.uE.IsClampedArray&&(e.clampedArray=this.defineClampedArray(A))),e[Symbol.iterator]=this.defineArrayIterator(),e[r.Zv]=(0,n.vQ)(a),e[r.vm]=this.defineFinalizerArray(B),e[r.tZ]=Q&g.yi.HasObject&&this.defineVivificatorArray(A),e[r.g9]=Q&g.yi.HasPointer&&this.defineVisitorArray(),s},finalizeArray(A,e){const{flags:t,instance:{members:[i]}}=A;e.child=(0,n.vQ)(i.structure.constructor),e[r.fd]=t&g.uE.HasSentinel&&this.defineSentinel(A)}})},7382:(A,e,t)=>{var g=t(1388),i=t(6560),I=t(4762),r=t(4540),n=t(8e3);(0,i.co)({defineFunction(A,e){const{instance:{members:[t],template:i},static:{template:Q}}=A,C=new n.UF,{structure:{constructor:B}}=t,o=this,s=function(e){const t=this instanceof s;let a,E;if(t){if(0===arguments.length)throw new I.ci(A);if("function"!=typeof e)throw new I.Pd("function",e);if(B[r.ZE]===g.ev.VariadicStruct||!Q)throw new I.O0;a=o.getFunctionThunk(e,Q)}else{if(this!==r.M0)throw new I.Qm;a=e}if(E=C.find(a))return E;const c=B.prototype.length,u=t?o.createInboundCaller(e,B):o.createOutboundCaller(i,B);return(0,n.ny)(u,{length:(0,n.vQ)(c),name:(0,n.vQ)(t?e.name:"")}),Object.setPrototypeOf(u,s.prototype),u[r.Qy]=a,C.save(a,u),u};return Object.setPrototypeOf(s.prototype,Function.prototype),e.valueOf=e.toJSON=(0,n.vQ)(n.Ng),s},finalizeFunction(A,e,t){t[Symbol.toStringTag]=void 0}})},1425:(A,e,t)=>{var g=t(1388),i=t(6560),I=t(4762),r=t(4540),n=t(8e3);function Q(A,e){return(0,n.xN)(A?.constructor?.child,e)&&A["*"]}function C(A,e,t){if(t&g.UT.IsMultiple){if(A?.constructor?.child?.child===e.child&&A["*"])return!0;if(t&g.UT.IsSingle&&Q(A,e.child))return!0}return!1}(0,i.co)({definePointer(A,e){const{flags:t,byteSize:i,instance:{members:[B]}}=A,{structure:a}=B,{type:E,flags:c,byteSize:u=1}=a,l=t&g.UT.HasLength?i/2:i,{get:f,set:h}=this.defineMember({type:g.Z9.Uint,bitOffset:0,bitSize:8*l,byteSize:l,structure:{byteSize:l}}),{get:w,set:D}=t&g.UT.HasLength?this.defineMember({type:g.Z9.Uint,bitOffset:8*l,bitSize:8*l,byteSize:l,structure:{flags:g.AD.IsSize,byteSize:l}}):{},y=function(A,e=!0,i=!0){if(e||this[r.Qy][r.Dr]){if(!i)return this[r._f][0]=void 0;{const e=N.child,i=f.call(this),I=t&g.UT.HasLength?w.call(this):E===g.ev.Slice&&c&g.tv.HasSentinel?U.findSentinel(i,e[r.fd].bytes)+1:1;if(i!==this[r.c6]||I!==this[r.uL]){const n=U.findMemory(A,i,I,e[r.SK]),Q=n?e.call(r.M0,n):null;return this[r._f][0]=Q,this[r.c6]=i,this[r.uL]=I,t&g.UT.HasLength&&(this[r.E2]=null),Q}}}return this[r._f][0]},d=function(A){h.call(this,A),this[r.c6]=A},p=c&g.tv.HasSentinel?1:0,S=t&g.UT.HasLength||c&g.tv.HasSentinel?function(A){D?.call?.(this,A-p),this[r.uL]=A}:null,m=function(){const A=this[r.C7]??this,e=!A[r._f][0],i=y.call(A,null,e);if(!i){if(t&g.UT.IsNullable)return null;throw new I.BY}return t&g.UT.IsConst?o(i):i},F=c&g.yi.HasValue?function(){return m.call(this).$}:m,b=t&g.UT.IsConst?I.V0:function(A){return m.call(this).$=A},U=this,k=function(e,i){const B=a.constructor;if(Q(e,B)){if(!(t&g.UT.IsConst)&&e.constructor.const)throw new I.G9(A,e);e=e[r._f][0]}else if(t&g.UT.IsMultiple)C(e,B,t)&&(e=B(e[r._f][0][r.Qy]));else if(E===g.ev.Slice&&c&g.tv.IsOpaque&&e)if(e.constructor[r.ZE]===g.ev.Pointer)e=e[r.Qn]?.[r.Qy];else if(e[r.Qy])e=e[r.Qy];else if(e?.buffer instanceof ArrayBuffer&&!(e instanceof Uint8Array||e instanceof DataView)){const{byteOffset:A,byteLength:t}=e;void 0!==A&&void 0!==t&&(e=new DataView(e.buffer,A,t))}if(e instanceof B){e[r.zN]?.();const i=e[r.KK];if(i){if(!(t&g.UT.IsConst))throw new I.ck(A);e=i}}else if((0,n.pU)(e,B))e=B.call(r.M0,e[r.Qy]);else if(t&g.UT.IsSingle&&t&g.UT.IsMultiple&&e instanceof B.child)e=B(e[r.Qy]);else if(function(A,e){const t=A?.[Symbol.toStringTag];if(t){const g=e[r.pM];if(g)switch(t){case g.name:case"DataView":return!0;case"ArrayBuffer":return g===Uint8Array||g===Int8Array;case"Uint8ClampedArray":return g===Uint8Array}if(e.child&&void 0!==(0,n.be)(A,e.child))return!0}return!1}(e,B))e=B(U.extractView(a,e));else if(null==e||e[r.Qy]){if(!(void 0===e||t&g.UT.IsNullable&&null===e))throw new I.QB(A,e)}else{if(t&g.UT.IsSingle&&t&g.UT.IsMultiple&&"object"==typeof e&&!e[Symbol.iterator]){let A=!0;const t=B.prototype[r.Bl];for(const g of Object.keys(e)){const e=t[g];if(e?.special){A=!1;break}}A&&(e=[e])}if(r.pM in B&&e?.buffer&&e[Symbol.iterator])throw new I.QB(A,e);e=new B(e,{allocator:i})}const o=e?.[r.Qy]?.[r.Dr];if(o?.address===n.Y$)throw new I.xp(e);this[r.Qn]=e},N=this.createConstructor(A);return e["*"]={get:F,set:b},e.$={get:n.V_,set:k},e.length={get:function(){const A=m.call(this);return A?A.length:0},set:function(A){A|=0;const e=m.call(this);if(!e){if(0!==A)throw new I._L(A,0);return}if(e.length===A)return;e[r.zN]?.();const i=e[r.Qy],n=i[r.Dr];let Q;if(n||(t&g.UT.HasLength?(this[r.E2]||=e.length,Q=this[r.E2]):Q=(i.buffer.byteLength-i.byteOffset)/u|0),A<0||A>Q)throw new I._L(A,Q);const C=A*u,B=n?U.obtainZigView(n.address,C):U.obtainView(i.buffer,i.byteOffset,C),o=a.constructor;this[r._f][0]=o.call(r.M0,B),S?.call?.(this,A)}},e.slice=E===g.ev.Slice&&{value(A,e){const t=this[r.Qn].slice(A,e);return new N(t)}},e.subarray=E===g.ev.Slice&&{value(A,e,t){const g=this[r.Qn].subarray(A,e,t);return new N(g)}},e[Symbol.toPrimitive]=E===g.ev.Primitive&&{value(A){return this[r.Qn][Symbol.toPrimitive](A)}},e[r.Zv]=(0,n.vQ)(k),e[r.vm]={value(){const A=E!==g.ev.Pointer?s:{};let e;E===g.ev.Function?(e=function(){},e[r.Qy]=this[r.Qy],e[r._f]=this[r._f],Object.setPrototypeOf(e,N.prototype)):e=this;const t=new Proxy(e,A);return Object.defineProperty(e,r.rG,{value:t}),t}},e[r.Qn]={get:m,set:function(A){if(void 0===A)return;const e=this[r.C7]??this;if(A){const t=A[r.Qy][r.Dr];if(t){const{address:e,js:g}=t;d.call(this,e),S?.call?.(this,A.length),g&&(A[r.Qy][r.Dr]=void 0)}else if(e[r.Qy][r.Dr])throw new I.x1}else e[r.Qy][r.Dr]&&(d.call(this,0),S?.call?.(this,0));e[r._f][0]=A??null,t&g.UT.HasLength&&(e[r.E2]=null)}},e[r.q6]=(0,n.vQ)(y),e[r.BD]={set:d},e[r.pi]={set:S},e[r.g9]=this.defineVisitor(),e[r.c6]=(0,n.vQ)(0),e[r.uL]=(0,n.vQ)(0),e[r.E2]=t&g.UT.HasLength&&(0,n.vQ)(null),e.dataView=e.base64=void 0,N},finalizePointer(A,e){const{flags:t,constructor:i,instance:{members:[B]}}=A,{structure:o}=B,{type:s,constructor:a}=o;e.child=a?(0,n.vQ)(a):{get:()=>o.constructor},e.const=(0,n.vQ)(!!(t&g.UT.IsConst)),e[r.mL]={value(e,n){if(this===r.M0||this===r.f7||e instanceof i)return!1;if(Q(e,a))return new i(a(e["*"]),n);if(C(e,a,t))return new i(e);if(s===g.ev.Slice)return new i(a(e),n);throw new I.zy(A)}}}});const B=new WeakMap;function o(A){let e=B.get(A);if(!e){const t=A[r.C7];e=t?new Proxy(t,a):new Proxy(A,E),B.set(A,e)}return e}const s={get:(A,e)=>e===r.C7?A:e in A?A[e]:A[r.Qn][e],set:(A,e,t)=>(e in A?A[e]=t:A[r.Qn][e]=t,!0),deleteProperty:(A,e)=>(e in A?delete A[e]:delete A[r.Qn][e],!0),has:(A,e)=>e in A||e in A[r.Qn],apply:(A,e,t)=>A["*"].apply(e,t)},a={...s,set:(A,e,t)=>(e in A?(0,I.V0)():A[r.Qn][e]=t,!0)},E={get(A,e){if(e===r.KK)return A;{const t=A[e];return t?.[r.Qy]?o(t):t}},set(A,e,t){(0,I.V0)()}}},8773:(A,e,t)=>{var g=t(6560),i=t(4762),I=t(4540),r=t(8e3);(0,g.co)({definePrimitive(A,e){const{instance:{members:[t]}}=A,g=this.createApplier(A),{get:n,set:Q}=this.defineMember(t),C=function(e){if((0,r.pU)(e,B))this[I.sF](e);else if(e&&"object"==typeof e){if(0===g.call(this,e)){const g=(0,r.BF)(t);throw new i.is(A,g,e)}}else void 0!==e&&Q.call(this,e)},B=this.createConstructor(A);return e.$={get:n,set:C},e[I.Zv]=(0,r.vQ)(C),e[Symbol.toPrimitive]=(0,r.vQ)(n),B},finalizePrimitive(A,e){const{instance:{members:[t]}}=A;e[I.Qt]=(0,r.vQ)(t.bitSize),e[I.uT]=(0,r.vQ)(t.type)}})},3086:(A,e,t)=>{var g=t(1388),i=t(6560),I=t(4762),r=t(4540),n=t(8e3);function Q(){return this[r.pi]}function C(A,e){return(A|=0)<0?(A=e+A)<0&&(A=0):A>e&&(A=e),A}(0,i.co)({defineSlice(A,e){const{align:t,flags:i,byteSize:B,name:o,instance:{members:[s]}}=A,{byteSize:a,structure:E}=s,c=this,u=function(A,e,g){A||(A=c.allocateMemory(e*a,t,g)),this[r.Qy]=A,this[r.pi]=e},l=function(e,t){if(t!==this[r.pi])throw new I.Y8(A,this,e)},f=this.defineMember(s),{set:h}=f,w=this.createApplier(A),D=function(e,t){if((0,n.pU)(e,d))this[r.Qy]?l.call(this,e,e.length):u.call(this,null,e.length,t),this[r.sF](e),i&g.yi.HasPointer&&this[r.g9]("copy",g.F7.Vivificate,e);else if("string"==typeof e&&i&g.tv.IsString)D.call(this,{string:e},t);else if(e?.[Symbol.iterator]){e=(0,n.FU)(e),this[r.Qy]?l.call(this,e,e.length):u.call(this,null,e.length,t);let A=0;for(const g of e)d[r.fd]?.validateValue(g,A,e.length),h.call(this,A++,g,t)}else if("number"==typeof e){if(!(!this[r.Qy]&&e>=0&&isFinite(e)))throw new I.L2(A,e,!this[r.Qy]);u.call(this,null,e,t)}else if(e&&"object"==typeof e){if(0===w.call(this,e,t))throw new I.L2(A,e)}else if(void 0!==e)throw new I.L2(A,e)},y=function(A,e){const t=this[r.pi],g=this[r.Qy];A=void 0===A?0:C(A,t),e=void 0===e?t:C(e,t);const i=A*a,I=e*a-i;return c.obtainView(g.buffer,g.byteOffset+i,I)},d=this.createConstructor(A);return e.$={get:n.V_,set:D},e.length={get:Q},i&g.tv.IsTypedArray&&(e.typedArray=this.defineTypedArray(A),i&g.tv.IsString&&(e.string=this.defineString(A)),i&g.tv.IsClampedArray&&(e.clampedArray=this.defineClampedArray(A))),e.entries=e[r.lf]=this.defineArrayEntries(),e.subarray={value(A,e){const t=y.call(this,A,e);return d(t)}},e.slice={value(A,e,g={}){const{zig:i=!1}=g,I=y.call(this,A,e),n=c.allocateMemory(I.byteLength,t,i),Q=d(n);return Q[r.sF]({[r.Qy]:I}),Q}},e[Symbol.iterator]=this.defineArrayIterator(),e[r.IW]=(0,n.vQ)(u),e[r.sF]=this.defineCopier(B,!0),e[r.Zv]=(0,n.vQ)(D),e[r.vm]=this.defineFinalizerArray(f),e[r.tZ]=i&g.yi.HasObject&&this.defineVivificatorArray(A),e[r.g9]=i&g.yi.HasPointer&&this.defineVisitorArray(),d},finalizeSlice(A,e){const{flags:t,instance:{members:[i]}}=A;e.child=(0,n.vQ)(i.structure.constructor),e[r.fd]=t&g.tv.HasSentinel&&this.defineSentinel(A)}})},8991:(A,e,t)=>{var g=t(1388),i=t(6560),I=t(4762),r=t(4540);(0,i.co)({defineVivificatorStruct(A){const{instance:{members:e}}=A,t={};for(const A of e.filter((A=>A.type===g.Z9.Object)))t[A.slot]=A;const i=this;return{value(A){const e=t[A],{bitOffset:g,byteSize:n,structure:{constructor:Q}}=e;this[r.zN]?.();const C=this[r.Qy],B=C.byteOffset+(g>>3);let o=n;if(void 0===o){if(7&g)throw new I.Vp(e);o=e.bitSize>>3}const s=i.obtainView(C.buffer,B,o);return this[r._f][A]=Q.call(r.f7,s)}}}})},8771:(A,e,t)=>{var g=t(1388),i=t(6560),I=t(4762),r=t(4540),n=t(8e3);(0,i.co)({defineStruct(A,e){const{flags:t,length:i,instance:{members:Q}}=A,C=Q.find((A=>A.flags&g.pK.IsBackingInt)),B=C&&this.defineMember(C),o=this.createApplier(A),s=function(e,i){if((0,n.pU)(e,a))this[r.sF](e),t&g.yi.HasPointer&&this[r.g9]("copy",0,e);else if(e&&"object"==typeof e)o.call(this,e,i);else if("number"!=typeof e&&"bigint"!=typeof e||!B){if(void 0!==e)throw new I.is(A,"object",e)}else B.set.call(this,e)},a=this.createConstructor(A),E=e[r.Bl].value,c=e[r.Rk].value,u=[];for(const A of Q.filter((A=>!!A.name))){const{name:t,flags:i}=A,{set:I}=e[t]=this.defineMember(A);I&&(i&g.pK.IsRequired&&(I.required=!0),E[t]=I,c.push(t)),u.push(t)}return e.$={get:n.Ng,set:s},e.length=(0,n.vQ)(i),e.entries=t&g.sU.IsTuple&&this.defineVectorEntries(),e[Symbol.toPrimitive]=B&&{value(A){return"string"===A?Object.prototype.toString.call(this):B.get.call(this)}},e[Symbol.iterator]=t&g.sU.IsIterator?this.defineZigIterator():t&g.sU.IsTuple?this.defineVectorIterator():this.defineStructIterator(),e[r.Zv]=(0,n.vQ)(s),e[r.tZ]=t&g.yi.HasObject&&this.defineVivificatorStruct(A),e[r.g9]=t&g.yi.HasPointer&&this.defineVisitorStruct(Q),e[r.lf]=t&g.sU.IsTuple?this.defineVectorEntries():this.defineStructEntries(),e[r.n5]=(0,n.vQ)(u),t&g.sU.IsAllocator&&(e.alloc=this.defineAlloc(),e.free=this.defineFree(),e.dupe=this.defineDupe()),a}})},4540:(A,e,t)=>{t.d(e,{BD:()=>w,Bl:()=>G,C7:()=>a,Dr:()=>C,E2:()=>f,Ec:()=>b,Gz:()=>R,IW:()=>T,J2:()=>x,KK:()=>U,M0:()=>k,Qn:()=>u,Qt:()=>F,Qy:()=>r,Rk:()=>h,SK:()=>m,Wg:()=>o,ZE:()=>B,Zv:()=>P,_d:()=>L,_f:()=>n,c6:()=>y,du:()=>J,eR:()=>K,f$:()=>z,f7:()=>Q,fV:()=>S,fd:()=>E,g9:()=>O,iw:()=>N,lf:()=>l,mL:()=>j,n5:()=>s,pM:()=>v,pi:()=>D,q6:()=>Y,rG:()=>p,sF:()=>V,sO:()=>c,tZ:()=>H,uL:()=>d,uT:()=>M,vm:()=>Z,wg:()=>X,zN:()=>q,zg:()=>W});const g=globalThis[Symbol.for("ZIGAR")]||={};function i(A){return g[A]||=Symbol(A)}function I(A){return i(A)}const r=I("memory"),n=I("slots"),Q=I("parent"),C=I("zig"),B=(I("name"),I("type")),o=I("flags"),s=(I("class"),I("tag"),I("props")),a=I("pointer"),E=I("sentinel"),c=I("array"),u=(I("items"),I("target")),l=I("entries"),f=I("max length"),h=I("keys"),w=I("address"),D=I("length"),y=I("last address"),d=I("last length"),p=I("proxy"),S=I("cache"),m=I("size"),F=I("bit size"),b=I("align"),U=I("const target"),k=I("environment"),N=I("attributes"),M=I("primitive"),G=(I("getters"),I("setters")),v=I("typed array"),J=I("throwing"),K=I("promise"),L=I("generator"),R=I("allocator"),x=(I("fallback"),I("signature")),Y=I("update"),q=I("restore"),H=(I("reset"),I("vivificate")),O=I("visit"),V=I("copy"),T=I("shape"),P=I("initialize"),z=I("restrict"),Z=I("finalize"),j=I("cast"),W=I("return"),X=I("yield")},8e3:(A,e,t)=>{t.d(e,{$k:()=>l,Au:()=>D,BF:()=>C,FU:()=>y,Fy:()=>f,Ie:()=>U,L9:()=>Q,NV:()=>m,Ng:()=>F,UF:()=>k,V_:()=>b,WG:()=>o,Y$:()=>h,ZG:()=>E,be:()=>d,cv:()=>w,g7:()=>B,hJ:()=>u,n8:()=>I,ny:()=>r,on:()=>c,pU:()=>S,vQ:()=>n,xN:()=>p,y4:()=>s});var g=t(1388),i=t(4540);function I(A,e,t){if(t){const{set:g,get:i,value:I,enumerable:r,configurable:n=!0,writable:Q=!0}=t;Object.defineProperty(A,e,i||g?{get:i,set:g,configurable:n,enumerable:r}:{value:I,configurable:n,enumerable:r,writable:Q})}return A}function r(A,e){for(const[t,g]of Object.entries(e))I(A,t,g);for(const t of Object.getOwnPropertySymbols(e))I(A,t,e[t]);return A}function n(A){return void 0!==A?{value:A}:void 0}function Q(A){return"return"===A?.error?A=>{try{return A()}catch(A){return A}}:A=>A()}function C({type:A,bitSize:e}){switch(A){case g.Z9.Bool:return"boolean";case g.Z9.Int:case g.Z9.Uint:if(e>32)return"bigint";case g.Z9.Float:return"number"}}function B(A,e="utf-8"){const t=a[e]||=new TextDecoder(e);let g;if(Array.isArray(A))if(1===A.length)g=A[0];else{let e=0;for(const t of A)e+=t.length;const{constructor:t}=A[0];g=new t(e);let i=0;for(const e of A)g.set(e,i),i+=e.length}else g=A;return"SharedArrayBuffer"===g.buffer[Symbol.toStringTag]&&(g=new g.constructor(g)),t.decode(g)}function o(A){const e=new Uint8Array(A.buffer,A.byteOffset,A.byteLength),t=String.fromCharCode.apply(null,e);return btoa(t)}function s(A){const e=atob(A),t=new Uint8Array(e.length);for(let A=0;A<t.byteLength;A++)t[A]=e.charCodeAt(A);return new DataView(t.buffer)}const a={};function E(A,e,t){let g=0,i=A.length;if(0===i)return 0;for(;g<i;){const I=Math.floor((g+i)/2);t(A[I])<=e?g=I+1:i=I}return i}const c=function(A,e){return!!e&&!!(A&e-1)},u=function(A,e){return A+(e-1)&~(e-1)},l=0,f=4294967295,h=-1,w=function(A){return 2863311530===A||-1431655766===A},D=function(A,e){return A+e};function y(A){if("number"==typeof A.length)return A;const e=A[Symbol.iterator](),t=e.next(),g=t.value?.length;if("number"==typeof g&&"length"===Object.keys(t.value).join())return Object.assign(function*(){let A;for(;!(A=e.next()).done;)yield A.value}(),{length:g});{const A=[];let g=t;for(;!g.done;)A.push(g.value),g=e.next();return A}}function d(A,e){const{constructor:t}=A;return t===e?1:t.child===e?A.length:void 0}function p(A,e){return A===e||A?.[i.J2]===e[i.J2]&&A?.[i.M0]!==e?.[i.M0]}function S(A,e){return A instanceof e||p(A?.constructor,e)}function m({get:A,set:e}){return A.special=e.special=!0,{get:A,set:e}}function F(){return this}function b(){return this[i.rG]}function U(){}class k{map=new WeakMap;find(A){return this.map.get(A)}save(A,e){return this.map.set(A,e),e}}},8502:(A,e,t)=>{t.d(e,{k:()=>n});var g=t(1388),i=t(6560),I=t(4762),r=t(4540);function n(A,e,t,i){let I,n=this[r._f][A];if(!n){if(t&g.F7.IgnoreUncreated)return;n=this[r.tZ](A)}i&&(I=i[r._f][A],!I)||n[r.g9](e,t,I)}(0,i.co)({defineVisitor:()=>({value(A,e,t){let g;g="string"==typeof A?Q[A]:A,g.call(this,e,t)}})});const Q={copy(A,e){const t=e[r._f][0];if(this[r.Qy][r.Dr]&&t&&!t[r.Qy][r.Dr])throw new I.x1;this[r._f][0]=t},clear(A){A&g.F7.IsInactive&&(this[r._f][0]=void 0)},reset(){this[r._f][0]=void 0,this[r.c6]=void 0}}},9025:(A,e,t)=>{var g=t(1388),i=t(6560),I=t(8502);(0,i.co)({defineVisitorArgStruct(A){const e=[];let t;for(const[i,{slot:I,structure:r}]of A.entries())r.flags&g.yi.HasPointer&&(0===i?t=I:e.push(I));return{value(A,i,r){if(!(i&g.F7.IgnoreArguments)&&e.length>0)for(const t of e)I.k.call(this,t,A,i|g.F7.IsImmutable,r);i&g.F7.IgnoreRetval||void 0===t||I.k.call(this,t,A,i,r)}}}})},5558:(A,e,t)=>{var g=t(1388),i=t(6560),I=t(8502);(0,i.co)({defineVisitorStruct(A){const e=A.filter((A=>A.structure?.flags&g.yi.HasPointer)).map((A=>A.slot));return{value(A,t,g){for(const i of e)I.k.call(this,i,A,t,g)}}}})}},I={};function r(A){var e=I[A];if(void 0!==e)return e.exports;var t=I[A]={exports:{}};return i[A](t,t.exports,r),t.exports}A="function"==typeof Symbol?Symbol("webpack queues"):"__webpack_queues__",e="function"==typeof Symbol?Symbol("webpack exports"):"__webpack_exports__",t="function"==typeof Symbol?Symbol("webpack error"):"__webpack_error__",g=A=>{A&&A.d<1&&(A.d=1,A.forEach((A=>A.r--)),A.forEach((A=>A.r--?A.r++:A())))},r.a=(i,I,r)=>{var n;r&&((n=[]).d=-1);var Q,C,B,o=new Set,s=i.exports,a=new Promise(((A,e)=>{B=e,C=A}));a[e]=s,a[A]=A=>(n&&A(n),o.forEach(A),a.catch((A=>{}))),i.exports=a,I((i=>{var I;Q=(i=>i.map((i=>{if(null!==i&&"object"==typeof i){if(i[A])return i;if(i.then){var I=[];I.d=0,i.then((A=>{r[e]=A,g(I)}),(A=>{r[t]=A,g(I)}));var r={};return r[A]=A=>A(I),r}}var n={};return n[A]=A=>{},n[e]=i,n})))(i);var r=()=>Q.map((A=>{if(A[t])throw A[t];return A[e]})),C=new Promise((e=>{(I=()=>e(r)).r=0;var t=A=>A!==n&&!o.has(A)&&(o.add(A),A&&!A.d&&(I.r++,A.push(I)));Q.map((e=>e[A](t)))}));return I.r?C:r()}),(A=>(A?B(a[t]=A):C(s),g(n)))),n&&n.d<0&&(n.d=0)},r.d=(A,e)=>{for(var t in e)r.o(e,t)&&!r.o(A,t)&&Object.defineProperty(A,t,{enumerable:!0,get:e[t]})},r.o=(A,e)=>Object.prototype.hasOwnProperty.call(A,e);var n=r(8156),Q=(n=await n).A;export{Q as default};
2
+ //# sourceMappingURL=index.mjs.map