diff --git a/app/dist/index.html b/app/dist/index.html index 979c2480..5abfff33 100644 --- a/app/dist/index.html +++ b/app/dist/index.html @@ -4,8 +4,8 @@ Velocity WebOS - - + +
diff --git a/app/node_modules/.package-lock.json b/app/node_modules/.package-lock.json index 41358b5f..0f868fca 100644 --- a/app/node_modules/.package-lock.json +++ b/app/node_modules/.package-lock.json @@ -2162,9 +2162,9 @@ } }, "node_modules/@mediapipe/tasks-vision": { - "version": "0.10.17", - "resolved": "https://registry.npmjs.org/@mediapipe/tasks-vision/-/tasks-vision-0.10.17.tgz", - "integrity": "sha512-CZWV/q6TTe8ta61cZXjfnnHsfWIdFhms03M9T7Cnd5y2mdpylJM0rF1qRq+wsQVRMLz1OYPVEBU9ph2Bx8cxrg==", + "version": "0.10.34", + "resolved": "https://registry.npmjs.org/@mediapipe/tasks-vision/-/tasks-vision-0.10.34.tgz", + "integrity": "sha512-KFGyhDsjJ+9WUMcMfjTOpcEp3LJNS3KwC7BfvKrCYELn/7G/5kmwnU7z6Spps+iWQoTGL8xW8i68r65OTa3DwA==", "license": "Apache-2.0" }, "node_modules/@monogrid/gainmap-js": { @@ -3882,6 +3882,12 @@ } } }, + "node_modules/@react-three/drei/node_modules/@mediapipe/tasks-vision": { + "version": "0.10.17", + "resolved": "https://registry.npmjs.org/@mediapipe/tasks-vision/-/tasks-vision-0.10.17.tgz", + "integrity": "sha512-CZWV/q6TTe8ta61cZXjfnnHsfWIdFhms03M9T7Cnd5y2mdpylJM0rF1qRq+wsQVRMLz1OYPVEBU9ph2Bx8cxrg==", + "license": "Apache-2.0" + }, "node_modules/@react-three/fiber": { "version": "9.5.0", "resolved": "https://registry.npmjs.org/@react-three/fiber/-/fiber-9.5.0.tgz", diff --git a/app/node_modules/.tmp/tsconfig.app.tsbuildinfo b/app/node_modules/.tmp/tsconfig.app.tsbuildinfo index 6e41acca..48a170b4 100644 --- a/app/node_modules/.tmp/tsconfig.app.tsbuildinfo +++ b/app/node_modules/.tmp/tsconfig.app.tsbuildinfo @@ -1 +1 @@ -{"root":["../../src/app.tsx","../../src/global.d.ts","../../src/main.tsx","../../src/app/oracle/page.tsx","../../src/components/layout/loginscreen.tsx","../../src/components/layout/notificationcenter.tsx","../../src/components/layout/sidebar.tsx","../../src/components/modules/catalyst.tsx","../../src/components/modules/catalystmarketingtab.tsx","../../src/components/modules/dashboard.tsx","../../src/components/modules/groundtruthpicker.tsx","../../src/components/modules/inventory.tsx","../../src/components/modules/oracle.tsx","../../src/components/modules/sentinel.tsx","../../src/components/modules/settings.tsx","../../src/components/modules/sentinel/perceptionplayer.tsx","../../src/components/modules/sentinel/sentinellivesession.tsx","../../src/components/oracle/leadinspector.tsx","../../src/components/oracle/pipelineview.tsx","../../src/components/oracle/mockleads.ts","../../src/components/sentinel/journeyriver/inspectorpanel.tsx","../../src/components/sentinel/journeyriver/riverpath.tsx","../../src/components/sentinel/journeyriver/index.tsx","../../src/components/ui/accordion.tsx","../../src/components/ui/alert-dialog.tsx","../../src/components/ui/alert.tsx","../../src/components/ui/aspect-ratio.tsx","../../src/components/ui/avatar.tsx","../../src/components/ui/badge.tsx","../../src/components/ui/breadcrumb.tsx","../../src/components/ui/button-group.tsx","../../src/components/ui/button.tsx","../../src/components/ui/calendar.tsx","../../src/components/ui/card.tsx","../../src/components/ui/carousel.tsx","../../src/components/ui/chart.tsx","../../src/components/ui/checkbox.tsx","../../src/components/ui/collapsible.tsx","../../src/components/ui/command.tsx","../../src/components/ui/context-menu.tsx","../../src/components/ui/dialog.tsx","../../src/components/ui/drawer.tsx","../../src/components/ui/dropdown-menu.tsx","../../src/components/ui/empty.tsx","../../src/components/ui/field.tsx","../../src/components/ui/form.tsx","../../src/components/ui/hover-card.tsx","../../src/components/ui/input-group.tsx","../../src/components/ui/input-otp.tsx","../../src/components/ui/input.tsx","../../src/components/ui/item.tsx","../../src/components/ui/kbd.tsx","../../src/components/ui/label.tsx","../../src/components/ui/menubar.tsx","../../src/components/ui/navigation-menu.tsx","../../src/components/ui/pagination.tsx","../../src/components/ui/popover.tsx","../../src/components/ui/progress.tsx","../../src/components/ui/radio-group.tsx","../../src/components/ui/resizable.tsx","../../src/components/ui/scroll-area.tsx","../../src/components/ui/select.tsx","../../src/components/ui/separator.tsx","../../src/components/ui/sheet.tsx","../../src/components/ui/sidebar.tsx","../../src/components/ui/skeleton.tsx","../../src/components/ui/slider.tsx","../../src/components/ui/sonner.tsx","../../src/components/ui/spinner.tsx","../../src/components/ui/switch.tsx","../../src/components/ui/table.tsx","../../src/components/ui/tabs.tsx","../../src/components/ui/textarea.tsx","../../src/components/ui/toggle-group.tsx","../../src/components/ui/toggle.tsx","../../src/components/ui/tooltip.tsx","../../src/hooks/use-mobile.ts","../../src/hooks/usecrmbootstrap.ts","../../src/hooks/usemediapipefacelandmarker.ts","../../src/hooks/usevelocitysocket.ts","../../src/lib/api.ts","../../src/lib/crmmappers.ts","../../src/lib/oraclequeryclient.ts","../../src/lib/utils.ts","../../src/oracle/components/branchbar.tsx","../../src/oracle/components/canvasviewport.tsx","../../src/oracle/components/componentregistry.tsx","../../src/oracle/components/promptrail.tsx","../../src/oracle/components/rollbackconfirmmodal.tsx","../../src/oracle/components/sharemodal.tsx","../../src/oracle/components/renderers/activitystreamrenderer.tsx","../../src/oracle/components/renderers/barchartrenderer.tsx","../../src/oracle/components/renderers/errornoticerenderer.tsx","../../src/oracle/components/renderers/geomaprenderer.tsx","../../src/oracle/components/renderers/kpitilerenderer.tsx","../../src/oracle/components/renderers/linechartrenderer.tsx","../../src/oracle/components/renderers/pipelineboardrenderer.tsx","../../src/oracle/components/renderers/rendererwrapper.tsx","../../src/oracle/components/renderers/tablerenderer.tsx","../../src/oracle/components/renderers/timelinerenderer.tsx","../../src/oracle/components/review/mergereviewdrawer.tsx","../../src/oracle/hooks/useoracleexecution.ts","../../src/oracle/hooks/useoraclepage.ts","../../src/oracle/lib/oracleapiclient.ts","../../src/oracle/lib/oracledemodata.ts","../../src/oracle/types/canvas.ts","../../src/store/usecurrencystore.ts","../../src/store/usemarketingstore.ts","../../src/store/usestore.ts","../../src/types/crm.ts","../../src/types/index.ts","../../src/utils/curvegenerator.ts","../../src/utils/landmarkpacketencoder.ts"],"version":"5.9.3"} \ No newline at end of file +{"root":["../../src/app.tsx","../../src/main.tsx","../../src/app/admin/page.tsx","../../src/app/oracle/page.tsx","../../src/components/layout/loginscreen.tsx","../../src/components/layout/notificationcenter.tsx","../../src/components/layout/sidebar.tsx","../../src/components/modules/crm.tsx","../../src/components/modules/catalyst.tsx","../../src/components/modules/catalystmarketingtab.tsx","../../src/components/modules/dashboard.tsx","../../src/components/modules/groundtruthpicker.tsx","../../src/components/modules/inventory.tsx","../../src/components/modules/oracle.tsx","../../src/components/modules/sentinel.tsx","../../src/components/modules/settings.tsx","../../src/components/modules/sentinel/perceptionplayer.tsx","../../src/components/modules/sentinel/sentinellivesession.tsx","../../src/components/oracle/leadinspector.tsx","../../src/components/oracle/pipelineview.tsx","../../src/components/sentinel/journeyriver/inspectorpanel.tsx","../../src/components/sentinel/journeyriver/riverpath.tsx","../../src/components/sentinel/journeyriver/index.tsx","../../src/components/ui/accordion.tsx","../../src/components/ui/alert-dialog.tsx","../../src/components/ui/alert.tsx","../../src/components/ui/aspect-ratio.tsx","../../src/components/ui/avatar.tsx","../../src/components/ui/badge.tsx","../../src/components/ui/breadcrumb.tsx","../../src/components/ui/button-group.tsx","../../src/components/ui/button.tsx","../../src/components/ui/calendar.tsx","../../src/components/ui/card.tsx","../../src/components/ui/carousel.tsx","../../src/components/ui/chart.tsx","../../src/components/ui/checkbox.tsx","../../src/components/ui/collapsible.tsx","../../src/components/ui/command.tsx","../../src/components/ui/context-menu.tsx","../../src/components/ui/dialog.tsx","../../src/components/ui/drawer.tsx","../../src/components/ui/dropdown-menu.tsx","../../src/components/ui/empty.tsx","../../src/components/ui/field.tsx","../../src/components/ui/form.tsx","../../src/components/ui/hover-card.tsx","../../src/components/ui/input-group.tsx","../../src/components/ui/input-otp.tsx","../../src/components/ui/input.tsx","../../src/components/ui/item.tsx","../../src/components/ui/kbd.tsx","../../src/components/ui/label.tsx","../../src/components/ui/menubar.tsx","../../src/components/ui/navigation-menu.tsx","../../src/components/ui/pagination.tsx","../../src/components/ui/popover.tsx","../../src/components/ui/progress.tsx","../../src/components/ui/radio-group.tsx","../../src/components/ui/resizable.tsx","../../src/components/ui/scroll-area.tsx","../../src/components/ui/select.tsx","../../src/components/ui/separator.tsx","../../src/components/ui/sheet.tsx","../../src/components/ui/sidebar.tsx","../../src/components/ui/skeleton.tsx","../../src/components/ui/slider.tsx","../../src/components/ui/sonner.tsx","../../src/components/ui/spinner.tsx","../../src/components/ui/switch.tsx","../../src/components/ui/table.tsx","../../src/components/ui/tabs.tsx","../../src/components/ui/textarea.tsx","../../src/components/ui/toggle-group.tsx","../../src/components/ui/toggle.tsx","../../src/components/ui/tooltip.tsx","../../src/hooks/use-mobile.ts","../../src/hooks/usecrmbootstrap.ts","../../src/hooks/usemediapipefacelandmarker.ts","../../src/hooks/usevelocitysocket.ts","../../src/lib/api.ts","../../src/lib/crmapi.ts","../../src/lib/crmmappers.ts","../../src/lib/platformmappers.ts","../../src/lib/utils.ts","../../src/lib/velocityplatformclient.ts","../../src/oracle/components/branchbar.tsx","../../src/oracle/components/canvasviewport.tsx","../../src/oracle/components/componentregistry.tsx","../../src/oracle/components/promptrail.tsx","../../src/oracle/components/rollbackconfirmmodal.tsx","../../src/oracle/components/sharemodal.tsx","../../src/oracle/components/renderers/activitystreamrenderer.tsx","../../src/oracle/components/renderers/barchartrenderer.tsx","../../src/oracle/components/renderers/errornoticerenderer.tsx","../../src/oracle/components/renderers/geomaprenderer.tsx","../../src/oracle/components/renderers/kpitilerenderer.tsx","../../src/oracle/components/renderers/linechartrenderer.tsx","../../src/oracle/components/renderers/pipelineboardrenderer.tsx","../../src/oracle/components/renderers/rendererwrapper.tsx","../../src/oracle/components/renderers/tablerenderer.tsx","../../src/oracle/components/renderers/timelinerenderer.tsx","../../src/oracle/components/review/mergereviewdrawer.tsx","../../src/oracle/hooks/useoracleexecution.ts","../../src/oracle/hooks/useoraclepage.ts","../../src/oracle/lib/oracleapiclient.ts","../../src/oracle/types/canvas.ts","../../src/store/usecurrencystore.ts","../../src/store/usemarketingstore.ts","../../src/store/usestore.ts","../../src/types/crm.ts","../../src/types/crmtypes.ts","../../src/types/index.ts","../../src/utils/curvegenerator.ts","../../src/utils/landmarkpacketencoder.ts"],"version":"5.9.3"} \ No newline at end of file diff --git a/app/node_modules/@mediapipe/tasks-vision/README.md b/app/node_modules/@mediapipe/tasks-vision/README.md index 4af7a1eb..f318b20a 100644 --- a/app/node_modules/@mediapipe/tasks-vision/README.md +++ b/app/node_modules/@mediapipe/tasks-vision/README.md @@ -39,21 +39,6 @@ const landmarks = faceLandmarker.detect(image); For more information, refer to the [Face Landmarker](https://developers.google.com/mediapipe/solutions/vision/face_landmarker/web_js) documentation. -## Face Stylizer - -The MediaPipe Face Stylizer lets you perform face stylization on images. - -``` -const vision = await FilesetResolver.forVisionTasks( - "https://cdn.jsdelivr.net/npm/@mediapipe/tasks-vision/wasm" -); -const faceStylizer = await FaceStylizer.createFromModelPath(vision, - "https://storage.googleapis.com/mediapipe-models/face_stylizer/blaze_face_stylizer/float32/1/blaze_face_stylizer.task" -); -const image = document.getElementById("image") as HTMLImageElement; -const stylizedImage = faceStylizer.stylize(image); -``` - ## Gesture Recognizer The MediaPipe Gesture Recognizer task lets you recognize hand gestures in real diff --git a/app/node_modules/@mediapipe/tasks-vision/package.json b/app/node_modules/@mediapipe/tasks-vision/package.json index 0f51a5e0..1d257d7e 100644 --- a/app/node_modules/@mediapipe/tasks-vision/package.json +++ b/app/node_modules/@mediapipe/tasks-vision/package.json @@ -1,15 +1,23 @@ { "name": "@mediapipe/tasks-vision", - "version": "0.10.17", + "version": "0.10.34", "description": "MediaPipe Vision Tasks", "main": "vision_bundle.cjs", "browser": "vision_bundle.mjs", "module": "vision_bundle.mjs", "exports": { - "import": "./vision_bundle.mjs", - "require": "./vision_bundle.cjs", - "default": "./vision_bundle.mjs", - "types": "./vision.d.ts" + ".": { + "import": "./vision_bundle.mjs", + "require": "./vision_bundle.cjs", + "default": "./vision_bundle.mjs", + "types": "./vision.d.ts" + }, + "./vision_wasm_internal.js": "./wasm/vision_wasm_internal.js", + "./vision_wasm_internal.wasm": "./wasm/vision_wasm_internal.wasm", + "./vision_wasm_nosimd_internal.js": "./wasm/vision_wasm_nosimd_internal.js", + "./vision_wasm_nosimd_internal.wasm": "./wasm/vision_wasm_nosimd_internal.wasm", + "./vision_wasm_module_internal.js": "./wasm/vision_wasm_module_internal.js", + "./vision_wasm_module_internal.wasm": "./wasm/vision_wasm_module_internal.wasm" }, "author": "mediapipe@google.com", "license": "Apache-2.0", diff --git a/app/node_modules/@mediapipe/tasks-vision/vision.d.ts b/app/node_modules/@mediapipe/tasks-vision/vision.d.ts index 0c3892fa..4ee051e4 100644 --- a/app/node_modules/@mediapipe/tasks-vision/vision.d.ts +++ b/app/node_modules/@mediapipe/tasks-vision/vision.d.ts @@ -299,7 +299,7 @@ export declare class DrawingUtils { * * @export * @param boundingBox The bounding box to draw. - * @param style The style to visualize the boundin box. + * @param style The style to visualize the bounding box. */ drawBoundingBox(boundingBox: BoundingBox, style?: DrawingOptions): void; /** @@ -699,133 +699,6 @@ export declare interface FaceLandmarkerResult { facialTransformationMatrixes: Matrix[]; } -/** Performs face stylization on images. */ -export declare class FaceStylizer extends VisionTaskRunner { - /** - * Initializes the Wasm runtime and creates a new Face Stylizer from the - * provided options. - * @export - * @param wasmFileset A configuration object that provides the location of - * the Wasm binary and its loader. - * @param faceStylizerOptions The options for the Face Stylizer. Note - * that either a path to the model asset or a model buffer needs to be - * provided (via `baseOptions`). - */ - static createFromOptions(wasmFileset: WasmFileset, faceStylizerOptions: FaceStylizerOptions): Promise; - /** - * Initializes the Wasm runtime and creates a new Face Stylizer based on - * the provided model asset buffer. - * @export - * @param wasmFileset A configuration object that provides the location of - * the Wasm binary and its loader. - * @param modelAssetBuffer An array or a stream containing a binary - * representation of the model. - */ - static createFromModelBuffer(wasmFileset: WasmFileset, modelAssetBuffer: Uint8Array | ReadableStreamDefaultReader): Promise; - /** - * Initializes the Wasm runtime and creates a new Face Stylizer based on - * the path to the model asset. - * @export - * @param wasmFileset A configuration object that provides the location of - * the Wasm binary and its loader. - * @param modelAssetPath The path to the model asset. - */ - static createFromModelPath(wasmFileset: WasmFileset, modelAssetPath: string): Promise; - private constructor(); - /** - * Sets new options for the Face Stylizer. - * - * Calling `setOptions()` with a subset of options only affects those - * options. You can reset an option back to its default value by - * explicitly setting it to `undefined`. - * - * @export - * @param options The options for the Face Stylizer. - */ - setOptions(options: FaceStylizerOptions): Promise; - /** - * Performs face stylization on the provided single image and invokes the - * callback with result. The method returns synchronously once the callback - * returns. Only use this method when the FaceStylizer is created with the - * image running mode. - * - * @param image An image to process. - * @param callback The callback that is invoked with the stylized image or - * `null` if no face was detected. The lifetime of the returned data is - * only guaranteed for the duration of the callback. - */ - stylize(image: ImageSource, callback: FaceStylizerCallback): void; - /** - * Performs face stylization on the provided single image and invokes the - * callback with result. The method returns synchronously once the callback - * returns. Only use this method when the FaceStylizer is created with the - * image running mode. - * - * The 'imageProcessingOptions' parameter can be used to specify one or all - * of: - * - the rotation to apply to the image before performing stylization, by - * setting its 'rotationDegrees' property. - * - the region-of-interest on which to perform stylization, by setting its - * 'regionOfInterest' property. If not specified, the full image is used. - * If both are specified, the crop around the region-of-interest is extracted - * first, then the specified rotation is applied to the crop. - * - * @param image An image to process. - * @param imageProcessingOptions the `ImageProcessingOptions` specifying how - * to process the input image before running inference. - * @param callback The callback that is invoked with the stylized image or - * `null` if no face was detected. The lifetime of the returned data is - * only guaranteed for the duration of the callback. - */ - stylize(image: ImageSource, imageProcessingOptions: ImageProcessingOptions, callback: FaceStylizerCallback): void; - /** - * Performs face stylization on the provided single image and returns the - * result. This method creates a copy of the resulting image and should not be - * used in high-throughput applications. Only use this method when the - * FaceStylizer is created with the image running mode. - * - * @param image An image to process. - * @return A stylized face or `null` if no face was detected. The result is - * copied to avoid lifetime issues. - */ - stylize(image: ImageSource): MPImage | null; - /** - * Performs face stylization on the provided single image and returns the - * result. This method creates a copy of the resulting image and should not be - * used in high-throughput applications. Only use this method when the - * FaceStylizer is created with the image running mode. - * - * The 'imageProcessingOptions' parameter can be used to specify one or all - * of: - * - the rotation to apply to the image before performing stylization, by - * setting its 'rotationDegrees' property. - * - the region-of-interest on which to perform stylization, by setting its - * 'regionOfInterest' property. If not specified, the full image is used. - * If both are specified, the crop around the region-of-interest is extracted - * first, then the specified rotation is applied to the crop. - * - * @param image An image to process. - * @param imageProcessingOptions the `ImageProcessingOptions` specifying how - * to process the input image before running inference. - * @return A stylized face or `null` if no face was detected. The result is - * copied to avoid lifetime issues. - */ - stylize(image: ImageSource, imageProcessingOptions: ImageProcessingOptions): MPImage | null; -} - -/** - * A callback that receives an `MPImage` object from the face stylizer, or - * `null` if no face was detected. The lifetime of the underlying data is - * limited to the duration of the callback. If asynchronous processing is - * needed, all data needs to be copied before the callback returns (via - * `image.clone()`). - */ -export declare type FaceStylizerCallback = (image: MPImage | null) => void; - -/** Options to configure the MediaPipe Face Stylizer Task */ -export declare interface FaceStylizerOptions extends VisionTaskOptions { -} - /** * Resolves the files required for the MediaPipe Task APIs. * @@ -841,12 +714,13 @@ export declare class FilesetResolver { * * If your environment requires custom locations for the MediaPipe Wasm files, * you can use `isSimdSupported()` to decide whether to load the SIMD-based - * assets. + * assets. Note that for ES6 Modules, SIMD is assumed to be always supported. * + * @param useModule Whether to use ES6 Modules for the Wasm files. * @export * @return Whether SIMD support was detected in the current environment. */ - static isSimdSupported(): Promise; + static isSimdSupported(useModule?: boolean): Promise; /** * Creates a fileset for the MediaPipe Audio tasks. * @@ -854,10 +728,11 @@ export declare class FilesetResolver { * @param basePath An optional base path to specify the directory the Wasm * files should be loaded from. If not specified, the Wasm files are * loaded from the host's root directory. + * @param useModule Whether to use ES6 Modules for the Wasm files. * @return A `WasmFileset` that can be used to initialize MediaPipe Audio * tasks. */ - static forAudioTasks(basePath?: string): Promise; + static forAudioTasks(basePath?: string, useModule?: boolean): Promise; /** * Creates a fileset for the MediaPipe GenAI tasks. * @@ -865,21 +740,11 @@ export declare class FilesetResolver { * @param basePath An optional base path to specify the directory the Wasm * files should be loaded from. If not specified, the Wasm files are * loaded from the host's root directory. + * @param useModule Whether to use ES6 Modules for the Wasm files. * @return A `WasmFileset` that can be used to initialize MediaPipe GenAI * tasks. */ - static forGenAiTasks(basePath?: string): Promise; - /** - * Creates a fileset for the MediaPipe GenAI Experimental tasks. - * - * @export - * @param basePath An optional base path to specify the directory the Wasm - * files should be loaded from. If not specified, the Wasm files are - * loaded from the host's root directory. - * @return A `WasmFileset` that can be used to initialize MediaPipe GenAI - * tasks. - */ - static forGenAiExperimentalTasks(basePath?: string): Promise; + static forGenAiTasks(basePath?: string, useModule?: boolean): Promise; /** * Creates a fileset for the MediaPipe Text tasks. * @@ -887,10 +752,11 @@ export declare class FilesetResolver { * @param basePath An optional base path to specify the directory the Wasm * files should be loaded from. If not specified, the Wasm files are * loaded from the host's root directory. + * @param useModule Whether to use ES6 Modules for the Wasm files. * @return A `WasmFileset` that can be used to initialize MediaPipe Text * tasks. */ - static forTextTasks(basePath?: string): Promise; + static forTextTasks(basePath?: string, useModule?: boolean): Promise; /** * Creates a fileset for the MediaPipe Vision tasks. * @@ -898,10 +764,11 @@ export declare class FilesetResolver { * @param basePath An optional base path to specify the directory the Wasm * files should be loaded from. If not specified, the Wasm files are * loaded from the host's root directory. + * @param useModule Whether to use ES6 Modules for the Wasm files. * @return A `WasmFileset` that can be used to initialize MediaPipe Vision * tasks. */ - static forVisionTasks(basePath?: string): Promise; + static forVisionTasks(basePath?: string, useModule?: boolean): Promise; } /** Performs hand gesture recognition on images. */ @@ -2080,7 +1947,7 @@ export declare class InteractiveSegmenter extends VisionTaskRunner { export declare type InteractiveSegmenterCallback = (result: InteractiveSegmenterResult) => void; /** Options to configure the MediaPipe Interactive Segmenter Task */ -export declare interface InteractiveSegmenterOptions extends TaskRunnerOptions { +export declare interface InteractiveSegmenterOptions extends VisionTaskOptions { /** Whether to output confidence masks. Defaults to true. */ outputConfidenceMasks?: boolean | undefined; /** Whether to output the category masks. Defaults to false. */ diff --git a/app/node_modules/@mediapipe/tasks-vision/vision_bundle.cjs b/app/node_modules/@mediapipe/tasks-vision/vision_bundle.cjs index 08459652..1285b3a1 100644 --- a/app/node_modules/@mediapipe/tasks-vision/vision_bundle.cjs +++ b/app/node_modules/@mediapipe/tasks-vision/vision_bundle.cjs @@ -1,2 +1,2 @@ -"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var t="undefined"!=typeof self?self:{};function e(e,n){t:{for(var r=["CLOSURE_FLAGS"],i=t,s=0;s>6|192;else{if(e>=55296&&e<=57343){if(e<=56319&&i=56320&&s<=57343){e=1024*(e-55296)+s-56320+65536,r[n++]=e>>18|240,r[n++]=e>>12&63|128,r[n++]=e>>6&63|128,r[n++]=63&e|128;continue}i--}e=65533}r[n++]=e>>12|224,r[n++]=e>>6&63|128}r[n++]=63&e|128}}t=n===r.length?r:r.subarray(0,n)}return t}var u,l=e(610401301,!1),f=e(653718497,e(1,!0)),d=e(660014094,!1);const p=t.navigator;function g(t){return!!l&&(!!u&&u.brands.some((({brand:e})=>e&&-1!=e.indexOf(t))))}function m(e){var n;return(n=t.navigator)&&(n=n.userAgent)||(n=""),-1!=n.indexOf(e)}function y(){return!!l&&(!!u&&u.brands.length>0)}function _(){return y()?g("Chromium"):(m("Chrome")||m("CriOS"))&&!(!y()&&m("Edge"))||m("Silk")}function v(t){return v[" "](t),t}u=p&&p.userAgentData||null,v[" "]=function(){};var E=!y()&&(m("Trident")||m("MSIE"));!m("Android")||_(),_(),m("Safari")&&(_()||!y()&&m("Coast")||!y()&&m("Opera")||!y()&&m("Edge")||(y()?g("Microsoft Edge"):m("Edg/"))||y()&&g("Opera"));var w={},T=null;function b(t){var e=t.length,n=3*e/4;n%3?n=Math.floor(n):-1!="=.".indexOf(t[e-1])&&(n=-1!="=.".indexOf(t[e-2])?n-2:n-1);var r=new Uint8Array(n),i=0;return function(t,e){function n(e){for(;r>4),64!=o&&(e(s<<4&240|o>>2),64!=a&&e(o<<6&192|a))}}(t,(function(t){r[i++]=t})),i!==n?r.subarray(0,i):r}function A(){if(!T){T={};for(var t="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789".split(""),e=["+/=","+/","-_=","-_.","-_"],n=0;n<5;n++){var r=t.concat(e[n].split(""));w[n]=r;for(var i=0;i>2];i=e[(3&i)<<4|s>>4],s=e[(15&s)<<2|o>>6],o=e[63&o],n[c++]=a+i+s+o}switch(a=0,o=r,t.length-h){case 2:o=e[(15&(a=t[h+1]))<<2]||r;case 1:t=t[h],n[c]=e[t>>2]+e[(3&t)<<4|a>>4]+o+r}return n.join("")}for(e="",n=0,r=t.length-10240;n{throw e}),0)}(e)}function V(t){return B(t=Error(t),"warning"),t}function X(){return"function"==typeof BigInt}function H(t){return Array.prototype.slice.call(t)}var W="function"==typeof Symbol&&"symbol"==typeof Symbol();function z(t){return"function"==typeof Symbol&&"symbol"==typeof Symbol()?Symbol():t}var K=z(),Y=z("0di"),$=z("2ex"),q=z("1oa"),J=z("0dg"),Z=W?(t,e)=>{t[K]|=e}:(t,e)=>{void 0!==t.G?t.G|=e:Object.defineProperties(t,{G:{value:e,configurable:!0,writable:!0,enumerable:!1}})},Q=W?(t,e)=>{t[K]&=~e}:(t,e)=>{void 0!==t.G&&(t.G&=~e)},tt=W?t=>0|t[K]:t=>0|t.G,et=W?t=>t[K]:t=>t.G,nt=W?(t,e)=>{t[K]=e}:(t,e)=>{void 0!==t.G?t.G=e:Object.defineProperties(t,{G:{value:e,configurable:!0,writable:!0,enumerable:!1}})};function rt(t){return Z(t,34),t}function it(t,e){nt(e,-14591&(0|t))}function st(t,e){nt(e,-14557&(34|t))}var ot,at={},ht={};function ct(t){return!(!t||"object"!=typeof t||t.La!==ht)}function ut(t){return null!==t&&"object"==typeof t&&!Array.isArray(t)&&t.constructor===Object}function lt(t,e,n){if(null!=t)if("string"==typeof t)t=t?new D(t,P):N();else if(t.constructor!==D)if(I(t))t=t.length?new D(n?t:new Uint8Array(t),P):N();else{if(!e)throw Error();t=void 0}return t}function ft(t){return!(!Array.isArray(t)||t.length)&&!!(1&tt(t))}const dt=[];function pt(t){if(2&t)throw Error()}nt(dt,55),ot=Object.freeze(dt);class gt{constructor(t,e,n){this.l=0,this.g=t,this.h=e,this.m=n}next(){if(this.l"number"==typeof t)),Tt=Et((t=>"string"==typeof t)),bt=Et((t=>"boolean"==typeof t)),At="function"==typeof t.BigInt&&"bigint"==typeof t.BigInt(0),kt=Et((t=>At?t>=St&&t<=Rt:"-"===t[0]?Ft(t,xt):Ft(t,Lt)));const xt=Number.MIN_SAFE_INTEGER.toString(),St=At?BigInt(Number.MIN_SAFE_INTEGER):void 0,Lt=Number.MAX_SAFE_INTEGER.toString(),Rt=At?BigInt(Number.MAX_SAFE_INTEGER):void 0;function Ft(t,e){if(t.length>e.length)return!1;if(t.lengthi)return!1;if(r>>0;Pt=e,Ot=(t-e)/4294967296>>>0}function Nt(t){if(t<0){Ct(-t);const[e,n]=Xt(Pt,Ot);Pt=e>>>0,Ot=n>>>0}else Ct(t)}function Ut(t){const e=It||=new DataView(new ArrayBuffer(8));e.setFloat32(0,+t,!0),Ot=0,Pt=e.getUint32(0,!0)}function Dt(t,e){return 4294967296*e+(t>>>0)}function Bt(t,e){const n=2147483648&e;return n&&(e=~e>>>0,0==(t=1+~t>>>0)&&(e=e+1>>>0)),t=Dt(t,e),n?-t:t}function Gt(t,e){if(t>>>=0,(e>>>=0)<=2097151)var n=""+(4294967296*e+t);else X()?n=""+(BigInt(e)<>>24|e<<8))+6710656*(e=e>>16&65535),n+=8147497*e,e*=2,t>=1e7&&(n+=t/1e7>>>0,t%=1e7),n>=1e7&&(e+=n/1e7>>>0,n%=1e7),n=e+jt(n)+jt(t));return n}function jt(t){return t=String(t),"0000000".slice(t.length)+t}function Vt(t){if(t.length<16)Nt(Number(t));else if(X())t=BigInt(t),Pt=Number(t&BigInt(4294967295))>>>0,Ot=Number(t>>BigInt(32)&BigInt(4294967295));else{const e=+("-"===t[0]);Ot=Pt=0;const n=t.length;for(let r=e,i=(n-e)%6+e;i<=n;r=i,i+=6){const e=Number(t.slice(r,i));Ot*=1e6,Pt=1e6*Pt+e,Pt>=4294967296&&(Ot+=Math.trunc(Pt/4294967296),Ot>>>=0,Pt>>>=0)}if(e){const[t,e]=Xt(Pt,Ot);Pt=t,Ot=e}}}function Xt(t,e){return e=~e,t?t=1+~t:e+=1,[t,e]}function Ht(t){return null==t||"number"==typeof t?t:"NaN"===t||"Infinity"===t||"-Infinity"===t?Number(t):void 0}function Wt(t){return null==t||"boolean"==typeof t?t:"number"==typeof t?!!t:void 0}const zt=/^-?([1-9][0-9]*|0)(\.[0-9]+)?$/;function Kt(t){const e=typeof t;switch(e){case"bigint":return!0;case"number":return Number.isFinite(t)}return"string"===e&&zt.test(t)}function Yt(t){if(null==t)return t;if("string"==typeof t){if(!t)return;t=+t}return"number"==typeof t&&Number.isFinite(t)?0|t:void 0}function $t(t){if(null==t)return t;if("string"==typeof t){if(!t)return;t=+t}return"number"==typeof t&&Number.isFinite(t)?t>>>0:void 0}function qt(t){return"-"!==t[0]&&(t.length<20||20===t.length&&Number(t.substring(0,6))<184467)}function Jt(t){return t=Math.trunc(t),Number.isSafeInteger(t)||(Nt(t),t=Bt(Pt,Ot)),t}function Zt(t){var e=Math.trunc(Number(t));if(Number.isSafeInteger(e))return String(e);if(-1!==(e=t.indexOf("."))&&(t=t.substring(0,e)),!("-"===t[0]?t.length<20||20===t.length&&Number(t.substring(0,7))>-922337:t.length<19||19===t.length&&Number(t.substring(0,6))<922337))if(Vt(t),t=Pt,2147483648&(e=Ot))if(X())t=""+(BigInt(0|e)<>>0));else{const[n,r]=Xt(t,e);t="-"+Gt(n,r)}else t=Gt(t,e);return t}function Qt(t){return null==t?t:"bigint"==typeof t?(kt(t)?t=Number(t):(t=BigInt.asIntN(64,t),t=kt(t)?Number(t):String(t)),t):Kt(t)?"number"==typeof t?Jt(t):Zt(t):void 0}function te(t){if(null==t)return t;var e=typeof t;if("bigint"===e)return String(BigInt.asUintN(64,t));if(Kt(t)){if("string"===e)return e=Math.trunc(Number(t)),Number.isSafeInteger(e)&&e>=0?t=String(e):(-1!==(e=t.indexOf("."))&&(t=t.substring(0,e)),qt(t)||(Vt(t),t=Gt(Pt,Ot))),t;if("number"===e)return(t=Math.trunc(t))>=0&&Number.isSafeInteger(t)?t:function(t){if(t<0){Nt(t);const e=Gt(Pt,Ot);return t=Number(e),Number.isSafeInteger(t)?t:e}return qt(String(t))?t:(Nt(t),Dt(Pt,Ot))}(t)}}function ee(t){if("string"!=typeof t)throw Error();return t}function ne(t){if(null!=t&&"string"!=typeof t)throw Error();return t}function re(t){return null==t||"string"==typeof t?t:void 0}function ie(t,e,n,r){if(null!=t&&"object"==typeof t&&t.Y===at)return t;if(!Array.isArray(t))return n?2&r?(t=e[Y])?e=t:(rt((t=new e).u),e=e[Y]=t):e=new e:e=void 0,e;let i=n=tt(t);return 0===i&&(i|=32&r),i|=2&r,i!==n&&nt(t,i),new e(t)}function se(t,e,n){if(e)t:{if(!Kt(e=t))throw V("int64");switch(typeof e){case"string":e=Zt(e);break t;case"bigint":if(t=e=BigInt.asIntN(64,e),Tt(t)){if(!/^\s*(?:-?[1-9]\d*|0)?\s*$/.test(t))throw Error(String(t))}else if(wt(t)&&!Number.isSafeInteger(t))throw Error(String(t));e=At?BigInt(e):bt(e)?e?"1":"0":Tt(e)?e.trim()||"0":String(e);break t;default:e=Jt(e)}}else e=Qt(t);return"string"==typeof(n=null==(t=e)?n?0:void 0:t)&&(e=+n,Number.isSafeInteger(e))?e:n}function oe(t){if(void 0===ce&&(ce="function"==typeof Proxy?ye(Proxy):null),!ce||!me())return t;let e=ae?.get(t);return e||(Math.random()>.01?t:(function(t){if(void 0===le){const t=new ce([],{});le=1===Array.prototype.concat.call([],t).length}le&&"function"==typeof Symbol&&Symbol.isConcatSpreadable&&(t[Symbol.isConcatSpreadable]=!0)}(t),e=new ce(t,{set:(t,e,n)=>(j(),t[e]=n,!0)}),function(t,e){(ae||=new ue).set(t,e),(he||=new ue).set(e,t)}(t,e),e))}let ae,he,ce,ue,le,fe,de,pe,ge;function me(){return void 0===ue&&(ue="function"==typeof WeakMap?ye(WeakMap):null),ue}function ye(t){try{return-1!==t.toString().indexOf("[native code]")?t:null}catch{return null}}function _e(t,e,n){if(f&&me()){if(fe?.get(e)?.get(t)){if(n)return}else if(Math.random()>.01)return;var r=t.length;n={length:r};for(var i=0;i=1024)throw Error("pvtlmt");r=-33521665&r|(1023&e)<<15;break t}}if(e){if((e=Math.max(e,i-(+!!(512&r)-1)))>1024)throw Error("spvt");r=-33521665&r|(1023&e)<<15}}}return nt(t,r),t}const ke={};let xe=function(){try{return v(new class extends Map{constructor(){super()}}),!1}catch{return!0}}();class Se{constructor(){this.g=new Map}get(t){return this.g.get(t)}set(t,e){return this.g.set(t,e),this.size=this.g.size,this}delete(t){return t=this.g.delete(t),this.size=this.g.size,t}clear(){this.g.clear(),this.size=this.g.size}has(t){return this.g.has(t)}entries(){return this.g.entries()}keys(){return this.g.keys()}values(){return this.g.values()}forEach(t,e){return this.g.forEach(t,e)}[Symbol.iterator](){return this.entries()}}const Le=xe?(Object.setPrototypeOf(Se.prototype,Map.prototype),Object.defineProperties(Se.prototype,{size:{value:0,configurable:!0,enumerable:!0,writable:!0}}),Se):class extends Map{constructor(){super()}};function Re(t){return t}function Fe(t){if(2&t.M)throw Error("Cannot mutate an immutable Map")}var Me=class extends Le{constructor(t,e,n=Re,r=Re){super();let i=tt(t);i|=64,nt(t,i),this.M=i,this.U=e,this.T=n,this.aa=this.U?Ie:r;for(let s=0;s{t.call(e,this.get(r),r,this)}))}set(t,e){return Fe(this),null==(t=this.T(t,!0,!1))?this:null==e?(super.delete(t),this):super.set(t,this.aa(e,!0,!0,this.U,!1,this.M))}Qa(t){const e=this.T(t[0],!1,!0);t=t[1],t=this.U?void 0===t?null:t:this.aa(t,!1,!0,void 0,!1,this.M),super.set(e,t)}has(t){return super.has(this.T(t,!1,!1))}get(t){t=this.T(t,!1,!1);const e=super.get(t);if(void 0!==e){var n=this.U;return n?((n=this.aa(e,!1,!0,n,this.va,this.M))!==e&&super.set(t,n),n):e}}oa(){return Array.from(super.keys())}Ka(){return super.keys()}[Symbol.iterator](){return this.entries()}};function Ie(t,e,n,r,i,s){return t=ie(t,r,n,s),i&&(t=He(t)),t}function Pe(t){return t}function Oe(t){return[t,this.get(t)]}let Ce;function Ne(){return Ce||=new Me(rt([]),void 0,void 0,void 0,ke)}function Ue(t,e,n,r,i){if(null!=t){if(Array.isArray(t))t=ft(t)?void 0:i&&2&tt(t)?t:De(t,e,n,void 0!==r,i);else if(ut(t)){const s={};for(let o in t)s[o]=Ue(t[o],e,n,r,i);t=s}else t=e(t,r);return t}}function De(t,e,n,r,i){const s=r||n?tt(t):0;r=r?!!(32&s):void 0;const o=H(t);for(let t=0;tje(t,i,r))),Z(t,32|(n?2:0)),t}function He(t){const e=t.u,n=et(e);return 2&n?Ve(t,e,n,!1):t}function We(t,e,n,r){return!(4&e)||null!=n&&(!r&&0===n&&(4096&e||8192&e)&&(t.constructor[J]=1+(0|t.constructor[J]))<5&&j(),0!==n&&!(n&e))}function ze(t,e){return Ye(t=t.u,et(t),e)}function Ke(t,e,n,r){if(!((e=r+(+!!(512&e)-1))<0||e>=t.length||e>=n))return t[e]}function Ye(t,e,n,r){if(-1===n)return null;const i=e>>15&1023||536870912;if(!(n>=i)){var s=t.length;return r&&256&e&&null!=(r=t[s-1][n])?(Ke(t,e,i,n)&&null!=$&&((e=(t=G??={})[$]||0)>=4||(t[$]=e+1,j())),r):Ke(t,e,i,n)}return 256&e?t[t.length-1][n]:void 0}function $e(t,e,n){const r=t.u;let i=et(r);return pt(i),qe(r,i,e,n),t}function qe(t,e,n,r){const i=e>>15&1023||536870912;if(n>=i){let s,o=e;if(256&e)s=t[t.length-1];else{if(null==r)return o;s=t[i+(+!!(512&e)-1)]={},o|=256}return s[n]=r,n ${t}`)}function On(t){if("string"==typeof t)return{buffer:M(t),O:!1};if(Array.isArray(t))return{buffer:new Uint8Array(t),O:!1};if(t.constructor===Uint8Array)return{buffer:t,O:!1};if(t.constructor===ArrayBuffer)return{buffer:new Uint8Array(t),O:!1};if(t.constructor===D)return{buffer:U(t)||new Uint8Array(0),O:!0};if(t instanceof Uint8Array)return{buffer:new Uint8Array(t.buffer,t.byteOffset,t.byteLength),O:!1};throw Error("Type not convertible to a Uint8Array, expected a Uint8Array, an ArrayBuffer, a base64 encoded string, a ByteString or an Array of numbers")}function Cn(t,e){let n,r=0,i=0,s=0;const o=t.h;let a=t.g;do{n=o[a++],r|=(127&n)<32&&(i|=(127&n)>>4),s=3;s<32&&128&n;s+=7)n=o[a++],i|=(127&n)<>>0,i>>>0);throw In()}function Nn(t){let e=0,n=t.g;const r=n+10,i=t.h;for(;n>>0}function Bn(t){var e=t.h;const n=t.g,r=e[n],i=e[n+1],s=e[n+2];return e=e[n+3],Xn(t,t.g+4),(r<<0|i<<8|s<<16|e<<24)>>>0}function Gn(t){var e=Bn(t);t=2*(e>>31)+1;const n=e>>>23&255;return e&=8388607,255==n?e?NaN:t*(1/0):0==n?1401298464324817e-60*t*e:t*Math.pow(2,n-150)*(e+8388608)}function jn(t){return Un(t)}function Vn(t,e,{ea:n=!1}={}){t.ea=n,e&&(e=On(e),t.h=e.buffer,t.m=e.O,t.j=0,t.l=t.h.length,t.g=t.j)}function Xn(t,e){if(t.g=e,e>t.l)throw Pn(t.l,e)}function Hn(t,e){if(e<0)throw Error(`Tried to read a negative byte length: ${e}`);const n=t.g,r=n+e;if(r>t.l)throw Pn(e,t.l-n);return t.g=r,n}function Wn(t,e){if(0==e)return N();var n=Hn(t,e);return t.ea&&t.m?n=t.h.subarray(n,n+e):(t=t.h,n=n===(e=n+e)?new Uint8Array(0):Mt?t.slice(n,e):new Uint8Array(t.subarray(n,e))),0==n.length?N():new D(n,P)}Me.prototype.toJSON=void 0,Me.prototype.La=ht;var zn=[];function Kn(t){var e=t.g;if(e.g==e.l)return!1;t.l=t.g.g;var n=Dn(t.g);if(e=n>>>3,!((n&=7)>=0&&n<=5))throw Mn(n,t.l);if(e<1)throw Error(`Invalid field number: ${e} (at position ${t.l})`);return t.m=e,t.h=n,!0}function Yn(t){switch(t.h){case 0:0!=t.h?Yn(t):Nn(t.g);break;case 1:Xn(t=t.g,t.g+8);break;case 2:if(2!=t.h)Yn(t);else{var e=Dn(t.g);Xn(t=t.g,t.g+e)}break;case 5:Xn(t=t.g,t.g+4);break;case 3:for(e=t.m;;){if(!Kn(t))throw Error("Unmatched start-group tag: stream EOF");if(4==t.h){if(t.m!=e)throw Error("Unmatched end-group tag");break}Yn(t)}break;default:throw Mn(t.h,t.l)}}function $n(t,e,n){const r=t.g.l,i=Dn(t.g),s=t.g.g+i;let o=s-r;if(o<=0&&(t.g.l=s,n(e,t,void 0,void 0,void 0),o=s-t.g.g),o)throw Error(`Message parsing ended unexpectedly. Expected to read ${i} bytes, instead read ${i-o} bytes, either the data ended unexpectedly or the message misreported its own length`);return t.g.g=s,t.g.l=r,e}function qn(t){var e=Dn(t.g),a=Hn(t=t.g,e);if(t=t.h,o){var h,c=t;(h=s)||(h=s=new TextDecoder("utf-8",{fatal:!0})),e=a+e,c=0===a&&e===c.length?c:c.subarray(a,e);try{var u=h.decode(c)}catch(t){if(void 0===i){try{h.decode(new Uint8Array([128]))}catch(t){}try{h.decode(new Uint8Array([97])),i=!0}catch(t){i=!1}}throw!i&&(s=void 0),t}}else{e=(u=a)+e,a=[];let i,s=null;for(;u=e?n():(i=t[u++],l<194||128!=(192&i)?(u--,n()):a.push((31&l)<<6|63&i)):l<240?u>=e-1?n():(i=t[u++],128!=(192&i)||224===l&&i<160||237===l&&i>=160||128!=(192&(h=t[u++]))?(u--,n()):a.push((15&l)<<12|(63&i)<<6|63&h)):l<=244?u>=e-2?n():(i=t[u++],128!=(192&i)||i-144+(l<<28)>>30!=0||128!=(192&(h=t[u++]))||128!=(192&(c=t[u++]))?(u--,n()):(l=(7&l)<<18|(63&i)<<12|(63&h)<<6|63&c,l-=65536,a.push(55296+(l>>10&1023),56320+(1023&l)))):n(),a.length>=8192&&(s=r(s,a),a.length=0)}u=r(s,a)}return u}function Jn(t){const e=Dn(t.g);return Wn(t.g,e)}function Zn(t,e,n){var r=Dn(t.g);for(r=t.g.g+r;t.g.g0&&(null==(s=i[c-1])||ft(s)||ct(s)&&0===s.size);c--)var h=!0;(i!==t||o||h)&&(e?(h||o||a)&&(i.length=c):i=Array.prototype.slice.call(i,0,c),a&&i.push(a)),h=i}else h=t}return h}function ir(t){return t?/^\d+$/.test(t)?(Vt(t),new sr(Pt,Ot)):null:or||=new sr(0,0)}nr.prototype.Y=at,nr.prototype.toString=function(){try{return tr=!0,rr(this).toString()}finally{tr=!1}};var sr=class{constructor(t,e){this.h=t>>>0,this.g=e>>>0}};let or;function ar(t){return t?/^-?\d+$/.test(t)?(Vt(t),new hr(Pt,Ot)):null:cr||=new hr(0,0)}var hr=class{constructor(t,e){this.h=t>>>0,this.g=e>>>0}};let cr;function ur(t,e,n){for(;n>0||e>127;)t.g.push(127&e|128),e=(e>>>7|n<<25)>>>0,n>>>=7;t.g.push(e)}function lr(t,e){for(;e>127;)t.g.push(127&e|128),e>>>=7;t.g.push(e)}function fr(t,e){if(e>=0)lr(t,e);else{for(let n=0;n<9;n++)t.g.push(127&e|128),e>>=7;t.g.push(1)}}function dr(t,e){t.g.push(e>>>0&255),t.g.push(e>>>8&255),t.g.push(e>>>16&255),t.g.push(e>>>24&255)}function pr(t,e){0!==e.length&&(t.l.push(e),t.h+=e.length)}function gr(t,e,n){lr(t.g,8*e+n)}function mr(t,e){return gr(t,e,2),e=t.g.end(),pr(t,e),e.push(t.h),e}function yr(t,e){var n=e.pop();for(n=t.h+t.g.length()-n;n>127;)e.push(127&n|128),n>>>=7,t.h++;e.push(n),t.h++}function _r(t,e,n){gr(t,e,2),lr(t.g,n.length),pr(t,t.g.end()),pr(t,n)}function vr(t,e,n,r){null!=n&&(e=mr(t,e),r(n,t),yr(t,e))}class Er{constructor(t,e,n){this.g=t,this.h=e,this.qa=n}}function wr(t){return Array.isArray(t)?t[0]instanceof Er?t:[gi,t]:[t,void 0]}function Tr(t,e){if(Array.isArray(e)){var n=tt(e);if(4&n)return e;for(var r=0,i=0;rr(t,e,n):(t,e)=>{for(;Kn(e)&&4!=e.h;){var r=e.m;let o=n[r];const a=!o;let h=!1;if(!o){var i=n.X;if(i){var s=i[r];s&&(h=i.P?.[r],(!d||h)&&(i=kr(s))&&(o=n[r]=i))}}o&&o(e,t,r)||(r=(i=e).l,Yn(i),i.ja?i=void 0:(s=i.g.g-r,i.g.g=r,i=Wn(i.g,s)),r=t,i&&(mt||=Symbol(),(s=r[mt])?s.push(i):r[mt]=[i])),a&&o&&!h&&Wr++<5&&j()}},t[br]=e}return e}function kr(t){const e=(t=wr(t))[0].g;if(t=t[1]){const n=Ar(t),r=Ur(t).g;return(t,i,s)=>e(t,i,s,r,n)}return e}function xr(t,e,n){t[e]=n}function Sr(t,e,n,r){var i=xr;e.g=function(t){switch(typeof t){case"boolean":return pe||=[0,void 0,!0];case"number":return t>0?void 0:0===t?ge||=[0,void 0]:[-t,void 0];case"string":return[0,t];case"object":return t}}(t[0]);let s=0;var o=t[++s];o&&o.constructor===Object&&(e.X=o,"function"==typeof(o=t[++s])&&(e.h=o,e.l=t[++s],o=t[++s]));const a={};for(;Array.isArray(o)&&"number"==typeof o[0]&&o[0]>0;){for(var h=0;hBr(t,e,n),t[Lr]=e}return e}const Fr=Symbol();function Mr(t){return t.h}function Ir(t,e){let n,r;const i=t.h;return(t,s,o)=>i(t,s,o,r||=Pr(e).g,n||=Rr(e))}function Pr(t){let e=t[Fr];return e||(e=Sr(t,t[Fr]={},Mr,Ir))}const Or=Symbol();function Cr(t,e){const n=t.g;return e?(t,r,i)=>n(t,r,i,e):n}function Nr(t,e,n){const r=t.g;let i,s;return(t,o,a)=>r(t,o,a,s||=Ur(e).g,i||=Ar(e),n)}function Ur(t){let e=t[Or];return e||(e=Sr(t,t[Or]={},Cr,Nr))}function Dr(t,e){var n=t[e];if(n)return n;if(n=t.X){var r=n[e];if(r){var i=(r=wr(r))[0].h;if(r=r[1],n=n.P?.[e],!d||n){if(r){const e=Rr(r),s=Pr(r).g;n=(n=t.l)?n(s,e):(t,n,r)=>i(t,n,r,s,e)}else n=i;return t[e]=n}}}}function Br(t,e,n){for(var r=et(t),i=+!!(512&r)-1,s=t.length,o=512&r?1:0,a=s+(256&r?-1:0);o{vr(t,n,be([s,e],r),i)}));else if(Array.isArray(e))for(let s=0;s>BigInt(32))),ur(t.g,n.h,n.g);break;default:n=ar(e),ur(t.g,n.h,n.g)}}}function Kr(t,e,n){null!=(e=Yt(e))&&null!=e&&(gr(t,n,0),fr(t.g,e))}function Yr(t,e,n){null!=(e=Wt(e))&&(gr(t,n,0),t.g.g.push(e?1:0))}function $r(t,e,n){null!=(e=re(e))&&_r(t,n,c(e))}function qr(t,e,n,r,i){e instanceof nr?(we(e),e=e.u):e=Array.isArray(e)?be(e,r):void 0,vr(t,n,e,i)}function Jr(t,e,n){null!=(e=null==e||"string"==typeof e||I(e)||e instanceof D?e:void 0)&&_r(t,n,On(e).buffer)}function Zr(t,e,n){return(5===t.h||2===t.h)&&(e=Je(e,et(e),n,2,!1),2==t.h?Zn(t,Gn,e):e.push(Gn(t.g)),!0)}var Qr,ti=Gr((function(t,e,n){if(1!==t.h)return!1;var r=t.g;t=Bn(r);const i=Bn(r);r=2*(i>>31)+1;const s=i>>>20&2047;return t=4294967296*(1048575&i)+t,Xr(e,n,2047==s?t?NaN:r*(1/0):0==s?5e-324*r*t:r*Math.pow(2,s-1075)*(t+4503599627370496)),!0}),(function(t,e,n){null!=(e=Ht(e))&&(gr(t,n,1),t=t.g,(n=It||=new DataView(new ArrayBuffer(8))).setFloat64(0,+e,!0),Pt=n.getUint32(0,!0),Ot=n.getUint32(4,!0),dr(t,Pt),dr(t,Ot))})),ei=Gr((function(t,e,n){return 5===t.h&&(Xr(e,n,Gn(t.g)),!0)}),(function(t,e,n){null!=(e=Ht(e))&&(gr(t,n,5),t=t.g,Ut(e),dr(t,Pt))})),ni=jr(Zr,(function(t,e,n){if(null!=(e=Tr(Ht,e)))for(let o=0;o>BigInt(32))),ur(t.g,n.h,n.g);break;default:n=ir(e),ur(t.g,n.h,n.g)}}})),ai=Gr((function(t,e,n){return 0===t.h&&(Xr(e,n,Un(t.g)),!0)}),Kr),hi=jr((function(t,e,n){return(0===t.h||2===t.h)&&(e=Je(e,et(e),n,2,!1),2==t.h?Zn(t,Un,e):e.push(Un(t.g)),!0)}),(function(t,e,n){if(null!=(e=Tr(Yt,e))&&e.length){n=mr(t,n);for(let n=0;n{if(Qn.length){const t=Qn.pop();t.o(r),Vn(t.g,n,r),n=t}else n=new class{constructor(t,e){if(zn.length){const n=zn.pop();Vn(n,t,e),t=n}else t=new class{constructor(t,e){this.h=null,this.m=!1,this.g=this.l=this.j=0,Vn(this,t,e)}clear(){this.h=null,this.m=!1,this.g=this.l=this.j=0,this.ea=!1}}(t,e);this.g=t,this.l=this.g.g,this.h=this.m=-1,this.o(e)}o({ja:t=!1}={}){this.ja=t}}(n,r);try{const r=new t,s=r.u;Ar(e)(s,n);var i=r}finally{n.g.clear(),n.m=-1,n.h=-1,Qn.length<100&&Qn.push(n)}return i}}function Ai(t){return function(){we(this);const e=new class{constructor(){this.l=[],this.h=0,this.g=new class{constructor(){this.g=[]}length(){return this.g.length}end(){const t=this.g;return this.g=[],t}}}};Br(this.u,e,Pr(t)),pr(e,e.g.end());const n=new Uint8Array(e.h),r=e.l,i=r.length;let s=0;for(let t=0;t({index:Tn(bn(t,1),0)??-1,score:An(t,2)??0,categoryName:kn(t,3)??"",displayName:kn(t,4)??""}))),headIndex:e,headName:n}}function Lo(t){var e=en(t,3,Ht,tn()),n=en(t,2,Yt,tn()),r=en(t,1,re,tn()),i=en(t,9,re,tn());const s={categories:[],keypoints:[]};for(let t=0;tt>127?t-256:t))}function Io(t,e){if(t.length!==e.length)throw Error(`Cannot compute cosine similarity between embeddings of different sizes (${t.length} vs. ${e.length}).`);let n=0,r=0,i=0;for(let s=0;s=1&&Number(t[1])>=17))}async function Bo(t){if("function"!=typeof importScripts){const e=document.createElement("script");return e.src=t.toString(),e.crossOrigin="anonymous",new Promise(((t,n)=>{e.addEventListener("load",(()=>{t()}),!1),e.addEventListener("error",(t=>{n(t)}),!1),document.body.appendChild(e)}))}importScripts(t.toString())}function Go(t){return void 0!==t.videoWidth?[t.videoWidth,t.videoHeight]:void 0!==t.naturalWidth?[t.naturalWidth,t.naturalHeight]:void 0!==t.displayWidth?[t.displayWidth,t.displayHeight]:[t.width,t.height]}function jo(t,e,n){t.m||console.error("No wasm multistream support detected: ensure dependency inclusion of :gl_graph_runner_internal_multi_input target"),n(e=t.i.stringToNewUTF8(e)),t.i._free(e)}function Vo(t,e,n){if(!t.i.canvas)throw Error("No OpenGL canvas configured.");if(n?t.i._bindTextureToStream(n):t.i._bindTextureToCanvas(),!(n=t.i.canvas.getContext("webgl2")||t.i.canvas.getContext("webgl")))throw Error("Failed to obtain WebGL context from the provided canvas. `getContext()` should only be invoked with `webgl` or `webgl2`.");t.i.gpuOriginForWebTexturesIsBottomLeft&&n.pixelStorei(n.UNPACK_FLIP_Y_WEBGL,!0),n.texImage2D(n.TEXTURE_2D,0,n.RGBA,n.RGBA,n.UNSIGNED_BYTE,e),t.i.gpuOriginForWebTexturesIsBottomLeft&&n.pixelStorei(n.UNPACK_FLIP_Y_WEBGL,!1);const[r,i]=Go(e);return!t.l||r===t.i.canvas.width&&i===t.i.canvas.height||(t.i.canvas.width=r,t.i.canvas.height=i),[r,i]}function Xo(t,e,n){t.m||console.error("No wasm multistream support detected: ensure dependency inclusion of :gl_graph_runner_internal_multi_input target");const r=new Uint32Array(e.length);for(let n=0;n>2),n(e);for(const e of r)t.i._free(e);t.i._free(e)}function Ho(t,e,n){t.i.simpleListeners=t.i.simpleListeners||{},t.i.simpleListeners[e]=n}function Wo(t,e,n){let r=[];t.i.simpleListeners=t.i.simpleListeners||{},t.i.simpleListeners[e]=(t,e,i)=>{e?(n(r,i),r=[]):r.push(t)}}Uo.forVisionTasks=function(t){return No("vision",t)},Uo.forTextTasks=function(t){return No("text",t)},Uo.forGenAiExperimentalTasks=function(t){return No("genai_experimental",t)},Uo.forGenAiTasks=function(t){return No("genai",t)},Uo.forAudioTasks=function(t){return No("audio",t)},Uo.isSimdSupported=function(){return Co()};async function zo(t,e,n,r){return t=await(async(t,e,n,r,i)=>{if(e&&await Bo(e),!self.ModuleFactory)throw Error("ModuleFactory not set.");if(n&&(await Bo(n),!self.ModuleFactory))throw Error("ModuleFactory not set.");return self.Module&&i&&((e=self.Module).locateFile=i.locateFile,i.mainScriptUrlOrBlob&&(e.mainScriptUrlOrBlob=i.mainScriptUrlOrBlob)),i=await self.ModuleFactory(self.Module||i),self.ModuleFactory=self.Module=void 0,new t(i,r)})(t,n.wasmLoaderPath,n.assetLoaderPath,e,{locateFile:t=>t.endsWith(".wasm")?n.wasmBinaryPath.toString():n.assetBinaryPath&&t.endsWith(".data")?n.assetBinaryPath.toString():t}),await t.o(r),t}function Ko(t,e){const n=pn(t.baseOptions,xs,1)||new xs;"string"==typeof e?($e(n,2,ne(e)),$e(n,1)):e instanceof Uint8Array&&($e(n,1,lt(e,!1,!1)),$e(n,2)),yn(t.baseOptions,0,1,n)}function Yo(t){try{const e=t.H.length;if(1===e)throw Error(t.H[0].message);if(e>1)throw Error("Encountered multiple errors: "+t.H.map((t=>t.message)).join(", "))}finally{t.H=[]}}function $o(t,e){t.B=Math.max(t.B,e)}function qo(t,e){t.A=new Vi,Bi(t.A,"PassThroughCalculator"),Gi(t.A,"free_memory"),ji(t.A,"free_memory_unused_out"),Ki(e,"free_memory"),zi(e,t.A)}function Jo(t,e){Gi(t.A,e),ji(t.A,e+"_unused_out")}function Zo(t){t.g.addBoolToStream(!0,"free_memory",t.B)}var Qo=class{constructor(t){this.g=t,this.H=[],this.B=0,this.g.setAutoRenderToScreen(!1)}l(t,e=!0){if(e){const e=t.baseOptions||{};if(t.baseOptions?.modelAssetBuffer&&t.baseOptions?.modelAssetPath)throw Error("Cannot set both baseOptions.modelAssetPath and baseOptions.modelAssetBuffer");if(!(pn(this.baseOptions,xs,1)?.g()||pn(this.baseOptions,xs,1)?.h()||t.baseOptions?.modelAssetBuffer||t.baseOptions?.modelAssetPath))throw Error("Either baseOptions.modelAssetPath or baseOptions.modelAssetBuffer must be set");if(function(t,e){let n=pn(t.baseOptions,As,3);if(!n){var r=n=new As,i=new Mi;_n(r,4,ks,i)}"delegate"in e&&("GPU"===e.delegate?(e=n,r=new Li,_n(e,2,ks,r)):(e=n,r=new Mi,_n(e,4,ks,r))),yn(t.baseOptions,0,3,n)}(this,e),e.modelAssetPath)return fetch(e.modelAssetPath.toString()).then((t=>{if(t.ok)return t.arrayBuffer();throw Error(`Failed to fetch model: ${e.modelAssetPath} (${t.status})`)})).then((t=>{try{this.g.i.FS_unlink("/model.dat")}catch{}this.g.i.FS_createDataFile("/","model.dat",new Uint8Array(t),!0,!1,!1),Ko(this,"/model.dat"),this.m(),this.J()}));if(e.modelAssetBuffer instanceof Uint8Array)Ko(this,e.modelAssetBuffer);else if(e.modelAssetBuffer)return async function(t){const e=[];for(var n=0;;){const{done:r,value:i}=await t.read();if(r)break;e.push(i),n+=i.length}if(0===e.length)return new Uint8Array(0);if(1===e.length)return e[0];t=new Uint8Array(n),n=0;for(const r of e)t.set(r,n),n+=r.length;return t}(e.modelAssetBuffer).then((t=>{Ko(this,t),this.m(),this.J()}))}return this.m(),this.J(),Promise.resolve()}J(){}ga(){let t;if(this.g.ga((e=>{t=Ji(e)})),!t)throw Error("Failed to retrieve CalculatorGraphConfig");return t}setGraph(t,e){this.g.attachErrorListener(((t,e)=>{this.H.push(Error(e))})),this.g.Oa(),this.g.setGraph(t,e),this.A=void 0,Yo(this)}finishProcessing(){this.g.finishProcessing(),Yo(this)}close(){this.A=void 0,this.g.closeGraph()}};function ta(t,e){if(!t)throw Error(`Unable to obtain required WebGL resource: ${e}`);return t}Qo.prototype.close=Qo.prototype.close,function(e,n){e=e.split(".");var r,i=t;e[0]in i||void 0===i.execScript||i.execScript("var "+e[0]);for(;e.length&&(r=e.shift());)e.length||void 0===n?i=i[r]&&i[r]!==Object.prototype[r]?i[r]:i[r]={}:i[r]=n}("TaskRunner",Qo);class ea{constructor(t,e,n,r){this.g=t,this.h=e,this.m=n,this.l=r}bind(){this.g.bindVertexArray(this.h)}close(){this.g.deleteVertexArray(this.h),this.g.deleteBuffer(this.m),this.g.deleteBuffer(this.l)}}function na(t,e,n){const r=t.g;if(n=ta(r.createShader(n),"Failed to create WebGL shader"),r.shaderSource(n,e),r.compileShader(n),!r.getShaderParameter(n,r.COMPILE_STATUS))throw Error(`Could not compile WebGL shader: ${r.getShaderInfoLog(n)}`);return r.attachShader(t.h,n),n}function ra(t,e){const n=t.g,r=ta(n.createVertexArray(),"Failed to create vertex array");n.bindVertexArray(r);const i=ta(n.createBuffer(),"Failed to create buffer");n.bindBuffer(n.ARRAY_BUFFER,i),n.enableVertexAttribArray(t.R),n.vertexAttribPointer(t.R,2,n.FLOAT,!1,0,0),n.bufferData(n.ARRAY_BUFFER,new Float32Array([-1,-1,-1,1,1,1,1,-1]),n.STATIC_DRAW);const s=ta(n.createBuffer(),"Failed to create buffer");return n.bindBuffer(n.ARRAY_BUFFER,s),n.enableVertexAttribArray(t.J),n.vertexAttribPointer(t.J,2,n.FLOAT,!1,0,0),n.bufferData(n.ARRAY_BUFFER,new Float32Array(e?[0,1,0,0,1,0,1,1]:[0,0,0,1,1,1,1,0]),n.STATIC_DRAW),n.bindBuffer(n.ARRAY_BUFFER,null),n.bindVertexArray(null),new ea(n,r,i,s)}function ia(t,e){if(t.g){if(e!==t.g)throw Error("Cannot change GL context once initialized")}else t.g=e}function sa(t,e,n,r){return ia(t,e),t.h||(t.m(),t.C()),n?(t.s||(t.s=ra(t,!0)),n=t.s):(t.v||(t.v=ra(t,!1)),n=t.v),e.useProgram(t.h),n.bind(),t.l(),t=r(),n.g.bindVertexArray(null),t}function oa(t,e,n){return ia(t,e),t=ta(e.createTexture(),"Failed to create texture"),e.bindTexture(e.TEXTURE_2D,t),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MIN_FILTER,n??e.LINEAR),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MAG_FILTER,n??e.LINEAR),e.bindTexture(e.TEXTURE_2D,null),t}function aa(t,e,n){ia(t,e),t.A||(t.A=ta(e.createFramebuffer(),"Failed to create framebuffe.")),e.bindFramebuffer(e.FRAMEBUFFER,t.A),e.framebufferTexture2D(e.FRAMEBUFFER,e.COLOR_ATTACHMENT0,e.TEXTURE_2D,n,0)}function ha(t){t.g?.bindFramebuffer(t.g.FRAMEBUFFER,null)}var ca=class{H(){return"\n precision mediump float;\n varying vec2 vTex;\n uniform sampler2D inputTexture;\n void main() {\n gl_FragColor = texture2D(inputTexture, vTex);\n }\n "}m(){const t=this.g;if(this.h=ta(t.createProgram(),"Failed to create WebGL program"),this.da=na(this,"\n attribute vec2 aVertex;\n attribute vec2 aTex;\n varying vec2 vTex;\n void main(void) {\n gl_Position = vec4(aVertex, 0.0, 1.0);\n vTex = aTex;\n }",t.VERTEX_SHADER),this.ca=na(this,this.H(),t.FRAGMENT_SHADER),t.linkProgram(this.h),!t.getProgramParameter(this.h,t.LINK_STATUS))throw Error(`Error during program linking: ${t.getProgramInfoLog(this.h)}`);this.R=t.getAttribLocation(this.h,"aVertex"),this.J=t.getAttribLocation(this.h,"aTex")}C(){}l(){}close(){if(this.h){const t=this.g;t.deleteProgram(this.h),t.deleteShader(this.da),t.deleteShader(this.ca)}this.A&&this.g.deleteFramebuffer(this.A),this.v&&this.v.close(),this.s&&this.s.close()}};var ua=class extends ca{H(){return"\n precision mediump float;\n uniform sampler2D backgroundTexture;\n uniform sampler2D maskTexture;\n uniform sampler2D colorMappingTexture;\n varying vec2 vTex;\n void main() {\n vec4 backgroundColor = texture2D(backgroundTexture, vTex);\n float category = texture2D(maskTexture, vTex).r;\n vec4 categoryColor = texture2D(colorMappingTexture, vec2(category, 0.0));\n gl_FragColor = mix(backgroundColor, categoryColor, categoryColor.a);\n }\n "}C(){const t=this.g;t.activeTexture(t.TEXTURE1),this.B=oa(this,t,t.LINEAR),t.activeTexture(t.TEXTURE2),this.j=oa(this,t,t.NEAREST)}m(){super.m();const t=this.g;this.L=ta(t.getUniformLocation(this.h,"backgroundTexture"),"Uniform location"),this.V=ta(t.getUniformLocation(this.h,"colorMappingTexture"),"Uniform location"),this.K=ta(t.getUniformLocation(this.h,"maskTexture"),"Uniform location")}l(){super.l();const t=this.g;t.uniform1i(this.K,0),t.uniform1i(this.L,1),t.uniform1i(this.V,2)}close(){this.B&&this.g.deleteTexture(this.B),this.j&&this.g.deleteTexture(this.j),super.close()}},la=class extends ca{H(){return"\n precision mediump float;\n uniform sampler2D maskTexture;\n uniform sampler2D defaultTexture;\n uniform sampler2D overlayTexture;\n varying vec2 vTex;\n void main() {\n float confidence = texture2D(maskTexture, vTex).r;\n vec4 defaultColor = texture2D(defaultTexture, vTex);\n vec4 overlayColor = texture2D(overlayTexture, vTex);\n // Apply the alpha from the overlay and merge in the default color\n overlayColor = mix(defaultColor, overlayColor, overlayColor.a);\n gl_FragColor = mix(defaultColor, overlayColor, confidence);\n }\n "}C(){const t=this.g;t.activeTexture(t.TEXTURE1),this.j=oa(this,t),t.activeTexture(t.TEXTURE2),this.B=oa(this,t)}m(){super.m();const t=this.g;this.K=ta(t.getUniformLocation(this.h,"defaultTexture"),"Uniform location"),this.L=ta(t.getUniformLocation(this.h,"overlayTexture"),"Uniform location"),this.I=ta(t.getUniformLocation(this.h,"maskTexture"),"Uniform location")}l(){super.l();const t=this.g;t.uniform1i(this.I,0),t.uniform1i(this.K,1),t.uniform1i(this.L,2)}close(){this.j&&this.g.deleteTexture(this.j),this.B&&this.g.deleteTexture(this.B),super.close()}};function fa(t,e){switch(e){case 0:return t.g.find((t=>t instanceof Uint8Array));case 1:return t.g.find((t=>t instanceof Float32Array));case 2:return t.g.find((t=>"undefined"!=typeof WebGLTexture&&t instanceof WebGLTexture));default:throw Error(`Type is not supported: ${e}`)}}function da(t){var e=fa(t,1);if(!e){if(e=fa(t,0))e=new Float32Array(e).map((t=>t/255));else{e=new Float32Array(t.width*t.height);const r=ga(t);var n=ya(t);if(aa(n,r,pa(t)),"iPad Simulator;iPhone Simulator;iPod Simulator;iPad;iPhone;iPod".split(";").includes(navigator.platform)||navigator.userAgent.includes("Mac")&&"ontouchend"in self.document){n=new Float32Array(t.width*t.height*4),r.readPixels(0,0,t.width,t.height,r.RGBA,r.FLOAT,n);for(let t=0,r=0;t255*t))),t.g.push(e)),e;var t,e}ka(){return da(this)}N(){return pa(this)}clone(){const t=[];for(const e of this.g){let n;if(e instanceof Uint8Array)n=new Uint8Array(e);else if(e instanceof Float32Array)n=new Float32Array(e);else{if(!(e instanceof WebGLTexture))throw Error(`Type is not supported: ${e}`);{const t=ga(this),e=ya(this);t.activeTexture(t.TEXTURE1),n=oa(e,t,this.m?t.LINEAR:t.NEAREST),t.bindTexture(t.TEXTURE_2D,n);const r=ma(this);t.texImage2D(t.TEXTURE_2D,0,r,this.width,this.height,0,t.RED,t.FLOAT,null),t.bindTexture(t.TEXTURE_2D,null),aa(e,t,n),sa(e,t,!1,(()=>{_a(this),t.clearColor(0,0,0,0),t.clear(t.COLOR_BUFFER_BIT),t.drawArrays(t.TRIANGLE_FAN,0,4),va(this)})),ha(e),va(this)}}t.push(n)}return new wa(t,this.m,this.S(),this.canvas,this.l,this.width,this.height)}close(){this.j&&ga(this).deleteTexture(fa(this,2)),Ta=-1}};wa.prototype.close=wa.prototype.close,wa.prototype.clone=wa.prototype.clone,wa.prototype.getAsWebGLTexture=wa.prototype.N,wa.prototype.getAsFloat32Array=wa.prototype.ka,wa.prototype.getAsUint8Array=wa.prototype.la,wa.prototype.hasWebGLTexture=wa.prototype.S,wa.prototype.hasFloat32Array=wa.prototype.ma,wa.prototype.hasUint8Array=wa.prototype.Ja;var Ta=250;const ba={color:"white",lineWidth:4,radius:6};function Aa(t){return{...ba,fillColor:(t=t||{}).color,...t}}function ka(t,e){return t instanceof Function?t(e):t}function xa(t,e,n){return Math.max(Math.min(e,n),Math.min(Math.max(e,n),t))}function Sa(t){if(!t.l)throw Error("CPU rendering requested but CanvasRenderingContext2D not provided.");return t.l}function La(t){if(!t.j)throw Error("GPU rendering requested but WebGL2RenderingContext not provided.");return t.j}function Ra(t,e,n){if(e.S())n(e.N());else{const r=e.ma()?e.ka():e.la();t.m=t.m??new ca;const i=La(t);n((t=new wa([r],e.m,!1,i.canvas,t.m,e.width,e.height)).N()),t.close()}}function Fa(t,e,n,r){const i=function(t){return t.g||(t.g=new ua),t.g}(t),s=La(t),o=Array.isArray(n)?new ImageData(new Uint8ClampedArray(n),1,1):n;sa(i,s,!0,(()=>{!function(t,e,n,r){const i=t.g;if(i.activeTexture(i.TEXTURE0),i.bindTexture(i.TEXTURE_2D,e),i.activeTexture(i.TEXTURE1),i.bindTexture(i.TEXTURE_2D,t.B),i.texImage2D(i.TEXTURE_2D,0,i.RGBA,i.RGBA,i.UNSIGNED_BYTE,n),t.I&&function(t,e){if(t!==e)return!1;t=t.entries(),e=e.entries();for(const[r,i]of t){t=r;const s=i;var n=e.next();if(n.done)return!1;const[o,a]=n.value;if(n=a,t!==o||s[0]!==n[0]||s[1]!==n[1]||s[2]!==n[2]||s[3]!==n[3])return!1}return!!e.next().done}(t.I,r))i.activeTexture(i.TEXTURE2),i.bindTexture(i.TEXTURE_2D,t.j);else{t.I=r;const e=Array(1024).fill(0);r.forEach(((t,n)=>{if(4!==t.length)throw Error(`Color at index ${n} is not a four-channel value.`);e[4*n]=t[0],e[4*n+1]=t[1],e[4*n+2]=t[2],e[4*n+3]=t[3]})),i.activeTexture(i.TEXTURE2),i.bindTexture(i.TEXTURE_2D,t.j),i.texImage2D(i.TEXTURE_2D,0,i.RGBA,256,1,0,i.RGBA,i.UNSIGNED_BYTE,new Uint8Array(e))}}(i,e,o,r),s.clearColor(0,0,0,0),s.clear(s.COLOR_BUFFER_BIT),s.drawArrays(s.TRIANGLE_FAN,0,4);const t=i.g;t.activeTexture(t.TEXTURE0),t.bindTexture(t.TEXTURE_2D,null),t.activeTexture(t.TEXTURE1),t.bindTexture(t.TEXTURE_2D,null),t.activeTexture(t.TEXTURE2),t.bindTexture(t.TEXTURE_2D,null)}))}function Ma(t,e,n,r){const i=La(t),s=function(t){return t.h||(t.h=new la),t.h}(t),o=Array.isArray(n)?new ImageData(new Uint8ClampedArray(n),1,1):n,a=Array.isArray(r)?new ImageData(new Uint8ClampedArray(r),1,1):r;sa(s,i,!0,(()=>{var t=s.g;t.activeTexture(t.TEXTURE0),t.bindTexture(t.TEXTURE_2D,e),t.activeTexture(t.TEXTURE1),t.bindTexture(t.TEXTURE_2D,s.j),t.texImage2D(t.TEXTURE_2D,0,t.RGBA,t.RGBA,t.UNSIGNED_BYTE,o),t.activeTexture(t.TEXTURE2),t.bindTexture(t.TEXTURE_2D,s.B),t.texImage2D(t.TEXTURE_2D,0,t.RGBA,t.RGBA,t.UNSIGNED_BYTE,a),i.clearColor(0,0,0,0),i.clear(i.COLOR_BUFFER_BIT),i.drawArrays(i.TRIANGLE_FAN,0,4),i.bindTexture(i.TEXTURE_2D,null),(t=s.g).activeTexture(t.TEXTURE0),t.bindTexture(t.TEXTURE_2D,null),t.activeTexture(t.TEXTURE1),t.bindTexture(t.TEXTURE_2D,null),t.activeTexture(t.TEXTURE2),t.bindTexture(t.TEXTURE_2D,null)}))}var Ia=class{constructor(t,e){t instanceof CanvasRenderingContext2D||t instanceof OffscreenCanvasRenderingContext2D?(this.l=t,this.j=e):this.j=t}Ca(t,e){if(t){var n=Sa(this);e=Aa(e),n.save();var r=n.canvas,i=0;for(const s of t)n.fillStyle=ka(e.fillColor,{index:i,from:s}),n.strokeStyle=ka(e.color,{index:i,from:s}),n.lineWidth=ka(e.lineWidth,{index:i,from:s}),(t=new Path2D).arc(s.x*r.width,s.y*r.height,ka(e.radius,{index:i,from:s}),0,2*Math.PI),n.fill(t),n.stroke(t),++i;n.restore()}}Ba(t,e,n){if(t&&e){var r=Sa(this);n=Aa(n),r.save();var i=r.canvas,s=0;for(const o of e){r.beginPath(),e=t[o.start];const a=t[o.end];e&&a&&(r.strokeStyle=ka(n.color,{index:s,from:e,to:a}),r.lineWidth=ka(n.lineWidth,{index:s,from:e,to:a}),r.moveTo(e.x*i.width,e.y*i.height),r.lineTo(a.x*i.width,a.y*i.height)),++s,r.stroke()}r.restore()}}ya(t,e){const n=Sa(this);e=Aa(e),n.save(),n.beginPath(),n.lineWidth=ka(e.lineWidth,{}),n.strokeStyle=ka(e.color,{}),n.fillStyle=ka(e.fillColor,{}),n.moveTo(t.originX,t.originY),n.lineTo(t.originX+t.width,t.originY),n.lineTo(t.originX+t.width,t.originY+t.height),n.lineTo(t.originX,t.originY+t.height),n.lineTo(t.originX,t.originY),n.stroke(),n.fill(),n.restore()}za(t,e,n=[0,0,0,255]){this.l?function(t,e,n,r){const i=La(t);Ra(t,e,(e=>{Fa(t,e,n,r),(e=Sa(t)).drawImage(i.canvas,0,0,e.canvas.width,e.canvas.height)}))}(this,t,n,e):Fa(this,t.N(),n,e)}Aa(t,e,n){this.l?function(t,e,n,r){const i=La(t);Ra(t,e,(e=>{Ma(t,e,n,r),(e=Sa(t)).drawImage(i.canvas,0,0,e.canvas.width,e.canvas.height)}))}(this,t,e,n):Ma(this,t.N(),e,n)}close(){this.g?.close(),this.g=void 0,this.h?.close(),this.h=void 0,this.m?.close(),this.m=void 0}};function Pa(t,e){switch(e){case 0:return t.g.find((t=>t instanceof ImageData));case 1:return t.g.find((t=>"undefined"!=typeof ImageBitmap&&t instanceof ImageBitmap));case 2:return t.g.find((t=>"undefined"!=typeof WebGLTexture&&t instanceof WebGLTexture));default:throw Error(`Type is not supported: ${e}`)}}function Oa(t){var e=Pa(t,0);if(!e){e=Na(t);const n=Ua(t),r=new Uint8Array(t.width*t.height*4);aa(n,e,Ca(t)),e.readPixels(0,0,t.width,t.height,e.RGBA,e.UNSIGNED_BYTE,r),ha(n),e=new ImageData(new Uint8ClampedArray(r.buffer),t.width,t.height),t.g.push(e)}return e}function Ca(t){let e=Pa(t,2);if(!e){const n=Na(t);e=Da(t);const r=Pa(t,1)||Oa(t);n.texImage2D(n.TEXTURE_2D,0,n.RGBA,n.RGBA,n.UNSIGNED_BYTE,r),Ba(t)}return e}function Na(t){if(!t.canvas)throw Error("Conversion to different image formats require that a canvas is passed when iniitializing the image.");return t.h||(t.h=ta(t.canvas.getContext("webgl2"),"You cannot use a canvas that is already bound to a different type of rendering context.")),t.h}function Ua(t){return t.l||(t.l=new ca),t.l}function Da(t){const e=Na(t);e.viewport(0,0,t.width,t.height),e.activeTexture(e.TEXTURE0);let n=Pa(t,2);return n||(n=oa(Ua(t),e),t.g.push(n),t.m=!0),e.bindTexture(e.TEXTURE_2D,n),n}function Ba(t){t.h.bindTexture(t.h.TEXTURE_2D,null)}function Ga(t){const e=Na(t);return sa(Ua(t),e,!0,(()=>function(t,e){const n=t.canvas;if(n.width===t.width&&n.height===t.height)return e();const r=n.width,i=n.height;return n.width=t.width,n.height=t.height,t=e(),n.width=r,n.height=i,t}(t,(()=>{if(e.bindFramebuffer(e.FRAMEBUFFER,null),e.clearColor(0,0,0,0),e.clear(e.COLOR_BUFFER_BIT),e.drawArrays(e.TRIANGLE_FAN,0,4),!(t.canvas instanceof OffscreenCanvas))throw Error("Conversion to ImageBitmap requires that the MediaPipe Tasks is initialized with an OffscreenCanvas");return t.canvas.transferToImageBitmap()}))))}Ia.prototype.close=Ia.prototype.close,Ia.prototype.drawConfidenceMask=Ia.prototype.Aa,Ia.prototype.drawCategoryMask=Ia.prototype.za,Ia.prototype.drawBoundingBox=Ia.prototype.ya,Ia.prototype.drawConnectors=Ia.prototype.Ba,Ia.prototype.drawLandmarks=Ia.prototype.Ca,Ia.lerp=function(t,e,n,r,i){return xa(r*(1-(t-e)/(n-e))+i*(1-(n-t)/(n-e)),r,i)},Ia.clamp=xa;var ja=class{constructor(t,e,n,r,i,s,o){this.g=t,this.j=e,this.m=n,this.canvas=r,this.l=i,this.width=s,this.height=o,(this.j||this.m)&&(0===--Va&&console.error("You seem to be creating MPImage instances without invoking .close(). This leaks resources."))}Ia(){return!!Pa(this,0)}na(){return!!Pa(this,1)}S(){return!!Pa(this,2)}Ga(){return Oa(this)}Fa(){var t=Pa(this,1);return t||(Ca(this),Da(this),t=Ga(this),Ba(this),this.g.push(t),this.j=!0),t}N(){return Ca(this)}clone(){const t=[];for(const e of this.g){let n;if(e instanceof ImageData)n=new ImageData(e.data,this.width,this.height);else if(e instanceof WebGLTexture){const t=Na(this),e=Ua(this);t.activeTexture(t.TEXTURE1),n=oa(e,t),t.bindTexture(t.TEXTURE_2D,n),t.texImage2D(t.TEXTURE_2D,0,t.RGBA,this.width,this.height,0,t.RGBA,t.UNSIGNED_BYTE,null),t.bindTexture(t.TEXTURE_2D,null),aa(e,t,n),sa(e,t,!1,(()=>{Da(this),t.clearColor(0,0,0,0),t.clear(t.COLOR_BUFFER_BIT),t.drawArrays(t.TRIANGLE_FAN,0,4),Ba(this)})),ha(e),Ba(this)}else{if(!(e instanceof ImageBitmap))throw Error(`Type is not supported: ${e}`);Ca(this),Da(this),n=Ga(this),Ba(this)}t.push(n)}return new ja(t,this.na(),this.S(),this.canvas,this.l,this.width,this.height)}close(){this.j&&Pa(this,1).close(),this.m&&Na(this).deleteTexture(Pa(this,2)),Va=-1}};ja.prototype.close=ja.prototype.close,ja.prototype.clone=ja.prototype.clone,ja.prototype.getAsWebGLTexture=ja.prototype.N,ja.prototype.getAsImageBitmap=ja.prototype.Fa,ja.prototype.getAsImageData=ja.prototype.Ga,ja.prototype.hasWebGLTexture=ja.prototype.S,ja.prototype.hasImageBitmap=ja.prototype.na,ja.prototype.hasImageData=ja.prototype.Ia;var Va=250;function Xa(...t){return t.map((([t,e])=>({start:t,end:e})))}const Ha=function(t){return class extends t{Oa(){this.i._registerModelResourcesGraphService()}}}((Wa=class{constructor(t,e){this.l=!0,this.i=t,this.g=null,this.h=0,this.m="function"==typeof this.i._addIntToInputStream,void 0!==e?this.i.canvas=e:Do()?this.i.canvas=new OffscreenCanvas(1,1):(console.warn("OffscreenCanvas not supported and GraphRunner constructor glCanvas parameter is undefined. Creating backup canvas."),this.i.canvas=document.createElement("canvas"))}async initializeGraph(t){const e=await(await fetch(t)).arrayBuffer();t=!(t.endsWith(".pbtxt")||t.endsWith(".textproto")),this.setGraph(new Uint8Array(e),t)}setGraphFromString(t){this.setGraph((new TextEncoder).encode(t),!1)}setGraph(t,e){const n=t.length,r=this.i._malloc(n);this.i.HEAPU8.set(t,r),e?this.i._changeBinaryGraph(n,r):this.i._changeTextGraph(n,r),this.i._free(r)}configureAudio(t,e,n,r,i){this.i._configureAudio||console.warn('Attempting to use configureAudio without support for input audio. Is build dep ":gl_graph_runner_audio" missing?'),jo(this,r||"input_audio",(r=>{jo(this,i=i||"audio_header",(i=>{this.i._configureAudio(r,i,t,e,n)}))}))}setAutoResizeCanvas(t){this.l=t}setAutoRenderToScreen(t){this.i._setAutoRenderToScreen(t)}setGpuBufferVerticalFlip(t){this.i.gpuOriginForWebTexturesIsBottomLeft=t}ga(t){Ho(this,"__graph_config__",(e=>{t(e)})),jo(this,"__graph_config__",(t=>{this.i._getGraphConfig(t,void 0)})),delete this.i.simpleListeners.__graph_config__}attachErrorListener(t){this.i.errorListener=t}attachEmptyPacketListener(t,e){this.i.emptyPacketListeners=this.i.emptyPacketListeners||{},this.i.emptyPacketListeners[t]=e}addAudioToStream(t,e,n){this.addAudioToStreamWithShape(t,0,0,e,n)}addAudioToStreamWithShape(t,e,n,r,i){const s=4*t.length;this.h!==s&&(this.g&&this.i._free(this.g),this.g=this.i._malloc(s),this.h=s),this.i.HEAPF32.set(t,this.g/4),jo(this,r,(t=>{this.i._addAudioToInputStream(this.g,e,n,t,i)}))}addGpuBufferToStream(t,e,n){jo(this,e,(e=>{const[r,i]=Vo(this,t,e);this.i._addBoundTextureToStream(e,r,i,n)}))}addBoolToStream(t,e,n){jo(this,e,(e=>{this.i._addBoolToInputStream(t,e,n)}))}addDoubleToStream(t,e,n){jo(this,e,(e=>{this.i._addDoubleToInputStream(t,e,n)}))}addFloatToStream(t,e,n){jo(this,e,(e=>{this.i._addFloatToInputStream(t,e,n)}))}addIntToStream(t,e,n){jo(this,e,(e=>{this.i._addIntToInputStream(t,e,n)}))}addUintToStream(t,e,n){jo(this,e,(e=>{this.i._addUintToInputStream(t,e,n)}))}addStringToStream(t,e,n){jo(this,e,(e=>{jo(this,t,(t=>{this.i._addStringToInputStream(t,e,n)}))}))}addStringRecordToStream(t,e,n){jo(this,e,(e=>{Xo(this,Object.keys(t),(r=>{Xo(this,Object.values(t),(i=>{this.i._addFlatHashMapToInputStream(r,i,Object.keys(t).length,e,n)}))}))}))}addProtoToStream(t,e,n,r){jo(this,n,(n=>{jo(this,e,(e=>{const i=this.i._malloc(t.length);this.i.HEAPU8.set(t,i),this.i._addProtoToInputStream(i,t.length,e,n,r),this.i._free(i)}))}))}addEmptyPacketToStream(t,e){jo(this,t,(t=>{this.i._addEmptyPacketToInputStream(t,e)}))}addBoolVectorToStream(t,e,n){jo(this,e,(e=>{const r=this.i._allocateBoolVector(t.length);if(!r)throw Error("Unable to allocate new bool vector on heap.");for(const e of t)this.i._addBoolVectorEntry(r,e);this.i._addBoolVectorToInputStream(r,e,n)}))}addDoubleVectorToStream(t,e,n){jo(this,e,(e=>{const r=this.i._allocateDoubleVector(t.length);if(!r)throw Error("Unable to allocate new double vector on heap.");for(const e of t)this.i._addDoubleVectorEntry(r,e);this.i._addDoubleVectorToInputStream(r,e,n)}))}addFloatVectorToStream(t,e,n){jo(this,e,(e=>{const r=this.i._allocateFloatVector(t.length);if(!r)throw Error("Unable to allocate new float vector on heap.");for(const e of t)this.i._addFloatVectorEntry(r,e);this.i._addFloatVectorToInputStream(r,e,n)}))}addIntVectorToStream(t,e,n){jo(this,e,(e=>{const r=this.i._allocateIntVector(t.length);if(!r)throw Error("Unable to allocate new int vector on heap.");for(const e of t)this.i._addIntVectorEntry(r,e);this.i._addIntVectorToInputStream(r,e,n)}))}addUintVectorToStream(t,e,n){jo(this,e,(e=>{const r=this.i._allocateUintVector(t.length);if(!r)throw Error("Unable to allocate new unsigned int vector on heap.");for(const e of t)this.i._addUintVectorEntry(r,e);this.i._addUintVectorToInputStream(r,e,n)}))}addStringVectorToStream(t,e,n){jo(this,e,(e=>{const r=this.i._allocateStringVector(t.length);if(!r)throw Error("Unable to allocate new string vector on heap.");for(const e of t)jo(this,e,(t=>{this.i._addStringVectorEntry(r,t)}));this.i._addStringVectorToInputStream(r,e,n)}))}addBoolToInputSidePacket(t,e){jo(this,e,(e=>{this.i._addBoolToInputSidePacket(t,e)}))}addDoubleToInputSidePacket(t,e){jo(this,e,(e=>{this.i._addDoubleToInputSidePacket(t,e)}))}addFloatToInputSidePacket(t,e){jo(this,e,(e=>{this.i._addFloatToInputSidePacket(t,e)}))}addIntToInputSidePacket(t,e){jo(this,e,(e=>{this.i._addIntToInputSidePacket(t,e)}))}addUintToInputSidePacket(t,e){jo(this,e,(e=>{this.i._addUintToInputSidePacket(t,e)}))}addStringToInputSidePacket(t,e){jo(this,e,(e=>{jo(this,t,(t=>{this.i._addStringToInputSidePacket(t,e)}))}))}addProtoToInputSidePacket(t,e,n){jo(this,n,(n=>{jo(this,e,(e=>{const r=this.i._malloc(t.length);this.i.HEAPU8.set(t,r),this.i._addProtoToInputSidePacket(r,t.length,e,n),this.i._free(r)}))}))}addBoolVectorToInputSidePacket(t,e){jo(this,e,(e=>{const n=this.i._allocateBoolVector(t.length);if(!n)throw Error("Unable to allocate new bool vector on heap.");for(const e of t)this.i._addBoolVectorEntry(n,e);this.i._addBoolVectorToInputSidePacket(n,e)}))}addDoubleVectorToInputSidePacket(t,e){jo(this,e,(e=>{const n=this.i._allocateDoubleVector(t.length);if(!n)throw Error("Unable to allocate new double vector on heap.");for(const e of t)this.i._addDoubleVectorEntry(n,e);this.i._addDoubleVectorToInputSidePacket(n,e)}))}addFloatVectorToInputSidePacket(t,e){jo(this,e,(e=>{const n=this.i._allocateFloatVector(t.length);if(!n)throw Error("Unable to allocate new float vector on heap.");for(const e of t)this.i._addFloatVectorEntry(n,e);this.i._addFloatVectorToInputSidePacket(n,e)}))}addIntVectorToInputSidePacket(t,e){jo(this,e,(e=>{const n=this.i._allocateIntVector(t.length);if(!n)throw Error("Unable to allocate new int vector on heap.");for(const e of t)this.i._addIntVectorEntry(n,e);this.i._addIntVectorToInputSidePacket(n,e)}))}addUintVectorToInputSidePacket(t,e){jo(this,e,(e=>{const n=this.i._allocateUintVector(t.length);if(!n)throw Error("Unable to allocate new unsigned int vector on heap.");for(const e of t)this.i._addUintVectorEntry(n,e);this.i._addUintVectorToInputSidePacket(n,e)}))}addStringVectorToInputSidePacket(t,e){jo(this,e,(e=>{const n=this.i._allocateStringVector(t.length);if(!n)throw Error("Unable to allocate new string vector on heap.");for(const e of t)jo(this,e,(t=>{this.i._addStringVectorEntry(n,t)}));this.i._addStringVectorToInputSidePacket(n,e)}))}attachBoolListener(t,e){Ho(this,t,e),jo(this,t,(t=>{this.i._attachBoolListener(t)}))}attachBoolVectorListener(t,e){Wo(this,t,e),jo(this,t,(t=>{this.i._attachBoolVectorListener(t)}))}attachIntListener(t,e){Ho(this,t,e),jo(this,t,(t=>{this.i._attachIntListener(t)}))}attachIntVectorListener(t,e){Wo(this,t,e),jo(this,t,(t=>{this.i._attachIntVectorListener(t)}))}attachUintListener(t,e){Ho(this,t,e),jo(this,t,(t=>{this.i._attachUintListener(t)}))}attachUintVectorListener(t,e){Wo(this,t,e),jo(this,t,(t=>{this.i._attachUintVectorListener(t)}))}attachDoubleListener(t,e){Ho(this,t,e),jo(this,t,(t=>{this.i._attachDoubleListener(t)}))}attachDoubleVectorListener(t,e){Wo(this,t,e),jo(this,t,(t=>{this.i._attachDoubleVectorListener(t)}))}attachFloatListener(t,e){Ho(this,t,e),jo(this,t,(t=>{this.i._attachFloatListener(t)}))}attachFloatVectorListener(t,e){Wo(this,t,e),jo(this,t,(t=>{this.i._attachFloatVectorListener(t)}))}attachStringListener(t,e){Ho(this,t,e),jo(this,t,(t=>{this.i._attachStringListener(t)}))}attachStringVectorListener(t,e){Wo(this,t,e),jo(this,t,(t=>{this.i._attachStringVectorListener(t)}))}attachProtoListener(t,e,n){Ho(this,t,e),jo(this,t,(t=>{this.i._attachProtoListener(t,n||!1)}))}attachProtoVectorListener(t,e,n){Wo(this,t,e),jo(this,t,(t=>{this.i._attachProtoVectorListener(t,n||!1)}))}attachAudioListener(t,e,n){this.i._attachAudioListener||console.warn('Attempting to use attachAudioListener without support for output audio. Is build dep ":gl_graph_runner_audio_out" missing?'),Ho(this,t,((t,n)=>{t=new Float32Array(t.buffer,t.byteOffset,t.length/4),e(t,n)})),jo(this,t,(t=>{this.i._attachAudioListener(t,n||!1)}))}finishProcessing(){this.i._waitUntilIdle()}closeGraph(){this.i._closeGraph(),this.i.simpleListeners=void 0,this.i.emptyPacketListeners=void 0}},class extends Wa{get ia(){return this.i}ta(t,e,n){jo(this,e,(e=>{const[r,i]=Vo(this,t,e);this.ia._addBoundTextureAsImageToStream(e,r,i,n)}))}W(t,e){Ho(this,t,e),jo(this,t,(t=>{this.ia._attachImageListener(t)}))}fa(t,e){Wo(this,t,e),jo(this,t,(t=>{this.ia._attachImageVectorListener(t)}))}}));var Wa,za=class extends Ha{};async function Ka(t,e,n){return async function(t,e,n,r){return zo(t,e,n,r)}(t,n.canvas??(Do()?void 0:document.createElement("canvas")),e,n)}function Ya(t,e,n,r){if(t.V){const s=new fs;if(n?.regionOfInterest){if(!t.sa)throw Error("This task doesn't support region-of-interest.");var i=n.regionOfInterest;if(i.left>=i.right||i.top>=i.bottom)throw Error("Expected RectF with left < right and top < bottom.");if(i.left<0||i.top<0||i.right>1||i.bottom>1)throw Error("Expected RectF values to be in [0,1].");Ln(s,1,(i.left+i.right)/2),Ln(s,2,(i.top+i.bottom)/2),Ln(s,4,i.right-i.left),Ln(s,3,i.bottom-i.top)}else Ln(s,1,.5),Ln(s,2,.5),Ln(s,4,1),Ln(s,3,1);if(n?.rotationDegrees){if(n?.rotationDegrees%90!=0)throw Error("Expected rotation to be a multiple of 90°.");if(Ln(s,5,-Math.PI*n.rotationDegrees/180),n?.rotationDegrees%180!=0){const[t,r]=Go(e);n=An(s,3)*r/t,i=An(s,4)*t/r,Ln(s,4,n),Ln(s,3,i)}}t.g.addProtoToStream(s.g(),"mediapipe.NormalizedRect",t.V,r)}t.g.ta(e,t.da,r??performance.now()),t.finishProcessing()}function $a(t,e,n){if(t.baseOptions?.g())throw Error("Task is not initialized with image mode. 'runningMode' must be set to 'IMAGE'.");Ya(t,e,n,t.B+1)}function qa(t,e,n,r){if(!t.baseOptions?.g())throw Error("Task is not initialized with video mode. 'runningMode' must be set to 'VIDEO'.");Ya(t,e,n,r)}function Ja(t,e,n,r){var i=e.data;const s=e.width,o=s*(e=e.height);if((i instanceof Uint8Array||i instanceof Float32Array)&&i.length!==o)throw Error("Unsupported channel count: "+i.length/o);return t=new wa([i],n,!1,t.g.i.canvas,t.R,s,e),r?t.clone():t}var Za=class extends Qo{constructor(t,e,n,r){super(t),this.g=t,this.da=e,this.V=n,this.sa=r,this.R=new ca}l(t,e=!0){if("runningMode"in t&&xn(this.baseOptions,2,!!t.runningMode&&"IMAGE"!==t.runningMode),void 0!==t.canvas&&this.g.i.canvas!==t.canvas)throw Error("You must create a new task to reset the canvas.");return super.l(t,e)}close(){this.R.close(),super.close()}};Za.prototype.close=Za.prototype.close;var Qa=class extends Za{constructor(t,e){super(new za(t,e),"image_in","norm_rect_in",!1),this.j={detections:[]},yn(t=this.h=new Fs,0,1,e=new Ss),Ln(this.h,2,.5),Ln(this.h,3,.3)}get baseOptions(){return pn(this.h,Ss,1)}set baseOptions(t){yn(this.h,0,1,t)}o(t){return"minDetectionConfidence"in t&&Ln(this.h,2,t.minDetectionConfidence??.5),"minSuppressionThreshold"in t&&Ln(this.h,3,t.minSuppressionThreshold??.3),this.l(t)}D(t,e){return this.j={detections:[]},$a(this,t,e),this.j}F(t,e,n){return this.j={detections:[]},qa(this,t,n,e),this.j}m(){var t=new $i;Ki(t,"image_in"),Ki(t,"norm_rect_in"),Yi(t,"detections");const e=new Ci;er(e,Is,this.h);const n=new Vi;Bi(n,"mediapipe.tasks.vision.face_detector.FaceDetectorGraph"),Gi(n,"IMAGE:image_in"),Gi(n,"NORM_RECT:norm_rect_in"),ji(n,"DETECTIONS:detections"),n.o(e),zi(t,n),this.g.attachProtoVectorListener("detections",((t,e)=>{for(const e of t)t=ss(e),this.j.detections.push(Lo(t));$o(this,e)})),this.g.attachEmptyPacketListener("detections",(t=>{$o(this,t)})),t=t.g(),this.setGraph(new Uint8Array(t),!0)}};Qa.prototype.detectForVideo=Qa.prototype.F,Qa.prototype.detect=Qa.prototype.D,Qa.prototype.setOptions=Qa.prototype.o,Qa.createFromModelPath=async function(t,e){return Ka(Qa,t,{baseOptions:{modelAssetPath:e}})},Qa.createFromModelBuffer=function(t,e){return Ka(Qa,t,{baseOptions:{modelAssetBuffer:e}})},Qa.createFromOptions=function(t,e){return Ka(Qa,t,e)};var th=Xa([61,146],[146,91],[91,181],[181,84],[84,17],[17,314],[314,405],[405,321],[321,375],[375,291],[61,185],[185,40],[40,39],[39,37],[37,0],[0,267],[267,269],[269,270],[270,409],[409,291],[78,95],[95,88],[88,178],[178,87],[87,14],[14,317],[317,402],[402,318],[318,324],[324,308],[78,191],[191,80],[80,81],[81,82],[82,13],[13,312],[312,311],[311,310],[310,415],[415,308]),eh=Xa([263,249],[249,390],[390,373],[373,374],[374,380],[380,381],[381,382],[382,362],[263,466],[466,388],[388,387],[387,386],[386,385],[385,384],[384,398],[398,362]),nh=Xa([276,283],[283,282],[282,295],[295,285],[300,293],[293,334],[334,296],[296,336]),rh=Xa([474,475],[475,476],[476,477],[477,474]),ih=Xa([33,7],[7,163],[163,144],[144,145],[145,153],[153,154],[154,155],[155,133],[33,246],[246,161],[161,160],[160,159],[159,158],[158,157],[157,173],[173,133]),sh=Xa([46,53],[53,52],[52,65],[65,55],[70,63],[63,105],[105,66],[66,107]),oh=Xa([469,470],[470,471],[471,472],[472,469]),ah=Xa([10,338],[338,297],[297,332],[332,284],[284,251],[251,389],[389,356],[356,454],[454,323],[323,361],[361,288],[288,397],[397,365],[365,379],[379,378],[378,400],[400,377],[377,152],[152,148],[148,176],[176,149],[149,150],[150,136],[136,172],[172,58],[58,132],[132,93],[93,234],[234,127],[127,162],[162,21],[21,54],[54,103],[103,67],[67,109],[109,10]),hh=[...th,...eh,...nh,...ih,...sh,...ah],ch=Xa([127,34],[34,139],[139,127],[11,0],[0,37],[37,11],[232,231],[231,120],[120,232],[72,37],[37,39],[39,72],[128,121],[121,47],[47,128],[232,121],[121,128],[128,232],[104,69],[69,67],[67,104],[175,171],[171,148],[148,175],[118,50],[50,101],[101,118],[73,39],[39,40],[40,73],[9,151],[151,108],[108,9],[48,115],[115,131],[131,48],[194,204],[204,211],[211,194],[74,40],[40,185],[185,74],[80,42],[42,183],[183,80],[40,92],[92,186],[186,40],[230,229],[229,118],[118,230],[202,212],[212,214],[214,202],[83,18],[18,17],[17,83],[76,61],[61,146],[146,76],[160,29],[29,30],[30,160],[56,157],[157,173],[173,56],[106,204],[204,194],[194,106],[135,214],[214,192],[192,135],[203,165],[165,98],[98,203],[21,71],[71,68],[68,21],[51,45],[45,4],[4,51],[144,24],[24,23],[23,144],[77,146],[146,91],[91,77],[205,50],[50,187],[187,205],[201,200],[200,18],[18,201],[91,106],[106,182],[182,91],[90,91],[91,181],[181,90],[85,84],[84,17],[17,85],[206,203],[203,36],[36,206],[148,171],[171,140],[140,148],[92,40],[40,39],[39,92],[193,189],[189,244],[244,193],[159,158],[158,28],[28,159],[247,246],[246,161],[161,247],[236,3],[3,196],[196,236],[54,68],[68,104],[104,54],[193,168],[168,8],[8,193],[117,228],[228,31],[31,117],[189,193],[193,55],[55,189],[98,97],[97,99],[99,98],[126,47],[47,100],[100,126],[166,79],[79,218],[218,166],[155,154],[154,26],[26,155],[209,49],[49,131],[131,209],[135,136],[136,150],[150,135],[47,126],[126,217],[217,47],[223,52],[52,53],[53,223],[45,51],[51,134],[134,45],[211,170],[170,140],[140,211],[67,69],[69,108],[108,67],[43,106],[106,91],[91,43],[230,119],[119,120],[120,230],[226,130],[130,247],[247,226],[63,53],[53,52],[52,63],[238,20],[20,242],[242,238],[46,70],[70,156],[156,46],[78,62],[62,96],[96,78],[46,53],[53,63],[63,46],[143,34],[34,227],[227,143],[123,117],[117,111],[111,123],[44,125],[125,19],[19,44],[236,134],[134,51],[51,236],[216,206],[206,205],[205,216],[154,153],[153,22],[22,154],[39,37],[37,167],[167,39],[200,201],[201,208],[208,200],[36,142],[142,100],[100,36],[57,212],[212,202],[202,57],[20,60],[60,99],[99,20],[28,158],[158,157],[157,28],[35,226],[226,113],[113,35],[160,159],[159,27],[27,160],[204,202],[202,210],[210,204],[113,225],[225,46],[46,113],[43,202],[202,204],[204,43],[62,76],[76,77],[77,62],[137,123],[123,116],[116,137],[41,38],[38,72],[72,41],[203,129],[129,142],[142,203],[64,98],[98,240],[240,64],[49,102],[102,64],[64,49],[41,73],[73,74],[74,41],[212,216],[216,207],[207,212],[42,74],[74,184],[184,42],[169,170],[170,211],[211,169],[170,149],[149,176],[176,170],[105,66],[66,69],[69,105],[122,6],[6,168],[168,122],[123,147],[147,187],[187,123],[96,77],[77,90],[90,96],[65,55],[55,107],[107,65],[89,90],[90,180],[180,89],[101,100],[100,120],[120,101],[63,105],[105,104],[104,63],[93,137],[137,227],[227,93],[15,86],[86,85],[85,15],[129,102],[102,49],[49,129],[14,87],[87,86],[86,14],[55,8],[8,9],[9,55],[100,47],[47,121],[121,100],[145,23],[23,22],[22,145],[88,89],[89,179],[179,88],[6,122],[122,196],[196,6],[88,95],[95,96],[96,88],[138,172],[172,136],[136,138],[215,58],[58,172],[172,215],[115,48],[48,219],[219,115],[42,80],[80,81],[81,42],[195,3],[3,51],[51,195],[43,146],[146,61],[61,43],[171,175],[175,199],[199,171],[81,82],[82,38],[38,81],[53,46],[46,225],[225,53],[144,163],[163,110],[110,144],[52,65],[65,66],[66,52],[229,228],[228,117],[117,229],[34,127],[127,234],[234,34],[107,108],[108,69],[69,107],[109,108],[108,151],[151,109],[48,64],[64,235],[235,48],[62,78],[78,191],[191,62],[129,209],[209,126],[126,129],[111,35],[35,143],[143,111],[117,123],[123,50],[50,117],[222,65],[65,52],[52,222],[19,125],[125,141],[141,19],[221,55],[55,65],[65,221],[3,195],[195,197],[197,3],[25,7],[7,33],[33,25],[220,237],[237,44],[44,220],[70,71],[71,139],[139,70],[122,193],[193,245],[245,122],[247,130],[130,33],[33,247],[71,21],[21,162],[162,71],[170,169],[169,150],[150,170],[188,174],[174,196],[196,188],[216,186],[186,92],[92,216],[2,97],[97,167],[167,2],[141,125],[125,241],[241,141],[164,167],[167,37],[37,164],[72,38],[38,12],[12,72],[38,82],[82,13],[13,38],[63,68],[68,71],[71,63],[226,35],[35,111],[111,226],[101,50],[50,205],[205,101],[206,92],[92,165],[165,206],[209,198],[198,217],[217,209],[165,167],[167,97],[97,165],[220,115],[115,218],[218,220],[133,112],[112,243],[243,133],[239,238],[238,241],[241,239],[214,135],[135,169],[169,214],[190,173],[173,133],[133,190],[171,208],[208,32],[32,171],[125,44],[44,237],[237,125],[86,87],[87,178],[178,86],[85,86],[86,179],[179,85],[84,85],[85,180],[180,84],[83,84],[84,181],[181,83],[201,83],[83,182],[182,201],[137,93],[93,132],[132,137],[76,62],[62,183],[183,76],[61,76],[76,184],[184,61],[57,61],[61,185],[185,57],[212,57],[57,186],[186,212],[214,207],[207,187],[187,214],[34,143],[143,156],[156,34],[79,239],[239,237],[237,79],[123,137],[137,177],[177,123],[44,1],[1,4],[4,44],[201,194],[194,32],[32,201],[64,102],[102,129],[129,64],[213,215],[215,138],[138,213],[59,166],[166,219],[219,59],[242,99],[99,97],[97,242],[2,94],[94,141],[141,2],[75,59],[59,235],[235,75],[24,110],[110,228],[228,24],[25,130],[130,226],[226,25],[23,24],[24,229],[229,23],[22,23],[23,230],[230,22],[26,22],[22,231],[231,26],[112,26],[26,232],[232,112],[189,190],[190,243],[243,189],[221,56],[56,190],[190,221],[28,56],[56,221],[221,28],[27,28],[28,222],[222,27],[29,27],[27,223],[223,29],[30,29],[29,224],[224,30],[247,30],[30,225],[225,247],[238,79],[79,20],[20,238],[166,59],[59,75],[75,166],[60,75],[75,240],[240,60],[147,177],[177,215],[215,147],[20,79],[79,166],[166,20],[187,147],[147,213],[213,187],[112,233],[233,244],[244,112],[233,128],[128,245],[245,233],[128,114],[114,188],[188,128],[114,217],[217,174],[174,114],[131,115],[115,220],[220,131],[217,198],[198,236],[236,217],[198,131],[131,134],[134,198],[177,132],[132,58],[58,177],[143,35],[35,124],[124,143],[110,163],[163,7],[7,110],[228,110],[110,25],[25,228],[356,389],[389,368],[368,356],[11,302],[302,267],[267,11],[452,350],[350,349],[349,452],[302,303],[303,269],[269,302],[357,343],[343,277],[277,357],[452,453],[453,357],[357,452],[333,332],[332,297],[297,333],[175,152],[152,377],[377,175],[347,348],[348,330],[330,347],[303,304],[304,270],[270,303],[9,336],[336,337],[337,9],[278,279],[279,360],[360,278],[418,262],[262,431],[431,418],[304,408],[408,409],[409,304],[310,415],[415,407],[407,310],[270,409],[409,410],[410,270],[450,348],[348,347],[347,450],[422,430],[430,434],[434,422],[313,314],[314,17],[17,313],[306,307],[307,375],[375,306],[387,388],[388,260],[260,387],[286,414],[414,398],[398,286],[335,406],[406,418],[418,335],[364,367],[367,416],[416,364],[423,358],[358,327],[327,423],[251,284],[284,298],[298,251],[281,5],[5,4],[4,281],[373,374],[374,253],[253,373],[307,320],[320,321],[321,307],[425,427],[427,411],[411,425],[421,313],[313,18],[18,421],[321,405],[405,406],[406,321],[320,404],[404,405],[405,320],[315,16],[16,17],[17,315],[426,425],[425,266],[266,426],[377,400],[400,369],[369,377],[322,391],[391,269],[269,322],[417,465],[465,464],[464,417],[386,257],[257,258],[258,386],[466,260],[260,388],[388,466],[456,399],[399,419],[419,456],[284,332],[332,333],[333,284],[417,285],[285,8],[8,417],[346,340],[340,261],[261,346],[413,441],[441,285],[285,413],[327,460],[460,328],[328,327],[355,371],[371,329],[329,355],[392,439],[439,438],[438,392],[382,341],[341,256],[256,382],[429,420],[420,360],[360,429],[364,394],[394,379],[379,364],[277,343],[343,437],[437,277],[443,444],[444,283],[283,443],[275,440],[440,363],[363,275],[431,262],[262,369],[369,431],[297,338],[338,337],[337,297],[273,375],[375,321],[321,273],[450,451],[451,349],[349,450],[446,342],[342,467],[467,446],[293,334],[334,282],[282,293],[458,461],[461,462],[462,458],[276,353],[353,383],[383,276],[308,324],[324,325],[325,308],[276,300],[300,293],[293,276],[372,345],[345,447],[447,372],[352,345],[345,340],[340,352],[274,1],[1,19],[19,274],[456,248],[248,281],[281,456],[436,427],[427,425],[425,436],[381,256],[256,252],[252,381],[269,391],[391,393],[393,269],[200,199],[199,428],[428,200],[266,330],[330,329],[329,266],[287,273],[273,422],[422,287],[250,462],[462,328],[328,250],[258,286],[286,384],[384,258],[265,353],[353,342],[342,265],[387,259],[259,257],[257,387],[424,431],[431,430],[430,424],[342,353],[353,276],[276,342],[273,335],[335,424],[424,273],[292,325],[325,307],[307,292],[366,447],[447,345],[345,366],[271,303],[303,302],[302,271],[423,266],[266,371],[371,423],[294,455],[455,460],[460,294],[279,278],[278,294],[294,279],[271,272],[272,304],[304,271],[432,434],[434,427],[427,432],[272,407],[407,408],[408,272],[394,430],[430,431],[431,394],[395,369],[369,400],[400,395],[334,333],[333,299],[299,334],[351,417],[417,168],[168,351],[352,280],[280,411],[411,352],[325,319],[319,320],[320,325],[295,296],[296,336],[336,295],[319,403],[403,404],[404,319],[330,348],[348,349],[349,330],[293,298],[298,333],[333,293],[323,454],[454,447],[447,323],[15,16],[16,315],[315,15],[358,429],[429,279],[279,358],[14,15],[15,316],[316,14],[285,336],[336,9],[9,285],[329,349],[349,350],[350,329],[374,380],[380,252],[252,374],[318,402],[402,403],[403,318],[6,197],[197,419],[419,6],[318,319],[319,325],[325,318],[367,364],[364,365],[365,367],[435,367],[367,397],[397,435],[344,438],[438,439],[439,344],[272,271],[271,311],[311,272],[195,5],[5,281],[281,195],[273,287],[287,291],[291,273],[396,428],[428,199],[199,396],[311,271],[271,268],[268,311],[283,444],[444,445],[445,283],[373,254],[254,339],[339,373],[282,334],[334,296],[296,282],[449,347],[347,346],[346,449],[264,447],[447,454],[454,264],[336,296],[296,299],[299,336],[338,10],[10,151],[151,338],[278,439],[439,455],[455,278],[292,407],[407,415],[415,292],[358,371],[371,355],[355,358],[340,345],[345,372],[372,340],[346,347],[347,280],[280,346],[442,443],[443,282],[282,442],[19,94],[94,370],[370,19],[441,442],[442,295],[295,441],[248,419],[419,197],[197,248],[263,255],[255,359],[359,263],[440,275],[275,274],[274,440],[300,383],[383,368],[368,300],[351,412],[412,465],[465,351],[263,467],[467,466],[466,263],[301,368],[368,389],[389,301],[395,378],[378,379],[379,395],[412,351],[351,419],[419,412],[436,426],[426,322],[322,436],[2,164],[164,393],[393,2],[370,462],[462,461],[461,370],[164,0],[0,267],[267,164],[302,11],[11,12],[12,302],[268,12],[12,13],[13,268],[293,300],[300,301],[301,293],[446,261],[261,340],[340,446],[330,266],[266,425],[425,330],[426,423],[423,391],[391,426],[429,355],[355,437],[437,429],[391,327],[327,326],[326,391],[440,457],[457,438],[438,440],[341,382],[382,362],[362,341],[459,457],[457,461],[461,459],[434,430],[430,394],[394,434],[414,463],[463,362],[362,414],[396,369],[369,262],[262,396],[354,461],[461,457],[457,354],[316,403],[403,402],[402,316],[315,404],[404,403],[403,315],[314,405],[405,404],[404,314],[313,406],[406,405],[405,313],[421,418],[418,406],[406,421],[366,401],[401,361],[361,366],[306,408],[408,407],[407,306],[291,409],[409,408],[408,291],[287,410],[410,409],[409,287],[432,436],[436,410],[410,432],[434,416],[416,411],[411,434],[264,368],[368,383],[383,264],[309,438],[438,457],[457,309],[352,376],[376,401],[401,352],[274,275],[275,4],[4,274],[421,428],[428,262],[262,421],[294,327],[327,358],[358,294],[433,416],[416,367],[367,433],[289,455],[455,439],[439,289],[462,370],[370,326],[326,462],[2,326],[326,370],[370,2],[305,460],[460,455],[455,305],[254,449],[449,448],[448,254],[255,261],[261,446],[446,255],[253,450],[450,449],[449,253],[252,451],[451,450],[450,252],[256,452],[452,451],[451,256],[341,453],[453,452],[452,341],[413,464],[464,463],[463,413],[441,413],[413,414],[414,441],[258,442],[442,441],[441,258],[257,443],[443,442],[442,257],[259,444],[444,443],[443,259],[260,445],[445,444],[444,260],[467,342],[342,445],[445,467],[459,458],[458,250],[250,459],[289,392],[392,290],[290,289],[290,328],[328,460],[460,290],[376,433],[433,435],[435,376],[250,290],[290,392],[392,250],[411,416],[416,433],[433,411],[341,463],[463,464],[464,341],[453,464],[464,465],[465,453],[357,465],[465,412],[412,357],[343,412],[412,399],[399,343],[360,363],[363,440],[440,360],[437,399],[399,456],[456,437],[420,456],[456,363],[363,420],[401,435],[435,288],[288,401],[372,383],[383,353],[353,372],[339,255],[255,249],[249,339],[448,261],[261,255],[255,448],[133,243],[243,190],[190,133],[133,155],[155,112],[112,133],[33,246],[246,247],[247,33],[33,130],[130,25],[25,33],[398,384],[384,286],[286,398],[362,398],[398,414],[414,362],[362,463],[463,341],[341,362],[263,359],[359,467],[467,263],[263,249],[249,255],[255,263],[466,467],[467,260],[260,466],[75,60],[60,166],[166,75],[238,239],[239,79],[79,238],[162,127],[127,139],[139,162],[72,11],[11,37],[37,72],[121,232],[232,120],[120,121],[73,72],[72,39],[39,73],[114,128],[128,47],[47,114],[233,232],[232,128],[128,233],[103,104],[104,67],[67,103],[152,175],[175,148],[148,152],[119,118],[118,101],[101,119],[74,73],[73,40],[40,74],[107,9],[9,108],[108,107],[49,48],[48,131],[131,49],[32,194],[194,211],[211,32],[184,74],[74,185],[185,184],[191,80],[80,183],[183,191],[185,40],[40,186],[186,185],[119,230],[230,118],[118,119],[210,202],[202,214],[214,210],[84,83],[83,17],[17,84],[77,76],[76,146],[146,77],[161,160],[160,30],[30,161],[190,56],[56,173],[173,190],[182,106],[106,194],[194,182],[138,135],[135,192],[192,138],[129,203],[203,98],[98,129],[54,21],[21,68],[68,54],[5,51],[51,4],[4,5],[145,144],[144,23],[23,145],[90,77],[77,91],[91,90],[207,205],[205,187],[187,207],[83,201],[201,18],[18,83],[181,91],[91,182],[182,181],[180,90],[90,181],[181,180],[16,85],[85,17],[17,16],[205,206],[206,36],[36,205],[176,148],[148,140],[140,176],[165,92],[92,39],[39,165],[245,193],[193,244],[244,245],[27,159],[159,28],[28,27],[30,247],[247,161],[161,30],[174,236],[236,196],[196,174],[103,54],[54,104],[104,103],[55,193],[193,8],[8,55],[111,117],[117,31],[31,111],[221,189],[189,55],[55,221],[240,98],[98,99],[99,240],[142,126],[126,100],[100,142],[219,166],[166,218],[218,219],[112,155],[155,26],[26,112],[198,209],[209,131],[131,198],[169,135],[135,150],[150,169],[114,47],[47,217],[217,114],[224,223],[223,53],[53,224],[220,45],[45,134],[134,220],[32,211],[211,140],[140,32],[109,67],[67,108],[108,109],[146,43],[43,91],[91,146],[231,230],[230,120],[120,231],[113,226],[226,247],[247,113],[105,63],[63,52],[52,105],[241,238],[238,242],[242,241],[124,46],[46,156],[156,124],[95,78],[78,96],[96,95],[70,46],[46,63],[63,70],[116,143],[143,227],[227,116],[116,123],[123,111],[111,116],[1,44],[44,19],[19,1],[3,236],[236,51],[51,3],[207,216],[216,205],[205,207],[26,154],[154,22],[22,26],[165,39],[39,167],[167,165],[199,200],[200,208],[208,199],[101,36],[36,100],[100,101],[43,57],[57,202],[202,43],[242,20],[20,99],[99,242],[56,28],[28,157],[157,56],[124,35],[35,113],[113,124],[29,160],[160,27],[27,29],[211,204],[204,210],[210,211],[124,113],[113,46],[46,124],[106,43],[43,204],[204,106],[96,62],[62,77],[77,96],[227,137],[137,116],[116,227],[73,41],[41,72],[72,73],[36,203],[203,142],[142,36],[235,64],[64,240],[240,235],[48,49],[49,64],[64,48],[42,41],[41,74],[74,42],[214,212],[212,207],[207,214],[183,42],[42,184],[184,183],[210,169],[169,211],[211,210],[140,170],[170,176],[176,140],[104,105],[105,69],[69,104],[193,122],[122,168],[168,193],[50,123],[123,187],[187,50],[89,96],[96,90],[90,89],[66,65],[65,107],[107,66],[179,89],[89,180],[180,179],[119,101],[101,120],[120,119],[68,63],[63,104],[104,68],[234,93],[93,227],[227,234],[16,15],[15,85],[85,16],[209,129],[129,49],[49,209],[15,14],[14,86],[86,15],[107,55],[55,9],[9,107],[120,100],[100,121],[121,120],[153,145],[145,22],[22,153],[178,88],[88,179],[179,178],[197,6],[6,196],[196,197],[89,88],[88,96],[96,89],[135,138],[138,136],[136,135],[138,215],[215,172],[172,138],[218,115],[115,219],[219,218],[41,42],[42,81],[81,41],[5,195],[195,51],[51,5],[57,43],[43,61],[61,57],[208,171],[171,199],[199,208],[41,81],[81,38],[38,41],[224,53],[53,225],[225,224],[24,144],[144,110],[110,24],[105,52],[52,66],[66,105],[118,229],[229,117],[117,118],[227,34],[34,234],[234,227],[66,107],[107,69],[69,66],[10,109],[109,151],[151,10],[219,48],[48,235],[235,219],[183,62],[62,191],[191,183],[142,129],[129,126],[126,142],[116,111],[111,143],[143,116],[118,117],[117,50],[50,118],[223,222],[222,52],[52,223],[94,19],[19,141],[141,94],[222,221],[221,65],[65,222],[196,3],[3,197],[197,196],[45,220],[220,44],[44,45],[156,70],[70,139],[139,156],[188,122],[122,245],[245,188],[139,71],[71,162],[162,139],[149,170],[170,150],[150,149],[122,188],[188,196],[196,122],[206,216],[216,92],[92,206],[164,2],[2,167],[167,164],[242,141],[141,241],[241,242],[0,164],[164,37],[37,0],[11,72],[72,12],[12,11],[12,38],[38,13],[13,12],[70,63],[63,71],[71,70],[31,226],[226,111],[111,31],[36,101],[101,205],[205,36],[203,206],[206,165],[165,203],[126,209],[209,217],[217,126],[98,165],[165,97],[97,98],[237,220],[220,218],[218,237],[237,239],[239,241],[241,237],[210,214],[214,169],[169,210],[140,171],[171,32],[32,140],[241,125],[125,237],[237,241],[179,86],[86,178],[178,179],[180,85],[85,179],[179,180],[181,84],[84,180],[180,181],[182,83],[83,181],[181,182],[194,201],[201,182],[182,194],[177,137],[137,132],[132,177],[184,76],[76,183],[183,184],[185,61],[61,184],[184,185],[186,57],[57,185],[185,186],[216,212],[212,186],[186,216],[192,214],[214,187],[187,192],[139,34],[34,156],[156,139],[218,79],[79,237],[237,218],[147,123],[123,177],[177,147],[45,44],[44,4],[4,45],[208,201],[201,32],[32,208],[98,64],[64,129],[129,98],[192,213],[213,138],[138,192],[235,59],[59,219],[219,235],[141,242],[242,97],[97,141],[97,2],[2,141],[141,97],[240,75],[75,235],[235,240],[229,24],[24,228],[228,229],[31,25],[25,226],[226,31],[230,23],[23,229],[229,230],[231,22],[22,230],[230,231],[232,26],[26,231],[231,232],[233,112],[112,232],[232,233],[244,189],[189,243],[243,244],[189,221],[221,190],[190,189],[222,28],[28,221],[221,222],[223,27],[27,222],[222,223],[224,29],[29,223],[223,224],[225,30],[30,224],[224,225],[113,247],[247,225],[225,113],[99,60],[60,240],[240,99],[213,147],[147,215],[215,213],[60,20],[20,166],[166,60],[192,187],[187,213],[213,192],[243,112],[112,244],[244,243],[244,233],[233,245],[245,244],[245,128],[128,188],[188,245],[188,114],[114,174],[174,188],[134,131],[131,220],[220,134],[174,217],[217,236],[236,174],[236,198],[198,134],[134,236],[215,177],[177,58],[58,215],[156,143],[143,124],[124,156],[25,110],[110,7],[7,25],[31,228],[228,25],[25,31],[264,356],[356,368],[368,264],[0,11],[11,267],[267,0],[451,452],[452,349],[349,451],[267,302],[302,269],[269,267],[350,357],[357,277],[277,350],[350,452],[452,357],[357,350],[299,333],[333,297],[297,299],[396,175],[175,377],[377,396],[280,347],[347,330],[330,280],[269,303],[303,270],[270,269],[151,9],[9,337],[337,151],[344,278],[278,360],[360,344],[424,418],[418,431],[431,424],[270,304],[304,409],[409,270],[272,310],[310,407],[407,272],[322,270],[270,410],[410,322],[449,450],[450,347],[347,449],[432,422],[422,434],[434,432],[18,313],[313,17],[17,18],[291,306],[306,375],[375,291],[259,387],[387,260],[260,259],[424,335],[335,418],[418,424],[434,364],[364,416],[416,434],[391,423],[423,327],[327,391],[301,251],[251,298],[298,301],[275,281],[281,4],[4,275],[254,373],[373,253],[253,254],[375,307],[307,321],[321,375],[280,425],[425,411],[411,280],[200,421],[421,18],[18,200],[335,321],[321,406],[406,335],[321,320],[320,405],[405,321],[314,315],[315,17],[17,314],[423,426],[426,266],[266,423],[396,377],[377,369],[369,396],[270,322],[322,269],[269,270],[413,417],[417,464],[464,413],[385,386],[386,258],[258,385],[248,456],[456,419],[419,248],[298,284],[284,333],[333,298],[168,417],[417,8],[8,168],[448,346],[346,261],[261,448],[417,413],[413,285],[285,417],[326,327],[327,328],[328,326],[277,355],[355,329],[329,277],[309,392],[392,438],[438,309],[381,382],[382,256],[256,381],[279,429],[429,360],[360,279],[365,364],[364,379],[379,365],[355,277],[277,437],[437,355],[282,443],[443,283],[283,282],[281,275],[275,363],[363,281],[395,431],[431,369],[369,395],[299,297],[297,337],[337,299],[335,273],[273,321],[321,335],[348,450],[450,349],[349,348],[359,446],[446,467],[467,359],[283,293],[293,282],[282,283],[250,458],[458,462],[462,250],[300,276],[276,383],[383,300],[292,308],[308,325],[325,292],[283,276],[276,293],[293,283],[264,372],[372,447],[447,264],[346,352],[352,340],[340,346],[354,274],[274,19],[19,354],[363,456],[456,281],[281,363],[426,436],[436,425],[425,426],[380,381],[381,252],[252,380],[267,269],[269,393],[393,267],[421,200],[200,428],[428,421],[371,266],[266,329],[329,371],[432,287],[287,422],[422,432],[290,250],[250,328],[328,290],[385,258],[258,384],[384,385],[446,265],[265,342],[342,446],[386,387],[387,257],[257,386],[422,424],[424,430],[430,422],[445,342],[342,276],[276,445],[422,273],[273,424],[424,422],[306,292],[292,307],[307,306],[352,366],[366,345],[345,352],[268,271],[271,302],[302,268],[358,423],[423,371],[371,358],[327,294],[294,460],[460,327],[331,279],[279,294],[294,331],[303,271],[271,304],[304,303],[436,432],[432,427],[427,436],[304,272],[272,408],[408,304],[395,394],[394,431],[431,395],[378,395],[395,400],[400,378],[296,334],[334,299],[299,296],[6,351],[351,168],[168,6],[376,352],[352,411],[411,376],[307,325],[325,320],[320,307],[285,295],[295,336],[336,285],[320,319],[319,404],[404,320],[329,330],[330,349],[349,329],[334,293],[293,333],[333,334],[366,323],[323,447],[447,366],[316,15],[15,315],[315,316],[331,358],[358,279],[279,331],[317,14],[14,316],[316,317],[8,285],[285,9],[9,8],[277,329],[329,350],[350,277],[253,374],[374,252],[252,253],[319,318],[318,403],[403,319],[351,6],[6,419],[419,351],[324,318],[318,325],[325,324],[397,367],[367,365],[365,397],[288,435],[435,397],[397,288],[278,344],[344,439],[439,278],[310,272],[272,311],[311,310],[248,195],[195,281],[281,248],[375,273],[273,291],[291,375],[175,396],[396,199],[199,175],[312,311],[311,268],[268,312],[276,283],[283,445],[445,276],[390,373],[373,339],[339,390],[295,282],[282,296],[296,295],[448,449],[449,346],[346,448],[356,264],[264,454],[454,356],[337,336],[336,299],[299,337],[337,338],[338,151],[151,337],[294,278],[278,455],[455,294],[308,292],[292,415],[415,308],[429,358],[358,355],[355,429],[265,340],[340,372],[372,265],[352,346],[346,280],[280,352],[295,442],[442,282],[282,295],[354,19],[19,370],[370,354],[285,441],[441,295],[295,285],[195,248],[248,197],[197,195],[457,440],[440,274],[274,457],[301,300],[300,368],[368,301],[417,351],[351,465],[465,417],[251,301],[301,389],[389,251],[394,395],[395,379],[379,394],[399,412],[412,419],[419,399],[410,436],[436,322],[322,410],[326,2],[2,393],[393,326],[354,370],[370,461],[461,354],[393,164],[164,267],[267,393],[268,302],[302,12],[12,268],[312,268],[268,13],[13,312],[298,293],[293,301],[301,298],[265,446],[446,340],[340,265],[280,330],[330,425],[425,280],[322,426],[426,391],[391,322],[420,429],[429,437],[437,420],[393,391],[391,326],[326,393],[344,440],[440,438],[438,344],[458,459],[459,461],[461,458],[364,434],[434,394],[394,364],[428,396],[396,262],[262,428],[274,354],[354,457],[457,274],[317,316],[316,402],[402,317],[316,315],[315,403],[403,316],[315,314],[314,404],[404,315],[314,313],[313,405],[405,314],[313,421],[421,406],[406,313],[323,366],[366,361],[361,323],[292,306],[306,407],[407,292],[306,291],[291,408],[408,306],[291,287],[287,409],[409,291],[287,432],[432,410],[410,287],[427,434],[434,411],[411,427],[372,264],[264,383],[383,372],[459,309],[309,457],[457,459],[366,352],[352,401],[401,366],[1,274],[274,4],[4,1],[418,421],[421,262],[262,418],[331,294],[294,358],[358,331],[435,433],[433,367],[367,435],[392,289],[289,439],[439,392],[328,462],[462,326],[326,328],[94,2],[2,370],[370,94],[289,305],[305,455],[455,289],[339,254],[254,448],[448,339],[359,255],[255,446],[446,359],[254,253],[253,449],[449,254],[253,252],[252,450],[450,253],[252,256],[256,451],[451,252],[256,341],[341,452],[452,256],[414,413],[413,463],[463,414],[286,441],[441,414],[414,286],[286,258],[258,441],[441,286],[258,257],[257,442],[442,258],[257,259],[259,443],[443,257],[259,260],[260,444],[444,259],[260,467],[467,445],[445,260],[309,459],[459,250],[250,309],[305,289],[289,290],[290,305],[305,290],[290,460],[460,305],[401,376],[376,435],[435,401],[309,250],[250,392],[392,309],[376,411],[411,433],[433,376],[453,341],[341,464],[464,453],[357,453],[453,465],[465,357],[343,357],[357,412],[412,343],[437,343],[343,399],[399,437],[344,360],[360,440],[440,344],[420,437],[437,456],[456,420],[360,420],[420,363],[363,360],[361,401],[401,288],[288,361],[265,372],[372,353],[353,265],[390,339],[339,249],[249,390],[339,448],[448,255],[255,339]);function uh(t){t.j={faceLandmarks:[],faceBlendshapes:[],facialTransformationMatrixes:[]}}var lh=class extends Za{constructor(t,e){super(new za(t,e),"image_in","norm_rect",!1),this.j={faceLandmarks:[],faceBlendshapes:[],facialTransformationMatrixes:[]},this.outputFacialTransformationMatrixes=this.outputFaceBlendshapes=!1,yn(t=this.h=new Ds,0,1,e=new Ss),this.v=new Us,yn(this.h,0,3,this.v),this.s=new Fs,yn(this.h,0,2,this.s),Sn(this.s,4,1),Ln(this.s,2,.5),Ln(this.v,2,.5),Ln(this.h,4,.5)}get baseOptions(){return pn(this.h,Ss,1)}set baseOptions(t){yn(this.h,0,1,t)}o(t){return"numFaces"in t&&Sn(this.s,4,t.numFaces??1),"minFaceDetectionConfidence"in t&&Ln(this.s,2,t.minFaceDetectionConfidence??.5),"minTrackingConfidence"in t&&Ln(this.h,4,t.minTrackingConfidence??.5),"minFacePresenceConfidence"in t&&Ln(this.v,2,t.minFacePresenceConfidence??.5),"outputFaceBlendshapes"in t&&(this.outputFaceBlendshapes=!!t.outputFaceBlendshapes),"outputFacialTransformationMatrixes"in t&&(this.outputFacialTransformationMatrixes=!!t.outputFacialTransformationMatrixes),this.l(t)}D(t,e){return uh(this),$a(this,t,e),this.j}F(t,e,n){return uh(this),qa(this,t,n,e),this.j}m(){var t=new $i;Ki(t,"image_in"),Ki(t,"norm_rect"),Yi(t,"face_landmarks");const e=new Ci;er(e,js,this.h);const n=new Vi;Bi(n,"mediapipe.tasks.vision.face_landmarker.FaceLandmarkerGraph"),Gi(n,"IMAGE:image_in"),Gi(n,"NORM_RECT:norm_rect"),ji(n,"NORM_LANDMARKS:face_landmarks"),n.o(e),zi(t,n),this.g.attachProtoVectorListener("face_landmarks",((t,e)=>{for(const e of t)t=cs(e),this.j.faceLandmarks.push(Ro(t));$o(this,e)})),this.g.attachEmptyPacketListener("face_landmarks",(t=>{$o(this,t)})),this.outputFaceBlendshapes&&(Yi(t,"blendshapes"),ji(n,"BLENDSHAPES:blendshapes"),this.g.attachProtoVectorListener("blendshapes",((t,e)=>{if(this.outputFaceBlendshapes)for(const e of t)t=es(e),this.j.faceBlendshapes.push(So(t.g()??[]));$o(this,e)})),this.g.attachEmptyPacketListener("blendshapes",(t=>{$o(this,t)}))),this.outputFacialTransformationMatrixes&&(Yi(t,"face_geometry"),ji(n,"FACE_GEOMETRY:face_geometry"),this.g.attachProtoVectorListener("face_geometry",((t,e)=>{if(this.outputFacialTransformationMatrixes)for(const e of t)(t=pn(Cs(e),us,2))&&this.j.facialTransformationMatrixes.push({rows:Tn(bn(t,1),0)??0,columns:Tn(bn(t,2),0)??0,data:en(t,3,Ht,tn()).slice()??[]});$o(this,e)})),this.g.attachEmptyPacketListener("face_geometry",(t=>{$o(this,t)}))),t=t.g(),this.setGraph(new Uint8Array(t),!0)}};lh.prototype.detectForVideo=lh.prototype.F,lh.prototype.detect=lh.prototype.D,lh.prototype.setOptions=lh.prototype.o,lh.createFromModelPath=function(t,e){return Ka(lh,t,{baseOptions:{modelAssetPath:e}})},lh.createFromModelBuffer=function(t,e){return Ka(lh,t,{baseOptions:{modelAssetBuffer:e}})},lh.createFromOptions=function(t,e){return Ka(lh,t,e)},lh.FACE_LANDMARKS_LIPS=th,lh.FACE_LANDMARKS_LEFT_EYE=eh,lh.FACE_LANDMARKS_LEFT_EYEBROW=nh,lh.FACE_LANDMARKS_LEFT_IRIS=rh,lh.FACE_LANDMARKS_RIGHT_EYE=ih,lh.FACE_LANDMARKS_RIGHT_EYEBROW=sh,lh.FACE_LANDMARKS_RIGHT_IRIS=oh,lh.FACE_LANDMARKS_FACE_OVAL=ah,lh.FACE_LANDMARKS_CONTOURS=hh,lh.FACE_LANDMARKS_TESSELATION=ch;var fh=class extends Za{constructor(t,e){super(new za(t,e),"image_in","norm_rect",!0),yn(t=this.j=new Vs,0,1,e=new Ss)}get baseOptions(){return pn(this.j,Ss,1)}set baseOptions(t){yn(this.j,0,1,t)}o(t){return super.l(t)}Ra(t,e,n){const r="function"!=typeof e?e:{};if(this.h="function"==typeof e?e:n,$a(this,t,r??{}),!this.h)return this.s}m(){var t=new $i;Ki(t,"image_in"),Ki(t,"norm_rect"),Yi(t,"stylized_image");const e=new Ci;er(e,Xs,this.j);const n=new Vi;Bi(n,"mediapipe.tasks.vision.face_stylizer.FaceStylizerGraph"),Gi(n,"IMAGE:image_in"),Gi(n,"NORM_RECT:norm_rect"),ji(n,"STYLIZED_IMAGE:stylized_image"),n.o(e),zi(t,n),this.g.W("stylized_image",((t,e)=>{var n=!this.h,r=t.data,i=t.width;const s=i*(t=t.height);if(r instanceof Uint8Array)if(r.length===3*s){const e=new Uint8ClampedArray(4*s);for(let t=0;t{this.s=null,this.h&&this.h(null),$o(this,t)})),t=t.g(),this.setGraph(new Uint8Array(t),!0)}};fh.prototype.stylize=fh.prototype.Ra,fh.prototype.setOptions=fh.prototype.o,fh.createFromModelPath=function(t,e){return Ka(fh,t,{baseOptions:{modelAssetPath:e}})},fh.createFromModelBuffer=function(t,e){return Ka(fh,t,{baseOptions:{modelAssetBuffer:e}})},fh.createFromOptions=function(t,e){return Ka(fh,t,e)};var dh=Xa([0,1],[1,2],[2,3],[3,4],[0,5],[5,6],[6,7],[7,8],[5,9],[9,10],[10,11],[11,12],[9,13],[13,14],[14,15],[15,16],[13,17],[0,17],[17,18],[18,19],[19,20]);function ph(t){t.gestures=[],t.landmarks=[],t.worldLandmarks=[],t.handedness=[]}function gh(t){return 0===t.gestures.length?{gestures:[],landmarks:[],worldLandmarks:[],handedness:[],handednesses:[]}:{gestures:t.gestures,landmarks:t.landmarks,worldLandmarks:t.worldLandmarks,handedness:t.handedness,handednesses:t.handedness}}function mh(t,e=!0){const n=[];for(const i of t){var r=es(i);t=[];for(const n of r.g())r=e&&null!=bn(n,1)?Tn(bn(n,1),0):-1,t.push({score:An(n,2)??0,index:r,categoryName:kn(n,3)??"",displayName:kn(n,4)??""});n.push(t)}return n}var yh=class extends Za{constructor(t,e){super(new za(t,e),"image_in","norm_rect",!1),this.gestures=[],this.landmarks=[],this.worldLandmarks=[],this.handedness=[],yn(t=this.j=new Js,0,1,e=new Ss),this.s=new qs,yn(this.j,0,2,this.s),this.C=new $s,yn(this.s,0,3,this.C),this.v=new Ys,yn(this.s,0,2,this.v),this.h=new Ks,yn(this.j,0,3,this.h),Ln(this.v,2,.5),Ln(this.s,4,.5),Ln(this.C,2,.5)}get baseOptions(){return pn(this.j,Ss,1)}set baseOptions(t){yn(this.j,0,1,t)}o(t){if(Sn(this.v,3,t.numHands??1),"minHandDetectionConfidence"in t&&Ln(this.v,2,t.minHandDetectionConfidence??.5),"minTrackingConfidence"in t&&Ln(this.s,4,t.minTrackingConfidence??.5),"minHandPresenceConfidence"in t&&Ln(this.C,2,t.minHandPresenceConfidence??.5),t.cannedGesturesClassifierOptions){var e=new Hs,n=e,r=xo(t.cannedGesturesClassifierOptions,pn(this.h,Hs,3)?.h());yn(n,0,2,r),yn(this.h,0,3,e)}else void 0===t.cannedGesturesClassifierOptions&&pn(this.h,Hs,3)?.g();return t.customGesturesClassifierOptions?(yn(n=e=new Hs,0,2,r=xo(t.customGesturesClassifierOptions,pn(this.h,Hs,4)?.h())),yn(this.h,0,4,e)):void 0===t.customGesturesClassifierOptions&&pn(this.h,Hs,4)?.g(),this.l(t)}Ma(t,e){return ph(this),$a(this,t,e),gh(this)}Na(t,e,n){return ph(this),qa(this,t,n,e),gh(this)}m(){var t=new $i;Ki(t,"image_in"),Ki(t,"norm_rect"),Yi(t,"hand_gestures"),Yi(t,"hand_landmarks"),Yi(t,"world_hand_landmarks"),Yi(t,"handedness");const e=new Ci;er(e,io,this.j);const n=new Vi;Bi(n,"mediapipe.tasks.vision.gesture_recognizer.GestureRecognizerGraph"),Gi(n,"IMAGE:image_in"),Gi(n,"NORM_RECT:norm_rect"),ji(n,"HAND_GESTURES:hand_gestures"),ji(n,"LANDMARKS:hand_landmarks"),ji(n,"WORLD_LANDMARKS:world_hand_landmarks"),ji(n,"HANDEDNESS:handedness"),n.o(e),zi(t,n),this.g.attachProtoVectorListener("hand_landmarks",((t,e)=>{for(const e of t){t=cs(e);const n=[];for(const e of mn(t,hs,1))n.push({x:An(e,1)??0,y:An(e,2)??0,z:An(e,3)??0,visibility:An(e,4)??0});this.landmarks.push(n)}$o(this,e)})),this.g.attachEmptyPacketListener("hand_landmarks",(t=>{$o(this,t)})),this.g.attachProtoVectorListener("world_hand_landmarks",((t,e)=>{for(const e of t){t=as(e);const n=[];for(const e of mn(t,os,1))n.push({x:An(e,1)??0,y:An(e,2)??0,z:An(e,3)??0,visibility:An(e,4)??0});this.worldLandmarks.push(n)}$o(this,e)})),this.g.attachEmptyPacketListener("world_hand_landmarks",(t=>{$o(this,t)})),this.g.attachProtoVectorListener("hand_gestures",((t,e)=>{this.gestures.push(...mh(t,!1)),$o(this,e)})),this.g.attachEmptyPacketListener("hand_gestures",(t=>{$o(this,t)})),this.g.attachProtoVectorListener("handedness",((t,e)=>{this.handedness.push(...mh(t)),$o(this,e)})),this.g.attachEmptyPacketListener("handedness",(t=>{$o(this,t)})),t=t.g(),this.setGraph(new Uint8Array(t),!0)}};function _h(t){return{landmarks:t.landmarks,worldLandmarks:t.worldLandmarks,handednesses:t.handedness,handedness:t.handedness}}yh.prototype.recognizeForVideo=yh.prototype.Na,yh.prototype.recognize=yh.prototype.Ma,yh.prototype.setOptions=yh.prototype.o,yh.createFromModelPath=function(t,e){return Ka(yh,t,{baseOptions:{modelAssetPath:e}})},yh.createFromModelBuffer=function(t,e){return Ka(yh,t,{baseOptions:{modelAssetBuffer:e}})},yh.createFromOptions=function(t,e){return Ka(yh,t,e)},yh.HAND_CONNECTIONS=dh;var vh=class extends Za{constructor(t,e){super(new za(t,e),"image_in","norm_rect",!1),this.landmarks=[],this.worldLandmarks=[],this.handedness=[],yn(t=this.h=new qs,0,1,e=new Ss),this.s=new $s,yn(this.h,0,3,this.s),this.j=new Ys,yn(this.h,0,2,this.j),Sn(this.j,3,1),Ln(this.j,2,.5),Ln(this.s,2,.5),Ln(this.h,4,.5)}get baseOptions(){return pn(this.h,Ss,1)}set baseOptions(t){yn(this.h,0,1,t)}o(t){return"numHands"in t&&Sn(this.j,3,t.numHands??1),"minHandDetectionConfidence"in t&&Ln(this.j,2,t.minHandDetectionConfidence??.5),"minTrackingConfidence"in t&&Ln(this.h,4,t.minTrackingConfidence??.5),"minHandPresenceConfidence"in t&&Ln(this.s,2,t.minHandPresenceConfidence??.5),this.l(t)}D(t,e){return this.landmarks=[],this.worldLandmarks=[],this.handedness=[],$a(this,t,e),_h(this)}F(t,e,n){return this.landmarks=[],this.worldLandmarks=[],this.handedness=[],qa(this,t,n,e),_h(this)}m(){var t=new $i;Ki(t,"image_in"),Ki(t,"norm_rect"),Yi(t,"hand_landmarks"),Yi(t,"world_hand_landmarks"),Yi(t,"handedness");const e=new Ci;er(e,ro,this.h);const n=new Vi;Bi(n,"mediapipe.tasks.vision.hand_landmarker.HandLandmarkerGraph"),Gi(n,"IMAGE:image_in"),Gi(n,"NORM_RECT:norm_rect"),ji(n,"LANDMARKS:hand_landmarks"),ji(n,"WORLD_LANDMARKS:world_hand_landmarks"),ji(n,"HANDEDNESS:handedness"),n.o(e),zi(t,n),this.g.attachProtoVectorListener("hand_landmarks",((t,e)=>{for(const e of t)t=cs(e),this.landmarks.push(Ro(t));$o(this,e)})),this.g.attachEmptyPacketListener("hand_landmarks",(t=>{$o(this,t)})),this.g.attachProtoVectorListener("world_hand_landmarks",((t,e)=>{for(const e of t)t=as(e),this.worldLandmarks.push(Fo(t));$o(this,e)})),this.g.attachEmptyPacketListener("world_hand_landmarks",(t=>{$o(this,t)})),this.g.attachProtoVectorListener("handedness",((t,e)=>{var n=this.handedness,r=n.push;const i=[];for(const e of t){t=es(e);const n=[];for(const e of t.g())n.push({score:An(e,2)??0,index:Tn(bn(e,1),0)??-1,categoryName:kn(e,3)??"",displayName:kn(e,4)??""});i.push(n)}r.call(n,...i),$o(this,e)})),this.g.attachEmptyPacketListener("handedness",(t=>{$o(this,t)})),t=t.g(),this.setGraph(new Uint8Array(t),!0)}};vh.prototype.detectForVideo=vh.prototype.F,vh.prototype.detect=vh.prototype.D,vh.prototype.setOptions=vh.prototype.o,vh.createFromModelPath=function(t,e){return Ka(vh,t,{baseOptions:{modelAssetPath:e}})},vh.createFromModelBuffer=function(t,e){return Ka(vh,t,{baseOptions:{modelAssetBuffer:e}})},vh.createFromOptions=function(t,e){return Ka(vh,t,e)},vh.HAND_CONNECTIONS=dh;var Eh=Xa([0,1],[1,2],[2,3],[3,7],[0,4],[4,5],[5,6],[6,8],[9,10],[11,12],[11,13],[13,15],[15,17],[15,19],[15,21],[17,19],[12,14],[14,16],[16,18],[16,20],[16,22],[18,20],[11,23],[12,24],[23,24],[23,25],[24,26],[25,27],[26,28],[27,29],[28,30],[29,31],[30,32],[27,31],[28,32]);function wh(t){t.h={faceLandmarks:[],faceBlendshapes:[],poseLandmarks:[],poseWorldLandmarks:[],poseSegmentationMasks:[],leftHandLandmarks:[],leftHandWorldLandmarks:[],rightHandLandmarks:[],rightHandWorldLandmarks:[]}}function Th(t){try{if(!t.C)return t.h;t.C(t.h)}finally{Zo(t)}}function bh(t,e){t=cs(t),e.push(Ro(t))}var Ah=class extends Za{constructor(t,e){super(new za(t,e),"input_frames_image",null,!1),this.h={faceLandmarks:[],faceBlendshapes:[],poseLandmarks:[],poseWorldLandmarks:[],poseSegmentationMasks:[],leftHandLandmarks:[],leftHandWorldLandmarks:[],rightHandLandmarks:[],rightHandWorldLandmarks:[]},this.outputPoseSegmentationMasks=this.outputFaceBlendshapes=!1,yn(t=this.j=new ho,0,1,e=new Ss),this.K=new $s,yn(this.j,0,2,this.K),this.ca=new so,yn(this.j,0,3,this.ca),this.s=new Fs,yn(this.j,0,4,this.s),this.I=new Us,yn(this.j,0,5,this.I),this.v=new oo,yn(this.j,0,6,this.v),this.L=new ao,yn(this.j,0,7,this.L),Ln(this.s,2,.5),Ln(this.s,3,.3),Ln(this.I,2,.5),Ln(this.v,2,.5),Ln(this.v,3,.3),Ln(this.L,2,.5),Ln(this.K,2,.5)}get baseOptions(){return pn(this.j,Ss,1)}set baseOptions(t){yn(this.j,0,1,t)}o(t){return"minFaceDetectionConfidence"in t&&Ln(this.s,2,t.minFaceDetectionConfidence??.5),"minFaceSuppressionThreshold"in t&&Ln(this.s,3,t.minFaceSuppressionThreshold??.3),"minFacePresenceConfidence"in t&&Ln(this.I,2,t.minFacePresenceConfidence??.5),"outputFaceBlendshapes"in t&&(this.outputFaceBlendshapes=!!t.outputFaceBlendshapes),"minPoseDetectionConfidence"in t&&Ln(this.v,2,t.minPoseDetectionConfidence??.5),"minPoseSuppressionThreshold"in t&&Ln(this.v,3,t.minPoseSuppressionThreshold??.3),"minPosePresenceConfidence"in t&&Ln(this.L,2,t.minPosePresenceConfidence??.5),"outputPoseSegmentationMasks"in t&&(this.outputPoseSegmentationMasks=!!t.outputPoseSegmentationMasks),"minHandLandmarksConfidence"in t&&Ln(this.K,2,t.minHandLandmarksConfidence??.5),this.l(t)}D(t,e,n){const r="function"!=typeof e?e:{};return this.C="function"==typeof e?e:n,wh(this),$a(this,t,r),Th(this)}F(t,e,n,r){const i="function"!=typeof n?n:{};return this.C="function"==typeof n?n:r,wh(this),qa(this,t,i,e),Th(this)}m(){var t=new $i;Ki(t,"input_frames_image"),Yi(t,"pose_landmarks"),Yi(t,"pose_world_landmarks"),Yi(t,"face_landmarks"),Yi(t,"left_hand_landmarks"),Yi(t,"left_hand_world_landmarks"),Yi(t,"right_hand_landmarks"),Yi(t,"right_hand_world_landmarks");const e=new Ci,n=new ki;an(n,1,ne("type.googleapis.com/mediapipe.tasks.vision.holistic_landmarker.proto.HolisticLandmarkerGraphOptions"),""),function(t,e){if(null!=e)if(Array.isArray(e))$e(t,2,De(e,Ge,void 0,void 0,!1));else{if(!("string"==typeof e||e instanceof D||I(e)))throw Error("invalid value in Any.value field: "+e+" expected a ByteString, a base64 encoded string, a Uint8Array or a jspb array");an(t,2,lt(e,!1,!1),N())}}(n,this.j.g());const r=new Vi;Bi(r,"mediapipe.tasks.vision.holistic_landmarker.HolisticLandmarkerGraph"),wn(r,8,ki,n),Gi(r,"IMAGE:input_frames_image"),ji(r,"POSE_LANDMARKS:pose_landmarks"),ji(r,"POSE_WORLD_LANDMARKS:pose_world_landmarks"),ji(r,"FACE_LANDMARKS:face_landmarks"),ji(r,"LEFT_HAND_LANDMARKS:left_hand_landmarks"),ji(r,"LEFT_HAND_WORLD_LANDMARKS:left_hand_world_landmarks"),ji(r,"RIGHT_HAND_LANDMARKS:right_hand_landmarks"),ji(r,"RIGHT_HAND_WORLD_LANDMARKS:right_hand_world_landmarks"),r.o(e),zi(t,r),qo(this,t),this.g.attachProtoListener("pose_landmarks",((t,e)=>{bh(t,this.h.poseLandmarks),$o(this,e)})),this.g.attachEmptyPacketListener("pose_landmarks",(t=>{$o(this,t)})),this.g.attachProtoListener("pose_world_landmarks",((t,e)=>{var n=this.h.poseWorldLandmarks;t=as(t),n.push(Fo(t)),$o(this,e)})),this.g.attachEmptyPacketListener("pose_world_landmarks",(t=>{$o(this,t)})),this.outputPoseSegmentationMasks&&(ji(r,"POSE_SEGMENTATION_MASK:pose_segmentation_mask"),Jo(this,"pose_segmentation_mask"),this.g.W("pose_segmentation_mask",((t,e)=>{this.h.poseSegmentationMasks=[Ja(this,t,!0,!this.C)],$o(this,e)})),this.g.attachEmptyPacketListener("pose_segmentation_mask",(t=>{this.h.poseSegmentationMasks=[],$o(this,t)}))),this.g.attachProtoListener("face_landmarks",((t,e)=>{bh(t,this.h.faceLandmarks),$o(this,e)})),this.g.attachEmptyPacketListener("face_landmarks",(t=>{$o(this,t)})),this.outputFaceBlendshapes&&(Yi(t,"extra_blendshapes"),ji(r,"FACE_BLENDSHAPES:extra_blendshapes"),this.g.attachProtoListener("extra_blendshapes",((t,e)=>{var n=this.h.faceBlendshapes;this.outputFaceBlendshapes&&(t=es(t),n.push(So(t.g()??[]))),$o(this,e)})),this.g.attachEmptyPacketListener("extra_blendshapes",(t=>{$o(this,t)}))),this.g.attachProtoListener("left_hand_landmarks",((t,e)=>{bh(t,this.h.leftHandLandmarks),$o(this,e)})),this.g.attachEmptyPacketListener("left_hand_landmarks",(t=>{$o(this,t)})),this.g.attachProtoListener("left_hand_world_landmarks",((t,e)=>{var n=this.h.leftHandWorldLandmarks;t=as(t),n.push(Fo(t)),$o(this,e)})),this.g.attachEmptyPacketListener("left_hand_world_landmarks",(t=>{$o(this,t)})),this.g.attachProtoListener("right_hand_landmarks",((t,e)=>{bh(t,this.h.rightHandLandmarks),$o(this,e)})),this.g.attachEmptyPacketListener("right_hand_landmarks",(t=>{$o(this,t)})),this.g.attachProtoListener("right_hand_world_landmarks",((t,e)=>{var n=this.h.rightHandWorldLandmarks;t=as(t),n.push(Fo(t)),$o(this,e)})),this.g.attachEmptyPacketListener("right_hand_world_landmarks",(t=>{$o(this,t)})),t=t.g(),this.setGraph(new Uint8Array(t),!0)}};Ah.prototype.detectForVideo=Ah.prototype.F,Ah.prototype.detect=Ah.prototype.D,Ah.prototype.setOptions=Ah.prototype.o,Ah.createFromModelPath=function(t,e){return Ka(Ah,t,{baseOptions:{modelAssetPath:e}})},Ah.createFromModelBuffer=function(t,e){return Ka(Ah,t,{baseOptions:{modelAssetBuffer:e}})},Ah.createFromOptions=function(t,e){return Ka(Ah,t,e)},Ah.HAND_CONNECTIONS=dh,Ah.POSE_CONNECTIONS=Eh,Ah.FACE_LANDMARKS_LIPS=th,Ah.FACE_LANDMARKS_LEFT_EYE=eh,Ah.FACE_LANDMARKS_LEFT_EYEBROW=nh,Ah.FACE_LANDMARKS_LEFT_IRIS=rh,Ah.FACE_LANDMARKS_RIGHT_EYE=ih,Ah.FACE_LANDMARKS_RIGHT_EYEBROW=sh,Ah.FACE_LANDMARKS_RIGHT_IRIS=oh,Ah.FACE_LANDMARKS_FACE_OVAL=ah,Ah.FACE_LANDMARKS_CONTOURS=hh,Ah.FACE_LANDMARKS_TESSELATION=ch;var kh=class extends Za{constructor(t,e){super(new za(t,e),"input_image","norm_rect",!0),this.j={classifications:[]},yn(t=this.h=new lo,0,1,e=new Ss)}get baseOptions(){return pn(this.h,Ss,1)}set baseOptions(t){yn(this.h,0,1,t)}o(t){return yn(this.h,0,2,xo(t,pn(this.h,Es,2))),this.l(t)}wa(t,e){return this.j={classifications:[]},$a(this,t,e),this.j}xa(t,e,n){return this.j={classifications:[]},qa(this,t,n,e),this.j}m(){var t=new $i;Ki(t,"input_image"),Ki(t,"norm_rect"),Yi(t,"classifications");const e=new Ci;er(e,fo,this.h);const n=new Vi;Bi(n,"mediapipe.tasks.vision.image_classifier.ImageClassifierGraph"),Gi(n,"IMAGE:input_image"),Gi(n,"NORM_RECT:norm_rect"),ji(n,"CLASSIFICATIONS:classifications"),n.o(e),zi(t,n),this.g.attachProtoListener("classifications",((t,e)=>{this.j=function(t){const e={classifications:mn(t,ds,1).map((t=>So(pn(t,Qi,4)?.g()??[],Tn(bn(t,2),0),kn(t,3))))};return null!=Qt(ze(t,2))&&(e.timestampMs=Tn(Qt(ze(t,2)),0)),e}(ps(t)),$o(this,e)})),this.g.attachEmptyPacketListener("classifications",(t=>{$o(this,t)})),t=t.g(),this.setGraph(new Uint8Array(t),!0)}};kh.prototype.classifyForVideo=kh.prototype.xa,kh.prototype.classify=kh.prototype.wa,kh.prototype.setOptions=kh.prototype.o,kh.createFromModelPath=function(t,e){return Ka(kh,t,{baseOptions:{modelAssetPath:e}})},kh.createFromModelBuffer=function(t,e){return Ka(kh,t,{baseOptions:{modelAssetBuffer:e}})},kh.createFromOptions=function(t,e){return Ka(kh,t,e)};var xh=class extends Za{constructor(t,e){super(new za(t,e),"image_in","norm_rect",!0),this.h=new po,this.embeddings={embeddings:[]},yn(t=this.h,0,1,e=new Ss)}get baseOptions(){return pn(this.h,Ss,1)}set baseOptions(t){yn(this.h,0,1,t)}o(t){var e=this.h,n=pn(this.h,Ts,2);return n=n?n.clone():new Ts,void 0!==t.l2Normalize?xn(n,1,t.l2Normalize):"l2Normalize"in t&&$e(n,1),void 0!==t.quantize?xn(n,2,t.quantize):"quantize"in t&&$e(n,2),yn(e,0,2,n),this.l(t)}Da(t,e){return $a(this,t,e),this.embeddings}Ea(t,e,n){return qa(this,t,n,e),this.embeddings}m(){var t=new $i;Ki(t,"image_in"),Ki(t,"norm_rect"),Yi(t,"embeddings_out");const e=new Ci;er(e,go,this.h);const n=new Vi;Bi(n,"mediapipe.tasks.vision.image_embedder.ImageEmbedderGraph"),Gi(n,"IMAGE:image_in"),Gi(n,"NORM_RECT:norm_rect"),ji(n,"EMBEDDINGS:embeddings_out"),n.o(e),zi(t,n),this.g.attachProtoListener("embeddings_out",((t,e)=>{t=vs(t),this.embeddings=function(t){return{embeddings:mn(t,ys,1).map((t=>{const e={headIndex:Tn(bn(t,3),0)??-1,headName:kn(t,4)??""};if(void 0!==dn(t,gs,hn(t,1)))t=en(t=pn(t,gs,hn(t,1)),1,Ht,tn()),e.floatEmbedding=t.slice();else{const n=new Uint8Array(0);e.quantizedEmbedding=pn(t,ms,hn(t,2))?.ra()?.ua()??n}return e})),timestampMs:Tn(Qt(ze(t,2)),0)}}(t),$o(this,e)})),this.g.attachEmptyPacketListener("embeddings_out",(t=>{$o(this,t)})),t=t.g(),this.setGraph(new Uint8Array(t),!0)}};xh.cosineSimilarity=function(t,e){if(t.floatEmbedding&&e.floatEmbedding)t=Io(t.floatEmbedding,e.floatEmbedding);else{if(!t.quantizedEmbedding||!e.quantizedEmbedding)throw Error("Cannot compute cosine similarity between quantized and float embeddings.");t=Io(Mo(t.quantizedEmbedding),Mo(e.quantizedEmbedding))}return t},xh.prototype.embedForVideo=xh.prototype.Ea,xh.prototype.embed=xh.prototype.Da,xh.prototype.setOptions=xh.prototype.o,xh.createFromModelPath=function(t,e){return Ka(xh,t,{baseOptions:{modelAssetPath:e}})},xh.createFromModelBuffer=function(t,e){return Ka(xh,t,{baseOptions:{modelAssetBuffer:e}})},xh.createFromOptions=function(t,e){return Ka(xh,t,e)};var Sh=class{constructor(t,e,n){this.confidenceMasks=t,this.categoryMask=e,this.qualityScores=n}close(){this.confidenceMasks?.forEach((t=>{t.close()})),this.categoryMask?.close()}};function Lh(t){t.categoryMask=void 0,t.confidenceMasks=void 0,t.qualityScores=void 0}function Rh(t){try{const e=new Sh(t.confidenceMasks,t.categoryMask,t.qualityScores);if(!t.j)return e;t.j(e)}finally{Zo(t)}}Sh.prototype.close=Sh.prototype.close;var Fh=class extends Za{constructor(t,e){super(new za(t,e),"image_in","norm_rect",!1),this.s=[],this.outputCategoryMask=!1,this.outputConfidenceMasks=!0,this.h=new Eo,this.v=new mo,yn(this.h,0,3,this.v),yn(t=this.h,0,1,e=new Ss)}get baseOptions(){return pn(this.h,Ss,1)}set baseOptions(t){yn(this.h,0,1,t)}o(t){return void 0!==t.displayNamesLocale?$e(this.h,2,ne(t.displayNamesLocale)):"displayNamesLocale"in t&&$e(this.h,2),"outputCategoryMask"in t&&(this.outputCategoryMask=t.outputCategoryMask??!1),"outputConfidenceMasks"in t&&(this.outputConfidenceMasks=t.outputConfidenceMasks??!0),super.l(t)}J(){!function(t){const e=mn(t.ga(),Vi,1).filter((t=>kn(t,1).includes("mediapipe.tasks.TensorsToSegmentationCalculator")));if(t.s=[],e.length>1)throw Error("The graph has more than one mediapipe.tasks.TensorsToSegmentationCalculator.");1===e.length&&(pn(e[0],Ci,7)?.l()?.g()??new Map).forEach(((e,n)=>{t.s[Number(n)]=kn(e,1)}))}(this)}ha(t,e,n){const r="function"!=typeof e?e:{};return this.j="function"==typeof e?e:n,Lh(this),$a(this,t,r),Rh(this)}Pa(t,e,n,r){const i="function"!=typeof n?n:{};return this.j="function"==typeof n?n:r,Lh(this),qa(this,t,i,e),Rh(this)}Ha(){return this.s}m(){var t=new $i;Ki(t,"image_in"),Ki(t,"norm_rect");const e=new Ci;er(e,wo,this.h);const n=new Vi;Bi(n,"mediapipe.tasks.vision.image_segmenter.ImageSegmenterGraph"),Gi(n,"IMAGE:image_in"),Gi(n,"NORM_RECT:norm_rect"),n.o(e),zi(t,n),qo(this,t),this.outputConfidenceMasks&&(Yi(t,"confidence_masks"),ji(n,"CONFIDENCE_MASKS:confidence_masks"),Jo(this,"confidence_masks"),this.g.fa("confidence_masks",((t,e)=>{this.confidenceMasks=t.map((t=>Ja(this,t,!0,!this.j))),$o(this,e)})),this.g.attachEmptyPacketListener("confidence_masks",(t=>{this.confidenceMasks=[],$o(this,t)}))),this.outputCategoryMask&&(Yi(t,"category_mask"),ji(n,"CATEGORY_MASK:category_mask"),Jo(this,"category_mask"),this.g.W("category_mask",((t,e)=>{this.categoryMask=Ja(this,t,!1,!this.j),$o(this,e)})),this.g.attachEmptyPacketListener("category_mask",(t=>{this.categoryMask=void 0,$o(this,t)}))),Yi(t,"quality_scores"),ji(n,"QUALITY_SCORES:quality_scores"),this.g.attachFloatVectorListener("quality_scores",((t,e)=>{this.qualityScores=t,$o(this,e)})),this.g.attachEmptyPacketListener("quality_scores",(t=>{this.categoryMask=void 0,$o(this,t)})),t=t.g(),this.setGraph(new Uint8Array(t),!0)}};Fh.prototype.getLabels=Fh.prototype.Ha,Fh.prototype.segmentForVideo=Fh.prototype.Pa,Fh.prototype.segment=Fh.prototype.ha,Fh.prototype.setOptions=Fh.prototype.o,Fh.createFromModelPath=function(t,e){return Ka(Fh,t,{baseOptions:{modelAssetPath:e}})},Fh.createFromModelBuffer=function(t,e){return Ka(Fh,t,{baseOptions:{modelAssetBuffer:e}})},Fh.createFromOptions=function(t,e){return Ka(Fh,t,e)};var Mh=class{constructor(t,e,n){this.confidenceMasks=t,this.categoryMask=e,this.qualityScores=n}close(){this.confidenceMasks?.forEach((t=>{t.close()})),this.categoryMask?.close()}};Mh.prototype.close=Mh.prototype.close;var Ih=class extends nr{constructor(t){super(t)}},Ph=[0,ai,-2],Oh=[0,ti,-3,ui,ti,-1],Ch=[0,Oh],Nh=[0,Oh,ai,-1],Uh=class extends nr{constructor(t){super(t)}},Dh=[0,ti,-1,ui],Bh=class extends nr{constructor(){super()}},Gh=class extends nr{constructor(t){super(t)}},jh=[1,2,3,4,5,6,7,8,9,10,14,15],Vh=class extends nr{constructor(){super()}};Vh.prototype.g=Ai([0,Qr,[0,jh,yi,Oh,yi,[0,Oh,Ph],yi,Ch,yi,[0,Ch,Ph],yi,Dh,yi,[0,ti,-3,ui,Ei],yi,[0,ti,-3,ui],yi,[0,pi,ti,-2,ui,ai,ui,-1,2,ti,Ph],yi,Nh,yi,[0,Nh,Ph],ti,Ph,pi,yi,[0,ti,-3,ui,Ph,-1],yi,[0,Qr,Dh]],pi,[0,pi,ai,-1,ui]]);var Xh=class extends Za{constructor(t,e){super(new za(t,e),"image_in","norm_rect_in",!1),this.outputCategoryMask=!1,this.outputConfidenceMasks=!0,this.h=new Eo,this.s=new mo,yn(this.h,0,3,this.s),yn(t=this.h,0,1,e=new Ss)}get baseOptions(){return pn(this.h,Ss,1)}set baseOptions(t){yn(this.h,0,1,t)}o(t){return"outputCategoryMask"in t&&(this.outputCategoryMask=t.outputCategoryMask??!1),"outputConfidenceMasks"in t&&(this.outputConfidenceMasks=t.outputConfidenceMasks??!0),super.l(t)}ha(t,e,n,r){const i="function"!=typeof n?n:{};this.j="function"==typeof n?n:r,this.qualityScores=this.categoryMask=this.confidenceMasks=void 0,n=this.B+1,r=new Vh;const s=new Gh;var o=new Ih;if(Sn(o,1,255),yn(s,0,12,o),e.keypoint&&e.scribble)throw Error("Cannot provide both keypoint and scribble.");if(e.keypoint){var a=new Uh;xn(a,3,!0),Ln(a,1,e.keypoint.x),Ln(a,2,e.keypoint.y),_n(s,5,jh,a)}else{if(!e.scribble)throw Error("Must provide either a keypoint or a scribble.");for(a of(o=new Bh,e.scribble))xn(e=new Uh,3,!0),Ln(e,1,a.x),Ln(e,2,a.y),wn(o,1,Uh,e);_n(s,15,jh,o)}wn(r,1,Gh,s),this.g.addProtoToStream(r.g(),"drishti.RenderData","roi_in",n),$a(this,t,i);t:{try{const t=new Mh(this.confidenceMasks,this.categoryMask,this.qualityScores);if(!this.j){var h=t;break t}this.j(t)}finally{Zo(this)}h=void 0}return h}m(){var t=new $i;Ki(t,"image_in"),Ki(t,"roi_in"),Ki(t,"norm_rect_in");const e=new Ci;er(e,wo,this.h);const n=new Vi;Bi(n,"mediapipe.tasks.vision.interactive_segmenter.InteractiveSegmenterGraph"),Gi(n,"IMAGE:image_in"),Gi(n,"ROI:roi_in"),Gi(n,"NORM_RECT:norm_rect_in"),n.o(e),zi(t,n),qo(this,t),this.outputConfidenceMasks&&(Yi(t,"confidence_masks"),ji(n,"CONFIDENCE_MASKS:confidence_masks"),Jo(this,"confidence_masks"),this.g.fa("confidence_masks",((t,e)=>{this.confidenceMasks=t.map((t=>Ja(this,t,!0,!this.j))),$o(this,e)})),this.g.attachEmptyPacketListener("confidence_masks",(t=>{this.confidenceMasks=[],$o(this,t)}))),this.outputCategoryMask&&(Yi(t,"category_mask"),ji(n,"CATEGORY_MASK:category_mask"),Jo(this,"category_mask"),this.g.W("category_mask",((t,e)=>{this.categoryMask=Ja(this,t,!1,!this.j),$o(this,e)})),this.g.attachEmptyPacketListener("category_mask",(t=>{this.categoryMask=void 0,$o(this,t)}))),Yi(t,"quality_scores"),ji(n,"QUALITY_SCORES:quality_scores"),this.g.attachFloatVectorListener("quality_scores",((t,e)=>{this.qualityScores=t,$o(this,e)})),this.g.attachEmptyPacketListener("quality_scores",(t=>{this.categoryMask=void 0,$o(this,t)})),t=t.g(),this.setGraph(new Uint8Array(t),!0)}};Xh.prototype.segment=Xh.prototype.ha,Xh.prototype.setOptions=Xh.prototype.o,Xh.createFromModelPath=function(t,e){return Ka(Xh,t,{baseOptions:{modelAssetPath:e}})},Xh.createFromModelBuffer=function(t,e){return Ka(Xh,t,{baseOptions:{modelAssetBuffer:e}})},Xh.createFromOptions=function(t,e){return Ka(Xh,t,e)};var Hh=class extends Za{constructor(t,e){super(new za(t,e),"input_frame_gpu","norm_rect",!1),this.j={detections:[]},yn(t=this.h=new To,0,1,e=new Ss)}get baseOptions(){return pn(this.h,Ss,1)}set baseOptions(t){yn(this.h,0,1,t)}o(t){return void 0!==t.displayNamesLocale?$e(this.h,2,ne(t.displayNamesLocale)):"displayNamesLocale"in t&&$e(this.h,2),void 0!==t.maxResults?Sn(this.h,3,t.maxResults):"maxResults"in t&&$e(this.h,3),void 0!==t.scoreThreshold?Ln(this.h,4,t.scoreThreshold):"scoreThreshold"in t&&$e(this.h,4),void 0!==t.categoryAllowlist?Rn(this.h,5,t.categoryAllowlist):"categoryAllowlist"in t&&$e(this.h,5),void 0!==t.categoryDenylist?Rn(this.h,6,t.categoryDenylist):"categoryDenylist"in t&&$e(this.h,6),this.l(t)}D(t,e){return this.j={detections:[]},$a(this,t,e),this.j}F(t,e,n){return this.j={detections:[]},qa(this,t,n,e),this.j}m(){var t=new $i;Ki(t,"input_frame_gpu"),Ki(t,"norm_rect"),Yi(t,"detections");const e=new Ci;er(e,bo,this.h);const n=new Vi;Bi(n,"mediapipe.tasks.vision.ObjectDetectorGraph"),Gi(n,"IMAGE:input_frame_gpu"),Gi(n,"NORM_RECT:norm_rect"),ji(n,"DETECTIONS:detections"),n.o(e),zi(t,n),this.g.attachProtoVectorListener("detections",((t,e)=>{for(const e of t)t=ss(e),this.j.detections.push(Lo(t));$o(this,e)})),this.g.attachEmptyPacketListener("detections",(t=>{$o(this,t)})),t=t.g(),this.setGraph(new Uint8Array(t),!0)}};Hh.prototype.detectForVideo=Hh.prototype.F,Hh.prototype.detect=Hh.prototype.D,Hh.prototype.setOptions=Hh.prototype.o,Hh.createFromModelPath=async function(t,e){return Ka(Hh,t,{baseOptions:{modelAssetPath:e}})},Hh.createFromModelBuffer=function(t,e){return Ka(Hh,t,{baseOptions:{modelAssetBuffer:e}})},Hh.createFromOptions=function(t,e){return Ka(Hh,t,e)};var Wh=class{constructor(t,e,n){this.landmarks=t,this.worldLandmarks=e,this.segmentationMasks=n}close(){this.segmentationMasks?.forEach((t=>{t.close()}))}};function zh(t){t.landmarks=[],t.worldLandmarks=[],t.segmentationMasks=void 0}function Kh(t){try{const e=new Wh(t.landmarks,t.worldLandmarks,t.segmentationMasks);if(!t.s)return e;t.s(e)}finally{Zo(t)}}Wh.prototype.close=Wh.prototype.close;var Yh=class extends Za{constructor(t,e){super(new za(t,e),"image_in","norm_rect",!1),this.landmarks=[],this.worldLandmarks=[],this.outputSegmentationMasks=!1,yn(t=this.h=new Ao,0,1,e=new Ss),this.v=new ao,yn(this.h,0,3,this.v),this.j=new oo,yn(this.h,0,2,this.j),Sn(this.j,4,1),Ln(this.j,2,.5),Ln(this.v,2,.5),Ln(this.h,4,.5)}get baseOptions(){return pn(this.h,Ss,1)}set baseOptions(t){yn(this.h,0,1,t)}o(t){return"numPoses"in t&&Sn(this.j,4,t.numPoses??1),"minPoseDetectionConfidence"in t&&Ln(this.j,2,t.minPoseDetectionConfidence??.5),"minTrackingConfidence"in t&&Ln(this.h,4,t.minTrackingConfidence??.5),"minPosePresenceConfidence"in t&&Ln(this.v,2,t.minPosePresenceConfidence??.5),"outputSegmentationMasks"in t&&(this.outputSegmentationMasks=t.outputSegmentationMasks??!1),this.l(t)}D(t,e,n){const r="function"!=typeof e?e:{};return this.s="function"==typeof e?e:n,zh(this),$a(this,t,r),Kh(this)}F(t,e,n,r){const i="function"!=typeof n?n:{};return this.s="function"==typeof n?n:r,zh(this),qa(this,t,i,e),Kh(this)}m(){var t=new $i;Ki(t,"image_in"),Ki(t,"norm_rect"),Yi(t,"normalized_landmarks"),Yi(t,"world_landmarks"),Yi(t,"segmentation_masks");const e=new Ci;er(e,ko,this.h);const n=new Vi;Bi(n,"mediapipe.tasks.vision.pose_landmarker.PoseLandmarkerGraph"),Gi(n,"IMAGE:image_in"),Gi(n,"NORM_RECT:norm_rect"),ji(n,"NORM_LANDMARKS:normalized_landmarks"),ji(n,"WORLD_LANDMARKS:world_landmarks"),n.o(e),zi(t,n),qo(this,t),this.g.attachProtoVectorListener("normalized_landmarks",((t,e)=>{this.landmarks=[];for(const e of t)t=cs(e),this.landmarks.push(Ro(t));$o(this,e)})),this.g.attachEmptyPacketListener("normalized_landmarks",(t=>{this.landmarks=[],$o(this,t)})),this.g.attachProtoVectorListener("world_landmarks",((t,e)=>{this.worldLandmarks=[];for(const e of t)t=as(e),this.worldLandmarks.push(Fo(t));$o(this,e)})),this.g.attachEmptyPacketListener("world_landmarks",(t=>{this.worldLandmarks=[],$o(this,t)})),this.outputSegmentationMasks&&(ji(n,"SEGMENTATION_MASK:segmentation_masks"),Jo(this,"segmentation_masks"),this.g.fa("segmentation_masks",((t,e)=>{this.segmentationMasks=t.map((t=>Ja(this,t,!0,!this.s))),$o(this,e)})),this.g.attachEmptyPacketListener("segmentation_masks",(t=>{this.segmentationMasks=[],$o(this,t)}))),t=t.g(),this.setGraph(new Uint8Array(t),!0)}};Yh.prototype.detectForVideo=Yh.prototype.F,Yh.prototype.detect=Yh.prototype.D,Yh.prototype.setOptions=Yh.prototype.o,Yh.createFromModelPath=function(t,e){return Ka(Yh,t,{baseOptions:{modelAssetPath:e}})},Yh.createFromModelBuffer=function(t,e){return Ka(Yh,t,{baseOptions:{modelAssetBuffer:e}})},Yh.createFromOptions=function(t,e){return Ka(Yh,t,e)},Yh.POSE_CONNECTIONS=Eh,exports.DrawingUtils=Ia,exports.FaceDetector=Qa,exports.FaceLandmarker=lh,exports.FaceStylizer=fh,exports.FilesetResolver=Uo,exports.GestureRecognizer=yh,exports.HandLandmarker=vh,exports.HolisticLandmarker=Ah,exports.ImageClassifier=kh,exports.ImageEmbedder=xh,exports.ImageSegmenter=Fh,exports.ImageSegmenterResult=Sh,exports.InteractiveSegmenter=Xh,exports.InteractiveSegmenterResult=Mh,exports.MPImage=ja,exports.MPMask=wa,exports.ObjectDetector=Hh,exports.PoseLandmarker=Yh,exports.VisionTaskRunner=Za; +"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var t="undefined"!=typeof self?self:{};function e(e,n){t:{for(var r=["CLOSURE_FLAGS"],i=t,s=0;s>6|192;else{if(e>=55296&&e<=57343){if(e<=56319&&i=56320&&s<=57343){e=1024*(e-55296)+s-56320+65536,r[n++]=e>>18|240,r[n++]=e>>12&63|128,r[n++]=e>>6&63|128,r[n++]=63&e|128;continue}i--}e=65533}r[n++]=e>>12|224,r[n++]=e>>6&63|128}r[n++]=63&e|128}}t=n===r.length?r:r.subarray(0,n)}return t}function u(e){t.setTimeout((()=>{throw e}),0)}var l,f=e(610401301,!1),d=e(748402147,!0);function p(){var e=t.navigator;return e&&(e=e.userAgent)?e:""}const g=t.navigator;function m(t){return m[" "](t),t}l=g&&g.userAgentData||null,m[" "]=function(){};const y={};let _=null;function v(t){const e=t.length;let n=3*e/4;n%3?n=Math.floor(n):-1!="=.".indexOf(t[e-1])&&(n=-1!="=.".indexOf(t[e-2])?n-2:n-1);const r=new Uint8Array(n);let i=0;return function(t,e){function n(e){for(;r>4),64!=i&&(e(r<<4&240|i>>2),64!=s&&e(i<<6&192|s))}}(t,(function(t){r[i++]=t})),i!==n?r.subarray(0,i):r}function E(){if(!_){_={};var t="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789".split(""),e=["+/=","+/","-_=","-_.","-_"];for(let n=0;n<5;n++){const r=t.concat(e[n].split(""));y[n]=r;for(let t=0;t0)&&(-1!=p().indexOf("Trident")||-1!=p().indexOf("MSIE")))&&"function"==typeof btoa;const A=/[-_.]/g,b={"-":"+",_:"/",".":"="};function k(t){return b[t]||""}function x(t){if(!T)return v(t);t=A.test(t)?t.replace(A,k):t,t=atob(t);const e=new Uint8Array(t.length);for(let n=0;n=e||(n[t]=r+1,O(t=Error(),"incident"),u(t))}}function D(){return"function"==typeof BigInt}var B="function"==typeof Symbol&&"symbol"==typeof Symbol();function G(t,e,n=!1){return"function"==typeof Symbol&&"symbol"==typeof Symbol()?n&&Symbol.for&&t?Symbol.for(t):null!=t?Symbol(t):Symbol():e}var j=G("jas",void 0,!0),V=G(void 0,"0di"),X=G(void 0,"1oa"),H=G(void 0,Symbol()),W=G(void 0,"0ub"),z=G(void 0,"0ubs"),K=G(void 0,"0ubsb"),Y=G(void 0,"0actk"),q=G("m_m","Pa",!0),$=G();const J={Ga:{value:0,configurable:!0,writable:!0,enumerable:!1}},Z=Object.defineProperties,Q=B?j:"Ga";var tt;const et=[];function nt(t,e){B||Q in t||Z(t,J),t[Q]|=e}function rt(t,e){B||Q in t||Z(t,J),t[Q]=e}function it(t){return nt(t,34),t}function st(t){return nt(t,8192),t}rt(et,7),tt=Object.freeze(et);var ot={};function at(t,e){return void 0===e?t.h!==ct&&!!(2&(0|t.v[Q])):!!(2&e)&&t.h!==ct}const ct={};function ht(t,e){if(null!=t)if("string"==typeof t)t=t?new F(t,L):R();else if(t.constructor!==F)if(S(t))t=t.length?new F(new Uint8Array(t),L):R();else{if(!e)throw Error();t=void 0}return t}class ut{constructor(t,e,n){this.g=t,this.h=e,this.l=n}next(){const t=this.g.next();return t.done||(t.value=this.h.call(this.l,t.value)),t}[Symbol.iterator](){return this}}var lt=Object.freeze({});function ft(t,e,n){const r=128&e?0:-1,i=t.length;var s;(s=!!i)&&(s=null!=(s=t[i-1])&&"object"==typeof s&&s.constructor===Object);const o=i+(s?-1:0);for(e=128&e?1:0;e"number"==typeof t)),yt=gt((t=>"string"==typeof t)),_t=gt((t=>"boolean"==typeof t)),vt="function"==typeof t.BigInt&&"bigint"==typeof t.BigInt(0);function Et(t){var e=t;if(yt(e)){if(!/^\s*(?:-?[1-9]\d*|0)?\s*$/.test(e))throw Error(String(e))}else if(mt(e)&&!Number.isSafeInteger(e))throw Error(String(e));return vt?BigInt(t):t=_t(t)?t?"1":"0":yt(t)?t.trim()||"0":String(t)}var wt=gt((t=>vt?t>=At&&t<=kt:"-"===t[0]?xt(t,Tt):xt(t,bt)));const Tt=Number.MIN_SAFE_INTEGER.toString(),At=vt?BigInt(Number.MIN_SAFE_INTEGER):void 0,bt=Number.MAX_SAFE_INTEGER.toString(),kt=vt?BigInt(Number.MAX_SAFE_INTEGER):void 0;function xt(t,e){if(t.length>e.length)return!1;if(t.lengthi)return!1;if(r>>0;Rt=e,It=(t-e)/4294967296>>>0}function Mt(t){if(t<0){Ft(-t);const[e,n]=jt(Rt,It);Rt=e>>>0,It=n>>>0}else Ft(t)}function Pt(t){const e=Lt||=new DataView(new ArrayBuffer(8));e.setFloat32(0,+t,!0),It=0,Rt=e.getUint32(0,!0)}function Ct(t,e){const n=4294967296*e+(t>>>0);return Number.isSafeInteger(n)?n:Ut(t,e)}function Ot(t,e){return Et(D()?BigInt.asUintN(64,(BigInt(e>>>0)<>>0)):Ut(t,e))}function Nt(t,e){return D()?Et(BigInt.asIntN(64,(BigInt.asUintN(32,BigInt(e))<>>=0,(e>>>=0)<=2097151)var n=""+(4294967296*e+t);else D()?n=""+(BigInt(e)<>>24|e<<8))+6710656*(e=e>>16&65535),n+=8147497*e,e*=2,t>=1e7&&(n+=t/1e7>>>0,t%=1e7),n>=1e7&&(e+=n/1e7>>>0,n%=1e7),n=e+Dt(n)+Dt(t));return n}function Dt(t){return t=String(t),"0000000".slice(t.length)+t}function Bt(t,e){if(2147483648&e)if(D())t=""+(BigInt(0|e)<>>0));else{const[n,r]=jt(t,e);t="-"+Ut(n,r)}else t=Ut(t,e);return t}function Gt(t){if(t.length<16)Mt(Number(t));else if(D())t=BigInt(t),Rt=Number(t&BigInt(4294967295))>>>0,It=Number(t>>BigInt(32)&BigInt(4294967295));else{const e=+("-"===t[0]);It=Rt=0;const n=t.length;for(let r=e,i=(n-e)%6+e;i<=n;r=i,i+=6){const e=Number(t.slice(r,i));It*=1e6,Rt=1e6*Rt+e,Rt>=4294967296&&(It+=Math.trunc(Rt/4294967296),It>>>=0,Rt>>>=0)}if(e){const[t,e]=jt(Rt,It);Rt=t,It=e}}}function jt(t,e){return e=~e,t?t=1+~t:e+=1,[t,e]}function Vt(t){return Array.prototype.slice.call(t)}const Xt="function"==typeof BigInt?BigInt.asIntN:void 0,Ht="function"==typeof BigInt?BigInt.asUintN:void 0,Wt=Number.isSafeInteger,zt=Number.isFinite,Kt=Math.trunc,Yt=Et(0);function qt(t){if(null!=t&&"number"!=typeof t)throw Error(`Value of float/double field must be a number, found ${typeof t}: ${t}`);return t}function $t(t){return null==t||"number"==typeof t?t:"NaN"===t||"Infinity"===t||"-Infinity"===t?Number(t):void 0}function Jt(t){if(null!=t&&"boolean"!=typeof t){var e=typeof t;throw Error(`Expected boolean but got ${"object"!=e?e:t?Array.isArray(t)?"array":e:"null"}: ${t}`)}return t}function Zt(t){return null==t||"boolean"==typeof t?t:"number"==typeof t?!!t:void 0}const Qt=/^-?([1-9][0-9]*|0)(\.[0-9]+)?$/;function te(t){switch(typeof t){case"bigint":return!0;case"number":return zt(t);case"string":return Qt.test(t);default:return!1}}function ee(t){if(null==t)return t;if("string"==typeof t&&t)t=+t;else if("number"!=typeof t)return;return zt(t)?0|t:void 0}function ne(t){if(null==t)return t;if("string"==typeof t&&t)t=+t;else if("number"!=typeof t)return;return zt(t)?t>>>0:void 0}function re(t){const e=t.length;return("-"===t[0]?e<20||20===e&&t<="-9223372036854775808":e<19||19===e&&t<="9223372036854775807")?t:(Gt(t),Bt(Rt,It))}function ie(t){if(t=Kt(t),!Wt(t)){Mt(t);var e=Rt,n=It;(t=2147483648&n)&&(n=~n>>>0,0==(e=1+~e>>>0)&&(n=n+1>>>0)),t="number"==typeof(e=Ct(e,n))?t?-e:e:t?"-"+e:e}return t}function se(t){var e=Kt(Number(t));return Wt(e)?String(e):(-1!==(e=t.indexOf("."))&&(t=t.substring(0,e)),re(t))}function oe(t){var e=Kt(Number(t));return Wt(e)?Et(e):(-1!==(e=t.indexOf("."))&&(t=t.substring(0,e)),D()?Et(Xt(64,BigInt(t))):Et(re(t)))}function ae(t){return Wt(t)?t=Et(ie(t)):(t=Kt(t),Wt(t)?t=String(t):(Mt(t),t=Bt(Rt,It)),t=Et(t)),t}function ce(t){const e=typeof t;return null==t?t:"bigint"===e?Et(Xt(64,t)):te(t)?"string"===e?oe(t):ae(t):void 0}function he(t){if("string"!=typeof t)throw Error();return t}function ue(t){if(null!=t&&"string"!=typeof t)throw Error();return t}function le(t){return null==t||"string"==typeof t?t:void 0}function fe(t,e,n,r){return null!=t&&t[q]===ot?t:Array.isArray(t)?((r=(n=0|t[Q])|32&r|2&r)!==n&&rt(t,r),new e(t)):(n?2&r?((t=e[V])||(it((t=new e).v),t=e[V]=t),e=t):e=new e:e=void 0,e)}function de(t,e,n){if(e)t:{if(!te(e=t))throw N("int64");switch(typeof e){case"string":e=oe(e);break t;case"bigint":e=Et(Xt(64,e));break t;default:e=ae(e)}}else e=ce(t);return null==(t=e)?n?Yt:void 0:t}const pe={};let ge=function(){try{return m(new class extends Map{constructor(){super()}}),!1}catch{return!0}}();class me{constructor(){this.g=new Map}get(t){return this.g.get(t)}set(t,e){return this.g.set(t,e),this.size=this.g.size,this}delete(t){return t=this.g.delete(t),this.size=this.g.size,t}clear(){this.g.clear(),this.size=this.g.size}has(t){return this.g.has(t)}entries(){return this.g.entries()}keys(){return this.g.keys()}values(){return this.g.values()}forEach(t,e){return this.g.forEach(t,e)}[Symbol.iterator](){return this.entries()}}const ye=ge?(Object.setPrototypeOf(me.prototype,Map.prototype),Object.defineProperties(me.prototype,{size:{value:0,configurable:!0,enumerable:!0,writable:!0}}),me):class extends Map{constructor(){super()}};function _e(t){return t}function ve(t){if(2&t.J)throw Error("Cannot mutate an immutable Map")}var Ee=class extends ye{constructor(t,e,n=_e,r=_e){super(),this.J=0|t[Q],this.K=e,this.S=n,this.fa=this.K?we:r;for(let i=0;i{t.call(e,i.get(r),r,i)})):super.forEach(t,e)}set(t,e){return ve(this),null==(t=this.S(t,!0,!1))?this:null==e?(super.delete(t),this):super.set(t,this.fa(e,!0,!0,this.K,!1,this.J))}Ma(t){const e=this.S(t[0],!1,!0);t=t[1],t=this.K?void 0===t?null:t:this.fa(t,!1,!0,void 0,!1,this.J),super.set(e,t)}has(t){return super.has(this.S(t,!1,!1))}get(t){t=this.S(t,!1,!1);const e=super.get(t);if(void 0!==e){var n=this.K;return n?((n=this.fa(e,!1,!0,n,this.ra,this.J))!==e&&super.set(t,n),n):e}}[Symbol.iterator](){return this.entries()}};function we(t,e,n,r,i,s){return t=fe(t,r,n,s),i&&(t=Xe(t)),t}function Te(t){return[t,this.get(t)]}let Ae;function be(){return Ae||=new Ee(it([]),void 0,void 0,void 0,pe)}function ke(t){return H?t[H]:void 0}function xe(t,e){for(const n in t)!isNaN(n)&&e(t,+n,t[n])}Ee.prototype.toJSON=void 0;var Se=class{};const Le={Ka:!0};function Re(t,e){e<100||U(z,1)}function Ie(t,e,n,r){const i=void 0!==r;r=!!r;var s,o=H;!i&&B&&o&&(s=t[o])&&xe(s,Re),o=[];var a=t.length;let c;s=4294967295;let h=!1;const u=!!(64&e),l=u?128&e?0:-1:void 0;1&e||(c=a&&t[a-1],null!=c&&"object"==typeof c&&c.constructor===Object?s=--a:c=void 0,!u||128&e||i||(h=!0,s=s-l+l)),e=void 0;for(var f=0;f=s){const t=f-l;(e??={})[t]=i}else o[f]=i}if(c)for(let t in c){if(null==(a=c[t])||null==(a=n(a,r)))continue;let i;f=+t,u&&!Number.isNaN(f)&&(i=f+l){e[n]=Vt(r)})),e.da=t.da,e}(t)),o}function Fe(t){return t[0]=Me(t[0]),t[1]=Me(t[1]),t}function Me(t){switch(typeof t){case"number":return Number.isFinite(t)?t:""+t;case"bigint":return wt(t)?Number(t):""+t;case"boolean":return t?1:0;case"object":if(Array.isArray(t)){var e=0|t[Q];return 0===t.length&&1&e?void 0:Ie(t,e,Me)}if(null!=t&&t[q]===ot)return Oe(t);if(t instanceof F){if(null==(e=t.g))t="";else if("string"==typeof e)t=e;else{if(T){for(var n="",r=0,i=e.length-10240;r>2];s=n[(3&s)<<4|o>>4],o=n[(15&o)<<2|a>>6],a=n[63&a],r[h++]=c+s+o+a}switch(c=0,a=i,e.length-t){case 2:a=n[(15&(c=e[t+1]))<<2]||i;case 1:e=e[t],r[h]=n[e>>2]+n[(3&e)<<4|c>>4]+a+i}e=r.join("")}t=t.g=e}return t}return t instanceof Ee?t=0!==t.size?t.V(Fe):void 0:void 0}return t}let Pe,Ce;function Oe(t){return Ie(t=t.v,0|t[Q],Me)}function Ne(t,e){return Ue(t,e[0],e[1])}function Ue(t,e,n,r=0){if(null==t){var i=32;n?(t=[n],i|=128):t=[],e&&(i=-16760833&i|(1023&e)<<14)}else{if(!Array.isArray(t))throw Error("narr");if(i=0|t[Q],d&&1&i)throw Error("rfarr");if(2048&i&&!(2&i)&&function(){if(d)throw Error("carr");U(Y,5)}(),256&i)throw Error("farr");if(64&i)return(i|r)!==i&&rt(t,i|r),t;if(n&&(i|=128,n!==t[0]))throw Error("mid");t:{i|=64;var s=(n=t).length;if(s){var o=s-1;const t=n[o];if(null!=t&&"object"==typeof t&&t.constructor===Object){if((o-=e=128&i?0:-1)>=1024)throw Error("pvtlmt");for(var a in t)(s=+a)1024)throw Error("spvt");i=-16760833&i|(1023&a)<<14}}}return rt(t,64|i|r),t}function De(t,e){if("object"!=typeof t)return t;if(Array.isArray(t)){var n=0|t[Q];return 0===t.length&&1&n?void 0:Be(t,n,e)}if(null!=t&&t[q]===ot)return je(t);if(t instanceof Ee){if(2&(e=t.J))return t;if(!t.size)return;if(n=it(t.V()),t.K)for(t=0;t=s)if(o=t[s],null!=o&&"object"==typeof o&&o.constructor===Object)n=o[e],a=!0;else{if(i!==s)return;n=o}else n=t[i];if(r&&null!=n){if(null==(r=r(n)))return r;if(!Object.is(r,n))return a?o[e]=r:t[i]=r,r}return n}}function Ze(t,e,n,r){We(t),Qe(t=t.v,0|t[Q],e,n,r)}function Qe(t,e,n,r,i){const s=n+(i?0:-1);var o=t.length-1;if(o>=1+(i?0:-1)&&s>=o){const i=t[o];if(null!=i&&"object"==typeof i&&i.constructor===Object)return i[n]=r,e}return s<=o?(t[s]=r,e):(void 0!==r&&(n>=(o=(e??=0|t[Q])>>14&1023||536870912)?null!=r&&(t[o+(i?0:-1)]={[n]:r}):t[s]=r),e)}function tn(){return void 0===lt?2:4}function en(t,e,n,r,i){let s=t.v,o=0|s[Q];r=at(t,o)?1:r,i=!!i||3===r,2===r&&He(t)&&(s=t.v,o=0|s[Q]);let a=(t=rn(s,e))===tt?7:0|t[Q],c=sn(a,o);var h=!(4&c);if(h){4&c&&(t=Vt(t),a=0,c=An(c,o),o=Qe(s,o,e,t));let r=0,i=0;for(;r{const r=fe(t,n,!1,e);return s=r!==t&&null!=r,r}))))return s&&!at(r)&&ze(t,e),r}function yn(t,e,n,r){let i=t.v,s=0|i[Q];if(null==(e=mn(i,s,e,n,r)))return e;if(s=0|i[Q],!at(t,s)){const o=Xe(e);o!==e&&(He(t)&&(i=t.v,s=0|i[Q]),s=Qe(i,s,n,e=o,r),ze(i,s))}return e}function _n(t,e,n,r,i,s,o,a){var c=at(t,n);s=c?1:s,o=!!o||3===s,c=a&&!c,(2===s||c)&&He(t)&&(n=0|(e=t.v)[Q]);var h=(t=rn(e,i))===tt?7:0|t[Q],u=sn(h,n);if(a=!(4&u)){var l=t,f=n;const e=!!(2&u);e&&(f|=2);let i=!e,s=!0,o=0,a=0;for(;o32)for(i|=(127&n)>>4,s=3;s<32&&128&n;s+=7)n=o[a++],i|=(127&n)<>>0,i>>>0);throw Error()}function On(t){let e=0,n=t.g;const r=n+10,i=t.h;for(;n>>0}function Dn(t){var e=t.h;const n=t.g;var r=e[n],i=e[n+1];const s=e[n+2];return e=e[n+3],Gn(t,t.g+4),t=2*((i=(r<<0|i<<8|s<<16|e<<24)>>>0)>>31)+1,r=i>>>23&255,i&=8388607,255==r?i?NaN:t*(1/0):0==r?1401298464324817e-60*t*i:t*Math.pow(2,r-150)*(i+8388608)}function Bn(t){return Nn(t)}function Gn(t,e){if(t.g=e,e>t.l)throw Error()}function jn(t,e){if(e<0)throw Error();const n=t.g;if((e=n+e)>t.l)throw Error();return t.g=e,n}function Vn(t,e){if(0==e)return R();var n=jn(t,e);return t.Y&&t.j?n=t.h.subarray(n,n+e):(t=t.h,n=n===(e=n+e)?new Uint8Array(0):St?t.slice(n,e):new Uint8Array(t.subarray(n,e))),0==n.length?R():new F(n,L)}var Xn=[];function Hn(t,e,n,r){if(Qn.length){const i=Qn.pop();return i.o(r),i.g.init(t,e,n,r),i}return new Zn(t,e,n,r)}function Wn(t){t.g.clear(),t.l=-1,t.h=-1,Qn.length<100&&Qn.push(t)}function zn(t){var e=t.g;if(e.g==e.l)return!1;t.m=t.g.g;var n=Un(t.g);if(e=n>>>3,!((n&=7)>=0&&n<=5))throw Error();if(e<1)throw Error();return t.l=e,t.h=n,!0}function Kn(t){switch(t.h){case 0:0!=t.h?Kn(t):On(t.g);break;case 1:Gn(t=t.g,t.g+8);break;case 2:if(2!=t.h)Kn(t);else{var e=Un(t.g);Gn(t=t.g,t.g+e)}break;case 5:Gn(t=t.g,t.g+4);break;case 3:for(e=t.l;;){if(!zn(t))throw Error();if(4==t.h){if(t.l!=e)throw Error();break}Kn(t)}break;default:throw Error()}}function Yn(t,e,n){const r=t.g.l;var i=Un(t.g);let s=(i=t.g.g+i)-r;if(s<=0&&(t.g.l=i,n(e,t,void 0,void 0,void 0),s=i-t.g.g),s)throw Error();return t.g.g=i,t.g.l=r,e}function qn(t){var e=Un(t.g),a=jn(t=t.g,e);if(t=t.h,o){var c,h=t;(c=s)||(c=s=new TextDecoder("utf-8",{fatal:!0})),e=a+e,h=0===a&&e===h.length?h:h.subarray(a,e);try{var u=c.decode(h)}catch(t){if(void 0===i){try{c.decode(new Uint8Array([128]))}catch(t){}try{c.decode(new Uint8Array([97])),i=!0}catch(t){i=!1}}throw!i&&(s=void 0),t}}else{e=(u=a)+e,a=[];let i,s=null;for(;u=e?n():(i=t[u++],l<194||128!=(192&i)?(u--,n()):a.push((31&l)<<6|63&i)):l<240?u>=e-1?n():(i=t[u++],128!=(192&i)||224===l&&i<160||237===l&&i>=160||128!=(192&(c=t[u++]))?(u--,n()):a.push((15&l)<<12|(63&i)<<6|63&c)):l<=244?u>=e-2?n():(i=t[u++],128!=(192&i)||i-144+(l<<28)>>30!=0||128!=(192&(c=t[u++]))||128!=(192&(h=t[u++]))?(u--,n()):(l=(7&l)<<18|(63&i)<<12|(63&c)<<6|63&h,l-=65536,a.push(55296+(l>>10&1023),56320+(1023&l)))):n(),a.length>=8192&&(s=r(s,a),a.length=0)}u=r(s,a)}return u}function $n(t){const e=Un(t.g);return Vn(t.g,e)}function Jn(t,e,n){var r=Un(t.g);for(r=t.g.g+r;t.g.g>>0,this.g=e>>>0}};let nr;function rr(t){return t?/^-?\d+$/.test(t)?(Gt(t),new ir(Rt,It)):null:sr||=new ir(0,0)}var ir=class{constructor(t,e){this.h=t>>>0,this.g=e>>>0}};let sr;function or(t,e,n){for(;n>0||e>127;)t.g.push(127&e|128),e=(e>>>7|n<<25)>>>0,n>>>=7;t.g.push(e)}function ar(t,e){for(;e>127;)t.g.push(127&e|128),e>>>=7;t.g.push(e)}function cr(t,e){if(e>=0)ar(t,e);else{for(let n=0;n<9;n++)t.g.push(127&e|128),e>>=7;t.g.push(1)}}function hr(t){var e=Rt;t.g.push(e>>>0&255),t.g.push(e>>>8&255),t.g.push(e>>>16&255),t.g.push(e>>>24&255)}function ur(t,e){0!==e.length&&(t.l.push(e),t.h+=e.length)}function lr(t,e,n){ar(t.g,8*e+n)}function fr(t,e){return lr(t,e,2),e=t.g.end(),ur(t,e),e.push(t.h),e}function dr(t,e){var n=e.pop();for(n=t.h+t.g.length()-n;n>127;)e.push(127&n|128),n>>>=7,t.h++;e.push(n),t.h++}function pr(t,e,n){lr(t,e,2),ar(t.g,n.length),ur(t,t.g.end()),ur(t,n)}function gr(t,e,n,r){null!=n&&(e=fr(t,e),r(n,t),dr(t,e))}function mr(){const t=class{constructor(){throw Error()}};return Object.setPrototypeOf(t,t.prototype),t}var yr=mr(),_r=mr(),vr=mr(),Er=mr(),wr=mr(),Tr=mr(),Ar=mr(),br=mr(),kr=mr(),xr=mr();function Sr(t,e,n){var r=t.v;H&&H in r&&(r=r[H])&&delete r[e.g],e.h?e.j(t,e.h,e.g,n,e.l):e.j(t,e.g,n,e.l)}var Lr=class{constructor(t,e){this.v=Ue(t,e,void 0,2048)}toJSON(){return Oe(this)}j(){var t=So,e=this.v,n=t.g,r=H;if(B&&r&&null!=e[r]?.[n]&&U(W,3),e=t.g,$&&H&&void 0===$&&(r=(n=this.v)[H])&&(r=r.da))try{r(n,e,Le)}catch(t){u(t)}return t.h?t.m(this,t.h,t.g,t.l):t.m(this,t.g,t.defaultValue,t.l)}clone(){const t=this.v,e=0|t[Q];return Ke(this,t,e)?Ge(this,t,!0):new this.constructor(Ve(t,e,!1))}};Lr.prototype[q]=ot,Lr.prototype.toString=function(){return this.v.toString()};var Rr=class{constructor(t,e,n){this.g=t,this.h=e,t=yr,this.l=!!t&&n===t||!1}};function Ir(t,e){return new Rr(t,e,yr)}function Fr(t,e,n,r,i){gr(t,n,Xr(e,r),i)}const Mr=Ir((function(t,e,n,r,i){return 2===t.h&&(Yn(t,gn(e,r,n),i),!0)}),Fr),Pr=Ir((function(t,e,n,r,i){return 2===t.h&&(Yn(t,gn(e,r,n),i),!0)}),Fr);var Cr=Symbol(),Or=Symbol(),Nr=Symbol(),Ur=Symbol(),Dr=Symbol();let Br,Gr;function jr(t,e,n,r){var i=r[t];if(i)return i;(i={}).qa=r,i.T=function(t){switch(typeof t){case"boolean":return Pe||=[0,void 0,!0];case"number":return t>0?void 0:0===t?Ce||=[0,void 0]:[-t,void 0];case"string":return[0,t];case"object":return t}}(r[0]);var s=r[1];let o=1;s&&s.constructor===Object&&(i.ba=s,"function"==typeof(s=r[++o])&&(i.ma=!0,Br??=s,Gr??=r[o+1],s=r[o+=2]));const a={};for(;s&&Array.isArray(s)&&s.length&&"number"==typeof s[0]&&s[0]>0;){for(var c=0;ci(t,e,n,r):i}function Wr(t,e,n,r,i){const s=n.g;let o,a;t[e]=(t,e,n)=>s(t,e,n,a||=jr(Or,Hr,Wr,r).T,o||=zr(r),i)}function zr(t){let e=t[Nr];if(null!=e)return e;const n=jr(Or,Hr,Wr,t);return e=n.ma?(t,e)=>Br(t,e,n):(t,e)=>{for(;zn(e)&&4!=e.h;){var r=e.l,i=n[r];if(null==i){var s=n.ba;s&&(s=s[r])&&(null!=(s=Yr(s))&&(i=n[r]=s))}if(null==i||!i(e,t,r)){if(i=(s=e).m,Kn(s),s.ha)var o=void 0;else o=s.g.g-i,s.g.g=i,o=Vn(s.g,o);i=void 0,s=t,o&&((i=s[H]??(s[H]=new Se))[r]??(i[r]=[])).push(o)}}return(t=ke(t))&&(t.da=n.qa[Dr]),!0},t[Nr]=e,t[Dr]=Kr.bind(t),e}function Kr(t,e,n,r){var i=this[Or];const s=this[Nr],o=Ne(void 0,i.T),a=ke(t);if(a){var c=!1,h=i.ba;if(h){if(i=(e,n,i)=>{if(0!==i.length)if(h[n])for(const t of i){e=Hn(t);try{c=!0,s(o,e)}finally{Wn(e)}}else r?.(t,n,i)},null==e)xe(a,i);else if(null!=a){const t=a[e];t&&i(a,e,t)}if(c){let r=0|t[Q];if(2&r&&2048&r&&!n?.Ka)throw Error();const i=pt(r),s=(e,s)=>{if(null!=Je(t,e,i)){if(1===n?.Qa)return;throw Error()}null!=s&&(r=Qe(t,r,e,s,i)),delete a[e]};null==e?ft(o,0|o[Q],((t,e)=>{s(t,e)})):s(e,Je(o,e,i))}}}}function Yr(t){const e=(t=Vr(t))[0].g;if(t=t[1]){const n=zr(t),r=jr(Or,Hr,Wr,t).T;return(t,i,s)=>e(t,i,s,r,n)}return e}function qr(t,e,n){t[e]=n.h}function $r(t,e,n,r){let i,s;const o=n.h;t[e]=(t,e,n)=>o(t,e,n,s||=jr(Cr,qr,$r,r).T,i||=Jr(r))}function Jr(t){let e=t[Ur];if(!e){const n=jr(Cr,qr,$r,t);e=(t,e)=>Zr(t,e,n),t[Ur]=e}return e}function Zr(t,e,n){ft(t,0|t[Q],((t,r)=>{if(null!=r){var i=function(t,e){var n=t[e];if(n)return n;if((n=t.ba)&&(n=n[e])){var r=(n=Vr(n))[0].h;if(n=n[1]){const e=Jr(n),i=jr(Cr,qr,$r,n).T;n=t.ma?Gr(i,e):(t,n,s)=>r(t,n,s,i,e)}else n=r;return t[e]=n}}(n,t);i?i(e,r,t):t<500||U(K,3)}})),(t=ke(t))&&xe(t,((t,n,r)=>{for(ur(e,e.g.end()),t=0;t{gr(t,n,Ne([s,e],r),i)}));else if(Array.isArray(e)){for(let s=0;s>BigInt(32))),or(t.g,n.h,n.g);break;default:n=rr(e),or(t.g,n.h,n.g)}}}function ai(t,e,n){null!=(e=ee(e))&&null!=e&&(lr(t,n,0),cr(t.g,e))}function ci(t,e,n){null!=(e=Zt(e))&&(lr(t,n,0),t.g.g.push(e?1:0))}function hi(t,e,n){null!=(e=le(e))&&pr(t,n,h(e))}function ui(t,e,n,r,i){gr(t,n,Xr(e,r),i)}function li(t,e,n){null!=(e=null==e||"string"==typeof e||e instanceof F?e:void 0)&&pr(t,n,Pn(e,!0).buffer)}function fi(t,e,n){null!=(e=ne(e))&&null!=e&&(lr(t,n,0),ar(t.g,e))}function di(t,e,n){return(5===t.h||2===t.h)&&(e=un(e,0|e[Q],n),2==t.h?Jn(t,Dn,e):e.push(Dn(t.g)),!0)}var pi=ei((function(t,e,n){return 5===t.h&&(ri(e,n,Dn(t.g)),!0)}),si,br),gi=ni(di,(function(t,e,n){if(null!=(e=ti($t,e)))for(let o=0;o=0?t=String(e):(-1!==(e=t.indexOf("."))&&(t=t.substring(0,e)),(e="-"!==t[0]&&((e=t.length)<20||20===e&&t<="18446744073709551615"))||(Gt(t),t=Ut(Rt,It))),t;if("number"===e)return(t=Kt(t))>=0&&Wt(t)||(Mt(t),t=Ct(Rt,It)),t}}(e),null!=e){if("string"==typeof e)tr(e);if(null!=e)switch(lr(t,n,0),typeof e){case"number":t=t.g,Mt(e),or(t,Rt,It);break;case"bigint":n=BigInt.asUintN(64,e),n=new er(Number(n&BigInt(4294967295)),Number(n>>BigInt(32))),or(t.g,n.h,n.g);break;default:n=tr(e),or(t.g,n.h,n.g)}}}),Ar),wi=ei((function(t,e,n){return 0===t.h&&(ri(e,n,Nn(t.g)),!0)}),ai,Er),Ti=ni((function(t,e,n){return(0===t.h||2===t.h)&&(e=un(e,0|e[Q],n),2==t.h?Jn(t,Nn,e):e.push(Nn(t.g)),!0)}),(function(t,e,n){if(null!=(e=ti(ee,e))&&e.length){n=fr(t,n);for(let n=0;n{{const s={ea:!0};r&&Object.assign(s,r),n=Hn(n,void 0,void 0,s);try{const r=new t,s=r.v;zr(e)(s,n);var i=r}finally{Wn(n)}}return i}}function Di(t){return function(){const e=new class{constructor(){this.l=[],this.h=0,this.g=new class{constructor(){this.g=[]}length(){return this.g.length}end(){const t=this.g;return this.g=[],t}}}};Zr(this.v,e,jr(Cr,qr,$r,t)),ur(e,e.g.end());const n=new Uint8Array(e.h),r=e.l,i=r.length;let s=0;for(let t=0;tt;t=Vi.createPolicy("goog#html",{createHTML:e,createScript:e,createScriptURL:e})}catch(t){}return t}()),t=(e=ji)?e.createScriptURL(t):t,new class{constructor(t){this.g=t}toString(){return this.g+""}}(t)}function Hi(t,...e){if(0===e.length)return Xi(t[0]);let n=t[0];for(let r=0;r({index:kn(t,1)??0??-1,score:xn(t,2)??0,categoryName:le($e(t,3))??""??"",displayName:le($e(t,4))??""??""}))),headIndex:e,headName:n}}function Vo(t){const e={classifications:vn(t,Rs,1).map((t=>jo(yn(t,gs,4)?.g()??[],kn(t,2)??0,le($e(t,3))??"")))};return null!=function(t){return null==t?t:"bigint"==typeof t?(wt(t)?t=Number(t):(t=Xt(64,t),t=wt(t)?Number(t):String(t)),t):te(t)?"number"==typeof t?ie(t):se(t):void 0}($e(t,2,void 0,void 0,ce))&&(e.timestampMs=Go($e(t,2,void 0,void 0,ce)??Ye)),e}function Xo(t){var e=en(t,3,$t,tn()),n=en(t,2,ee,tn()),r=en(t,1,le,tn()),i=en(t,9,le,tn());const s={categories:[],keypoints:[]};for(let t=0;tt>127?t-256:t))}function Ko(t,e){if(t.length!==e.length)throw Error(`Cannot compute cosine similarity between embeddings of different sizes (${t.length} vs. ${e.length}).`);let n=0,r=0,i=0;for(let s=0;s=1&&Number(t[1])>=17))}async function ta(t){if("function"!=typeof importScripts){const e=document.createElement("script");return e.src=t.toString(),e.crossOrigin="anonymous",new Promise(((t,n)=>{e.addEventListener("load",(()=>{t()}),!1),e.addEventListener("error",(t=>{n(t)}),!1),document.body.appendChild(e)}))}try{importScripts(t.toString())}catch(e){if(!(e instanceof TypeError))throw e;await self.import(t.toString())}}function ea(t){return void 0!==t.videoWidth?[t.videoWidth,t.videoHeight]:void 0!==t.naturalWidth?[t.naturalWidth,t.naturalHeight]:void 0!==t.displayWidth?[t.displayWidth,t.displayHeight]:[t.width,t.height]}function na(t,e,n){t.m||console.error("No wasm multistream support detected: ensure dependency inclusion of :gl_graph_runner_internal_multi_input target"),n(e=t.i.stringToNewUTF8(e)),t.i._free(e)}function ra(t,e,n){if(!t.i.canvas)throw Error("No OpenGL canvas configured.");if(n?t.i._bindTextureToStream(n):t.i._bindTextureToCanvas(),!(n=t.i.canvas.getContext("webgl2")||t.i.canvas.getContext("webgl")))throw Error("Failed to obtain WebGL context from the provided canvas. `getContext()` should only be invoked with `webgl` or `webgl2`.");t.i.gpuOriginForWebTexturesIsBottomLeft&&n.pixelStorei(n.UNPACK_FLIP_Y_WEBGL,!0),n.texImage2D(n.TEXTURE_2D,0,n.RGBA,n.RGBA,n.UNSIGNED_BYTE,e),t.i.gpuOriginForWebTexturesIsBottomLeft&&n.pixelStorei(n.UNPACK_FLIP_Y_WEBGL,!1);const[r,i]=ea(e);return!t.l||r===t.i.canvas.width&&i===t.i.canvas.height||(t.i.canvas.width=r,t.i.canvas.height=i),[r,i]}function ia(t,e,n){t.m||console.error("No wasm multistream support detected: ensure dependency inclusion of :gl_graph_runner_internal_multi_input target");const r=new Uint32Array(e.length);for(let n=0;n>2),n(e);for(const e of r)t.i._free(e);t.i._free(e)}function sa(t,e,n){t.i.simpleListeners=t.i.simpleListeners||{},t.i.simpleListeners[e]=n}function oa(t,e,n){let r=[];t.i.simpleListeners=t.i.simpleListeners||{},t.i.simpleListeners[e]=(t,e,i)=>{e?(n(r,i),r=[]):r.push(t)}}Zo.forVisionTasks=function(t,e=!1){return Jo("vision",t??Hi``,e)},Zo.forTextTasks=function(t,e=!1){return Jo("text",t??Hi``,e)},Zo.forGenAiTasks=function(t,e=!1){return Jo("genai",t??Hi``,e)},Zo.forAudioTasks=function(t,e=!1){return Jo("audio",t??Hi``,e)},Zo.isSimdSupported=function(t=!1){return $o(t)};async function aa(t,e,n,r){return t=await(async(t,e,n,r,i)=>{if(e&&await ta(e),!self.ModuleFactory)throw Error("ModuleFactory not set.");if(n&&(await ta(n),!self.ModuleFactory))throw Error("ModuleFactory not set.");return self.Module&&i&&((e=self.Module).locateFile=i.locateFile,i.mainScriptUrlOrBlob&&(e.mainScriptUrlOrBlob=i.mainScriptUrlOrBlob)),i=await self.ModuleFactory(self.Module||i),self.ModuleFactory=self.Module=void 0,new t(i,r)})(t,n.wasmLoaderPath,n.assetLoaderPath,e,{locateFile:t=>t.endsWith(".wasm")?n.wasmBinaryPath.toString():n.assetBinaryPath&&t.endsWith(".data")?n.assetBinaryPath.toString():t}),await t.o(r),t}function ca(t,e){const n=yn(t.baseOptions,Vs,1)||new Vs;"string"==typeof e?(Ze(n,2,ue(e)),Ze(n,1)):e instanceof Uint8Array&&(Ze(n,1,ht(e,!1)),Ze(n,2)),wn(t.baseOptions,0,1,n)}function ha(t){try{const e=t.H.length;if(1===e)throw Error(t.H[0].message);if(e>1)throw Error("Encountered multiple errors: "+t.H.map((t=>t.message)).join(", "))}finally{t.H=[]}}function ua(t,e){t.C=Math.max(t.C,e)}function la(t,e){t.B=new is,Rn(t.B,2,"PassThroughCalculator"),ns(t.B,"free_memory"),rs(t.B,"free_memory_unused_out"),hs(e,"free_memory"),cs(e,t.B)}function fa(t,e){ns(t.B,e),rs(t.B,e+"_unused_out")}function da(t){t.g.addBoolToStream(!0,"free_memory",t.C)}var pa=class{constructor(t){this.g=t,this.H=[],this.C=0,this.g.setAutoRenderToScreen(!1)}l(t,e=!0){if(e){const e=t.baseOptions||{};if(t.baseOptions?.modelAssetBuffer&&t.baseOptions?.modelAssetPath)throw Error("Cannot set both baseOptions.modelAssetPath and baseOptions.modelAssetBuffer");if(!(yn(this.baseOptions,Vs,1)?.g()||yn(this.baseOptions,Vs,1)?.l()||t.baseOptions?.modelAssetBuffer||t.baseOptions?.modelAssetPath))throw Error("Either baseOptions.modelAssetPath or baseOptions.modelAssetBuffer must be set");if(function(t,e){let n=yn(t.baseOptions,Gs,3);if(!n){var r=n=new Gs,i=new $i;Tn(r,4,js,i)}"delegate"in e&&("GPU"===e.delegate?(e=n,r=new zi,Tn(e,2,js,r)):(e=n,r=new $i,Tn(e,4,js,r))),wn(t.baseOptions,0,3,n)}(this,e),e.modelAssetPath)return fetch(e.modelAssetPath.toString()).then((t=>{if(t.ok)return t.arrayBuffer();throw Error(`Failed to fetch model: ${e.modelAssetPath} (${t.status})`)})).then((t=>{try{this.g.i.FS_unlink("/model.dat")}catch{}this.g.i.FS_createDataFile("/","model.dat",new Uint8Array(t),!0,!1,!1),ca(this,"/model.dat"),this.m(),this.L()}));if(e.modelAssetBuffer instanceof Uint8Array)ca(this,e.modelAssetBuffer);else if(e.modelAssetBuffer)return async function(t){const e=[];for(var n=0;;){const{done:r,value:i}=await t.read();if(r)break;e.push(i),n+=i.length}if(0===e.length)return new Uint8Array(0);if(1===e.length)return e[0];t=new Uint8Array(n),n=0;for(const r of e)t.set(r,n),n+=r.length;return t}(e.modelAssetBuffer).then((t=>{ca(this,t),this.m(),this.L()}))}return this.m(),this.L(),Promise.resolve()}L(){}ca(){let t;if(this.g.ca((e=>{t=ds(e)})),!t)throw Error("Failed to retrieve CalculatorGraphConfig");return t}setGraph(t,e){this.g.attachErrorListener(((t,e)=>{this.H.push(Error(e))})),this.g.Ja(),this.g.setGraph(t,e),this.B=void 0,ha(this)}finishProcessing(){this.g.finishProcessing(),ha(this)}close(){this.B=void 0,this.g.closeGraph()}};function ga(t,e){if(!t)throw Error(`Unable to obtain required WebGL resource: ${e}`);return t}pa.prototype.close=pa.prototype.close;class ma{constructor(t,e,n,r){this.g=t,this.h=e,this.m=n,this.l=r}bind(){this.g.bindVertexArray(this.h)}close(){this.g.deleteVertexArray(this.h),this.g.deleteBuffer(this.m),this.g.deleteBuffer(this.l)}}function ya(t,e,n){const r=t.g;if(n=ga(r.createShader(n),"Failed to create WebGL shader"),r.shaderSource(n,e),r.compileShader(n),!r.getShaderParameter(n,r.COMPILE_STATUS))throw Error(`Could not compile WebGL shader: ${r.getShaderInfoLog(n)}`);return r.attachShader(t.h,n),n}function _a(t,e){const n=t.g,r=ga(n.createVertexArray(),"Failed to create vertex array");n.bindVertexArray(r);const i=ga(n.createBuffer(),"Failed to create buffer");n.bindBuffer(n.ARRAY_BUFFER,i),n.enableVertexAttribArray(t.O),n.vertexAttribPointer(t.O,2,n.FLOAT,!1,0,0),n.bufferData(n.ARRAY_BUFFER,new Float32Array([-1,-1,-1,1,1,1,1,-1]),n.STATIC_DRAW);const s=ga(n.createBuffer(),"Failed to create buffer");return n.bindBuffer(n.ARRAY_BUFFER,s),n.enableVertexAttribArray(t.L),n.vertexAttribPointer(t.L,2,n.FLOAT,!1,0,0),n.bufferData(n.ARRAY_BUFFER,new Float32Array(e?[0,1,0,0,1,0,1,1]:[0,0,0,1,1,1,1,0]),n.STATIC_DRAW),n.bindBuffer(n.ARRAY_BUFFER,null),n.bindVertexArray(null),new ma(n,r,i,s)}function va(t,e){if(t.g){if(e!==t.g)throw Error("Cannot change GL context once initialized")}else t.g=e}function Ea(t,e,n,r){return va(t,e),t.h||(t.m(),t.D()),n?(t.u||(t.u=_a(t,!0)),n=t.u):(t.A||(t.A=_a(t,!1)),n=t.A),e.useProgram(t.h),n.bind(),t.l(),t=r(),n.g.bindVertexArray(null),t}function wa(t,e,n){return va(t,e),t=ga(e.createTexture(),"Failed to create texture"),e.bindTexture(e.TEXTURE_2D,t),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MIN_FILTER,n??e.LINEAR),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MAG_FILTER,n??e.LINEAR),e.bindTexture(e.TEXTURE_2D,null),t}function Ta(t,e,n){va(t,e),t.B||(t.B=ga(e.createFramebuffer(),"Failed to create framebuffe.")),e.bindFramebuffer(e.FRAMEBUFFER,t.B),e.framebufferTexture2D(e.FRAMEBUFFER,e.COLOR_ATTACHMENT0,e.TEXTURE_2D,n,0)}function Aa(t){t.g?.bindFramebuffer(t.g.FRAMEBUFFER,null)}var ba=class{H(){return"\n precision mediump float;\n varying vec2 vTex;\n uniform sampler2D inputTexture;\n void main() {\n gl_FragColor = texture2D(inputTexture, vTex);\n }\n "}m(){const t=this.g;if(this.h=ga(t.createProgram(),"Failed to create WebGL program"),this.X=ya(this,"\n attribute vec2 aVertex;\n attribute vec2 aTex;\n varying vec2 vTex;\n void main(void) {\n gl_Position = vec4(aVertex, 0.0, 1.0);\n vTex = aTex;\n }",t.VERTEX_SHADER),this.W=ya(this,this.H(),t.FRAGMENT_SHADER),t.linkProgram(this.h),!t.getProgramParameter(this.h,t.LINK_STATUS))throw Error(`Error during program linking: ${t.getProgramInfoLog(this.h)}`);this.O=t.getAttribLocation(this.h,"aVertex"),this.L=t.getAttribLocation(this.h,"aTex")}D(){}l(){}close(){if(this.h){const t=this.g;t.deleteProgram(this.h),t.deleteShader(this.X),t.deleteShader(this.W)}this.B&&this.g.deleteFramebuffer(this.B),this.A&&this.A.close(),this.u&&this.u.close()}};var ka=class extends ba{H(){return"\n precision mediump float;\n uniform sampler2D backgroundTexture;\n uniform sampler2D maskTexture;\n uniform sampler2D colorMappingTexture;\n varying vec2 vTex;\n void main() {\n vec4 backgroundColor = texture2D(backgroundTexture, vTex);\n float category = texture2D(maskTexture, vTex).r;\n vec4 categoryColor = texture2D(colorMappingTexture, vec2(category, 0.0));\n gl_FragColor = mix(backgroundColor, categoryColor, categoryColor.a);\n }\n "}D(){const t=this.g;t.activeTexture(t.TEXTURE1),this.C=wa(this,t,t.LINEAR),t.activeTexture(t.TEXTURE2),this.j=wa(this,t,t.NEAREST)}m(){super.m();const t=this.g;this.P=ga(t.getUniformLocation(this.h,"backgroundTexture"),"Uniform location"),this.U=ga(t.getUniformLocation(this.h,"colorMappingTexture"),"Uniform location"),this.M=ga(t.getUniformLocation(this.h,"maskTexture"),"Uniform location")}l(){super.l();const t=this.g;t.uniform1i(this.M,0),t.uniform1i(this.P,1),t.uniform1i(this.U,2)}close(){this.C&&this.g.deleteTexture(this.C),this.j&&this.g.deleteTexture(this.j),super.close()}},xa=class extends ba{H(){return"\n precision mediump float;\n uniform sampler2D maskTexture;\n uniform sampler2D defaultTexture;\n uniform sampler2D overlayTexture;\n varying vec2 vTex;\n void main() {\n float confidence = texture2D(maskTexture, vTex).r;\n vec4 defaultColor = texture2D(defaultTexture, vTex);\n vec4 overlayColor = texture2D(overlayTexture, vTex);\n // Apply the alpha from the overlay and merge in the default color\n overlayColor = mix(defaultColor, overlayColor, overlayColor.a);\n gl_FragColor = mix(defaultColor, overlayColor, confidence);\n }\n "}D(){const t=this.g;t.activeTexture(t.TEXTURE1),this.j=wa(this,t),t.activeTexture(t.TEXTURE2),this.C=wa(this,t)}m(){super.m();const t=this.g;this.M=ga(t.getUniformLocation(this.h,"defaultTexture"),"Uniform location"),this.P=ga(t.getUniformLocation(this.h,"overlayTexture"),"Uniform location"),this.I=ga(t.getUniformLocation(this.h,"maskTexture"),"Uniform location")}l(){super.l();const t=this.g;t.uniform1i(this.I,0),t.uniform1i(this.M,1),t.uniform1i(this.P,2)}close(){this.j&&this.g.deleteTexture(this.j),this.C&&this.g.deleteTexture(this.C),super.close()}};function Sa(t,e){switch(e){case 0:return t.g.find((t=>t instanceof Uint8Array));case 1:return t.g.find((t=>t instanceof Float32Array));case 2:return t.g.find((t=>"undefined"!=typeof WebGLTexture&&t instanceof WebGLTexture));default:throw Error(`Type is not supported: ${e}`)}}function La(t){var e=Sa(t,1);if(!e){if(e=Sa(t,0))e=new Float32Array(e).map((t=>t/255));else{e=new Float32Array(t.width*t.height);const r=Ia(t);var n=Ma(t);if(Ta(n,r,Ra(t)),"iPad Simulator;iPhone Simulator;iPod Simulator;iPad;iPhone;iPod".split(";").includes(navigator.platform)||navigator.userAgent.includes("Mac")&&"document"in self&&"ontouchend"in self.document){n=new Float32Array(t.width*t.height*4),r.readPixels(0,0,t.width,t.height,r.RGBA,r.FLOAT,n);for(let t=0,r=0;tMath.round(255*t)))),t.g.push(e)),e;var t,e}ia(){return La(this)}N(){return Ra(this)}clone(){const t=[];for(const e of this.g){let n;if(e instanceof Uint8Array)n=new Uint8Array(e);else if(e instanceof Float32Array)n=new Float32Array(e);else{if(!(e instanceof WebGLTexture))throw Error(`Type is not supported: ${e}`);{const t=Ia(this),e=Ma(this);t.activeTexture(t.TEXTURE1),n=wa(e,t,this.m?t.LINEAR:t.NEAREST),t.bindTexture(t.TEXTURE_2D,n);const r=Fa(this);t.texImage2D(t.TEXTURE_2D,0,r,this.width,this.height,0,t.RED,t.FLOAT,null),t.bindTexture(t.TEXTURE_2D,null),Ta(e,t,n),Ea(e,t,!1,(()=>{Pa(this),t.clearColor(0,0,0,0),t.clear(t.COLOR_BUFFER_BIT),t.drawArrays(t.TRIANGLE_FAN,0,4),Ca(this)})),Aa(e),Ca(this)}}t.push(n)}return new Na(t,this.m,this.R(),this.canvas,this.l,this.width,this.height)}close(){this.j&&Ia(this).deleteTexture(Sa(this,2)),Ua=-1}};Na.prototype.close=Na.prototype.close,Na.prototype.clone=Na.prototype.clone,Na.prototype.getAsWebGLTexture=Na.prototype.N,Na.prototype.getAsFloat32Array=Na.prototype.ia,Na.prototype.getAsUint8Array=Na.prototype.ja,Na.prototype.hasWebGLTexture=Na.prototype.R,Na.prototype.hasFloat32Array=Na.prototype.ka,Na.prototype.hasUint8Array=Na.prototype.Fa;var Ua=250;const Da={color:"white",lineWidth:4,radius:6};function Ba(t){return{...Da,fillColor:(t=t||{}).color,...t}}function Ga(t,e){return t instanceof Function?t(e):t}function ja(t,e,n){return Math.max(Math.min(e,n),Math.min(Math.max(e,n),t))}function Va(t){if(!t.l)throw Error("CPU rendering requested but CanvasRenderingContext2D not provided.");return t.l}function Xa(t){if(!t.j)throw Error("GPU rendering requested but WebGL2RenderingContext not provided.");return t.j}function Ha(t,e,n){if(e.R())n(e.N());else{const r=e.ka()?e.ia():e.ja();t.m=t.m??new ba;const i=Xa(t);n((t=new Na([r],e.m,!1,i.canvas,t.m,e.width,e.height)).N()),t.close()}}function Wa(t,e,n,r){const i=function(t){return t.g||(t.g=new ka),t.g}(t),s=Xa(t),o=Array.isArray(n)?new ImageData(new Uint8ClampedArray(n),1,1):n;Ea(i,s,!0,(()=>{!function(t,e,n,r){const i=t.g;if(i.activeTexture(i.TEXTURE0),i.bindTexture(i.TEXTURE_2D,e),i.activeTexture(i.TEXTURE1),i.bindTexture(i.TEXTURE_2D,t.C),i.texImage2D(i.TEXTURE_2D,0,i.RGBA,i.RGBA,i.UNSIGNED_BYTE,n),t.I&&function(t,e){if(t!==e)return!1;t=t.entries(),e=e.entries();for(const[r,i]of t){t=r;const s=i;var n=e.next();if(n.done)return!1;const[o,a]=n.value;if(n=a,t!==o||s[0]!==n[0]||s[1]!==n[1]||s[2]!==n[2]||s[3]!==n[3])return!1}return!!e.next().done}(t.I,r))i.activeTexture(i.TEXTURE2),i.bindTexture(i.TEXTURE_2D,t.j);else{t.I=r;const e=Array(1024).fill(0);r.forEach(((t,n)=>{if(4!==t.length)throw Error(`Color at index ${n} is not a four-channel value.`);e[4*n]=t[0],e[4*n+1]=t[1],e[4*n+2]=t[2],e[4*n+3]=t[3]})),i.activeTexture(i.TEXTURE2),i.bindTexture(i.TEXTURE_2D,t.j),i.texImage2D(i.TEXTURE_2D,0,i.RGBA,256,1,0,i.RGBA,i.UNSIGNED_BYTE,new Uint8Array(e))}}(i,e,o,r),s.clearColor(0,0,0,0),s.clear(s.COLOR_BUFFER_BIT),s.drawArrays(s.TRIANGLE_FAN,0,4);const t=i.g;t.activeTexture(t.TEXTURE0),t.bindTexture(t.TEXTURE_2D,null),t.activeTexture(t.TEXTURE1),t.bindTexture(t.TEXTURE_2D,null),t.activeTexture(t.TEXTURE2),t.bindTexture(t.TEXTURE_2D,null)}))}function za(t,e,n,r){const i=Xa(t),s=function(t){return t.h||(t.h=new xa),t.h}(t),o=Array.isArray(n)?new ImageData(new Uint8ClampedArray(n),1,1):n,a=Array.isArray(r)?new ImageData(new Uint8ClampedArray(r),1,1):r;Ea(s,i,!0,(()=>{var t=s.g;t.activeTexture(t.TEXTURE0),t.bindTexture(t.TEXTURE_2D,e),t.activeTexture(t.TEXTURE1),t.bindTexture(t.TEXTURE_2D,s.j),t.texImage2D(t.TEXTURE_2D,0,t.RGBA,t.RGBA,t.UNSIGNED_BYTE,o),t.activeTexture(t.TEXTURE2),t.bindTexture(t.TEXTURE_2D,s.C),t.texImage2D(t.TEXTURE_2D,0,t.RGBA,t.RGBA,t.UNSIGNED_BYTE,a),i.clearColor(0,0,0,0),i.clear(i.COLOR_BUFFER_BIT),i.drawArrays(i.TRIANGLE_FAN,0,4),i.bindTexture(i.TEXTURE_2D,null),(t=s.g).activeTexture(t.TEXTURE0),t.bindTexture(t.TEXTURE_2D,null),t.activeTexture(t.TEXTURE1),t.bindTexture(t.TEXTURE_2D,null),t.activeTexture(t.TEXTURE2),t.bindTexture(t.TEXTURE_2D,null)}))}var Ka=class{constructor(t,e){"undefined"!=typeof CanvasRenderingContext2D&&t instanceof CanvasRenderingContext2D||t instanceof OffscreenCanvasRenderingContext2D?(this.l=t,this.j=e):this.j=t}ya(t,e){if(t){var n=Va(this);e=Ba(e),n.save();var r=n.canvas,i=0;for(const s of t)n.fillStyle=Ga(e.fillColor,{index:i,from:s}),n.strokeStyle=Ga(e.color,{index:i,from:s}),n.lineWidth=Ga(e.lineWidth,{index:i,from:s}),(t=new Path2D).arc(s.x*r.width,s.y*r.height,Ga(e.radius,{index:i,from:s}),0,2*Math.PI),n.fill(t),n.stroke(t),++i;n.restore()}}xa(t,e,n){if(t&&e){var r=Va(this);n=Ba(n),r.save();var i=r.canvas,s=0;for(const o of e){r.beginPath(),e=t[o.start];const a=t[o.end];e&&a&&(r.strokeStyle=Ga(n.color,{index:s,from:e,to:a}),r.lineWidth=Ga(n.lineWidth,{index:s,from:e,to:a}),r.moveTo(e.x*i.width,e.y*i.height),r.lineTo(a.x*i.width,a.y*i.height)),++s,r.stroke()}r.restore()}}ua(t,e){const n=Va(this);e=Ba(e),n.save(),n.beginPath(),n.lineWidth=Ga(e.lineWidth,{}),n.strokeStyle=Ga(e.color,{}),n.fillStyle=Ga(e.fillColor,{}),n.moveTo(t.originX,t.originY),n.lineTo(t.originX+t.width,t.originY),n.lineTo(t.originX+t.width,t.originY+t.height),n.lineTo(t.originX,t.originY+t.height),n.lineTo(t.originX,t.originY),n.stroke(),n.fill(),n.restore()}va(t,e,n=[0,0,0,255]){this.l?function(t,e,n,r){const i=Xa(t);Ha(t,e,(e=>{Wa(t,e,n,r),(e=Va(t)).drawImage(i.canvas,0,0,e.canvas.width,e.canvas.height)}))}(this,t,n,e):Wa(this,t.N(),n,e)}wa(t,e,n){this.l?function(t,e,n,r){const i=Xa(t);Ha(t,e,(e=>{za(t,e,n,r),(e=Va(t)).drawImage(i.canvas,0,0,e.canvas.width,e.canvas.height)}))}(this,t,e,n):za(this,t.N(),e,n)}close(){this.g?.close(),this.g=void 0,this.h?.close(),this.h=void 0,this.m?.close(),this.m=void 0}};function Ya(t,e){switch(e){case 0:return t.g.find((t=>t instanceof ImageData));case 1:return t.g.find((t=>"undefined"!=typeof ImageBitmap&&t instanceof ImageBitmap));case 2:return t.g.find((t=>"undefined"!=typeof WebGLTexture&&t instanceof WebGLTexture));default:throw Error(`Type is not supported: ${e}`)}}function qa(t){var e=Ya(t,0);if(!e){e=Ja(t);const n=Za(t),r=new Uint8Array(t.width*t.height*4);Ta(n,e,$a(t)),e.readPixels(0,0,t.width,t.height,e.RGBA,e.UNSIGNED_BYTE,r),Aa(n),e=new ImageData(new Uint8ClampedArray(r.buffer),t.width,t.height),t.g.push(e)}return e}function $a(t){let e=Ya(t,2);if(!e){const n=Ja(t);e=Qa(t);const r=Ya(t,1)||qa(t);n.texImage2D(n.TEXTURE_2D,0,n.RGBA,n.RGBA,n.UNSIGNED_BYTE,r),tc(t)}return e}function Ja(t){if(!t.canvas)throw Error("Conversion to different image formats require that a canvas is passed when initializing the image.");return t.h||(t.h=ga(t.canvas.getContext("webgl2"),"You cannot use a canvas that is already bound to a different type of rendering context.")),t.h}function Za(t){return t.l||(t.l=new ba),t.l}function Qa(t){const e=Ja(t);e.viewport(0,0,t.width,t.height),e.activeTexture(e.TEXTURE0);let n=Ya(t,2);return n||(n=wa(Za(t),e),t.g.push(n),t.m=!0),e.bindTexture(e.TEXTURE_2D,n),n}function tc(t){t.h.bindTexture(t.h.TEXTURE_2D,null)}function ec(t){const e=Ja(t);return Ea(Za(t),e,!0,(()=>function(t,e){const n=t.canvas;if(n.width===t.width&&n.height===t.height)return e();const r=n.width,i=n.height;return n.width=t.width,n.height=t.height,t=e(),n.width=r,n.height=i,t}(t,(()=>{if(e.bindFramebuffer(e.FRAMEBUFFER,null),e.clearColor(0,0,0,0),e.clear(e.COLOR_BUFFER_BIT),e.drawArrays(e.TRIANGLE_FAN,0,4),!(t.canvas instanceof OffscreenCanvas))throw Error("Conversion to ImageBitmap requires that the MediaPipe Tasks is initialized with an OffscreenCanvas");return t.canvas.transferToImageBitmap()}))))}Ka.prototype.close=Ka.prototype.close,Ka.prototype.drawConfidenceMask=Ka.prototype.wa,Ka.prototype.drawCategoryMask=Ka.prototype.va,Ka.prototype.drawBoundingBox=Ka.prototype.ua,Ka.prototype.drawConnectors=Ka.prototype.xa,Ka.prototype.drawLandmarks=Ka.prototype.ya,Ka.lerp=function(t,e,n,r,i){return ja(r*(1-(t-e)/(n-e))+i*(1-(n-t)/(n-e)),r,i)},Ka.clamp=ja;var nc=class{constructor(t,e,n,r,i,s,o){this.g=t,this.j=e,this.m=n,this.canvas=r,this.l=i,this.width=s,this.height=o,(this.j||this.m)&&(0===--rc&&console.error("You seem to be creating MPImage instances without invoking .close(). This leaks resources."))}Ea(){return!!Ya(this,0)}la(){return!!Ya(this,1)}R(){return!!Ya(this,2)}Ca(){return qa(this)}Ba(){var t=Ya(this,1);return t||($a(this),Qa(this),t=ec(this),tc(this),this.g.push(t),this.j=!0),t}N(){return $a(this)}clone(){const t=[];for(const e of this.g){let n;if(e instanceof ImageData)n=new ImageData(e.data,this.width,this.height);else if(e instanceof WebGLTexture){const t=Ja(this),e=Za(this);t.activeTexture(t.TEXTURE1),n=wa(e,t),t.bindTexture(t.TEXTURE_2D,n),t.texImage2D(t.TEXTURE_2D,0,t.RGBA,this.width,this.height,0,t.RGBA,t.UNSIGNED_BYTE,null),t.bindTexture(t.TEXTURE_2D,null),Ta(e,t,n),Ea(e,t,!1,(()=>{Qa(this),t.clearColor(0,0,0,0),t.clear(t.COLOR_BUFFER_BIT),t.drawArrays(t.TRIANGLE_FAN,0,4),tc(this)})),Aa(e),tc(this)}else{if(!(e instanceof ImageBitmap))throw Error(`Type is not supported: ${e}`);$a(this),Qa(this),n=ec(this),tc(this)}t.push(n)}return new nc(t,this.la(),this.R(),this.canvas,this.l,this.width,this.height)}close(){this.j&&Ya(this,1).close(),this.m&&Ja(this).deleteTexture(Ya(this,2)),rc=-1}};nc.prototype.close=nc.prototype.close,nc.prototype.clone=nc.prototype.clone,nc.prototype.getAsWebGLTexture=nc.prototype.N,nc.prototype.getAsImageBitmap=nc.prototype.Ba,nc.prototype.getAsImageData=nc.prototype.Ca,nc.prototype.hasWebGLTexture=nc.prototype.R,nc.prototype.hasImageBitmap=nc.prototype.la,nc.prototype.hasImageData=nc.prototype.Ea;var rc=250;function ic(...t){return t.map((([t,e])=>({start:t,end:e})))}const sc=function(t){return class extends t{Ja(){this.i._registerModelResourcesGraphService()}}}((oc=class{constructor(t,e){this.l=!0,this.i=t,this.g=null,this.h=0,this.m="function"==typeof this.i._addIntToInputStream,void 0!==e?this.i.canvas=e:Qo()?this.i.canvas=new OffscreenCanvas(1,1):(console.warn("OffscreenCanvas not supported and GraphRunner constructor glCanvas parameter is undefined. Creating backup canvas."),this.i.canvas=document.createElement("canvas"))}async initializeGraph(t){const e=await(await fetch(t)).arrayBuffer();t=!(t.endsWith(".pbtxt")||t.endsWith(".textproto")),this.setGraph(new Uint8Array(e),t)}setGraphFromString(t){this.setGraph((new TextEncoder).encode(t),!1)}setGraph(t,e){const n=t.length,r=this.i._malloc(n);this.i.HEAPU8.set(t,r),e?this.i._changeBinaryGraph(n,r):this.i._changeTextGraph(n,r),this.i._free(r)}configureAudio(t,e,n,r,i){this.i._configureAudio||console.warn('Attempting to use configureAudio without support for input audio. Is build dep ":gl_graph_runner_audio" missing?'),na(this,r||"input_audio",(r=>{na(this,i=i||"audio_header",(i=>{this.i._configureAudio(r,i,t,e??0,n)}))}))}setAutoResizeCanvas(t){this.l=t}setAutoRenderToScreen(t){this.i._setAutoRenderToScreen(t)}setGpuBufferVerticalFlip(t){this.i.gpuOriginForWebTexturesIsBottomLeft=t}ca(t){sa(this,"__graph_config__",(e=>{t(e)})),na(this,"__graph_config__",(t=>{this.i._getGraphConfig(t,void 0)})),delete this.i.simpleListeners.__graph_config__}attachErrorListener(t){this.i.errorListener=t}attachEmptyPacketListener(t,e){this.i.emptyPacketListeners=this.i.emptyPacketListeners||{},this.i.emptyPacketListeners[t]=e}addAudioToStream(t,e,n){this.addAudioToStreamWithShape(t,0,0,e,n)}addAudioToStreamWithShape(t,e,n,r,i){const s=4*t.length;this.h!==s&&(this.g&&this.i._free(this.g),this.g=this.i._malloc(s),this.h=s),this.i.HEAPF32.set(t,this.g/4),na(this,r,(t=>{this.i._addAudioToInputStream(this.g,e,n,t,i)}))}addGpuBufferToStream(t,e,n){na(this,e,(e=>{const[r,i]=ra(this,t,e);this.i._addBoundTextureToStream(e,r,i,n)}))}addBoolToStream(t,e,n){na(this,e,(e=>{this.i._addBoolToInputStream(t,e,n)}))}addDoubleToStream(t,e,n){na(this,e,(e=>{this.i._addDoubleToInputStream(t,e,n)}))}addFloatToStream(t,e,n){na(this,e,(e=>{this.i._addFloatToInputStream(t,e,n)}))}addIntToStream(t,e,n){na(this,e,(e=>{this.i._addIntToInputStream(t,e,n)}))}addUintToStream(t,e,n){na(this,e,(e=>{this.i._addUintToInputStream(t,e,n)}))}addStringToStream(t,e,n){na(this,e,(e=>{na(this,t,(t=>{this.i._addStringToInputStream(t,e,n)}))}))}addStringRecordToStream(t,e,n){na(this,e,(e=>{ia(this,Object.keys(t),(r=>{ia(this,Object.values(t),(i=>{this.i._addFlatHashMapToInputStream(r,i,Object.keys(t).length,e,n)}))}))}))}addProtoToStream(t,e,n,r){na(this,n,(n=>{na(this,e,(e=>{const i=this.i._malloc(t.length);this.i.HEAPU8.set(t,i),this.i._addProtoToInputStream(i,t.length,e,n,r),this.i._free(i)}))}))}addEmptyPacketToStream(t,e){na(this,t,(t=>{this.i._addEmptyPacketToInputStream(t,e)}))}addBoolVectorToStream(t,e,n){na(this,e,(e=>{const r=this.i._allocateBoolVector(t.length);if(!r)throw Error("Unable to allocate new bool vector on heap.");for(const e of t)this.i._addBoolVectorEntry(r,e);this.i._addBoolVectorToInputStream(r,e,n)}))}addDoubleVectorToStream(t,e,n){na(this,e,(e=>{const r=this.i._allocateDoubleVector(t.length);if(!r)throw Error("Unable to allocate new double vector on heap.");for(const e of t)this.i._addDoubleVectorEntry(r,e);this.i._addDoubleVectorToInputStream(r,e,n)}))}addFloatVectorToStream(t,e,n){na(this,e,(e=>{const r=this.i._allocateFloatVector(t.length);if(!r)throw Error("Unable to allocate new float vector on heap.");for(const e of t)this.i._addFloatVectorEntry(r,e);this.i._addFloatVectorToInputStream(r,e,n)}))}addIntVectorToStream(t,e,n){na(this,e,(e=>{const r=this.i._allocateIntVector(t.length);if(!r)throw Error("Unable to allocate new int vector on heap.");for(const e of t)this.i._addIntVectorEntry(r,e);this.i._addIntVectorToInputStream(r,e,n)}))}addUintVectorToStream(t,e,n){na(this,e,(e=>{const r=this.i._allocateUintVector(t.length);if(!r)throw Error("Unable to allocate new unsigned int vector on heap.");for(const e of t)this.i._addUintVectorEntry(r,e);this.i._addUintVectorToInputStream(r,e,n)}))}addStringVectorToStream(t,e,n){na(this,e,(e=>{const r=this.i._allocateStringVector(t.length);if(!r)throw Error("Unable to allocate new string vector on heap.");for(const e of t)na(this,e,(t=>{this.i._addStringVectorEntry(r,t)}));this.i._addStringVectorToInputStream(r,e,n)}))}addBoolToInputSidePacket(t,e){na(this,e,(e=>{this.i._addBoolToInputSidePacket(t,e)}))}addDoubleToInputSidePacket(t,e){na(this,e,(e=>{this.i._addDoubleToInputSidePacket(t,e)}))}addFloatToInputSidePacket(t,e){na(this,e,(e=>{this.i._addFloatToInputSidePacket(t,e)}))}addIntToInputSidePacket(t,e){na(this,e,(e=>{this.i._addIntToInputSidePacket(t,e)}))}addUintToInputSidePacket(t,e){na(this,e,(e=>{this.i._addUintToInputSidePacket(t,e)}))}addStringToInputSidePacket(t,e){na(this,e,(e=>{na(this,t,(t=>{this.i._addStringToInputSidePacket(t,e)}))}))}addProtoToInputSidePacket(t,e,n){na(this,n,(n=>{na(this,e,(e=>{const r=this.i._malloc(t.length);this.i.HEAPU8.set(t,r),this.i._addProtoToInputSidePacket(r,t.length,e,n),this.i._free(r)}))}))}addBoolVectorToInputSidePacket(t,e){na(this,e,(e=>{const n=this.i._allocateBoolVector(t.length);if(!n)throw Error("Unable to allocate new bool vector on heap.");for(const e of t)this.i._addBoolVectorEntry(n,e);this.i._addBoolVectorToInputSidePacket(n,e)}))}addDoubleVectorToInputSidePacket(t,e){na(this,e,(e=>{const n=this.i._allocateDoubleVector(t.length);if(!n)throw Error("Unable to allocate new double vector on heap.");for(const e of t)this.i._addDoubleVectorEntry(n,e);this.i._addDoubleVectorToInputSidePacket(n,e)}))}addFloatVectorToInputSidePacket(t,e){na(this,e,(e=>{const n=this.i._allocateFloatVector(t.length);if(!n)throw Error("Unable to allocate new float vector on heap.");for(const e of t)this.i._addFloatVectorEntry(n,e);this.i._addFloatVectorToInputSidePacket(n,e)}))}addIntVectorToInputSidePacket(t,e){na(this,e,(e=>{const n=this.i._allocateIntVector(t.length);if(!n)throw Error("Unable to allocate new int vector on heap.");for(const e of t)this.i._addIntVectorEntry(n,e);this.i._addIntVectorToInputSidePacket(n,e)}))}addUintVectorToInputSidePacket(t,e){na(this,e,(e=>{const n=this.i._allocateUintVector(t.length);if(!n)throw Error("Unable to allocate new unsigned int vector on heap.");for(const e of t)this.i._addUintVectorEntry(n,e);this.i._addUintVectorToInputSidePacket(n,e)}))}addStringVectorToInputSidePacket(t,e){na(this,e,(e=>{const n=this.i._allocateStringVector(t.length);if(!n)throw Error("Unable to allocate new string vector on heap.");for(const e of t)na(this,e,(t=>{this.i._addStringVectorEntry(n,t)}));this.i._addStringVectorToInputSidePacket(n,e)}))}attachBoolListener(t,e){sa(this,t,e),na(this,t,(t=>{this.i._attachBoolListener(t)}))}attachBoolVectorListener(t,e){oa(this,t,e),na(this,t,(t=>{this.i._attachBoolVectorListener(t)}))}attachIntListener(t,e){sa(this,t,e),na(this,t,(t=>{this.i._attachIntListener(t)}))}attachIntVectorListener(t,e){oa(this,t,e),na(this,t,(t=>{this.i._attachIntVectorListener(t)}))}attachUintListener(t,e){sa(this,t,e),na(this,t,(t=>{this.i._attachUintListener(t)}))}attachUintVectorListener(t,e){oa(this,t,e),na(this,t,(t=>{this.i._attachUintVectorListener(t)}))}attachDoubleListener(t,e){sa(this,t,e),na(this,t,(t=>{this.i._attachDoubleListener(t)}))}attachDoubleVectorListener(t,e){oa(this,t,e),na(this,t,(t=>{this.i._attachDoubleVectorListener(t)}))}attachFloatListener(t,e){sa(this,t,e),na(this,t,(t=>{this.i._attachFloatListener(t)}))}attachFloatVectorListener(t,e){oa(this,t,e),na(this,t,(t=>{this.i._attachFloatVectorListener(t)}))}attachStringListener(t,e){sa(this,t,e),na(this,t,(t=>{this.i._attachStringListener(t)}))}attachStringVectorListener(t,e){oa(this,t,e),na(this,t,(t=>{this.i._attachStringVectorListener(t)}))}attachProtoListener(t,e,n){sa(this,t,e),na(this,t,(t=>{this.i._attachProtoListener(t,n||!1)}))}attachProtoVectorListener(t,e,n){oa(this,t,e),na(this,t,(t=>{this.i._attachProtoVectorListener(t,n||!1)}))}attachAudioListener(t,e,n){this.i._attachAudioListener||console.warn('Attempting to use attachAudioListener without support for output audio. Is build dep ":gl_graph_runner_audio_out" missing?'),sa(this,t,((t,n)=>{t=new Float32Array(t.buffer,t.byteOffset,t.length/4),e(t,n)})),na(this,t,(t=>{this.i._attachAudioListener(t,n||!1)}))}finishProcessing(){this.i._waitUntilIdle()}closeGraph(){this.i._closeGraph(),this.i.simpleListeners=void 0,this.i.emptyPacketListeners=void 0}},class extends oc{get ga(){return this.i}pa(t,e,n){na(this,e,(e=>{const[r,i]=ra(this,t,e);this.ga._addBoundTextureAsImageToStream(e,r,i,n)}))}Z(t,e){sa(this,t,e),na(this,t,(t=>{this.ga._attachImageListener(t)}))}aa(t,e){oa(this,t,e),na(this,t,(t=>{this.ga._attachImageVectorListener(t)}))}}));var oc,ac=class extends sc{};async function cc(t,e,n){return async function(t,e,n,r){return aa(t,e,n,r)}(t,n.canvas??(Qo()?void 0:document.createElement("canvas")),e,n)}function hc(t,e,n,r){if(t.U){const s=new Ls;if(n?.regionOfInterest){if(!t.oa)throw Error("This task doesn't support region-of-interest.");var i=n.regionOfInterest;if(i.left>=i.right||i.top>=i.bottom)throw Error("Expected RectF with left < right and top < bottom.");if(i.left<0||i.top<0||i.right>1||i.bottom>1)throw Error("Expected RectF values to be in [0,1].");Ln(s,1,(i.left+i.right)/2),Ln(s,2,(i.top+i.bottom)/2),Ln(s,4,i.right-i.left),Ln(s,3,i.bottom-i.top)}else Ln(s,1,.5),Ln(s,2,.5),Ln(s,4,1),Ln(s,3,1);if(n?.rotationDegrees){if(n?.rotationDegrees%90!=0)throw Error("Expected rotation to be a multiple of 90°.");if(Ln(s,5,-Math.PI*n.rotationDegrees/180),n?.rotationDegrees%180!=0){const[t,r]=ea(e);n=xn(s,3)*r/t,i=xn(s,4)*t/r,Ln(s,4,n),Ln(s,3,i)}}t.g.addProtoToStream(s.g(),"mediapipe.NormalizedRect",t.U,r)}t.g.pa(e,t.X,r??performance.now()),t.finishProcessing()}function uc(t,e,n){if(t.baseOptions?.g())throw Error("Task is not initialized with image mode. 'runningMode' must be set to 'IMAGE'.");hc(t,e,n,t.C+1)}function lc(t,e,n,r){if(!t.baseOptions?.g())throw Error("Task is not initialized with video mode. 'runningMode' must be set to 'VIDEO'.");hc(t,e,n,r)}function fc(t,e,n,r){var i=e.data;const s=e.width,o=s*(e=e.height);if((i instanceof Uint8Array||i instanceof Float32Array)&&i.length!==o)throw Error("Unsupported channel count: "+i.length/o);return t=new Na([i],n,!1,t.g.i.canvas,t.P,s,e),r?t.clone():t}var dc=class extends pa{constructor(t,e,n,r){super(t),this.g=t,this.X=e,this.U=n,this.oa=r,this.P=new ba}l(t,e=!0){if("runningMode"in t&&Ze(this.baseOptions,2,Jt(!!t.runningMode&&"IMAGE"!==t.runningMode)),void 0!==t.canvas&&this.g.i.canvas!==t.canvas)throw Error("You must create a new task to reset the canvas.");return super.l(t,e)}close(){this.P.close(),super.close()}};dc.prototype.close=dc.prototype.close;var pc=class extends dc{constructor(t,e){super(new ac(t,e),"image_in","norm_rect_in",!1),this.j={detections:[]},wn(t=this.h=new zs,0,1,e=new Xs),Ln(this.h,2,.5),Ln(this.h,3,.3)}get baseOptions(){return yn(this.h,Xs,1)}set baseOptions(t){wn(this.h,0,1,t)}o(t){return"minDetectionConfidence"in t&&Ln(this.h,2,t.minDetectionConfidence??.5),"minSuppressionThreshold"in t&&Ln(this.h,3,t.minSuppressionThreshold??.3),this.l(t)}F(t,e){return this.j={detections:[]},uc(this,t,e),this.j}G(t,e,n){return this.j={detections:[]},lc(this,t,n,e),this.j}m(){var t=new ls;hs(t,"image_in"),hs(t,"norm_rect_in"),us(t,"detections");const e=new Qi;Sr(e,Ys,this.h);const n=new is;Rn(n,2,"mediapipe.tasks.vision.face_detector.FaceDetectorGraph"),ns(n,"IMAGE:image_in"),ns(n,"NORM_RECT:norm_rect_in"),rs(n,"DETECTIONS:detections"),n.o(e),cs(t,n),this.g.attachProtoVectorListener("detections",((t,e)=>{for(const e of t)t=ws(e),this.j.detections.push(Xo(t));ua(this,e)})),this.g.attachEmptyPacketListener("detections",(t=>{ua(this,t)})),t=t.g(),this.setGraph(new Uint8Array(t),!0)}};pc.prototype.detectForVideo=pc.prototype.G,pc.prototype.detect=pc.prototype.F,pc.prototype.setOptions=pc.prototype.o,pc.createFromModelPath=async function(t,e){return cc(pc,t,{baseOptions:{modelAssetPath:e}})},pc.createFromModelBuffer=function(t,e){return cc(pc,t,{baseOptions:{modelAssetBuffer:e}})},pc.createFromOptions=function(t,e){return cc(pc,t,e)};var gc=ic([61,146],[146,91],[91,181],[181,84],[84,17],[17,314],[314,405],[405,321],[321,375],[375,291],[61,185],[185,40],[40,39],[39,37],[37,0],[0,267],[267,269],[269,270],[270,409],[409,291],[78,95],[95,88],[88,178],[178,87],[87,14],[14,317],[317,402],[402,318],[318,324],[324,308],[78,191],[191,80],[80,81],[81,82],[82,13],[13,312],[312,311],[311,310],[310,415],[415,308]),mc=ic([263,249],[249,390],[390,373],[373,374],[374,380],[380,381],[381,382],[382,362],[263,466],[466,388],[388,387],[387,386],[386,385],[385,384],[384,398],[398,362]),yc=ic([276,283],[283,282],[282,295],[295,285],[300,293],[293,334],[334,296],[296,336]),_c=ic([474,475],[475,476],[476,477],[477,474]),vc=ic([33,7],[7,163],[163,144],[144,145],[145,153],[153,154],[154,155],[155,133],[33,246],[246,161],[161,160],[160,159],[159,158],[158,157],[157,173],[173,133]),Ec=ic([46,53],[53,52],[52,65],[65,55],[70,63],[63,105],[105,66],[66,107]),wc=ic([469,470],[470,471],[471,472],[472,469]),Tc=ic([10,338],[338,297],[297,332],[332,284],[284,251],[251,389],[389,356],[356,454],[454,323],[323,361],[361,288],[288,397],[397,365],[365,379],[379,378],[378,400],[400,377],[377,152],[152,148],[148,176],[176,149],[149,150],[150,136],[136,172],[172,58],[58,132],[132,93],[93,234],[234,127],[127,162],[162,21],[21,54],[54,103],[103,67],[67,109],[109,10]),Ac=[...gc,...mc,...yc,...vc,...Ec,...Tc],bc=ic([127,34],[34,139],[139,127],[11,0],[0,37],[37,11],[232,231],[231,120],[120,232],[72,37],[37,39],[39,72],[128,121],[121,47],[47,128],[232,121],[121,128],[128,232],[104,69],[69,67],[67,104],[175,171],[171,148],[148,175],[118,50],[50,101],[101,118],[73,39],[39,40],[40,73],[9,151],[151,108],[108,9],[48,115],[115,131],[131,48],[194,204],[204,211],[211,194],[74,40],[40,185],[185,74],[80,42],[42,183],[183,80],[40,92],[92,186],[186,40],[230,229],[229,118],[118,230],[202,212],[212,214],[214,202],[83,18],[18,17],[17,83],[76,61],[61,146],[146,76],[160,29],[29,30],[30,160],[56,157],[157,173],[173,56],[106,204],[204,194],[194,106],[135,214],[214,192],[192,135],[203,165],[165,98],[98,203],[21,71],[71,68],[68,21],[51,45],[45,4],[4,51],[144,24],[24,23],[23,144],[77,146],[146,91],[91,77],[205,50],[50,187],[187,205],[201,200],[200,18],[18,201],[91,106],[106,182],[182,91],[90,91],[91,181],[181,90],[85,84],[84,17],[17,85],[206,203],[203,36],[36,206],[148,171],[171,140],[140,148],[92,40],[40,39],[39,92],[193,189],[189,244],[244,193],[159,158],[158,28],[28,159],[247,246],[246,161],[161,247],[236,3],[3,196],[196,236],[54,68],[68,104],[104,54],[193,168],[168,8],[8,193],[117,228],[228,31],[31,117],[189,193],[193,55],[55,189],[98,97],[97,99],[99,98],[126,47],[47,100],[100,126],[166,79],[79,218],[218,166],[155,154],[154,26],[26,155],[209,49],[49,131],[131,209],[135,136],[136,150],[150,135],[47,126],[126,217],[217,47],[223,52],[52,53],[53,223],[45,51],[51,134],[134,45],[211,170],[170,140],[140,211],[67,69],[69,108],[108,67],[43,106],[106,91],[91,43],[230,119],[119,120],[120,230],[226,130],[130,247],[247,226],[63,53],[53,52],[52,63],[238,20],[20,242],[242,238],[46,70],[70,156],[156,46],[78,62],[62,96],[96,78],[46,53],[53,63],[63,46],[143,34],[34,227],[227,143],[123,117],[117,111],[111,123],[44,125],[125,19],[19,44],[236,134],[134,51],[51,236],[216,206],[206,205],[205,216],[154,153],[153,22],[22,154],[39,37],[37,167],[167,39],[200,201],[201,208],[208,200],[36,142],[142,100],[100,36],[57,212],[212,202],[202,57],[20,60],[60,99],[99,20],[28,158],[158,157],[157,28],[35,226],[226,113],[113,35],[160,159],[159,27],[27,160],[204,202],[202,210],[210,204],[113,225],[225,46],[46,113],[43,202],[202,204],[204,43],[62,76],[76,77],[77,62],[137,123],[123,116],[116,137],[41,38],[38,72],[72,41],[203,129],[129,142],[142,203],[64,98],[98,240],[240,64],[49,102],[102,64],[64,49],[41,73],[73,74],[74,41],[212,216],[216,207],[207,212],[42,74],[74,184],[184,42],[169,170],[170,211],[211,169],[170,149],[149,176],[176,170],[105,66],[66,69],[69,105],[122,6],[6,168],[168,122],[123,147],[147,187],[187,123],[96,77],[77,90],[90,96],[65,55],[55,107],[107,65],[89,90],[90,180],[180,89],[101,100],[100,120],[120,101],[63,105],[105,104],[104,63],[93,137],[137,227],[227,93],[15,86],[86,85],[85,15],[129,102],[102,49],[49,129],[14,87],[87,86],[86,14],[55,8],[8,9],[9,55],[100,47],[47,121],[121,100],[145,23],[23,22],[22,145],[88,89],[89,179],[179,88],[6,122],[122,196],[196,6],[88,95],[95,96],[96,88],[138,172],[172,136],[136,138],[215,58],[58,172],[172,215],[115,48],[48,219],[219,115],[42,80],[80,81],[81,42],[195,3],[3,51],[51,195],[43,146],[146,61],[61,43],[171,175],[175,199],[199,171],[81,82],[82,38],[38,81],[53,46],[46,225],[225,53],[144,163],[163,110],[110,144],[52,65],[65,66],[66,52],[229,228],[228,117],[117,229],[34,127],[127,234],[234,34],[107,108],[108,69],[69,107],[109,108],[108,151],[151,109],[48,64],[64,235],[235,48],[62,78],[78,191],[191,62],[129,209],[209,126],[126,129],[111,35],[35,143],[143,111],[117,123],[123,50],[50,117],[222,65],[65,52],[52,222],[19,125],[125,141],[141,19],[221,55],[55,65],[65,221],[3,195],[195,197],[197,3],[25,7],[7,33],[33,25],[220,237],[237,44],[44,220],[70,71],[71,139],[139,70],[122,193],[193,245],[245,122],[247,130],[130,33],[33,247],[71,21],[21,162],[162,71],[170,169],[169,150],[150,170],[188,174],[174,196],[196,188],[216,186],[186,92],[92,216],[2,97],[97,167],[167,2],[141,125],[125,241],[241,141],[164,167],[167,37],[37,164],[72,38],[38,12],[12,72],[38,82],[82,13],[13,38],[63,68],[68,71],[71,63],[226,35],[35,111],[111,226],[101,50],[50,205],[205,101],[206,92],[92,165],[165,206],[209,198],[198,217],[217,209],[165,167],[167,97],[97,165],[220,115],[115,218],[218,220],[133,112],[112,243],[243,133],[239,238],[238,241],[241,239],[214,135],[135,169],[169,214],[190,173],[173,133],[133,190],[171,208],[208,32],[32,171],[125,44],[44,237],[237,125],[86,87],[87,178],[178,86],[85,86],[86,179],[179,85],[84,85],[85,180],[180,84],[83,84],[84,181],[181,83],[201,83],[83,182],[182,201],[137,93],[93,132],[132,137],[76,62],[62,183],[183,76],[61,76],[76,184],[184,61],[57,61],[61,185],[185,57],[212,57],[57,186],[186,212],[214,207],[207,187],[187,214],[34,143],[143,156],[156,34],[79,239],[239,237],[237,79],[123,137],[137,177],[177,123],[44,1],[1,4],[4,44],[201,194],[194,32],[32,201],[64,102],[102,129],[129,64],[213,215],[215,138],[138,213],[59,166],[166,219],[219,59],[242,99],[99,97],[97,242],[2,94],[94,141],[141,2],[75,59],[59,235],[235,75],[24,110],[110,228],[228,24],[25,130],[130,226],[226,25],[23,24],[24,229],[229,23],[22,23],[23,230],[230,22],[26,22],[22,231],[231,26],[112,26],[26,232],[232,112],[189,190],[190,243],[243,189],[221,56],[56,190],[190,221],[28,56],[56,221],[221,28],[27,28],[28,222],[222,27],[29,27],[27,223],[223,29],[30,29],[29,224],[224,30],[247,30],[30,225],[225,247],[238,79],[79,20],[20,238],[166,59],[59,75],[75,166],[60,75],[75,240],[240,60],[147,177],[177,215],[215,147],[20,79],[79,166],[166,20],[187,147],[147,213],[213,187],[112,233],[233,244],[244,112],[233,128],[128,245],[245,233],[128,114],[114,188],[188,128],[114,217],[217,174],[174,114],[131,115],[115,220],[220,131],[217,198],[198,236],[236,217],[198,131],[131,134],[134,198],[177,132],[132,58],[58,177],[143,35],[35,124],[124,143],[110,163],[163,7],[7,110],[228,110],[110,25],[25,228],[356,389],[389,368],[368,356],[11,302],[302,267],[267,11],[452,350],[350,349],[349,452],[302,303],[303,269],[269,302],[357,343],[343,277],[277,357],[452,453],[453,357],[357,452],[333,332],[332,297],[297,333],[175,152],[152,377],[377,175],[347,348],[348,330],[330,347],[303,304],[304,270],[270,303],[9,336],[336,337],[337,9],[278,279],[279,360],[360,278],[418,262],[262,431],[431,418],[304,408],[408,409],[409,304],[310,415],[415,407],[407,310],[270,409],[409,410],[410,270],[450,348],[348,347],[347,450],[422,430],[430,434],[434,422],[313,314],[314,17],[17,313],[306,307],[307,375],[375,306],[387,388],[388,260],[260,387],[286,414],[414,398],[398,286],[335,406],[406,418],[418,335],[364,367],[367,416],[416,364],[423,358],[358,327],[327,423],[251,284],[284,298],[298,251],[281,5],[5,4],[4,281],[373,374],[374,253],[253,373],[307,320],[320,321],[321,307],[425,427],[427,411],[411,425],[421,313],[313,18],[18,421],[321,405],[405,406],[406,321],[320,404],[404,405],[405,320],[315,16],[16,17],[17,315],[426,425],[425,266],[266,426],[377,400],[400,369],[369,377],[322,391],[391,269],[269,322],[417,465],[465,464],[464,417],[386,257],[257,258],[258,386],[466,260],[260,388],[388,466],[456,399],[399,419],[419,456],[284,332],[332,333],[333,284],[417,285],[285,8],[8,417],[346,340],[340,261],[261,346],[413,441],[441,285],[285,413],[327,460],[460,328],[328,327],[355,371],[371,329],[329,355],[392,439],[439,438],[438,392],[382,341],[341,256],[256,382],[429,420],[420,360],[360,429],[364,394],[394,379],[379,364],[277,343],[343,437],[437,277],[443,444],[444,283],[283,443],[275,440],[440,363],[363,275],[431,262],[262,369],[369,431],[297,338],[338,337],[337,297],[273,375],[375,321],[321,273],[450,451],[451,349],[349,450],[446,342],[342,467],[467,446],[293,334],[334,282],[282,293],[458,461],[461,462],[462,458],[276,353],[353,383],[383,276],[308,324],[324,325],[325,308],[276,300],[300,293],[293,276],[372,345],[345,447],[447,372],[352,345],[345,340],[340,352],[274,1],[1,19],[19,274],[456,248],[248,281],[281,456],[436,427],[427,425],[425,436],[381,256],[256,252],[252,381],[269,391],[391,393],[393,269],[200,199],[199,428],[428,200],[266,330],[330,329],[329,266],[287,273],[273,422],[422,287],[250,462],[462,328],[328,250],[258,286],[286,384],[384,258],[265,353],[353,342],[342,265],[387,259],[259,257],[257,387],[424,431],[431,430],[430,424],[342,353],[353,276],[276,342],[273,335],[335,424],[424,273],[292,325],[325,307],[307,292],[366,447],[447,345],[345,366],[271,303],[303,302],[302,271],[423,266],[266,371],[371,423],[294,455],[455,460],[460,294],[279,278],[278,294],[294,279],[271,272],[272,304],[304,271],[432,434],[434,427],[427,432],[272,407],[407,408],[408,272],[394,430],[430,431],[431,394],[395,369],[369,400],[400,395],[334,333],[333,299],[299,334],[351,417],[417,168],[168,351],[352,280],[280,411],[411,352],[325,319],[319,320],[320,325],[295,296],[296,336],[336,295],[319,403],[403,404],[404,319],[330,348],[348,349],[349,330],[293,298],[298,333],[333,293],[323,454],[454,447],[447,323],[15,16],[16,315],[315,15],[358,429],[429,279],[279,358],[14,15],[15,316],[316,14],[285,336],[336,9],[9,285],[329,349],[349,350],[350,329],[374,380],[380,252],[252,374],[318,402],[402,403],[403,318],[6,197],[197,419],[419,6],[318,319],[319,325],[325,318],[367,364],[364,365],[365,367],[435,367],[367,397],[397,435],[344,438],[438,439],[439,344],[272,271],[271,311],[311,272],[195,5],[5,281],[281,195],[273,287],[287,291],[291,273],[396,428],[428,199],[199,396],[311,271],[271,268],[268,311],[283,444],[444,445],[445,283],[373,254],[254,339],[339,373],[282,334],[334,296],[296,282],[449,347],[347,346],[346,449],[264,447],[447,454],[454,264],[336,296],[296,299],[299,336],[338,10],[10,151],[151,338],[278,439],[439,455],[455,278],[292,407],[407,415],[415,292],[358,371],[371,355],[355,358],[340,345],[345,372],[372,340],[346,347],[347,280],[280,346],[442,443],[443,282],[282,442],[19,94],[94,370],[370,19],[441,442],[442,295],[295,441],[248,419],[419,197],[197,248],[263,255],[255,359],[359,263],[440,275],[275,274],[274,440],[300,383],[383,368],[368,300],[351,412],[412,465],[465,351],[263,467],[467,466],[466,263],[301,368],[368,389],[389,301],[395,378],[378,379],[379,395],[412,351],[351,419],[419,412],[436,426],[426,322],[322,436],[2,164],[164,393],[393,2],[370,462],[462,461],[461,370],[164,0],[0,267],[267,164],[302,11],[11,12],[12,302],[268,12],[12,13],[13,268],[293,300],[300,301],[301,293],[446,261],[261,340],[340,446],[330,266],[266,425],[425,330],[426,423],[423,391],[391,426],[429,355],[355,437],[437,429],[391,327],[327,326],[326,391],[440,457],[457,438],[438,440],[341,382],[382,362],[362,341],[459,457],[457,461],[461,459],[434,430],[430,394],[394,434],[414,463],[463,362],[362,414],[396,369],[369,262],[262,396],[354,461],[461,457],[457,354],[316,403],[403,402],[402,316],[315,404],[404,403],[403,315],[314,405],[405,404],[404,314],[313,406],[406,405],[405,313],[421,418],[418,406],[406,421],[366,401],[401,361],[361,366],[306,408],[408,407],[407,306],[291,409],[409,408],[408,291],[287,410],[410,409],[409,287],[432,436],[436,410],[410,432],[434,416],[416,411],[411,434],[264,368],[368,383],[383,264],[309,438],[438,457],[457,309],[352,376],[376,401],[401,352],[274,275],[275,4],[4,274],[421,428],[428,262],[262,421],[294,327],[327,358],[358,294],[433,416],[416,367],[367,433],[289,455],[455,439],[439,289],[462,370],[370,326],[326,462],[2,326],[326,370],[370,2],[305,460],[460,455],[455,305],[254,449],[449,448],[448,254],[255,261],[261,446],[446,255],[253,450],[450,449],[449,253],[252,451],[451,450],[450,252],[256,452],[452,451],[451,256],[341,453],[453,452],[452,341],[413,464],[464,463],[463,413],[441,413],[413,414],[414,441],[258,442],[442,441],[441,258],[257,443],[443,442],[442,257],[259,444],[444,443],[443,259],[260,445],[445,444],[444,260],[467,342],[342,445],[445,467],[459,458],[458,250],[250,459],[289,392],[392,290],[290,289],[290,328],[328,460],[460,290],[376,433],[433,435],[435,376],[250,290],[290,392],[392,250],[411,416],[416,433],[433,411],[341,463],[463,464],[464,341],[453,464],[464,465],[465,453],[357,465],[465,412],[412,357],[343,412],[412,399],[399,343],[360,363],[363,440],[440,360],[437,399],[399,456],[456,437],[420,456],[456,363],[363,420],[401,435],[435,288],[288,401],[372,383],[383,353],[353,372],[339,255],[255,249],[249,339],[448,261],[261,255],[255,448],[133,243],[243,190],[190,133],[133,155],[155,112],[112,133],[33,246],[246,247],[247,33],[33,130],[130,25],[25,33],[398,384],[384,286],[286,398],[362,398],[398,414],[414,362],[362,463],[463,341],[341,362],[263,359],[359,467],[467,263],[263,249],[249,255],[255,263],[466,467],[467,260],[260,466],[75,60],[60,166],[166,75],[238,239],[239,79],[79,238],[162,127],[127,139],[139,162],[72,11],[11,37],[37,72],[121,232],[232,120],[120,121],[73,72],[72,39],[39,73],[114,128],[128,47],[47,114],[233,232],[232,128],[128,233],[103,104],[104,67],[67,103],[152,175],[175,148],[148,152],[119,118],[118,101],[101,119],[74,73],[73,40],[40,74],[107,9],[9,108],[108,107],[49,48],[48,131],[131,49],[32,194],[194,211],[211,32],[184,74],[74,185],[185,184],[191,80],[80,183],[183,191],[185,40],[40,186],[186,185],[119,230],[230,118],[118,119],[210,202],[202,214],[214,210],[84,83],[83,17],[17,84],[77,76],[76,146],[146,77],[161,160],[160,30],[30,161],[190,56],[56,173],[173,190],[182,106],[106,194],[194,182],[138,135],[135,192],[192,138],[129,203],[203,98],[98,129],[54,21],[21,68],[68,54],[5,51],[51,4],[4,5],[145,144],[144,23],[23,145],[90,77],[77,91],[91,90],[207,205],[205,187],[187,207],[83,201],[201,18],[18,83],[181,91],[91,182],[182,181],[180,90],[90,181],[181,180],[16,85],[85,17],[17,16],[205,206],[206,36],[36,205],[176,148],[148,140],[140,176],[165,92],[92,39],[39,165],[245,193],[193,244],[244,245],[27,159],[159,28],[28,27],[30,247],[247,161],[161,30],[174,236],[236,196],[196,174],[103,54],[54,104],[104,103],[55,193],[193,8],[8,55],[111,117],[117,31],[31,111],[221,189],[189,55],[55,221],[240,98],[98,99],[99,240],[142,126],[126,100],[100,142],[219,166],[166,218],[218,219],[112,155],[155,26],[26,112],[198,209],[209,131],[131,198],[169,135],[135,150],[150,169],[114,47],[47,217],[217,114],[224,223],[223,53],[53,224],[220,45],[45,134],[134,220],[32,211],[211,140],[140,32],[109,67],[67,108],[108,109],[146,43],[43,91],[91,146],[231,230],[230,120],[120,231],[113,226],[226,247],[247,113],[105,63],[63,52],[52,105],[241,238],[238,242],[242,241],[124,46],[46,156],[156,124],[95,78],[78,96],[96,95],[70,46],[46,63],[63,70],[116,143],[143,227],[227,116],[116,123],[123,111],[111,116],[1,44],[44,19],[19,1],[3,236],[236,51],[51,3],[207,216],[216,205],[205,207],[26,154],[154,22],[22,26],[165,39],[39,167],[167,165],[199,200],[200,208],[208,199],[101,36],[36,100],[100,101],[43,57],[57,202],[202,43],[242,20],[20,99],[99,242],[56,28],[28,157],[157,56],[124,35],[35,113],[113,124],[29,160],[160,27],[27,29],[211,204],[204,210],[210,211],[124,113],[113,46],[46,124],[106,43],[43,204],[204,106],[96,62],[62,77],[77,96],[227,137],[137,116],[116,227],[73,41],[41,72],[72,73],[36,203],[203,142],[142,36],[235,64],[64,240],[240,235],[48,49],[49,64],[64,48],[42,41],[41,74],[74,42],[214,212],[212,207],[207,214],[183,42],[42,184],[184,183],[210,169],[169,211],[211,210],[140,170],[170,176],[176,140],[104,105],[105,69],[69,104],[193,122],[122,168],[168,193],[50,123],[123,187],[187,50],[89,96],[96,90],[90,89],[66,65],[65,107],[107,66],[179,89],[89,180],[180,179],[119,101],[101,120],[120,119],[68,63],[63,104],[104,68],[234,93],[93,227],[227,234],[16,15],[15,85],[85,16],[209,129],[129,49],[49,209],[15,14],[14,86],[86,15],[107,55],[55,9],[9,107],[120,100],[100,121],[121,120],[153,145],[145,22],[22,153],[178,88],[88,179],[179,178],[197,6],[6,196],[196,197],[89,88],[88,96],[96,89],[135,138],[138,136],[136,135],[138,215],[215,172],[172,138],[218,115],[115,219],[219,218],[41,42],[42,81],[81,41],[5,195],[195,51],[51,5],[57,43],[43,61],[61,57],[208,171],[171,199],[199,208],[41,81],[81,38],[38,41],[224,53],[53,225],[225,224],[24,144],[144,110],[110,24],[105,52],[52,66],[66,105],[118,229],[229,117],[117,118],[227,34],[34,234],[234,227],[66,107],[107,69],[69,66],[10,109],[109,151],[151,10],[219,48],[48,235],[235,219],[183,62],[62,191],[191,183],[142,129],[129,126],[126,142],[116,111],[111,143],[143,116],[118,117],[117,50],[50,118],[223,222],[222,52],[52,223],[94,19],[19,141],[141,94],[222,221],[221,65],[65,222],[196,3],[3,197],[197,196],[45,220],[220,44],[44,45],[156,70],[70,139],[139,156],[188,122],[122,245],[245,188],[139,71],[71,162],[162,139],[149,170],[170,150],[150,149],[122,188],[188,196],[196,122],[206,216],[216,92],[92,206],[164,2],[2,167],[167,164],[242,141],[141,241],[241,242],[0,164],[164,37],[37,0],[11,72],[72,12],[12,11],[12,38],[38,13],[13,12],[70,63],[63,71],[71,70],[31,226],[226,111],[111,31],[36,101],[101,205],[205,36],[203,206],[206,165],[165,203],[126,209],[209,217],[217,126],[98,165],[165,97],[97,98],[237,220],[220,218],[218,237],[237,239],[239,241],[241,237],[210,214],[214,169],[169,210],[140,171],[171,32],[32,140],[241,125],[125,237],[237,241],[179,86],[86,178],[178,179],[180,85],[85,179],[179,180],[181,84],[84,180],[180,181],[182,83],[83,181],[181,182],[194,201],[201,182],[182,194],[177,137],[137,132],[132,177],[184,76],[76,183],[183,184],[185,61],[61,184],[184,185],[186,57],[57,185],[185,186],[216,212],[212,186],[186,216],[192,214],[214,187],[187,192],[139,34],[34,156],[156,139],[218,79],[79,237],[237,218],[147,123],[123,177],[177,147],[45,44],[44,4],[4,45],[208,201],[201,32],[32,208],[98,64],[64,129],[129,98],[192,213],[213,138],[138,192],[235,59],[59,219],[219,235],[141,242],[242,97],[97,141],[97,2],[2,141],[141,97],[240,75],[75,235],[235,240],[229,24],[24,228],[228,229],[31,25],[25,226],[226,31],[230,23],[23,229],[229,230],[231,22],[22,230],[230,231],[232,26],[26,231],[231,232],[233,112],[112,232],[232,233],[244,189],[189,243],[243,244],[189,221],[221,190],[190,189],[222,28],[28,221],[221,222],[223,27],[27,222],[222,223],[224,29],[29,223],[223,224],[225,30],[30,224],[224,225],[113,247],[247,225],[225,113],[99,60],[60,240],[240,99],[213,147],[147,215],[215,213],[60,20],[20,166],[166,60],[192,187],[187,213],[213,192],[243,112],[112,244],[244,243],[244,233],[233,245],[245,244],[245,128],[128,188],[188,245],[188,114],[114,174],[174,188],[134,131],[131,220],[220,134],[174,217],[217,236],[236,174],[236,198],[198,134],[134,236],[215,177],[177,58],[58,215],[156,143],[143,124],[124,156],[25,110],[110,7],[7,25],[31,228],[228,25],[25,31],[264,356],[356,368],[368,264],[0,11],[11,267],[267,0],[451,452],[452,349],[349,451],[267,302],[302,269],[269,267],[350,357],[357,277],[277,350],[350,452],[452,357],[357,350],[299,333],[333,297],[297,299],[396,175],[175,377],[377,396],[280,347],[347,330],[330,280],[269,303],[303,270],[270,269],[151,9],[9,337],[337,151],[344,278],[278,360],[360,344],[424,418],[418,431],[431,424],[270,304],[304,409],[409,270],[272,310],[310,407],[407,272],[322,270],[270,410],[410,322],[449,450],[450,347],[347,449],[432,422],[422,434],[434,432],[18,313],[313,17],[17,18],[291,306],[306,375],[375,291],[259,387],[387,260],[260,259],[424,335],[335,418],[418,424],[434,364],[364,416],[416,434],[391,423],[423,327],[327,391],[301,251],[251,298],[298,301],[275,281],[281,4],[4,275],[254,373],[373,253],[253,254],[375,307],[307,321],[321,375],[280,425],[425,411],[411,280],[200,421],[421,18],[18,200],[335,321],[321,406],[406,335],[321,320],[320,405],[405,321],[314,315],[315,17],[17,314],[423,426],[426,266],[266,423],[396,377],[377,369],[369,396],[270,322],[322,269],[269,270],[413,417],[417,464],[464,413],[385,386],[386,258],[258,385],[248,456],[456,419],[419,248],[298,284],[284,333],[333,298],[168,417],[417,8],[8,168],[448,346],[346,261],[261,448],[417,413],[413,285],[285,417],[326,327],[327,328],[328,326],[277,355],[355,329],[329,277],[309,392],[392,438],[438,309],[381,382],[382,256],[256,381],[279,429],[429,360],[360,279],[365,364],[364,379],[379,365],[355,277],[277,437],[437,355],[282,443],[443,283],[283,282],[281,275],[275,363],[363,281],[395,431],[431,369],[369,395],[299,297],[297,337],[337,299],[335,273],[273,321],[321,335],[348,450],[450,349],[349,348],[359,446],[446,467],[467,359],[283,293],[293,282],[282,283],[250,458],[458,462],[462,250],[300,276],[276,383],[383,300],[292,308],[308,325],[325,292],[283,276],[276,293],[293,283],[264,372],[372,447],[447,264],[346,352],[352,340],[340,346],[354,274],[274,19],[19,354],[363,456],[456,281],[281,363],[426,436],[436,425],[425,426],[380,381],[381,252],[252,380],[267,269],[269,393],[393,267],[421,200],[200,428],[428,421],[371,266],[266,329],[329,371],[432,287],[287,422],[422,432],[290,250],[250,328],[328,290],[385,258],[258,384],[384,385],[446,265],[265,342],[342,446],[386,387],[387,257],[257,386],[422,424],[424,430],[430,422],[445,342],[342,276],[276,445],[422,273],[273,424],[424,422],[306,292],[292,307],[307,306],[352,366],[366,345],[345,352],[268,271],[271,302],[302,268],[358,423],[423,371],[371,358],[327,294],[294,460],[460,327],[331,279],[279,294],[294,331],[303,271],[271,304],[304,303],[436,432],[432,427],[427,436],[304,272],[272,408],[408,304],[395,394],[394,431],[431,395],[378,395],[395,400],[400,378],[296,334],[334,299],[299,296],[6,351],[351,168],[168,6],[376,352],[352,411],[411,376],[307,325],[325,320],[320,307],[285,295],[295,336],[336,285],[320,319],[319,404],[404,320],[329,330],[330,349],[349,329],[334,293],[293,333],[333,334],[366,323],[323,447],[447,366],[316,15],[15,315],[315,316],[331,358],[358,279],[279,331],[317,14],[14,316],[316,317],[8,285],[285,9],[9,8],[277,329],[329,350],[350,277],[253,374],[374,252],[252,253],[319,318],[318,403],[403,319],[351,6],[6,419],[419,351],[324,318],[318,325],[325,324],[397,367],[367,365],[365,397],[288,435],[435,397],[397,288],[278,344],[344,439],[439,278],[310,272],[272,311],[311,310],[248,195],[195,281],[281,248],[375,273],[273,291],[291,375],[175,396],[396,199],[199,175],[312,311],[311,268],[268,312],[276,283],[283,445],[445,276],[390,373],[373,339],[339,390],[295,282],[282,296],[296,295],[448,449],[449,346],[346,448],[356,264],[264,454],[454,356],[337,336],[336,299],[299,337],[337,338],[338,151],[151,337],[294,278],[278,455],[455,294],[308,292],[292,415],[415,308],[429,358],[358,355],[355,429],[265,340],[340,372],[372,265],[352,346],[346,280],[280,352],[295,442],[442,282],[282,295],[354,19],[19,370],[370,354],[285,441],[441,295],[295,285],[195,248],[248,197],[197,195],[457,440],[440,274],[274,457],[301,300],[300,368],[368,301],[417,351],[351,465],[465,417],[251,301],[301,389],[389,251],[394,395],[395,379],[379,394],[399,412],[412,419],[419,399],[410,436],[436,322],[322,410],[326,2],[2,393],[393,326],[354,370],[370,461],[461,354],[393,164],[164,267],[267,393],[268,302],[302,12],[12,268],[312,268],[268,13],[13,312],[298,293],[293,301],[301,298],[265,446],[446,340],[340,265],[280,330],[330,425],[425,280],[322,426],[426,391],[391,322],[420,429],[429,437],[437,420],[393,391],[391,326],[326,393],[344,440],[440,438],[438,344],[458,459],[459,461],[461,458],[364,434],[434,394],[394,364],[428,396],[396,262],[262,428],[274,354],[354,457],[457,274],[317,316],[316,402],[402,317],[316,315],[315,403],[403,316],[315,314],[314,404],[404,315],[314,313],[313,405],[405,314],[313,421],[421,406],[406,313],[323,366],[366,361],[361,323],[292,306],[306,407],[407,292],[306,291],[291,408],[408,306],[291,287],[287,409],[409,291],[287,432],[432,410],[410,287],[427,434],[434,411],[411,427],[372,264],[264,383],[383,372],[459,309],[309,457],[457,459],[366,352],[352,401],[401,366],[1,274],[274,4],[4,1],[418,421],[421,262],[262,418],[331,294],[294,358],[358,331],[435,433],[433,367],[367,435],[392,289],[289,439],[439,392],[328,462],[462,326],[326,328],[94,2],[2,370],[370,94],[289,305],[305,455],[455,289],[339,254],[254,448],[448,339],[359,255],[255,446],[446,359],[254,253],[253,449],[449,254],[253,252],[252,450],[450,253],[252,256],[256,451],[451,252],[256,341],[341,452],[452,256],[414,413],[413,463],[463,414],[286,441],[441,414],[414,286],[286,258],[258,441],[441,286],[258,257],[257,442],[442,258],[257,259],[259,443],[443,257],[259,260],[260,444],[444,259],[260,467],[467,445],[445,260],[309,459],[459,250],[250,309],[305,289],[289,290],[290,305],[305,290],[290,460],[460,305],[401,376],[376,435],[435,401],[309,250],[250,392],[392,309],[376,411],[411,433],[433,376],[453,341],[341,464],[464,453],[357,453],[453,465],[465,357],[343,357],[357,412],[412,343],[437,343],[343,399],[399,437],[344,360],[360,440],[440,344],[420,437],[437,456],[456,420],[360,420],[420,363],[363,360],[361,401],[401,288],[288,361],[265,372],[372,353],[353,265],[390,339],[339,249],[249,390],[339,448],[448,255],[255,339]);function kc(t){t.j={faceLandmarks:[],faceBlendshapes:[],facialTransformationMatrixes:[]}}var xc=class extends dc{constructor(t,e){super(new ac(t,e),"image_in","norm_rect",!1),this.j={faceLandmarks:[],faceBlendshapes:[],facialTransformationMatrixes:[]},this.outputFacialTransformationMatrixes=this.outputFaceBlendshapes=!1,wn(t=this.h=new Js,0,1,e=new Xs),this.A=new $s,wn(this.h,0,3,this.A),this.u=new zs,wn(this.h,0,2,this.u),Sn(this.u,4,1),Ln(this.u,2,.5),Ln(this.A,2,.5),Ln(this.h,4,.5)}get baseOptions(){return yn(this.h,Xs,1)}set baseOptions(t){wn(this.h,0,1,t)}o(t){return"numFaces"in t&&Sn(this.u,4,t.numFaces??1),"minFaceDetectionConfidence"in t&&Ln(this.u,2,t.minFaceDetectionConfidence??.5),"minTrackingConfidence"in t&&Ln(this.h,4,t.minTrackingConfidence??.5),"minFacePresenceConfidence"in t&&Ln(this.A,2,t.minFacePresenceConfidence??.5),"outputFaceBlendshapes"in t&&(this.outputFaceBlendshapes=!!t.outputFaceBlendshapes),"outputFacialTransformationMatrixes"in t&&(this.outputFacialTransformationMatrixes=!!t.outputFacialTransformationMatrixes),this.l(t)}F(t,e){return kc(this),uc(this,t,e),this.j}G(t,e,n){return kc(this),lc(this,t,n,e),this.j}m(){var t=new ls;hs(t,"image_in"),hs(t,"norm_rect"),us(t,"face_landmarks");const e=new Qi;Sr(e,Qs,this.h);const n=new is;Rn(n,2,"mediapipe.tasks.vision.face_landmarker.FaceLandmarkerGraph"),ns(n,"IMAGE:image_in"),ns(n,"NORM_RECT:norm_rect"),rs(n,"NORM_LANDMARKS:face_landmarks"),n.o(e),cs(t,n),this.g.attachProtoVectorListener("face_landmarks",((t,e)=>{for(const e of t)t=ks(e),this.j.faceLandmarks.push(Ho(t));ua(this,e)})),this.g.attachEmptyPacketListener("face_landmarks",(t=>{ua(this,t)})),this.outputFaceBlendshapes&&(us(t,"blendshapes"),rs(n,"BLENDSHAPES:blendshapes"),this.g.attachProtoVectorListener("blendshapes",((t,e)=>{if(this.outputFaceBlendshapes)for(const e of t)t=ys(e),this.j.faceBlendshapes.push(jo(t.g()??[]));ua(this,e)})),this.g.attachEmptyPacketListener("blendshapes",(t=>{ua(this,t)}))),this.outputFacialTransformationMatrixes&&(us(t,"face_geometry"),rs(n,"FACE_GEOMETRY:face_geometry"),this.g.attachProtoVectorListener("face_geometry",((t,e)=>{if(this.outputFacialTransformationMatrixes)for(const e of t)(t=yn(t=qs(e),xs,2))&&this.j.facialTransformationMatrixes.push({rows:kn(t,1)??0??0,columns:kn(t,2)??0??0,data:en(t,3,$t,tn()).slice()??[]});ua(this,e)})),this.g.attachEmptyPacketListener("face_geometry",(t=>{ua(this,t)}))),t=t.g(),this.setGraph(new Uint8Array(t),!0)}};xc.prototype.detectForVideo=xc.prototype.G,xc.prototype.detect=xc.prototype.F,xc.prototype.setOptions=xc.prototype.o,xc.createFromModelPath=function(t,e){return cc(xc,t,{baseOptions:{modelAssetPath:e}})},xc.createFromModelBuffer=function(t,e){return cc(xc,t,{baseOptions:{modelAssetBuffer:e}})},xc.createFromOptions=function(t,e){return cc(xc,t,e)},xc.FACE_LANDMARKS_LIPS=gc,xc.FACE_LANDMARKS_LEFT_EYE=mc,xc.FACE_LANDMARKS_LEFT_EYEBROW=yc,xc.FACE_LANDMARKS_LEFT_IRIS=_c,xc.FACE_LANDMARKS_RIGHT_EYE=vc,xc.FACE_LANDMARKS_RIGHT_EYEBROW=Ec,xc.FACE_LANDMARKS_RIGHT_IRIS=wc,xc.FACE_LANDMARKS_FACE_OVAL=Tc,xc.FACE_LANDMARKS_CONTOURS=Ac,xc.FACE_LANDMARKS_TESSELATION=bc;var Sc=ic([0,1],[1,2],[2,3],[3,4],[0,5],[5,6],[6,7],[7,8],[5,9],[9,10],[10,11],[11,12],[9,13],[13,14],[14,15],[15,16],[13,17],[0,17],[17,18],[18,19],[19,20]);function Lc(t){t.gestures=[],t.landmarks=[],t.worldLandmarks=[],t.handedness=[]}function Rc(t){return 0===t.gestures.length?{gestures:[],landmarks:[],worldLandmarks:[],handedness:[],handednesses:[]}:{gestures:t.gestures,landmarks:t.landmarks,worldLandmarks:t.worldLandmarks,handedness:t.handedness,handednesses:t.handedness}}function Ic(t,e=!0){const n=[];for(const i of t){var r=ys(i);t=[];for(const n of r.g())r=e&&null!=kn(n,1)?kn(n,1)??0:-1,t.push({score:xn(n,2)??0,index:r,categoryName:le($e(n,3))??""??"",displayName:le($e(n,4))??""??""});n.push(t)}return n}var Fc=class extends dc{constructor(t,e){super(new ac(t,e),"image_in","norm_rect",!1),this.gestures=[],this.landmarks=[],this.worldLandmarks=[],this.handedness=[],wn(t=this.j=new oo,0,1,e=new Xs),this.u=new so,wn(this.j,0,2,this.u),this.D=new io,wn(this.u,0,3,this.D),this.A=new ro,wn(this.u,0,2,this.A),this.h=new no,wn(this.j,0,3,this.h),Ln(this.A,2,.5),Ln(this.u,4,.5),Ln(this.D,2,.5)}get baseOptions(){return yn(this.j,Xs,1)}set baseOptions(t){wn(this.j,0,1,t)}o(t){if(Sn(this.A,3,t.numHands??1),"minHandDetectionConfidence"in t&&Ln(this.A,2,t.minHandDetectionConfidence??.5),"minTrackingConfidence"in t&&Ln(this.u,4,t.minTrackingConfidence??.5),"minHandPresenceConfidence"in t&&Ln(this.D,2,t.minHandPresenceConfidence??.5),t.cannedGesturesClassifierOptions){var e=new to,n=e,r=Bo(t.cannedGesturesClassifierOptions,yn(this.h,to,3)?.l());wn(n,0,2,r),wn(this.h,0,3,e)}else void 0===t.cannedGesturesClassifierOptions&&yn(this.h,to,3)?.g();return t.customGesturesClassifierOptions?(wn(n=e=new to,0,2,r=Bo(t.customGesturesClassifierOptions,yn(this.h,to,4)?.l())),wn(this.h,0,4,e)):void 0===t.customGesturesClassifierOptions&&yn(this.h,to,4)?.g(),this.l(t)}Ha(t,e){return Lc(this),uc(this,t,e),Rc(this)}Ia(t,e,n){return Lc(this),lc(this,t,n,e),Rc(this)}m(){var t=new ls;hs(t,"image_in"),hs(t,"norm_rect"),us(t,"hand_gestures"),us(t,"hand_landmarks"),us(t,"world_hand_landmarks"),us(t,"handedness");const e=new Qi;Sr(e,lo,this.j);const n=new is;Rn(n,2,"mediapipe.tasks.vision.gesture_recognizer.GestureRecognizerGraph"),ns(n,"IMAGE:image_in"),ns(n,"NORM_RECT:norm_rect"),rs(n,"HAND_GESTURES:hand_gestures"),rs(n,"LANDMARKS:hand_landmarks"),rs(n,"WORLD_LANDMARKS:world_hand_landmarks"),rs(n,"HANDEDNESS:handedness"),n.o(e),cs(t,n),this.g.attachProtoVectorListener("hand_landmarks",((t,e)=>{for(const e of t){t=ks(e);const n=[];for(const e of vn(t,bs,1))n.push({x:xn(e,1)??0,y:xn(e,2)??0,z:xn(e,3)??0,visibility:xn(e,4)??0});this.landmarks.push(n)}ua(this,e)})),this.g.attachEmptyPacketListener("hand_landmarks",(t=>{ua(this,t)})),this.g.attachProtoVectorListener("world_hand_landmarks",((t,e)=>{for(const e of t){t=As(e);const n=[];for(const e of vn(t,Ts,1))n.push({x:xn(e,1)??0,y:xn(e,2)??0,z:xn(e,3)??0,visibility:xn(e,4)??0});this.worldLandmarks.push(n)}ua(this,e)})),this.g.attachEmptyPacketListener("world_hand_landmarks",(t=>{ua(this,t)})),this.g.attachProtoVectorListener("hand_gestures",((t,e)=>{this.gestures.push(...Ic(t,!1)),ua(this,e)})),this.g.attachEmptyPacketListener("hand_gestures",(t=>{ua(this,t)})),this.g.attachProtoVectorListener("handedness",((t,e)=>{this.handedness.push(...Ic(t)),ua(this,e)})),this.g.attachEmptyPacketListener("handedness",(t=>{ua(this,t)})),t=t.g(),this.setGraph(new Uint8Array(t),!0)}};function Mc(t){return{landmarks:t.landmarks,worldLandmarks:t.worldLandmarks,handednesses:t.handedness,handedness:t.handedness}}Fc.prototype.recognizeForVideo=Fc.prototype.Ia,Fc.prototype.recognize=Fc.prototype.Ha,Fc.prototype.setOptions=Fc.prototype.o,Fc.createFromModelPath=function(t,e){return cc(Fc,t,{baseOptions:{modelAssetPath:e}})},Fc.createFromModelBuffer=function(t,e){return cc(Fc,t,{baseOptions:{modelAssetBuffer:e}})},Fc.createFromOptions=function(t,e){return cc(Fc,t,e)},Fc.HAND_CONNECTIONS=Sc;var Pc=class extends dc{constructor(t,e){super(new ac(t,e),"image_in","norm_rect",!1),this.landmarks=[],this.worldLandmarks=[],this.handedness=[],wn(t=this.h=new so,0,1,e=new Xs),this.u=new io,wn(this.h,0,3,this.u),this.j=new ro,wn(this.h,0,2,this.j),Sn(this.j,3,1),Ln(this.j,2,.5),Ln(this.u,2,.5),Ln(this.h,4,.5)}get baseOptions(){return yn(this.h,Xs,1)}set baseOptions(t){wn(this.h,0,1,t)}o(t){return"numHands"in t&&Sn(this.j,3,t.numHands??1),"minHandDetectionConfidence"in t&&Ln(this.j,2,t.minHandDetectionConfidence??.5),"minTrackingConfidence"in t&&Ln(this.h,4,t.minTrackingConfidence??.5),"minHandPresenceConfidence"in t&&Ln(this.u,2,t.minHandPresenceConfidence??.5),this.l(t)}F(t,e){return this.landmarks=[],this.worldLandmarks=[],this.handedness=[],uc(this,t,e),Mc(this)}G(t,e,n){return this.landmarks=[],this.worldLandmarks=[],this.handedness=[],lc(this,t,n,e),Mc(this)}m(){var t=new ls;hs(t,"image_in"),hs(t,"norm_rect"),us(t,"hand_landmarks"),us(t,"world_hand_landmarks"),us(t,"handedness");const e=new Qi;Sr(e,fo,this.h);const n=new is;Rn(n,2,"mediapipe.tasks.vision.hand_landmarker.HandLandmarkerGraph"),ns(n,"IMAGE:image_in"),ns(n,"NORM_RECT:norm_rect"),rs(n,"LANDMARKS:hand_landmarks"),rs(n,"WORLD_LANDMARKS:world_hand_landmarks"),rs(n,"HANDEDNESS:handedness"),n.o(e),cs(t,n),this.g.attachProtoVectorListener("hand_landmarks",((t,e)=>{for(const e of t)t=ks(e),this.landmarks.push(Ho(t));ua(this,e)})),this.g.attachEmptyPacketListener("hand_landmarks",(t=>{ua(this,t)})),this.g.attachProtoVectorListener("world_hand_landmarks",((t,e)=>{for(const e of t)t=As(e),this.worldLandmarks.push(Wo(t));ua(this,e)})),this.g.attachEmptyPacketListener("world_hand_landmarks",(t=>{ua(this,t)})),this.g.attachProtoVectorListener("handedness",((t,e)=>{var n=this.handedness,r=n.push;const i=[];for(const e of t){t=ys(e);const n=[];for(const e of t.g())n.push({score:xn(e,2)??0,index:kn(e,1)??0??-1,categoryName:le($e(e,3))??""??"",displayName:le($e(e,4))??""??""});i.push(n)}r.call(n,...i),ua(this,e)})),this.g.attachEmptyPacketListener("handedness",(t=>{ua(this,t)})),t=t.g(),this.setGraph(new Uint8Array(t),!0)}};Pc.prototype.detectForVideo=Pc.prototype.G,Pc.prototype.detect=Pc.prototype.F,Pc.prototype.setOptions=Pc.prototype.o,Pc.createFromModelPath=function(t,e){return cc(Pc,t,{baseOptions:{modelAssetPath:e}})},Pc.createFromModelBuffer=function(t,e){return cc(Pc,t,{baseOptions:{modelAssetBuffer:e}})},Pc.createFromOptions=function(t,e){return cc(Pc,t,e)},Pc.HAND_CONNECTIONS=Sc;var Cc=ic([0,1],[1,2],[2,3],[3,7],[0,4],[4,5],[5,6],[6,8],[9,10],[11,12],[11,13],[13,15],[15,17],[15,19],[15,21],[17,19],[12,14],[14,16],[16,18],[16,20],[16,22],[18,20],[11,23],[12,24],[23,24],[23,25],[24,26],[25,27],[26,28],[27,29],[28,30],[29,31],[30,32],[27,31],[28,32]);function Oc(t){t.h={faceLandmarks:[],faceBlendshapes:[],poseLandmarks:[],poseWorldLandmarks:[],poseSegmentationMasks:[],leftHandLandmarks:[],leftHandWorldLandmarks:[],rightHandLandmarks:[],rightHandWorldLandmarks:[]}}function Nc(t){try{if(!t.D)return t.h;t.D(t.h)}finally{da(t)}}function Uc(t,e){t=ks(t),e.push(Ho(t))}var Dc=class extends dc{constructor(t,e){super(new ac(t,e),"input_frames_image",null,!1),this.h={faceLandmarks:[],faceBlendshapes:[],poseLandmarks:[],poseWorldLandmarks:[],poseSegmentationMasks:[],leftHandLandmarks:[],leftHandWorldLandmarks:[],rightHandLandmarks:[],rightHandWorldLandmarks:[]},this.outputPoseSegmentationMasks=this.outputFaceBlendshapes=!1,wn(t=this.j=new yo,0,1,e=new Xs),this.I=new io,wn(this.j,0,2,this.I),this.W=new po,wn(this.j,0,3,this.W),this.u=new zs,wn(this.j,0,4,this.u),this.O=new $s,wn(this.j,0,5,this.O),this.A=new go,wn(this.j,0,6,this.A),this.M=new mo,wn(this.j,0,7,this.M),Ln(this.u,2,.5),Ln(this.u,3,.3),Ln(this.O,2,.5),Ln(this.A,2,.5),Ln(this.A,3,.3),Ln(this.M,2,.5),Ln(this.I,2,.5)}get baseOptions(){return yn(this.j,Xs,1)}set baseOptions(t){wn(this.j,0,1,t)}o(t){return"minFaceDetectionConfidence"in t&&Ln(this.u,2,t.minFaceDetectionConfidence??.5),"minFaceSuppressionThreshold"in t&&Ln(this.u,3,t.minFaceSuppressionThreshold??.3),"minFacePresenceConfidence"in t&&Ln(this.O,2,t.minFacePresenceConfidence??.5),"outputFaceBlendshapes"in t&&(this.outputFaceBlendshapes=!!t.outputFaceBlendshapes),"minPoseDetectionConfidence"in t&&Ln(this.A,2,t.minPoseDetectionConfidence??.5),"minPoseSuppressionThreshold"in t&&Ln(this.A,3,t.minPoseSuppressionThreshold??.3),"minPosePresenceConfidence"in t&&Ln(this.M,2,t.minPosePresenceConfidence??.5),"outputPoseSegmentationMasks"in t&&(this.outputPoseSegmentationMasks=!!t.outputPoseSegmentationMasks),"minHandLandmarksConfidence"in t&&Ln(this.I,2,t.minHandLandmarksConfidence??.5),this.l(t)}F(t,e,n){const r="function"!=typeof e?e:{};return this.D="function"==typeof e?e:n,Oc(this),uc(this,t,r),Nc(this)}G(t,e,n,r){const i="function"!=typeof n?n:{};return this.D="function"==typeof n?n:r,Oc(this),lc(this,t,i,e),Nc(this)}m(){var t=new ls;hs(t,"input_frames_image"),us(t,"pose_landmarks"),us(t,"pose_world_landmarks"),us(t,"face_landmarks"),us(t,"left_hand_landmarks"),us(t,"left_hand_world_landmarks"),us(t,"right_hand_landmarks"),us(t,"right_hand_world_landmarks");const e=new Qi,n=new Bi;Rn(n,1,"type.googleapis.com/mediapipe.tasks.vision.holistic_landmarker.proto.HolisticLandmarkerGraphOptions"),function(t,e){if(null!=e)if(Array.isArray(e))Ze(t,2,Ie(e,0,Me));else{if(!("string"==typeof e||e instanceof F||S(e)))throw Error("invalid value in Any.value field: "+e+" expected a ByteString, a base64 encoded string, a Uint8Array or a jspb array");hn(t,2,ht(e,!1),R())}}(n,this.j.g());const r=new is;Rn(r,2,"mediapipe.tasks.vision.holistic_landmarker.HolisticLandmarkerGraph"),bn(r,8,Bi,n),ns(r,"IMAGE:input_frames_image"),rs(r,"POSE_LANDMARKS:pose_landmarks"),rs(r,"POSE_WORLD_LANDMARKS:pose_world_landmarks"),rs(r,"FACE_LANDMARKS:face_landmarks"),rs(r,"LEFT_HAND_LANDMARKS:left_hand_landmarks"),rs(r,"LEFT_HAND_WORLD_LANDMARKS:left_hand_world_landmarks"),rs(r,"RIGHT_HAND_LANDMARKS:right_hand_landmarks"),rs(r,"RIGHT_HAND_WORLD_LANDMARKS:right_hand_world_landmarks"),r.o(e),cs(t,r),la(this,t),this.g.attachProtoListener("pose_landmarks",((t,e)=>{Uc(t,this.h.poseLandmarks),ua(this,e)})),this.g.attachEmptyPacketListener("pose_landmarks",(t=>{ua(this,t)})),this.g.attachProtoListener("pose_world_landmarks",((t,e)=>{var n=this.h.poseWorldLandmarks;t=As(t),n.push(Wo(t)),ua(this,e)})),this.g.attachEmptyPacketListener("pose_world_landmarks",(t=>{ua(this,t)})),this.outputPoseSegmentationMasks&&(rs(r,"POSE_SEGMENTATION_MASK:pose_segmentation_mask"),fa(this,"pose_segmentation_mask"),this.g.Z("pose_segmentation_mask",((t,e)=>{this.h.poseSegmentationMasks=[fc(this,t,!0,!this.D)],ua(this,e)})),this.g.attachEmptyPacketListener("pose_segmentation_mask",(t=>{this.h.poseSegmentationMasks=[],ua(this,t)}))),this.g.attachProtoListener("face_landmarks",((t,e)=>{Uc(t,this.h.faceLandmarks),ua(this,e)})),this.g.attachEmptyPacketListener("face_landmarks",(t=>{ua(this,t)})),this.outputFaceBlendshapes&&(us(t,"extra_blendshapes"),rs(r,"FACE_BLENDSHAPES:extra_blendshapes"),this.g.attachProtoListener("extra_blendshapes",((t,e)=>{var n=this.h.faceBlendshapes;this.outputFaceBlendshapes&&(t=ys(t),n.push(jo(t.g()??[]))),ua(this,e)})),this.g.attachEmptyPacketListener("extra_blendshapes",(t=>{ua(this,t)}))),this.g.attachProtoListener("left_hand_landmarks",((t,e)=>{Uc(t,this.h.leftHandLandmarks),ua(this,e)})),this.g.attachEmptyPacketListener("left_hand_landmarks",(t=>{ua(this,t)})),this.g.attachProtoListener("left_hand_world_landmarks",((t,e)=>{var n=this.h.leftHandWorldLandmarks;t=As(t),n.push(Wo(t)),ua(this,e)})),this.g.attachEmptyPacketListener("left_hand_world_landmarks",(t=>{ua(this,t)})),this.g.attachProtoListener("right_hand_landmarks",((t,e)=>{Uc(t,this.h.rightHandLandmarks),ua(this,e)})),this.g.attachEmptyPacketListener("right_hand_landmarks",(t=>{ua(this,t)})),this.g.attachProtoListener("right_hand_world_landmarks",((t,e)=>{var n=this.h.rightHandWorldLandmarks;t=As(t),n.push(Wo(t)),ua(this,e)})),this.g.attachEmptyPacketListener("right_hand_world_landmarks",(t=>{ua(this,t)})),t=t.g(),this.setGraph(new Uint8Array(t),!0)}};Dc.prototype.detectForVideo=Dc.prototype.G,Dc.prototype.detect=Dc.prototype.F,Dc.prototype.setOptions=Dc.prototype.o,Dc.createFromModelPath=function(t,e){return cc(Dc,t,{baseOptions:{modelAssetPath:e}})},Dc.createFromModelBuffer=function(t,e){return cc(Dc,t,{baseOptions:{modelAssetBuffer:e}})},Dc.createFromOptions=function(t,e){return cc(Dc,t,e)},Dc.HAND_CONNECTIONS=Sc,Dc.POSE_CONNECTIONS=Cc,Dc.FACE_LANDMARKS_LIPS=gc,Dc.FACE_LANDMARKS_LEFT_EYE=mc,Dc.FACE_LANDMARKS_LEFT_EYEBROW=yc,Dc.FACE_LANDMARKS_LEFT_IRIS=_c,Dc.FACE_LANDMARKS_RIGHT_EYE=vc,Dc.FACE_LANDMARKS_RIGHT_EYEBROW=Ec,Dc.FACE_LANDMARKS_RIGHT_IRIS=wc,Dc.FACE_LANDMARKS_FACE_OVAL=Tc,Dc.FACE_LANDMARKS_CONTOURS=Ac,Dc.FACE_LANDMARKS_TESSELATION=bc;var Bc=class extends dc{constructor(t,e){super(new ac(t,e),"input_image","norm_rect",!0),this.j={classifications:[]},wn(t=this.h=new Eo,0,1,e=new Xs)}get baseOptions(){return yn(this.h,Xs,1)}set baseOptions(t){wn(this.h,0,1,t)}o(t){return wn(this.h,0,2,Bo(t,yn(this.h,Ns,2))),this.l(t)}sa(t,e){return this.j={classifications:[]},uc(this,t,e),this.j}ta(t,e,n){return this.j={classifications:[]},lc(this,t,n,e),this.j}m(){var t=new ls;hs(t,"input_image"),hs(t,"norm_rect"),us(t,"classifications");const e=new Qi;Sr(e,wo,this.h);const n=new is;Rn(n,2,"mediapipe.tasks.vision.image_classifier.ImageClassifierGraph"),ns(n,"IMAGE:input_image"),ns(n,"NORM_RECT:norm_rect"),rs(n,"CLASSIFICATIONS:classifications"),n.o(e),cs(t,n),this.g.attachProtoListener("classifications",((t,e)=>{this.j=Vo(Is(t)),ua(this,e)})),this.g.attachEmptyPacketListener("classifications",(t=>{ua(this,t)})),t=t.g(),this.setGraph(new Uint8Array(t),!0)}};Bc.prototype.classifyForVideo=Bc.prototype.ta,Bc.prototype.classify=Bc.prototype.sa,Bc.prototype.setOptions=Bc.prototype.o,Bc.createFromModelPath=function(t,e){return cc(Bc,t,{baseOptions:{modelAssetPath:e}})},Bc.createFromModelBuffer=function(t,e){return cc(Bc,t,{baseOptions:{modelAssetBuffer:e}})},Bc.createFromOptions=function(t,e){return cc(Bc,t,e)};var Gc=class extends dc{constructor(t,e){super(new ac(t,e),"image_in","norm_rect",!0),this.h=new To,this.embeddings={embeddings:[]},wn(t=this.h,0,1,e=new Xs)}get baseOptions(){return yn(this.h,Xs,1)}set baseOptions(t){wn(this.h,0,1,t)}o(t){var e=this.h,n=yn(this.h,Ds,2);return n=n?n.clone():new Ds,void 0!==t.l2Normalize?Ze(n,1,Jt(t.l2Normalize)):"l2Normalize"in t&&Ze(n,1),void 0!==t.quantize?Ze(n,2,Jt(t.quantize)):"quantize"in t&&Ze(n,2),wn(e,0,2,n),this.l(t)}za(t,e){return uc(this,t,e),this.embeddings}Aa(t,e,n){return lc(this,t,n,e),this.embeddings}m(){var t=new ls;hs(t,"image_in"),hs(t,"norm_rect"),us(t,"embeddings_out");const e=new Qi;Sr(e,Ao,this.h);const n=new is;Rn(n,2,"mediapipe.tasks.vision.image_embedder.ImageEmbedderGraph"),ns(n,"IMAGE:image_in"),ns(n,"NORM_RECT:norm_rect"),rs(n,"EMBEDDINGS:embeddings_out"),n.o(e),cs(t,n),this.g.attachProtoListener("embeddings_out",((t,e)=>{t=Os(t),this.embeddings=function(t){return{embeddings:vn(t,Ps,1).map((t=>{const e={headIndex:kn(t,3)??0??-1,headName:le($e(t,4))??""??""};var n=t.v;return void 0!==mn(n,0|n[Q],Fs,ln(t,1))?(t=en(t=yn(t,Fs,ln(t,1),void 0),1,$t,tn()),e.floatEmbedding=t.slice()):(n=new Uint8Array(0),e.quantizedEmbedding=yn(t,Ms,ln(t,2),void 0)?.na()?.h()??n),e})),timestampMs:Go($e(t,2,void 0,void 0,ce)??Ye)}}(t),ua(this,e)})),this.g.attachEmptyPacketListener("embeddings_out",(t=>{ua(this,t)})),t=t.g(),this.setGraph(new Uint8Array(t),!0)}};Gc.cosineSimilarity=function(t,e){if(t.floatEmbedding&&e.floatEmbedding)t=Ko(t.floatEmbedding,e.floatEmbedding);else{if(!t.quantizedEmbedding||!e.quantizedEmbedding)throw Error("Cannot compute cosine similarity between quantized and float embeddings.");t=Ko(zo(t.quantizedEmbedding),zo(e.quantizedEmbedding))}return t},Gc.prototype.embedForVideo=Gc.prototype.Aa,Gc.prototype.embed=Gc.prototype.za,Gc.prototype.setOptions=Gc.prototype.o,Gc.createFromModelPath=function(t,e){return cc(Gc,t,{baseOptions:{modelAssetPath:e}})},Gc.createFromModelBuffer=function(t,e){return cc(Gc,t,{baseOptions:{modelAssetBuffer:e}})},Gc.createFromOptions=function(t,e){return cc(Gc,t,e)};var jc=class{constructor(t,e,n){this.confidenceMasks=t,this.categoryMask=e,this.qualityScores=n}close(){this.confidenceMasks?.forEach((t=>{t.close()})),this.categoryMask?.close()}};function Vc(t){const e=function(t){return vn(t,is,1)}(t.ca()).filter((t=>(le($e(t,1))??"").includes("mediapipe.tasks.TensorsToSegmentationCalculator")));if(t.u=[],e.length>1)throw Error("The graph has more than one mediapipe.tasks.TensorsToSegmentationCalculator.");1===e.length&&(yn(e[0],Qi,7)?.j()?.g()??new Map).forEach(((e,n)=>{t.u[Number(n)]=le($e(e,1))??""}))}function Xc(t){t.categoryMask=void 0,t.confidenceMasks=void 0,t.qualityScores=void 0}function Hc(t){try{const e=new jc(t.confidenceMasks,t.categoryMask,t.qualityScores);if(!t.j)return e;t.j(e)}finally{da(t)}}jc.prototype.close=jc.prototype.close;var Wc=class extends dc{constructor(t,e){super(new ac(t,e),"image_in","norm_rect",!1),this.u=[],this.outputCategoryMask=!1,this.outputConfidenceMasks=!0,this.h=new Lo,this.A=new bo,wn(this.h,0,3,this.A),wn(t=this.h,0,1,e=new Xs)}get baseOptions(){return yn(this.h,Xs,1)}set baseOptions(t){wn(this.h,0,1,t)}o(t){return void 0!==t.displayNamesLocale?Ze(this.h,2,ue(t.displayNamesLocale)):"displayNamesLocale"in t&&Ze(this.h,2),"outputCategoryMask"in t&&(this.outputCategoryMask=t.outputCategoryMask??!1),"outputConfidenceMasks"in t&&(this.outputConfidenceMasks=t.outputConfidenceMasks??!0),super.l(t)}L(){Vc(this)}segment(t,e,n){const r="function"!=typeof e?e:{};return this.j="function"==typeof e?e:n,Xc(this),uc(this,t,r),Hc(this)}La(t,e,n,r){const i="function"!=typeof n?n:{};return this.j="function"==typeof n?n:r,Xc(this),lc(this,t,i,e),Hc(this)}Da(){return this.u}m(){var t=new ls;hs(t,"image_in"),hs(t,"norm_rect");const e=new Qi;Sr(e,Ro,this.h);const n=new is;Rn(n,2,"mediapipe.tasks.vision.image_segmenter.ImageSegmenterGraph"),ns(n,"IMAGE:image_in"),ns(n,"NORM_RECT:norm_rect"),n.o(e),cs(t,n),la(this,t),this.outputConfidenceMasks&&(us(t,"confidence_masks"),rs(n,"CONFIDENCE_MASKS:confidence_masks"),fa(this,"confidence_masks"),this.g.aa("confidence_masks",((t,e)=>{this.confidenceMasks=t.map((t=>fc(this,t,!0,!this.j))),ua(this,e)})),this.g.attachEmptyPacketListener("confidence_masks",(t=>{this.confidenceMasks=[],ua(this,t)}))),this.outputCategoryMask&&(us(t,"category_mask"),rs(n,"CATEGORY_MASK:category_mask"),fa(this,"category_mask"),this.g.Z("category_mask",((t,e)=>{this.categoryMask=fc(this,t,!1,!this.j),ua(this,e)})),this.g.attachEmptyPacketListener("category_mask",(t=>{this.categoryMask=void 0,ua(this,t)}))),us(t,"quality_scores"),rs(n,"QUALITY_SCORES:quality_scores"),this.g.attachFloatVectorListener("quality_scores",((t,e)=>{this.qualityScores=t,ua(this,e)})),this.g.attachEmptyPacketListener("quality_scores",(t=>{this.categoryMask=void 0,ua(this,t)})),t=t.g(),this.setGraph(new Uint8Array(t),!0)}};Wc.prototype.getLabels=Wc.prototype.Da,Wc.prototype.segmentForVideo=Wc.prototype.La,Wc.prototype.segment=Wc.prototype.segment,Wc.prototype.setOptions=Wc.prototype.o,Wc.createFromModelPath=function(t,e){return cc(Wc,t,{baseOptions:{modelAssetPath:e}})},Wc.createFromModelBuffer=function(t,e){return cc(Wc,t,{baseOptions:{modelAssetBuffer:e}})},Wc.createFromOptions=function(t,e){return cc(Wc,t,e)};var zc=class{constructor(t,e,n){this.confidenceMasks=t,this.categoryMask=e,this.qualityScores=n}close(){this.confidenceMasks?.forEach((t=>{t.close()})),this.categoryMask?.close()}};zc.prototype.close=zc.prototype.close;var Kc=class extends dc{constructor(t,e){super(new ac(t,e),"image_in","norm_rect_in",!1),this.outputCategoryMask=!1,this.outputConfidenceMasks=!0,this.h=new Lo,this.u=new bo,wn(this.h,0,3,this.u),wn(t=this.h,0,1,e=new Xs)}get baseOptions(){return yn(this.h,Xs,1)}set baseOptions(t){wn(this.h,0,1,t)}o(t){return"outputCategoryMask"in t&&(this.outputCategoryMask=t.outputCategoryMask??!1),"outputConfidenceMasks"in t&&(this.outputConfidenceMasks=t.outputConfidenceMasks??!0),super.l(t)}segment(t,e,n,r){const i="function"!=typeof n?n:{};if(this.j="function"==typeof n?n:r,this.qualityScores=this.categoryMask=this.confidenceMasks=void 0,n=this.C+1,r=new Po,e.keypoint&&e.scribble)throw Error("Cannot provide both keypoint and scribble.");if(e.keypoint){var s=new Io;hn(s,3,Jt(!0),!1),hn(s,1,qt(e.keypoint.x),0),hn(s,2,qt(e.keypoint.y),0),Tn(r,1,Co,s)}else{if(!e.scribble)throw Error("Must provide either a keypoint or a scribble.");{const t=new Mo;for(s of e.scribble)hn(e=new Io,3,Jt(!0),!1),hn(e,1,qt(s.x),0),hn(e,2,qt(s.y),0),bn(t,1,Io,e);Tn(r,2,Co,t)}}this.g.addProtoToStream(r.g(),"mediapipe.tasks.vision.interactive_segmenter.proto.RegionOfInterest","roi_in",n),uc(this,t,i);t:{try{const t=new zc(this.confidenceMasks,this.categoryMask,this.qualityScores);if(!this.j){var o=t;break t}this.j(t)}finally{da(this)}o=void 0}return o}m(){var t=new ls;hs(t,"image_in"),hs(t,"roi_in"),hs(t,"norm_rect_in");const e=new Qi;Sr(e,Ro,this.h);const n=new is;Rn(n,2,"mediapipe.tasks.vision.interactive_segmenter.InteractiveSegmenterGraphV2"),ns(n,"IMAGE:image_in"),ns(n,"ROI:roi_in"),ns(n,"NORM_RECT:norm_rect_in"),n.o(e),cs(t,n),la(this,t),this.outputConfidenceMasks&&(us(t,"confidence_masks"),rs(n,"CONFIDENCE_MASKS:confidence_masks"),fa(this,"confidence_masks"),this.g.aa("confidence_masks",((t,e)=>{this.confidenceMasks=t.map((t=>fc(this,t,!0,!this.j))),ua(this,e)})),this.g.attachEmptyPacketListener("confidence_masks",(t=>{this.confidenceMasks=[],ua(this,t)}))),this.outputCategoryMask&&(us(t,"category_mask"),rs(n,"CATEGORY_MASK:category_mask"),fa(this,"category_mask"),this.g.Z("category_mask",((t,e)=>{this.categoryMask=fc(this,t,!1,!this.j),ua(this,e)})),this.g.attachEmptyPacketListener("category_mask",(t=>{this.categoryMask=void 0,ua(this,t)}))),us(t,"quality_scores"),rs(n,"QUALITY_SCORES:quality_scores"),this.g.attachFloatVectorListener("quality_scores",((t,e)=>{this.qualityScores=t,ua(this,e)})),this.g.attachEmptyPacketListener("quality_scores",(t=>{this.categoryMask=void 0,ua(this,t)})),t=t.g(),this.setGraph(new Uint8Array(t),!0)}};Kc.prototype.segment=Kc.prototype.segment,Kc.prototype.setOptions=Kc.prototype.o,Kc.createFromModelPath=function(t,e){return cc(Kc,t,{baseOptions:{modelAssetPath:e}})},Kc.createFromModelBuffer=function(t,e){return cc(Kc,t,{baseOptions:{modelAssetBuffer:e}})},Kc.createFromOptions=function(t,e){return cc(Kc,t,e)};var Yc=class extends dc{constructor(t,e){super(new ac(t,e),"input_frame_gpu","norm_rect",!1),this.j={detections:[]},wn(t=this.h=new Oo,0,1,e=new Xs)}get baseOptions(){return yn(this.h,Xs,1)}set baseOptions(t){wn(this.h,0,1,t)}o(t){return void 0!==t.displayNamesLocale?Ze(this.h,2,ue(t.displayNamesLocale)):"displayNamesLocale"in t&&Ze(this.h,2),void 0!==t.maxResults?Sn(this.h,3,t.maxResults):"maxResults"in t&&Ze(this.h,3),void 0!==t.scoreThreshold?Ln(this.h,4,t.scoreThreshold):"scoreThreshold"in t&&Ze(this.h,4),void 0!==t.categoryAllowlist?In(this.h,5,t.categoryAllowlist):"categoryAllowlist"in t&&Ze(this.h,5),void 0!==t.categoryDenylist?In(this.h,6,t.categoryDenylist):"categoryDenylist"in t&&Ze(this.h,6),this.l(t)}F(t,e){return this.j={detections:[]},uc(this,t,e),this.j}G(t,e,n){return this.j={detections:[]},lc(this,t,n,e),this.j}m(){var t=new ls;hs(t,"input_frame_gpu"),hs(t,"norm_rect"),us(t,"detections");const e=new Qi;Sr(e,No,this.h);const n=new is;Rn(n,2,"mediapipe.tasks.vision.ObjectDetectorGraph"),ns(n,"IMAGE:input_frame_gpu"),ns(n,"NORM_RECT:norm_rect"),rs(n,"DETECTIONS:detections"),n.o(e),cs(t,n),this.g.attachProtoVectorListener("detections",((t,e)=>{for(const e of t)t=ws(e),this.j.detections.push(Xo(t));ua(this,e)})),this.g.attachEmptyPacketListener("detections",(t=>{ua(this,t)})),t=t.g(),this.setGraph(new Uint8Array(t),!0)}};Yc.prototype.detectForVideo=Yc.prototype.G,Yc.prototype.detect=Yc.prototype.F,Yc.prototype.setOptions=Yc.prototype.o,Yc.createFromModelPath=async function(t,e){return cc(Yc,t,{baseOptions:{modelAssetPath:e}})},Yc.createFromModelBuffer=function(t,e){return cc(Yc,t,{baseOptions:{modelAssetBuffer:e}})},Yc.createFromOptions=function(t,e){return cc(Yc,t,e)};var qc=class{constructor(t,e,n){this.landmarks=t,this.worldLandmarks=e,this.segmentationMasks=n}close(){this.segmentationMasks?.forEach((t=>{t.close()}))}};function $c(t){t.landmarks=[],t.worldLandmarks=[],t.segmentationMasks=void 0}function Jc(t){try{const e=new qc(t.landmarks,t.worldLandmarks,t.segmentationMasks);if(!t.u)return e;t.u(e)}finally{da(t)}}qc.prototype.close=qc.prototype.close;var Zc=class extends dc{constructor(t,e){super(new ac(t,e),"image_in","norm_rect",!1),this.landmarks=[],this.worldLandmarks=[],this.outputSegmentationMasks=!1,wn(t=this.h=new Uo,0,1,e=new Xs),this.A=new mo,wn(this.h,0,3,this.A),this.j=new go,wn(this.h,0,2,this.j),Sn(this.j,4,1),Ln(this.j,2,.5),Ln(this.A,2,.5),Ln(this.h,4,.5)}get baseOptions(){return yn(this.h,Xs,1)}set baseOptions(t){wn(this.h,0,1,t)}o(t){return"numPoses"in t&&Sn(this.j,4,t.numPoses??1),"minPoseDetectionConfidence"in t&&Ln(this.j,2,t.minPoseDetectionConfidence??.5),"minTrackingConfidence"in t&&Ln(this.h,4,t.minTrackingConfidence??.5),"minPosePresenceConfidence"in t&&Ln(this.A,2,t.minPosePresenceConfidence??.5),"outputSegmentationMasks"in t&&(this.outputSegmentationMasks=t.outputSegmentationMasks??!1),this.l(t)}F(t,e,n){const r="function"!=typeof e?e:{};return this.u="function"==typeof e?e:n,$c(this),uc(this,t,r),Jc(this)}G(t,e,n,r){const i="function"!=typeof n?n:{};return this.u="function"==typeof n?n:r,$c(this),lc(this,t,i,e),Jc(this)}m(){var t=new ls;hs(t,"image_in"),hs(t,"norm_rect"),us(t,"normalized_landmarks"),us(t,"world_landmarks"),us(t,"segmentation_masks");const e=new Qi;Sr(e,Do,this.h);const n=new is;Rn(n,2,"mediapipe.tasks.vision.pose_landmarker.PoseLandmarkerGraph"),ns(n,"IMAGE:image_in"),ns(n,"NORM_RECT:norm_rect"),rs(n,"NORM_LANDMARKS:normalized_landmarks"),rs(n,"WORLD_LANDMARKS:world_landmarks"),n.o(e),cs(t,n),la(this,t),this.g.attachProtoVectorListener("normalized_landmarks",((t,e)=>{this.landmarks=[];for(const e of t)t=ks(e),this.landmarks.push(Ho(t));ua(this,e)})),this.g.attachEmptyPacketListener("normalized_landmarks",(t=>{this.landmarks=[],ua(this,t)})),this.g.attachProtoVectorListener("world_landmarks",((t,e)=>{this.worldLandmarks=[];for(const e of t)t=As(e),this.worldLandmarks.push(Wo(t));ua(this,e)})),this.g.attachEmptyPacketListener("world_landmarks",(t=>{this.worldLandmarks=[],ua(this,t)})),this.outputSegmentationMasks&&(rs(n,"SEGMENTATION_MASK:segmentation_masks"),fa(this,"segmentation_masks"),this.g.aa("segmentation_masks",((t,e)=>{this.segmentationMasks=t.map((t=>fc(this,t,!0,!this.u))),ua(this,e)})),this.g.attachEmptyPacketListener("segmentation_masks",(t=>{this.segmentationMasks=[],ua(this,t)}))),t=t.g(),this.setGraph(new Uint8Array(t),!0)}};Zc.prototype.detectForVideo=Zc.prototype.G,Zc.prototype.detect=Zc.prototype.F,Zc.prototype.setOptions=Zc.prototype.o,Zc.createFromModelPath=function(t,e){return cc(Zc,t,{baseOptions:{modelAssetPath:e}})},Zc.createFromModelBuffer=function(t,e){return cc(Zc,t,{baseOptions:{modelAssetBuffer:e}})},Zc.createFromOptions=function(t,e){return cc(Zc,t,e)},Zc.POSE_CONNECTIONS=Cc,exports.DrawingUtils=Ka,exports.FaceDetector=pc,exports.FaceLandmarker=xc,exports.FilesetResolver=Zo,exports.GestureRecognizer=Fc,exports.HandLandmarker=Pc,exports.HolisticLandmarker=Dc,exports.ImageClassifier=Bc,exports.ImageEmbedder=Gc,exports.ImageSegmenter=Wc,exports.ImageSegmenterResult=jc,exports.InteractiveSegmenter=Kc,exports.InteractiveSegmenterResult=zc,exports.MPImage=nc,exports.MPMask=Na,exports.ObjectDetector=Yc,exports.PoseLandmarker=Zc,exports.TaskRunner=pa,exports.VisionTaskRunner=dc; //# sourceMappingURL=vision_bundle_cjs.js.map diff --git a/app/node_modules/@mediapipe/tasks-vision/vision_bundle.cjs.map b/app/node_modules/@mediapipe/tasks-vision/vision_bundle.cjs.map index 1c896940..6eea58d0 100644 --- a/app/node_modules/@mediapipe/tasks-vision/vision_bundle.cjs.map +++ b/app/node_modules/@mediapipe/tasks-vision/vision_bundle.cjs.map @@ -1 +1 @@ -{"version":3,"file":"vision_bundle_cjs.js","sources":["../../../../../../../mediapipe/tasks/web/vision/vision_js.js"],"sourcesContent":["'use strict';/*\n\n Copyright The Closure Library Authors.\n SPDX-License-Identifier: Apache-2.0\n*/\nvar aa=this||(typeof self!==\"undefined\"?self:{});function ba(a,b){a:{var c=[\"CLOSURE_FLAGS\"];for(var d=aa,e=0;e>6|192;else{if(b>=55296&&b<=57343){if(b<=56319&&e=56320&&f<=57343){b=(b-55296)*1024+f-56320+65536;d[c++]=b>>18|240;d[c++]=b>>12&63|128;d[c++]=b>>6&63|128;d[c++]=b&63|128;continue}else e--}b=65533}d[c++]=b>>12|224;d[c++]=b>>6&63|128}d[c++]=b&63|128}}a=c===d.length?\nd:d.subarray(0,c)}return a};function la(a){aa.setTimeout(()=>{throw a;},0)};var ma=ba(610401301,!1),na=ba(653718497,ba(1,!0)),oa=ba(660014094,!1);var pa;const qa=aa.navigator;pa=qa?qa.userAgentData||null:null;function ra(a){return ma?pa?pa.brands.some(({brand:b})=>b&&b.indexOf(a)!=-1):!1:!1}function sa(a){var b;a:{if(b=aa.navigator)if(b=b.userAgent)break a;b=\"\"}return b.indexOf(a)!=-1};function ta(){return ma?!!pa&&pa.brands.length>0:!1}function ua(){return ta()?ra(\"Chromium\"):(sa(\"Chrome\")||sa(\"CriOS\"))&&!(ta()?0:sa(\"Edge\"))||sa(\"Silk\")};function va(a){va[\" \"](a);return a}va[\" \"]=function(){};var wa=ta()?!1:sa(\"Trident\")||sa(\"MSIE\");!sa(\"Android\")||ua();ua();sa(\"Safari\")&&(ua()||(ta()?0:sa(\"Coast\"))||(ta()?0:sa(\"Opera\"))||(ta()?0:sa(\"Edge\"))||(ta()?ra(\"Microsoft Edge\"):sa(\"Edg/\"))||ta()&&ra(\"Opera\"));var xa={},ya=null;function Aa(a){var b=a.length,c=b*3/4;c%3?c=Math.floor(c):\"=.\".indexOf(a[b-1])!=-1&&(c=\"=.\".indexOf(a[b-2])!=-1?c-2:c-1);var d=new Uint8Array(c),e=0;Ba(a,function(f){d[e++]=f});return e!==c?d.subarray(0,e):d}\nfunction Ba(a,b){function c(h){for(;d>4);g!=64&&(b(f<<4&240|g>>2),k!=64&&b(g<<6&192|k))}}\nfunction Ca(){if(!ya){ya={};for(var a=\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\".split(\"\"),b=[\"+/=\",\"+/\",\"-_=\",\"-_.\",\"-_\"],c=0;c<5;c++){var d=a.concat(b[c].split(\"\"));xa[c]=d;for(var e=0;e>2];e=b[(e&3)<<4|f>>4];f=b[(f&15)<<2|g>>6];g=b[g&63];c[l++]=k+e+f+g}k=0;g=d;switch(a.length-h){case 2:k=a[h+1],g=b[(k&15)<<2]||d;case 1:a=a[h],c[l]=b[a>>2]+b[(a&3)<<4|k>>4]+g+d}return c.join(\"\")}b=\"\";c=0;for(d=a.length-10240;c{a[Za]|=b}:(a,b)=>{a.G!==void 0?a.G|=b:Object.defineProperties(a,{G:{value:b,configurable:!0,writable:!0,enumerable:!1}})},eb=Xa?(a,b)=>{a[Za]&=~b}:(a,b)=>{a.G!==void 0&&(a.G&=~b)},n=Xa?a=>a[Za]|0:a=>a.G|0,p=Xa?a=>a[Za]:a=>a.G,q=Xa?(a,b)=>{a[Za]=b}:(a,b)=>{a.G!==void 0?a.G=b:Object.defineProperties(a,{G:{value:b,configurable:!0,writable:!0,enumerable:!1}})};function fb(a){db(a,34);return a}function gb(a,b){q(b,(a|0)&-14591)}function hb(a,b){q(b,(a|34)&-14557)};var ib={},jb={};function kb(a){return!(!a||typeof a!==\"object\"||a.La!==jb)}function lb(a){return a!==null&&typeof a===\"object\"&&!Array.isArray(a)&&a.constructor===Object}function mb(a,b,c){if(a!=null)if(typeof a===\"string\")a=a?new Pa(a,La):Oa();else if(a.constructor!==Pa)if(Ka(a))a=a.length?new Pa(c?a:new Uint8Array(a),La):Oa();else{if(!b)throw Error();a=void 0}return a}function nb(a){return!Array.isArray(a)||a.length?!1:n(a)&1?!0:!1}var ob;const pb=[];q(pb,55);ob=Object.freeze(pb);\nfunction qb(a){if(a&2)throw Error();}class rb{constructor(a,b,c){this.l=0;this.g=a;this.h=b;this.m=c}next(){if(this.ltypeof a===\"number\"),yb=wb(a=>typeof a===\"string\"),zb=wb(a=>typeof a===\"boolean\");var Ab=typeof aa.BigInt===\"function\"&&typeof aa.BigInt(0)===\"bigint\";var Gb=wb(a=>Ab?a>=Bb&&a<=Cb:a[0]===\"-\"?Db(a,Eb):Db(a,Fb));const Eb=Number.MIN_SAFE_INTEGER.toString(),Bb=Ab?BigInt(Number.MIN_SAFE_INTEGER):void 0,Fb=Number.MAX_SAFE_INTEGER.toString(),Cb=Ab?BigInt(Number.MAX_SAFE_INTEGER):void 0;function Db(a,b){if(a.length>b.length)return!1;if(a.lengthe)return!1;if(d>>0;r=b;t=(a-b)/4294967296>>>0}function Kb(a){if(a<0){Jb(-a);const [b,c]=Lb(r,t);r=b>>>0;t=c>>>0}else Jb(a)}function Mb(a){const b=Ib||=new DataView(new ArrayBuffer(8));b.setFloat32(0,+a,!0);t=0;r=b.getUint32(0,!0)}function Nb(a,b){return b*4294967296+(a>>>0)}function Ob(a,b){const c=b&2147483648;c&&(a=~a+1>>>0,b=~b>>>0,a==0&&(b=b+1>>>0));a=Nb(a,b);return c?-a:a}\nfunction Pb(a,b){b>>>=0;a>>>=0;if(b<=2097151)var c=\"\"+(4294967296*b+a);else Va()?c=\"\"+(BigInt(b)<>>24|b<<8)&16777215,b=b>>16&65535,a=(a&16777215)+c*6777216+b*6710656,c+=b*8147497,b*=2,a>=1E7&&(c+=a/1E7>>>0,a%=1E7),c>=1E7&&(b+=c/1E7>>>0,c%=1E7),c=b+Qb(c)+Qb(a));return c}function Qb(a){a=String(a);return\"0000000\".slice(a.length)+a}\nfunction Rb(a){if(a.length<16)Kb(Number(a));else if(Va())a=BigInt(a),r=Number(a&BigInt(4294967295))>>>0,t=Number(a>>BigInt(32)&BigInt(4294967295));else{const b=+(a[0]===\"-\");t=r=0;const c=a.length;for(let d=b,e=(c-b)%6+b;e<=c;d=e,e+=6){const f=Number(a.slice(d,e));t*=1E6;r=r*1E6+f;r>=4294967296&&(t+=Math.trunc(r/4294967296),t>>>=0,r>>>=0)}if(b){const [d,e]=Lb(r,t);r=d;t=e}}}function Lb(a,b){b=~b;a?a=~a+1:b+=1;return[a,b]};function Sb(a){if(a==null||typeof a===\"number\")return a;if(a===\"NaN\"||a===\"Infinity\"||a===\"-Infinity\")return Number(a)}function Tb(a){if(a==null||typeof a===\"boolean\")return a;if(typeof a===\"number\")return!!a}const Ub=/^-?([1-9][0-9]*|0)(\\.[0-9]+)?$/;function Vb(a){const b=typeof a;switch(b){case \"bigint\":return!0;case \"number\":return Number.isFinite(a)}return b!==\"string\"?!1:Ub.test(a)}\nfunction Wb(a){if(a==null)return a;if(typeof a===\"string\"){if(!a)return;a=+a}if(typeof a===\"number\")return Number.isFinite(a)?a|0:void 0}function Xb(a){if(a==null)return a;if(typeof a===\"string\"){if(!a)return;a=+a}if(typeof a===\"number\")return Number.isFinite(a)?a>>>0:void 0}function Yb(a){return a[0]===\"-\"?!1:a.length<20?!0:a.length===20&&Number(a.substring(0,6))<184467}\nfunction Zb(a){if(a<0){Kb(a);const b=Pb(r,t);a=Number(b);return Number.isSafeInteger(a)?a:b}if(Yb(String(a)))return a;Kb(a);return Nb(r,t)}function $b(a){a=Math.trunc(a);Number.isSafeInteger(a)||(Kb(a),a=Ob(r,t));return a}\nfunction ac(a){var b=Math.trunc(Number(a));if(Number.isSafeInteger(b))return String(b);b=a.indexOf(\".\");b!==-1&&(a=a.substring(0,b));if(!(a[0]===\"-\"?a.length<20||a.length===20&&Number(a.substring(0,7))>-922337:a.length<19||a.length===19&&Number(a.substring(0,6))<922337))if(Rb(a),a=r,b=t,b&2147483648)if(Va())a=\"\"+(BigInt(b|0)<>>0));else{const [c,d]=Lb(a,b);a=\"-\"+Pb(c,d)}else a=Pb(a,b);return a}\nfunction bc(a){if(a==null)return a;if(typeof a===\"bigint\")return Gb(a)?a=Number(a):(a=BigInt.asIntN(64,a),a=Gb(a)?Number(a):String(a)),a;if(Vb(a))return typeof a===\"number\"?$b(a):ac(a)}function cc(a){if(a==null)return a;const b=typeof a;if(b===\"bigint\")return String(BigInt.asIntN(64,a));if(Vb(a)){if(b===\"string\")return ac(a);if(b===\"number\")return $b(a)}}\nfunction dc(a){if(a==null)return a;var b=typeof a;if(b===\"bigint\")return String(BigInt.asUintN(64,a));if(Vb(a)){if(b===\"string\")return b=Math.trunc(Number(a)),Number.isSafeInteger(b)&&b>=0?a=String(b):(b=a.indexOf(\".\"),b!==-1&&(a=a.substring(0,b)),Yb(a)||(Rb(a),a=Pb(r,t))),a;if(b===\"number\")return a=Math.trunc(a),a>=0&&Number.isSafeInteger(a)?a:Zb(a)}}function ec(a){if(typeof a!==\"string\")throw Error();return a}function fc(a){if(a!=null&&typeof a!==\"string\")throw Error();return a}\nfunction gc(a){return a==null||typeof a===\"string\"?a:void 0}function hc(a,b,c,d){if(a!=null&&typeof a===\"object\"&&a.Y===ib)return a;if(!Array.isArray(a))return c?d&2?(a=b[$a])?b=a:(a=new b,fb(a.u),b=b[$a]=a):b=new b:b=void 0,b;let e=c=n(a);e===0&&(e|=d&32);e|=d&2;e!==c&&q(a,e);return new b(a)}\nfunction ic(a,b,c){if(b)a:{b=a;if(!Vb(b))throw Ua(\"int64\");switch(typeof b){case \"string\":b=ac(b);break a;case \"bigint\":a=b=BigInt.asIntN(64,b);if(yb(a)){if(!/^\\s*(?:-?[1-9]\\d*|0)?\\s*$/.test(a))throw Error(String(a));}else if(xb(a)&&!Number.isSafeInteger(a))throw Error(String(a));Ab?b=BigInt(b):b=zb(b)?b?\"1\":\"0\":yb(b)?b.trim()||\"0\":String(b);break a;default:b=$b(b)}}else b=bc(a);a=b;c=a==null?c?0:void 0:a;return typeof c===\"string\"&&(b=+c,Number.isSafeInteger(b))?b:c};function jc(a){kc===void 0&&(kc=typeof Proxy===\"function\"?lc(Proxy):null);if(!kc||!mc())return a;let b=nc?.get(a);if(b)return b;if(Math.random()>.01)return a;oc(a);b=new kc(a,{set(c,d,e){pc();c[d]=e;return!0}});qc(a,b);return b}function pc(){Ta()}let nc=void 0,rc=void 0;function qc(a,b){(nc||=new sc).set(a,b);(rc||=new sc).set(b,a)}let kc=void 0,sc=void 0;function mc(){sc===void 0&&(sc=typeof WeakMap===\"function\"?lc(WeakMap):null);return sc}\nfunction lc(a){try{return a.toString().indexOf(\"[native code]\")!==-1?a:null}catch{return null}}let tc=void 0;function oc(a){if(tc===void 0){const b=new kc([],{});tc=Array.prototype.concat.call([],b).length===1}tc&&typeof Symbol===\"function\"&&Symbol.isConcatSpreadable&&(a[Symbol.isConcatSpreadable]=!0)}\nfunction uc(a,b,c){if(na&&mc()){if(vc?.get(b)?.get(a)){if(c)return}else if(Math.random()>.01)return;var d=a.length;c={length:d};for(var e=0;e0?void 0:a===0?Dc||=[0,void 0]:[-a,void 0];case \"string\":return[0,a];case \"object\":return a}}function Fc(a,b){a=Ic(a,b[0],b[1]);db(a,16384);return a}\nfunction Ic(a,b,c){a==null&&(a=Bc);Bc=void 0;if(a==null){var d=96;c?(a=[c],d|=512):a=[];b&&(d=d&-33521665|(b&1023)<<15)}else{if(!Array.isArray(a))throw Error(\"narr\");d=n(a);if(d&2048)throw Error(\"farr\");if(d&64)return a;d|=64;if(c&&(d|=512,c!==a[0]))throw Error(\"mid\");a:{c=a;const e=c.length;if(e){const f=e-1;if(lb(c[f])){d|=256;b=f-(+!!(d&512)-1);if(b>=1024)throw Error(\"pvtlmt\");d=d&-33521665|(b&1023)<<15;break a}}if(b){b=Math.max(b,e-(+!!(d&512)-1));if(b>1024)throw Error(\"spvt\");d=d&-33521665|(b&\n1023)<<15}}}q(a,d);return a};const Jc={};let Kc=function(){try{return va(new class extends Map{constructor(){super()}}),!1}catch{return!0}}();\nclass Lc{constructor(){this.g=new Map}get(a){return this.g.get(a)}set(a,b){this.g.set(a,b);this.size=this.g.size;return this}delete(a){a=this.g.delete(a);this.size=this.g.size;return a}clear(){this.g.clear();this.size=this.g.size}has(a){return this.g.has(a)}entries(){return this.g.entries()}keys(){return this.g.keys()}values(){return this.g.values()}forEach(a,b){return this.g.forEach(a,b)}[Symbol.iterator](){return this.entries()}}\nconst Mc=(()=>Kc?(Object.setPrototypeOf(Lc.prototype,Map.prototype),Object.defineProperties(Lc.prototype,{size:{value:0,configurable:!0,enumerable:!0,writable:!0}}),Lc):class extends Map{constructor(){super()}})();function Nc(a){return a}function Oc(a){if(a.M&2)throw Error(\"Cannot mutate an immutable Map\");}\nvar Sc=class extends Mc{constructor(a,b,c=Nc,d=Nc){super();let e=n(a);e|=64;q(a,e);this.M=e;this.U=b;this.T=c;this.aa=this.U?Pc:d;for(let f=0;f{a.call(b,this.get(d),d,this)})}set(a,b){Oc(this);a=this.T(a,!0,!1);return a==null?this:b==null?(super.delete(a),this):super.set(a,this.aa(b,!0,!0,this.U,!1,this.M))}Qa(a){const b=this.T(a[0],!1,!0);a=a[1];a=this.U?a===void 0?null:a:this.aa(a,!1,!0,void 0,!1,this.M);super.set(b,a)}has(a){return super.has(this.T(a,!1,!1))}get(a){a=\nthis.T(a,!1,!1);const b=super.get(a);if(b!==void 0){var c=this.U;return c?(c=this.aa(b,!1,!0,c,this.va,this.M),c!==b&&super.set(a,c),c):b}}oa(){return Array.from(super.keys())}Ka(){return super.keys()}[Symbol.iterator](){return this.entries()}};Sc.prototype.toJSON=void 0;Sc.prototype.La=jb;function Pc(a,b,c,d,e,f){a=hc(a,d,c,f);e&&(a=Tc(a));return a}function Qc(a){return a}function Rc(a){return[a,this.get(a)]}let Uc;function Vc(){return Uc||=new Sc(fb([]),void 0,void 0,void 0,Jc)};function Wc(a){switch(typeof a){case \"number\":return isFinite(a)?a:String(a);case \"bigint\":return Gb(a)?Number(a):String(a);case \"boolean\":return a?1:0;case \"object\":if(a)if(Array.isArray(a)){if(nb(a))return}else{if(Ka(a))return Fa(a);if(a instanceof Pa){const b=a.ba;return b==null?\"\":typeof b===\"string\"?b:a.ba=Fa(b)}if(a instanceof Sc)return a.pa()}}return a};function Xc(a,b,c){const d=Wa(a);var e=d.length;const f=b&256?d[e-1]:void 0;e+=f?-1:0;for(b=b&512?1:0;bbd(f,e,d));db(a,32|(c?2:0));return a}function Tc(a){const b=a.u,c=p(b);return c&2?cd(a,b,c,!1):a};function ed(a,b,c,d){if(!(4&b))return!0;if(c==null)return!1;!d&&c===0&&(4096&b||8192&b)&&(a.constructor[cb]=(a.constructor[cb]|0)+1)<5&&Ta();return c===0?!1:!(c&b)}function fd(a,b){a=a.u;return gd(a,p(a),b)}function hd(a,b,c,d){b=d+(+!!(b&512)-1);if(!(b<0||b>=a.length||b>=c))return a[b]}\nfunction gd(a,b,c,d){if(c===-1)return null;const e=b>>15&1023||536870912;if(c>=e){if(b&256)return a[a.length-1][c]}else{var f=a.length;return d&&b&256&&(d=a[f-1][c],d!=null)?(hd(a,b,e,c)&&ab!=null&&(a=Sa??={},b=a[ab]||0,b>=4||(a[ab]=b+1,Ta())),d):hd(a,b,e,c)}}function v(a,b,c){const d=a.u;let e=p(d);qb(e);w(d,e,b,c);return a}\nfunction w(a,b,c,d){const e=b>>15&1023||536870912;if(c>=e){let f,g=b;if(b&256)f=a[a.length-1];else{if(d==null)return g;f=a[e+(+!!(b&512)-1)]={};g|=256}f[c]=d;c ${a}`)};function Rd(a){if(typeof a===\"string\")return{buffer:Ja(a),O:!1};if(Array.isArray(a))return{buffer:new Uint8Array(a),O:!1};if(a.constructor===Uint8Array)return{buffer:a,O:!1};if(a.constructor===ArrayBuffer)return{buffer:new Uint8Array(a),O:!1};if(a.constructor===Pa)return{buffer:Qa(a)||new Uint8Array(0),O:!0};if(a instanceof Uint8Array)return{buffer:new Uint8Array(a.buffer,a.byteOffset,a.byteLength),O:!1};throw Error(\"Type not convertible to a Uint8Array, expected a Uint8Array, an ArrayBuffer, a base64 encoded string, a ByteString or an Array of numbers\");\n};function Sd(a,b){let c,d=0,e=0,f=0;const g=a.h;let k=a.g;do c=g[k++],d|=(c&127)<32&&(e|=(c&127)>>4);for(f=3;f<32&&c&128;f+=7)c=g[k++],e|=(c&127)<>>0,e>>>0);throw Pd();}function Ud(a){let b=0,c=a.g;const d=c+10,e=a.h;for(;c>>0}function Xd(a){var b=a.h;const c=a.g,d=b[c],e=b[c+1],f=b[c+2];b=b[c+3];Td(a,a.g+4);return(d<<0|e<<8|f<<16|b<<24)>>>0}\nfunction $d(a){var b=Xd(a);a=(b>>31)*2+1;const c=b>>>23&255;b&=8388607;return c==255?b?NaN:a*Infinity:c==0?a*1.401298464324817E-45*b:a*Math.pow(2,c-150)*(b+8388608)}function ae(a){return Vd(a)}function be(a,b,{ea:c=!1}={}){a.ea=c;b&&(b=Rd(b),a.h=b.buffer,a.m=b.O,a.j=0,a.l=a.h.length,a.g=a.j)}function Td(a,b){a.g=b;if(b>a.l)throw Qd(a.l,b);}function ce(a,b){if(b<0)throw Error(`Tried to read a negative byte length: ${b}`);const c=a.g,d=c+b;if(d>a.l)throw Qd(b,a.l-c);a.g=d;return c}\nfunction de(a,b){if(b==0)return Oa();var c=ce(a,b);a.ea&&a.m?c=a.h.subarray(c,c+b):(a=a.h,b=c+b,c=c===b?new Uint8Array(0):Hb?a.slice(c,b):new Uint8Array(a.subarray(c,b)));return c.length==0?Oa():new Pa(c,La)}var ee=class{constructor(a,b){this.h=null;this.m=!1;this.g=this.l=this.j=0;be(this,a,b)}clear(){this.h=null;this.m=!1;this.g=this.l=this.j=0;this.ea=!1}},fe=[];function ge(a){var b=a.g;if(b.g==b.l)return!1;a.l=a.g.g;var c=Wd(a.g);b=c>>>3;c&=7;if(!(c>=0&&c<=5))throw Od(c,a.l);if(b<1)throw Error(`Invalid field number: ${b} (at position ${a.l})`);a.m=b;a.h=c;return!0}\nfunction he(a){switch(a.h){case 0:a.h!=0?he(a):Ud(a.g);break;case 1:a=a.g;Td(a,a.g+8);break;case 2:if(a.h!=2)he(a);else{var b=Wd(a.g);a=a.g;Td(a,a.g+b)}break;case 5:a=a.g;Td(a,a.g+4);break;case 3:b=a.m;do{if(!ge(a))throw Error(\"Unmatched start-group tag: stream EOF\");if(a.h==4){if(a.m!=b)throw Error(\"Unmatched end-group tag\");break}he(a)}while(1);break;default:throw Od(a.h,a.l);}}\nfunction ie(a,b,c){const d=a.g.l,e=Wd(a.g),f=a.g.g+e;let g=f-d;g<=0&&(a.g.l=f,c(b,a,void 0,void 0,void 0),g=f-a.g.g);if(g)throw Error(\"Message parsing ended unexpectedly. Expected to read \"+`${e} bytes, instead read ${e-g} bytes, either the `+\"data ended unexpectedly or the message misreported its own length\");a.g.g=f;a.g.l=d;return b}\nfunction je(a){var b=Wd(a.g);a=a.g;var c=ce(a,b);a=a.h;if(ha){var d=a,e;(e=fa)||(e=fa=new TextDecoder(\"utf-8\",{fatal:!0}));b=c+b;d=c===0&&b===d.length?d:d.subarray(c,b);try{var f=e.decode(d)}catch(k){if(ea===void 0){try{e.decode(new Uint8Array([128]))}catch(h){}try{e.decode(new Uint8Array([97])),ea=!0}catch(h){ea=!1}}!ea&&(fa=void 0);throw k;}}else{f=c;b=f+b;c=[];let k=null;let h;for(;f=b?ca():(h=a[f++],g<194||(h&192)!==128?(f--,ca()):c.push((g&31)<<6|h&63)):\ng<240?f>=b-1?ca():(h=a[f++],(h&192)!==128||g===224&&h<160||g===237&&h>=160||((e=a[f++])&192)!==128?(f--,ca()):c.push((g&15)<<12|(h&63)<<6|e&63)):g<=244?f>=b-2?ca():(h=a[f++],(h&192)!==128||(g<<28)+(h-144)>>30!==0||((e=a[f++])&192)!==128||((d=a[f++])&192)!==128?(f--,ca()):(g=(g&7)<<18|(h&63)<<12|(e&63)<<6|d&63,g-=65536,c.push((g>>10&1023)+55296,(g&1023)+56320))):ca();c.length>=8192&&(k=da(k,c),c.length=0)}f=da(k,c)}return f}function ke(a){const b=Wd(a.g);return de(a.g,b)}\nfunction le(a,b,c){var d=Wd(a.g);for(d=a.g.g+d;a.g.g0;l--){g=e[l-1];if(!(g==null||nb(g)||kb(g)&&g.size===0))break;var h=!0}if(e!==a||f||h){if(!b)e=Array.prototype.slice.call(e,\n0,l);else if(h||f||k)e.length=l;k&&e.push(k)}h=e}else h=a}return h};function se(a){if(!a)return te||=new ue(0,0);if(!/^\\d+$/.test(a))return null;Rb(a);return new ue(r,t)}var ue=class{constructor(a,b){this.h=a>>>0;this.g=b>>>0}};let te;function ve(a){if(!a)return we||=new xe(0,0);if(!/^-?\\d+$/.test(a))return null;Rb(a);return new xe(r,t)}var xe=class{constructor(a,b){this.h=a>>>0;this.g=b>>>0}};let we;function ye(a,b,c){for(;c>0||b>127;)a.g.push(b&127|128),b=(b>>>7|c<<25)>>>0,c>>>=7;a.g.push(b)}function ze(a,b){for(;b>127;)a.g.push(b&127|128),b>>>=7;a.g.push(b)}function Ae(a,b){if(b>=0)ze(a,b);else{for(let c=0;c<9;c++)a.g.push(b&127|128),b>>=7;a.g.push(1)}}function Be(a,b){a.g.push(b>>>0&255);a.g.push(b>>>8&255);a.g.push(b>>>16&255);a.g.push(b>>>24&255)}var Ce=class{constructor(){this.g=[]}length(){return this.g.length}end(){const a=this.g;this.g=[];return a}};function De(a,b){b.length!==0&&(a.l.push(b),a.h+=b.length)}function Ee(a,b,c){ze(a.g,b*8+c)}function Fe(a,b){Ee(a,b,2);b=a.g.end();De(a,b);b.push(a.h);return b}function Ge(a,b){var c=b.pop();for(c=a.h+a.g.length()-c;c>127;)b.push(c&127|128),c>>>=7,a.h++;b.push(c);a.h++}function He(a,b,c){Ee(a,b,2);ze(a.g,c.length);De(a,a.g.end());De(a,c)}function Ie(a,b,c,d){c!=null&&(b=Fe(a,b),d(c,a),Ge(a,b))}var Je=class{constructor(){this.l=[];this.h=0;this.g=new Ce}};class Ke{constructor(a,b,c){this.g=a;this.h=b;this.qa=c}};function Le(a){return Array.isArray(a)?a[0]instanceof Ke?a:[Me,a]:[a,void 0]}function Ne(a,b){if(Array.isArray(b)){var c=n(b);if(c&4)return b;for(var d=0,e=0;dd(e,f,c):(e,f)=>{for(;ge(f)&&f.h!=4;){var g=f.m;let l=c[g];const u=!l;let E=!1;if(!l){var k=c.X;if(k){var h=k[g];h&&(E=k.P?.[g],(!oa||E)&&(k=Re(h))&&(l=c[g]=k))}}l&&l(f,e,g)||(k=f,g=k.l,he(k),k.ja?k=void 0:(h=k.g.g-g,k.g.g=g,k=de(k.g,h)),g=e,k&&(sb||=Symbol(),(h=g[sb])?h.push(k):g[sb]=[k]));u&&l&&!E&&Se++<5&&Ta()}};a[Oe]=b}return b}\nfunction Re(a){a=Le(a);const b=a[0].g;if(a=a[1]){const c=Pe(a),d=Qe(a).g;return(e,f,g)=>b(e,f,g,d,c)}return b}function Te(a,b,c){a[b]=c}\nfunction Ue(a,b,c,d){var e=Te;b.g=Ec(a[0]);let f=0;var g=a[++f];g&&g.constructor===Object&&(b.X=g,g=a[++f],typeof g===\"function\"&&(b.h=g,b.l=a[++f],g=a[++f]));const k={};for(;Array.isArray(g)&&typeof g[0]===\"number\"&&g[0]>0;){for(var h=0;hZe(d,e,c);a[We]=b}return b}const $e=Symbol();function af(a){return a.h}function bf(a,b){let c,d;const e=a.h;return(f,g,k)=>e(f,g,k,d||=Ye(b).g,c||=Xe(b))}function Ye(a){let b=a[$e];return b?b:b=Ue(a,a[$e]={},af,bf)}const cf=Symbol();function df(a,b){const c=a.g;return b?(d,e,f)=>c(d,e,f,b):c}\nfunction ef(a,b,c){const d=a.g;let e,f;return(g,k,h)=>d(g,k,h,f||=Qe(b).g,e||=Pe(b),c)}function Qe(a){let b=a[cf];return b?b:b=Ue(a,a[cf]={},df,ef)}function ff(a,b){var c=a[b];if(c)return c;if(c=a.X){var d=c[b];if(d){d=Le(d);var e=d[0].h;d=d[1];c=c.P?.[b];if(!oa||c){if(d){const f=Xe(d),g=Ye(d).g;c=(c=a.l)?c(g,f):(k,h,l)=>e(k,h,l,g,f)}else c=e;return a[b]=c}}}}\nfunction Ze(a,b,c){for(var d=p(a),e=+!!(d&512)-1,f=a.length,g=d&512?1:0,k=f+(d&256?-1:0);g{Ie(a,c,Fc([g,f],d),e)});else if(Array.isArray(b))for(let f=0;f>BigInt(32)));ye(a.g,c.h,c.g);break;default:c=ve(b),ye(a.g,c.h,c.g)}}}function nf(a,b,c){b=Wb(b);b!=null&&b!=null&&(Ee(a,c,0),Ae(a.g,b))}function of(a,b,c){b=Tb(b);b!=null&&(Ee(a,c,0),a.g.g.push(b?1:0))}function pf(a,b,c){b=gc(b);b!=null&&He(a,c,ka(b))}\nfunction qf(a,b,c,d,e){b instanceof B?(Ac(b),b=b.u):b=Array.isArray(b)?Fc(b,d):void 0;Ie(a,c,b,e)}function rf(a,b,c){b=b==null||typeof b==\"string\"||Ka(b)||b instanceof Pa?b:void 0;b!=null&&He(a,c,Rd(b).buffer)}function sf(a,b,c){if(a.h!==5&&a.h!==2)return!1;b=id(b,p(b),c,2,!1);a.h==2?le(a,$d,b):b.push($d(a.g));return!0}\nvar tf=gf(function(a,b,c){if(a.h!==1)return!1;var d=a.g;a=Xd(d);const e=Xd(d);d=(e>>31)*2+1;const f=e>>>20&2047;a=4294967296*(e&1048575)+a;kf(b,c,f==2047?a?NaN:d*Infinity:f==0?d*4.9E-324*a:d*Math.pow(2,f-1075)*(a+4503599627370496));return!0},function(a,b,c){b=Sb(b);b!=null&&(Ee(a,c,1),a=a.g,c=Ib||=new DataView(new ArrayBuffer(8)),c.setFloat64(0,+b,!0),r=c.getUint32(0,!0),t=c.getUint32(4,!0),Be(a,r),Be(a,t))}),C=gf(function(a,b,c){if(a.h!==5)return!1;kf(b,c,$d(a.g));return!0},function(a,b,c){b=Sb(b);\nb!=null&&(Ee(a,c,5),a=a.g,Mb(b),Be(a,r))}),uf=hf(sf,function(a,b,c){b=Ne(Sb,b);if(b!=null)for(let g=0;g>BigInt(32)));ye(a.g,c.h,c.g);break;default:c=se(b),ye(a.g,c.h,c.g)}}}),D=gf(function(a,b,c){if(a.h!==0)return!1;kf(b,c,Vd(a.g));return!0},nf),zf=hf(function(a,b,c){if(a.h!==0&&a.h!==2)return!1;b=id(b,p(b),c,2,\n!1);a.h==2?le(a,Vd,b):b.push(Vd(a.g));return!0},function(a,b,c){b=Ne(Wb,b);if(b!=null&&b.length){c=Fe(a,c);for(let d=0;d{if(ne.length){const f=ne.pop();f.o(d);be(f.g,c,d);c=f}else c=new me(c,d);try{const f=new a,g=f.u;Pe(b)(g,c);var e=f}finally{c.g.clear(),c.m=-1,c.h=-1,ne.length<100&&ne.push(c)}return e}}function Jf(a){return function(){Ac(this);const b=new Je;Ze(this.u,b,Ye(a));De(b,b.g.end());const c=new Uint8Array(b.h),d=b.l,e=d.length;let f=0;for(let g=0;g({index:Hd(Id(d,1),0)??-1,score:z(d,2)??0,categoryName:Jd(d,3)??\"\",displayName:Jd(d,4)??\"\"})),headIndex:b,headName:c}}function Ih(a){const b={classifications:Ed(a,yg,1).map(c=>Hh(x(c,kg,4)?.g()??[],Hd(Id(c,2),0),Jd(c,3)))};bc(fd(a,2))!=null&&(b.timestampMs=Hd(bc(fd(a,2)),0));return b};function Jh(a){var b=md(a,3,Sb,ld());var c=md(a,2,Wb,ld());var d=md(a,1,gc,ld());var e=md(a,9,gc,ld());const f={categories:[],keypoints:[]};for(let g=0;g{const c={headIndex:Hd(Id(b,3),0)??-1,headName:Jd(b,4)??\"\"};if(Cd(b,Ag,wd(b,1))!==void 0)b=x(b,Ag,wd(b,1)),b=md(b,1,Sb,ld()),c.floatEmbedding=b.slice();else{const d=new Uint8Array(0);c.quantizedEmbedding=x(b,Bg,wd(b,2))?.ra()?.ua()??d}return c}),timestampMs:Hd(bc(fd(a,2)),0)}};function Lh(a){const b=[];for(const c of Ed(a,tg,1))b.push({x:z(c,1)??0,y:z(c,2)??0,z:z(c,3)??0,visibility:z(c,4)??0});return b}function Mh(a){const b=[];for(const c of Ed(a,rg,1))b.push({x:z(c,1)??0,y:z(c,2)??0,z:z(c,3)??0,visibility:z(c,4)??0});return b};function Nh(a){return Array.from(a,b=>b>127?b-256:b)}function Oh(a,b){if(a.length!==b.length)throw Error(`Cannot compute cosine similarity between embeddings of different sizes (${a.length} vs. ${b.length}).`);let c=0,d=0,e=0;for(let f=0;f=1&&Number(a[1])>=17?!0:!1:!0};async function Wh(a){if(typeof importScripts===\"function\")importScripts(a.toString());else{const b=document.createElement(\"script\");b.src=a.toString();b.crossOrigin=\"anonymous\";return new Promise((c,d)=>{b.addEventListener(\"load\",()=>{c()},!1);b.addEventListener(\"error\",e=>{d(e)},!1);document.body.appendChild(b)})}};function Xh(a){return a.videoWidth!==void 0?[a.videoWidth,a.videoHeight]:a.naturalWidth!==void 0?[a.naturalWidth,a.naturalHeight]:a.displayWidth!==void 0?[a.displayWidth,a.displayHeight]:[a.width,a.height]}function T(a,b,c){a.m||console.error(\"No wasm multistream support detected: ensure dependency inclusion of :gl_graph_runner_internal_multi_input target\");b=a.i.stringToNewUTF8(b);c(b);a.i._free(b)}\nfunction Yh(a,b,c){if(!a.i.canvas)throw Error(\"No OpenGL canvas configured.\");c?a.i._bindTextureToStream(c):a.i._bindTextureToCanvas();c=a.i.canvas.getContext(\"webgl2\")||a.i.canvas.getContext(\"webgl\");if(!c)throw Error(\"Failed to obtain WebGL context from the provided canvas. `getContext()` should only be invoked with `webgl` or `webgl2`.\");a.i.gpuOriginForWebTexturesIsBottomLeft&&c.pixelStorei(c.UNPACK_FLIP_Y_WEBGL,!0);c.texImage2D(c.TEXTURE_2D,0,c.RGBA,c.RGBA,c.UNSIGNED_BYTE,b);a.i.gpuOriginForWebTexturesIsBottomLeft&&\nc.pixelStorei(c.UNPACK_FLIP_Y_WEBGL,!1);const [d,e]=Xh(b);!a.l||d===a.i.canvas.width&&e===a.i.canvas.height||(a.i.canvas.width=d,a.i.canvas.height=e);return[d,e]}\nfunction Zh(a,b,c){a.m||console.error(\"No wasm multistream support detected: ensure dependency inclusion of :gl_graph_runner_internal_multi_input target\");const d=new Uint32Array(b.length);for(let e=0;e>2);c(b);for(const e of d)a.i._free(e);a.i._free(b)}function $h(a,b,c){a.i.simpleListeners=a.i.simpleListeners||{};a.i.simpleListeners[b]=c}\nfunction ai(a,b,c){let d=[];a.i.simpleListeners=a.i.simpleListeners||{};a.i.simpleListeners[b]=(e,f,g)=>{f?(c(d,g),d=[]):d.push(e)}}\nvar bi=class{constructor(a,b){this.l=!0;this.i=a;this.g=null;this.h=0;this.m=typeof this.i._addIntToInputStream===\"function\";b!==void 0?this.i.canvas=b:Vh()?this.i.canvas=new OffscreenCanvas(1,1):(console.warn(\"OffscreenCanvas not supported and GraphRunner constructor glCanvas parameter is undefined. Creating backup canvas.\"),this.i.canvas=document.createElement(\"canvas\"))}async initializeGraph(a){const b=await (await fetch(a)).arrayBuffer();a=!(a.endsWith(\".pbtxt\")||a.endsWith(\".textproto\"));this.setGraph(new Uint8Array(b),\na)}setGraphFromString(a){this.setGraph((new TextEncoder).encode(a),!1)}setGraph(a,b){const c=a.length,d=this.i._malloc(c);this.i.HEAPU8.set(a,d);b?this.i._changeBinaryGraph(c,d):this.i._changeTextGraph(c,d);this.i._free(d)}configureAudio(a,b,c,d,e){this.i._configureAudio||console.warn('Attempting to use configureAudio without support for input audio. Is build dep \":gl_graph_runner_audio\" missing?');T(this,d||\"input_audio\",f=>{e=e||\"audio_header\";T(this,e,g=>{this.i._configureAudio(f,g,a,b,c)})})}setAutoResizeCanvas(a){this.l=\na}setAutoRenderToScreen(a){this.i._setAutoRenderToScreen(a)}setGpuBufferVerticalFlip(a){this.i.gpuOriginForWebTexturesIsBottomLeft=a}ga(a){$h(this,\"__graph_config__\",b=>{a(b)});T(this,\"__graph_config__\",b=>{this.i._getGraphConfig(b,void 0)});delete this.i.simpleListeners.__graph_config__}attachErrorListener(a){this.i.errorListener=a}attachEmptyPacketListener(a,b){this.i.emptyPacketListeners=this.i.emptyPacketListeners||{};this.i.emptyPacketListeners[a]=b}addAudioToStream(a,b,c){this.addAudioToStreamWithShape(a,\n0,0,b,c)}addAudioToStreamWithShape(a,b,c,d,e){const f=a.length*4;this.h!==f&&(this.g&&this.i._free(this.g),this.g=this.i._malloc(f),this.h=f);this.i.HEAPF32.set(a,this.g/4);T(this,d,g=>{this.i._addAudioToInputStream(this.g,b,c,g,e)})}addGpuBufferToStream(a,b,c){T(this,b,d=>{const [e,f]=Yh(this,a,d);this.i._addBoundTextureToStream(d,e,f,c)})}addBoolToStream(a,b,c){T(this,b,d=>{this.i._addBoolToInputStream(a,d,c)})}addDoubleToStream(a,b,c){T(this,b,d=>{this.i._addDoubleToInputStream(a,d,c)})}addFloatToStream(a,\nb,c){T(this,b,d=>{this.i._addFloatToInputStream(a,d,c)})}addIntToStream(a,b,c){T(this,b,d=>{this.i._addIntToInputStream(a,d,c)})}addUintToStream(a,b,c){T(this,b,d=>{this.i._addUintToInputStream(a,d,c)})}addStringToStream(a,b,c){T(this,b,d=>{T(this,a,e=>{this.i._addStringToInputStream(e,d,c)})})}addStringRecordToStream(a,b,c){T(this,b,d=>{Zh(this,Object.keys(a),e=>{Zh(this,Object.values(a),f=>{this.i._addFlatHashMapToInputStream(e,f,Object.keys(a).length,d,c)})})})}addProtoToStream(a,b,c,d){T(this,\nc,e=>{T(this,b,f=>{const g=this.i._malloc(a.length);this.i.HEAPU8.set(a,g);this.i._addProtoToInputStream(g,a.length,f,e,d);this.i._free(g)})})}addEmptyPacketToStream(a,b){T(this,a,c=>{this.i._addEmptyPacketToInputStream(c,b)})}addBoolVectorToStream(a,b,c){T(this,b,d=>{const e=this.i._allocateBoolVector(a.length);if(!e)throw Error(\"Unable to allocate new bool vector on heap.\");for(const f of a)this.i._addBoolVectorEntry(e,f);this.i._addBoolVectorToInputStream(e,d,c)})}addDoubleVectorToStream(a,b,c){T(this,\nb,d=>{const e=this.i._allocateDoubleVector(a.length);if(!e)throw Error(\"Unable to allocate new double vector on heap.\");for(const f of a)this.i._addDoubleVectorEntry(e,f);this.i._addDoubleVectorToInputStream(e,d,c)})}addFloatVectorToStream(a,b,c){T(this,b,d=>{const e=this.i._allocateFloatVector(a.length);if(!e)throw Error(\"Unable to allocate new float vector on heap.\");for(const f of a)this.i._addFloatVectorEntry(e,f);this.i._addFloatVectorToInputStream(e,d,c)})}addIntVectorToStream(a,b,c){T(this,\nb,d=>{const e=this.i._allocateIntVector(a.length);if(!e)throw Error(\"Unable to allocate new int vector on heap.\");for(const f of a)this.i._addIntVectorEntry(e,f);this.i._addIntVectorToInputStream(e,d,c)})}addUintVectorToStream(a,b,c){T(this,b,d=>{const e=this.i._allocateUintVector(a.length);if(!e)throw Error(\"Unable to allocate new unsigned int vector on heap.\");for(const f of a)this.i._addUintVectorEntry(e,f);this.i._addUintVectorToInputStream(e,d,c)})}addStringVectorToStream(a,b,c){T(this,b,d=>\n{const e=this.i._allocateStringVector(a.length);if(!e)throw Error(\"Unable to allocate new string vector on heap.\");for(const f of a)T(this,f,g=>{this.i._addStringVectorEntry(e,g)});this.i._addStringVectorToInputStream(e,d,c)})}addBoolToInputSidePacket(a,b){T(this,b,c=>{this.i._addBoolToInputSidePacket(a,c)})}addDoubleToInputSidePacket(a,b){T(this,b,c=>{this.i._addDoubleToInputSidePacket(a,c)})}addFloatToInputSidePacket(a,b){T(this,b,c=>{this.i._addFloatToInputSidePacket(a,c)})}addIntToInputSidePacket(a,\nb){T(this,b,c=>{this.i._addIntToInputSidePacket(a,c)})}addUintToInputSidePacket(a,b){T(this,b,c=>{this.i._addUintToInputSidePacket(a,c)})}addStringToInputSidePacket(a,b){T(this,b,c=>{T(this,a,d=>{this.i._addStringToInputSidePacket(d,c)})})}addProtoToInputSidePacket(a,b,c){T(this,c,d=>{T(this,b,e=>{const f=this.i._malloc(a.length);this.i.HEAPU8.set(a,f);this.i._addProtoToInputSidePacket(f,a.length,e,d);this.i._free(f)})})}addBoolVectorToInputSidePacket(a,b){T(this,b,c=>{const d=this.i._allocateBoolVector(a.length);\nif(!d)throw Error(\"Unable to allocate new bool vector on heap.\");for(const e of a)this.i._addBoolVectorEntry(d,e);this.i._addBoolVectorToInputSidePacket(d,c)})}addDoubleVectorToInputSidePacket(a,b){T(this,b,c=>{const d=this.i._allocateDoubleVector(a.length);if(!d)throw Error(\"Unable to allocate new double vector on heap.\");for(const e of a)this.i._addDoubleVectorEntry(d,e);this.i._addDoubleVectorToInputSidePacket(d,c)})}addFloatVectorToInputSidePacket(a,b){T(this,b,c=>{const d=this.i._allocateFloatVector(a.length);\nif(!d)throw Error(\"Unable to allocate new float vector on heap.\");for(const e of a)this.i._addFloatVectorEntry(d,e);this.i._addFloatVectorToInputSidePacket(d,c)})}addIntVectorToInputSidePacket(a,b){T(this,b,c=>{const d=this.i._allocateIntVector(a.length);if(!d)throw Error(\"Unable to allocate new int vector on heap.\");for(const e of a)this.i._addIntVectorEntry(d,e);this.i._addIntVectorToInputSidePacket(d,c)})}addUintVectorToInputSidePacket(a,b){T(this,b,c=>{const d=this.i._allocateUintVector(a.length);\nif(!d)throw Error(\"Unable to allocate new unsigned int vector on heap.\");for(const e of a)this.i._addUintVectorEntry(d,e);this.i._addUintVectorToInputSidePacket(d,c)})}addStringVectorToInputSidePacket(a,b){T(this,b,c=>{const d=this.i._allocateStringVector(a.length);if(!d)throw Error(\"Unable to allocate new string vector on heap.\");for(const e of a)T(this,e,f=>{this.i._addStringVectorEntry(d,f)});this.i._addStringVectorToInputSidePacket(d,c)})}attachBoolListener(a,b){$h(this,a,b);T(this,a,c=>{this.i._attachBoolListener(c)})}attachBoolVectorListener(a,\nb){ai(this,a,b);T(this,a,c=>{this.i._attachBoolVectorListener(c)})}attachIntListener(a,b){$h(this,a,b);T(this,a,c=>{this.i._attachIntListener(c)})}attachIntVectorListener(a,b){ai(this,a,b);T(this,a,c=>{this.i._attachIntVectorListener(c)})}attachUintListener(a,b){$h(this,a,b);T(this,a,c=>{this.i._attachUintListener(c)})}attachUintVectorListener(a,b){ai(this,a,b);T(this,a,c=>{this.i._attachUintVectorListener(c)})}attachDoubleListener(a,b){$h(this,a,b);T(this,a,c=>{this.i._attachDoubleListener(c)})}attachDoubleVectorListener(a,\nb){ai(this,a,b);T(this,a,c=>{this.i._attachDoubleVectorListener(c)})}attachFloatListener(a,b){$h(this,a,b);T(this,a,c=>{this.i._attachFloatListener(c)})}attachFloatVectorListener(a,b){ai(this,a,b);T(this,a,c=>{this.i._attachFloatVectorListener(c)})}attachStringListener(a,b){$h(this,a,b);T(this,a,c=>{this.i._attachStringListener(c)})}attachStringVectorListener(a,b){ai(this,a,b);T(this,a,c=>{this.i._attachStringVectorListener(c)})}attachProtoListener(a,b,c){$h(this,a,b);T(this,a,d=>{this.i._attachProtoListener(d,\nc||!1)})}attachProtoVectorListener(a,b,c){ai(this,a,b);T(this,a,d=>{this.i._attachProtoVectorListener(d,c||!1)})}attachAudioListener(a,b,c){this.i._attachAudioListener||console.warn('Attempting to use attachAudioListener without support for output audio. Is build dep \":gl_graph_runner_audio_out\" missing?');$h(this,a,(d,e)=>{d=new Float32Array(d.buffer,d.byteOffset,d.length/4);b(d,e)});T(this,a,d=>{this.i._attachAudioListener(d,c||!1)})}finishProcessing(){this.i._waitUntilIdle()}closeGraph(){this.i._closeGraph();\nthis.i.simpleListeners=void 0;this.i.emptyPacketListeners=void 0}},ci=async(a,b,c,d,e)=>{b&&await Wh(b);if(!self.ModuleFactory)throw Error(\"ModuleFactory not set.\");if(c&&(await Wh(c),!self.ModuleFactory))throw Error(\"ModuleFactory not set.\");self.Module&&e&&(b=self.Module,b.locateFile=e.locateFile,e.mainScriptUrlOrBlob&&(b.mainScriptUrlOrBlob=e.mainScriptUrlOrBlob));e=await self.ModuleFactory(self.Module||e);self.ModuleFactory=self.Module=void 0;return new a(e,d)};async function di(a,b,c,d){a=await ci(a,c.wasmLoaderPath,c.assetLoaderPath,b,{locateFile(e){return e.endsWith(\".wasm\")?c.wasmBinaryPath.toString():c.assetBinaryPath&&e.endsWith(\".data\")?c.assetBinaryPath.toString():e}});await a.o(d);return a}async function ei(a,b,c,d){return di(a,b,c,d)}function fi(a,b){let c=x(a.baseOptions,Ig,3);if(!c){var d=c=new Ig,e=new Rf;Fd(d,4,Jg,e)}\"delegate\"in b&&(b.delegate===\"GPU\"?(b=c,d=new Of,Fd(b,2,Jg,d)):(b=c,d=new Rf,Fd(b,4,Jg,d)));y(a.baseOptions,Ig,3,c)}\nfunction gi(a,b){const c=x(a.baseOptions,Kg,1)||new Kg;typeof b===\"string\"?(v(c,2,fc(b)),v(c,1)):b instanceof Uint8Array&&(v(c,1,mb(b,!1,!1)),v(c,2));y(a.baseOptions,Kg,1,c)}function hi(a){try{const b=a.H.length;if(b===1)throw Error(a.H[0].message);if(b>1)throw Error(\"Encountered multiple errors: \"+a.H.map(c=>c.message).join(\", \"));}finally{a.H=[]}}function U(a,b){a.B=Math.max(a.B,b)}\nfunction ii(a,b){a.A=new O;bg(a.A,\"PassThroughCalculator\");M(a.A,\"free_memory\");N(a.A,\"free_memory_unused_out\");P(b,\"free_memory\");fg(b,a.A)}function ji(a,b){M(a.A,b);N(a.A,b+\"_unused_out\")}function ki(a){a.g.addBoolToStream(!0,\"free_memory\",a.B)}\nvar mi=class{constructor(a){this.g=a;this.H=[];this.B=0;this.g.setAutoRenderToScreen(!1)}l(a,b=!0){if(b){const c=a.baseOptions||{};if(a.baseOptions?.modelAssetBuffer&&a.baseOptions?.modelAssetPath)throw Error(\"Cannot set both baseOptions.modelAssetPath and baseOptions.modelAssetBuffer\");if(!(x(this.baseOptions,Kg,1)?.g()||x(this.baseOptions,Kg,1)?.h()||a.baseOptions?.modelAssetBuffer||a.baseOptions?.modelAssetPath))throw Error(\"Either baseOptions.modelAssetPath or baseOptions.modelAssetBuffer must be set\");\nfi(this,c);if(c.modelAssetPath)return fetch(c.modelAssetPath.toString()).then(d=>{if(d.ok)return d.arrayBuffer();throw Error(`Failed to fetch model: ${c.modelAssetPath} (${d.status})`);}).then(d=>{try{this.g.i.FS_unlink(\"/model.dat\")}catch{}this.g.i.FS_createDataFile(\"/\",\"model.dat\",new Uint8Array(d),!0,!1,!1);gi(this,\"/model.dat\");this.m();this.J()});if(c.modelAssetBuffer instanceof Uint8Array)gi(this,c.modelAssetBuffer);else if(c.modelAssetBuffer)return li(c.modelAssetBuffer).then(d=>{gi(this,d);\nthis.m();this.J()})}this.m();this.J();return Promise.resolve()}J(){}ga(){let a;this.g.ga(b=>{a=ig(b)});if(!a)throw Error(\"Failed to retrieve CalculatorGraphConfig\");return a}setGraph(a,b){this.g.attachErrorListener((c,d)=>{this.H.push(Error(d))});this.g.Oa();this.g.setGraph(a,b);this.A=void 0;hi(this)}finishProcessing(){this.g.finishProcessing();hi(this)}close(){this.A=void 0;this.g.closeGraph()}};mi.prototype.close=mi.prototype.close;\nasync function li(a){const b=[];for(var c=0;;){const {done:d,value:e}=await a.read();if(d)break;b.push(e);c+=e.length}if(b.length===0)return new Uint8Array(0);if(b.length===1)return b[0];a=new Uint8Array(c);c=0;for(const d of b)a.set(d,c),c+=d.length;return a}m(\"TaskRunner\",mi);function ni(a,b){if(!a)throw Error(`Unable to obtain required WebGL resource: ${b}`);return a}class oi{constructor(a,b,c,d){this.g=a;this.h=b;this.m=c;this.l=d}bind(){this.g.bindVertexArray(this.h)}close(){this.g.deleteVertexArray(this.h);this.g.deleteBuffer(this.m);this.g.deleteBuffer(this.l)}}\nfunction pi(a,b,c){const d=a.g;c=ni(d.createShader(c),\"Failed to create WebGL shader\");d.shaderSource(c,b);d.compileShader(c);if(!d.getShaderParameter(c,d.COMPILE_STATUS))throw Error(`Could not compile WebGL shader: ${d.getShaderInfoLog(c)}`);d.attachShader(a.h,c);return c}\nfunction qi(a,b){const c=a.g,d=ni(c.createVertexArray(),\"Failed to create vertex array\");c.bindVertexArray(d);const e=ni(c.createBuffer(),\"Failed to create buffer\");c.bindBuffer(c.ARRAY_BUFFER,e);c.enableVertexAttribArray(a.R);c.vertexAttribPointer(a.R,2,c.FLOAT,!1,0,0);c.bufferData(c.ARRAY_BUFFER,new Float32Array([-1,-1,-1,1,1,1,1,-1]),c.STATIC_DRAW);const f=ni(c.createBuffer(),\"Failed to create buffer\");c.bindBuffer(c.ARRAY_BUFFER,f);c.enableVertexAttribArray(a.J);c.vertexAttribPointer(a.J,2,c.FLOAT,\n!1,0,0);c.bufferData(c.ARRAY_BUFFER,new Float32Array(b?[0,1,0,0,1,0,1,1]:[0,0,0,1,1,1,1,0]),c.STATIC_DRAW);c.bindBuffer(c.ARRAY_BUFFER,null);c.bindVertexArray(null);return new oi(c,d,e,f)}function ri(a,b){if(!a.g)a.g=b;else if(b!==a.g)throw Error(\"Cannot change GL context once initialized\");}function si(a,b,c,d){ri(a,b);a.h||(a.m(),a.C());c?(a.s||(a.s=qi(a,!0)),c=a.s):(a.v||(a.v=qi(a,!1)),c=a.v);b.useProgram(a.h);c.bind();a.l();a=d();c.g.bindVertexArray(null);return a}\nfunction ti(a,b,c){ri(a,b);a=ni(b.createTexture(),\"Failed to create texture\");b.bindTexture(b.TEXTURE_2D,a);b.texParameteri(b.TEXTURE_2D,b.TEXTURE_WRAP_S,b.CLAMP_TO_EDGE);b.texParameteri(b.TEXTURE_2D,b.TEXTURE_WRAP_T,b.CLAMP_TO_EDGE);b.texParameteri(b.TEXTURE_2D,b.TEXTURE_MIN_FILTER,c??b.LINEAR);b.texParameteri(b.TEXTURE_2D,b.TEXTURE_MAG_FILTER,c??b.LINEAR);b.bindTexture(b.TEXTURE_2D,null);return a}\nfunction ui(a,b,c){ri(a,b);a.A||(a.A=ni(b.createFramebuffer(),\"Failed to create framebuffe.\"));b.bindFramebuffer(b.FRAMEBUFFER,a.A);b.framebufferTexture2D(b.FRAMEBUFFER,b.COLOR_ATTACHMENT0,b.TEXTURE_2D,c,0)}function vi(a){a.g?.bindFramebuffer(a.g.FRAMEBUFFER,null)}\nvar wi=class{H(){return\"\\n precision mediump float;\\n varying vec2 vTex;\\n uniform sampler2D inputTexture;\\n void main() {\\n gl_FragColor = texture2D(inputTexture, vTex);\\n }\\n \"}m(){const a=this.g;this.h=ni(a.createProgram(),\"Failed to create WebGL program\");this.da=pi(this,\"\\n attribute vec2 aVertex;\\n attribute vec2 aTex;\\n varying vec2 vTex;\\n void main(void) {\\n gl_Position = vec4(aVertex, 0.0, 1.0);\\n vTex = aTex;\\n }\",a.VERTEX_SHADER);this.ca=pi(this,this.H(),a.FRAGMENT_SHADER);\na.linkProgram(this.h);if(!a.getProgramParameter(this.h,a.LINK_STATUS))throw Error(`Error during program linking: ${a.getProgramInfoLog(this.h)}`);this.R=a.getAttribLocation(this.h,\"aVertex\");this.J=a.getAttribLocation(this.h,\"aTex\")}C(){}l(){}close(){if(this.h){const a=this.g;a.deleteProgram(this.h);a.deleteShader(this.da);a.deleteShader(this.ca)}this.A&&this.g.deleteFramebuffer(this.A);this.v&&this.v.close();this.s&&this.s.close()}};function xi(a,b){if(a!==b)return!1;a=a.entries();b=b.entries();for(const [d,e]of a){a=d;const f=e;var c=b.next();if(c.done)return!1;const [g,k]=c.value;c=k;if(a!==g||f[0]!==c[0]||f[1]!==c[1]||f[2]!==c[2]||f[3]!==c[3])return!1}return!!b.next().done}\nfunction yi(a,b,c,d){const e=a.g;e.activeTexture(e.TEXTURE0);e.bindTexture(e.TEXTURE_2D,b);e.activeTexture(e.TEXTURE1);e.bindTexture(e.TEXTURE_2D,a.B);e.texImage2D(e.TEXTURE_2D,0,e.RGBA,e.RGBA,e.UNSIGNED_BYTE,c);if(a.I&&xi(a.I,d))e.activeTexture(e.TEXTURE2),e.bindTexture(e.TEXTURE_2D,a.j);else{a.I=d;const f=Array(1024).fill(0);d.forEach((g,k)=>{if(g.length!==4)throw Error(`Color at index ${k} is not a four-channel value.`);f[k*4]=g[0];f[k*4+1]=g[1];f[k*4+2]=g[2];f[k*4+3]=g[3]});e.activeTexture(e.TEXTURE2);\ne.bindTexture(e.TEXTURE_2D,a.j);e.texImage2D(e.TEXTURE_2D,0,e.RGBA,256,1,0,e.RGBA,e.UNSIGNED_BYTE,new Uint8Array(f))}}\nvar zi=class extends wi{H(){return\"\\n precision mediump float;\\n uniform sampler2D backgroundTexture;\\n uniform sampler2D maskTexture;\\n uniform sampler2D colorMappingTexture;\\n varying vec2 vTex;\\n void main() {\\n vec4 backgroundColor = texture2D(backgroundTexture, vTex);\\n float category = texture2D(maskTexture, vTex).r;\\n vec4 categoryColor = texture2D(colorMappingTexture, vec2(category, 0.0));\\n gl_FragColor = mix(backgroundColor, categoryColor, categoryColor.a);\\n }\\n \"}C(){const a=this.g;\na.activeTexture(a.TEXTURE1);this.B=ti(this,a,a.LINEAR);a.activeTexture(a.TEXTURE2);this.j=ti(this,a,a.NEAREST)}m(){super.m();const a=this.g;this.L=ni(a.getUniformLocation(this.h,\"backgroundTexture\"),\"Uniform location\");this.V=ni(a.getUniformLocation(this.h,\"colorMappingTexture\"),\"Uniform location\");this.K=ni(a.getUniformLocation(this.h,\"maskTexture\"),\"Uniform location\")}l(){super.l();const a=this.g;a.uniform1i(this.K,0);a.uniform1i(this.L,1);a.uniform1i(this.V,2)}close(){this.B&&this.g.deleteTexture(this.B);\nthis.j&&this.g.deleteTexture(this.j);super.close()}};var Ai=class extends wi{H(){return\"\\n precision mediump float;\\n uniform sampler2D maskTexture;\\n uniform sampler2D defaultTexture;\\n uniform sampler2D overlayTexture;\\n varying vec2 vTex;\\n void main() {\\n float confidence = texture2D(maskTexture, vTex).r;\\n vec4 defaultColor = texture2D(defaultTexture, vTex);\\n vec4 overlayColor = texture2D(overlayTexture, vTex);\\n // Apply the alpha from the overlay and merge in the default color\\n overlayColor = mix(defaultColor, overlayColor, overlayColor.a);\\n gl_FragColor = mix(defaultColor, overlayColor, confidence);\\n }\\n \"}C(){const a=\nthis.g;a.activeTexture(a.TEXTURE1);this.j=ti(this,a);a.activeTexture(a.TEXTURE2);this.B=ti(this,a)}m(){super.m();const a=this.g;this.K=ni(a.getUniformLocation(this.h,\"defaultTexture\"),\"Uniform location\");this.L=ni(a.getUniformLocation(this.h,\"overlayTexture\"),\"Uniform location\");this.I=ni(a.getUniformLocation(this.h,\"maskTexture\"),\"Uniform location\")}l(){super.l();const a=this.g;a.uniform1i(this.I,0);a.uniform1i(this.K,1);a.uniform1i(this.L,2)}close(){this.j&&this.g.deleteTexture(this.j);this.B&&\nthis.g.deleteTexture(this.B);super.close()}};function Bi(a,b){switch(b){case 0:return a.g.find(c=>c instanceof Uint8Array);case 1:return a.g.find(c=>c instanceof Float32Array);case 2:return a.g.find(c=>typeof WebGLTexture!==\"undefined\"&&c instanceof WebGLTexture);default:throw Error(`Type is not supported: ${b}`);}}function Ci(a){var b=Bi(a,0);b||(b=Di(a),b=new Uint8Array(b.map(c=>255*c)),a.g.push(b));return b}\nfunction Di(a){var b=Bi(a,1);if(!b){if(b=Bi(a,0))b=(new Float32Array(b)).map(d=>d/255);else{b=new Float32Array(a.width*a.height);const d=Ei(a);var c=Fi(a);const e=Gi(a);ui(c,d,e);if(\"iPad Simulator;iPhone Simulator;iPod Simulator;iPad;iPhone;iPod\".split(\";\").includes(navigator.platform)||navigator.userAgent.includes(\"Mac\")&&\"ontouchend\"in self.document){c=new Float32Array(a.width*a.height*4);d.readPixels(0,0,a.width,a.height,d.RGBA,d.FLOAT,c);for(let f=0,g=0;f{Hi(this);d.clearColor(0,0,0,0);d.clear(d.COLOR_BUFFER_BIT);d.drawArrays(d.TRIANGLE_FAN,0,4);Ji(this)});vi(e);Ji(this)}else throw Error(`Type is not supported: ${b}`);a.push(c)}return new V(a,\nthis.m,this.S(),this.canvas,this.l,this.width,this.height)}close(){this.j&&Ei(this).deleteTexture(Bi(this,2));Li=-1}},Ki;V.prototype.close=V.prototype.close;V.prototype.clone=V.prototype.clone;V.prototype.getAsWebGLTexture=V.prototype.N;V.prototype.getAsFloat32Array=V.prototype.ka;V.prototype.getAsUint8Array=V.prototype.la;V.prototype.hasWebGLTexture=V.prototype.S;V.prototype.hasFloat32Array=V.prototype.ma;V.prototype.hasUint8Array=V.prototype.Ja;var Li=250;export {V as MPMask};const Mi={color:\"white\",lineWidth:4,radius:6};function Ni(a){a=a||{};return{...Mi,fillColor:a.color,...a}}function Oi(a,b){return a instanceof Function?a(b):a}function Pi(a,b,c){return Math.max(Math.min(b,c),Math.min(Math.max(b,c),a))}function Qi(a){if(!a.l)throw Error(\"CPU rendering requested but CanvasRenderingContext2D not provided.\");return a.l}function Ri(a){if(!a.j)throw Error(\"GPU rendering requested but WebGL2RenderingContext not provided.\");return a.j}\nfunction Si(a){a.g||(a.g=new zi);return a.g}function Ti(a){a.h||(a.h=new Ai);return a.h}function Ui(a,b,c){if(b.S())c(b.N());else{const d=b.ma()?b.ka():b.la();a.m=a.m??new wi;const e=Ri(a);a=new V([d],b.m,!1,e.canvas,a.m,b.width,b.height);c(a.N());a.close()}}\nfunction Vi(a,b,c,d){const e=Si(a),f=Ri(a),g=Array.isArray(c)?new ImageData(new Uint8ClampedArray(c),1,1):c;si(e,f,!0,()=>{yi(e,b,g,d);f.clearColor(0,0,0,0);f.clear(f.COLOR_BUFFER_BIT);f.drawArrays(f.TRIANGLE_FAN,0,4);const k=e.g;k.activeTexture(k.TEXTURE0);k.bindTexture(k.TEXTURE_2D,null);k.activeTexture(k.TEXTURE1);k.bindTexture(k.TEXTURE_2D,null);k.activeTexture(k.TEXTURE2);k.bindTexture(k.TEXTURE_2D,null)})}\nfunction Wi(a,b,c,d){const e=Ri(a);Ui(a,b,f=>{Vi(a,f,c,d);f=Qi(a);f.drawImage(e.canvas,0,0,f.canvas.width,f.canvas.height)})}\nfunction Xi(a,b,c,d){const e=Ri(a),f=Ti(a),g=Array.isArray(c)?new ImageData(new Uint8ClampedArray(c),1,1):c,k=Array.isArray(d)?new ImageData(new Uint8ClampedArray(d),1,1):d;si(f,e,!0,()=>{var h=f.g;h.activeTexture(h.TEXTURE0);h.bindTexture(h.TEXTURE_2D,b);h.activeTexture(h.TEXTURE1);h.bindTexture(h.TEXTURE_2D,f.j);h.texImage2D(h.TEXTURE_2D,0,h.RGBA,h.RGBA,h.UNSIGNED_BYTE,g);h.activeTexture(h.TEXTURE2);h.bindTexture(h.TEXTURE_2D,f.B);h.texImage2D(h.TEXTURE_2D,0,h.RGBA,h.RGBA,h.UNSIGNED_BYTE,k);e.clearColor(0,\n0,0,0);e.clear(e.COLOR_BUFFER_BIT);e.drawArrays(e.TRIANGLE_FAN,0,4);e.bindTexture(e.TEXTURE_2D,null);h=f.g;h.activeTexture(h.TEXTURE0);h.bindTexture(h.TEXTURE_2D,null);h.activeTexture(h.TEXTURE1);h.bindTexture(h.TEXTURE_2D,null);h.activeTexture(h.TEXTURE2);h.bindTexture(h.TEXTURE_2D,null)})}function Yi(a,b,c,d){const e=Ri(a);Ui(a,b,f=>{Xi(a,f,c,d);f=Qi(a);f.drawImage(e.canvas,0,0,f.canvas.width,f.canvas.height)})}\nvar Zi=class{constructor(a,b){a instanceof CanvasRenderingContext2D||a instanceof OffscreenCanvasRenderingContext2D?(this.l=a,this.j=b):this.j=a}Ca(a,b){if(a){var c=Qi(this);b=Ni(b);c.save();var d=c.canvas,e=0;for(const f of a)c.fillStyle=Oi(b.fillColor,{index:e,from:f}),c.strokeStyle=Oi(b.color,{index:e,from:f}),c.lineWidth=Oi(b.lineWidth,{index:e,from:f}),a=new Path2D,a.arc(f.x*d.width,f.y*d.height,Oi(b.radius,{index:e,from:f}),0,2*Math.PI),c.fill(a),c.stroke(a),++e;c.restore()}}Ba(a,b,c){if(a&&\nb){var d=Qi(this);c=Ni(c);d.save();var e=d.canvas,f=0;for(const g of b){d.beginPath();b=a[g.start];const k=a[g.end];b&&k&&(d.strokeStyle=Oi(c.color,{index:f,from:b,to:k}),d.lineWidth=Oi(c.lineWidth,{index:f,from:b,to:k}),d.moveTo(b.x*e.width,b.y*e.height),d.lineTo(k.x*e.width,k.y*e.height));++f;d.stroke()}d.restore()}}ya(a,b){const c=Qi(this);b=Ni(b);c.save();c.beginPath();c.lineWidth=Oi(b.lineWidth,{});c.strokeStyle=Oi(b.color,{});c.fillStyle=Oi(b.fillColor,{});c.moveTo(a.originX,a.originY);c.lineTo(a.originX+\na.width,a.originY);c.lineTo(a.originX+a.width,a.originY+a.height);c.lineTo(a.originX,a.originY+a.height);c.lineTo(a.originX,a.originY);c.stroke();c.fill();c.restore()}za(a,b,c=[0,0,0,255]){this.l?Wi(this,a,c,b):Vi(this,a.N(),c,b)}Aa(a,b,c){this.l?Yi(this,a,b,c):Xi(this,a.N(),b,c)}close(){this.g?.close();this.g=void 0;this.h?.close();this.h=void 0;this.m?.close();this.m=void 0}};Zi.prototype.close=Zi.prototype.close;Zi.prototype.drawConfidenceMask=Zi.prototype.Aa;Zi.prototype.drawCategoryMask=Zi.prototype.za;\nZi.prototype.drawBoundingBox=Zi.prototype.ya;Zi.prototype.drawConnectors=Zi.prototype.Ba;Zi.prototype.drawLandmarks=Zi.prototype.Ca;Zi.lerp=function(a,b,c,d,e){return Pi(d*(1-(a-b)/(c-b))+e*(1-(c-a)/(c-b)),d,e)};Zi.clamp=Pi;export {Zi as DrawingUtils};function $i(a,b){switch(b){case 0:return a.g.find(c=>c instanceof ImageData);case 1:return a.g.find(c=>typeof ImageBitmap!==\"undefined\"&&c instanceof ImageBitmap);case 2:return a.g.find(c=>typeof WebGLTexture!==\"undefined\"&&c instanceof WebGLTexture);default:throw Error(`Type is not supported: ${b}`);}}\nfunction aj(a){var b=$i(a,0);if(!b){b=bj(a);const c=cj(a),d=new Uint8Array(a.width*a.height*4),e=dj(a);ui(c,b,e);b.readPixels(0,0,a.width,a.height,b.RGBA,b.UNSIGNED_BYTE,d);vi(c);b=new ImageData(new Uint8ClampedArray(d.buffer),a.width,a.height);a.g.push(b)}return b}function dj(a){let b=$i(a,2);if(!b){const c=bj(a);b=ej(a);const d=$i(a,1)||aj(a);c.texImage2D(c.TEXTURE_2D,0,c.RGBA,c.RGBA,c.UNSIGNED_BYTE,d);fj(a)}return b}\nfunction bj(a){if(!a.canvas)throw Error(\"Conversion to different image formats require that a canvas is passed when iniitializing the image.\");a.h||(a.h=ni(a.canvas.getContext(\"webgl2\"),\"You cannot use a canvas that is already bound to a different type of rendering context.\"));return a.h}function cj(a){a.l||(a.l=new wi);return a.l}\nfunction ej(a){const b=bj(a);b.viewport(0,0,a.width,a.height);b.activeTexture(b.TEXTURE0);let c=$i(a,2);c||(c=ti(cj(a),b),a.g.push(c),a.m=!0);b.bindTexture(b.TEXTURE_2D,c);return c}function fj(a){a.h.bindTexture(a.h.TEXTURE_2D,null)}\nfunction gj(a){const b=bj(a);return si(cj(a),b,!0,()=>hj(a,()=>{b.bindFramebuffer(b.FRAMEBUFFER,null);b.clearColor(0,0,0,0);b.clear(b.COLOR_BUFFER_BIT);b.drawArrays(b.TRIANGLE_FAN,0,4);if(!(a.canvas instanceof OffscreenCanvas))throw Error(\"Conversion to ImageBitmap requires that the MediaPipe Tasks is initialized with an OffscreenCanvas\");return a.canvas.transferToImageBitmap()}))}\nfunction hj(a,b){const c=a.canvas;if(c.width===a.width&&c.height===a.height)return b();const d=c.width,e=c.height;c.width=a.width;c.height=a.height;a=b();c.width=d;c.height=e;return a}\nvar W=class{constructor(a,b,c,d,e,f,g){this.g=a;this.j=b;this.m=c;this.canvas=d;this.l=e;this.width=f;this.height=g;if(this.j||this.m)--ij,ij===0&&console.error(\"You seem to be creating MPImage instances without invoking .close(). This leaks resources.\")}Ia(){return!!$i(this,0)}na(){return!!$i(this,1)}S(){return!!$i(this,2)}Ga(){return aj(this)}Fa(){var a=$i(this,1);a||(dj(this),ej(this),a=gj(this),fj(this),this.g.push(a),this.j=!0);return a}N(){return dj(this)}clone(){const a=[];for(const b of this.g){let c;\nif(b instanceof ImageData)c=new ImageData(b.data,this.width,this.height);else if(b instanceof WebGLTexture){const d=bj(this),e=cj(this);d.activeTexture(d.TEXTURE1);c=ti(e,d);d.bindTexture(d.TEXTURE_2D,c);d.texImage2D(d.TEXTURE_2D,0,d.RGBA,this.width,this.height,0,d.RGBA,d.UNSIGNED_BYTE,null);d.bindTexture(d.TEXTURE_2D,null);ui(e,d,c);si(e,d,!1,()=>{ej(this);d.clearColor(0,0,0,0);d.clear(d.COLOR_BUFFER_BIT);d.drawArrays(d.TRIANGLE_FAN,0,4);fj(this)});vi(e);fj(this)}else if(b instanceof ImageBitmap)dj(this),\nej(this),c=gj(this),fj(this);else throw Error(`Type is not supported: ${b}`);a.push(c)}return new W(a,this.na(),this.S(),this.canvas,this.l,this.width,this.height)}close(){this.j&&$i(this,1).close();this.m&&bj(this).deleteTexture($i(this,2));ij=-1}};W.prototype.close=W.prototype.close;W.prototype.clone=W.prototype.clone;W.prototype.getAsWebGLTexture=W.prototype.N;W.prototype.getAsImageBitmap=W.prototype.Fa;W.prototype.getAsImageData=W.prototype.Ga;W.prototype.hasWebGLTexture=W.prototype.S;\nW.prototype.hasImageBitmap=W.prototype.na;W.prototype.hasImageData=W.prototype.Ia;var ij=250;export {W as MPImage};function jj(...a){return a.map(([b,c])=>({start:b,end:c}))};const kj=function(a){return class extends a{Oa(){this.i._registerModelResourcesGraphService()}}}(function(a){return class extends a{get ia(){return this.i}ta(b,c,d){T(this,c,e=>{const [f,g]=Yh(this,b,e);this.ia._addBoundTextureAsImageToStream(e,f,g,d)})}W(b,c){$h(this,b,c);T(this,b,d=>{this.ia._attachImageListener(d)})}fa(b,c){ai(this,b,c);T(this,b,d=>{this.ia._attachImageVectorListener(d)})}}}(bi));var lj=class extends kj{};\nasync function X(a,b,c){const d=c.canvas??(Vh()?void 0:document.createElement(\"canvas\"));return ei(a,d,b,c)}\nfunction mj(a,b,c,d){if(a.V){const f=new xg;if(c?.regionOfInterest){if(!a.sa)throw Error(\"This task doesn't support region-of-interest.\");var e=c.regionOfInterest;if(e.left>=e.right||e.top>=e.bottom)throw Error(\"Expected RectF with left < right and top < bottom.\");if(e.left<0||e.top<0||e.right>1||e.bottom>1)throw Error(\"Expected RectF values to be in [0,1].\");A(f,1,(e.left+e.right)/2);A(f,2,(e.top+e.bottom)/2);A(f,4,e.right-e.left);A(f,3,e.bottom-e.top)}else A(f,1,.5),A(f,2,.5),A(f,4,1),A(f,3,1);\nif(c?.rotationDegrees){if(c?.rotationDegrees%90!==0)throw Error(\"Expected rotation to be a multiple of 90\\u00b0.\");A(f,5,-Math.PI*c.rotationDegrees/180);if(c?.rotationDegrees%180!==0){const [g,k]=Xh(b);c=z(f,3)*k/g;e=z(f,4)*g/k;A(f,4,c);A(f,3,e)}}a.g.addProtoToStream(f.g(),\"mediapipe.NormalizedRect\",a.V,d)}a.g.ta(b,a.da,d??performance.now());a.finishProcessing()}\nfunction nj(a,b,c){if(a.baseOptions?.g())throw Error(\"Task is not initialized with image mode. 'runningMode' must be set to 'IMAGE'.\");mj(a,b,c,a.B+1)}function oj(a,b,c,d){if(!a.baseOptions?.g())throw Error(\"Task is not initialized with video mode. 'runningMode' must be set to 'VIDEO'.\");mj(a,b,c,d)}\nfunction pj(a,b,c,d){var e=b.data;const f=b.width;b=b.height;const g=f*b;if((e instanceof Uint8Array||e instanceof Float32Array)&&e.length!==g)throw Error(`Unsupported channel count: ${e.length/g}`);a=new V([e],c,!1,a.g.i.canvas,a.R,f,b);return d?a.clone():a}\nvar qj=class extends mi{constructor(a,b,c,d){super(a);this.g=a;this.da=b;this.V=c;this.sa=d;this.R=new wi}l(a,b=!0){\"runningMode\"in a&&Kd(this.baseOptions,2,!!a.runningMode&&a.runningMode!==\"IMAGE\");if(a.canvas!==void 0&&this.g.i.canvas!==a.canvas)throw Error(\"You must create a new task to reset the canvas.\");return super.l(a,b)}close(){this.R.close();super.close()}};qj.prototype.close=qj.prototype.close;export {qj as VisionTaskRunner};var rj=class extends qj{constructor(a,b){super(new lj(a,b),\"image_in\",\"norm_rect_in\",!1);this.j={detections:[]};a=this.h=new Mg;b=new R;y(a,R,1,b);A(this.h,2,.5);A(this.h,3,.3)}get baseOptions(){return x(this.h,R,1)}set baseOptions(a){y(this.h,R,1,a)}o(a){\"minDetectionConfidence\"in a&&A(this.h,2,a.minDetectionConfidence??.5);\"minSuppressionThreshold\"in a&&A(this.h,3,a.minSuppressionThreshold??.3);return this.l(a)}D(a,b){this.j={detections:[]};nj(this,a,b);return this.j}F(a,b,c){this.j={detections:[]};\noj(this,a,c,b);return this.j}m(){var a=new gg;P(a,\"image_in\");P(a,\"norm_rect_in\");Q(a,\"detections\");const b=new Zf;pe(b,Og,this.h);const c=new O;bg(c,\"mediapipe.tasks.vision.face_detector.FaceDetectorGraph\");M(c,\"IMAGE:image_in\");M(c,\"NORM_RECT:norm_rect_in\");N(c,\"DETECTIONS:detections\");c.o(b);fg(a,c);this.g.attachProtoVectorListener(\"detections\",(d,e)=>{for(const f of d)d=qg(f),this.j.detections.push(Jh(d));U(this,e)});this.g.attachEmptyPacketListener(\"detections\",d=>{U(this,d)});a=a.g();this.setGraph(new Uint8Array(a),\n!0)}};rj.prototype.detectForVideo=rj.prototype.F;rj.prototype.detect=rj.prototype.D;rj.prototype.setOptions=rj.prototype.o;rj.createFromModelPath=async function(a,b){return X(rj,a,{baseOptions:{modelAssetPath:b}})};rj.createFromModelBuffer=function(a,b){return X(rj,a,{baseOptions:{modelAssetBuffer:b}})};rj.createFromOptions=function(a,b){return X(rj,a,b)};export {rj as FaceDetector};var sj=jj([61,146],[146,91],[91,181],[181,84],[84,17],[17,314],[314,405],[405,321],[321,375],[375,291],[61,185],[185,40],[40,39],[39,37],[37,0],[0,267],[267,269],[269,270],[270,409],[409,291],[78,95],[95,88],[88,178],[178,87],[87,14],[14,317],[317,402],[402,318],[318,324],[324,308],[78,191],[191,80],[80,81],[81,82],[82,13],[13,312],[312,311],[311,310],[310,415],[415,308]),tj=jj([263,249],[249,390],[390,373],[373,374],[374,380],[380,381],[381,382],[382,362],[263,466],[466,388],[388,387],[387,386],\n[386,385],[385,384],[384,398],[398,362]),uj=jj([276,283],[283,282],[282,295],[295,285],[300,293],[293,334],[334,296],[296,336]),vj=jj([474,475],[475,476],[476,477],[477,474]),wj=jj([33,7],[7,163],[163,144],[144,145],[145,153],[153,154],[154,155],[155,133],[33,246],[246,161],[161,160],[160,159],[159,158],[158,157],[157,173],[173,133]),xj=jj([46,53],[53,52],[52,65],[65,55],[70,63],[63,105],[105,66],[66,107]),yj=jj([469,470],[470,471],[471,472],[472,469]),zj=jj([10,338],[338,297],[297,332],[332,284],\n[284,251],[251,389],[389,356],[356,454],[454,323],[323,361],[361,288],[288,397],[397,365],[365,379],[379,378],[378,400],[400,377],[377,152],[152,148],[148,176],[176,149],[149,150],[150,136],[136,172],[172,58],[58,132],[132,93],[93,234],[234,127],[127,162],[162,21],[21,54],[54,103],[103,67],[67,109],[109,10]),Aj=[...sj,...tj,...uj,...wj,...xj,...zj],Bj=jj([127,34],[34,139],[139,127],[11,0],[0,37],[37,11],[232,231],[231,120],[120,232],[72,37],[37,39],[39,72],[128,121],[121,47],[47,128],[232,121],[121,\n128],[128,232],[104,69],[69,67],[67,104],[175,171],[171,148],[148,175],[118,50],[50,101],[101,118],[73,39],[39,40],[40,73],[9,151],[151,108],[108,9],[48,115],[115,131],[131,48],[194,204],[204,211],[211,194],[74,40],[40,185],[185,74],[80,42],[42,183],[183,80],[40,92],[92,186],[186,40],[230,229],[229,118],[118,230],[202,212],[212,214],[214,202],[83,18],[18,17],[17,83],[76,61],[61,146],[146,76],[160,29],[29,30],[30,160],[56,157],[157,173],[173,56],[106,204],[204,194],[194,106],[135,214],[214,192],[192,\n135],[203,165],[165,98],[98,203],[21,71],[71,68],[68,21],[51,45],[45,4],[4,51],[144,24],[24,23],[23,144],[77,146],[146,91],[91,77],[205,50],[50,187],[187,205],[201,200],[200,18],[18,201],[91,106],[106,182],[182,91],[90,91],[91,181],[181,90],[85,84],[84,17],[17,85],[206,203],[203,36],[36,206],[148,171],[171,140],[140,148],[92,40],[40,39],[39,92],[193,189],[189,244],[244,193],[159,158],[158,28],[28,159],[247,246],[246,161],[161,247],[236,3],[3,196],[196,236],[54,68],[68,104],[104,54],[193,168],[168,\n8],[8,193],[117,228],[228,31],[31,117],[189,193],[193,55],[55,189],[98,97],[97,99],[99,98],[126,47],[47,100],[100,126],[166,79],[79,218],[218,166],[155,154],[154,26],[26,155],[209,49],[49,131],[131,209],[135,136],[136,150],[150,135],[47,126],[126,217],[217,47],[223,52],[52,53],[53,223],[45,51],[51,134],[134,45],[211,170],[170,140],[140,211],[67,69],[69,108],[108,67],[43,106],[106,91],[91,43],[230,119],[119,120],[120,230],[226,130],[130,247],[247,226],[63,53],[53,52],[52,63],[238,20],[20,242],[242,\n238],[46,70],[70,156],[156,46],[78,62],[62,96],[96,78],[46,53],[53,63],[63,46],[143,34],[34,227],[227,143],[123,117],[117,111],[111,123],[44,125],[125,19],[19,44],[236,134],[134,51],[51,236],[216,206],[206,205],[205,216],[154,153],[153,22],[22,154],[39,37],[37,167],[167,39],[200,201],[201,208],[208,200],[36,142],[142,100],[100,36],[57,212],[212,202],[202,57],[20,60],[60,99],[99,20],[28,158],[158,157],[157,28],[35,226],[226,113],[113,35],[160,159],[159,27],[27,160],[204,202],[202,210],[210,204],[113,\n225],[225,46],[46,113],[43,202],[202,204],[204,43],[62,76],[76,77],[77,62],[137,123],[123,116],[116,137],[41,38],[38,72],[72,41],[203,129],[129,142],[142,203],[64,98],[98,240],[240,64],[49,102],[102,64],[64,49],[41,73],[73,74],[74,41],[212,216],[216,207],[207,212],[42,74],[74,184],[184,42],[169,170],[170,211],[211,169],[170,149],[149,176],[176,170],[105,66],[66,69],[69,105],[122,6],[6,168],[168,122],[123,147],[147,187],[187,123],[96,77],[77,90],[90,96],[65,55],[55,107],[107,65],[89,90],[90,180],[180,\n89],[101,100],[100,120],[120,101],[63,105],[105,104],[104,63],[93,137],[137,227],[227,93],[15,86],[86,85],[85,15],[129,102],[102,49],[49,129],[14,87],[87,86],[86,14],[55,8],[8,9],[9,55],[100,47],[47,121],[121,100],[145,23],[23,22],[22,145],[88,89],[89,179],[179,88],[6,122],[122,196],[196,6],[88,95],[95,96],[96,88],[138,172],[172,136],[136,138],[215,58],[58,172],[172,215],[115,48],[48,219],[219,115],[42,80],[80,81],[81,42],[195,3],[3,51],[51,195],[43,146],[146,61],[61,43],[171,175],[175,199],[199,\n171],[81,82],[82,38],[38,81],[53,46],[46,225],[225,53],[144,163],[163,110],[110,144],[52,65],[65,66],[66,52],[229,228],[228,117],[117,229],[34,127],[127,234],[234,34],[107,108],[108,69],[69,107],[109,108],[108,151],[151,109],[48,64],[64,235],[235,48],[62,78],[78,191],[191,62],[129,209],[209,126],[126,129],[111,35],[35,143],[143,111],[117,123],[123,50],[50,117],[222,65],[65,52],[52,222],[19,125],[125,141],[141,19],[221,55],[55,65],[65,221],[3,195],[195,197],[197,3],[25,7],[7,33],[33,25],[220,237],\n[237,44],[44,220],[70,71],[71,139],[139,70],[122,193],[193,245],[245,122],[247,130],[130,33],[33,247],[71,21],[21,162],[162,71],[170,169],[169,150],[150,170],[188,174],[174,196],[196,188],[216,186],[186,92],[92,216],[2,97],[97,167],[167,2],[141,125],[125,241],[241,141],[164,167],[167,37],[37,164],[72,38],[38,12],[12,72],[38,82],[82,13],[13,38],[63,68],[68,71],[71,63],[226,35],[35,111],[111,226],[101,50],[50,205],[205,101],[206,92],[92,165],[165,206],[209,198],[198,217],[217,209],[165,167],[167,97],\n[97,165],[220,115],[115,218],[218,220],[133,112],[112,243],[243,133],[239,238],[238,241],[241,239],[214,135],[135,169],[169,214],[190,173],[173,133],[133,190],[171,208],[208,32],[32,171],[125,44],[44,237],[237,125],[86,87],[87,178],[178,86],[85,86],[86,179],[179,85],[84,85],[85,180],[180,84],[83,84],[84,181],[181,83],[201,83],[83,182],[182,201],[137,93],[93,132],[132,137],[76,62],[62,183],[183,76],[61,76],[76,184],[184,61],[57,61],[61,185],[185,57],[212,57],[57,186],[186,212],[214,207],[207,187],\n[187,214],[34,143],[143,156],[156,34],[79,239],[239,237],[237,79],[123,137],[137,177],[177,123],[44,1],[1,4],[4,44],[201,194],[194,32],[32,201],[64,102],[102,129],[129,64],[213,215],[215,138],[138,213],[59,166],[166,219],[219,59],[242,99],[99,97],[97,242],[2,94],[94,141],[141,2],[75,59],[59,235],[235,75],[24,110],[110,228],[228,24],[25,130],[130,226],[226,25],[23,24],[24,229],[229,23],[22,23],[23,230],[230,22],[26,22],[22,231],[231,26],[112,26],[26,232],[232,112],[189,190],[190,243],[243,189],[221,\n56],[56,190],[190,221],[28,56],[56,221],[221,28],[27,28],[28,222],[222,27],[29,27],[27,223],[223,29],[30,29],[29,224],[224,30],[247,30],[30,225],[225,247],[238,79],[79,20],[20,238],[166,59],[59,75],[75,166],[60,75],[75,240],[240,60],[147,177],[177,215],[215,147],[20,79],[79,166],[166,20],[187,147],[147,213],[213,187],[112,233],[233,244],[244,112],[233,128],[128,245],[245,233],[128,114],[114,188],[188,128],[114,217],[217,174],[174,114],[131,115],[115,220],[220,131],[217,198],[198,236],[236,217],[198,\n131],[131,134],[134,198],[177,132],[132,58],[58,177],[143,35],[35,124],[124,143],[110,163],[163,7],[7,110],[228,110],[110,25],[25,228],[356,389],[389,368],[368,356],[11,302],[302,267],[267,11],[452,350],[350,349],[349,452],[302,303],[303,269],[269,302],[357,343],[343,277],[277,357],[452,453],[453,357],[357,452],[333,332],[332,297],[297,333],[175,152],[152,377],[377,175],[347,348],[348,330],[330,347],[303,304],[304,270],[270,303],[9,336],[336,337],[337,9],[278,279],[279,360],[360,278],[418,262],[262,\n431],[431,418],[304,408],[408,409],[409,304],[310,415],[415,407],[407,310],[270,409],[409,410],[410,270],[450,348],[348,347],[347,450],[422,430],[430,434],[434,422],[313,314],[314,17],[17,313],[306,307],[307,375],[375,306],[387,388],[388,260],[260,387],[286,414],[414,398],[398,286],[335,406],[406,418],[418,335],[364,367],[367,416],[416,364],[423,358],[358,327],[327,423],[251,284],[284,298],[298,251],[281,5],[5,4],[4,281],[373,374],[374,253],[253,373],[307,320],[320,321],[321,307],[425,427],[427,411],\n[411,425],[421,313],[313,18],[18,421],[321,405],[405,406],[406,321],[320,404],[404,405],[405,320],[315,16],[16,17],[17,315],[426,425],[425,266],[266,426],[377,400],[400,369],[369,377],[322,391],[391,269],[269,322],[417,465],[465,464],[464,417],[386,257],[257,258],[258,386],[466,260],[260,388],[388,466],[456,399],[399,419],[419,456],[284,332],[332,333],[333,284],[417,285],[285,8],[8,417],[346,340],[340,261],[261,346],[413,441],[441,285],[285,413],[327,460],[460,328],[328,327],[355,371],[371,329],[329,\n355],[392,439],[439,438],[438,392],[382,341],[341,256],[256,382],[429,420],[420,360],[360,429],[364,394],[394,379],[379,364],[277,343],[343,437],[437,277],[443,444],[444,283],[283,443],[275,440],[440,363],[363,275],[431,262],[262,369],[369,431],[297,338],[338,337],[337,297],[273,375],[375,321],[321,273],[450,451],[451,349],[349,450],[446,342],[342,467],[467,446],[293,334],[334,282],[282,293],[458,461],[461,462],[462,458],[276,353],[353,383],[383,276],[308,324],[324,325],[325,308],[276,300],[300,293],\n[293,276],[372,345],[345,447],[447,372],[352,345],[345,340],[340,352],[274,1],[1,19],[19,274],[456,248],[248,281],[281,456],[436,427],[427,425],[425,436],[381,256],[256,252],[252,381],[269,391],[391,393],[393,269],[200,199],[199,428],[428,200],[266,330],[330,329],[329,266],[287,273],[273,422],[422,287],[250,462],[462,328],[328,250],[258,286],[286,384],[384,258],[265,353],[353,342],[342,265],[387,259],[259,257],[257,387],[424,431],[431,430],[430,424],[342,353],[353,276],[276,342],[273,335],[335,424],\n[424,273],[292,325],[325,307],[307,292],[366,447],[447,345],[345,366],[271,303],[303,302],[302,271],[423,266],[266,371],[371,423],[294,455],[455,460],[460,294],[279,278],[278,294],[294,279],[271,272],[272,304],[304,271],[432,434],[434,427],[427,432],[272,407],[407,408],[408,272],[394,430],[430,431],[431,394],[395,369],[369,400],[400,395],[334,333],[333,299],[299,334],[351,417],[417,168],[168,351],[352,280],[280,411],[411,352],[325,319],[319,320],[320,325],[295,296],[296,336],[336,295],[319,403],[403,\n404],[404,319],[330,348],[348,349],[349,330],[293,298],[298,333],[333,293],[323,454],[454,447],[447,323],[15,16],[16,315],[315,15],[358,429],[429,279],[279,358],[14,15],[15,316],[316,14],[285,336],[336,9],[9,285],[329,349],[349,350],[350,329],[374,380],[380,252],[252,374],[318,402],[402,403],[403,318],[6,197],[197,419],[419,6],[318,319],[319,325],[325,318],[367,364],[364,365],[365,367],[435,367],[367,397],[397,435],[344,438],[438,439],[439,344],[272,271],[271,311],[311,272],[195,5],[5,281],[281,195],\n[273,287],[287,291],[291,273],[396,428],[428,199],[199,396],[311,271],[271,268],[268,311],[283,444],[444,445],[445,283],[373,254],[254,339],[339,373],[282,334],[334,296],[296,282],[449,347],[347,346],[346,449],[264,447],[447,454],[454,264],[336,296],[296,299],[299,336],[338,10],[10,151],[151,338],[278,439],[439,455],[455,278],[292,407],[407,415],[415,292],[358,371],[371,355],[355,358],[340,345],[345,372],[372,340],[346,347],[347,280],[280,346],[442,443],[443,282],[282,442],[19,94],[94,370],[370,19],\n[441,442],[442,295],[295,441],[248,419],[419,197],[197,248],[263,255],[255,359],[359,263],[440,275],[275,274],[274,440],[300,383],[383,368],[368,300],[351,412],[412,465],[465,351],[263,467],[467,466],[466,263],[301,368],[368,389],[389,301],[395,378],[378,379],[379,395],[412,351],[351,419],[419,412],[436,426],[426,322],[322,436],[2,164],[164,393],[393,2],[370,462],[462,461],[461,370],[164,0],[0,267],[267,164],[302,11],[11,12],[12,302],[268,12],[12,13],[13,268],[293,300],[300,301],[301,293],[446,261],\n[261,340],[340,446],[330,266],[266,425],[425,330],[426,423],[423,391],[391,426],[429,355],[355,437],[437,429],[391,327],[327,326],[326,391],[440,457],[457,438],[438,440],[341,382],[382,362],[362,341],[459,457],[457,461],[461,459],[434,430],[430,394],[394,434],[414,463],[463,362],[362,414],[396,369],[369,262],[262,396],[354,461],[461,457],[457,354],[316,403],[403,402],[402,316],[315,404],[404,403],[403,315],[314,405],[405,404],[404,314],[313,406],[406,405],[405,313],[421,418],[418,406],[406,421],[366,\n401],[401,361],[361,366],[306,408],[408,407],[407,306],[291,409],[409,408],[408,291],[287,410],[410,409],[409,287],[432,436],[436,410],[410,432],[434,416],[416,411],[411,434],[264,368],[368,383],[383,264],[309,438],[438,457],[457,309],[352,376],[376,401],[401,352],[274,275],[275,4],[4,274],[421,428],[428,262],[262,421],[294,327],[327,358],[358,294],[433,416],[416,367],[367,433],[289,455],[455,439],[439,289],[462,370],[370,326],[326,462],[2,326],[326,370],[370,2],[305,460],[460,455],[455,305],[254,\n449],[449,448],[448,254],[255,261],[261,446],[446,255],[253,450],[450,449],[449,253],[252,451],[451,450],[450,252],[256,452],[452,451],[451,256],[341,453],[453,452],[452,341],[413,464],[464,463],[463,413],[441,413],[413,414],[414,441],[258,442],[442,441],[441,258],[257,443],[443,442],[442,257],[259,444],[444,443],[443,259],[260,445],[445,444],[444,260],[467,342],[342,445],[445,467],[459,458],[458,250],[250,459],[289,392],[392,290],[290,289],[290,328],[328,460],[460,290],[376,433],[433,435],[435,376],\n[250,290],[290,392],[392,250],[411,416],[416,433],[433,411],[341,463],[463,464],[464,341],[453,464],[464,465],[465,453],[357,465],[465,412],[412,357],[343,412],[412,399],[399,343],[360,363],[363,440],[440,360],[437,399],[399,456],[456,437],[420,456],[456,363],[363,420],[401,435],[435,288],[288,401],[372,383],[383,353],[353,372],[339,255],[255,249],[249,339],[448,261],[261,255],[255,448],[133,243],[243,190],[190,133],[133,155],[155,112],[112,133],[33,246],[246,247],[247,33],[33,130],[130,25],[25,33],\n[398,384],[384,286],[286,398],[362,398],[398,414],[414,362],[362,463],[463,341],[341,362],[263,359],[359,467],[467,263],[263,249],[249,255],[255,263],[466,467],[467,260],[260,466],[75,60],[60,166],[166,75],[238,239],[239,79],[79,238],[162,127],[127,139],[139,162],[72,11],[11,37],[37,72],[121,232],[232,120],[120,121],[73,72],[72,39],[39,73],[114,128],[128,47],[47,114],[233,232],[232,128],[128,233],[103,104],[104,67],[67,103],[152,175],[175,148],[148,152],[119,118],[118,101],[101,119],[74,73],[73,40],\n[40,74],[107,9],[9,108],[108,107],[49,48],[48,131],[131,49],[32,194],[194,211],[211,32],[184,74],[74,185],[185,184],[191,80],[80,183],[183,191],[185,40],[40,186],[186,185],[119,230],[230,118],[118,119],[210,202],[202,214],[214,210],[84,83],[83,17],[17,84],[77,76],[76,146],[146,77],[161,160],[160,30],[30,161],[190,56],[56,173],[173,190],[182,106],[106,194],[194,182],[138,135],[135,192],[192,138],[129,203],[203,98],[98,129],[54,21],[21,68],[68,54],[5,51],[51,4],[4,5],[145,144],[144,23],[23,145],[90,\n77],[77,91],[91,90],[207,205],[205,187],[187,207],[83,201],[201,18],[18,83],[181,91],[91,182],[182,181],[180,90],[90,181],[181,180],[16,85],[85,17],[17,16],[205,206],[206,36],[36,205],[176,148],[148,140],[140,176],[165,92],[92,39],[39,165],[245,193],[193,244],[244,245],[27,159],[159,28],[28,27],[30,247],[247,161],[161,30],[174,236],[236,196],[196,174],[103,54],[54,104],[104,103],[55,193],[193,8],[8,55],[111,117],[117,31],[31,111],[221,189],[189,55],[55,221],[240,98],[98,99],[99,240],[142,126],[126,\n100],[100,142],[219,166],[166,218],[218,219],[112,155],[155,26],[26,112],[198,209],[209,131],[131,198],[169,135],[135,150],[150,169],[114,47],[47,217],[217,114],[224,223],[223,53],[53,224],[220,45],[45,134],[134,220],[32,211],[211,140],[140,32],[109,67],[67,108],[108,109],[146,43],[43,91],[91,146],[231,230],[230,120],[120,231],[113,226],[226,247],[247,113],[105,63],[63,52],[52,105],[241,238],[238,242],[242,241],[124,46],[46,156],[156,124],[95,78],[78,96],[96,95],[70,46],[46,63],[63,70],[116,143],\n[143,227],[227,116],[116,123],[123,111],[111,116],[1,44],[44,19],[19,1],[3,236],[236,51],[51,3],[207,216],[216,205],[205,207],[26,154],[154,22],[22,26],[165,39],[39,167],[167,165],[199,200],[200,208],[208,199],[101,36],[36,100],[100,101],[43,57],[57,202],[202,43],[242,20],[20,99],[99,242],[56,28],[28,157],[157,56],[124,35],[35,113],[113,124],[29,160],[160,27],[27,29],[211,204],[204,210],[210,211],[124,113],[113,46],[46,124],[106,43],[43,204],[204,106],[96,62],[62,77],[77,96],[227,137],[137,116],[116,\n227],[73,41],[41,72],[72,73],[36,203],[203,142],[142,36],[235,64],[64,240],[240,235],[48,49],[49,64],[64,48],[42,41],[41,74],[74,42],[214,212],[212,207],[207,214],[183,42],[42,184],[184,183],[210,169],[169,211],[211,210],[140,170],[170,176],[176,140],[104,105],[105,69],[69,104],[193,122],[122,168],[168,193],[50,123],[123,187],[187,50],[89,96],[96,90],[90,89],[66,65],[65,107],[107,66],[179,89],[89,180],[180,179],[119,101],[101,120],[120,119],[68,63],[63,104],[104,68],[234,93],[93,227],[227,234],[16,\n15],[15,85],[85,16],[209,129],[129,49],[49,209],[15,14],[14,86],[86,15],[107,55],[55,9],[9,107],[120,100],[100,121],[121,120],[153,145],[145,22],[22,153],[178,88],[88,179],[179,178],[197,6],[6,196],[196,197],[89,88],[88,96],[96,89],[135,138],[138,136],[136,135],[138,215],[215,172],[172,138],[218,115],[115,219],[219,218],[41,42],[42,81],[81,41],[5,195],[195,51],[51,5],[57,43],[43,61],[61,57],[208,171],[171,199],[199,208],[41,81],[81,38],[38,41],[224,53],[53,225],[225,224],[24,144],[144,110],[110,24],\n[105,52],[52,66],[66,105],[118,229],[229,117],[117,118],[227,34],[34,234],[234,227],[66,107],[107,69],[69,66],[10,109],[109,151],[151,10],[219,48],[48,235],[235,219],[183,62],[62,191],[191,183],[142,129],[129,126],[126,142],[116,111],[111,143],[143,116],[118,117],[117,50],[50,118],[223,222],[222,52],[52,223],[94,19],[19,141],[141,94],[222,221],[221,65],[65,222],[196,3],[3,197],[197,196],[45,220],[220,44],[44,45],[156,70],[70,139],[139,156],[188,122],[122,245],[245,188],[139,71],[71,162],[162,139],\n[149,170],[170,150],[150,149],[122,188],[188,196],[196,122],[206,216],[216,92],[92,206],[164,2],[2,167],[167,164],[242,141],[141,241],[241,242],[0,164],[164,37],[37,0],[11,72],[72,12],[12,11],[12,38],[38,13],[13,12],[70,63],[63,71],[71,70],[31,226],[226,111],[111,31],[36,101],[101,205],[205,36],[203,206],[206,165],[165,203],[126,209],[209,217],[217,126],[98,165],[165,97],[97,98],[237,220],[220,218],[218,237],[237,239],[239,241],[241,237],[210,214],[214,169],[169,210],[140,171],[171,32],[32,140],[241,\n125],[125,237],[237,241],[179,86],[86,178],[178,179],[180,85],[85,179],[179,180],[181,84],[84,180],[180,181],[182,83],[83,181],[181,182],[194,201],[201,182],[182,194],[177,137],[137,132],[132,177],[184,76],[76,183],[183,184],[185,61],[61,184],[184,185],[186,57],[57,185],[185,186],[216,212],[212,186],[186,216],[192,214],[214,187],[187,192],[139,34],[34,156],[156,139],[218,79],[79,237],[237,218],[147,123],[123,177],[177,147],[45,44],[44,4],[4,45],[208,201],[201,32],[32,208],[98,64],[64,129],[129,98],\n[192,213],[213,138],[138,192],[235,59],[59,219],[219,235],[141,242],[242,97],[97,141],[97,2],[2,141],[141,97],[240,75],[75,235],[235,240],[229,24],[24,228],[228,229],[31,25],[25,226],[226,31],[230,23],[23,229],[229,230],[231,22],[22,230],[230,231],[232,26],[26,231],[231,232],[233,112],[112,232],[232,233],[244,189],[189,243],[243,244],[189,221],[221,190],[190,189],[222,28],[28,221],[221,222],[223,27],[27,222],[222,223],[224,29],[29,223],[223,224],[225,30],[30,224],[224,225],[113,247],[247,225],[225,\n113],[99,60],[60,240],[240,99],[213,147],[147,215],[215,213],[60,20],[20,166],[166,60],[192,187],[187,213],[213,192],[243,112],[112,244],[244,243],[244,233],[233,245],[245,244],[245,128],[128,188],[188,245],[188,114],[114,174],[174,188],[134,131],[131,220],[220,134],[174,217],[217,236],[236,174],[236,198],[198,134],[134,236],[215,177],[177,58],[58,215],[156,143],[143,124],[124,156],[25,110],[110,7],[7,25],[31,228],[228,25],[25,31],[264,356],[356,368],[368,264],[0,11],[11,267],[267,0],[451,452],[452,\n349],[349,451],[267,302],[302,269],[269,267],[350,357],[357,277],[277,350],[350,452],[452,357],[357,350],[299,333],[333,297],[297,299],[396,175],[175,377],[377,396],[280,347],[347,330],[330,280],[269,303],[303,270],[270,269],[151,9],[9,337],[337,151],[344,278],[278,360],[360,344],[424,418],[418,431],[431,424],[270,304],[304,409],[409,270],[272,310],[310,407],[407,272],[322,270],[270,410],[410,322],[449,450],[450,347],[347,449],[432,422],[422,434],[434,432],[18,313],[313,17],[17,18],[291,306],[306,\n375],[375,291],[259,387],[387,260],[260,259],[424,335],[335,418],[418,424],[434,364],[364,416],[416,434],[391,423],[423,327],[327,391],[301,251],[251,298],[298,301],[275,281],[281,4],[4,275],[254,373],[373,253],[253,254],[375,307],[307,321],[321,375],[280,425],[425,411],[411,280],[200,421],[421,18],[18,200],[335,321],[321,406],[406,335],[321,320],[320,405],[405,321],[314,315],[315,17],[17,314],[423,426],[426,266],[266,423],[396,377],[377,369],[369,396],[270,322],[322,269],[269,270],[413,417],[417,\n464],[464,413],[385,386],[386,258],[258,385],[248,456],[456,419],[419,248],[298,284],[284,333],[333,298],[168,417],[417,8],[8,168],[448,346],[346,261],[261,448],[417,413],[413,285],[285,417],[326,327],[327,328],[328,326],[277,355],[355,329],[329,277],[309,392],[392,438],[438,309],[381,382],[382,256],[256,381],[279,429],[429,360],[360,279],[365,364],[364,379],[379,365],[355,277],[277,437],[437,355],[282,443],[443,283],[283,282],[281,275],[275,363],[363,281],[395,431],[431,369],[369,395],[299,297],\n[297,337],[337,299],[335,273],[273,321],[321,335],[348,450],[450,349],[349,348],[359,446],[446,467],[467,359],[283,293],[293,282],[282,283],[250,458],[458,462],[462,250],[300,276],[276,383],[383,300],[292,308],[308,325],[325,292],[283,276],[276,293],[293,283],[264,372],[372,447],[447,264],[346,352],[352,340],[340,346],[354,274],[274,19],[19,354],[363,456],[456,281],[281,363],[426,436],[436,425],[425,426],[380,381],[381,252],[252,380],[267,269],[269,393],[393,267],[421,200],[200,428],[428,421],[371,\n266],[266,329],[329,371],[432,287],[287,422],[422,432],[290,250],[250,328],[328,290],[385,258],[258,384],[384,385],[446,265],[265,342],[342,446],[386,387],[387,257],[257,386],[422,424],[424,430],[430,422],[445,342],[342,276],[276,445],[422,273],[273,424],[424,422],[306,292],[292,307],[307,306],[352,366],[366,345],[345,352],[268,271],[271,302],[302,268],[358,423],[423,371],[371,358],[327,294],[294,460],[460,327],[331,279],[279,294],[294,331],[303,271],[271,304],[304,303],[436,432],[432,427],[427,436],\n[304,272],[272,408],[408,304],[395,394],[394,431],[431,395],[378,395],[395,400],[400,378],[296,334],[334,299],[299,296],[6,351],[351,168],[168,6],[376,352],[352,411],[411,376],[307,325],[325,320],[320,307],[285,295],[295,336],[336,285],[320,319],[319,404],[404,320],[329,330],[330,349],[349,329],[334,293],[293,333],[333,334],[366,323],[323,447],[447,366],[316,15],[15,315],[315,316],[331,358],[358,279],[279,331],[317,14],[14,316],[316,317],[8,285],[285,9],[9,8],[277,329],[329,350],[350,277],[253,374],\n[374,252],[252,253],[319,318],[318,403],[403,319],[351,6],[6,419],[419,351],[324,318],[318,325],[325,324],[397,367],[367,365],[365,397],[288,435],[435,397],[397,288],[278,344],[344,439],[439,278],[310,272],[272,311],[311,310],[248,195],[195,281],[281,248],[375,273],[273,291],[291,375],[175,396],[396,199],[199,175],[312,311],[311,268],[268,312],[276,283],[283,445],[445,276],[390,373],[373,339],[339,390],[295,282],[282,296],[296,295],[448,449],[449,346],[346,448],[356,264],[264,454],[454,356],[337,\n336],[336,299],[299,337],[337,338],[338,151],[151,337],[294,278],[278,455],[455,294],[308,292],[292,415],[415,308],[429,358],[358,355],[355,429],[265,340],[340,372],[372,265],[352,346],[346,280],[280,352],[295,442],[442,282],[282,295],[354,19],[19,370],[370,354],[285,441],[441,295],[295,285],[195,248],[248,197],[197,195],[457,440],[440,274],[274,457],[301,300],[300,368],[368,301],[417,351],[351,465],[465,417],[251,301],[301,389],[389,251],[394,395],[395,379],[379,394],[399,412],[412,419],[419,399],\n[410,436],[436,322],[322,410],[326,2],[2,393],[393,326],[354,370],[370,461],[461,354],[393,164],[164,267],[267,393],[268,302],[302,12],[12,268],[312,268],[268,13],[13,312],[298,293],[293,301],[301,298],[265,446],[446,340],[340,265],[280,330],[330,425],[425,280],[322,426],[426,391],[391,322],[420,429],[429,437],[437,420],[393,391],[391,326],[326,393],[344,440],[440,438],[438,344],[458,459],[459,461],[461,458],[364,434],[434,394],[394,364],[428,396],[396,262],[262,428],[274,354],[354,457],[457,274],\n[317,316],[316,402],[402,317],[316,315],[315,403],[403,316],[315,314],[314,404],[404,315],[314,313],[313,405],[405,314],[313,421],[421,406],[406,313],[323,366],[366,361],[361,323],[292,306],[306,407],[407,292],[306,291],[291,408],[408,306],[291,287],[287,409],[409,291],[287,432],[432,410],[410,287],[427,434],[434,411],[411,427],[372,264],[264,383],[383,372],[459,309],[309,457],[457,459],[366,352],[352,401],[401,366],[1,274],[274,4],[4,1],[418,421],[421,262],[262,418],[331,294],[294,358],[358,331],\n[435,433],[433,367],[367,435],[392,289],[289,439],[439,392],[328,462],[462,326],[326,328],[94,2],[2,370],[370,94],[289,305],[305,455],[455,289],[339,254],[254,448],[448,339],[359,255],[255,446],[446,359],[254,253],[253,449],[449,254],[253,252],[252,450],[450,253],[252,256],[256,451],[451,252],[256,341],[341,452],[452,256],[414,413],[413,463],[463,414],[286,441],[441,414],[414,286],[286,258],[258,441],[441,286],[258,257],[257,442],[442,258],[257,259],[259,443],[443,257],[259,260],[260,444],[444,259],\n[260,467],[467,445],[445,260],[309,459],[459,250],[250,309],[305,289],[289,290],[290,305],[305,290],[290,460],[460,305],[401,376],[376,435],[435,401],[309,250],[250,392],[392,309],[376,411],[411,433],[433,376],[453,341],[341,464],[464,453],[357,453],[453,465],[465,357],[343,357],[357,412],[412,343],[437,343],[343,399],[399,437],[344,360],[360,440],[440,344],[420,437],[437,456],[456,420],[360,420],[420,363],[363,360],[361,401],[401,288],[288,361],[265,372],[372,353],[353,265],[390,339],[339,249],[249,\n390],[339,448],[448,255],[255,339]);function Cj(a){a.j={faceLandmarks:[],faceBlendshapes:[],facialTransformationMatrixes:[]}}\nvar Y=class extends qj{constructor(a,b){super(new lj(a,b),\"image_in\",\"norm_rect\",!1);this.j={faceLandmarks:[],faceBlendshapes:[],facialTransformationMatrixes:[]};this.outputFacialTransformationMatrixes=this.outputFaceBlendshapes=!1;a=this.h=new Ug;b=new R;y(a,R,1,b);this.v=new Tg;y(this.h,Tg,3,this.v);this.s=new Mg;y(this.h,Mg,2,this.s);Ld(this.s,4,1);A(this.s,2,.5);A(this.v,2,.5);A(this.h,4,.5)}get baseOptions(){return x(this.h,R,1)}set baseOptions(a){y(this.h,R,1,a)}o(a){\"numFaces\"in a&&Ld(this.s,\n4,a.numFaces??1);\"minFaceDetectionConfidence\"in a&&A(this.s,2,a.minFaceDetectionConfidence??.5);\"minTrackingConfidence\"in a&&A(this.h,4,a.minTrackingConfidence??.5);\"minFacePresenceConfidence\"in a&&A(this.v,2,a.minFacePresenceConfidence??.5);\"outputFaceBlendshapes\"in a&&(this.outputFaceBlendshapes=!!a.outputFaceBlendshapes);\"outputFacialTransformationMatrixes\"in a&&(this.outputFacialTransformationMatrixes=!!a.outputFacialTransformationMatrixes);return this.l(a)}D(a,b){Cj(this);nj(this,a,b);return this.j}F(a,\nb,c){Cj(this);oj(this,a,c,b);return this.j}m(){var a=new gg;P(a,\"image_in\");P(a,\"norm_rect\");Q(a,\"face_landmarks\");const b=new Zf;pe(b,Xg,this.h);const c=new O;bg(c,\"mediapipe.tasks.vision.face_landmarker.FaceLandmarkerGraph\");M(c,\"IMAGE:image_in\");M(c,\"NORM_RECT:norm_rect\");N(c,\"NORM_LANDMARKS:face_landmarks\");c.o(b);fg(a,c);this.g.attachProtoVectorListener(\"face_landmarks\",(d,e)=>{for(const f of d)d=ug(f),this.j.faceLandmarks.push(Lh(d));U(this,e)});this.g.attachEmptyPacketListener(\"face_landmarks\",\nd=>{U(this,d)});this.outputFaceBlendshapes&&(Q(a,\"blendshapes\"),N(c,\"BLENDSHAPES:blendshapes\"),this.g.attachProtoVectorListener(\"blendshapes\",(d,e)=>{if(this.outputFaceBlendshapes)for(const f of d)d=mg(f),this.j.faceBlendshapes.push(Hh(d.g()??[]));U(this,e)}),this.g.attachEmptyPacketListener(\"blendshapes\",d=>{U(this,d)}));this.outputFacialTransformationMatrixes&&(Q(a,\"face_geometry\"),N(c,\"FACE_GEOMETRY:face_geometry\"),this.g.attachProtoVectorListener(\"face_geometry\",(d,e)=>{if(this.outputFacialTransformationMatrixes)for(const f of d)(d=\nx(Rg(f),vg,2))&&this.j.facialTransformationMatrixes.push({rows:Hd(Id(d,1),0)??0,columns:Hd(Id(d,2),0)??0,data:md(d,3,Sb,ld()).slice()??[]});U(this,e)}),this.g.attachEmptyPacketListener(\"face_geometry\",d=>{U(this,d)}));a=a.g();this.setGraph(new Uint8Array(a),!0)}};Y.prototype.detectForVideo=Y.prototype.F;Y.prototype.detect=Y.prototype.D;Y.prototype.setOptions=Y.prototype.o;Y.createFromModelPath=function(a,b){return X(Y,a,{baseOptions:{modelAssetPath:b}})};\nY.createFromModelBuffer=function(a,b){return X(Y,a,{baseOptions:{modelAssetBuffer:b}})};Y.createFromOptions=function(a,b){return X(Y,a,b)};Y.FACE_LANDMARKS_LIPS=sj;Y.FACE_LANDMARKS_LEFT_EYE=tj;\nY.FACE_LANDMARKS_LEFT_EYEBROW=uj;Y.FACE_LANDMARKS_LEFT_IRIS=vj;Y.FACE_LANDMARKS_RIGHT_EYE=wj;\nY.FACE_LANDMARKS_RIGHT_EYEBROW=xj;Y.FACE_LANDMARKS_RIGHT_IRIS=yj;\nY.FACE_LANDMARKS_FACE_OVAL=zj;Y.FACE_LANDMARKS_CONTOURS=Aj;\nY.FACE_LANDMARKS_TESSELATION=Bj;export {Y as FaceLandmarker};var Dj=class extends qj{constructor(a,b){super(new lj(a,b),\"image_in\",\"norm_rect\",!0);a=this.j=new Yg;b=new R;y(a,R,1,b)}get baseOptions(){return x(this.j,R,1)}set baseOptions(a){y(this.j,R,1,a)}o(a){return super.l(a)}Ra(a,b,c){const d=typeof b!==\"function\"?b:{};this.h=typeof b===\"function\"?b:c;nj(this,a,d??{});if(!this.h)return this.s}m(){var a=new gg;P(a,\"image_in\");P(a,\"norm_rect\");Q(a,\"stylized_image\");const b=new Zf;pe(b,Zg,this.j);const c=new O;bg(c,\"mediapipe.tasks.vision.face_stylizer.FaceStylizerGraph\");\nM(c,\"IMAGE:image_in\");M(c,\"NORM_RECT:norm_rect\");N(c,\"STYLIZED_IMAGE:stylized_image\");c.o(b);fg(a,c);this.g.W(\"stylized_image\",(d,e)=>{var f=!this.h;var g=d.data,k=d.width;d=d.height;const h=k*d;if(g instanceof Uint8Array)if(g.length===h*3){const l=new Uint8ClampedArray(h*4);for(let u=0;u{this.s=null;this.h&&this.h(null);U(this,d)});a=a.g();this.setGraph(new Uint8Array(a),!0)}};Dj.prototype.stylize=Dj.prototype.Ra;Dj.prototype.setOptions=Dj.prototype.o;Dj.createFromModelPath=function(a,b){return X(Dj,a,{baseOptions:{modelAssetPath:b}})};\nDj.createFromModelBuffer=function(a,b){return X(Dj,a,{baseOptions:{modelAssetBuffer:b}})};Dj.createFromOptions=function(a,b){return X(Dj,a,b)};export {Dj as FaceStylizer};var Ej=jj([0,1],[1,2],[2,3],[3,4],[0,5],[5,6],[6,7],[7,8],[5,9],[9,10],[10,11],[11,12],[9,13],[13,14],[14,15],[15,16],[13,17],[0,17],[17,18],[18,19],[19,20]);function Fj(a){a.gestures=[];a.landmarks=[];a.worldLandmarks=[];a.handedness=[]}function Gj(a){return a.gestures.length===0?{gestures:[],landmarks:[],worldLandmarks:[],handedness:[],handednesses:[]}:{gestures:a.gestures,landmarks:a.landmarks,worldLandmarks:a.worldLandmarks,handedness:a.handedness,handednesses:a.handedness}}\nfunction Hj(a,b=!0){const c=[];for(const e of a){var d=mg(e);a=[];for(const f of d.g())d=b&&Id(f,1)!=null?Hd(Id(f,1),0):-1,a.push({score:z(f,2)??0,index:d,categoryName:Jd(f,3)??\"\",displayName:Jd(f,4)??\"\"});c.push(a)}return c}\nvar Ij=class extends qj{constructor(a,b){super(new lj(a,b),\"image_in\",\"norm_rect\",!1);this.gestures=[];this.landmarks=[];this.worldLandmarks=[];this.handedness=[];a=this.j=new gh;b=new R;y(a,R,1,b);this.s=new fh;y(this.j,fh,2,this.s);this.C=new eh;y(this.s,eh,3,this.C);this.v=new dh;y(this.s,dh,2,this.v);this.h=new ch;y(this.j,ch,3,this.h);A(this.v,2,.5);A(this.s,4,.5);A(this.C,2,.5)}get baseOptions(){return x(this.j,R,1)}set baseOptions(a){y(this.j,R,1,a)}o(a){Ld(this.v,3,a.numHands??1);\"minHandDetectionConfidence\"in\na&&A(this.v,2,a.minHandDetectionConfidence??.5);\"minTrackingConfidence\"in a&&A(this.s,4,a.minTrackingConfidence??.5);\"minHandPresenceConfidence\"in a&&A(this.C,2,a.minHandPresenceConfidence??.5);if(a.cannedGesturesClassifierOptions){var b=new $g,c=b,d=Gh(a.cannedGesturesClassifierOptions,x(this.h,$g,3)?.h());y(c,Eg,2,d);y(this.h,$g,3,b)}else a.cannedGesturesClassifierOptions===void 0&&x(this.h,$g,3)?.g();a.customGesturesClassifierOptions?(c=b=new $g,d=Gh(a.customGesturesClassifierOptions,x(this.h,\n$g,4)?.h()),y(c,Eg,2,d),y(this.h,$g,4,b)):a.customGesturesClassifierOptions===void 0&&x(this.h,$g,4)?.g();return this.l(a)}Ma(a,b){Fj(this);nj(this,a,b);return Gj(this)}Na(a,b,c){Fj(this);oj(this,a,c,b);return Gj(this)}m(){var a=new gg;P(a,\"image_in\");P(a,\"norm_rect\");Q(a,\"hand_gestures\");Q(a,\"hand_landmarks\");Q(a,\"world_hand_landmarks\");Q(a,\"handedness\");const b=new Zf;pe(b,nh,this.j);const c=new O;bg(c,\"mediapipe.tasks.vision.gesture_recognizer.GestureRecognizerGraph\");M(c,\"IMAGE:image_in\");M(c,\n\"NORM_RECT:norm_rect\");N(c,\"HAND_GESTURES:hand_gestures\");N(c,\"LANDMARKS:hand_landmarks\");N(c,\"WORLD_LANDMARKS:world_hand_landmarks\");N(c,\"HANDEDNESS:handedness\");c.o(b);fg(a,c);this.g.attachProtoVectorListener(\"hand_landmarks\",(d,e)=>{for(const f of d){d=ug(f);const g=[];for(const k of Ed(d,tg,1))g.push({x:z(k,1)??0,y:z(k,2)??0,z:z(k,3)??0,visibility:z(k,4)??0});this.landmarks.push(g)}U(this,e)});this.g.attachEmptyPacketListener(\"hand_landmarks\",d=>{U(this,d)});this.g.attachProtoVectorListener(\"world_hand_landmarks\",\n(d,e)=>{for(const f of d){d=sg(f);const g=[];for(const k of Ed(d,rg,1))g.push({x:z(k,1)??0,y:z(k,2)??0,z:z(k,3)??0,visibility:z(k,4)??0});this.worldLandmarks.push(g)}U(this,e)});this.g.attachEmptyPacketListener(\"world_hand_landmarks\",d=>{U(this,d)});this.g.attachProtoVectorListener(\"hand_gestures\",(d,e)=>{this.gestures.push(...Hj(d,!1));U(this,e)});this.g.attachEmptyPacketListener(\"hand_gestures\",d=>{U(this,d)});this.g.attachProtoVectorListener(\"handedness\",(d,e)=>{this.handedness.push(...Hj(d));\nU(this,e)});this.g.attachEmptyPacketListener(\"handedness\",d=>{U(this,d)});a=a.g();this.setGraph(new Uint8Array(a),!0)}};Ij.prototype.recognizeForVideo=Ij.prototype.Na;Ij.prototype.recognize=Ij.prototype.Ma;Ij.prototype.setOptions=Ij.prototype.o;Ij.createFromModelPath=function(a,b){return X(Ij,a,{baseOptions:{modelAssetPath:b}})};Ij.createFromModelBuffer=function(a,b){return X(Ij,a,{baseOptions:{modelAssetBuffer:b}})};Ij.createFromOptions=function(a,b){return X(Ij,a,b)};Ij.HAND_CONNECTIONS=Ej;\nexport {Ij as GestureRecognizer};function Jj(a){return{landmarks:a.landmarks,worldLandmarks:a.worldLandmarks,handednesses:a.handedness,handedness:a.handedness}}\nvar Kj=class extends qj{constructor(a,b){super(new lj(a,b),\"image_in\",\"norm_rect\",!1);this.landmarks=[];this.worldLandmarks=[];this.handedness=[];a=this.h=new fh;b=new R;y(a,R,1,b);this.s=new eh;y(this.h,eh,3,this.s);this.j=new dh;y(this.h,dh,2,this.j);Ld(this.j,3,1);A(this.j,2,.5);A(this.s,2,.5);A(this.h,4,.5)}get baseOptions(){return x(this.h,R,1)}set baseOptions(a){y(this.h,R,1,a)}o(a){\"numHands\"in a&&Ld(this.j,3,a.numHands??1);\"minHandDetectionConfidence\"in a&&A(this.j,2,a.minHandDetectionConfidence??\n.5);\"minTrackingConfidence\"in a&&A(this.h,4,a.minTrackingConfidence??.5);\"minHandPresenceConfidence\"in a&&A(this.s,2,a.minHandPresenceConfidence??.5);return this.l(a)}D(a,b){this.landmarks=[];this.worldLandmarks=[];this.handedness=[];nj(this,a,b);return Jj(this)}F(a,b,c){this.landmarks=[];this.worldLandmarks=[];this.handedness=[];oj(this,a,c,b);return Jj(this)}m(){var a=new gg;P(a,\"image_in\");P(a,\"norm_rect\");Q(a,\"hand_landmarks\");Q(a,\"world_hand_landmarks\");Q(a,\"handedness\");const b=new Zf;pe(b,\nmh,this.h);const c=new O;bg(c,\"mediapipe.tasks.vision.hand_landmarker.HandLandmarkerGraph\");M(c,\"IMAGE:image_in\");M(c,\"NORM_RECT:norm_rect\");N(c,\"LANDMARKS:hand_landmarks\");N(c,\"WORLD_LANDMARKS:world_hand_landmarks\");N(c,\"HANDEDNESS:handedness\");c.o(b);fg(a,c);this.g.attachProtoVectorListener(\"hand_landmarks\",(d,e)=>{for(const f of d)d=ug(f),this.landmarks.push(Lh(d));U(this,e)});this.g.attachEmptyPacketListener(\"hand_landmarks\",d=>{U(this,d)});this.g.attachProtoVectorListener(\"world_hand_landmarks\",\n(d,e)=>{for(const f of d)d=sg(f),this.worldLandmarks.push(Mh(d));U(this,e)});this.g.attachEmptyPacketListener(\"world_hand_landmarks\",d=>{U(this,d)});this.g.attachProtoVectorListener(\"handedness\",(d,e)=>{var f=this.handedness,g=f.push;const k=[];for(const h of d){d=mg(h);const l=[];for(const u of d.g())l.push({score:z(u,2)??0,index:Hd(Id(u,1),0)??-1,categoryName:Jd(u,3)??\"\",displayName:Jd(u,4)??\"\"});k.push(l)}g.call(f,...k);U(this,e)});this.g.attachEmptyPacketListener(\"handedness\",d=>{U(this,d)});\na=a.g();this.setGraph(new Uint8Array(a),!0)}};Kj.prototype.detectForVideo=Kj.prototype.F;Kj.prototype.detect=Kj.prototype.D;Kj.prototype.setOptions=Kj.prototype.o;Kj.createFromModelPath=function(a,b){return X(Kj,a,{baseOptions:{modelAssetPath:b}})};Kj.createFromModelBuffer=function(a,b){return X(Kj,a,{baseOptions:{modelAssetBuffer:b}})};Kj.createFromOptions=function(a,b){return X(Kj,a,b)};Kj.HAND_CONNECTIONS=Ej;\nexport {Kj as HandLandmarker};var Lj=jj([0,1],[1,2],[2,3],[3,7],[0,4],[4,5],[5,6],[6,8],[9,10],[11,12],[11,13],[13,15],[15,17],[15,19],[15,21],[17,19],[12,14],[14,16],[16,18],[16,20],[16,22],[18,20],[11,23],[12,24],[23,24],[23,25],[24,26],[25,27],[26,28],[27,29],[28,30],[29,31],[30,32],[27,31],[28,32]);function Mj(a){a.h={faceLandmarks:[],faceBlendshapes:[],poseLandmarks:[],poseWorldLandmarks:[],poseSegmentationMasks:[],leftHandLandmarks:[],leftHandWorldLandmarks:[],rightHandLandmarks:[],rightHandWorldLandmarks:[]}}function Nj(a){try{if(a.C)a.C(a.h);else return a.h}finally{ki(a)}}function Oj(a,b){a=ug(a);b.push(Lh(a))}\nvar Z=class extends qj{constructor(a,b){super(new lj(a,b),\"input_frames_image\",null,!1);this.h={faceLandmarks:[],faceBlendshapes:[],poseLandmarks:[],poseWorldLandmarks:[],poseSegmentationMasks:[],leftHandLandmarks:[],leftHandWorldLandmarks:[],rightHandLandmarks:[],rightHandWorldLandmarks:[]};this.outputPoseSegmentationMasks=this.outputFaceBlendshapes=!1;a=this.j=new rh;b=new R;y(a,R,1,b);this.K=new eh;y(this.j,eh,2,this.K);this.ca=new oh;y(this.j,oh,3,this.ca);this.s=new Mg;y(this.j,Mg,4,this.s);\nthis.I=new Tg;y(this.j,Tg,5,this.I);this.v=new ph;y(this.j,ph,6,this.v);this.L=new qh;y(this.j,qh,7,this.L);A(this.s,2,.5);A(this.s,3,.3);A(this.I,2,.5);A(this.v,2,.5);A(this.v,3,.3);A(this.L,2,.5);A(this.K,2,.5)}get baseOptions(){return x(this.j,R,1)}set baseOptions(a){y(this.j,R,1,a)}o(a){\"minFaceDetectionConfidence\"in a&&A(this.s,2,a.minFaceDetectionConfidence??.5);\"minFaceSuppressionThreshold\"in a&&A(this.s,3,a.minFaceSuppressionThreshold??.3);\"minFacePresenceConfidence\"in a&&A(this.I,2,a.minFacePresenceConfidence??\n.5);\"outputFaceBlendshapes\"in a&&(this.outputFaceBlendshapes=!!a.outputFaceBlendshapes);\"minPoseDetectionConfidence\"in a&&A(this.v,2,a.minPoseDetectionConfidence??.5);\"minPoseSuppressionThreshold\"in a&&A(this.v,3,a.minPoseSuppressionThreshold??.3);\"minPosePresenceConfidence\"in a&&A(this.L,2,a.minPosePresenceConfidence??.5);\"outputPoseSegmentationMasks\"in a&&(this.outputPoseSegmentationMasks=!!a.outputPoseSegmentationMasks);\"minHandLandmarksConfidence\"in a&&A(this.K,2,a.minHandLandmarksConfidence??\n.5);return this.l(a)}D(a,b,c){const d=typeof b!==\"function\"?b:{};this.C=typeof b===\"function\"?b:c;Mj(this);nj(this,a,d);return Nj(this)}F(a,b,c,d){const e=typeof c!==\"function\"?c:{};this.C=typeof c===\"function\"?c:d;Mj(this);oj(this,a,e,b);return Nj(this)}m(){var a=new gg;P(a,\"input_frames_image\");Q(a,\"pose_landmarks\");Q(a,\"pose_world_landmarks\");Q(a,\"face_landmarks\");Q(a,\"left_hand_landmarks\");Q(a,\"left_hand_world_landmarks\");Q(a,\"right_hand_landmarks\");Q(a,\"right_hand_world_landmarks\");const b=new Zf,\nc=new Lf;vd(c,1,fc(\"type.googleapis.com/mediapipe.tasks.vision.holistic_landmarker.proto.HolisticLandmarkerGraphOptions\"),\"\");Kf(c,this.j.g());const d=new O;bg(d,\"mediapipe.tasks.vision.holistic_landmarker.HolisticLandmarkerGraph\");Gd(d,8,Lf,c);M(d,\"IMAGE:input_frames_image\");N(d,\"POSE_LANDMARKS:pose_landmarks\");N(d,\"POSE_WORLD_LANDMARKS:pose_world_landmarks\");N(d,\"FACE_LANDMARKS:face_landmarks\");N(d,\"LEFT_HAND_LANDMARKS:left_hand_landmarks\");N(d,\"LEFT_HAND_WORLD_LANDMARKS:left_hand_world_landmarks\");\nN(d,\"RIGHT_HAND_LANDMARKS:right_hand_landmarks\");N(d,\"RIGHT_HAND_WORLD_LANDMARKS:right_hand_world_landmarks\");d.o(b);fg(a,d);ii(this,a);this.g.attachProtoListener(\"pose_landmarks\",(e,f)=>{Oj(e,this.h.poseLandmarks);U(this,f)});this.g.attachEmptyPacketListener(\"pose_landmarks\",e=>{U(this,e)});this.g.attachProtoListener(\"pose_world_landmarks\",(e,f)=>{var g=this.h.poseWorldLandmarks;e=sg(e);g.push(Mh(e));U(this,f)});this.g.attachEmptyPacketListener(\"pose_world_landmarks\",e=>{U(this,e)});this.outputPoseSegmentationMasks&&\n(N(d,\"POSE_SEGMENTATION_MASK:pose_segmentation_mask\"),ji(this,\"pose_segmentation_mask\"),this.g.W(\"pose_segmentation_mask\",(e,f)=>{this.h.poseSegmentationMasks=[pj(this,e,!0,!this.C)];U(this,f)}),this.g.attachEmptyPacketListener(\"pose_segmentation_mask\",e=>{this.h.poseSegmentationMasks=[];U(this,e)}));this.g.attachProtoListener(\"face_landmarks\",(e,f)=>{Oj(e,this.h.faceLandmarks);U(this,f)});this.g.attachEmptyPacketListener(\"face_landmarks\",e=>{U(this,e)});this.outputFaceBlendshapes&&(Q(a,\"extra_blendshapes\"),\nN(d,\"FACE_BLENDSHAPES:extra_blendshapes\"),this.g.attachProtoListener(\"extra_blendshapes\",(e,f)=>{var g=this.h.faceBlendshapes;this.outputFaceBlendshapes&&(e=mg(e),g.push(Hh(e.g()??[])));U(this,f)}),this.g.attachEmptyPacketListener(\"extra_blendshapes\",e=>{U(this,e)}));this.g.attachProtoListener(\"left_hand_landmarks\",(e,f)=>{Oj(e,this.h.leftHandLandmarks);U(this,f)});this.g.attachEmptyPacketListener(\"left_hand_landmarks\",e=>{U(this,e)});this.g.attachProtoListener(\"left_hand_world_landmarks\",(e,f)=>\n{var g=this.h.leftHandWorldLandmarks;e=sg(e);g.push(Mh(e));U(this,f)});this.g.attachEmptyPacketListener(\"left_hand_world_landmarks\",e=>{U(this,e)});this.g.attachProtoListener(\"right_hand_landmarks\",(e,f)=>{Oj(e,this.h.rightHandLandmarks);U(this,f)});this.g.attachEmptyPacketListener(\"right_hand_landmarks\",e=>{U(this,e)});this.g.attachProtoListener(\"right_hand_world_landmarks\",(e,f)=>{var g=this.h.rightHandWorldLandmarks;e=sg(e);g.push(Mh(e));U(this,f)});this.g.attachEmptyPacketListener(\"right_hand_world_landmarks\",\ne=>{U(this,e)});a=a.g();this.setGraph(new Uint8Array(a),!0)}};Z.prototype.detectForVideo=Z.prototype.F;Z.prototype.detect=Z.prototype.D;Z.prototype.setOptions=Z.prototype.o;Z.createFromModelPath=function(a,b){return X(Z,a,{baseOptions:{modelAssetPath:b}})};Z.createFromModelBuffer=function(a,b){return X(Z,a,{baseOptions:{modelAssetBuffer:b}})};Z.createFromOptions=function(a,b){return X(Z,a,b)};Z.HAND_CONNECTIONS=Ej;\nZ.POSE_CONNECTIONS=Lj;Z.FACE_LANDMARKS_LIPS=sj;\nZ.FACE_LANDMARKS_LEFT_EYE=tj;Z.FACE_LANDMARKS_LEFT_EYEBROW=uj;\nZ.FACE_LANDMARKS_LEFT_IRIS=vj;Z.FACE_LANDMARKS_RIGHT_EYE=wj;\nZ.FACE_LANDMARKS_RIGHT_EYEBROW=xj;Z.FACE_LANDMARKS_RIGHT_IRIS=yj;\nZ.FACE_LANDMARKS_FACE_OVAL=zj;Z.FACE_LANDMARKS_CONTOURS=Aj;\nZ.FACE_LANDMARKS_TESSELATION=Bj;export {Z as HolisticLandmarker};var Pj=class extends qj{constructor(a,b){super(new lj(a,b),\"input_image\",\"norm_rect\",!0);this.j={classifications:[]};a=this.h=new uh;b=new R;y(a,R,1,b)}get baseOptions(){return x(this.h,R,1)}set baseOptions(a){y(this.h,R,1,a)}o(a){var b=this.h,c=Gh(a,x(this.h,Eg,2));y(b,Eg,2,c);return this.l(a)}wa(a,b){this.j={classifications:[]};nj(this,a,b);return this.j}xa(a,b,c){this.j={classifications:[]};oj(this,a,c,b);return this.j}m(){var a=new gg;P(a,\"input_image\");P(a,\"norm_rect\");Q(a,\"classifications\");\nconst b=new Zf;pe(b,vh,this.h);const c=new O;bg(c,\"mediapipe.tasks.vision.image_classifier.ImageClassifierGraph\");M(c,\"IMAGE:input_image\");M(c,\"NORM_RECT:norm_rect\");N(c,\"CLASSIFICATIONS:classifications\");c.o(b);fg(a,c);this.g.attachProtoListener(\"classifications\",(d,e)=>{this.j=Ih(zg(d));U(this,e)});this.g.attachEmptyPacketListener(\"classifications\",d=>{U(this,d)});a=a.g();this.setGraph(new Uint8Array(a),!0)}};Pj.prototype.classifyForVideo=Pj.prototype.xa;Pj.prototype.classify=Pj.prototype.wa;\nPj.prototype.setOptions=Pj.prototype.o;Pj.createFromModelPath=function(a,b){return X(Pj,a,{baseOptions:{modelAssetPath:b}})};Pj.createFromModelBuffer=function(a,b){return X(Pj,a,{baseOptions:{modelAssetBuffer:b}})};Pj.createFromOptions=function(a,b){return X(Pj,a,b)};export {Pj as ImageClassifier};var Qj=class extends qj{constructor(a,b){super(new lj(a,b),\"image_in\",\"norm_rect\",!0);this.h=new wh;this.embeddings={embeddings:[]};a=this.h;b=new R;y(a,R,1,b)}get baseOptions(){return x(this.h,R,1)}set baseOptions(a){y(this.h,R,1,a)}o(a){var b=this.h,c=x(this.h,Gg,2);c=c?c.clone():new Gg;a.l2Normalize!==void 0?Kd(c,1,a.l2Normalize):\"l2Normalize\"in a&&v(c,1);a.quantize!==void 0?Kd(c,2,a.quantize):\"quantize\"in a&&v(c,2);y(b,Gg,2,c);return this.l(a)}Da(a,b){nj(this,a,b);return this.embeddings}Ea(a,\nb,c){oj(this,a,c,b);return this.embeddings}m(){var a=new gg;P(a,\"image_in\");P(a,\"norm_rect\");Q(a,\"embeddings_out\");const b=new Zf;pe(b,xh,this.h);const c=new O;bg(c,\"mediapipe.tasks.vision.image_embedder.ImageEmbedderGraph\");M(c,\"IMAGE:image_in\");M(c,\"NORM_RECT:norm_rect\");N(c,\"EMBEDDINGS:embeddings_out\");c.o(b);fg(a,c);this.g.attachProtoListener(\"embeddings_out\",(d,e)=>{d=Dg(d);this.embeddings=Kh(d);U(this,e)});this.g.attachEmptyPacketListener(\"embeddings_out\",d=>{U(this,d)});a=a.g();this.setGraph(new Uint8Array(a),\n!0)}};Qj.cosineSimilarity=function(a,b){if(a.floatEmbedding&&b.floatEmbedding)a=Oh(a.floatEmbedding,b.floatEmbedding);else if(a.quantizedEmbedding&&b.quantizedEmbedding)a=Oh(Nh(a.quantizedEmbedding),Nh(b.quantizedEmbedding));else throw Error(\"Cannot compute cosine similarity between quantized and float embeddings.\");return a};Qj.prototype.embedForVideo=Qj.prototype.Ea;Qj.prototype.embed=Qj.prototype.Da;Qj.prototype.setOptions=Qj.prototype.o;Qj.createFromModelPath=function(a,b){return X(Qj,a,{baseOptions:{modelAssetPath:b}})};\nQj.createFromModelBuffer=function(a,b){return X(Qj,a,{baseOptions:{modelAssetBuffer:b}})};Qj.createFromOptions=function(a,b){return X(Qj,a,b)};export {Qj as ImageEmbedder};var Rj=class{constructor(a,b,c){this.confidenceMasks=a;this.categoryMask=b;this.qualityScores=c}close(){this.confidenceMasks?.forEach(a=>{a.close()});this.categoryMask?.close()}};Rj.prototype.close=Rj.prototype.close;export {Rj as ImageSegmenterResult};function Sj(a){const b=Ed(a.ga(),O,1).filter(c=>Jd(c,1).includes(\"mediapipe.tasks.TensorsToSegmentationCalculator\"));a.s=[];if(b.length>1)throw Error(\"The graph has more than one mediapipe.tasks.TensorsToSegmentationCalculator.\");b.length===1&&(x(b[0],Zf,7)?.l()?.g()??new Map).forEach((c,d)=>{a.s[Number(d)]=Jd(c,1)})}function Tj(a){a.categoryMask=void 0;a.confidenceMasks=void 0;a.qualityScores=void 0}\nfunction Uj(a){try{const b=new Rj(a.confidenceMasks,a.categoryMask,a.qualityScores);if(a.j)a.j(b);else return b}finally{ki(a)}}\nvar Vj=class extends qj{constructor(a,b){super(new lj(a,b),\"image_in\",\"norm_rect\",!1);this.s=[];this.outputCategoryMask=!1;this.outputConfidenceMasks=!0;this.h=new Ah;this.v=new yh;y(this.h,yh,3,this.v);a=this.h;b=new R;y(a,R,1,b)}get baseOptions(){return x(this.h,R,1)}set baseOptions(a){y(this.h,R,1,a)}o(a){a.displayNamesLocale!==void 0?v(this.h,2,fc(a.displayNamesLocale)):\"displayNamesLocale\"in a&&v(this.h,2);\"outputCategoryMask\"in a&&(this.outputCategoryMask=a.outputCategoryMask??!1);\"outputConfidenceMasks\"in\na&&(this.outputConfidenceMasks=a.outputConfidenceMasks??!0);return super.l(a)}J(){Sj(this)}ha(a,b,c){const d=typeof b!==\"function\"?b:{};this.j=typeof b===\"function\"?b:c;Tj(this);nj(this,a,d);return Uj(this)}Pa(a,b,c,d){const e=typeof c!==\"function\"?c:{};this.j=typeof c===\"function\"?c:d;Tj(this);oj(this,a,e,b);return Uj(this)}Ha(){return this.s}m(){var a=new gg;P(a,\"image_in\");P(a,\"norm_rect\");const b=new Zf;pe(b,Bh,this.h);const c=new O;bg(c,\"mediapipe.tasks.vision.image_segmenter.ImageSegmenterGraph\");\nM(c,\"IMAGE:image_in\");M(c,\"NORM_RECT:norm_rect\");c.o(b);fg(a,c);ii(this,a);this.outputConfidenceMasks&&(Q(a,\"confidence_masks\"),N(c,\"CONFIDENCE_MASKS:confidence_masks\"),ji(this,\"confidence_masks\"),this.g.fa(\"confidence_masks\",(d,e)=>{this.confidenceMasks=d.map(f=>pj(this,f,!0,!this.j));U(this,e)}),this.g.attachEmptyPacketListener(\"confidence_masks\",d=>{this.confidenceMasks=[];U(this,d)}));this.outputCategoryMask&&(Q(a,\"category_mask\"),N(c,\"CATEGORY_MASK:category_mask\"),ji(this,\"category_mask\"),this.g.W(\"category_mask\",\n(d,e)=>{this.categoryMask=pj(this,d,!1,!this.j);U(this,e)}),this.g.attachEmptyPacketListener(\"category_mask\",d=>{this.categoryMask=void 0;U(this,d)}));Q(a,\"quality_scores\");N(c,\"QUALITY_SCORES:quality_scores\");this.g.attachFloatVectorListener(\"quality_scores\",(d,e)=>{this.qualityScores=d;U(this,e)});this.g.attachEmptyPacketListener(\"quality_scores\",d=>{this.categoryMask=void 0;U(this,d)});a=a.g();this.setGraph(new Uint8Array(a),!0)}};Vj.prototype.getLabels=Vj.prototype.Ha;\nVj.prototype.segmentForVideo=Vj.prototype.Pa;Vj.prototype.segment=Vj.prototype.ha;Vj.prototype.setOptions=Vj.prototype.o;Vj.createFromModelPath=function(a,b){return X(Vj,a,{baseOptions:{modelAssetPath:b}})};Vj.createFromModelBuffer=function(a,b){return X(Vj,a,{baseOptions:{modelAssetBuffer:b}})};Vj.createFromOptions=function(a,b){return X(Vj,a,b)};export {Vj as ImageSegmenter};var Wj=class{constructor(a,b,c){this.confidenceMasks=a;this.categoryMask=b;this.qualityScores=c}close(){this.confidenceMasks?.forEach(a=>{a.close()});this.categoryMask?.close()}};Wj.prototype.close=Wj.prototype.close;export {Wj as InteractiveSegmenterResult};var Xj=class extends B{constructor(a){super(a)}};var Yj=[0,D,-2];var Zj=[0,tf,-3,F,tf,-1];var ak=[0,Zj];var bk=[0,Zj,D,-1];var ck=class extends B{constructor(a){super(a)}};var dk=[0,tf,-1,F];var ek=class extends B{constructor(){super()}};var fk=class extends B{constructor(a){super(a)}},gk=[1,2,3,4,5,6,7,8,9,10,14,15];var hk=class extends B{constructor(){super()}};hk.prototype.g=Jf([0,I,[0,gk,J,Zj,J,[0,Zj,Yj],J,ak,J,[0,ak,Yj],J,dk,J,[0,tf,-3,F,Ff],J,[0,tf,-3,F],J,[0,H,tf,-2,F,D,F,-1,2,tf,Yj],J,bk,J,[0,bk,Yj],tf,Yj,H,J,[0,tf,-3,F,Yj,-1],J,[0,I,dk]],H,[0,H,D,-1,F]]);var ik=class extends qj{constructor(a,b){super(new lj(a,b),\"image_in\",\"norm_rect_in\",!1);this.outputCategoryMask=!1;this.outputConfidenceMasks=!0;this.h=new Ah;this.s=new yh;y(this.h,yh,3,this.s);a=this.h;b=new R;y(a,R,1,b)}get baseOptions(){return x(this.h,R,1)}set baseOptions(a){y(this.h,R,1,a)}o(a){\"outputCategoryMask\"in a&&(this.outputCategoryMask=a.outputCategoryMask??!1);\"outputConfidenceMasks\"in a&&(this.outputConfidenceMasks=a.outputConfidenceMasks??!0);return super.l(a)}ha(a,b,c,d){const e=\ntypeof c!==\"function\"?c:{};this.j=typeof c===\"function\"?c:d;this.qualityScores=this.categoryMask=this.confidenceMasks=void 0;c=this.B+1;d=new hk;const f=new fk;var g=new Xj;Ld(g,1,255);y(f,Xj,12,g);if(b.keypoint&&b.scribble)throw Error(\"Cannot provide both keypoint and scribble.\");if(b.keypoint){var k=new ck;Kd(k,3,!0);A(k,1,b.keypoint.x);A(k,2,b.keypoint.y);Fd(f,5,gk,k)}else if(b.scribble){g=new ek;for(k of b.scribble)b=new ck,Kd(b,3,!0),A(b,1,k.x),A(b,2,k.y),Gd(g,1,ck,b);Fd(f,15,gk,g)}else throw Error(\"Must provide either a keypoint or a scribble.\");\nGd(d,1,fk,f);this.g.addProtoToStream(d.g(),\"drishti.RenderData\",\"roi_in\",c);nj(this,a,e);a:{try{const l=new Wj(this.confidenceMasks,this.categoryMask,this.qualityScores);if(this.j)this.j(l);else{var h=l;break a}}finally{ki(this)}h=void 0}return h}m(){var a=new gg;P(a,\"image_in\");P(a,\"roi_in\");P(a,\"norm_rect_in\");const b=new Zf;pe(b,Bh,this.h);const c=new O;bg(c,\"mediapipe.tasks.vision.interactive_segmenter.InteractiveSegmenterGraph\");M(c,\"IMAGE:image_in\");M(c,\"ROI:roi_in\");M(c,\"NORM_RECT:norm_rect_in\");\nc.o(b);fg(a,c);ii(this,a);this.outputConfidenceMasks&&(Q(a,\"confidence_masks\"),N(c,\"CONFIDENCE_MASKS:confidence_masks\"),ji(this,\"confidence_masks\"),this.g.fa(\"confidence_masks\",(d,e)=>{this.confidenceMasks=d.map(f=>pj(this,f,!0,!this.j));U(this,e)}),this.g.attachEmptyPacketListener(\"confidence_masks\",d=>{this.confidenceMasks=[];U(this,d)}));this.outputCategoryMask&&(Q(a,\"category_mask\"),N(c,\"CATEGORY_MASK:category_mask\"),ji(this,\"category_mask\"),this.g.W(\"category_mask\",(d,e)=>{this.categoryMask=\npj(this,d,!1,!this.j);U(this,e)}),this.g.attachEmptyPacketListener(\"category_mask\",d=>{this.categoryMask=void 0;U(this,d)}));Q(a,\"quality_scores\");N(c,\"QUALITY_SCORES:quality_scores\");this.g.attachFloatVectorListener(\"quality_scores\",(d,e)=>{this.qualityScores=d;U(this,e)});this.g.attachEmptyPacketListener(\"quality_scores\",d=>{this.categoryMask=void 0;U(this,d)});a=a.g();this.setGraph(new Uint8Array(a),!0)}};ik.prototype.segment=ik.prototype.ha;ik.prototype.setOptions=ik.prototype.o;\nik.createFromModelPath=function(a,b){return X(ik,a,{baseOptions:{modelAssetPath:b}})};ik.createFromModelBuffer=function(a,b){return X(ik,a,{baseOptions:{modelAssetBuffer:b}})};ik.createFromOptions=function(a,b){return X(ik,a,b)};export {ik as InteractiveSegmenter};var jk=class extends qj{constructor(a,b){super(new lj(a,b),\"input_frame_gpu\",\"norm_rect\",!1);this.j={detections:[]};a=this.h=new Ch;b=new R;y(a,R,1,b)}get baseOptions(){return x(this.h,R,1)}set baseOptions(a){y(this.h,R,1,a)}o(a){a.displayNamesLocale!==void 0?v(this.h,2,fc(a.displayNamesLocale)):\"displayNamesLocale\"in a&&v(this.h,2);a.maxResults!==void 0?Ld(this.h,3,a.maxResults):\"maxResults\"in a&&v(this.h,3);a.scoreThreshold!==void 0?A(this.h,4,a.scoreThreshold):\"scoreThreshold\"in a&&v(this.h,4);\na.categoryAllowlist!==void 0?Md(this.h,5,a.categoryAllowlist):\"categoryAllowlist\"in a&&v(this.h,5);a.categoryDenylist!==void 0?Md(this.h,6,a.categoryDenylist):\"categoryDenylist\"in a&&v(this.h,6);return this.l(a)}D(a,b){this.j={detections:[]};nj(this,a,b);return this.j}F(a,b,c){this.j={detections:[]};oj(this,a,c,b);return this.j}m(){var a=new gg;P(a,\"input_frame_gpu\");P(a,\"norm_rect\");Q(a,\"detections\");const b=new Zf;pe(b,Dh,this.h);const c=new O;bg(c,\"mediapipe.tasks.vision.ObjectDetectorGraph\");\nM(c,\"IMAGE:input_frame_gpu\");M(c,\"NORM_RECT:norm_rect\");N(c,\"DETECTIONS:detections\");c.o(b);fg(a,c);this.g.attachProtoVectorListener(\"detections\",(d,e)=>{for(const f of d)d=qg(f),this.j.detections.push(Jh(d));U(this,e)});this.g.attachEmptyPacketListener(\"detections\",d=>{U(this,d)});a=a.g();this.setGraph(new Uint8Array(a),!0)}};jk.prototype.detectForVideo=jk.prototype.F;jk.prototype.detect=jk.prototype.D;jk.prototype.setOptions=jk.prototype.o;\njk.createFromModelPath=async function(a,b){return X(jk,a,{baseOptions:{modelAssetPath:b}})};jk.createFromModelBuffer=function(a,b){return X(jk,a,{baseOptions:{modelAssetBuffer:b}})};jk.createFromOptions=function(a,b){return X(jk,a,b)};export {jk as ObjectDetector};var kk=class{constructor(a,b,c){this.landmarks=a;this.worldLandmarks=b;this.segmentationMasks=c}close(){this.segmentationMasks?.forEach(a=>{a.close()})}};kk.prototype.close=kk.prototype.close;function lk(a){a.landmarks=[];a.worldLandmarks=[];a.segmentationMasks=void 0}function mk(a){try{const b=new kk(a.landmarks,a.worldLandmarks,a.segmentationMasks);if(a.s)a.s(b);else return b}finally{ki(a)}}\nvar nk=class extends qj{constructor(a,b){super(new lj(a,b),\"image_in\",\"norm_rect\",!1);this.landmarks=[];this.worldLandmarks=[];this.outputSegmentationMasks=!1;a=this.h=new Eh;b=new R;y(a,R,1,b);this.v=new qh;y(this.h,qh,3,this.v);this.j=new ph;y(this.h,ph,2,this.j);Ld(this.j,4,1);A(this.j,2,.5);A(this.v,2,.5);A(this.h,4,.5)}get baseOptions(){return x(this.h,R,1)}set baseOptions(a){y(this.h,R,1,a)}o(a){\"numPoses\"in a&&Ld(this.j,4,a.numPoses??1);\"minPoseDetectionConfidence\"in a&&A(this.j,2,a.minPoseDetectionConfidence??\n.5);\"minTrackingConfidence\"in a&&A(this.h,4,a.minTrackingConfidence??.5);\"minPosePresenceConfidence\"in a&&A(this.v,2,a.minPosePresenceConfidence??.5);\"outputSegmentationMasks\"in a&&(this.outputSegmentationMasks=a.outputSegmentationMasks??!1);return this.l(a)}D(a,b,c){const d=typeof b!==\"function\"?b:{};this.s=typeof b===\"function\"?b:c;lk(this);nj(this,a,d);return mk(this)}F(a,b,c,d){const e=typeof c!==\"function\"?c:{};this.s=typeof c===\"function\"?c:d;lk(this);oj(this,a,e,b);return mk(this)}m(){var a=\nnew gg;P(a,\"image_in\");P(a,\"norm_rect\");Q(a,\"normalized_landmarks\");Q(a,\"world_landmarks\");Q(a,\"segmentation_masks\");const b=new Zf;pe(b,Fh,this.h);const c=new O;bg(c,\"mediapipe.tasks.vision.pose_landmarker.PoseLandmarkerGraph\");M(c,\"IMAGE:image_in\");M(c,\"NORM_RECT:norm_rect\");N(c,\"NORM_LANDMARKS:normalized_landmarks\");N(c,\"WORLD_LANDMARKS:world_landmarks\");c.o(b);fg(a,c);ii(this,a);this.g.attachProtoVectorListener(\"normalized_landmarks\",(d,e)=>{this.landmarks=[];for(const f of d)d=ug(f),this.landmarks.push(Lh(d));\nU(this,e)});this.g.attachEmptyPacketListener(\"normalized_landmarks\",d=>{this.landmarks=[];U(this,d)});this.g.attachProtoVectorListener(\"world_landmarks\",(d,e)=>{this.worldLandmarks=[];for(const f of d)d=sg(f),this.worldLandmarks.push(Mh(d));U(this,e)});this.g.attachEmptyPacketListener(\"world_landmarks\",d=>{this.worldLandmarks=[];U(this,d)});this.outputSegmentationMasks&&(N(c,\"SEGMENTATION_MASK:segmentation_masks\"),ji(this,\"segmentation_masks\"),this.g.fa(\"segmentation_masks\",(d,e)=>{this.segmentationMasks=\nd.map(f=>pj(this,f,!0,!this.s));U(this,e)}),this.g.attachEmptyPacketListener(\"segmentation_masks\",d=>{this.segmentationMasks=[];U(this,d)}));a=a.g();this.setGraph(new Uint8Array(a),!0)}};nk.prototype.detectForVideo=nk.prototype.F;nk.prototype.detect=nk.prototype.D;nk.prototype.setOptions=nk.prototype.o;nk.createFromModelPath=function(a,b){return X(nk,a,{baseOptions:{modelAssetPath:b}})};nk.createFromModelBuffer=function(a,b){return X(nk,a,{baseOptions:{modelAssetBuffer:b}})};\nnk.createFromOptions=function(a,b){return X(nk,a,b)};nk.POSE_CONNECTIONS=Lj;export {nk as PoseLandmarker};\n"],"names":["aa","self","ba","a","b","c","d","e","length","ca","Error","da","String","fromCharCode","apply","ea","fa","ha","TextDecoder","ia","ja","TextEncoder","ka","encode","Uint8Array","charCodeAt","f","subarray","pa","ma","na","oa","qa","navigator","ra","brands","some","brand","indexOf","sa","userAgent","ta","ua","va","userAgentData","wa","xa","ya","Aa","Math","floor","h","l","charAt","u","test","Ca","g","k","Ba","split","concat","Da","Ea","btoa","Fa","Array","join","Ga","Ha","_","Ia","Ja","replace","atob","Ka","La","Ma","Na","Oa","Pa","Qa","constructor","this","Ra","__closure__error__context__984382","severity","Sa","Ta","setTimeout","la","Ua","Va","BigInt","Wa","prototype","slice","call","Xa","Symbol","Ya","Za","$a","ab","bb","cb","db","G","Object","defineProperties","value","configurable","writable","enumerable","eb","n","p","q","fb","gb","hb","ob","ib","jb","kb","lb","isArray","mb","nb","pb","qb","freeze","rb","m","next","done","iterator","sb","tb","ub","vb","wb","xb","yb","zb","Ab","Gb","Bb","Cb","Db","Eb","Fb","Number","MIN_SAFE_INTEGER","toString","MAX_SAFE_INTEGER","Hb","Ib","r","t","Jb","Kb","Lb","Mb","DataView","ArrayBuffer","setFloat32","getUint32","Nb","Ob","Pb","Qb","Rb","trunc","Sb","Tb","Ub","Vb","isFinite","Wb","Xb","Yb","substring","$b","isSafeInteger","ac","bc","asIntN","dc","asUintN","Zb","ec","fc","gc","hc","Y","ic","trim","jc","kc","Proxy","lc","mc","nc","get","random","tc","isConcatSpreadable","oc","set","sc","rc","qc","vc","Bc","Cc","Dc","WeakMap","uc","min","wc","xc","yc","isInteger","isNaN","Ac","has","delete","Fc","Ic","max","Jc","Kc","Map","super","Lc","size","clear","entries","keys","values","forEach","Mc","setPrototypeOf","Nc","Oc","M","Sc","U","T","Pc","Qc","Z","push","Rc","from","Tc","Uc","Vc","Yc","Zc","$c","ad","toJSON","Wc","bd","cd","dd","Xc","ed","fd","gd","hd","v","w","id","jd","kd","ld","md","nd","od","E","za","pd","qd","rd","sd","vd","wd","xd","yd","zd","defineProperty","Ad","Bd","Cd","x","Dd","Gc","Sf","Tf","Hc","Yd","Zd","Uf","Vf","Ed","y","Fd","Gd","Hd","Id","z","Jd","Kd","Ld","A","Md","isFrozen","Nd","Od","Pd","Qd","Rd","buffer","O","byteOffset","byteLength","Sd","Td","Ud","Vd","Wd","Xd","$d","NaN","Infinity","pow","ae","be","j","ce","de","fe","ge","he","ie","je","fatal","decode","ke","le","ne","oe","pe","B","qe","re","defaultValue","clone","se","ue","te","ve","xe","we","ye","ze","Ae","Be","De","Ee","Fe","end","Ge","pop","He","Ie","Ke","Le","Me","Ne","Oe","Pe","Qe","X","P","Re","Se","Te","Ue","Ec","Ve","We","Xe","Ye","Ze","$e","af","bf","cf","df","ef","ff","gf","hf","jf","kf","lf","mf","cc","nf","of","pf","qf","rf","sf","I","tf","setFloat64","C","uf","vf","wf","xf","yf","D","zf","Af","F","Bf","Cf","H","J","Df","Ef","Ff","parseInt","Gf","Hf","If","o","Jf","Lf","Mf","Nf","Of","Pf","Qf","Rf","Wf","Xf","Yf","Zf","K","L","$f","bg","N","cg","dg","eg","fg","Q","gg","ag","hg","ig","jg","kg","lg","mg","ng","og","pg","qg","rg","sg","tg","ug","vg","wg","xg","yg","zg","Ag","Bg","Cg","Dg","Eg","Fg","Gg","Hg","Ig","Jg","Kg","R","Lg","S","Mg","Ng","Og","Pg","Qg","Rg","Sg","Tg","Ug","Vg","Wg","Xg","Yg","Zg","$g","ah","bh","ch","dh","eh","fh","gh","hh","ih","jh","kh","lh","mh","nh","oh","ph","qh","rh","sh","th","uh","vh","wh","xh","yh","ud","zh","td","Ah","Bh","Ch","Dh","Eh","Fh","Gh","displayNamesLocale","maxResults","scoreThreshold","categoryAllowlist","categoryDenylist","Hh","categories","map","index","score","categoryName","displayName","headIndex","headName","Jh","keypoints","boundingBox","originX","originY","width","height","angle","label","Lh","visibility","Mh","Nh","Oh","sqrt","Ph","Qh","async","Rh","WebAssembly","instantiate","Sh","wasmLoaderPath","wasmBinaryPath","Th","Vh","OffscreenCanvas","includes","Uh","match","Wh","importScripts","document","createElement","src","crossOrigin","Promise","addEventListener","body","appendChild","Xh","videoWidth","videoHeight","naturalWidth","naturalHeight","displayWidth","displayHeight","console","error","i","stringToNewUTF8","_free","Yh","canvas","_bindTextureToStream","_bindTextureToCanvas","getContext","gpuOriginForWebTexturesIsBottomLeft","pixelStorei","UNPACK_FLIP_Y_WEBGL","texImage2D","TEXTURE_2D","RGBA","UNSIGNED_BYTE","Zh","Uint32Array","_malloc","HEAPU32","$h","simpleListeners","ai","forVisionTasks","forTextTasks","forGenAiExperimentalTasks","forGenAiTasks","forAudioTasks","isSimdSupported","di","ModuleFactory","Module","locateFile","mainScriptUrlOrBlob","ci","assetLoaderPath","endsWith","assetBinaryPath","gi","baseOptions","hi","message","ii","ji","ki","addBoolToStream","mi","setAutoRenderToScreen","modelAssetBuffer","modelAssetPath","delegate","fi","fetch","then","ok","arrayBuffer","status","FS_unlink","FS_createDataFile","read","li","resolve","ga","setGraph","attachErrorListener","finishProcessing","close","closeGraph","ni","execScript","shift","oi","bind","bindVertexArray","deleteVertexArray","deleteBuffer","pi","createShader","shaderSource","compileShader","getShaderParameter","COMPILE_STATUS","getShaderInfoLog","attachShader","qi","createVertexArray","createBuffer","bindBuffer","ARRAY_BUFFER","enableVertexAttribArray","vertexAttribPointer","FLOAT","bufferData","Float32Array","STATIC_DRAW","ri","si","s","useProgram","ti","createTexture","bindTexture","texParameteri","TEXTURE_WRAP_S","CLAMP_TO_EDGE","TEXTURE_WRAP_T","TEXTURE_MIN_FILTER","LINEAR","TEXTURE_MAG_FILTER","ui","createFramebuffer","bindFramebuffer","FRAMEBUFFER","framebufferTexture2D","COLOR_ATTACHMENT0","vi","wi","createProgram","VERTEX_SHADER","FRAGMENT_SHADER","linkProgram","getProgramParameter","LINK_STATUS","getProgramInfoLog","getAttribLocation","deleteProgram","deleteShader","deleteFramebuffer","zi","activeTexture","TEXTURE1","TEXTURE2","NEAREST","getUniformLocation","V","uniform1i","deleteTexture","Ai","Bi","find","WebGLTexture","Di","Ei","Fi","Gi","platform","readPixels","RED","Hi","Ii","Ji","Ki","getExtension","R32F","R16F","viewport","TEXTURE0","Li","clearColor","COLOR_BUFFER_BIT","drawArrays","TRIANGLE_FAN","getAsWebGLTexture","getAsFloat32Array","getAsUint8Array","hasWebGLTexture","hasFloat32Array","hasUint8Array","Mi","color","lineWidth","radius","Ni","fillColor","Oi","Function","Pi","Qi","Ri","Ui","Vi","Si","ImageData","Uint8ClampedArray","xi","fill","yi","Xi","Ti","Zi","CanvasRenderingContext2D","OffscreenCanvasRenderingContext2D","save","fillStyle","strokeStyle","Path2D","arc","PI","stroke","restore","beginPath","start","to","moveTo","lineTo","drawImage","Wi","Yi","$i","ImageBitmap","aj","bj","cj","dj","ej","fj","gj","hj","transferToImageBitmap","drawConfidenceMask","drawCategoryMask","drawBoundingBox","drawConnectors","drawLandmarks","lerp","clamp","W","ij","data","getAsImageBitmap","getAsImageData","hasImageBitmap","hasImageData","jj","kj","_registerModelResourcesGraphService","_addIntToInputStream","warn","setGraphFromString","HEAPU8","_changeBinaryGraph","_changeTextGraph","configureAudio","_configureAudio","setAutoResizeCanvas","_setAutoRenderToScreen","setGpuBufferVerticalFlip","_getGraphConfig","__graph_config__","errorListener","attachEmptyPacketListener","emptyPacketListeners","addAudioToStream","addAudioToStreamWithShape","HEAPF32","_addAudioToInputStream","addGpuBufferToStream","_addBoundTextureToStream","_addBoolToInputStream","addDoubleToStream","_addDoubleToInputStream","addFloatToStream","_addFloatToInputStream","addIntToStream","addUintToStream","_addUintToInputStream","addStringToStream","_addStringToInputStream","addStringRecordToStream","_addFlatHashMapToInputStream","addProtoToStream","_addProtoToInputStream","addEmptyPacketToStream","_addEmptyPacketToInputStream","addBoolVectorToStream","_allocateBoolVector","_addBoolVectorEntry","_addBoolVectorToInputStream","addDoubleVectorToStream","_allocateDoubleVector","_addDoubleVectorEntry","_addDoubleVectorToInputStream","addFloatVectorToStream","_allocateFloatVector","_addFloatVectorEntry","_addFloatVectorToInputStream","addIntVectorToStream","_allocateIntVector","_addIntVectorEntry","_addIntVectorToInputStream","addUintVectorToStream","_allocateUintVector","_addUintVectorEntry","_addUintVectorToInputStream","addStringVectorToStream","_allocateStringVector","_addStringVectorEntry","_addStringVectorToInputStream","addBoolToInputSidePacket","_addBoolToInputSidePacket","addDoubleToInputSidePacket","_addDoubleToInputSidePacket","addFloatToInputSidePacket","_addFloatToInputSidePacket","addIntToInputSidePacket","_addIntToInputSidePacket","addUintToInputSidePacket","_addUintToInputSidePacket","addStringToInputSidePacket","_addStringToInputSidePacket","addProtoToInputSidePacket","_addProtoToInputSidePacket","addBoolVectorToInputSidePacket","_addBoolVectorToInputSidePacket","addDoubleVectorToInputSidePacket","_addDoubleVectorToInputSidePacket","addFloatVectorToInputSidePacket","_addFloatVectorToInputSidePacket","addIntVectorToInputSidePacket","_addIntVectorToInputSidePacket","addUintVectorToInputSidePacket","_addUintVectorToInputSidePacket","addStringVectorToInputSidePacket","_addStringVectorToInputSidePacket","attachBoolListener","_attachBoolListener","attachBoolVectorListener","_attachBoolVectorListener","attachIntListener","_attachIntListener","attachIntVectorListener","_attachIntVectorListener","attachUintListener","_attachUintListener","attachUintVectorListener","_attachUintVectorListener","attachDoubleListener","_attachDoubleListener","attachDoubleVectorListener","_attachDoubleVectorListener","attachFloatListener","_attachFloatListener","attachFloatVectorListener","_attachFloatVectorListener","attachStringListener","_attachStringListener","attachStringVectorListener","_attachStringVectorListener","attachProtoListener","_attachProtoListener","attachProtoVectorListener","_attachProtoVectorListener","attachAudioListener","_attachAudioListener","_waitUntilIdle","_closeGraph","_addBoundTextureAsImageToStream","_attachImageListener","_attachImageVectorListener","lj","ei","mj","regionOfInterest","left","right","top","bottom","rotationDegrees","performance","now","nj","oj","pj","qj","runningMode","rj","detections","minDetectionConfidence","minSuppressionThreshold","detectForVideo","detect","setOptions","createFromModelPath","createFromModelBuffer","createFromOptions","sj","tj","uj","vj","wj","xj","yj","zj","Aj","Bj","Cj","faceLandmarks","faceBlendshapes","facialTransformationMatrixes","outputFacialTransformationMatrixes","outputFaceBlendshapes","numFaces","minFaceDetectionConfidence","minTrackingConfidence","minFacePresenceConfidence","rows","columns","FACE_LANDMARKS_LIPS","FACE_LANDMARKS_LEFT_EYE","FACE_LANDMARKS_LEFT_EYEBROW","FACE_LANDMARKS_LEFT_IRIS","FACE_LANDMARKS_RIGHT_EYE","FACE_LANDMARKS_RIGHT_EYEBROW","FACE_LANDMARKS_RIGHT_IRIS","FACE_LANDMARKS_FACE_OVAL","FACE_LANDMARKS_CONTOURS","FACE_LANDMARKS_TESSELATION","Dj","name","stylize","Ej","Fj","gestures","landmarks","worldLandmarks","handedness","Gj","handednesses","Hj","Ij","numHands","minHandDetectionConfidence","minHandPresenceConfidence","cannedGesturesClassifierOptions","customGesturesClassifierOptions","Jj","recognizeForVideo","recognize","HAND_CONNECTIONS","Kj","Lj","Mj","poseLandmarks","poseWorldLandmarks","poseSegmentationMasks","leftHandLandmarks","leftHandWorldLandmarks","rightHandLandmarks","rightHandWorldLandmarks","Nj","Oj","outputPoseSegmentationMasks","minFaceSuppressionThreshold","minPoseDetectionConfidence","minPoseSuppressionThreshold","minPosePresenceConfidence","minHandLandmarksConfidence","Kf","POSE_CONNECTIONS","Pj","classifications","timestampMs","Ih","classifyForVideo","classify","Qj","embeddings","l2Normalize","quantize","floatEmbedding","quantizedEmbedding","Kh","cosineSimilarity","embedForVideo","embed","Rj","confidenceMasks","categoryMask","qualityScores","Tj","Uj","Vj","outputCategoryMask","outputConfidenceMasks","filter","Sj","getLabels","segmentForVideo","segment","Wj","Xj","Yj","Zj","ak","bk","ck","dk","ek","fk","gk","hk","ik","keypoint","scribble","jk","kk","segmentationMasks","lk","mk","nk","outputSegmentationMasks","numPoses"],"mappings":"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IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IACpf,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,GAAG,CAAC,EAAE,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,GAAG,CAAC,EAAE,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC,IAClf,GAAG,CAAC,EAAE,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAClf,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IACpf,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,GAAG,CAAC,EAAE,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IACrf,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,GAAG,CAAC,EAAE,GAAG,CAAC,EAAE,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,EAAE,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,GAAG,CAAC,EAAE,IAAI,CAAC,GAAG,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IACjf,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,EAAE,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,GAAG,CAAC,GAAG,GAAG,CAAC,EAAE,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,KAChf,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,EAAE,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,GAAG,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IACnf,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAChf,CAAC,IAAI,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,GAAG,CAAC,EAAE,GAAG,CAAC,EAAE,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,EAAE,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IACnf,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IACpf,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,GAAG,CAAC,EAAE,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,EAAE,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,GAAG,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IACpf,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,GAAG,CAAC,EAAE,GAAG,CAAC,EAAE,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KACpf,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,GAAG,CAAC,EAAE,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IACrf,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KACpf,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,GAAG,CAAC,EAAE,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KACnf,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IACrf,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,GAAG,CAAC,EAAE,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,EAAE,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,GAAG,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,GAAG,CAAC,EAAE,KAAK,CAAC,IAAI,KACpf,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IACpf,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,EAAE,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,GAAG,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,GAAG,CAAC,EAAE,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KACnf,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IACrf,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,GAAG,CAAC,EAAE,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,EAAE,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,GAAG,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAClf,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KACpf,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IACpf,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,IACpf,CAAC,GAAG,IAAI,CAAC,IAAI,GAAG,CAAC,EAAE,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,EAAE,IAAI,CAAC,GAAG,GAAG,CAAC,EAAE,GAAG,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,GACnf,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,GAAG,CAAC,EAAE,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IACnf,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,KAChf,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,EAAE,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,GAAG,CAAC,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,GAAG,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IACrf,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,GACpf,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,GAAG,CAAC,EAAE,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,GAAG,CAAC,EAAE,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IACpf,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,GAAG,CAAC,EAAE,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KACjf,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,GAAG,CAAC,EAAE,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IACrf,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,GAAG,CAAC,EAAE,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IACnf,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,GAAG,GAAG,CAAC,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IACnf,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,GAAG,CAAC,EAAE,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,EAAE,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,GAAG,CAAC,IAAI,KAAK,CAAC,IACpf,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,GAAG,CAAC,EAAE,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,KAAK,CAAC,IAClf,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,GAAG,CAAC,EAAE,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAClf,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,GAAG,CAAC,EAAE,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAChf,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IACnf,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KACpf,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,EAAE,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,GAAG,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,EAAE,KAAK,CAAC,IAAI,GAAG,CAAC,EAAE,GAAG,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KACnf,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,GAAG,CAAC,EAAE,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IACjf,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAClf,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,GAAG,CAAC,EAAE,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KACjf,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,EAAE,KAAK,CAAC,IAAI,GAAG,CAAC,EAAE,GAAG,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KACjf,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,GAAG,CAAC,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KACnf,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAA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"} \ No newline at end of file +{"version":3,"file":"vision_bundle_cjs.js","sources":["../../../../../../../mediapipe/tasks/web/vision/vision_js.js"],"sourcesContent":["'use strict';/*\n\n Copyright The Closure Library Authors.\n SPDX-License-Identifier: Apache-2.0\n*/\nvar aa=this||(typeof self!==\"undefined\"?self:{});function ba(a,b){a:{var c=[\"CLOSURE_FLAGS\"];for(var d=aa,e=0;e>6|192;else{if(b>=55296&&b<=57343){if(b<=56319&&e=56320&&f<=57343){b=(b-55296)*1024+f-56320+65536;d[c++]=b>>18|240;d[c++]=b>>12&63|128;d[c++]=b>>6&63|128;d[c++]=b&63|128;continue}else e--}b=65533}d[c++]=b>>12|224;d[c++]=b>>6&63|128}d[c++]=b&63|128}}a=c===d.length?\nd:d.subarray(0,c)}return a};function ma(a){aa.setTimeout(()=>{throw a;},0)};var na=ba(610401301,!1),oa=ba(748402147,!0);function pa(){var a=aa.navigator;return a&&(a=a.userAgent)?a:\"\"}var qa;const ra=aa.navigator;qa=ra?ra.userAgentData||null:null;function sa(a){sa[\" \"](a);return a}sa[\" \"]=function(){};const ta={};let ua=null;function va(a){const b=a.length;let c=b*3/4;c%3?c=Math.floor(c):\"=.\".indexOf(a[b-1])!=-1&&(c=\"=.\".indexOf(a[b-2])!=-1?c-2:c-1);const d=new Uint8Array(c);let e=0;xa(a,function(f){d[e++]=f});return e!==c?d.subarray(0,e):d}\nfunction xa(a,b){function c(e){for(;d>4);g!=64&&(b(f<<4&240|g>>2),h!=64&&b(g<<6&192|h))}}\nfunction ya(){if(!ua){ua={};var a=\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\".split(\"\"),b=[\"+/=\",\"+/\",\"-_=\",\"-_.\",\"-_\"];for(let c=0;c<5;c++){const d=a.concat(b[c].split(\"\"));ta[c]=d;for(let e=0;e0?0:pa().indexOf(\"Trident\")!=-1||pa().indexOf(\"MSIE\")!=-1)&&typeof btoa===\"function\";const Ba=/[-_.]/g,Ca={\"-\":\"+\",_:\"/\",\".\":\"=\"};function Da(a){return Ca[a]||\"\"}function Ea(a){if(!Aa)return va(a);a=Ba.test(a)?a.replace(Ba,Da):a;a=atob(a);const b=new Uint8Array(a.length);for(let c=0;c=b||(c[a]=d+1,a=Error(),Ma(a,\"incident\"),ma(a))}};function Qa(){return typeof BigInt===\"function\"};var Ra=typeof Symbol===\"function\"&&typeof Symbol()===\"symbol\";function Sa(a,b,c=!1){return typeof Symbol===\"function\"&&typeof Symbol()===\"symbol\"?c&&Symbol.for&&a?Symbol.for(a):a!=null?Symbol(a):Symbol():b}var Ta=Sa(\"jas\",void 0,!0),Ua=Sa(void 0,\"0di\"),Va=Sa(void 0,\"1oa\"),Wa=Sa(void 0,Symbol()),Xa=Sa(void 0,\"0ub\"),Ya=Sa(void 0,\"0ubs\"),Za=Sa(void 0,\"0ubsb\"),$a=Sa(void 0,\"0actk\"),ab=Sa(\"m_m\",\"Pa\",!0),bb=Sa();const cb={Ga:{value:0,configurable:!0,writable:!0,enumerable:!1}},db=Object.defineProperties,n=Ra?Ta:\"Ga\";var eb;const fb=[];p(fb,7);eb=Object.freeze(fb);function gb(a,b){Ra||n in a||db(a,cb);a[n]|=b}function p(a,b){Ra||n in a||db(a,cb);a[n]=b}function hb(a){gb(a,34);return a}function ib(a){gb(a,8192);return a};var jb={};function kb(a,b){return b===void 0?a.h!==lb&&!!(2&(a.v[n]|0)):!!(2&b)&&a.h!==lb}const lb={};function mb(a,b){if(a!=null)if(typeof a===\"string\")a=a?new Ja(a,Ga):Ha();else if(a.constructor!==Ja)if(Fa(a))a=a.length?new Ja(new Uint8Array(a),Ga):Ha();else{if(!b)throw Error();a=void 0}return a}class nb{constructor(a,b,c){this.g=a;this.h=b;this.l=c}next(){const a=this.g.next();a.done||(a.value=this.h.call(this.l,a.value));return a}[Symbol.iterator](){return this}}var ob=Object.freeze({});\nfunction pb(a,b,c){const d=b&128?0:-1,e=a.length;var f;if(f=!!e)f=a[e-1],f=f!=null&&typeof f===\"object\"&&f.constructor===Object;const g=e+(f?-1:0);for(b=b&128?1:0;btypeof a===\"number\"),ub=sb(a=>typeof a===\"string\"),vb=sb(a=>typeof a===\"boolean\");var wb=typeof aa.BigInt===\"function\"&&typeof aa.BigInt(0)===\"bigint\";function xb(a){var b=a;if(ub(b)){if(!/^\\s*(?:-?[1-9]\\d*|0)?\\s*$/.test(b))throw Error(String(b));}else if(tb(b)&&!Number.isSafeInteger(b))throw Error(String(b));return wb?BigInt(a):a=vb(a)?a?\"1\":\"0\":ub(a)?a.trim()||\"0\":String(a)}var Db=sb(a=>wb?a>=yb&&a<=zb:a[0]===\"-\"?Ab(a,Bb):Ab(a,Cb));const Bb=Number.MIN_SAFE_INTEGER.toString(),yb=wb?BigInt(Number.MIN_SAFE_INTEGER):void 0,Cb=Number.MAX_SAFE_INTEGER.toString(),zb=wb?BigInt(Number.MAX_SAFE_INTEGER):void 0;\nfunction Ab(a,b){if(a.length>b.length)return!1;if(a.lengthe)return!1;if(d>>0;q=b;r=(a-b)/4294967296>>>0}function Hb(a){if(a<0){Gb(-a);const [b,c]=Ib(q,r);q=b>>>0;r=c>>>0}else Gb(a)}function Jb(a){const b=Fb||=new DataView(new ArrayBuffer(8));b.setFloat32(0,+a,!0);r=0;q=b.getUint32(0,!0)}function Kb(a,b){const c=b*4294967296+(a>>>0);return Number.isSafeInteger(c)?c:Lb(a,b)}function Mb(a,b){return xb(Qa()?BigInt.asUintN(64,(BigInt(b>>>0)<>>0)):Lb(a,b))}\nfunction Nb(a,b){return Qa()?xb(BigInt.asIntN(64,(BigInt.asUintN(32,BigInt(b))<>>=0;a>>>=0;if(b<=2097151)var c=\"\"+(4294967296*b+a);else Qa()?c=\"\"+(BigInt(b)<>>24|b<<8)&16777215,b=b>>16&65535,a=(a&16777215)+c*6777216+b*6710656,c+=b*8147497,b*=2,a>=1E7&&(c+=a/1E7>>>0,a%=1E7),c>=1E7&&(b+=c/1E7>>>0,c%=1E7),c=b+Pb(c)+Pb(a));return c}function Pb(a){a=String(a);return\"0000000\".slice(a.length)+a}\nfunction Ob(a,b){if(b&2147483648)if(Qa())a=\"\"+(BigInt(b|0)<>>0));else{const [c,d]=Ib(a,b);a=\"-\"+Lb(c,d)}else a=Lb(a,b);return a}\nfunction Qb(a){if(a.length<16)Hb(Number(a));else if(Qa())a=BigInt(a),q=Number(a&BigInt(4294967295))>>>0,r=Number(a>>BigInt(32)&BigInt(4294967295));else{const b=+(a[0]===\"-\");r=q=0;const c=a.length;for(let d=b,e=(c-b)%6+b;e<=c;d=e,e+=6){const f=Number(a.slice(d,e));r*=1E6;q=q*1E6+f;q>=4294967296&&(r+=Math.trunc(q/4294967296),r>>>=0,q>>>=0)}if(b){const [d,e]=Ib(q,r);q=d;r=e}}}function Ib(a,b){b=~b;a?a=~a+1:b+=1;return[a,b]};function Rb(a){return Array.prototype.slice.call(a)};const Sb=typeof BigInt===\"function\"?BigInt.asIntN:void 0,Tb=typeof BigInt===\"function\"?BigInt.asUintN:void 0,Ub=Number.isSafeInteger,Vb=Number.isFinite,Wb=Math.trunc,Xb=xb(0);function Yb(a){if(a!=null&&typeof a!==\"number\")throw Error(`Value of float/double field must be a number, found ${typeof a}: ${a}`);return a}function Zb(a){if(a==null||typeof a===\"number\")return a;if(a===\"NaN\"||a===\"Infinity\"||a===\"-Infinity\")return Number(a)}\nfunction $b(a){if(a!=null&&typeof a!==\"boolean\"){var b=typeof a;throw Error(`Expected boolean but got ${b!=\"object\"?b:a?Array.isArray(a)?\"array\":b:\"null\"}: ${a}`);}return a}function ac(a){if(a==null||typeof a===\"boolean\")return a;if(typeof a===\"number\")return!!a}const bc=/^-?([1-9][0-9]*|0)(\\.[0-9]+)?$/;function cc(a){switch(typeof a){case \"bigint\":return!0;case \"number\":return Vb(a);case \"string\":return bc.test(a);default:return!1}}\nfunction dc(a){if(a==null)return a;if(typeof a===\"string\"&&a)a=+a;else if(typeof a!==\"number\")return;return Vb(a)?a|0:void 0}function ec(a){if(a==null)return a;if(typeof a===\"string\"&&a)a=+a;else if(typeof a!==\"number\")return;return Vb(a)?a>>>0:void 0}function fc(a){const b=a.length;if(a[0]===\"-\"?b<20||b===20&&a<=\"-9223372036854775808\":b<19||b===19&&a<=\"9223372036854775807\")return a;Qb(a);return Ob(q,r)}\nfunction hc(a){a=Wb(a);if(!Ub(a)){Hb(a);var b=q,c=r;if(a=c&2147483648)b=~b+1>>>0,c=~c>>>0,b==0&&(c=c+1>>>0);b=Kb(b,c);a=typeof b===\"number\"?a?-b:b:a?\"-\"+b:b}return a}function ic(a){var b=Wb(Number(a));if(Ub(b))return String(b);b=a.indexOf(\".\");b!==-1&&(a=a.substring(0,b));return fc(a)}function jc(a){var b=Wb(Number(a));if(Ub(b))return xb(b);b=a.indexOf(\".\");b!==-1&&(a=a.substring(0,b));return Qa()?xb(Sb(64,BigInt(a))):xb(fc(a))}\nfunction kc(a){Ub(a)?a=xb(hc(a)):(a=Wb(a),Ub(a)?a=String(a):(Hb(a),a=Ob(q,r)),a=xb(a));return a}function lc(a){if(a==null)return a;if(typeof a===\"bigint\")return Db(a)?a=Number(a):(a=Sb(64,a),a=Db(a)?Number(a):String(a)),a;if(cc(a))return typeof a===\"number\"?hc(a):ic(a)}function mc(a){const b=typeof a;if(a==null)return a;if(b===\"bigint\")return xb(Sb(64,a));if(cc(a))return b===\"string\"?jc(a):kc(a)}\nfunction nc(a){if(a==null)return a;const b=typeof a;if(b===\"bigint\")return String(Sb(64,a));if(cc(a)){if(b===\"string\")return ic(a);if(b===\"number\")return hc(a)}}\nfunction oc(a){if(a==null)return a;var b=typeof a;if(b===\"bigint\")return String(Tb(64,a));if(cc(a)){if(b===\"string\")return b=Wb(Number(a)),Ub(b)&&b>=0?a=String(b):(b=a.indexOf(\".\"),b!==-1&&(a=a.substring(0,b)),a[0]===\"-\"?b=!1:(b=a.length,b=b<20?!0:b===20&&a<=\"18446744073709551615\"),b||(Qb(a),a=Lb(q,r))),a;if(b===\"number\")return a=Wb(a),a>=0&&Ub(a)||(Hb(a),a=Kb(q,r)),a}}function pc(a){if(typeof a!==\"string\")throw Error();return a}\nfunction qc(a){if(a!=null&&typeof a!==\"string\")throw Error();return a}function t(a){return a==null||typeof a===\"string\"?a:void 0}function rc(a,b,c,d){if(a!=null&&a[ab]===jb)return a;if(!Array.isArray(a))return c?d&2?((a=b[Ua])||(a=new b,hb(a.v),a=b[Ua]=a),b=a):b=new b:b=void 0,b;c=a[n]|0;d=c|d&32|d&2;d!==c&&p(a,d);return new b(a)}\nfunction sc(a,b,c){if(b)a:{b=a;if(!cc(b))throw Oa(\"int64\");switch(typeof b){case \"string\":b=jc(b);break a;case \"bigint\":b=xb(Sb(64,b));break a;default:b=kc(b)}}else b=mc(a);a=b;return a==null?c?Xb:void 0:a};function tc(a){return a};const uc={};let vc=function(){try{return sa(new class extends Map{constructor(){super()}}),!1}catch{return!0}}();\nclass wc{constructor(){this.g=new Map}get(a){return this.g.get(a)}set(a,b){this.g.set(a,b);this.size=this.g.size;return this}delete(a){a=this.g.delete(a);this.size=this.g.size;return a}clear(){this.g.clear();this.size=this.g.size}has(a){return this.g.has(a)}entries(){return this.g.entries()}keys(){return this.g.keys()}values(){return this.g.values()}forEach(a,b){return this.g.forEach(a,b)}[Symbol.iterator](){return this.entries()}}\nconst xc=(()=>vc?(Object.setPrototypeOf(wc.prototype,Map.prototype),Object.defineProperties(wc.prototype,{size:{value:0,configurable:!0,enumerable:!0,writable:!0}}),wc):class extends Map{constructor(){super()}})();function yc(a){return a}function zc(a){if(a.J&2)throw Error(\"Cannot mutate an immutable Map\");}\nvar Cc=class extends xc{constructor(a,b,c=yc,d=yc){super();this.J=a[n]|0;this.K=b;this.S=c;this.fa=this.K?Ac:d;for(let e=0;e{a.call(b,e.get(d),d,e)}):super.forEach(a,b)}set(a,b){zc(this);a=this.S(a,!0,!1);return a==null?this:b==null?(super.delete(a),this):super.set(a,this.fa(b,!0,!0,this.K,!1,this.J))}Ma(a){const b=this.S(a[0],!1,!0);a=a[1];a=this.K?a===void 0?null:a:this.fa(a,!1,!0,void 0,!1,this.J);super.set(b,a)}has(a){return super.has(this.S(a,!1,!1))}get(a){a=this.S(a,!1,!1);const b=super.get(a);\nif(b!==void 0){var c=this.K;return c?(c=this.fa(b,!1,!0,c,this.ra,this.J),c!==b&&super.set(a,c),c):b}}[Symbol.iterator](){return this.entries()}};Cc.prototype.toJSON=void 0;function Ac(a,b,c,d,e,f){a=rc(a,d,c,f);e&&(a=Dc(a));return a}function Bc(a){return[a,this.get(a)]}let Ec;function Fc(){return Ec||=new Cc(hb([]),void 0,void 0,void 0,uc)};function Gc(a){const b=ca(Wa);return b?a[b]:void 0}function Ic(a,b){for(const c in a)!isNaN(c)&&b(a,+c,a[c])}function Jc(a){const b=new Kc;Ic(a,(c,d,e)=>{b[d]=Rb(e)});b.da=a.da;return b}var Kc=class{};const Lc={Ka:!0};function Mc(a,b){b<100||Pa(Ya,1)};function Nc(a,b,c,d){const e=d!==void 0;d=!!d;var f=ca(Wa),g;!e&&Ra&&f&&(g=a[f])&&Ic(g,Mc);f=[];var h=a.length;let k;g=4294967295;let w=!1;const m=!!(b&64),D=m?b&128?0:-1:void 0;b&1||(k=h&&a[h-1],k!=null&&typeof k===\"object\"&&k.constructor===Object?(h--,g=h):k=void 0,!m||b&128||e||(w=!0,g=(Oc??tc)(g-D,D,a,k,void 0)+D));b=void 0;for(var G=0;G=g){const wa=G-D;(b??={})[wa]=N}else f[G]=N}if(k)for(let N in k){h=k[N];if(h==null||(h=c(h,d))==null)continue;\nG=+N;let wa;m&&!Number.isNaN(G)&&(wa=G+D)>2];f=c[(f&3)<<4|g>>4];g=c[(g&15)<<2|h>>6];h=c[h&63];d[m++]=k+f+g+h}k=0;h=e;switch(b.length-w){case 2:k=b[w+1],h=c[(k&15)<<2]||e;case 1:b=b[w],d[m]=c[b>>2]+c[(b&3)<<4|k>>4]+h+e}b=d.join(\"\")}a=a.g=b}return a}if(a instanceof Cc)return a=a.size!==0?a.V(Pc):void 0,a;return}return a}let Oc;function Rc(a){a=a.v;return Nc(a,a[n]|0,Qc)};let Sc,Tc;function Uc(a){switch(typeof a){case \"boolean\":return Sc||=[0,void 0,!0];case \"number\":return a>0?void 0:a===0?Tc||=[0,void 0]:[-a,void 0];case \"string\":return[0,a];case \"object\":return a}}function Vc(a,b){return Wc(a,b[0],b[1])}\nfunction Wc(a,b,c,d=0){if(a==null){var e=32;c?(a=[c],e|=128):a=[];b&&(e=e&-16760833|(b&1023)<<14)}else{if(!Array.isArray(a))throw Error(\"narr\");e=a[n]|0;if(oa&&1&e)throw Error(\"rfarr\");2048&e&&!(2&e)&&Xc();if(e&256)throw Error(\"farr\");if(e&64)return(e|d)!==e&&p(a,e|d),a;if(c&&(e|=128,c!==a[0]))throw Error(\"mid\");a:{c=a;e|=64;var f=c.length;if(f){var g=f-1;const k=c[g];if(k!=null&&typeof k===\"object\"&&k.constructor===Object){b=e&128?0:-1;g-=b;if(g>=1024)throw Error(\"pvtlmt\");for(var h in k)f=+h,f<\ng&&(c[f+b]=k[h],delete k[h]);e=e&-16760833|(g&1023)<<14;break a}}if(b){h=Math.max(b,f-(e&128?0:-1));if(h>1024)throw Error(\"spvt\");e=e&-16760833|(h&1023)<<14}}}p(a,e|64|d);return a}function Xc(){if(oa)throw Error(\"carr\");Pa($a,5)};function Yc(a,b){if(typeof a!==\"object\")return a;if(Array.isArray(a)){var c=a[n]|0;return a.length===0&&c&1?void 0:Zc(a,c,b)}if(a!=null&&a[ab]===jb)return $c(a);if(a instanceof Cc){b=a.J;if(b&2)return a;if(!a.size)return;c=hb(a.V());if(a.K)for(a=0;a=f)if(g=a[f],g!=null&&typeof g===\"object\"&&g.constructor===Object)c=g[b],h=!0;else if(e===f)c=g;else return;else c=a[e];if(d&&c!=null){d=d(c);if(d==null)return d;if(!Object.is(d,c))return h?g[b]=d:a[e]=d,d}return c}}function v(a,b,c,d){ed(a);a=a.v;x(a,a[n]|0,b,c,d)}\nfunction x(a,b,c,d,e){const f=c+(e?0:-1);var g=a.length-1;if(g>=1+(e?0:-1)&&f>=g){const h=a[g];if(h!=null&&typeof h===\"object\"&&h.constructor===Object)return h[c]=d,b}if(f<=g)return a[f]=d,b;d!==void 0&&(g=(b??=a[n]|0)>>14&1023||536870912,c>=g?d!=null&&(a[g+(e?0:-1)]={[c]:d}):a[f]=d);return b}function jd(){return void 0===ob?2:4}\nfunction kd(a,b,c,d,e){let f=a.v,g=f[n]|0;d=kb(a,g)?1:d;e=!!e||d===3;d===2&&dd(a)&&(f=a.v,g=f[n]|0);a=ld(f,b);let h=a===eb?7:a[n]|0,k=md(h,g);var w=4&k?!1:!0;if(w){4&k&&(a=Rb(a),h=0,k=nd(k,g),g=x(f,g,b,a));let m=0,D=0;for(;m{const h=rc(g,c,!1,b);f=h!==g&&h!=null;return h});if(d!=null)return f&&!kb(d)&&fd(a,b),d}\nfunction y(a,b,c,d){let e=a.v,f=e[n]|0;b=Cd(e,f,b,c,d);if(b==null)return b;f=e[n]|0;if(!kb(a,f)){const g=Dc(b);g!==b&&(dd(a)&&(e=a.v,f=e[n]|0),b=g,f=x(e,f,c,b,d),fd(e,f))}return b}\nfunction Dd(a,b,c,d,e,f,g,h){var k=kb(a,c);f=k?1:f;g=!!g||f===3;k=h&&!k;(f===2||k)&&dd(a)&&(b=a.v,c=b[n]|0);a=ld(b,e);var w=a===eb?7:a[n]|0,m=md(w,c);if(h=!(4&m)){var D=a,G=c;const N=!!(2&m);N&&(G|=2);let wa=!N,Rf=!0,Hc=0,Td=0;for(;Hc32)for(e|=(c&127)>>4,f=3;f<32&&c&128;f+=7)c=g[h++],e|=(c&127)<>>0,e>>>0);throw Error();}function Rd(a){let b=0,c=a.g;const d=c+10,e=a.h;for(;c>>0}\nfunction Wd(a){var b=a.h;const c=a.g;var d=b[c];var e=b[c+1];const f=b[c+2];b=b[c+3];Qd(a,a.g+4);e=(d<<0|e<<8|f<<16|b<<24)>>>0;a=(e>>31)*2+1;d=e>>>23&255;e&=8388607;return d==255?e?NaN:a*Infinity:d==0?a*1.401298464324817E-45*e:a*Math.pow(2,d-150)*(e+8388608)}function Xd(a){return Sd(a)}function Qd(a,b){a.g=b;if(b>a.l)throw Error();}function Yd(a,b){if(b<0)throw Error();const c=a.g;b=c+b;if(b>a.l)throw Error();a.g=b;return c}\nfunction Zd(a,b){if(b==0)return Ha();var c=Yd(a,b);a.Y&&a.j?c=a.h.subarray(c,c+b):(a=a.h,b=c+b,c=c===b?new Uint8Array(0):Eb?a.slice(c,b):new Uint8Array(a.subarray(c,b)));return c.length==0?Ha():new Ja(c,Ga)}\nvar $d=class{constructor(a,b,c,d){this.h=null;this.j=!1;this.g=this.l=this.m=0;this.init(a,b,c,d)}init(a,b,c,{Y:d=!1,ea:e=!1}={}){this.Y=d;this.ea=e;a&&(a=Od(a,this.ea),this.h=a.buffer,this.j=a.g,this.m=b||0,this.l=c!==void 0?this.m+c:this.h.length,this.g=this.m)}clear(){this.h=null;this.j=!1;this.g=this.l=this.m=0;this.Y=!1}},ae=[];function be(a,b,c,d){if(ce.length){const e=ce.pop();e.o(d);e.g.init(a,b,c,d);return e}return new de(a,b,c,d)}function ee(a){a.g.clear();a.l=-1;a.h=-1;ce.length<100&&ce.push(a)}function fe(a){var b=a.g;if(b.g==b.l)return!1;a.m=a.g.g;var c=Vd(a.g);b=c>>>3;c&=7;if(!(c>=0&&c<=5))throw Error();if(b<1)throw Error();a.l=b;a.h=c;return!0}\nfunction ge(a){switch(a.h){case 0:a.h!=0?ge(a):Rd(a.g);break;case 1:a=a.g;Qd(a,a.g+8);break;case 2:if(a.h!=2)ge(a);else{var b=Vd(a.g);a=a.g;Qd(a,a.g+b)}break;case 5:a=a.g;Qd(a,a.g+4);break;case 3:b=a.l;do{if(!fe(a))throw Error();if(a.h==4){if(a.l!=b)throw Error();break}ge(a)}while(1);break;default:throw Error();}}function he(a,b,c){const d=a.g.l;var e=Vd(a.g);e=a.g.g+e;let f=e-d;f<=0&&(a.g.l=e,c(b,a,void 0,void 0,void 0),f=e-a.g.g);if(f)throw Error();a.g.g=e;a.g.l=d;return b}\nfunction ie(a){var b=Vd(a.g);a=a.g;var c=Yd(a,b);a=a.h;if(ia){var d=a,e;(e=ha)||(e=ha=new TextDecoder(\"utf-8\",{fatal:!0}));b=c+b;d=c===0&&b===d.length?d:d.subarray(c,b);try{var f=e.decode(d)}catch(h){if(fa===void 0){try{e.decode(new Uint8Array([128]))}catch(k){}try{e.decode(new Uint8Array([97])),fa=!0}catch(k){fa=!1}}!fa&&(ha=void 0);throw h;}}else{f=c;b=f+b;c=[];let h=null;let k;for(;f=b?da():(k=a[f++],g<194||(k&192)!==128?(f--,da()):c.push((g&31)<<6|k&63)):\ng<240?f>=b-1?da():(k=a[f++],(k&192)!==128||g===224&&k<160||g===237&&k>=160||((e=a[f++])&192)!==128?(f--,da()):c.push((g&15)<<12|(k&63)<<6|e&63)):g<=244?f>=b-2?da():(k=a[f++],(k&192)!==128||(g<<28)+(k-144)>>30!==0||((e=a[f++])&192)!==128||((d=a[f++])&192)!==128?(f--,da()):(g=(g&7)<<18|(k&63)<<12|(e&63)<<6|d&63,g-=65536,c.push((g>>10&1023)+55296,(g&1023)+56320))):da();c.length>=8192&&(h=ea(h,c),c.length=0)}f=ea(h,c)}return f}function je(a){const b=Vd(a.g);return Zd(a.g,b)}\nfunction ke(a,b,c){var d=Vd(a.g);for(d=a.g.g+d;a.g.g>>0;this.g=b>>>0}};let me;function oe(a){if(!a)return pe||=new qe(0,0);if(!/^-?\\d+$/.test(a))return null;Qb(a);return new qe(q,r)}var qe=class{constructor(a,b){this.h=a>>>0;this.g=b>>>0}};let pe;function re(a,b,c){for(;c>0||b>127;)a.g.push(b&127|128),b=(b>>>7|c<<25)>>>0,c>>>=7;a.g.push(b)}function se(a,b){for(;b>127;)a.g.push(b&127|128),b>>>=7;a.g.push(b)}function te(a,b){if(b>=0)se(a,b);else{for(let c=0;c<9;c++)a.g.push(b&127|128),b>>=7;a.g.push(1)}}function ue(a){var b=q;a.g.push(b>>>0&255);a.g.push(b>>>8&255);a.g.push(b>>>16&255);a.g.push(b>>>24&255)}var ve=class{constructor(){this.g=[]}length(){return this.g.length}end(){const a=this.g;this.g=[];return a}};function we(a,b){b.length!==0&&(a.l.push(b),a.h+=b.length)}function xe(a,b,c){se(a.g,b*8+c)}function ye(a,b){xe(a,b,2);b=a.g.end();we(a,b);b.push(a.h);return b}function ze(a,b){var c=b.pop();for(c=a.h+a.g.length()-c;c>127;)b.push(c&127|128),c>>>=7,a.h++;b.push(c);a.h++}function Ae(a,b,c){xe(a,b,2);se(a.g,c.length);we(a,a.g.end());we(a,c)}function Be(a,b,c,d){c!=null&&(b=ye(a,b),d(c,a),ze(a,b))}var Ce=class{constructor(){this.l=[];this.h=0;this.g=new ve}};function De(){const a=class{constructor(){throw Error();}};Object.setPrototypeOf(a,a.prototype);return a}var Ee=De(),Fe=De(),Ge=De(),He=De(),Ie=De(),Je=De(),Ke=De(),Le=De(),Me=De(),Ne=De();function Oe(a,b,c){var d=a.v;const e=ca(Wa);e&&e in d&&(d=d[e])&&delete d[b.g];b.h?b.j(a,b.h,b.g,c,b.l):b.j(a,b.g,c,b.l)}\nvar C=class{constructor(a,b){this.v=Wc(a,b,void 0,2048)}toJSON(){var a=Rc(this);return a}j(){var a=Pe,b=this.v,c=a.g,d=ca(Wa);Ra&&d&&b[d]?.[c]!=null&&Pa(Xa,3);b=a.g;if(ca(bb)&&ca(Wa)&&void 0===bb&&(c=this.v,d=c[Wa])&&(d=d.da))try{d(c,b,Lc)}catch(e){ma(e)}return a.h?a.m(this,a.h,a.g,a.l):a.m(this,a.g,a.defaultValue,a.l)}clone(){const a=this.v,b=a[n]|0;return cd(this,a,b)?bd(this,a,!0):new this.constructor(ad(a,b,!1))}};C.prototype[ab]=jb;C.prototype.toString=function(){return this.v.toString()};var Qe=class{constructor(a,b,c){this.g=a;this.h=b;a=ca(Ee);this.l=!!a&&c===a||!1}};function Re(a,b){return new Qe(a,b,Ee)}function Se(a,b,c,d,e){Be(a,c,Te(b,d),e)}const Ue=Re(function(a,b,c,d,e){if(a.h!==2)return!1;he(a,Bd(b,d,c),e);return!0},Se),Ve=Re(function(a,b,c,d,e){if(a.h!==2)return!1;he(a,Bd(b,d,c),e);return!0},Se);var We=Symbol(),Xe=Symbol(),Ye=Symbol(),Ze=Symbol(),$e=Symbol();let af,bf;\nfunction cf(a,b,c,d){var e=d[a];if(e)return e;e={};e.qa=d;e.T=Uc(d[0]);var f=d[1];let g=1;f&&f.constructor===Object&&(e.ba=f,f=d[++g],typeof f===\"function\"&&(e.ma=!0,af??=f,bf??=d[g+1],f=d[g+=2]));const h={};for(;f&&Array.isArray(f)&&f.length&&typeof f[0]===\"number\"&&f[0]>0;){for(var k=0;ke(f,g,h,d):e}function ff(a,b,c,d,e){const f=c.g;let g,h;a[b]=(k,w,m)=>f(k,w,m,h||=cf(Xe,ef,ff,d).T,g||=gf(d),e)}\nfunction gf(a){let b=a[Ye];if(b!=null)return b;const c=cf(Xe,ef,ff,a);b=c.ma?(d,e)=>af(d,e,c):(d,e)=>{for(;fe(e)&&e.h!=4;){var f=e.l,g=c[f];if(g==null){var h=c.ba;h&&(h=h[f])&&(h=hf(h),h!=null&&(g=c[f]=h))}if(g==null||!g(e,d,f)){h=e;g=h.m;ge(h);if(h.ha)var k=void 0;else k=h.g.g-g,h.g.g=g,k=Zd(h.g,k);g=void 0;h=d;k&&((g=h[Wa]??(h[Wa]=new Kc))[f]??(g[f]=[])).push(k)}}if(d=Gc(d))d.da=c.qa[$e];return!0};a[Ye]=b;a[$e]=jf.bind(a);return b}\nfunction jf(a,b,c,d){var e=this[Xe];const f=this[Ye],g=Vc(void 0,e.T),h=Gc(a);if(h){var k=!1,w=e.ba;if(w){e=(m,D,G)=>{if(G.length!==0)if(w[D])for(const N of G){m=be(N);try{k=!0,f(g,m)}finally{ee(m)}}else d?.(a,D,G)};if(b==null)Ic(h,e);else if(h!=null){const m=h[b];m&&e(h,b,m)}if(k){let m=a[n]|0;if(m&2&&m&2048&&!c?.Ka)throw Error();const D=rb(m),G=(N,wa)=>{if(id(a,N,D)!=null)switch(c?.Qa){case 1:return;default:throw Error();}wa!=null&&(m=x(a,m,N,wa,D));delete h[N]};b==null?pb(g,g[n]|0,(N,wa)=>{G(N,\nwa)}):G(b,id(g,b,D))}}}}function hf(a){a=df(a);const b=a[0].g;if(a=a[1]){const c=gf(a),d=cf(Xe,ef,ff,a).T;return(e,f,g)=>b(e,f,g,d,c)}return b};function kf(a,b,c){a[b]=c.h}function lf(a,b,c,d){let e,f;const g=c.h;a[b]=(h,k,w)=>g(h,k,w,f||=cf(We,kf,lf,d).T,e||=mf(d))}function mf(a){let b=a[Ze];if(!b){const c=cf(We,kf,lf,a);b=(d,e)=>nf(d,e,c);a[Ze]=b}return b}function nf(a,b,c){pb(a,a[n]|0,(d,e)=>{if(e!=null){var f=of(c,d);f?f(b,e,d):d<500||Pa(Za,3)}});(a=Gc(a))&&Ic(a,(d,e,f)=>{we(b,b.g.end());for(d=0;dd(g,h,k,f,e)}else c=d;return a[b]=c}};const pf=xb(0);function qf(a,b){if(Array.isArray(b)){var c=b[n]|0;if(c&4)return b;for(var d=0,e=0;d{Be(a,c,Vc([g,f],d),e)});else if(Array.isArray(b)){for(let f=0;f>BigInt(32)));re(a.g,c.h,c.g);break;default:c=oe(b),re(a.g,c.h,c.g)}}}function xf(a,b,c){b=dc(b);b!=null&&b!=null&&(xe(a,c,0),te(a.g,b))}\nfunction yf(a,b,c){b=ac(b);b!=null&&(xe(a,c,0),a.g.g.push(b?1:0))}function zf(a,b,c){b=t(b);b!=null&&Ae(a,c,la(b))}function Af(a,b,c,d,e){Be(a,c,Te(b,d),e)}function Bf(a,b,c){b=b==null||typeof b==\"string\"||b instanceof Ja?b:void 0;b!=null&&Ae(a,c,Od(b,!0).buffer)}function Cf(a,b,c){b=ec(b);b!=null&&b!=null&&(xe(a,c,0),se(a.g,b))}function Df(a,b,c){if(a.h!==5&&a.h!==2)return!1;b=vd(b,b[n]|0,c);a.h==2?ke(a,Wd,b):b.push(Wd(a.g));return!0}\nvar E=rf(function(a,b,c){if(a.h!==5)return!1;tf(b,c,Wd(a.g));return!0},vf,Le),Ef=sf(Df,function(a,b,c){b=qf(Zb,b);if(b!=null)for(let g=0;g>BigInt(32)));re(a.g,c.h,c.g);break;default:c=le(b),re(a.g,c.h,c.g)}}},Ke),\nF=rf(function(a,b,c){if(a.h!==0)return!1;tf(b,c,Sd(a.g));return!0},xf,He),Kf=sf(function(a,b,c){if(a.h!==0&&a.h!==2)return!1;b=vd(b,b[n]|0,c);a.h==2?ke(a,Sd,b):b.push(Sd(a.g));return!0},function(a,b,c){b=qf(dc,b);if(b!=null&&b.length){c=ye(a,c);for(let d=0;d{{const f={ea:!0};d&&Object.assign(f,d);c=be(c,void 0,void 0,f);try{const g=new a,h=g.v;gf(b)(h,c);var e=g}finally{ee(c)}}return e}}function Zf(a){return function(){const b=new Ce;nf(this.v,b,cf(We,kf,lf,a));we(b,b.g.end());const c=new Uint8Array(b.h),d=b.l,e=d.length;let f=0;for(let g=0;gc;a=cg.createPolicy(\"goog#html\",{createHTML:b,createScript:b,createScriptURL:b})}catch(b){}return a};var fg=class{constructor(a){this.g=a}toString(){return this.g+\"\"}};function gg(a){var b;dg===void 0&&(dg=eg());a=(b=dg)?b.createScriptURL(a):a;return new fg(a)};function hg(a,...b){if(b.length===0)return gg(a[0]);let c=a[0];for(let d=0;d({index:Id(d,1)??0??-1,score:A(d,2)??0,categoryName:t(u(d,3))??\"\"??\"\",displayName:t(u(d,4))??\"\"??\"\"})),headIndex:b,headName:c}}function Yh(a){const b={classifications:Ed(a,Qg,1).map(c=>Xh(y(c,Cg,4)?.g()??[],Id(c,2)??0,t(u(c,3))??\"\"))};lc(u(a,2,void 0,void 0,mc))!=null&&(b.timestampMs=Wh(u(a,2,void 0,void 0,mc)??gd));return b};function Zh(a){var b=kd(a,3,Zb,jd());var c=kd(a,2,dc,jd());var d=kd(a,1,t,jd());var e=kd(a,9,t,jd());const f={categories:[],keypoints:[]};for(let g=0;g{const c={headIndex:Id(b,3)??0??-1,headName:t(u(b,4))??\"\"??\"\"};var d=b.v;Cd(d,d[n]|0,Sg,wd(b,1))!==void 0?(b=y(b,Sg,wd(b,1),void 0),b=kd(b,1,Zb,jd()),c.floatEmbedding=b.slice()):(d=new Uint8Array(0),c.quantizedEmbedding=y(b,Tg,wd(b,2),void 0)?.na()?.h()??d);return c}),timestampMs:Wh(u(a,2,void 0,void 0,mc)??gd)}};function ai(a){const b=[];for(const c of Ed(a,Lg,1))b.push({x:A(c,1)??0,y:A(c,2)??0,z:A(c,3)??0,visibility:A(c,4)??0});return b}function bi(a){const b=[];for(const c of Ed(a,Jg,1))b.push({x:A(c,1)??0,y:A(c,2)??0,z:A(c,3)??0,visibility:A(c,4)??0});return b};function ci(a){return Array.from(a,b=>b>127?b-256:b)}function di(a,b){if(a.length!==b.length)throw Error(`Cannot compute cosine similarity between embeddings of different sizes (${a.length} vs. ${b.length}).`);let c=0,d=0,e=0;for(let f=0;f=1&&Number(a[1])>=17?!0:!1:!0};async function mi(a){if(typeof importScripts===\"function\")try{importScripts(a.toString())}catch(b){if(b instanceof TypeError)await self[\"import\"](a.toString());else throw b;}else{const b=document.createElement(\"script\");b.src=a.toString();b.crossOrigin=\"anonymous\";return new Promise((c,d)=>{b.addEventListener(\"load\",()=>{c()},!1);b.addEventListener(\"error\",e=>{d(e)},!1);document.body.appendChild(b)})}};function ni(a){return a.videoWidth!==void 0?[a.videoWidth,a.videoHeight]:a.naturalWidth!==void 0?[a.naturalWidth,a.naturalHeight]:a.displayWidth!==void 0?[a.displayWidth,a.displayHeight]:[a.width,a.height]}function T(a,b,c){a.m||console.error(\"No wasm multistream support detected: ensure dependency inclusion of :gl_graph_runner_internal_multi_input target\");b=a.i.stringToNewUTF8(b);c(b);a.i._free(b)}\nfunction oi(a,b,c){if(!a.i.canvas)throw Error(\"No OpenGL canvas configured.\");c?a.i._bindTextureToStream(c):a.i._bindTextureToCanvas();c=a.i.canvas.getContext(\"webgl2\")||a.i.canvas.getContext(\"webgl\");if(!c)throw Error(\"Failed to obtain WebGL context from the provided canvas. `getContext()` should only be invoked with `webgl` or `webgl2`.\");a.i.gpuOriginForWebTexturesIsBottomLeft&&c.pixelStorei(c.UNPACK_FLIP_Y_WEBGL,!0);c.texImage2D(c.TEXTURE_2D,0,c.RGBA,c.RGBA,c.UNSIGNED_BYTE,b);a.i.gpuOriginForWebTexturesIsBottomLeft&&\nc.pixelStorei(c.UNPACK_FLIP_Y_WEBGL,!1);const [d,e]=ni(b);!a.l||d===a.i.canvas.width&&e===a.i.canvas.height||(a.i.canvas.width=d,a.i.canvas.height=e);return[d,e]}\nfunction pi(a,b,c){a.m||console.error(\"No wasm multistream support detected: ensure dependency inclusion of :gl_graph_runner_internal_multi_input target\");const d=new Uint32Array(b.length);for(let e=0;e>2);c(b);for(const e of d)a.i._free(e);a.i._free(b)}function qi(a,b,c){a.i.simpleListeners=a.i.simpleListeners||{};a.i.simpleListeners[b]=c}\nfunction ri(a,b,c){let d=[];a.i.simpleListeners=a.i.simpleListeners||{};a.i.simpleListeners[b]=(e,f,g)=>{f?(c(d,g),d=[]):d.push(e)}}\nvar si=class{constructor(a,b){this.l=!0;this.i=a;this.g=null;this.h=0;this.m=typeof this.i._addIntToInputStream===\"function\";b!==void 0?this.i.canvas=b:li()?this.i.canvas=new OffscreenCanvas(1,1):(console.warn(\"OffscreenCanvas not supported and GraphRunner constructor glCanvas parameter is undefined. Creating backup canvas.\"),this.i.canvas=document.createElement(\"canvas\"))}async initializeGraph(a){const b=await (await fetch(a)).arrayBuffer();a=!(a.endsWith(\".pbtxt\")||a.endsWith(\".textproto\"));this.setGraph(new Uint8Array(b),\na)}setGraphFromString(a){this.setGraph((new TextEncoder).encode(a),!1)}setGraph(a,b){const c=a.length,d=this.i._malloc(c);this.i.HEAPU8.set(a,d);b?this.i._changeBinaryGraph(c,d):this.i._changeTextGraph(c,d);this.i._free(d)}configureAudio(a,b,c,d,e){this.i._configureAudio||console.warn('Attempting to use configureAudio without support for input audio. Is build dep \":gl_graph_runner_audio\" missing?');T(this,d||\"input_audio\",f=>{e=e||\"audio_header\";T(this,e,g=>{this.i._configureAudio(f,g,a,b??0,c)})})}setAutoResizeCanvas(a){this.l=\na}setAutoRenderToScreen(a){this.i._setAutoRenderToScreen(a)}setGpuBufferVerticalFlip(a){this.i.gpuOriginForWebTexturesIsBottomLeft=a}ca(a){qi(this,\"__graph_config__\",b=>{a(b)});T(this,\"__graph_config__\",b=>{this.i._getGraphConfig(b,void 0)});delete this.i.simpleListeners.__graph_config__}attachErrorListener(a){this.i.errorListener=a}attachEmptyPacketListener(a,b){this.i.emptyPacketListeners=this.i.emptyPacketListeners||{};this.i.emptyPacketListeners[a]=b}addAudioToStream(a,b,c){this.addAudioToStreamWithShape(a,\n0,0,b,c)}addAudioToStreamWithShape(a,b,c,d,e){const f=a.length*4;this.h!==f&&(this.g&&this.i._free(this.g),this.g=this.i._malloc(f),this.h=f);this.i.HEAPF32.set(a,this.g/4);T(this,d,g=>{this.i._addAudioToInputStream(this.g,b,c,g,e)})}addGpuBufferToStream(a,b,c){T(this,b,d=>{const [e,f]=oi(this,a,d);this.i._addBoundTextureToStream(d,e,f,c)})}addBoolToStream(a,b,c){T(this,b,d=>{this.i._addBoolToInputStream(a,d,c)})}addDoubleToStream(a,b,c){T(this,b,d=>{this.i._addDoubleToInputStream(a,d,c)})}addFloatToStream(a,\nb,c){T(this,b,d=>{this.i._addFloatToInputStream(a,d,c)})}addIntToStream(a,b,c){T(this,b,d=>{this.i._addIntToInputStream(a,d,c)})}addUintToStream(a,b,c){T(this,b,d=>{this.i._addUintToInputStream(a,d,c)})}addStringToStream(a,b,c){T(this,b,d=>{T(this,a,e=>{this.i._addStringToInputStream(e,d,c)})})}addStringRecordToStream(a,b,c){T(this,b,d=>{pi(this,Object.keys(a),e=>{pi(this,Object.values(a),f=>{this.i._addFlatHashMapToInputStream(e,f,Object.keys(a).length,d,c)})})})}addProtoToStream(a,b,c,d){T(this,\nc,e=>{T(this,b,f=>{const g=this.i._malloc(a.length);this.i.HEAPU8.set(a,g);this.i._addProtoToInputStream(g,a.length,f,e,d);this.i._free(g)})})}addEmptyPacketToStream(a,b){T(this,a,c=>{this.i._addEmptyPacketToInputStream(c,b)})}addBoolVectorToStream(a,b,c){T(this,b,d=>{const e=this.i._allocateBoolVector(a.length);if(!e)throw Error(\"Unable to allocate new bool vector on heap.\");for(const f of a)this.i._addBoolVectorEntry(e,f);this.i._addBoolVectorToInputStream(e,d,c)})}addDoubleVectorToStream(a,b,c){T(this,\nb,d=>{const e=this.i._allocateDoubleVector(a.length);if(!e)throw Error(\"Unable to allocate new double vector on heap.\");for(const f of a)this.i._addDoubleVectorEntry(e,f);this.i._addDoubleVectorToInputStream(e,d,c)})}addFloatVectorToStream(a,b,c){T(this,b,d=>{const e=this.i._allocateFloatVector(a.length);if(!e)throw Error(\"Unable to allocate new float vector on heap.\");for(const f of a)this.i._addFloatVectorEntry(e,f);this.i._addFloatVectorToInputStream(e,d,c)})}addIntVectorToStream(a,b,c){T(this,\nb,d=>{const e=this.i._allocateIntVector(a.length);if(!e)throw Error(\"Unable to allocate new int vector on heap.\");for(const f of a)this.i._addIntVectorEntry(e,f);this.i._addIntVectorToInputStream(e,d,c)})}addUintVectorToStream(a,b,c){T(this,b,d=>{const e=this.i._allocateUintVector(a.length);if(!e)throw Error(\"Unable to allocate new unsigned int vector on heap.\");for(const f of a)this.i._addUintVectorEntry(e,f);this.i._addUintVectorToInputStream(e,d,c)})}addStringVectorToStream(a,b,c){T(this,b,d=>\n{const e=this.i._allocateStringVector(a.length);if(!e)throw Error(\"Unable to allocate new string vector on heap.\");for(const f of a)T(this,f,g=>{this.i._addStringVectorEntry(e,g)});this.i._addStringVectorToInputStream(e,d,c)})}addBoolToInputSidePacket(a,b){T(this,b,c=>{this.i._addBoolToInputSidePacket(a,c)})}addDoubleToInputSidePacket(a,b){T(this,b,c=>{this.i._addDoubleToInputSidePacket(a,c)})}addFloatToInputSidePacket(a,b){T(this,b,c=>{this.i._addFloatToInputSidePacket(a,c)})}addIntToInputSidePacket(a,\nb){T(this,b,c=>{this.i._addIntToInputSidePacket(a,c)})}addUintToInputSidePacket(a,b){T(this,b,c=>{this.i._addUintToInputSidePacket(a,c)})}addStringToInputSidePacket(a,b){T(this,b,c=>{T(this,a,d=>{this.i._addStringToInputSidePacket(d,c)})})}addProtoToInputSidePacket(a,b,c){T(this,c,d=>{T(this,b,e=>{const f=this.i._malloc(a.length);this.i.HEAPU8.set(a,f);this.i._addProtoToInputSidePacket(f,a.length,e,d);this.i._free(f)})})}addBoolVectorToInputSidePacket(a,b){T(this,b,c=>{const d=this.i._allocateBoolVector(a.length);\nif(!d)throw Error(\"Unable to allocate new bool vector on heap.\");for(const e of a)this.i._addBoolVectorEntry(d,e);this.i._addBoolVectorToInputSidePacket(d,c)})}addDoubleVectorToInputSidePacket(a,b){T(this,b,c=>{const d=this.i._allocateDoubleVector(a.length);if(!d)throw Error(\"Unable to allocate new double vector on heap.\");for(const e of a)this.i._addDoubleVectorEntry(d,e);this.i._addDoubleVectorToInputSidePacket(d,c)})}addFloatVectorToInputSidePacket(a,b){T(this,b,c=>{const d=this.i._allocateFloatVector(a.length);\nif(!d)throw Error(\"Unable to allocate new float vector on heap.\");for(const e of a)this.i._addFloatVectorEntry(d,e);this.i._addFloatVectorToInputSidePacket(d,c)})}addIntVectorToInputSidePacket(a,b){T(this,b,c=>{const d=this.i._allocateIntVector(a.length);if(!d)throw Error(\"Unable to allocate new int vector on heap.\");for(const e of a)this.i._addIntVectorEntry(d,e);this.i._addIntVectorToInputSidePacket(d,c)})}addUintVectorToInputSidePacket(a,b){T(this,b,c=>{const d=this.i._allocateUintVector(a.length);\nif(!d)throw Error(\"Unable to allocate new unsigned int vector on heap.\");for(const e of a)this.i._addUintVectorEntry(d,e);this.i._addUintVectorToInputSidePacket(d,c)})}addStringVectorToInputSidePacket(a,b){T(this,b,c=>{const d=this.i._allocateStringVector(a.length);if(!d)throw Error(\"Unable to allocate new string vector on heap.\");for(const e of a)T(this,e,f=>{this.i._addStringVectorEntry(d,f)});this.i._addStringVectorToInputSidePacket(d,c)})}attachBoolListener(a,b){qi(this,a,b);T(this,a,c=>{this.i._attachBoolListener(c)})}attachBoolVectorListener(a,\nb){ri(this,a,b);T(this,a,c=>{this.i._attachBoolVectorListener(c)})}attachIntListener(a,b){qi(this,a,b);T(this,a,c=>{this.i._attachIntListener(c)})}attachIntVectorListener(a,b){ri(this,a,b);T(this,a,c=>{this.i._attachIntVectorListener(c)})}attachUintListener(a,b){qi(this,a,b);T(this,a,c=>{this.i._attachUintListener(c)})}attachUintVectorListener(a,b){ri(this,a,b);T(this,a,c=>{this.i._attachUintVectorListener(c)})}attachDoubleListener(a,b){qi(this,a,b);T(this,a,c=>{this.i._attachDoubleListener(c)})}attachDoubleVectorListener(a,\nb){ri(this,a,b);T(this,a,c=>{this.i._attachDoubleVectorListener(c)})}attachFloatListener(a,b){qi(this,a,b);T(this,a,c=>{this.i._attachFloatListener(c)})}attachFloatVectorListener(a,b){ri(this,a,b);T(this,a,c=>{this.i._attachFloatVectorListener(c)})}attachStringListener(a,b){qi(this,a,b);T(this,a,c=>{this.i._attachStringListener(c)})}attachStringVectorListener(a,b){ri(this,a,b);T(this,a,c=>{this.i._attachStringVectorListener(c)})}attachProtoListener(a,b,c){qi(this,a,b);T(this,a,d=>{this.i._attachProtoListener(d,\nc||!1)})}attachProtoVectorListener(a,b,c){ri(this,a,b);T(this,a,d=>{this.i._attachProtoVectorListener(d,c||!1)})}attachAudioListener(a,b,c){this.i._attachAudioListener||console.warn('Attempting to use attachAudioListener without support for output audio. Is build dep \":gl_graph_runner_audio_out\" missing?');qi(this,a,(d,e)=>{d=new Float32Array(d.buffer,d.byteOffset,d.length/4);b(d,e)});T(this,a,d=>{this.i._attachAudioListener(d,c||!1)})}finishProcessing(){this.i._waitUntilIdle()}closeGraph(){this.i._closeGraph();\nthis.i.simpleListeners=void 0;this.i.emptyPacketListeners=void 0}},ti=async(a,b,c,d,e)=>{b&&await mi(b);if(!self.ModuleFactory)throw Error(\"ModuleFactory not set.\");if(c&&(await mi(c),!self.ModuleFactory))throw Error(\"ModuleFactory not set.\");self.Module&&e&&(b=self.Module,b.locateFile=e.locateFile,e.mainScriptUrlOrBlob&&(b.mainScriptUrlOrBlob=e.mainScriptUrlOrBlob));e=await self.ModuleFactory(self.Module||e);self.ModuleFactory=self.Module=void 0;return new a(e,d)};async function ui(a,b,c,d){a=await ti(a,c.wasmLoaderPath,c.assetLoaderPath,b,{locateFile(e){return e.endsWith(\".wasm\")?c.wasmBinaryPath.toString():c.assetBinaryPath&&e.endsWith(\".data\")?c.assetBinaryPath.toString():e}});await a.o(d);return a}async function vi(a,b,c,d){return ui(a,b,c,d)}function wi(a,b){let c=y(a.baseOptions,$g,3);if(!c){var d=c=new $g,e=new ng;Gd(d,4,ah,e)}\"delegate\"in b&&(b.delegate===\"GPU\"?(b=c,d=new jg,Gd(b,2,ah,d)):(b=c,d=new ng,Gd(b,4,ah,d)));z(a.baseOptions,$g,3,c)}\nfunction xi(a,b){const c=y(a.baseOptions,bh,1)||new bh;typeof b===\"string\"?(v(c,2,qc(b)),v(c,1)):b instanceof Uint8Array&&(v(c,1,mb(b,!1)),v(c,2));z(a.baseOptions,bh,1,c)}function yi(a){try{const b=a.H.length;if(b===1)throw Error(a.H[0].message);if(b>1)throw Error(\"Encountered multiple errors: \"+a.H.map(c=>c.message).join(\", \"));}finally{a.H=[]}}function U(a,b){a.C=Math.max(a.C,b)}\nfunction zi(a,b){a.B=new sg;Kd(a.B,2,\"PassThroughCalculator\");M(a.B,\"free_memory\");O(a.B,\"free_memory_unused_out\");P(b,\"free_memory\");xg(b,a.B)}function Ai(a,b){M(a.B,b);O(a.B,b+\"_unused_out\")}function Bi(a){a.g.addBoolToStream(!0,\"free_memory\",a.C)}\nvar Ci=class{constructor(a){this.g=a;this.H=[];this.C=0;this.g.setAutoRenderToScreen(!1)}l(a,b=!0){if(b){const c=a.baseOptions||{};if(a.baseOptions?.modelAssetBuffer&&a.baseOptions?.modelAssetPath)throw Error(\"Cannot set both baseOptions.modelAssetPath and baseOptions.modelAssetBuffer\");if(!(y(this.baseOptions,bh,1)?.g()||y(this.baseOptions,bh,1)?.l()||a.baseOptions?.modelAssetBuffer||a.baseOptions?.modelAssetPath))throw Error(\"Either baseOptions.modelAssetPath or baseOptions.modelAssetBuffer must be set\");\nwi(this,c);if(c.modelAssetPath)return fetch(c.modelAssetPath.toString()).then(d=>{if(d.ok)return d.arrayBuffer();throw Error(`Failed to fetch model: ${c.modelAssetPath} (${d.status})`);}).then(d=>{try{this.g.i.FS_unlink(\"/model.dat\")}catch{}this.g.i.FS_createDataFile(\"/\",\"model.dat\",new Uint8Array(d),!0,!1,!1);xi(this,\"/model.dat\");this.m();this.L()});if(c.modelAssetBuffer instanceof Uint8Array)xi(this,c.modelAssetBuffer);else if(c.modelAssetBuffer)return ji(c.modelAssetBuffer).then(d=>{xi(this,d);\nthis.m();this.L()})}this.m();this.L();return Promise.resolve()}L(){}ca(){let a;this.g.ca(b=>{a=Ag(b)});if(!a)throw Error(\"Failed to retrieve CalculatorGraphConfig\");return a}setGraph(a,b){this.g.attachErrorListener((c,d)=>{this.H.push(Error(d))});this.g.Ja();this.g.setGraph(a,b);this.B=void 0;yi(this)}finishProcessing(){this.g.finishProcessing();yi(this)}close(){this.B=void 0;this.g.closeGraph()}};Ci.prototype.close=Ci.prototype.close;export {Ci as TaskRunner};function Di(a,b){if(!a)throw Error(`Unable to obtain required WebGL resource: ${b}`);return a}class Ei{constructor(a,b,c,d){this.g=a;this.h=b;this.m=c;this.l=d}bind(){this.g.bindVertexArray(this.h)}close(){this.g.deleteVertexArray(this.h);this.g.deleteBuffer(this.m);this.g.deleteBuffer(this.l)}}\nfunction Fi(a,b,c){const d=a.g;c=Di(d.createShader(c),\"Failed to create WebGL shader\");d.shaderSource(c,b);d.compileShader(c);if(!d.getShaderParameter(c,d.COMPILE_STATUS))throw Error(`Could not compile WebGL shader: ${d.getShaderInfoLog(c)}`);d.attachShader(a.h,c);return c}\nfunction Gi(a,b){const c=a.g,d=Di(c.createVertexArray(),\"Failed to create vertex array\");c.bindVertexArray(d);const e=Di(c.createBuffer(),\"Failed to create buffer\");c.bindBuffer(c.ARRAY_BUFFER,e);c.enableVertexAttribArray(a.O);c.vertexAttribPointer(a.O,2,c.FLOAT,!1,0,0);c.bufferData(c.ARRAY_BUFFER,new Float32Array([-1,-1,-1,1,1,1,1,-1]),c.STATIC_DRAW);const f=Di(c.createBuffer(),\"Failed to create buffer\");c.bindBuffer(c.ARRAY_BUFFER,f);c.enableVertexAttribArray(a.L);c.vertexAttribPointer(a.L,2,c.FLOAT,\n!1,0,0);c.bufferData(c.ARRAY_BUFFER,new Float32Array(b?[0,1,0,0,1,0,1,1]:[0,0,0,1,1,1,1,0]),c.STATIC_DRAW);c.bindBuffer(c.ARRAY_BUFFER,null);c.bindVertexArray(null);return new Ei(c,d,e,f)}function Hi(a,b){if(!a.g)a.g=b;else if(b!==a.g)throw Error(\"Cannot change GL context once initialized\");}function Ii(a,b,c,d){Hi(a,b);a.h||(a.m(),a.D());c?(a.u||(a.u=Gi(a,!0)),c=a.u):(a.A||(a.A=Gi(a,!1)),c=a.A);b.useProgram(a.h);c.bind();a.l();a=d();c.g.bindVertexArray(null);return a}\nfunction Ji(a,b,c){Hi(a,b);a=Di(b.createTexture(),\"Failed to create texture\");b.bindTexture(b.TEXTURE_2D,a);b.texParameteri(b.TEXTURE_2D,b.TEXTURE_WRAP_S,b.CLAMP_TO_EDGE);b.texParameteri(b.TEXTURE_2D,b.TEXTURE_WRAP_T,b.CLAMP_TO_EDGE);b.texParameteri(b.TEXTURE_2D,b.TEXTURE_MIN_FILTER,c??b.LINEAR);b.texParameteri(b.TEXTURE_2D,b.TEXTURE_MAG_FILTER,c??b.LINEAR);b.bindTexture(b.TEXTURE_2D,null);return a}\nfunction Ki(a,b,c){Hi(a,b);a.B||(a.B=Di(b.createFramebuffer(),\"Failed to create framebuffe.\"));b.bindFramebuffer(b.FRAMEBUFFER,a.B);b.framebufferTexture2D(b.FRAMEBUFFER,b.COLOR_ATTACHMENT0,b.TEXTURE_2D,c,0)}function Li(a){a.g?.bindFramebuffer(a.g.FRAMEBUFFER,null)}\nvar Mi=class{H(){return\"\\n precision mediump float;\\n varying vec2 vTex;\\n uniform sampler2D inputTexture;\\n void main() {\\n gl_FragColor = texture2D(inputTexture, vTex);\\n }\\n \"}m(){const a=this.g;this.h=Di(a.createProgram(),\"Failed to create WebGL program\");this.X=Fi(this,\"\\n attribute vec2 aVertex;\\n attribute vec2 aTex;\\n varying vec2 vTex;\\n void main(void) {\\n gl_Position = vec4(aVertex, 0.0, 1.0);\\n vTex = aTex;\\n }\",a.VERTEX_SHADER);this.W=Fi(this,this.H(),a.FRAGMENT_SHADER);\na.linkProgram(this.h);if(!a.getProgramParameter(this.h,a.LINK_STATUS))throw Error(`Error during program linking: ${a.getProgramInfoLog(this.h)}`);this.O=a.getAttribLocation(this.h,\"aVertex\");this.L=a.getAttribLocation(this.h,\"aTex\")}D(){}l(){}close(){if(this.h){const a=this.g;a.deleteProgram(this.h);a.deleteShader(this.X);a.deleteShader(this.W)}this.B&&this.g.deleteFramebuffer(this.B);this.A&&this.A.close();this.u&&this.u.close()}};function Ni(a,b){if(a!==b)return!1;a=a.entries();b=b.entries();for(const [d,e]of a){a=d;const f=e;var c=b.next();if(c.done)return!1;const [g,h]=c.value;c=h;if(a!==g||f[0]!==c[0]||f[1]!==c[1]||f[2]!==c[2]||f[3]!==c[3])return!1}return!!b.next().done}\nfunction Oi(a,b,c,d){const e=a.g;e.activeTexture(e.TEXTURE0);e.bindTexture(e.TEXTURE_2D,b);e.activeTexture(e.TEXTURE1);e.bindTexture(e.TEXTURE_2D,a.C);e.texImage2D(e.TEXTURE_2D,0,e.RGBA,e.RGBA,e.UNSIGNED_BYTE,c);if(a.I&&Ni(a.I,d))e.activeTexture(e.TEXTURE2),e.bindTexture(e.TEXTURE_2D,a.j);else{a.I=d;const f=Array(1024).fill(0);d.forEach((g,h)=>{if(g.length!==4)throw Error(`Color at index ${h} is not a four-channel value.`);f[h*4]=g[0];f[h*4+1]=g[1];f[h*4+2]=g[2];f[h*4+3]=g[3]});e.activeTexture(e.TEXTURE2);\ne.bindTexture(e.TEXTURE_2D,a.j);e.texImage2D(e.TEXTURE_2D,0,e.RGBA,256,1,0,e.RGBA,e.UNSIGNED_BYTE,new Uint8Array(f))}}\nvar Pi=class extends Mi{H(){return\"\\n precision mediump float;\\n uniform sampler2D backgroundTexture;\\n uniform sampler2D maskTexture;\\n uniform sampler2D colorMappingTexture;\\n varying vec2 vTex;\\n void main() {\\n vec4 backgroundColor = texture2D(backgroundTexture, vTex);\\n float category = texture2D(maskTexture, vTex).r;\\n vec4 categoryColor = texture2D(colorMappingTexture, vec2(category, 0.0));\\n gl_FragColor = mix(backgroundColor, categoryColor, categoryColor.a);\\n }\\n \"}D(){const a=this.g;\na.activeTexture(a.TEXTURE1);this.C=Ji(this,a,a.LINEAR);a.activeTexture(a.TEXTURE2);this.j=Ji(this,a,a.NEAREST)}m(){super.m();const a=this.g;this.P=Di(a.getUniformLocation(this.h,\"backgroundTexture\"),\"Uniform location\");this.U=Di(a.getUniformLocation(this.h,\"colorMappingTexture\"),\"Uniform location\");this.M=Di(a.getUniformLocation(this.h,\"maskTexture\"),\"Uniform location\")}l(){super.l();const a=this.g;a.uniform1i(this.M,0);a.uniform1i(this.P,1);a.uniform1i(this.U,2)}close(){this.C&&this.g.deleteTexture(this.C);\nthis.j&&this.g.deleteTexture(this.j);super.close()}};var Qi=class extends Mi{H(){return\"\\n precision mediump float;\\n uniform sampler2D maskTexture;\\n uniform sampler2D defaultTexture;\\n uniform sampler2D overlayTexture;\\n varying vec2 vTex;\\n void main() {\\n float confidence = texture2D(maskTexture, vTex).r;\\n vec4 defaultColor = texture2D(defaultTexture, vTex);\\n vec4 overlayColor = texture2D(overlayTexture, vTex);\\n // Apply the alpha from the overlay and merge in the default color\\n overlayColor = mix(defaultColor, overlayColor, overlayColor.a);\\n gl_FragColor = mix(defaultColor, overlayColor, confidence);\\n }\\n \"}D(){const a=\nthis.g;a.activeTexture(a.TEXTURE1);this.j=Ji(this,a);a.activeTexture(a.TEXTURE2);this.C=Ji(this,a)}m(){super.m();const a=this.g;this.M=Di(a.getUniformLocation(this.h,\"defaultTexture\"),\"Uniform location\");this.P=Di(a.getUniformLocation(this.h,\"overlayTexture\"),\"Uniform location\");this.I=Di(a.getUniformLocation(this.h,\"maskTexture\"),\"Uniform location\")}l(){super.l();const a=this.g;a.uniform1i(this.I,0);a.uniform1i(this.M,1);a.uniform1i(this.P,2)}close(){this.j&&this.g.deleteTexture(this.j);this.C&&\nthis.g.deleteTexture(this.C);super.close()}};function Ri(a,b){switch(b){case 0:return a.g.find(c=>c instanceof Uint8Array);case 1:return a.g.find(c=>c instanceof Float32Array);case 2:return a.g.find(c=>typeof WebGLTexture!==\"undefined\"&&c instanceof WebGLTexture);default:throw Error(`Type is not supported: ${b}`);}}function Si(a){var b=Ri(a,0);b||(b=Ti(a),b=new Uint8Array(b.map(c=>Math.round(255*c))),a.g.push(b));return b}\nfunction Ti(a){var b=Ri(a,1);if(!b){if(b=Ri(a,0))b=(new Float32Array(b)).map(d=>d/255);else{b=new Float32Array(a.width*a.height);const d=Ui(a);var c=Vi(a);const e=Wi(a);Ki(c,d,e);if(\"iPad Simulator;iPhone Simulator;iPod Simulator;iPad;iPhone;iPod\".split(\";\").includes(navigator.platform)||navigator.userAgent.includes(\"Mac\")&&\"document\"in self&&\"ontouchend\"in self.document){c=new Float32Array(a.width*a.height*4);d.readPixels(0,0,a.width,a.height,d.RGBA,d.FLOAT,c);for(let f=0,g=0;f{Xi(this);d.clearColor(0,0,0,0);d.clear(d.COLOR_BUFFER_BIT);d.drawArrays(d.TRIANGLE_FAN,0,4);Zi(this)});Li(e);Zi(this)}else throw Error(`Type is not supported: ${b}`);a.push(c)}return new V(a,\nthis.m,this.R(),this.canvas,this.l,this.width,this.height)}close(){this.j&&Ui(this).deleteTexture(Ri(this,2));aj=-1}},$i;V.prototype.close=V.prototype.close;V.prototype.clone=V.prototype.clone;V.prototype.getAsWebGLTexture=V.prototype.N;V.prototype.getAsFloat32Array=V.prototype.ia;V.prototype.getAsUint8Array=V.prototype.ja;V.prototype.hasWebGLTexture=V.prototype.R;V.prototype.hasFloat32Array=V.prototype.ka;V.prototype.hasUint8Array=V.prototype.Fa;var aj=250;export {V as MPMask};const bj={color:\"white\",lineWidth:4,radius:6};function cj(a){a=a||{};return{...bj,fillColor:a.color,...a}}function dj(a,b){return a instanceof Function?a(b):a}function ej(a,b,c){return Math.max(Math.min(b,c),Math.min(Math.max(b,c),a))}function fj(a){if(!a.l)throw Error(\"CPU rendering requested but CanvasRenderingContext2D not provided.\");return a.l}function gj(a){if(!a.j)throw Error(\"GPU rendering requested but WebGL2RenderingContext not provided.\");return a.j}\nfunction hj(a){a.g||(a.g=new Pi);return a.g}function ij(a){a.h||(a.h=new Qi);return a.h}function jj(a,b,c){if(b.R())c(b.N());else{const d=b.ka()?b.ia():b.ja();a.m=a.m??new Mi;const e=gj(a);a=new V([d],b.m,!1,e.canvas,a.m,b.width,b.height);c(a.N());a.close()}}\nfunction kj(a,b,c,d){const e=hj(a),f=gj(a),g=Array.isArray(c)?new ImageData(new Uint8ClampedArray(c),1,1):c;Ii(e,f,!0,()=>{Oi(e,b,g,d);f.clearColor(0,0,0,0);f.clear(f.COLOR_BUFFER_BIT);f.drawArrays(f.TRIANGLE_FAN,0,4);const h=e.g;h.activeTexture(h.TEXTURE0);h.bindTexture(h.TEXTURE_2D,null);h.activeTexture(h.TEXTURE1);h.bindTexture(h.TEXTURE_2D,null);h.activeTexture(h.TEXTURE2);h.bindTexture(h.TEXTURE_2D,null)})}\nfunction lj(a,b,c,d){const e=gj(a);jj(a,b,f=>{kj(a,f,c,d);f=fj(a);f.drawImage(e.canvas,0,0,f.canvas.width,f.canvas.height)})}\nfunction mj(a,b,c,d){const e=gj(a),f=ij(a),g=Array.isArray(c)?new ImageData(new Uint8ClampedArray(c),1,1):c,h=Array.isArray(d)?new ImageData(new Uint8ClampedArray(d),1,1):d;Ii(f,e,!0,()=>{var k=f.g;k.activeTexture(k.TEXTURE0);k.bindTexture(k.TEXTURE_2D,b);k.activeTexture(k.TEXTURE1);k.bindTexture(k.TEXTURE_2D,f.j);k.texImage2D(k.TEXTURE_2D,0,k.RGBA,k.RGBA,k.UNSIGNED_BYTE,g);k.activeTexture(k.TEXTURE2);k.bindTexture(k.TEXTURE_2D,f.C);k.texImage2D(k.TEXTURE_2D,0,k.RGBA,k.RGBA,k.UNSIGNED_BYTE,h);e.clearColor(0,\n0,0,0);e.clear(e.COLOR_BUFFER_BIT);e.drawArrays(e.TRIANGLE_FAN,0,4);e.bindTexture(e.TEXTURE_2D,null);k=f.g;k.activeTexture(k.TEXTURE0);k.bindTexture(k.TEXTURE_2D,null);k.activeTexture(k.TEXTURE1);k.bindTexture(k.TEXTURE_2D,null);k.activeTexture(k.TEXTURE2);k.bindTexture(k.TEXTURE_2D,null)})}function nj(a,b,c,d){const e=gj(a);jj(a,b,f=>{mj(a,f,c,d);f=fj(a);f.drawImage(e.canvas,0,0,f.canvas.width,f.canvas.height)})}\nvar oj=class{constructor(a,b){typeof CanvasRenderingContext2D!==\"undefined\"&&a instanceof CanvasRenderingContext2D||a instanceof OffscreenCanvasRenderingContext2D?(this.l=a,this.j=b):this.j=a}ya(a,b){if(a){var c=fj(this);b=cj(b);c.save();var d=c.canvas,e=0;for(const f of a)c.fillStyle=dj(b.fillColor,{index:e,from:f}),c.strokeStyle=dj(b.color,{index:e,from:f}),c.lineWidth=dj(b.lineWidth,{index:e,from:f}),a=new Path2D,a.arc(f.x*d.width,f.y*d.height,dj(b.radius,{index:e,from:f}),0,2*Math.PI),c.fill(a),\nc.stroke(a),++e;c.restore()}}xa(a,b,c){if(a&&b){var d=fj(this);c=cj(c);d.save();var e=d.canvas,f=0;for(const g of b){d.beginPath();b=a[g.start];const h=a[g.end];b&&h&&(d.strokeStyle=dj(c.color,{index:f,from:b,to:h}),d.lineWidth=dj(c.lineWidth,{index:f,from:b,to:h}),d.moveTo(b.x*e.width,b.y*e.height),d.lineTo(h.x*e.width,h.y*e.height));++f;d.stroke()}d.restore()}}ua(a,b){const c=fj(this);b=cj(b);c.save();c.beginPath();c.lineWidth=dj(b.lineWidth,{});c.strokeStyle=dj(b.color,{});c.fillStyle=dj(b.fillColor,\n{});c.moveTo(a.originX,a.originY);c.lineTo(a.originX+a.width,a.originY);c.lineTo(a.originX+a.width,a.originY+a.height);c.lineTo(a.originX,a.originY+a.height);c.lineTo(a.originX,a.originY);c.stroke();c.fill();c.restore()}va(a,b,c=[0,0,0,255]){this.l?lj(this,a,c,b):kj(this,a.N(),c,b)}wa(a,b,c){this.l?nj(this,a,b,c):mj(this,a.N(),b,c)}close(){this.g?.close();this.g=void 0;this.h?.close();this.h=void 0;this.m?.close();this.m=void 0}};oj.prototype.close=oj.prototype.close;\noj.prototype.drawConfidenceMask=oj.prototype.wa;oj.prototype.drawCategoryMask=oj.prototype.va;oj.prototype.drawBoundingBox=oj.prototype.ua;oj.prototype.drawConnectors=oj.prototype.xa;oj.prototype.drawLandmarks=oj.prototype.ya;oj.lerp=function(a,b,c,d,e){return ej(d*(1-(a-b)/(c-b))+e*(1-(c-a)/(c-b)),d,e)};oj.clamp=ej;export {oj as DrawingUtils};function pj(a,b){switch(b){case 0:return a.g.find(c=>c instanceof ImageData);case 1:return a.g.find(c=>typeof ImageBitmap!==\"undefined\"&&c instanceof ImageBitmap);case 2:return a.g.find(c=>typeof WebGLTexture!==\"undefined\"&&c instanceof WebGLTexture);default:throw Error(`Type is not supported: ${b}`);}}\nfunction qj(a){var b=pj(a,0);if(!b){b=rj(a);const c=sj(a),d=new Uint8Array(a.width*a.height*4),e=tj(a);Ki(c,b,e);b.readPixels(0,0,a.width,a.height,b.RGBA,b.UNSIGNED_BYTE,d);Li(c);b=new ImageData(new Uint8ClampedArray(d.buffer),a.width,a.height);a.g.push(b)}return b}function tj(a){let b=pj(a,2);if(!b){const c=rj(a);b=uj(a);const d=pj(a,1)||qj(a);c.texImage2D(c.TEXTURE_2D,0,c.RGBA,c.RGBA,c.UNSIGNED_BYTE,d);vj(a)}return b}\nfunction rj(a){if(!a.canvas)throw Error(\"Conversion to different image formats require that a canvas is passed when initializing the image.\");a.h||(a.h=Di(a.canvas.getContext(\"webgl2\"),\"You cannot use a canvas that is already bound to a different type of rendering context.\"));return a.h}function sj(a){a.l||(a.l=new Mi);return a.l}\nfunction uj(a){const b=rj(a);b.viewport(0,0,a.width,a.height);b.activeTexture(b.TEXTURE0);let c=pj(a,2);c||(c=Ji(sj(a),b),a.g.push(c),a.m=!0);b.bindTexture(b.TEXTURE_2D,c);return c}function vj(a){a.h.bindTexture(a.h.TEXTURE_2D,null)}\nfunction wj(a){const b=rj(a);return Ii(sj(a),b,!0,()=>xj(a,()=>{b.bindFramebuffer(b.FRAMEBUFFER,null);b.clearColor(0,0,0,0);b.clear(b.COLOR_BUFFER_BIT);b.drawArrays(b.TRIANGLE_FAN,0,4);if(!(a.canvas instanceof OffscreenCanvas))throw Error(\"Conversion to ImageBitmap requires that the MediaPipe Tasks is initialized with an OffscreenCanvas\");return a.canvas.transferToImageBitmap()}))}\nfunction xj(a,b){const c=a.canvas;if(c.width===a.width&&c.height===a.height)return b();const d=c.width,e=c.height;c.width=a.width;c.height=a.height;a=b();c.width=d;c.height=e;return a}\nvar W=class{constructor(a,b,c,d,e,f,g){this.g=a;this.j=b;this.m=c;this.canvas=d;this.l=e;this.width=f;this.height=g;if(this.j||this.m)--yj,yj===0&&console.error(\"You seem to be creating MPImage instances without invoking .close(). This leaks resources.\")}Ea(){return!!pj(this,0)}la(){return!!pj(this,1)}R(){return!!pj(this,2)}Ca(){return qj(this)}Ba(){var a=pj(this,1);a||(tj(this),uj(this),a=wj(this),vj(this),this.g.push(a),this.j=!0);return a}N(){return tj(this)}clone(){const a=[];for(const b of this.g){let c;\nif(b instanceof ImageData)c=new ImageData(b.data,this.width,this.height);else if(b instanceof WebGLTexture){const d=rj(this),e=sj(this);d.activeTexture(d.TEXTURE1);c=Ji(e,d);d.bindTexture(d.TEXTURE_2D,c);d.texImage2D(d.TEXTURE_2D,0,d.RGBA,this.width,this.height,0,d.RGBA,d.UNSIGNED_BYTE,null);d.bindTexture(d.TEXTURE_2D,null);Ki(e,d,c);Ii(e,d,!1,()=>{uj(this);d.clearColor(0,0,0,0);d.clear(d.COLOR_BUFFER_BIT);d.drawArrays(d.TRIANGLE_FAN,0,4);vj(this)});Li(e);vj(this)}else if(b instanceof ImageBitmap)tj(this),\nuj(this),c=wj(this),vj(this);else throw Error(`Type is not supported: ${b}`);a.push(c)}return new W(a,this.la(),this.R(),this.canvas,this.l,this.width,this.height)}close(){this.j&&pj(this,1).close();this.m&&rj(this).deleteTexture(pj(this,2));yj=-1}};W.prototype.close=W.prototype.close;W.prototype.clone=W.prototype.clone;W.prototype.getAsWebGLTexture=W.prototype.N;W.prototype.getAsImageBitmap=W.prototype.Ba;W.prototype.getAsImageData=W.prototype.Ca;W.prototype.hasWebGLTexture=W.prototype.R;\nW.prototype.hasImageBitmap=W.prototype.la;W.prototype.hasImageData=W.prototype.Ea;var yj=250;export {W as MPImage};function zj(...a){return a.map(([b,c])=>({start:b,end:c}))};const Aj=function(a){return class extends a{Ja(){this.i._registerModelResourcesGraphService()}}}(function(a){return class extends a{get ga(){return this.i}pa(b,c,d){T(this,c,e=>{const [f,g]=oi(this,b,e);this.ga._addBoundTextureAsImageToStream(e,f,g,d)})}Z(b,c){qi(this,b,c);T(this,b,d=>{this.ga._attachImageListener(d)})}aa(b,c){ri(this,b,c);T(this,b,d=>{this.ga._attachImageVectorListener(d)})}}}(si));var Bj=class extends Aj{};\nasync function X(a,b,c){const d=c.canvas??(li()?void 0:document.createElement(\"canvas\"));return vi(a,d,b,c)}\nfunction Cj(a,b,c,d){if(a.U){const f=new Pg;if(c?.regionOfInterest){if(!a.oa)throw Error(\"This task doesn't support region-of-interest.\");var e=c.regionOfInterest;if(e.left>=e.right||e.top>=e.bottom)throw Error(\"Expected RectF with left < right and top < bottom.\");if(e.left<0||e.top<0||e.right>1||e.bottom>1)throw Error(\"Expected RectF values to be in [0,1].\");B(f,1,(e.left+e.right)/2);B(f,2,(e.top+e.bottom)/2);B(f,4,e.right-e.left);B(f,3,e.bottom-e.top)}else B(f,1,.5),B(f,2,.5),B(f,4,1),B(f,3,1);\nif(c?.rotationDegrees){if(c?.rotationDegrees%90!==0)throw Error(\"Expected rotation to be a multiple of 90\\u00b0.\");B(f,5,-Math.PI*c.rotationDegrees/180);if(c?.rotationDegrees%180!==0){const [g,h]=ni(b);c=A(f,3)*h/g;e=A(f,4)*g/h;B(f,4,c);B(f,3,e)}}a.g.addProtoToStream(f.g(),\"mediapipe.NormalizedRect\",a.U,d)}a.g.pa(b,a.X,d??performance.now());a.finishProcessing()}\nfunction Dj(a,b,c){if(a.baseOptions?.g())throw Error(\"Task is not initialized with image mode. 'runningMode' must be set to 'IMAGE'.\");Cj(a,b,c,a.C+1)}function Ej(a,b,c,d){if(!a.baseOptions?.g())throw Error(\"Task is not initialized with video mode. 'runningMode' must be set to 'VIDEO'.\");Cj(a,b,c,d)}\nfunction Fj(a,b,c,d){var e=b.data;const f=b.width;b=b.height;const g=f*b;if((e instanceof Uint8Array||e instanceof Float32Array)&&e.length!==g)throw Error(`Unsupported channel count: ${e.length/g}`);a=new V([e],c,!1,a.g.i.canvas,a.P,f,b);return d?a.clone():a}\nvar Gj=class extends Ci{constructor(a,b,c,d){super(a);this.g=a;this.X=b;this.U=c;this.oa=d;this.P=new Mi}l(a,b=!0){\"runningMode\"in a&&v(this.baseOptions,2,$b(!!a.runningMode&&a.runningMode!==\"IMAGE\"));if(a.canvas!==void 0&&this.g.i.canvas!==a.canvas)throw Error(\"You must create a new task to reset the canvas.\");return super.l(a,b)}close(){this.P.close();super.close()}};Gj.prototype.close=Gj.prototype.close;export {Gj as VisionTaskRunner};var Hj=class extends Gj{constructor(a,b){super(new Bj(a,b),\"image_in\",\"norm_rect_in\",!1);this.j={detections:[]};a=this.h=new dh;b=new R;z(a,R,1,b);B(this.h,2,.5);B(this.h,3,.3)}get baseOptions(){return y(this.h,R,1)}set baseOptions(a){z(this.h,R,1,a)}o(a){\"minDetectionConfidence\"in a&&B(this.h,2,a.minDetectionConfidence??.5);\"minSuppressionThreshold\"in a&&B(this.h,3,a.minSuppressionThreshold??.3);return this.l(a)}F(a,b){this.j={detections:[]};Dj(this,a,b);return this.j}G(a,b,c){this.j={detections:[]};\nEj(this,a,c,b);return this.j}m(){var a=new yg;P(a,\"image_in\");P(a,\"norm_rect_in\");Q(a,\"detections\");const b=new Wf;Oe(b,fh,this.h);const c=new sg;Kd(c,2,\"mediapipe.tasks.vision.face_detector.FaceDetectorGraph\");M(c,\"IMAGE:image_in\");M(c,\"NORM_RECT:norm_rect_in\");O(c,\"DETECTIONS:detections\");c.o(b);xg(a,c);this.g.attachProtoVectorListener(\"detections\",(d,e)=>{for(const f of d)d=Ig(f),this.j.detections.push(Zh(d));U(this,e)});this.g.attachEmptyPacketListener(\"detections\",d=>{U(this,d)});a=a.g();this.setGraph(new Uint8Array(a),\n!0)}};Hj.prototype.detectForVideo=Hj.prototype.G;Hj.prototype.detect=Hj.prototype.F;Hj.prototype.setOptions=Hj.prototype.o;Hj.createFromModelPath=async function(a,b){return X(Hj,a,{baseOptions:{modelAssetPath:b}})};Hj.createFromModelBuffer=function(a,b){return X(Hj,a,{baseOptions:{modelAssetBuffer:b}})};Hj.createFromOptions=function(a,b){return X(Hj,a,b)};export {Hj as FaceDetector};var Ij=zj([61,146],[146,91],[91,181],[181,84],[84,17],[17,314],[314,405],[405,321],[321,375],[375,291],[61,185],[185,40],[40,39],[39,37],[37,0],[0,267],[267,269],[269,270],[270,409],[409,291],[78,95],[95,88],[88,178],[178,87],[87,14],[14,317],[317,402],[402,318],[318,324],[324,308],[78,191],[191,80],[80,81],[81,82],[82,13],[13,312],[312,311],[311,310],[310,415],[415,308]),Jj=zj([263,249],[249,390],[390,373],[373,374],[374,380],[380,381],[381,382],[382,362],[263,466],[466,388],[388,387],[387,386],\n[386,385],[385,384],[384,398],[398,362]),Kj=zj([276,283],[283,282],[282,295],[295,285],[300,293],[293,334],[334,296],[296,336]),Lj=zj([474,475],[475,476],[476,477],[477,474]),Mj=zj([33,7],[7,163],[163,144],[144,145],[145,153],[153,154],[154,155],[155,133],[33,246],[246,161],[161,160],[160,159],[159,158],[158,157],[157,173],[173,133]),Nj=zj([46,53],[53,52],[52,65],[65,55],[70,63],[63,105],[105,66],[66,107]),Oj=zj([469,470],[470,471],[471,472],[472,469]),Pj=zj([10,338],[338,297],[297,332],[332,284],\n[284,251],[251,389],[389,356],[356,454],[454,323],[323,361],[361,288],[288,397],[397,365],[365,379],[379,378],[378,400],[400,377],[377,152],[152,148],[148,176],[176,149],[149,150],[150,136],[136,172],[172,58],[58,132],[132,93],[93,234],[234,127],[127,162],[162,21],[21,54],[54,103],[103,67],[67,109],[109,10]),Qj=[...Ij,...Jj,...Kj,...Mj,...Nj,...Pj],Rj=zj([127,34],[34,139],[139,127],[11,0],[0,37],[37,11],[232,231],[231,120],[120,232],[72,37],[37,39],[39,72],[128,121],[121,47],[47,128],[232,121],[121,\n128],[128,232],[104,69],[69,67],[67,104],[175,171],[171,148],[148,175],[118,50],[50,101],[101,118],[73,39],[39,40],[40,73],[9,151],[151,108],[108,9],[48,115],[115,131],[131,48],[194,204],[204,211],[211,194],[74,40],[40,185],[185,74],[80,42],[42,183],[183,80],[40,92],[92,186],[186,40],[230,229],[229,118],[118,230],[202,212],[212,214],[214,202],[83,18],[18,17],[17,83],[76,61],[61,146],[146,76],[160,29],[29,30],[30,160],[56,157],[157,173],[173,56],[106,204],[204,194],[194,106],[135,214],[214,192],[192,\n135],[203,165],[165,98],[98,203],[21,71],[71,68],[68,21],[51,45],[45,4],[4,51],[144,24],[24,23],[23,144],[77,146],[146,91],[91,77],[205,50],[50,187],[187,205],[201,200],[200,18],[18,201],[91,106],[106,182],[182,91],[90,91],[91,181],[181,90],[85,84],[84,17],[17,85],[206,203],[203,36],[36,206],[148,171],[171,140],[140,148],[92,40],[40,39],[39,92],[193,189],[189,244],[244,193],[159,158],[158,28],[28,159],[247,246],[246,161],[161,247],[236,3],[3,196],[196,236],[54,68],[68,104],[104,54],[193,168],[168,\n8],[8,193],[117,228],[228,31],[31,117],[189,193],[193,55],[55,189],[98,97],[97,99],[99,98],[126,47],[47,100],[100,126],[166,79],[79,218],[218,166],[155,154],[154,26],[26,155],[209,49],[49,131],[131,209],[135,136],[136,150],[150,135],[47,126],[126,217],[217,47],[223,52],[52,53],[53,223],[45,51],[51,134],[134,45],[211,170],[170,140],[140,211],[67,69],[69,108],[108,67],[43,106],[106,91],[91,43],[230,119],[119,120],[120,230],[226,130],[130,247],[247,226],[63,53],[53,52],[52,63],[238,20],[20,242],[242,\n238],[46,70],[70,156],[156,46],[78,62],[62,96],[96,78],[46,53],[53,63],[63,46],[143,34],[34,227],[227,143],[123,117],[117,111],[111,123],[44,125],[125,19],[19,44],[236,134],[134,51],[51,236],[216,206],[206,205],[205,216],[154,153],[153,22],[22,154],[39,37],[37,167],[167,39],[200,201],[201,208],[208,200],[36,142],[142,100],[100,36],[57,212],[212,202],[202,57],[20,60],[60,99],[99,20],[28,158],[158,157],[157,28],[35,226],[226,113],[113,35],[160,159],[159,27],[27,160],[204,202],[202,210],[210,204],[113,\n225],[225,46],[46,113],[43,202],[202,204],[204,43],[62,76],[76,77],[77,62],[137,123],[123,116],[116,137],[41,38],[38,72],[72,41],[203,129],[129,142],[142,203],[64,98],[98,240],[240,64],[49,102],[102,64],[64,49],[41,73],[73,74],[74,41],[212,216],[216,207],[207,212],[42,74],[74,184],[184,42],[169,170],[170,211],[211,169],[170,149],[149,176],[176,170],[105,66],[66,69],[69,105],[122,6],[6,168],[168,122],[123,147],[147,187],[187,123],[96,77],[77,90],[90,96],[65,55],[55,107],[107,65],[89,90],[90,180],[180,\n89],[101,100],[100,120],[120,101],[63,105],[105,104],[104,63],[93,137],[137,227],[227,93],[15,86],[86,85],[85,15],[129,102],[102,49],[49,129],[14,87],[87,86],[86,14],[55,8],[8,9],[9,55],[100,47],[47,121],[121,100],[145,23],[23,22],[22,145],[88,89],[89,179],[179,88],[6,122],[122,196],[196,6],[88,95],[95,96],[96,88],[138,172],[172,136],[136,138],[215,58],[58,172],[172,215],[115,48],[48,219],[219,115],[42,80],[80,81],[81,42],[195,3],[3,51],[51,195],[43,146],[146,61],[61,43],[171,175],[175,199],[199,\n171],[81,82],[82,38],[38,81],[53,46],[46,225],[225,53],[144,163],[163,110],[110,144],[52,65],[65,66],[66,52],[229,228],[228,117],[117,229],[34,127],[127,234],[234,34],[107,108],[108,69],[69,107],[109,108],[108,151],[151,109],[48,64],[64,235],[235,48],[62,78],[78,191],[191,62],[129,209],[209,126],[126,129],[111,35],[35,143],[143,111],[117,123],[123,50],[50,117],[222,65],[65,52],[52,222],[19,125],[125,141],[141,19],[221,55],[55,65],[65,221],[3,195],[195,197],[197,3],[25,7],[7,33],[33,25],[220,237],\n[237,44],[44,220],[70,71],[71,139],[139,70],[122,193],[193,245],[245,122],[247,130],[130,33],[33,247],[71,21],[21,162],[162,71],[170,169],[169,150],[150,170],[188,174],[174,196],[196,188],[216,186],[186,92],[92,216],[2,97],[97,167],[167,2],[141,125],[125,241],[241,141],[164,167],[167,37],[37,164],[72,38],[38,12],[12,72],[38,82],[82,13],[13,38],[63,68],[68,71],[71,63],[226,35],[35,111],[111,226],[101,50],[50,205],[205,101],[206,92],[92,165],[165,206],[209,198],[198,217],[217,209],[165,167],[167,97],\n[97,165],[220,115],[115,218],[218,220],[133,112],[112,243],[243,133],[239,238],[238,241],[241,239],[214,135],[135,169],[169,214],[190,173],[173,133],[133,190],[171,208],[208,32],[32,171],[125,44],[44,237],[237,125],[86,87],[87,178],[178,86],[85,86],[86,179],[179,85],[84,85],[85,180],[180,84],[83,84],[84,181],[181,83],[201,83],[83,182],[182,201],[137,93],[93,132],[132,137],[76,62],[62,183],[183,76],[61,76],[76,184],[184,61],[57,61],[61,185],[185,57],[212,57],[57,186],[186,212],[214,207],[207,187],\n[187,214],[34,143],[143,156],[156,34],[79,239],[239,237],[237,79],[123,137],[137,177],[177,123],[44,1],[1,4],[4,44],[201,194],[194,32],[32,201],[64,102],[102,129],[129,64],[213,215],[215,138],[138,213],[59,166],[166,219],[219,59],[242,99],[99,97],[97,242],[2,94],[94,141],[141,2],[75,59],[59,235],[235,75],[24,110],[110,228],[228,24],[25,130],[130,226],[226,25],[23,24],[24,229],[229,23],[22,23],[23,230],[230,22],[26,22],[22,231],[231,26],[112,26],[26,232],[232,112],[189,190],[190,243],[243,189],[221,\n56],[56,190],[190,221],[28,56],[56,221],[221,28],[27,28],[28,222],[222,27],[29,27],[27,223],[223,29],[30,29],[29,224],[224,30],[247,30],[30,225],[225,247],[238,79],[79,20],[20,238],[166,59],[59,75],[75,166],[60,75],[75,240],[240,60],[147,177],[177,215],[215,147],[20,79],[79,166],[166,20],[187,147],[147,213],[213,187],[112,233],[233,244],[244,112],[233,128],[128,245],[245,233],[128,114],[114,188],[188,128],[114,217],[217,174],[174,114],[131,115],[115,220],[220,131],[217,198],[198,236],[236,217],[198,\n131],[131,134],[134,198],[177,132],[132,58],[58,177],[143,35],[35,124],[124,143],[110,163],[163,7],[7,110],[228,110],[110,25],[25,228],[356,389],[389,368],[368,356],[11,302],[302,267],[267,11],[452,350],[350,349],[349,452],[302,303],[303,269],[269,302],[357,343],[343,277],[277,357],[452,453],[453,357],[357,452],[333,332],[332,297],[297,333],[175,152],[152,377],[377,175],[347,348],[348,330],[330,347],[303,304],[304,270],[270,303],[9,336],[336,337],[337,9],[278,279],[279,360],[360,278],[418,262],[262,\n431],[431,418],[304,408],[408,409],[409,304],[310,415],[415,407],[407,310],[270,409],[409,410],[410,270],[450,348],[348,347],[347,450],[422,430],[430,434],[434,422],[313,314],[314,17],[17,313],[306,307],[307,375],[375,306],[387,388],[388,260],[260,387],[286,414],[414,398],[398,286],[335,406],[406,418],[418,335],[364,367],[367,416],[416,364],[423,358],[358,327],[327,423],[251,284],[284,298],[298,251],[281,5],[5,4],[4,281],[373,374],[374,253],[253,373],[307,320],[320,321],[321,307],[425,427],[427,411],\n[411,425],[421,313],[313,18],[18,421],[321,405],[405,406],[406,321],[320,404],[404,405],[405,320],[315,16],[16,17],[17,315],[426,425],[425,266],[266,426],[377,400],[400,369],[369,377],[322,391],[391,269],[269,322],[417,465],[465,464],[464,417],[386,257],[257,258],[258,386],[466,260],[260,388],[388,466],[456,399],[399,419],[419,456],[284,332],[332,333],[333,284],[417,285],[285,8],[8,417],[346,340],[340,261],[261,346],[413,441],[441,285],[285,413],[327,460],[460,328],[328,327],[355,371],[371,329],[329,\n355],[392,439],[439,438],[438,392],[382,341],[341,256],[256,382],[429,420],[420,360],[360,429],[364,394],[394,379],[379,364],[277,343],[343,437],[437,277],[443,444],[444,283],[283,443],[275,440],[440,363],[363,275],[431,262],[262,369],[369,431],[297,338],[338,337],[337,297],[273,375],[375,321],[321,273],[450,451],[451,349],[349,450],[446,342],[342,467],[467,446],[293,334],[334,282],[282,293],[458,461],[461,462],[462,458],[276,353],[353,383],[383,276],[308,324],[324,325],[325,308],[276,300],[300,293],\n[293,276],[372,345],[345,447],[447,372],[352,345],[345,340],[340,352],[274,1],[1,19],[19,274],[456,248],[248,281],[281,456],[436,427],[427,425],[425,436],[381,256],[256,252],[252,381],[269,391],[391,393],[393,269],[200,199],[199,428],[428,200],[266,330],[330,329],[329,266],[287,273],[273,422],[422,287],[250,462],[462,328],[328,250],[258,286],[286,384],[384,258],[265,353],[353,342],[342,265],[387,259],[259,257],[257,387],[424,431],[431,430],[430,424],[342,353],[353,276],[276,342],[273,335],[335,424],\n[424,273],[292,325],[325,307],[307,292],[366,447],[447,345],[345,366],[271,303],[303,302],[302,271],[423,266],[266,371],[371,423],[294,455],[455,460],[460,294],[279,278],[278,294],[294,279],[271,272],[272,304],[304,271],[432,434],[434,427],[427,432],[272,407],[407,408],[408,272],[394,430],[430,431],[431,394],[395,369],[369,400],[400,395],[334,333],[333,299],[299,334],[351,417],[417,168],[168,351],[352,280],[280,411],[411,352],[325,319],[319,320],[320,325],[295,296],[296,336],[336,295],[319,403],[403,\n404],[404,319],[330,348],[348,349],[349,330],[293,298],[298,333],[333,293],[323,454],[454,447],[447,323],[15,16],[16,315],[315,15],[358,429],[429,279],[279,358],[14,15],[15,316],[316,14],[285,336],[336,9],[9,285],[329,349],[349,350],[350,329],[374,380],[380,252],[252,374],[318,402],[402,403],[403,318],[6,197],[197,419],[419,6],[318,319],[319,325],[325,318],[367,364],[364,365],[365,367],[435,367],[367,397],[397,435],[344,438],[438,439],[439,344],[272,271],[271,311],[311,272],[195,5],[5,281],[281,195],\n[273,287],[287,291],[291,273],[396,428],[428,199],[199,396],[311,271],[271,268],[268,311],[283,444],[444,445],[445,283],[373,254],[254,339],[339,373],[282,334],[334,296],[296,282],[449,347],[347,346],[346,449],[264,447],[447,454],[454,264],[336,296],[296,299],[299,336],[338,10],[10,151],[151,338],[278,439],[439,455],[455,278],[292,407],[407,415],[415,292],[358,371],[371,355],[355,358],[340,345],[345,372],[372,340],[346,347],[347,280],[280,346],[442,443],[443,282],[282,442],[19,94],[94,370],[370,19],\n[441,442],[442,295],[295,441],[248,419],[419,197],[197,248],[263,255],[255,359],[359,263],[440,275],[275,274],[274,440],[300,383],[383,368],[368,300],[351,412],[412,465],[465,351],[263,467],[467,466],[466,263],[301,368],[368,389],[389,301],[395,378],[378,379],[379,395],[412,351],[351,419],[419,412],[436,426],[426,322],[322,436],[2,164],[164,393],[393,2],[370,462],[462,461],[461,370],[164,0],[0,267],[267,164],[302,11],[11,12],[12,302],[268,12],[12,13],[13,268],[293,300],[300,301],[301,293],[446,261],\n[261,340],[340,446],[330,266],[266,425],[425,330],[426,423],[423,391],[391,426],[429,355],[355,437],[437,429],[391,327],[327,326],[326,391],[440,457],[457,438],[438,440],[341,382],[382,362],[362,341],[459,457],[457,461],[461,459],[434,430],[430,394],[394,434],[414,463],[463,362],[362,414],[396,369],[369,262],[262,396],[354,461],[461,457],[457,354],[316,403],[403,402],[402,316],[315,404],[404,403],[403,315],[314,405],[405,404],[404,314],[313,406],[406,405],[405,313],[421,418],[418,406],[406,421],[366,\n401],[401,361],[361,366],[306,408],[408,407],[407,306],[291,409],[409,408],[408,291],[287,410],[410,409],[409,287],[432,436],[436,410],[410,432],[434,416],[416,411],[411,434],[264,368],[368,383],[383,264],[309,438],[438,457],[457,309],[352,376],[376,401],[401,352],[274,275],[275,4],[4,274],[421,428],[428,262],[262,421],[294,327],[327,358],[358,294],[433,416],[416,367],[367,433],[289,455],[455,439],[439,289],[462,370],[370,326],[326,462],[2,326],[326,370],[370,2],[305,460],[460,455],[455,305],[254,\n449],[449,448],[448,254],[255,261],[261,446],[446,255],[253,450],[450,449],[449,253],[252,451],[451,450],[450,252],[256,452],[452,451],[451,256],[341,453],[453,452],[452,341],[413,464],[464,463],[463,413],[441,413],[413,414],[414,441],[258,442],[442,441],[441,258],[257,443],[443,442],[442,257],[259,444],[444,443],[443,259],[260,445],[445,444],[444,260],[467,342],[342,445],[445,467],[459,458],[458,250],[250,459],[289,392],[392,290],[290,289],[290,328],[328,460],[460,290],[376,433],[433,435],[435,376],\n[250,290],[290,392],[392,250],[411,416],[416,433],[433,411],[341,463],[463,464],[464,341],[453,464],[464,465],[465,453],[357,465],[465,412],[412,357],[343,412],[412,399],[399,343],[360,363],[363,440],[440,360],[437,399],[399,456],[456,437],[420,456],[456,363],[363,420],[401,435],[435,288],[288,401],[372,383],[383,353],[353,372],[339,255],[255,249],[249,339],[448,261],[261,255],[255,448],[133,243],[243,190],[190,133],[133,155],[155,112],[112,133],[33,246],[246,247],[247,33],[33,130],[130,25],[25,33],\n[398,384],[384,286],[286,398],[362,398],[398,414],[414,362],[362,463],[463,341],[341,362],[263,359],[359,467],[467,263],[263,249],[249,255],[255,263],[466,467],[467,260],[260,466],[75,60],[60,166],[166,75],[238,239],[239,79],[79,238],[162,127],[127,139],[139,162],[72,11],[11,37],[37,72],[121,232],[232,120],[120,121],[73,72],[72,39],[39,73],[114,128],[128,47],[47,114],[233,232],[232,128],[128,233],[103,104],[104,67],[67,103],[152,175],[175,148],[148,152],[119,118],[118,101],[101,119],[74,73],[73,40],\n[40,74],[107,9],[9,108],[108,107],[49,48],[48,131],[131,49],[32,194],[194,211],[211,32],[184,74],[74,185],[185,184],[191,80],[80,183],[183,191],[185,40],[40,186],[186,185],[119,230],[230,118],[118,119],[210,202],[202,214],[214,210],[84,83],[83,17],[17,84],[77,76],[76,146],[146,77],[161,160],[160,30],[30,161],[190,56],[56,173],[173,190],[182,106],[106,194],[194,182],[138,135],[135,192],[192,138],[129,203],[203,98],[98,129],[54,21],[21,68],[68,54],[5,51],[51,4],[4,5],[145,144],[144,23],[23,145],[90,\n77],[77,91],[91,90],[207,205],[205,187],[187,207],[83,201],[201,18],[18,83],[181,91],[91,182],[182,181],[180,90],[90,181],[181,180],[16,85],[85,17],[17,16],[205,206],[206,36],[36,205],[176,148],[148,140],[140,176],[165,92],[92,39],[39,165],[245,193],[193,244],[244,245],[27,159],[159,28],[28,27],[30,247],[247,161],[161,30],[174,236],[236,196],[196,174],[103,54],[54,104],[104,103],[55,193],[193,8],[8,55],[111,117],[117,31],[31,111],[221,189],[189,55],[55,221],[240,98],[98,99],[99,240],[142,126],[126,\n100],[100,142],[219,166],[166,218],[218,219],[112,155],[155,26],[26,112],[198,209],[209,131],[131,198],[169,135],[135,150],[150,169],[114,47],[47,217],[217,114],[224,223],[223,53],[53,224],[220,45],[45,134],[134,220],[32,211],[211,140],[140,32],[109,67],[67,108],[108,109],[146,43],[43,91],[91,146],[231,230],[230,120],[120,231],[113,226],[226,247],[247,113],[105,63],[63,52],[52,105],[241,238],[238,242],[242,241],[124,46],[46,156],[156,124],[95,78],[78,96],[96,95],[70,46],[46,63],[63,70],[116,143],\n[143,227],[227,116],[116,123],[123,111],[111,116],[1,44],[44,19],[19,1],[3,236],[236,51],[51,3],[207,216],[216,205],[205,207],[26,154],[154,22],[22,26],[165,39],[39,167],[167,165],[199,200],[200,208],[208,199],[101,36],[36,100],[100,101],[43,57],[57,202],[202,43],[242,20],[20,99],[99,242],[56,28],[28,157],[157,56],[124,35],[35,113],[113,124],[29,160],[160,27],[27,29],[211,204],[204,210],[210,211],[124,113],[113,46],[46,124],[106,43],[43,204],[204,106],[96,62],[62,77],[77,96],[227,137],[137,116],[116,\n227],[73,41],[41,72],[72,73],[36,203],[203,142],[142,36],[235,64],[64,240],[240,235],[48,49],[49,64],[64,48],[42,41],[41,74],[74,42],[214,212],[212,207],[207,214],[183,42],[42,184],[184,183],[210,169],[169,211],[211,210],[140,170],[170,176],[176,140],[104,105],[105,69],[69,104],[193,122],[122,168],[168,193],[50,123],[123,187],[187,50],[89,96],[96,90],[90,89],[66,65],[65,107],[107,66],[179,89],[89,180],[180,179],[119,101],[101,120],[120,119],[68,63],[63,104],[104,68],[234,93],[93,227],[227,234],[16,\n15],[15,85],[85,16],[209,129],[129,49],[49,209],[15,14],[14,86],[86,15],[107,55],[55,9],[9,107],[120,100],[100,121],[121,120],[153,145],[145,22],[22,153],[178,88],[88,179],[179,178],[197,6],[6,196],[196,197],[89,88],[88,96],[96,89],[135,138],[138,136],[136,135],[138,215],[215,172],[172,138],[218,115],[115,219],[219,218],[41,42],[42,81],[81,41],[5,195],[195,51],[51,5],[57,43],[43,61],[61,57],[208,171],[171,199],[199,208],[41,81],[81,38],[38,41],[224,53],[53,225],[225,224],[24,144],[144,110],[110,24],\n[105,52],[52,66],[66,105],[118,229],[229,117],[117,118],[227,34],[34,234],[234,227],[66,107],[107,69],[69,66],[10,109],[109,151],[151,10],[219,48],[48,235],[235,219],[183,62],[62,191],[191,183],[142,129],[129,126],[126,142],[116,111],[111,143],[143,116],[118,117],[117,50],[50,118],[223,222],[222,52],[52,223],[94,19],[19,141],[141,94],[222,221],[221,65],[65,222],[196,3],[3,197],[197,196],[45,220],[220,44],[44,45],[156,70],[70,139],[139,156],[188,122],[122,245],[245,188],[139,71],[71,162],[162,139],\n[149,170],[170,150],[150,149],[122,188],[188,196],[196,122],[206,216],[216,92],[92,206],[164,2],[2,167],[167,164],[242,141],[141,241],[241,242],[0,164],[164,37],[37,0],[11,72],[72,12],[12,11],[12,38],[38,13],[13,12],[70,63],[63,71],[71,70],[31,226],[226,111],[111,31],[36,101],[101,205],[205,36],[203,206],[206,165],[165,203],[126,209],[209,217],[217,126],[98,165],[165,97],[97,98],[237,220],[220,218],[218,237],[237,239],[239,241],[241,237],[210,214],[214,169],[169,210],[140,171],[171,32],[32,140],[241,\n125],[125,237],[237,241],[179,86],[86,178],[178,179],[180,85],[85,179],[179,180],[181,84],[84,180],[180,181],[182,83],[83,181],[181,182],[194,201],[201,182],[182,194],[177,137],[137,132],[132,177],[184,76],[76,183],[183,184],[185,61],[61,184],[184,185],[186,57],[57,185],[185,186],[216,212],[212,186],[186,216],[192,214],[214,187],[187,192],[139,34],[34,156],[156,139],[218,79],[79,237],[237,218],[147,123],[123,177],[177,147],[45,44],[44,4],[4,45],[208,201],[201,32],[32,208],[98,64],[64,129],[129,98],\n[192,213],[213,138],[138,192],[235,59],[59,219],[219,235],[141,242],[242,97],[97,141],[97,2],[2,141],[141,97],[240,75],[75,235],[235,240],[229,24],[24,228],[228,229],[31,25],[25,226],[226,31],[230,23],[23,229],[229,230],[231,22],[22,230],[230,231],[232,26],[26,231],[231,232],[233,112],[112,232],[232,233],[244,189],[189,243],[243,244],[189,221],[221,190],[190,189],[222,28],[28,221],[221,222],[223,27],[27,222],[222,223],[224,29],[29,223],[223,224],[225,30],[30,224],[224,225],[113,247],[247,225],[225,\n113],[99,60],[60,240],[240,99],[213,147],[147,215],[215,213],[60,20],[20,166],[166,60],[192,187],[187,213],[213,192],[243,112],[112,244],[244,243],[244,233],[233,245],[245,244],[245,128],[128,188],[188,245],[188,114],[114,174],[174,188],[134,131],[131,220],[220,134],[174,217],[217,236],[236,174],[236,198],[198,134],[134,236],[215,177],[177,58],[58,215],[156,143],[143,124],[124,156],[25,110],[110,7],[7,25],[31,228],[228,25],[25,31],[264,356],[356,368],[368,264],[0,11],[11,267],[267,0],[451,452],[452,\n349],[349,451],[267,302],[302,269],[269,267],[350,357],[357,277],[277,350],[350,452],[452,357],[357,350],[299,333],[333,297],[297,299],[396,175],[175,377],[377,396],[280,347],[347,330],[330,280],[269,303],[303,270],[270,269],[151,9],[9,337],[337,151],[344,278],[278,360],[360,344],[424,418],[418,431],[431,424],[270,304],[304,409],[409,270],[272,310],[310,407],[407,272],[322,270],[270,410],[410,322],[449,450],[450,347],[347,449],[432,422],[422,434],[434,432],[18,313],[313,17],[17,18],[291,306],[306,\n375],[375,291],[259,387],[387,260],[260,259],[424,335],[335,418],[418,424],[434,364],[364,416],[416,434],[391,423],[423,327],[327,391],[301,251],[251,298],[298,301],[275,281],[281,4],[4,275],[254,373],[373,253],[253,254],[375,307],[307,321],[321,375],[280,425],[425,411],[411,280],[200,421],[421,18],[18,200],[335,321],[321,406],[406,335],[321,320],[320,405],[405,321],[314,315],[315,17],[17,314],[423,426],[426,266],[266,423],[396,377],[377,369],[369,396],[270,322],[322,269],[269,270],[413,417],[417,\n464],[464,413],[385,386],[386,258],[258,385],[248,456],[456,419],[419,248],[298,284],[284,333],[333,298],[168,417],[417,8],[8,168],[448,346],[346,261],[261,448],[417,413],[413,285],[285,417],[326,327],[327,328],[328,326],[277,355],[355,329],[329,277],[309,392],[392,438],[438,309],[381,382],[382,256],[256,381],[279,429],[429,360],[360,279],[365,364],[364,379],[379,365],[355,277],[277,437],[437,355],[282,443],[443,283],[283,282],[281,275],[275,363],[363,281],[395,431],[431,369],[369,395],[299,297],\n[297,337],[337,299],[335,273],[273,321],[321,335],[348,450],[450,349],[349,348],[359,446],[446,467],[467,359],[283,293],[293,282],[282,283],[250,458],[458,462],[462,250],[300,276],[276,383],[383,300],[292,308],[308,325],[325,292],[283,276],[276,293],[293,283],[264,372],[372,447],[447,264],[346,352],[352,340],[340,346],[354,274],[274,19],[19,354],[363,456],[456,281],[281,363],[426,436],[436,425],[425,426],[380,381],[381,252],[252,380],[267,269],[269,393],[393,267],[421,200],[200,428],[428,421],[371,\n266],[266,329],[329,371],[432,287],[287,422],[422,432],[290,250],[250,328],[328,290],[385,258],[258,384],[384,385],[446,265],[265,342],[342,446],[386,387],[387,257],[257,386],[422,424],[424,430],[430,422],[445,342],[342,276],[276,445],[422,273],[273,424],[424,422],[306,292],[292,307],[307,306],[352,366],[366,345],[345,352],[268,271],[271,302],[302,268],[358,423],[423,371],[371,358],[327,294],[294,460],[460,327],[331,279],[279,294],[294,331],[303,271],[271,304],[304,303],[436,432],[432,427],[427,436],\n[304,272],[272,408],[408,304],[395,394],[394,431],[431,395],[378,395],[395,400],[400,378],[296,334],[334,299],[299,296],[6,351],[351,168],[168,6],[376,352],[352,411],[411,376],[307,325],[325,320],[320,307],[285,295],[295,336],[336,285],[320,319],[319,404],[404,320],[329,330],[330,349],[349,329],[334,293],[293,333],[333,334],[366,323],[323,447],[447,366],[316,15],[15,315],[315,316],[331,358],[358,279],[279,331],[317,14],[14,316],[316,317],[8,285],[285,9],[9,8],[277,329],[329,350],[350,277],[253,374],\n[374,252],[252,253],[319,318],[318,403],[403,319],[351,6],[6,419],[419,351],[324,318],[318,325],[325,324],[397,367],[367,365],[365,397],[288,435],[435,397],[397,288],[278,344],[344,439],[439,278],[310,272],[272,311],[311,310],[248,195],[195,281],[281,248],[375,273],[273,291],[291,375],[175,396],[396,199],[199,175],[312,311],[311,268],[268,312],[276,283],[283,445],[445,276],[390,373],[373,339],[339,390],[295,282],[282,296],[296,295],[448,449],[449,346],[346,448],[356,264],[264,454],[454,356],[337,\n336],[336,299],[299,337],[337,338],[338,151],[151,337],[294,278],[278,455],[455,294],[308,292],[292,415],[415,308],[429,358],[358,355],[355,429],[265,340],[340,372],[372,265],[352,346],[346,280],[280,352],[295,442],[442,282],[282,295],[354,19],[19,370],[370,354],[285,441],[441,295],[295,285],[195,248],[248,197],[197,195],[457,440],[440,274],[274,457],[301,300],[300,368],[368,301],[417,351],[351,465],[465,417],[251,301],[301,389],[389,251],[394,395],[395,379],[379,394],[399,412],[412,419],[419,399],\n[410,436],[436,322],[322,410],[326,2],[2,393],[393,326],[354,370],[370,461],[461,354],[393,164],[164,267],[267,393],[268,302],[302,12],[12,268],[312,268],[268,13],[13,312],[298,293],[293,301],[301,298],[265,446],[446,340],[340,265],[280,330],[330,425],[425,280],[322,426],[426,391],[391,322],[420,429],[429,437],[437,420],[393,391],[391,326],[326,393],[344,440],[440,438],[438,344],[458,459],[459,461],[461,458],[364,434],[434,394],[394,364],[428,396],[396,262],[262,428],[274,354],[354,457],[457,274],\n[317,316],[316,402],[402,317],[316,315],[315,403],[403,316],[315,314],[314,404],[404,315],[314,313],[313,405],[405,314],[313,421],[421,406],[406,313],[323,366],[366,361],[361,323],[292,306],[306,407],[407,292],[306,291],[291,408],[408,306],[291,287],[287,409],[409,291],[287,432],[432,410],[410,287],[427,434],[434,411],[411,427],[372,264],[264,383],[383,372],[459,309],[309,457],[457,459],[366,352],[352,401],[401,366],[1,274],[274,4],[4,1],[418,421],[421,262],[262,418],[331,294],[294,358],[358,331],\n[435,433],[433,367],[367,435],[392,289],[289,439],[439,392],[328,462],[462,326],[326,328],[94,2],[2,370],[370,94],[289,305],[305,455],[455,289],[339,254],[254,448],[448,339],[359,255],[255,446],[446,359],[254,253],[253,449],[449,254],[253,252],[252,450],[450,253],[252,256],[256,451],[451,252],[256,341],[341,452],[452,256],[414,413],[413,463],[463,414],[286,441],[441,414],[414,286],[286,258],[258,441],[441,286],[258,257],[257,442],[442,258],[257,259],[259,443],[443,257],[259,260],[260,444],[444,259],\n[260,467],[467,445],[445,260],[309,459],[459,250],[250,309],[305,289],[289,290],[290,305],[305,290],[290,460],[460,305],[401,376],[376,435],[435,401],[309,250],[250,392],[392,309],[376,411],[411,433],[433,376],[453,341],[341,464],[464,453],[357,453],[453,465],[465,357],[343,357],[357,412],[412,343],[437,343],[343,399],[399,437],[344,360],[360,440],[440,344],[420,437],[437,456],[456,420],[360,420],[420,363],[363,360],[361,401],[401,288],[288,361],[265,372],[372,353],[353,265],[390,339],[339,249],[249,\n390],[339,448],[448,255],[255,339]);function Sj(a){a.j={faceLandmarks:[],faceBlendshapes:[],facialTransformationMatrixes:[]}}\nvar Y=class extends Gj{constructor(a,b){super(new Bj(a,b),\"image_in\",\"norm_rect\",!1);this.j={faceLandmarks:[],faceBlendshapes:[],facialTransformationMatrixes:[]};this.outputFacialTransformationMatrixes=this.outputFaceBlendshapes=!1;a=this.h=new ih;b=new R;z(a,R,1,b);this.A=new hh;z(this.h,hh,3,this.A);this.u=new dh;z(this.h,dh,2,this.u);Jd(this.u,4,1);B(this.u,2,.5);B(this.A,2,.5);B(this.h,4,.5)}get baseOptions(){return y(this.h,R,1)}set baseOptions(a){z(this.h,R,1,a)}o(a){\"numFaces\"in a&&Jd(this.u,\n4,a.numFaces??1);\"minFaceDetectionConfidence\"in a&&B(this.u,2,a.minFaceDetectionConfidence??.5);\"minTrackingConfidence\"in a&&B(this.h,4,a.minTrackingConfidence??.5);\"minFacePresenceConfidence\"in a&&B(this.A,2,a.minFacePresenceConfidence??.5);\"outputFaceBlendshapes\"in a&&(this.outputFaceBlendshapes=!!a.outputFaceBlendshapes);\"outputFacialTransformationMatrixes\"in a&&(this.outputFacialTransformationMatrixes=!!a.outputFacialTransformationMatrixes);return this.l(a)}F(a,b){Sj(this);Dj(this,a,b);return this.j}G(a,\nb,c){Sj(this);Ej(this,a,c,b);return this.j}m(){var a=new yg;P(a,\"image_in\");P(a,\"norm_rect\");Q(a,\"face_landmarks\");const b=new Wf;Oe(b,kh,this.h);const c=new sg;Kd(c,2,\"mediapipe.tasks.vision.face_landmarker.FaceLandmarkerGraph\");M(c,\"IMAGE:image_in\");M(c,\"NORM_RECT:norm_rect\");O(c,\"NORM_LANDMARKS:face_landmarks\");c.o(b);xg(a,c);this.g.attachProtoVectorListener(\"face_landmarks\",(d,e)=>{for(const f of d)d=Mg(f),this.j.faceLandmarks.push(ai(d));U(this,e)});this.g.attachEmptyPacketListener(\"face_landmarks\",\nd=>{U(this,d)});this.outputFaceBlendshapes&&(Q(a,\"blendshapes\"),O(c,\"BLENDSHAPES:blendshapes\"),this.g.attachProtoVectorListener(\"blendshapes\",(d,e)=>{if(this.outputFaceBlendshapes)for(const f of d)d=Eg(f),this.j.faceBlendshapes.push(Xh(d.g()??[]));U(this,e)}),this.g.attachEmptyPacketListener(\"blendshapes\",d=>{U(this,d)}));this.outputFacialTransformationMatrixes&&(Q(a,\"face_geometry\"),O(c,\"FACE_GEOMETRY:face_geometry\"),this.g.attachProtoVectorListener(\"face_geometry\",(d,e)=>{if(this.outputFacialTransformationMatrixes)for(const f of d)d=\ngh(f),(d=y(d,Ng,2))&&this.j.facialTransformationMatrixes.push({rows:Id(d,1)??0??0,columns:Id(d,2)??0??0,data:kd(d,3,Zb,jd()).slice()??[]});U(this,e)}),this.g.attachEmptyPacketListener(\"face_geometry\",d=>{U(this,d)}));a=a.g();this.setGraph(new Uint8Array(a),!0)}};Y.prototype.detectForVideo=Y.prototype.G;Y.prototype.detect=Y.prototype.F;Y.prototype.setOptions=Y.prototype.o;Y.createFromModelPath=function(a,b){return X(Y,a,{baseOptions:{modelAssetPath:b}})};\nY.createFromModelBuffer=function(a,b){return X(Y,a,{baseOptions:{modelAssetBuffer:b}})};Y.createFromOptions=function(a,b){return X(Y,a,b)};Y.FACE_LANDMARKS_LIPS=Ij;Y.FACE_LANDMARKS_LEFT_EYE=Jj;\nY.FACE_LANDMARKS_LEFT_EYEBROW=Kj;Y.FACE_LANDMARKS_LEFT_IRIS=Lj;Y.FACE_LANDMARKS_RIGHT_EYE=Mj;\nY.FACE_LANDMARKS_RIGHT_EYEBROW=Nj;Y.FACE_LANDMARKS_RIGHT_IRIS=Oj;\nY.FACE_LANDMARKS_FACE_OVAL=Pj;Y.FACE_LANDMARKS_CONTOURS=Qj;\nY.FACE_LANDMARKS_TESSELATION=Rj;export {Y as FaceLandmarker};var Tj=zj([0,1],[1,2],[2,3],[3,4],[0,5],[5,6],[6,7],[7,8],[5,9],[9,10],[10,11],[11,12],[9,13],[13,14],[14,15],[15,16],[13,17],[0,17],[17,18],[18,19],[19,20]);function Uj(a){a.gestures=[];a.landmarks=[];a.worldLandmarks=[];a.handedness=[]}function Vj(a){return a.gestures.length===0?{gestures:[],landmarks:[],worldLandmarks:[],handedness:[],handednesses:[]}:{gestures:a.gestures,landmarks:a.landmarks,worldLandmarks:a.worldLandmarks,handedness:a.handedness,handednesses:a.handedness}}\nfunction Wj(a,b=!0){const c=[];for(const e of a){var d=Eg(e);a=[];for(const f of d.g())d=b&&Id(f,1)!=null?Id(f,1)??0:-1,a.push({score:A(f,2)??0,index:d,categoryName:t(u(f,3))??\"\"??\"\",displayName:t(u(f,4))??\"\"??\"\"});c.push(a)}return c}\nvar Xj=class extends Gj{constructor(a,b){super(new Bj(a,b),\"image_in\",\"norm_rect\",!1);this.gestures=[];this.landmarks=[];this.worldLandmarks=[];this.handedness=[];a=this.j=new rh;b=new R;z(a,R,1,b);this.u=new qh;z(this.j,qh,2,this.u);this.D=new ph;z(this.u,ph,3,this.D);this.A=new oh;z(this.u,oh,2,this.A);this.h=new nh;z(this.j,nh,3,this.h);B(this.A,2,.5);B(this.u,4,.5);B(this.D,2,.5)}get baseOptions(){return y(this.j,R,1)}set baseOptions(a){z(this.j,R,1,a)}o(a){Jd(this.A,3,a.numHands??1);\"minHandDetectionConfidence\"in\na&&B(this.A,2,a.minHandDetectionConfidence??.5);\"minTrackingConfidence\"in a&&B(this.u,4,a.minTrackingConfidence??.5);\"minHandPresenceConfidence\"in a&&B(this.D,2,a.minHandPresenceConfidence??.5);if(a.cannedGesturesClassifierOptions){var b=new lh,c=b,d=Vh(a.cannedGesturesClassifierOptions,y(this.h,lh,3)?.l());z(c,Wg,2,d);z(this.h,lh,3,b)}else a.cannedGesturesClassifierOptions===void 0&&y(this.h,lh,3)?.g();a.customGesturesClassifierOptions?(c=b=new lh,d=Vh(a.customGesturesClassifierOptions,y(this.h,\nlh,4)?.l()),z(c,Wg,2,d),z(this.h,lh,4,b)):a.customGesturesClassifierOptions===void 0&&y(this.h,lh,4)?.g();return this.l(a)}Ha(a,b){Uj(this);Dj(this,a,b);return Vj(this)}Ia(a,b,c){Uj(this);Ej(this,a,c,b);return Vj(this)}m(){var a=new yg;P(a,\"image_in\");P(a,\"norm_rect\");Q(a,\"hand_gestures\");Q(a,\"hand_landmarks\");Q(a,\"world_hand_landmarks\");Q(a,\"handedness\");const b=new Wf;Oe(b,wh,this.j);const c=new sg;Kd(c,2,\"mediapipe.tasks.vision.gesture_recognizer.GestureRecognizerGraph\");M(c,\"IMAGE:image_in\");\nM(c,\"NORM_RECT:norm_rect\");O(c,\"HAND_GESTURES:hand_gestures\");O(c,\"LANDMARKS:hand_landmarks\");O(c,\"WORLD_LANDMARKS:world_hand_landmarks\");O(c,\"HANDEDNESS:handedness\");c.o(b);xg(a,c);this.g.attachProtoVectorListener(\"hand_landmarks\",(d,e)=>{for(const f of d){d=Mg(f);const g=[];for(const h of Ed(d,Lg,1))g.push({x:A(h,1)??0,y:A(h,2)??0,z:A(h,3)??0,visibility:A(h,4)??0});this.landmarks.push(g)}U(this,e)});this.g.attachEmptyPacketListener(\"hand_landmarks\",d=>{U(this,d)});this.g.attachProtoVectorListener(\"world_hand_landmarks\",\n(d,e)=>{for(const f of d){d=Kg(f);const g=[];for(const h of Ed(d,Jg,1))g.push({x:A(h,1)??0,y:A(h,2)??0,z:A(h,3)??0,visibility:A(h,4)??0});this.worldLandmarks.push(g)}U(this,e)});this.g.attachEmptyPacketListener(\"world_hand_landmarks\",d=>{U(this,d)});this.g.attachProtoVectorListener(\"hand_gestures\",(d,e)=>{this.gestures.push(...Wj(d,!1));U(this,e)});this.g.attachEmptyPacketListener(\"hand_gestures\",d=>{U(this,d)});this.g.attachProtoVectorListener(\"handedness\",(d,e)=>{this.handedness.push(...Wj(d));\nU(this,e)});this.g.attachEmptyPacketListener(\"handedness\",d=>{U(this,d)});a=a.g();this.setGraph(new Uint8Array(a),!0)}};Xj.prototype.recognizeForVideo=Xj.prototype.Ia;Xj.prototype.recognize=Xj.prototype.Ha;Xj.prototype.setOptions=Xj.prototype.o;Xj.createFromModelPath=function(a,b){return X(Xj,a,{baseOptions:{modelAssetPath:b}})};Xj.createFromModelBuffer=function(a,b){return X(Xj,a,{baseOptions:{modelAssetBuffer:b}})};Xj.createFromOptions=function(a,b){return X(Xj,a,b)};Xj.HAND_CONNECTIONS=Tj;\nexport {Xj as GestureRecognizer};function Yj(a){return{landmarks:a.landmarks,worldLandmarks:a.worldLandmarks,handednesses:a.handedness,handedness:a.handedness}}\nvar Zj=class extends Gj{constructor(a,b){super(new Bj(a,b),\"image_in\",\"norm_rect\",!1);this.landmarks=[];this.worldLandmarks=[];this.handedness=[];a=this.h=new qh;b=new R;z(a,R,1,b);this.u=new ph;z(this.h,ph,3,this.u);this.j=new oh;z(this.h,oh,2,this.j);Jd(this.j,3,1);B(this.j,2,.5);B(this.u,2,.5);B(this.h,4,.5)}get baseOptions(){return y(this.h,R,1)}set baseOptions(a){z(this.h,R,1,a)}o(a){\"numHands\"in a&&Jd(this.j,3,a.numHands??1);\"minHandDetectionConfidence\"in a&&B(this.j,2,a.minHandDetectionConfidence??\n.5);\"minTrackingConfidence\"in a&&B(this.h,4,a.minTrackingConfidence??.5);\"minHandPresenceConfidence\"in a&&B(this.u,2,a.minHandPresenceConfidence??.5);return this.l(a)}F(a,b){this.landmarks=[];this.worldLandmarks=[];this.handedness=[];Dj(this,a,b);return Yj(this)}G(a,b,c){this.landmarks=[];this.worldLandmarks=[];this.handedness=[];Ej(this,a,c,b);return Yj(this)}m(){var a=new yg;P(a,\"image_in\");P(a,\"norm_rect\");Q(a,\"hand_landmarks\");Q(a,\"world_hand_landmarks\");Q(a,\"handedness\");const b=new Wf;Oe(b,\nxh,this.h);const c=new sg;Kd(c,2,\"mediapipe.tasks.vision.hand_landmarker.HandLandmarkerGraph\");M(c,\"IMAGE:image_in\");M(c,\"NORM_RECT:norm_rect\");O(c,\"LANDMARKS:hand_landmarks\");O(c,\"WORLD_LANDMARKS:world_hand_landmarks\");O(c,\"HANDEDNESS:handedness\");c.o(b);xg(a,c);this.g.attachProtoVectorListener(\"hand_landmarks\",(d,e)=>{for(const f of d)d=Mg(f),this.landmarks.push(ai(d));U(this,e)});this.g.attachEmptyPacketListener(\"hand_landmarks\",d=>{U(this,d)});this.g.attachProtoVectorListener(\"world_hand_landmarks\",\n(d,e)=>{for(const f of d)d=Kg(f),this.worldLandmarks.push(bi(d));U(this,e)});this.g.attachEmptyPacketListener(\"world_hand_landmarks\",d=>{U(this,d)});this.g.attachProtoVectorListener(\"handedness\",(d,e)=>{var f=this.handedness,g=f.push;const h=[];for(const k of d){d=Eg(k);const w=[];for(const m of d.g())w.push({score:A(m,2)??0,index:Id(m,1)??0??-1,categoryName:t(u(m,3))??\"\"??\"\",displayName:t(u(m,4))??\"\"??\"\"});h.push(w)}g.call(f,...h);U(this,e)});this.g.attachEmptyPacketListener(\"handedness\",d=>{U(this,\nd)});a=a.g();this.setGraph(new Uint8Array(a),!0)}};Zj.prototype.detectForVideo=Zj.prototype.G;Zj.prototype.detect=Zj.prototype.F;Zj.prototype.setOptions=Zj.prototype.o;Zj.createFromModelPath=function(a,b){return X(Zj,a,{baseOptions:{modelAssetPath:b}})};Zj.createFromModelBuffer=function(a,b){return X(Zj,a,{baseOptions:{modelAssetBuffer:b}})};Zj.createFromOptions=function(a,b){return X(Zj,a,b)};Zj.HAND_CONNECTIONS=Tj;\nexport {Zj as HandLandmarker};var ak=zj([0,1],[1,2],[2,3],[3,7],[0,4],[4,5],[5,6],[6,8],[9,10],[11,12],[11,13],[13,15],[15,17],[15,19],[15,21],[17,19],[12,14],[14,16],[16,18],[16,20],[16,22],[18,20],[11,23],[12,24],[23,24],[23,25],[24,26],[25,27],[26,28],[27,29],[28,30],[29,31],[30,32],[27,31],[28,32]);function bk(a){a.h={faceLandmarks:[],faceBlendshapes:[],poseLandmarks:[],poseWorldLandmarks:[],poseSegmentationMasks:[],leftHandLandmarks:[],leftHandWorldLandmarks:[],rightHandLandmarks:[],rightHandWorldLandmarks:[]}}function ck(a){try{if(a.D)a.D(a.h);else return a.h}finally{Bi(a)}}function dk(a,b){a=Mg(a);b.push(ai(a))}\nvar Z=class extends Gj{constructor(a,b){super(new Bj(a,b),\"input_frames_image\",null,!1);this.h={faceLandmarks:[],faceBlendshapes:[],poseLandmarks:[],poseWorldLandmarks:[],poseSegmentationMasks:[],leftHandLandmarks:[],leftHandWorldLandmarks:[],rightHandLandmarks:[],rightHandWorldLandmarks:[]};this.outputPoseSegmentationMasks=this.outputFaceBlendshapes=!1;a=this.j=new Bh;b=new R;z(a,R,1,b);this.I=new ph;z(this.j,ph,2,this.I);this.W=new yh;z(this.j,yh,3,this.W);this.u=new dh;z(this.j,dh,4,this.u);this.O=\nnew hh;z(this.j,hh,5,this.O);this.A=new zh;z(this.j,zh,6,this.A);this.M=new Ah;z(this.j,Ah,7,this.M);B(this.u,2,.5);B(this.u,3,.3);B(this.O,2,.5);B(this.A,2,.5);B(this.A,3,.3);B(this.M,2,.5);B(this.I,2,.5)}get baseOptions(){return y(this.j,R,1)}set baseOptions(a){z(this.j,R,1,a)}o(a){\"minFaceDetectionConfidence\"in a&&B(this.u,2,a.minFaceDetectionConfidence??.5);\"minFaceSuppressionThreshold\"in a&&B(this.u,3,a.minFaceSuppressionThreshold??.3);\"minFacePresenceConfidence\"in a&&B(this.O,2,a.minFacePresenceConfidence??\n.5);\"outputFaceBlendshapes\"in a&&(this.outputFaceBlendshapes=!!a.outputFaceBlendshapes);\"minPoseDetectionConfidence\"in a&&B(this.A,2,a.minPoseDetectionConfidence??.5);\"minPoseSuppressionThreshold\"in a&&B(this.A,3,a.minPoseSuppressionThreshold??.3);\"minPosePresenceConfidence\"in a&&B(this.M,2,a.minPosePresenceConfidence??.5);\"outputPoseSegmentationMasks\"in a&&(this.outputPoseSegmentationMasks=!!a.outputPoseSegmentationMasks);\"minHandLandmarksConfidence\"in a&&B(this.I,2,a.minHandLandmarksConfidence??\n.5);return this.l(a)}F(a,b,c){const d=typeof b!==\"function\"?b:{};this.D=typeof b===\"function\"?b:c;bk(this);Dj(this,a,d);return ck(this)}G(a,b,c,d){const e=typeof c!==\"function\"?c:{};this.D=typeof c===\"function\"?c:d;bk(this);Ej(this,a,e,b);return ck(this)}m(){var a=new yg;P(a,\"input_frames_image\");Q(a,\"pose_landmarks\");Q(a,\"pose_world_landmarks\");Q(a,\"face_landmarks\");Q(a,\"left_hand_landmarks\");Q(a,\"left_hand_world_landmarks\");Q(a,\"right_hand_landmarks\");Q(a,\"right_hand_world_landmarks\");const b=new Wf,\nc=new ag;Kd(c,1,\"type.googleapis.com/mediapipe.tasks.vision.holistic_landmarker.proto.HolisticLandmarkerGraphOptions\");$f(c,this.j.g());const d=new sg;Kd(d,2,\"mediapipe.tasks.vision.holistic_landmarker.HolisticLandmarkerGraph\");Hd(d,8,ag,c);M(d,\"IMAGE:input_frames_image\");O(d,\"POSE_LANDMARKS:pose_landmarks\");O(d,\"POSE_WORLD_LANDMARKS:pose_world_landmarks\");O(d,\"FACE_LANDMARKS:face_landmarks\");O(d,\"LEFT_HAND_LANDMARKS:left_hand_landmarks\");O(d,\"LEFT_HAND_WORLD_LANDMARKS:left_hand_world_landmarks\");\nO(d,\"RIGHT_HAND_LANDMARKS:right_hand_landmarks\");O(d,\"RIGHT_HAND_WORLD_LANDMARKS:right_hand_world_landmarks\");d.o(b);xg(a,d);zi(this,a);this.g.attachProtoListener(\"pose_landmarks\",(e,f)=>{dk(e,this.h.poseLandmarks);U(this,f)});this.g.attachEmptyPacketListener(\"pose_landmarks\",e=>{U(this,e)});this.g.attachProtoListener(\"pose_world_landmarks\",(e,f)=>{var g=this.h.poseWorldLandmarks;e=Kg(e);g.push(bi(e));U(this,f)});this.g.attachEmptyPacketListener(\"pose_world_landmarks\",e=>{U(this,e)});this.outputPoseSegmentationMasks&&\n(O(d,\"POSE_SEGMENTATION_MASK:pose_segmentation_mask\"),Ai(this,\"pose_segmentation_mask\"),this.g.Z(\"pose_segmentation_mask\",(e,f)=>{this.h.poseSegmentationMasks=[Fj(this,e,!0,!this.D)];U(this,f)}),this.g.attachEmptyPacketListener(\"pose_segmentation_mask\",e=>{this.h.poseSegmentationMasks=[];U(this,e)}));this.g.attachProtoListener(\"face_landmarks\",(e,f)=>{dk(e,this.h.faceLandmarks);U(this,f)});this.g.attachEmptyPacketListener(\"face_landmarks\",e=>{U(this,e)});this.outputFaceBlendshapes&&(Q(a,\"extra_blendshapes\"),\nO(d,\"FACE_BLENDSHAPES:extra_blendshapes\"),this.g.attachProtoListener(\"extra_blendshapes\",(e,f)=>{var g=this.h.faceBlendshapes;this.outputFaceBlendshapes&&(e=Eg(e),g.push(Xh(e.g()??[])));U(this,f)}),this.g.attachEmptyPacketListener(\"extra_blendshapes\",e=>{U(this,e)}));this.g.attachProtoListener(\"left_hand_landmarks\",(e,f)=>{dk(e,this.h.leftHandLandmarks);U(this,f)});this.g.attachEmptyPacketListener(\"left_hand_landmarks\",e=>{U(this,e)});this.g.attachProtoListener(\"left_hand_world_landmarks\",(e,f)=>\n{var g=this.h.leftHandWorldLandmarks;e=Kg(e);g.push(bi(e));U(this,f)});this.g.attachEmptyPacketListener(\"left_hand_world_landmarks\",e=>{U(this,e)});this.g.attachProtoListener(\"right_hand_landmarks\",(e,f)=>{dk(e,this.h.rightHandLandmarks);U(this,f)});this.g.attachEmptyPacketListener(\"right_hand_landmarks\",e=>{U(this,e)});this.g.attachProtoListener(\"right_hand_world_landmarks\",(e,f)=>{var g=this.h.rightHandWorldLandmarks;e=Kg(e);g.push(bi(e));U(this,f)});this.g.attachEmptyPacketListener(\"right_hand_world_landmarks\",\ne=>{U(this,e)});a=a.g();this.setGraph(new Uint8Array(a),!0)}};Z.prototype.detectForVideo=Z.prototype.G;Z.prototype.detect=Z.prototype.F;Z.prototype.setOptions=Z.prototype.o;Z.createFromModelPath=function(a,b){return X(Z,a,{baseOptions:{modelAssetPath:b}})};Z.createFromModelBuffer=function(a,b){return X(Z,a,{baseOptions:{modelAssetBuffer:b}})};Z.createFromOptions=function(a,b){return X(Z,a,b)};Z.HAND_CONNECTIONS=Tj;\nZ.POSE_CONNECTIONS=ak;Z.FACE_LANDMARKS_LIPS=Ij;\nZ.FACE_LANDMARKS_LEFT_EYE=Jj;Z.FACE_LANDMARKS_LEFT_EYEBROW=Kj;\nZ.FACE_LANDMARKS_LEFT_IRIS=Lj;Z.FACE_LANDMARKS_RIGHT_EYE=Mj;\nZ.FACE_LANDMARKS_RIGHT_EYEBROW=Nj;Z.FACE_LANDMARKS_RIGHT_IRIS=Oj;\nZ.FACE_LANDMARKS_FACE_OVAL=Pj;Z.FACE_LANDMARKS_CONTOURS=Qj;\nZ.FACE_LANDMARKS_TESSELATION=Rj;export {Z as HolisticLandmarker};var ek=class extends Gj{constructor(a,b){super(new Bj(a,b),\"input_image\",\"norm_rect\",!0);this.j={classifications:[]};a=this.h=new Eh;b=new R;z(a,R,1,b)}get baseOptions(){return y(this.h,R,1)}set baseOptions(a){z(this.h,R,1,a)}o(a){var b=this.h,c=Vh(a,y(this.h,Wg,2));z(b,Wg,2,c);return this.l(a)}sa(a,b){this.j={classifications:[]};Dj(this,a,b);return this.j}ta(a,b,c){this.j={classifications:[]};Ej(this,a,c,b);return this.j}m(){var a=new yg;P(a,\"input_image\");P(a,\"norm_rect\");Q(a,\"classifications\");\nconst b=new Wf;Oe(b,Fh,this.h);const c=new sg;Kd(c,2,\"mediapipe.tasks.vision.image_classifier.ImageClassifierGraph\");M(c,\"IMAGE:input_image\");M(c,\"NORM_RECT:norm_rect\");O(c,\"CLASSIFICATIONS:classifications\");c.o(b);xg(a,c);this.g.attachProtoListener(\"classifications\",(d,e)=>{this.j=Yh(Rg(d));U(this,e)});this.g.attachEmptyPacketListener(\"classifications\",d=>{U(this,d)});a=a.g();this.setGraph(new Uint8Array(a),!0)}};ek.prototype.classifyForVideo=ek.prototype.ta;ek.prototype.classify=ek.prototype.sa;\nek.prototype.setOptions=ek.prototype.o;ek.createFromModelPath=function(a,b){return X(ek,a,{baseOptions:{modelAssetPath:b}})};ek.createFromModelBuffer=function(a,b){return X(ek,a,{baseOptions:{modelAssetBuffer:b}})};ek.createFromOptions=function(a,b){return X(ek,a,b)};export {ek as ImageClassifier};var fk=class extends Gj{constructor(a,b){super(new Bj(a,b),\"image_in\",\"norm_rect\",!0);this.h=new Gh;this.embeddings={embeddings:[]};a=this.h;b=new R;z(a,R,1,b)}get baseOptions(){return y(this.h,R,1)}set baseOptions(a){z(this.h,R,1,a)}o(a){var b=this.h,c=y(this.h,Yg,2);c=c?c.clone():new Yg;a.l2Normalize!==void 0?v(c,1,$b(a.l2Normalize)):\"l2Normalize\"in a&&v(c,1);a.quantize!==void 0?v(c,2,$b(a.quantize)):\"quantize\"in a&&v(c,2);z(b,Yg,2,c);return this.l(a)}za(a,b){Dj(this,a,b);return this.embeddings}Aa(a,\nb,c){Ej(this,a,c,b);return this.embeddings}m(){var a=new yg;P(a,\"image_in\");P(a,\"norm_rect\");Q(a,\"embeddings_out\");const b=new Wf;Oe(b,Hh,this.h);const c=new sg;Kd(c,2,\"mediapipe.tasks.vision.image_embedder.ImageEmbedderGraph\");M(c,\"IMAGE:image_in\");M(c,\"NORM_RECT:norm_rect\");O(c,\"EMBEDDINGS:embeddings_out\");c.o(b);xg(a,c);this.g.attachProtoListener(\"embeddings_out\",(d,e)=>{d=Vg(d);this.embeddings=$h(d);U(this,e)});this.g.attachEmptyPacketListener(\"embeddings_out\",d=>{U(this,d)});a=a.g();this.setGraph(new Uint8Array(a),\n!0)}};fk.cosineSimilarity=function(a,b){if(a.floatEmbedding&&b.floatEmbedding)a=di(a.floatEmbedding,b.floatEmbedding);else if(a.quantizedEmbedding&&b.quantizedEmbedding)a=di(ci(a.quantizedEmbedding),ci(b.quantizedEmbedding));else throw Error(\"Cannot compute cosine similarity between quantized and float embeddings.\");return a};fk.prototype.embedForVideo=fk.prototype.Aa;fk.prototype.embed=fk.prototype.za;fk.prototype.setOptions=fk.prototype.o;fk.createFromModelPath=function(a,b){return X(fk,a,{baseOptions:{modelAssetPath:b}})};\nfk.createFromModelBuffer=function(a,b){return X(fk,a,{baseOptions:{modelAssetBuffer:b}})};fk.createFromOptions=function(a,b){return X(fk,a,b)};export {fk as ImageEmbedder};var gk=class{constructor(a,b,c){this.confidenceMasks=a;this.categoryMask=b;this.qualityScores=c}close(){this.confidenceMasks?.forEach(a=>{a.close()});this.categoryMask?.close()}};gk.prototype.close=gk.prototype.close;export {gk as ImageSegmenterResult};function hk(a){const b=wg(a.ca()).filter(c=>(t(u(c,1))??\"\").includes(\"mediapipe.tasks.TensorsToSegmentationCalculator\"));a.u=[];if(b.length>1)throw Error(\"The graph has more than one mediapipe.tasks.TensorsToSegmentationCalculator.\");b.length===1&&(y(b[0],Wf,7)?.j()?.g()??new Map).forEach((c,d)=>{a.u[Number(d)]=t(u(c,1))??\"\"})}function ik(a){a.categoryMask=void 0;a.confidenceMasks=void 0;a.qualityScores=void 0}\nfunction jk(a){try{const b=new gk(a.confidenceMasks,a.categoryMask,a.qualityScores);if(a.j)a.j(b);else return b}finally{Bi(a)}}\nvar kk=class extends Gj{constructor(a,b){super(new Bj(a,b),\"image_in\",\"norm_rect\",!1);this.u=[];this.outputCategoryMask=!1;this.outputConfidenceMasks=!0;this.h=new Kh;this.A=new Ih;z(this.h,Ih,3,this.A);a=this.h;b=new R;z(a,R,1,b)}get baseOptions(){return y(this.h,R,1)}set baseOptions(a){z(this.h,R,1,a)}o(a){a.displayNamesLocale!==void 0?v(this.h,2,qc(a.displayNamesLocale)):\"displayNamesLocale\"in a&&v(this.h,2);\"outputCategoryMask\"in a&&(this.outputCategoryMask=a.outputCategoryMask??!1);\"outputConfidenceMasks\"in\na&&(this.outputConfidenceMasks=a.outputConfidenceMasks??!0);return super.l(a)}L(){hk(this)}segment(a,b,c){const d=typeof b!==\"function\"?b:{};this.j=typeof b===\"function\"?b:c;ik(this);Dj(this,a,d);return jk(this)}La(a,b,c,d){const e=typeof c!==\"function\"?c:{};this.j=typeof c===\"function\"?c:d;ik(this);Ej(this,a,e,b);return jk(this)}Da(){return this.u}m(){var a=new yg;P(a,\"image_in\");P(a,\"norm_rect\");const b=new Wf;Oe(b,Lh,this.h);const c=new sg;Kd(c,2,\"mediapipe.tasks.vision.image_segmenter.ImageSegmenterGraph\");\nM(c,\"IMAGE:image_in\");M(c,\"NORM_RECT:norm_rect\");c.o(b);xg(a,c);zi(this,a);this.outputConfidenceMasks&&(Q(a,\"confidence_masks\"),O(c,\"CONFIDENCE_MASKS:confidence_masks\"),Ai(this,\"confidence_masks\"),this.g.aa(\"confidence_masks\",(d,e)=>{this.confidenceMasks=d.map(f=>Fj(this,f,!0,!this.j));U(this,e)}),this.g.attachEmptyPacketListener(\"confidence_masks\",d=>{this.confidenceMasks=[];U(this,d)}));this.outputCategoryMask&&(Q(a,\"category_mask\"),O(c,\"CATEGORY_MASK:category_mask\"),Ai(this,\"category_mask\"),this.g.Z(\"category_mask\",\n(d,e)=>{this.categoryMask=Fj(this,d,!1,!this.j);U(this,e)}),this.g.attachEmptyPacketListener(\"category_mask\",d=>{this.categoryMask=void 0;U(this,d)}));Q(a,\"quality_scores\");O(c,\"QUALITY_SCORES:quality_scores\");this.g.attachFloatVectorListener(\"quality_scores\",(d,e)=>{this.qualityScores=d;U(this,e)});this.g.attachEmptyPacketListener(\"quality_scores\",d=>{this.categoryMask=void 0;U(this,d)});a=a.g();this.setGraph(new Uint8Array(a),!0)}};kk.prototype.getLabels=kk.prototype.Da;\nkk.prototype.segmentForVideo=kk.prototype.La;kk.prototype.segment=kk.prototype.segment;kk.prototype.setOptions=kk.prototype.o;kk.createFromModelPath=function(a,b){return X(kk,a,{baseOptions:{modelAssetPath:b}})};kk.createFromModelBuffer=function(a,b){return X(kk,a,{baseOptions:{modelAssetBuffer:b}})};kk.createFromOptions=function(a,b){return X(kk,a,b)};export {kk as ImageSegmenter};var lk=class{constructor(a,b,c){this.confidenceMasks=a;this.categoryMask=b;this.qualityScores=c}close(){this.confidenceMasks?.forEach(a=>{a.close()});this.categoryMask?.close()}};lk.prototype.close=lk.prototype.close;export {lk as InteractiveSegmenterResult};var mk=class extends Gj{constructor(a,b){super(new Bj(a,b),\"image_in\",\"norm_rect_in\",!1);this.outputCategoryMask=!1;this.outputConfidenceMasks=!0;this.h=new Kh;this.u=new Ih;z(this.h,Ih,3,this.u);a=this.h;b=new R;z(a,R,1,b)}get baseOptions(){return y(this.h,R,1)}set baseOptions(a){z(this.h,R,1,a)}o(a){\"outputCategoryMask\"in a&&(this.outputCategoryMask=a.outputCategoryMask??!1);\"outputConfidenceMasks\"in a&&(this.outputConfidenceMasks=a.outputConfidenceMasks??!0);return super.l(a)}segment(a,b,c,d){const e=\ntypeof c!==\"function\"?c:{};this.j=typeof c===\"function\"?c:d;this.qualityScores=this.categoryMask=this.confidenceMasks=void 0;c=this.C+1;d=new Ph;if(b.keypoint&&b.scribble)throw Error(\"Cannot provide both keypoint and scribble.\");if(b.keypoint){var f=new Mh;ud(f,3,$b(!0),!1);ud(f,1,Yb(b.keypoint.x),0);ud(f,2,Yb(b.keypoint.y),0);Gd(d,1,Qh,f)}else if(b.scribble){const h=new Oh;for(f of b.scribble)b=new Mh,ud(b,3,$b(!0),!1),ud(b,1,Yb(f.x),0),ud(b,2,Yb(f.y),0),Hd(h,1,Mh,b);Gd(d,2,Qh,h)}else throw Error(\"Must provide either a keypoint or a scribble.\");\nthis.g.addProtoToStream(d.g(),\"mediapipe.tasks.vision.interactive_segmenter.proto.RegionOfInterest\",\"roi_in\",c);Dj(this,a,e);a:{try{const h=new lk(this.confidenceMasks,this.categoryMask,this.qualityScores);if(this.j)this.j(h);else{var g=h;break a}}finally{Bi(this)}g=void 0}return g}m(){var a=new yg;P(a,\"image_in\");P(a,\"roi_in\");P(a,\"norm_rect_in\");const b=new Wf;Oe(b,Lh,this.h);const c=new sg;Kd(c,2,\"mediapipe.tasks.vision.interactive_segmenter.InteractiveSegmenterGraphV2\");M(c,\"IMAGE:image_in\");\nM(c,\"ROI:roi_in\");M(c,\"NORM_RECT:norm_rect_in\");c.o(b);xg(a,c);zi(this,a);this.outputConfidenceMasks&&(Q(a,\"confidence_masks\"),O(c,\"CONFIDENCE_MASKS:confidence_masks\"),Ai(this,\"confidence_masks\"),this.g.aa(\"confidence_masks\",(d,e)=>{this.confidenceMasks=d.map(f=>Fj(this,f,!0,!this.j));U(this,e)}),this.g.attachEmptyPacketListener(\"confidence_masks\",d=>{this.confidenceMasks=[];U(this,d)}));this.outputCategoryMask&&(Q(a,\"category_mask\"),O(c,\"CATEGORY_MASK:category_mask\"),Ai(this,\"category_mask\"),this.g.Z(\"category_mask\",\n(d,e)=>{this.categoryMask=Fj(this,d,!1,!this.j);U(this,e)}),this.g.attachEmptyPacketListener(\"category_mask\",d=>{this.categoryMask=void 0;U(this,d)}));Q(a,\"quality_scores\");O(c,\"QUALITY_SCORES:quality_scores\");this.g.attachFloatVectorListener(\"quality_scores\",(d,e)=>{this.qualityScores=d;U(this,e)});this.g.attachEmptyPacketListener(\"quality_scores\",d=>{this.categoryMask=void 0;U(this,d)});a=a.g();this.setGraph(new Uint8Array(a),!0)}};mk.prototype.segment=mk.prototype.segment;\nmk.prototype.setOptions=mk.prototype.o;mk.createFromModelPath=function(a,b){return X(mk,a,{baseOptions:{modelAssetPath:b}})};mk.createFromModelBuffer=function(a,b){return X(mk,a,{baseOptions:{modelAssetBuffer:b}})};mk.createFromOptions=function(a,b){return X(mk,a,b)};export {mk as InteractiveSegmenter};var nk=class extends Gj{constructor(a,b){super(new Bj(a,b),\"input_frame_gpu\",\"norm_rect\",!1);this.j={detections:[]};a=this.h=new Rh;b=new R;z(a,R,1,b)}get baseOptions(){return y(this.h,R,1)}set baseOptions(a){z(this.h,R,1,a)}o(a){a.displayNamesLocale!==void 0?v(this.h,2,qc(a.displayNamesLocale)):\"displayNamesLocale\"in a&&v(this.h,2);a.maxResults!==void 0?Jd(this.h,3,a.maxResults):\"maxResults\"in a&&v(this.h,3);a.scoreThreshold!==void 0?B(this.h,4,a.scoreThreshold):\"scoreThreshold\"in a&&v(this.h,4);\na.categoryAllowlist!==void 0?Ld(this.h,5,a.categoryAllowlist):\"categoryAllowlist\"in a&&v(this.h,5);a.categoryDenylist!==void 0?Ld(this.h,6,a.categoryDenylist):\"categoryDenylist\"in a&&v(this.h,6);return this.l(a)}F(a,b){this.j={detections:[]};Dj(this,a,b);return this.j}G(a,b,c){this.j={detections:[]};Ej(this,a,c,b);return this.j}m(){var a=new yg;P(a,\"input_frame_gpu\");P(a,\"norm_rect\");Q(a,\"detections\");const b=new Wf;Oe(b,Sh,this.h);const c=new sg;Kd(c,2,\"mediapipe.tasks.vision.ObjectDetectorGraph\");\nM(c,\"IMAGE:input_frame_gpu\");M(c,\"NORM_RECT:norm_rect\");O(c,\"DETECTIONS:detections\");c.o(b);xg(a,c);this.g.attachProtoVectorListener(\"detections\",(d,e)=>{for(const f of d)d=Ig(f),this.j.detections.push(Zh(d));U(this,e)});this.g.attachEmptyPacketListener(\"detections\",d=>{U(this,d)});a=a.g();this.setGraph(new Uint8Array(a),!0)}};nk.prototype.detectForVideo=nk.prototype.G;nk.prototype.detect=nk.prototype.F;nk.prototype.setOptions=nk.prototype.o;\nnk.createFromModelPath=async function(a,b){return X(nk,a,{baseOptions:{modelAssetPath:b}})};nk.createFromModelBuffer=function(a,b){return X(nk,a,{baseOptions:{modelAssetBuffer:b}})};nk.createFromOptions=function(a,b){return X(nk,a,b)};export {nk as ObjectDetector};var ok=class{constructor(a,b,c){this.landmarks=a;this.worldLandmarks=b;this.segmentationMasks=c}close(){this.segmentationMasks?.forEach(a=>{a.close()})}};ok.prototype.close=ok.prototype.close;function pk(a){a.landmarks=[];a.worldLandmarks=[];a.segmentationMasks=void 0}function qk(a){try{const b=new ok(a.landmarks,a.worldLandmarks,a.segmentationMasks);if(a.u)a.u(b);else return b}finally{Bi(a)}}\nvar rk=class extends Gj{constructor(a,b){super(new Bj(a,b),\"image_in\",\"norm_rect\",!1);this.landmarks=[];this.worldLandmarks=[];this.outputSegmentationMasks=!1;a=this.h=new Th;b=new R;z(a,R,1,b);this.A=new Ah;z(this.h,Ah,3,this.A);this.j=new zh;z(this.h,zh,2,this.j);Jd(this.j,4,1);B(this.j,2,.5);B(this.A,2,.5);B(this.h,4,.5)}get baseOptions(){return y(this.h,R,1)}set baseOptions(a){z(this.h,R,1,a)}o(a){\"numPoses\"in a&&Jd(this.j,4,a.numPoses??1);\"minPoseDetectionConfidence\"in a&&B(this.j,2,a.minPoseDetectionConfidence??\n.5);\"minTrackingConfidence\"in a&&B(this.h,4,a.minTrackingConfidence??.5);\"minPosePresenceConfidence\"in a&&B(this.A,2,a.minPosePresenceConfidence??.5);\"outputSegmentationMasks\"in a&&(this.outputSegmentationMasks=a.outputSegmentationMasks??!1);return this.l(a)}F(a,b,c){const d=typeof b!==\"function\"?b:{};this.u=typeof b===\"function\"?b:c;pk(this);Dj(this,a,d);return qk(this)}G(a,b,c,d){const e=typeof c!==\"function\"?c:{};this.u=typeof c===\"function\"?c:d;pk(this);Ej(this,a,e,b);return qk(this)}m(){var a=\nnew yg;P(a,\"image_in\");P(a,\"norm_rect\");Q(a,\"normalized_landmarks\");Q(a,\"world_landmarks\");Q(a,\"segmentation_masks\");const b=new Wf;Oe(b,Uh,this.h);const c=new sg;Kd(c,2,\"mediapipe.tasks.vision.pose_landmarker.PoseLandmarkerGraph\");M(c,\"IMAGE:image_in\");M(c,\"NORM_RECT:norm_rect\");O(c,\"NORM_LANDMARKS:normalized_landmarks\");O(c,\"WORLD_LANDMARKS:world_landmarks\");c.o(b);xg(a,c);zi(this,a);this.g.attachProtoVectorListener(\"normalized_landmarks\",(d,e)=>{this.landmarks=[];for(const f of d)d=Mg(f),this.landmarks.push(ai(d));\nU(this,e)});this.g.attachEmptyPacketListener(\"normalized_landmarks\",d=>{this.landmarks=[];U(this,d)});this.g.attachProtoVectorListener(\"world_landmarks\",(d,e)=>{this.worldLandmarks=[];for(const f of d)d=Kg(f),this.worldLandmarks.push(bi(d));U(this,e)});this.g.attachEmptyPacketListener(\"world_landmarks\",d=>{this.worldLandmarks=[];U(this,d)});this.outputSegmentationMasks&&(O(c,\"SEGMENTATION_MASK:segmentation_masks\"),Ai(this,\"segmentation_masks\"),this.g.aa(\"segmentation_masks\",(d,e)=>{this.segmentationMasks=\nd.map(f=>Fj(this,f,!0,!this.u));U(this,e)}),this.g.attachEmptyPacketListener(\"segmentation_masks\",d=>{this.segmentationMasks=[];U(this,d)}));a=a.g();this.setGraph(new Uint8Array(a),!0)}};rk.prototype.detectForVideo=rk.prototype.G;rk.prototype.detect=rk.prototype.F;rk.prototype.setOptions=rk.prototype.o;rk.createFromModelPath=function(a,b){return X(rk,a,{baseOptions:{modelAssetPath:b}})};rk.createFromModelBuffer=function(a,b){return X(rk,a,{baseOptions:{modelAssetBuffer:b}})};\nrk.createFromOptions=function(a,b){return X(rk,a,b)};rk.POSE_CONNECTIONS=ak;export {rk as PoseLandmarker};\n"],"names":["aa","self","ba","a","b","c","d","e","length","da","Error","ea","String","fromCharCode","apply","fa","ha","ia","TextDecoder","ja","ka","TextEncoder","la","encode","Uint8Array","charCodeAt","f","subarray","ma","setTimeout","qa","na","oa","pa","navigator","userAgent","ra","sa","userAgentData","ta","ua","va","Math","floor","indexOf","charAt","g","test","ya","h","xa","split","concat","za","Aa","brands","btoa","Ba","Ca","_","Da","Ea","replace","atob","Fa","Ga","Ha","Ia","Ja","Ka","La","this","constructor","Na","Ma","__closure__error__context__984382","severity","Oa","Pa","Qa","BigInt","Ra","Symbol","Sa","for","Ta","Ua","Va","Wa","Xa","Ya","Za","$a","ab","bb","cb","value","configurable","writable","enumerable","db","Object","defineProperties","n","eb","fb","gb","p","hb","ib","freeze","jb","kb","lb","v","mb","nb","l","next","done","call","iterator","ob","pb","isNaN","qb","rb","sb","tb","ub","vb","wb","xb","Number","isSafeInteger","trim","Db","yb","zb","Ab","Bb","Cb","MIN_SAFE_INTEGER","toString","MAX_SAFE_INTEGER","Eb","prototype","slice","Fb","q","r","Gb","Hb","Ib","Jb","DataView","ArrayBuffer","setFloat32","getUint32","Kb","Lb","Mb","asUintN","Nb","asIntN","Ob","Pb","Qb","trunc","Rb","Array","Sb","Tb","Ub","Vb","isFinite","Wb","Xb","Yb","Zb","$b","isArray","ac","bc","cc","dc","ec","fc","hc","ic","substring","jc","kc","mc","pc","qc","t","rc","sc","uc","vc","Map","super","wc","get","set","size","delete","clear","has","entries","keys","values","forEach","xc","setPrototypeOf","yc","zc","J","Cc","K","S","Ac","V","from","Bc","Dc","Ec","Fc","Gc","Ic","toJSON","Kc","Lc","Mc","Nc","k","w","m","D","G","N","wa","push","Jc","Pc","Qc","Rc","join","Sc","Tc","Vc","Wc","Xc","max","Yc","Zc","$c","ad","bd","cd","dd","ed","fd","gd","hd","u","id","is","x","jd","kd","ld","md","nd","od","pd","qd","rd","ud","vd","wd","xd","yd","zd","defineProperty","Ad","Bd","Cd","y","Dd","Rf","Hc","Td","Ud","Sf","Ed","Fd","z","Gd","Hd","Id","A","Jd","B","Kd","Ld","isFrozen","Md","Nd","buffer","Od","byteOffset","byteLength","Pd","Qd","Rd","Sd","Vd","Wd","NaN","Infinity","pow","Xd","Yd","Zd","Y","j","ae","be","ce","pop","o","init","de","ee","fe","ge","he","ie","fatal","decode","je","ke","le","ne","me","oe","qe","pe","re","se","te","ue","we","xe","ye","end","ze","Ae","Be","De","Ee","Fe","Ge","He","Ie","Je","Ke","Le","Me","Ne","Oe","C","Pe","defaultValue","clone","Qe","Re","Se","Te","Ue","Ve","We","Xe","Ye","Ze","$e","af","bf","cf","T","Uc","df","ef","ff","gf","hf","jf","bind","kf","lf","mf","nf","of","pf","qf","rf","sf","tf","uf","vf","wf","nc","xf","yf","zf","Af","Bf","Cf","Df","E","Ef","Ff","Gf","Hf","If","Jf","oc","F","Kf","Lf","H","Mf","Nf","Of","I","Pf","Qf","Tf","Uf","parseInt","Vf","Wf","register","Xf","Yf","assign","Zf","ag","bg","dg","cg","globalThis","trustedTypes","gg","createPolicy","createHTML","createScript","createScriptURL","eg","hg","encodeURIComponent","ig","jg","kg","lg","mg","ng","og","pg","L","qg","M","O","sg","tg","ug","vg","xg","P","Q","yg","rg","zg","Ag","Bg","Cg","Dg","Eg","Fg","Gg","Hg","Ig","Jg","Kg","Lg","Mg","Ng","Og","Pg","Qg","Rg","Sg","Tg","Ug","Vg","Wg","Xg","Yg","Zg","$g","ah","bh","R","ch","dh","eh","fh","gh","hh","ih","jh","kh","lh","mh","nh","oh","ph","qh","rh","sh","th","uh","vh","wh","xh","yh","zh","Ah","Bh","Ch","Dh","Eh","Fh","Gh","Hh","Ih","td","Jh","sd","Kh","Lh","Mh","Nh","Oh","Ph","Qh","Rh","Sh","Th","Uh","Vh","displayNamesLocale","maxResults","scoreThreshold","categoryAllowlist","categoryDenylist","Wh","Xh","categories","map","index","score","categoryName","displayName","headIndex","headName","Yh","classifications","lc","timestampMs","Zh","keypoints","boundingBox","originX","originY","width","height","angle","label","ai","visibility","bi","ci","di","sqrt","ei","fi","async","gi","WebAssembly","instantiate","hi","wasmLoaderPath","wasmBinaryPath","ii","li","OffscreenCanvas","includes","ki","match","mi","importScripts","document","createElement","src","crossOrigin","Promise","addEventListener","body","appendChild","TypeError","ni","videoWidth","videoHeight","naturalWidth","naturalHeight","displayWidth","displayHeight","console","error","i","stringToNewUTF8","_free","oi","canvas","_bindTextureToStream","_bindTextureToCanvas","getContext","gpuOriginForWebTexturesIsBottomLeft","pixelStorei","UNPACK_FLIP_Y_WEBGL","texImage2D","TEXTURE_2D","RGBA","UNSIGNED_BYTE","pi","Uint32Array","_malloc","HEAPU32","qi","simpleListeners","ri","forVisionTasks","forTextTasks","forGenAiTasks","forAudioTasks","isSimdSupported","ui","ModuleFactory","Module","locateFile","mainScriptUrlOrBlob","ti","assetLoaderPath","endsWith","assetBinaryPath","xi","baseOptions","yi","message","U","zi","Ai","Bi","addBoolToStream","Ci","setAutoRenderToScreen","modelAssetBuffer","modelAssetPath","delegate","wi","fetch","then","ok","arrayBuffer","status","FS_unlink","FS_createDataFile","read","ji","resolve","ca","setGraph","attachErrorListener","finishProcessing","close","closeGraph","Di","Ei","bindVertexArray","deleteVertexArray","deleteBuffer","Fi","createShader","shaderSource","compileShader","getShaderParameter","COMPILE_STATUS","getShaderInfoLog","attachShader","Gi","createVertexArray","createBuffer","bindBuffer","ARRAY_BUFFER","enableVertexAttribArray","vertexAttribPointer","FLOAT","bufferData","Float32Array","STATIC_DRAW","Hi","Ii","useProgram","Ji","createTexture","bindTexture","texParameteri","TEXTURE_WRAP_S","CLAMP_TO_EDGE","TEXTURE_WRAP_T","TEXTURE_MIN_FILTER","LINEAR","TEXTURE_MAG_FILTER","Ki","createFramebuffer","bindFramebuffer","FRAMEBUFFER","framebufferTexture2D","COLOR_ATTACHMENT0","Li","Mi","createProgram","X","VERTEX_SHADER","W","FRAGMENT_SHADER","linkProgram","getProgramParameter","LINK_STATUS","getProgramInfoLog","getAttribLocation","deleteProgram","deleteShader","deleteFramebuffer","Pi","activeTexture","TEXTURE1","TEXTURE2","NEAREST","getUniformLocation","uniform1i","deleteTexture","Qi","Ri","find","WebGLTexture","Ti","Ui","Vi","Wi","platform","readPixels","RED","Xi","Yi","Zi","$i","getExtension","R32F","R16F","viewport","TEXTURE0","aj","round","clearColor","COLOR_BUFFER_BIT","drawArrays","TRIANGLE_FAN","getAsWebGLTexture","getAsFloat32Array","getAsUint8Array","hasWebGLTexture","hasFloat32Array","hasUint8Array","bj","color","lineWidth","radius","cj","fillColor","dj","Function","ej","min","fj","gj","jj","kj","hj","ImageData","Uint8ClampedArray","Ni","fill","Oi","mj","ij","oj","CanvasRenderingContext2D","OffscreenCanvasRenderingContext2D","save","fillStyle","strokeStyle","Path2D","arc","PI","stroke","restore","beginPath","start","to","moveTo","lineTo","drawImage","lj","nj","pj","ImageBitmap","qj","rj","sj","tj","uj","vj","wj","xj","transferToImageBitmap","drawConfidenceMask","drawCategoryMask","drawBoundingBox","drawConnectors","drawLandmarks","lerp","clamp","yj","data","getAsImageBitmap","getAsImageData","hasImageBitmap","hasImageData","zj","Aj","_registerModelResourcesGraphService","_addIntToInputStream","warn","setGraphFromString","HEAPU8","_changeBinaryGraph","_changeTextGraph","configureAudio","_configureAudio","setAutoResizeCanvas","_setAutoRenderToScreen","setGpuBufferVerticalFlip","_getGraphConfig","__graph_config__","errorListener","attachEmptyPacketListener","emptyPacketListeners","addAudioToStream","addAudioToStreamWithShape","HEAPF32","_addAudioToInputStream","addGpuBufferToStream","_addBoundTextureToStream","_addBoolToInputStream","addDoubleToStream","_addDoubleToInputStream","addFloatToStream","_addFloatToInputStream","addIntToStream","addUintToStream","_addUintToInputStream","addStringToStream","_addStringToInputStream","addStringRecordToStream","_addFlatHashMapToInputStream","addProtoToStream","_addProtoToInputStream","addEmptyPacketToStream","_addEmptyPacketToInputStream","addBoolVectorToStream","_allocateBoolVector","_addBoolVectorEntry","_addBoolVectorToInputStream","addDoubleVectorToStream","_allocateDoubleVector","_addDoubleVectorEntry","_addDoubleVectorToInputStream","addFloatVectorToStream","_allocateFloatVector","_addFloatVectorEntry","_addFloatVectorToInputStream","addIntVectorToStream","_allocateIntVector","_addIntVectorEntry","_addIntVectorToInputStream","addUintVectorToStream","_allocateUintVector","_addUintVectorEntry","_addUintVectorToInputStream","addStringVectorToStream","_allocateStringVector","_addStringVectorEntry","_addStringVectorToInputStream","addBoolToInputSidePacket","_addBoolToInputSidePacket","addDoubleToInputSidePacket","_addDoubleToInputSidePacket","addFloatToInputSidePacket","_addFloatToInputSidePacket","addIntToInputSidePacket","_addIntToInputSidePacket","addUintToInputSidePacket","_addUintToInputSidePacket","addStringToInputSidePacket","_addStringToInputSidePacket","addProtoToInputSidePacket","_addProtoToInputSidePacket","addBoolVectorToInputSidePacket","_addBoolVectorToInputSidePacket","addDoubleVectorToInputSidePacket","_addDoubleVectorToInputSidePacket","addFloatVectorToInputSidePacket","_addFloatVectorToInputSidePacket","addIntVectorToInputSidePacket","_addIntVectorToInputSidePacket","addUintVectorToInputSidePacket","_addUintVectorToInputSidePacket","addStringVectorToInputSidePacket","_addStringVectorToInputSidePacket","attachBoolListener","_attachBoolListener","attachBoolVectorListener","_attachBoolVectorListener","attachIntListener","_attachIntListener","attachIntVectorListener","_attachIntVectorListener","attachUintListener","_attachUintListener","attachUintVectorListener","_attachUintVectorListener","attachDoubleListener","_attachDoubleListener","attachDoubleVectorListener","_attachDoubleVectorListener","attachFloatListener","_attachFloatListener","attachFloatVectorListener","_attachFloatVectorListener","attachStringListener","_attachStringListener","attachStringVectorListener","_attachStringVectorListener","attachProtoListener","_attachProtoListener","attachProtoVectorListener","_attachProtoVectorListener","attachAudioListener","_attachAudioListener","_waitUntilIdle","_closeGraph","ga","_addBoundTextureAsImageToStream","Z","_attachImageListener","_attachImageVectorListener","Bj","vi","Cj","regionOfInterest","left","right","top","bottom","rotationDegrees","performance","now","Dj","Ej","Fj","Gj","runningMode","Hj","detections","minDetectionConfidence","minSuppressionThreshold","detectForVideo","detect","setOptions","createFromModelPath","createFromModelBuffer","createFromOptions","Ij","Jj","Kj","Lj","Mj","Nj","Oj","Pj","Qj","Rj","Sj","faceLandmarks","faceBlendshapes","facialTransformationMatrixes","outputFacialTransformationMatrixes","outputFaceBlendshapes","numFaces","minFaceDetectionConfidence","minTrackingConfidence","minFacePresenceConfidence","rows","columns","FACE_LANDMARKS_LIPS","FACE_LANDMARKS_LEFT_EYE","FACE_LANDMARKS_LEFT_EYEBROW","FACE_LANDMARKS_LEFT_IRIS","FACE_LANDMARKS_RIGHT_EYE","FACE_LANDMARKS_RIGHT_EYEBROW","FACE_LANDMARKS_RIGHT_IRIS","FACE_LANDMARKS_FACE_OVAL","FACE_LANDMARKS_CONTOURS","FACE_LANDMARKS_TESSELATION","Tj","Uj","gestures","landmarks","worldLandmarks","handedness","Vj","handednesses","Wj","Xj","numHands","minHandDetectionConfidence","minHandPresenceConfidence","cannedGesturesClassifierOptions","customGesturesClassifierOptions","Yj","recognizeForVideo","recognize","HAND_CONNECTIONS","Zj","ak","bk","poseLandmarks","poseWorldLandmarks","poseSegmentationMasks","leftHandLandmarks","leftHandWorldLandmarks","rightHandLandmarks","rightHandWorldLandmarks","ck","dk","outputPoseSegmentationMasks","minFaceSuppressionThreshold","minPoseDetectionConfidence","minPoseSuppressionThreshold","minPosePresenceConfidence","minHandLandmarksConfidence","$f","POSE_CONNECTIONS","ek","classifyForVideo","classify","fk","embeddings","l2Normalize","quantize","floatEmbedding","quantizedEmbedding","$h","cosineSimilarity","embedForVideo","embed","gk","confidenceMasks","categoryMask","qualityScores","hk","wg","filter","ik","jk","kk","outputCategoryMask","outputConfidenceMasks","segment","getLabels","segmentForVideo","lk","mk","keypoint","scribble","nk","segmentationMasks","pk","qk","rk","outputSegmentationMasks","numPoses"],"mappings":"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AC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IACpf,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,GAAG,CAAC,EAAE,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,GAAG,CAAC,EAAE,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC,IAClf,GAAG,CAAC,EAAE,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAClf,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IACpf,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,GAAG,CAAC,EAAE,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IACrf,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,GAAG,CAAC,EAAE,GAAG,CAAC,EAAE,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,EAAE,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,GAAG,CAAC,EAAE,IAAI,CAAC,GAAG,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IACjf,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,EAAE,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,GAAG,CAAC,GAAG,GAAG,CAAC,EAAE,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,KAChf,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,EAAE,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,GAAG,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IACnf,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAChf,CAAC,IAAI,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,GAAG,CAAC,EAAE,GAAG,CAAC,EAAE,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,EAAE,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IACnf,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IACpf,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,GAAG,CAAC,EAAE,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,EAAE,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,GAAG,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IACpf,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,GAAG,CAAC,EAAE,GAAG,CAAC,EAAE,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KACpf,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,GAAG,CAAC,EAAE,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IACrf,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KACpf,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,GAAG,CAAC,EAAE,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KACnf,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IACrf,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,GAAG,CAAC,EAAE,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,EAAE,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,GAAG,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,GAAG,CAAC,EAAE,KAAK,CAAC,IAAI,KACpf,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IACpf,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,EAAE,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,GAAG,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,GAAG,CAAC,EAAE,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KACnf,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IACrf,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,GAAG,CAAC,EAAE,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,EAAE,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,GAAG,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAClf,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KACpf,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IACpf,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,IACpf,CAAC,GAAG,IAAI,CAAC,IAAI,GAAG,CAAC,EAAE,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,EAAE,IAAI,CAAC,GAAG,GAAG,CAAC,EAAE,GAAG,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,GACnf,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,GAAG,CAAC,EAAE,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IACnf,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,KAChf,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,EAAE,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,GAAG,CAAC,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,GAAG,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IACrf,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,GACpf,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,GAAG,CAAC,EAAE,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,GAAG,CAAC,EAAE,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IACpf,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,GAAG,CAAC,EAAE,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KACjf,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,GAAG,CAAC,EAAE,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IACrf,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,GAAG,CAAC,EAAE,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IACnf,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,GAAG,GAAG,CAAC,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IACnf,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,GAAG,CAAC,EAAE,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,EAAE,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,GAAG,CAAC,IAAI,KAAK,CAAC,IACpf,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,GAAG,CAAC,EAAE,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,KAAK,CAAC,IAClf,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,GAAG,CAAC,EAAE,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAClf,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,GAAG,CAAC,EAAE,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAChf,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IACnf,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KACpf,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,EAAE,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,GAAG,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,EAAE,KAAK,CAAC,IAAI,GAAG,CAAC,EAAE,GAAG,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KACnf,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,GAAG,CAAC,EAAE,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IACjf,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAClf,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,GAAG,CAAC,EAAE,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KACjf,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,EAAE,KAAK,CAAC,IAAI,GAAG,CAAC,EAAE,GAAG,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KACjf,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,GAAG,CAAC,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KACnf,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,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"} \ No newline at end of file diff --git a/app/node_modules/@mediapipe/tasks-vision/vision_bundle.mjs b/app/node_modules/@mediapipe/tasks-vision/vision_bundle.mjs index c3b261cc..f684496f 100644 --- a/app/node_modules/@mediapipe/tasks-vision/vision_bundle.mjs +++ b/app/node_modules/@mediapipe/tasks-vision/vision_bundle.mjs @@ -1,2 +1,2 @@ -var t="undefined"!=typeof self?self:{};function e(e,n){t:{for(var r=["CLOSURE_FLAGS"],i=t,s=0;s>6|192;else{if(e>=55296&&e<=57343){if(e<=56319&&i=56320&&s<=57343){e=1024*(e-55296)+s-56320+65536,r[n++]=e>>18|240,r[n++]=e>>12&63|128,r[n++]=e>>6&63|128,r[n++]=63&e|128;continue}i--}e=65533}r[n++]=e>>12|224,r[n++]=e>>6&63|128}r[n++]=63&e|128}}t=n===r.length?r:r.subarray(0,n)}return t}var u,l=e(610401301,!1),f=e(653718497,e(1,!0)),d=e(660014094,!1);const p=t.navigator;function g(t){return!!l&&(!!u&&u.brands.some((({brand:e})=>e&&-1!=e.indexOf(t))))}function m(e){var n;return(n=t.navigator)&&(n=n.userAgent)||(n=""),-1!=n.indexOf(e)}function y(){return!!l&&(!!u&&u.brands.length>0)}function _(){return y()?g("Chromium"):(m("Chrome")||m("CriOS"))&&!(!y()&&m("Edge"))||m("Silk")}function v(t){return v[" "](t),t}u=p&&p.userAgentData||null,v[" "]=function(){};var E=!y()&&(m("Trident")||m("MSIE"));!m("Android")||_(),_(),m("Safari")&&(_()||!y()&&m("Coast")||!y()&&m("Opera")||!y()&&m("Edge")||(y()?g("Microsoft Edge"):m("Edg/"))||y()&&g("Opera"));var w={},T=null;function A(t){var e=t.length,n=3*e/4;n%3?n=Math.floor(n):-1!="=.".indexOf(t[e-1])&&(n=-1!="=.".indexOf(t[e-2])?n-2:n-1);var r=new Uint8Array(n),i=0;return function(t,e){function n(e){for(;r>4),64!=o&&(e(s<<4&240|o>>2),64!=a&&e(o<<6&192|a))}}(t,(function(t){r[i++]=t})),i!==n?r.subarray(0,i):r}function b(){if(!T){T={};for(var t="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789".split(""),e=["+/=","+/","-_=","-_.","-_"],n=0;n<5;n++){var r=t.concat(e[n].split(""));w[n]=r;for(var i=0;i>2];i=e[(3&i)<<4|s>>4],s=e[(15&s)<<2|o>>6],o=e[63&o],n[c++]=a+i+s+o}switch(a=0,o=r,t.length-h){case 2:o=e[(15&(a=t[h+1]))<<2]||r;case 1:t=t[h],n[c]=e[t>>2]+e[(3&t)<<4|a>>4]+o+r}return n.join("")}for(e="",n=0,r=t.length-10240;n{throw e}),0)}(e)}function V(t){return B(t=Error(t),"warning"),t}function X(){return"function"==typeof BigInt}function H(t){return Array.prototype.slice.call(t)}var W="function"==typeof Symbol&&"symbol"==typeof Symbol();function z(t){return"function"==typeof Symbol&&"symbol"==typeof Symbol()?Symbol():t}var K=z(),Y=z("0di"),$=z("2ex"),q=z("1oa"),J=z("0dg"),Z=W?(t,e)=>{t[K]|=e}:(t,e)=>{void 0!==t.G?t.G|=e:Object.defineProperties(t,{G:{value:e,configurable:!0,writable:!0,enumerable:!1}})},Q=W?(t,e)=>{t[K]&=~e}:(t,e)=>{void 0!==t.G&&(t.G&=~e)},tt=W?t=>0|t[K]:t=>0|t.G,et=W?t=>t[K]:t=>t.G,nt=W?(t,e)=>{t[K]=e}:(t,e)=>{void 0!==t.G?t.G=e:Object.defineProperties(t,{G:{value:e,configurable:!0,writable:!0,enumerable:!1}})};function rt(t){return Z(t,34),t}function it(t,e){nt(e,-14591&(0|t))}function st(t,e){nt(e,-14557&(34|t))}var ot,at={},ht={};function ct(t){return!(!t||"object"!=typeof t||t.La!==ht)}function ut(t){return null!==t&&"object"==typeof t&&!Array.isArray(t)&&t.constructor===Object}function lt(t,e,n){if(null!=t)if("string"==typeof t)t=t?new D(t,P):N();else if(t.constructor!==D)if(I(t))t=t.length?new D(n?t:new Uint8Array(t),P):N();else{if(!e)throw Error();t=void 0}return t}function ft(t){return!(!Array.isArray(t)||t.length)&&!!(1&tt(t))}const dt=[];function pt(t){if(2&t)throw Error()}nt(dt,55),ot=Object.freeze(dt);class gt{constructor(t,e,n){this.l=0,this.g=t,this.h=e,this.m=n}next(){if(this.l"number"==typeof t)),Tt=Et((t=>"string"==typeof t)),At=Et((t=>"boolean"==typeof t)),bt="function"==typeof t.BigInt&&"bigint"==typeof t.BigInt(0),kt=Et((t=>bt?t>=xt&&t<=Rt:"-"===t[0]?Ft(t,St):Ft(t,Lt)));const St=Number.MIN_SAFE_INTEGER.toString(),xt=bt?BigInt(Number.MIN_SAFE_INTEGER):void 0,Lt=Number.MAX_SAFE_INTEGER.toString(),Rt=bt?BigInt(Number.MAX_SAFE_INTEGER):void 0;function Ft(t,e){if(t.length>e.length)return!1;if(t.lengthi)return!1;if(r>>0;Pt=e,Ot=(t-e)/4294967296>>>0}function Nt(t){if(t<0){Ct(-t);const[e,n]=Xt(Pt,Ot);Pt=e>>>0,Ot=n>>>0}else Ct(t)}function Ut(t){const e=It||=new DataView(new ArrayBuffer(8));e.setFloat32(0,+t,!0),Ot=0,Pt=e.getUint32(0,!0)}function Dt(t,e){return 4294967296*e+(t>>>0)}function Bt(t,e){const n=2147483648&e;return n&&(e=~e>>>0,0==(t=1+~t>>>0)&&(e=e+1>>>0)),t=Dt(t,e),n?-t:t}function Gt(t,e){if(t>>>=0,(e>>>=0)<=2097151)var n=""+(4294967296*e+t);else X()?n=""+(BigInt(e)<>>24|e<<8))+6710656*(e=e>>16&65535),n+=8147497*e,e*=2,t>=1e7&&(n+=t/1e7>>>0,t%=1e7),n>=1e7&&(e+=n/1e7>>>0,n%=1e7),n=e+jt(n)+jt(t));return n}function jt(t){return t=String(t),"0000000".slice(t.length)+t}function Vt(t){if(t.length<16)Nt(Number(t));else if(X())t=BigInt(t),Pt=Number(t&BigInt(4294967295))>>>0,Ot=Number(t>>BigInt(32)&BigInt(4294967295));else{const e=+("-"===t[0]);Ot=Pt=0;const n=t.length;for(let r=e,i=(n-e)%6+e;i<=n;r=i,i+=6){const e=Number(t.slice(r,i));Ot*=1e6,Pt=1e6*Pt+e,Pt>=4294967296&&(Ot+=Math.trunc(Pt/4294967296),Ot>>>=0,Pt>>>=0)}if(e){const[t,e]=Xt(Pt,Ot);Pt=t,Ot=e}}}function Xt(t,e){return e=~e,t?t=1+~t:e+=1,[t,e]}function Ht(t){return null==t||"number"==typeof t?t:"NaN"===t||"Infinity"===t||"-Infinity"===t?Number(t):void 0}function Wt(t){return null==t||"boolean"==typeof t?t:"number"==typeof t?!!t:void 0}const zt=/^-?([1-9][0-9]*|0)(\.[0-9]+)?$/;function Kt(t){const e=typeof t;switch(e){case"bigint":return!0;case"number":return Number.isFinite(t)}return"string"===e&&zt.test(t)}function Yt(t){if(null==t)return t;if("string"==typeof t){if(!t)return;t=+t}return"number"==typeof t&&Number.isFinite(t)?0|t:void 0}function $t(t){if(null==t)return t;if("string"==typeof t){if(!t)return;t=+t}return"number"==typeof t&&Number.isFinite(t)?t>>>0:void 0}function qt(t){return"-"!==t[0]&&(t.length<20||20===t.length&&Number(t.substring(0,6))<184467)}function Jt(t){return t=Math.trunc(t),Number.isSafeInteger(t)||(Nt(t),t=Bt(Pt,Ot)),t}function Zt(t){var e=Math.trunc(Number(t));if(Number.isSafeInteger(e))return String(e);if(-1!==(e=t.indexOf("."))&&(t=t.substring(0,e)),!("-"===t[0]?t.length<20||20===t.length&&Number(t.substring(0,7))>-922337:t.length<19||19===t.length&&Number(t.substring(0,6))<922337))if(Vt(t),t=Pt,2147483648&(e=Ot))if(X())t=""+(BigInt(0|e)<>>0));else{const[n,r]=Xt(t,e);t="-"+Gt(n,r)}else t=Gt(t,e);return t}function Qt(t){return null==t?t:"bigint"==typeof t?(kt(t)?t=Number(t):(t=BigInt.asIntN(64,t),t=kt(t)?Number(t):String(t)),t):Kt(t)?"number"==typeof t?Jt(t):Zt(t):void 0}function te(t){if(null==t)return t;var e=typeof t;if("bigint"===e)return String(BigInt.asUintN(64,t));if(Kt(t)){if("string"===e)return e=Math.trunc(Number(t)),Number.isSafeInteger(e)&&e>=0?t=String(e):(-1!==(e=t.indexOf("."))&&(t=t.substring(0,e)),qt(t)||(Vt(t),t=Gt(Pt,Ot))),t;if("number"===e)return(t=Math.trunc(t))>=0&&Number.isSafeInteger(t)?t:function(t){if(t<0){Nt(t);const e=Gt(Pt,Ot);return t=Number(e),Number.isSafeInteger(t)?t:e}return qt(String(t))?t:(Nt(t),Dt(Pt,Ot))}(t)}}function ee(t){if("string"!=typeof t)throw Error();return t}function ne(t){if(null!=t&&"string"!=typeof t)throw Error();return t}function re(t){return null==t||"string"==typeof t?t:void 0}function ie(t,e,n,r){if(null!=t&&"object"==typeof t&&t.Y===at)return t;if(!Array.isArray(t))return n?2&r?(t=e[Y])?e=t:(rt((t=new e).u),e=e[Y]=t):e=new e:e=void 0,e;let i=n=tt(t);return 0===i&&(i|=32&r),i|=2&r,i!==n&&nt(t,i),new e(t)}function se(t,e,n){if(e)t:{if(!Kt(e=t))throw V("int64");switch(typeof e){case"string":e=Zt(e);break t;case"bigint":if(t=e=BigInt.asIntN(64,e),Tt(t)){if(!/^\s*(?:-?[1-9]\d*|0)?\s*$/.test(t))throw Error(String(t))}else if(wt(t)&&!Number.isSafeInteger(t))throw Error(String(t));e=bt?BigInt(e):At(e)?e?"1":"0":Tt(e)?e.trim()||"0":String(e);break t;default:e=Jt(e)}}else e=Qt(t);return"string"==typeof(n=null==(t=e)?n?0:void 0:t)&&(e=+n,Number.isSafeInteger(e))?e:n}function oe(t){if(void 0===ce&&(ce="function"==typeof Proxy?ye(Proxy):null),!ce||!me())return t;let e=ae?.get(t);return e||(Math.random()>.01?t:(function(t){if(void 0===le){const t=new ce([],{});le=1===Array.prototype.concat.call([],t).length}le&&"function"==typeof Symbol&&Symbol.isConcatSpreadable&&(t[Symbol.isConcatSpreadable]=!0)}(t),e=new ce(t,{set:(t,e,n)=>(j(),t[e]=n,!0)}),function(t,e){(ae||=new ue).set(t,e),(he||=new ue).set(e,t)}(t,e),e))}let ae,he,ce,ue,le,fe,de,pe,ge;function me(){return void 0===ue&&(ue="function"==typeof WeakMap?ye(WeakMap):null),ue}function ye(t){try{return-1!==t.toString().indexOf("[native code]")?t:null}catch{return null}}function _e(t,e,n){if(f&&me()){if(fe?.get(e)?.get(t)){if(n)return}else if(Math.random()>.01)return;var r=t.length;n={length:r};for(var i=0;i=1024)throw Error("pvtlmt");r=-33521665&r|(1023&e)<<15;break t}}if(e){if((e=Math.max(e,i-(+!!(512&r)-1)))>1024)throw Error("spvt");r=-33521665&r|(1023&e)<<15}}}return nt(t,r),t}const ke={};let Se=function(){try{return v(new class extends Map{constructor(){super()}}),!1}catch{return!0}}();class xe{constructor(){this.g=new Map}get(t){return this.g.get(t)}set(t,e){return this.g.set(t,e),this.size=this.g.size,this}delete(t){return t=this.g.delete(t),this.size=this.g.size,t}clear(){this.g.clear(),this.size=this.g.size}has(t){return this.g.has(t)}entries(){return this.g.entries()}keys(){return this.g.keys()}values(){return this.g.values()}forEach(t,e){return this.g.forEach(t,e)}[Symbol.iterator](){return this.entries()}}const Le=Se?(Object.setPrototypeOf(xe.prototype,Map.prototype),Object.defineProperties(xe.prototype,{size:{value:0,configurable:!0,enumerable:!0,writable:!0}}),xe):class extends Map{constructor(){super()}};function Re(t){return t}function Fe(t){if(2&t.M)throw Error("Cannot mutate an immutable Map")}var Me=class extends Le{constructor(t,e,n=Re,r=Re){super();let i=tt(t);i|=64,nt(t,i),this.M=i,this.U=e,this.T=n,this.aa=this.U?Ie:r;for(let s=0;s{t.call(e,this.get(r),r,this)}))}set(t,e){return Fe(this),null==(t=this.T(t,!0,!1))?this:null==e?(super.delete(t),this):super.set(t,this.aa(e,!0,!0,this.U,!1,this.M))}Qa(t){const e=this.T(t[0],!1,!0);t=t[1],t=this.U?void 0===t?null:t:this.aa(t,!1,!0,void 0,!1,this.M),super.set(e,t)}has(t){return super.has(this.T(t,!1,!1))}get(t){t=this.T(t,!1,!1);const e=super.get(t);if(void 0!==e){var n=this.U;return n?((n=this.aa(e,!1,!0,n,this.va,this.M))!==e&&super.set(t,n),n):e}}oa(){return Array.from(super.keys())}Ka(){return super.keys()}[Symbol.iterator](){return this.entries()}};function Ie(t,e,n,r,i,s){return t=ie(t,r,n,s),i&&(t=He(t)),t}function Pe(t){return t}function Oe(t){return[t,this.get(t)]}let Ce;function Ne(){return Ce||=new Me(rt([]),void 0,void 0,void 0,ke)}function Ue(t,e,n,r,i){if(null!=t){if(Array.isArray(t))t=ft(t)?void 0:i&&2&tt(t)?t:De(t,e,n,void 0!==r,i);else if(ut(t)){const s={};for(let o in t)s[o]=Ue(t[o],e,n,r,i);t=s}else t=e(t,r);return t}}function De(t,e,n,r,i){const s=r||n?tt(t):0;r=r?!!(32&s):void 0;const o=H(t);for(let t=0;tje(t,i,r))),Z(t,32|(n?2:0)),t}function He(t){const e=t.u,n=et(e);return 2&n?Ve(t,e,n,!1):t}function We(t,e,n,r){return!(4&e)||null!=n&&(!r&&0===n&&(4096&e||8192&e)&&(t.constructor[J]=1+(0|t.constructor[J]))<5&&j(),0!==n&&!(n&e))}function ze(t,e){return Ye(t=t.u,et(t),e)}function Ke(t,e,n,r){if(!((e=r+(+!!(512&e)-1))<0||e>=t.length||e>=n))return t[e]}function Ye(t,e,n,r){if(-1===n)return null;const i=e>>15&1023||536870912;if(!(n>=i)){var s=t.length;return r&&256&e&&null!=(r=t[s-1][n])?(Ke(t,e,i,n)&&null!=$&&((e=(t=G??={})[$]||0)>=4||(t[$]=e+1,j())),r):Ke(t,e,i,n)}return 256&e?t[t.length-1][n]:void 0}function $e(t,e,n){const r=t.u;let i=et(r);return pt(i),qe(r,i,e,n),t}function qe(t,e,n,r){const i=e>>15&1023||536870912;if(n>=i){let s,o=e;if(256&e)s=t[t.length-1];else{if(null==r)return o;s=t[i+(+!!(512&e)-1)]={},o|=256}return s[n]=r,n ${t}`)}function On(t){if("string"==typeof t)return{buffer:M(t),O:!1};if(Array.isArray(t))return{buffer:new Uint8Array(t),O:!1};if(t.constructor===Uint8Array)return{buffer:t,O:!1};if(t.constructor===ArrayBuffer)return{buffer:new Uint8Array(t),O:!1};if(t.constructor===D)return{buffer:U(t)||new Uint8Array(0),O:!0};if(t instanceof Uint8Array)return{buffer:new Uint8Array(t.buffer,t.byteOffset,t.byteLength),O:!1};throw Error("Type not convertible to a Uint8Array, expected a Uint8Array, an ArrayBuffer, a base64 encoded string, a ByteString or an Array of numbers")}function Cn(t,e){let n,r=0,i=0,s=0;const o=t.h;let a=t.g;do{n=o[a++],r|=(127&n)<32&&(i|=(127&n)>>4),s=3;s<32&&128&n;s+=7)n=o[a++],i|=(127&n)<>>0,i>>>0);throw In()}function Nn(t){let e=0,n=t.g;const r=n+10,i=t.h;for(;n>>0}function Bn(t){var e=t.h;const n=t.g,r=e[n],i=e[n+1],s=e[n+2];return e=e[n+3],Xn(t,t.g+4),(r<<0|i<<8|s<<16|e<<24)>>>0}function Gn(t){var e=Bn(t);t=2*(e>>31)+1;const n=e>>>23&255;return e&=8388607,255==n?e?NaN:t*(1/0):0==n?1401298464324817e-60*t*e:t*Math.pow(2,n-150)*(e+8388608)}function jn(t){return Un(t)}function Vn(t,e,{ea:n=!1}={}){t.ea=n,e&&(e=On(e),t.h=e.buffer,t.m=e.O,t.j=0,t.l=t.h.length,t.g=t.j)}function Xn(t,e){if(t.g=e,e>t.l)throw Pn(t.l,e)}function Hn(t,e){if(e<0)throw Error(`Tried to read a negative byte length: ${e}`);const n=t.g,r=n+e;if(r>t.l)throw Pn(e,t.l-n);return t.g=r,n}function Wn(t,e){if(0==e)return N();var n=Hn(t,e);return t.ea&&t.m?n=t.h.subarray(n,n+e):(t=t.h,n=n===(e=n+e)?new Uint8Array(0):Mt?t.slice(n,e):new Uint8Array(t.subarray(n,e))),0==n.length?N():new D(n,P)}Me.prototype.toJSON=void 0,Me.prototype.La=ht;var zn=[];function Kn(t){var e=t.g;if(e.g==e.l)return!1;t.l=t.g.g;var n=Dn(t.g);if(e=n>>>3,!((n&=7)>=0&&n<=5))throw Mn(n,t.l);if(e<1)throw Error(`Invalid field number: ${e} (at position ${t.l})`);return t.m=e,t.h=n,!0}function Yn(t){switch(t.h){case 0:0!=t.h?Yn(t):Nn(t.g);break;case 1:Xn(t=t.g,t.g+8);break;case 2:if(2!=t.h)Yn(t);else{var e=Dn(t.g);Xn(t=t.g,t.g+e)}break;case 5:Xn(t=t.g,t.g+4);break;case 3:for(e=t.m;;){if(!Kn(t))throw Error("Unmatched start-group tag: stream EOF");if(4==t.h){if(t.m!=e)throw Error("Unmatched end-group tag");break}Yn(t)}break;default:throw Mn(t.h,t.l)}}function $n(t,e,n){const r=t.g.l,i=Dn(t.g),s=t.g.g+i;let o=s-r;if(o<=0&&(t.g.l=s,n(e,t,void 0,void 0,void 0),o=s-t.g.g),o)throw Error(`Message parsing ended unexpectedly. Expected to read ${i} bytes, instead read ${i-o} bytes, either the data ended unexpectedly or the message misreported its own length`);return t.g.g=s,t.g.l=r,e}function qn(t){var e=Dn(t.g),a=Hn(t=t.g,e);if(t=t.h,o){var h,c=t;(h=s)||(h=s=new TextDecoder("utf-8",{fatal:!0})),e=a+e,c=0===a&&e===c.length?c:c.subarray(a,e);try{var u=h.decode(c)}catch(t){if(void 0===i){try{h.decode(new Uint8Array([128]))}catch(t){}try{h.decode(new Uint8Array([97])),i=!0}catch(t){i=!1}}throw!i&&(s=void 0),t}}else{e=(u=a)+e,a=[];let i,s=null;for(;u=e?n():(i=t[u++],l<194||128!=(192&i)?(u--,n()):a.push((31&l)<<6|63&i)):l<240?u>=e-1?n():(i=t[u++],128!=(192&i)||224===l&&i<160||237===l&&i>=160||128!=(192&(h=t[u++]))?(u--,n()):a.push((15&l)<<12|(63&i)<<6|63&h)):l<=244?u>=e-2?n():(i=t[u++],128!=(192&i)||i-144+(l<<28)>>30!=0||128!=(192&(h=t[u++]))||128!=(192&(c=t[u++]))?(u--,n()):(l=(7&l)<<18|(63&i)<<12|(63&h)<<6|63&c,l-=65536,a.push(55296+(l>>10&1023),56320+(1023&l)))):n(),a.length>=8192&&(s=r(s,a),a.length=0)}u=r(s,a)}return u}function Jn(t){const e=Dn(t.g);return Wn(t.g,e)}function Zn(t,e,n){var r=Dn(t.g);for(r=t.g.g+r;t.g.g0&&(null==(s=i[c-1])||ft(s)||ct(s)&&0===s.size);c--)var h=!0;(i!==t||o||h)&&(e?(h||o||a)&&(i.length=c):i=Array.prototype.slice.call(i,0,c),a&&i.push(a)),h=i}else h=t}return h}function ir(t){return t?/^\d+$/.test(t)?(Vt(t),new sr(Pt,Ot)):null:or||=new sr(0,0)}nr.prototype.Y=at,nr.prototype.toString=function(){try{return tr=!0,rr(this).toString()}finally{tr=!1}};var sr=class{constructor(t,e){this.h=t>>>0,this.g=e>>>0}};let or;function ar(t){return t?/^-?\d+$/.test(t)?(Vt(t),new hr(Pt,Ot)):null:cr||=new hr(0,0)}var hr=class{constructor(t,e){this.h=t>>>0,this.g=e>>>0}};let cr;function ur(t,e,n){for(;n>0||e>127;)t.g.push(127&e|128),e=(e>>>7|n<<25)>>>0,n>>>=7;t.g.push(e)}function lr(t,e){for(;e>127;)t.g.push(127&e|128),e>>>=7;t.g.push(e)}function fr(t,e){if(e>=0)lr(t,e);else{for(let n=0;n<9;n++)t.g.push(127&e|128),e>>=7;t.g.push(1)}}function dr(t,e){t.g.push(e>>>0&255),t.g.push(e>>>8&255),t.g.push(e>>>16&255),t.g.push(e>>>24&255)}function pr(t,e){0!==e.length&&(t.l.push(e),t.h+=e.length)}function gr(t,e,n){lr(t.g,8*e+n)}function mr(t,e){return gr(t,e,2),e=t.g.end(),pr(t,e),e.push(t.h),e}function yr(t,e){var n=e.pop();for(n=t.h+t.g.length()-n;n>127;)e.push(127&n|128),n>>>=7,t.h++;e.push(n),t.h++}function _r(t,e,n){gr(t,e,2),lr(t.g,n.length),pr(t,t.g.end()),pr(t,n)}function vr(t,e,n,r){null!=n&&(e=mr(t,e),r(n,t),yr(t,e))}class Er{constructor(t,e,n){this.g=t,this.h=e,this.qa=n}}function wr(t){return Array.isArray(t)?t[0]instanceof Er?t:[gi,t]:[t,void 0]}function Tr(t,e){if(Array.isArray(e)){var n=tt(e);if(4&n)return e;for(var r=0,i=0;rr(t,e,n):(t,e)=>{for(;Kn(e)&&4!=e.h;){var r=e.m;let o=n[r];const a=!o;let h=!1;if(!o){var i=n.X;if(i){var s=i[r];s&&(h=i.P?.[r],(!d||h)&&(i=kr(s))&&(o=n[r]=i))}}o&&o(e,t,r)||(r=(i=e).l,Yn(i),i.ja?i=void 0:(s=i.g.g-r,i.g.g=r,i=Wn(i.g,s)),r=t,i&&(mt||=Symbol(),(s=r[mt])?s.push(i):r[mt]=[i])),a&&o&&!h&&Wr++<5&&j()}},t[Ar]=e}return e}function kr(t){const e=(t=wr(t))[0].g;if(t=t[1]){const n=br(t),r=Ur(t).g;return(t,i,s)=>e(t,i,s,r,n)}return e}function Sr(t,e,n){t[e]=n}function xr(t,e,n,r){var i=Sr;e.g=function(t){switch(typeof t){case"boolean":return pe||=[0,void 0,!0];case"number":return t>0?void 0:0===t?ge||=[0,void 0]:[-t,void 0];case"string":return[0,t];case"object":return t}}(t[0]);let s=0;var o=t[++s];o&&o.constructor===Object&&(e.X=o,"function"==typeof(o=t[++s])&&(e.h=o,e.l=t[++s],o=t[++s]));const a={};for(;Array.isArray(o)&&"number"==typeof o[0]&&o[0]>0;){for(var h=0;hBr(t,e,n),t[Lr]=e}return e}const Fr=Symbol();function Mr(t){return t.h}function Ir(t,e){let n,r;const i=t.h;return(t,s,o)=>i(t,s,o,r||=Pr(e).g,n||=Rr(e))}function Pr(t){let e=t[Fr];return e||(e=xr(t,t[Fr]={},Mr,Ir))}const Or=Symbol();function Cr(t,e){const n=t.g;return e?(t,r,i)=>n(t,r,i,e):n}function Nr(t,e,n){const r=t.g;let i,s;return(t,o,a)=>r(t,o,a,s||=Ur(e).g,i||=br(e),n)}function Ur(t){let e=t[Or];return e||(e=xr(t,t[Or]={},Cr,Nr))}function Dr(t,e){var n=t[e];if(n)return n;if(n=t.X){var r=n[e];if(r){var i=(r=wr(r))[0].h;if(r=r[1],n=n.P?.[e],!d||n){if(r){const e=Rr(r),s=Pr(r).g;n=(n=t.l)?n(s,e):(t,n,r)=>i(t,n,r,s,e)}else n=i;return t[e]=n}}}}function Br(t,e,n){for(var r=et(t),i=+!!(512&r)-1,s=t.length,o=512&r?1:0,a=s+(256&r?-1:0);o{vr(t,n,Ae([s,e],r),i)}));else if(Array.isArray(e))for(let s=0;s>BigInt(32))),ur(t.g,n.h,n.g);break;default:n=ar(e),ur(t.g,n.h,n.g)}}}function Kr(t,e,n){null!=(e=Yt(e))&&null!=e&&(gr(t,n,0),fr(t.g,e))}function Yr(t,e,n){null!=(e=Wt(e))&&(gr(t,n,0),t.g.g.push(e?1:0))}function $r(t,e,n){null!=(e=re(e))&&_r(t,n,c(e))}function qr(t,e,n,r,i){e instanceof nr?(we(e),e=e.u):e=Array.isArray(e)?Ae(e,r):void 0,vr(t,n,e,i)}function Jr(t,e,n){null!=(e=null==e||"string"==typeof e||I(e)||e instanceof D?e:void 0)&&_r(t,n,On(e).buffer)}function Zr(t,e,n){return(5===t.h||2===t.h)&&(e=Je(e,et(e),n,2,!1),2==t.h?Zn(t,Gn,e):e.push(Gn(t.g)),!0)}var Qr,ti=Gr((function(t,e,n){if(1!==t.h)return!1;var r=t.g;t=Bn(r);const i=Bn(r);r=2*(i>>31)+1;const s=i>>>20&2047;return t=4294967296*(1048575&i)+t,Xr(e,n,2047==s?t?NaN:r*(1/0):0==s?5e-324*r*t:r*Math.pow(2,s-1075)*(t+4503599627370496)),!0}),(function(t,e,n){null!=(e=Ht(e))&&(gr(t,n,1),t=t.g,(n=It||=new DataView(new ArrayBuffer(8))).setFloat64(0,+e,!0),Pt=n.getUint32(0,!0),Ot=n.getUint32(4,!0),dr(t,Pt),dr(t,Ot))})),ei=Gr((function(t,e,n){return 5===t.h&&(Xr(e,n,Gn(t.g)),!0)}),(function(t,e,n){null!=(e=Ht(e))&&(gr(t,n,5),t=t.g,Ut(e),dr(t,Pt))})),ni=jr(Zr,(function(t,e,n){if(null!=(e=Tr(Ht,e)))for(let o=0;o>BigInt(32))),ur(t.g,n.h,n.g);break;default:n=ir(e),ur(t.g,n.h,n.g)}}})),ai=Gr((function(t,e,n){return 0===t.h&&(Xr(e,n,Un(t.g)),!0)}),Kr),hi=jr((function(t,e,n){return(0===t.h||2===t.h)&&(e=Je(e,et(e),n,2,!1),2==t.h?Zn(t,Un,e):e.push(Un(t.g)),!0)}),(function(t,e,n){if(null!=(e=Tr(Yt,e))&&e.length){n=mr(t,n);for(let n=0;n{if(Qn.length){const t=Qn.pop();t.o(r),Vn(t.g,n,r),n=t}else n=new class{constructor(t,e){if(zn.length){const n=zn.pop();Vn(n,t,e),t=n}else t=new class{constructor(t,e){this.h=null,this.m=!1,this.g=this.l=this.j=0,Vn(this,t,e)}clear(){this.h=null,this.m=!1,this.g=this.l=this.j=0,this.ea=!1}}(t,e);this.g=t,this.l=this.g.g,this.h=this.m=-1,this.o(e)}o({ja:t=!1}={}){this.ja=t}}(n,r);try{const r=new t,s=r.u;br(e)(s,n);var i=r}finally{n.g.clear(),n.m=-1,n.h=-1,Qn.length<100&&Qn.push(n)}return i}}function bi(t){return function(){we(this);const e=new class{constructor(){this.l=[],this.h=0,this.g=new class{constructor(){this.g=[]}length(){return this.g.length}end(){const t=this.g;return this.g=[],t}}}};Br(this.u,e,Pr(t)),pr(e,e.g.end());const n=new Uint8Array(e.h),r=e.l,i=r.length;let s=0;for(let t=0;t({index:Tn(An(t,1),0)??-1,score:bn(t,2)??0,categoryName:kn(t,3)??"",displayName:kn(t,4)??""}))),headIndex:e,headName:n}}function Lo(t){var e=en(t,3,Ht,tn()),n=en(t,2,Yt,tn()),r=en(t,1,re,tn()),i=en(t,9,re,tn());const s={categories:[],keypoints:[]};for(let t=0;tt>127?t-256:t))}function Io(t,e){if(t.length!==e.length)throw Error(`Cannot compute cosine similarity between embeddings of different sizes (${t.length} vs. ${e.length}).`);let n=0,r=0,i=0;for(let s=0;s=1&&Number(t[1])>=17))}async function Bo(t){if("function"!=typeof importScripts){const e=document.createElement("script");return e.src=t.toString(),e.crossOrigin="anonymous",new Promise(((t,n)=>{e.addEventListener("load",(()=>{t()}),!1),e.addEventListener("error",(t=>{n(t)}),!1),document.body.appendChild(e)}))}importScripts(t.toString())}function Go(t){return void 0!==t.videoWidth?[t.videoWidth,t.videoHeight]:void 0!==t.naturalWidth?[t.naturalWidth,t.naturalHeight]:void 0!==t.displayWidth?[t.displayWidth,t.displayHeight]:[t.width,t.height]}function jo(t,e,n){t.m||console.error("No wasm multistream support detected: ensure dependency inclusion of :gl_graph_runner_internal_multi_input target"),n(e=t.i.stringToNewUTF8(e)),t.i._free(e)}function Vo(t,e,n){if(!t.i.canvas)throw Error("No OpenGL canvas configured.");if(n?t.i._bindTextureToStream(n):t.i._bindTextureToCanvas(),!(n=t.i.canvas.getContext("webgl2")||t.i.canvas.getContext("webgl")))throw Error("Failed to obtain WebGL context from the provided canvas. `getContext()` should only be invoked with `webgl` or `webgl2`.");t.i.gpuOriginForWebTexturesIsBottomLeft&&n.pixelStorei(n.UNPACK_FLIP_Y_WEBGL,!0),n.texImage2D(n.TEXTURE_2D,0,n.RGBA,n.RGBA,n.UNSIGNED_BYTE,e),t.i.gpuOriginForWebTexturesIsBottomLeft&&n.pixelStorei(n.UNPACK_FLIP_Y_WEBGL,!1);const[r,i]=Go(e);return!t.l||r===t.i.canvas.width&&i===t.i.canvas.height||(t.i.canvas.width=r,t.i.canvas.height=i),[r,i]}function Xo(t,e,n){t.m||console.error("No wasm multistream support detected: ensure dependency inclusion of :gl_graph_runner_internal_multi_input target");const r=new Uint32Array(e.length);for(let n=0;n>2),n(e);for(const e of r)t.i._free(e);t.i._free(e)}function Ho(t,e,n){t.i.simpleListeners=t.i.simpleListeners||{},t.i.simpleListeners[e]=n}function Wo(t,e,n){let r=[];t.i.simpleListeners=t.i.simpleListeners||{},t.i.simpleListeners[e]=(t,e,i)=>{e?(n(r,i),r=[]):r.push(t)}}Uo.forVisionTasks=function(t){return No("vision",t)},Uo.forTextTasks=function(t){return No("text",t)},Uo.forGenAiExperimentalTasks=function(t){return No("genai_experimental",t)},Uo.forGenAiTasks=function(t){return No("genai",t)},Uo.forAudioTasks=function(t){return No("audio",t)},Uo.isSimdSupported=function(){return Co()};async function zo(t,e,n,r){return t=await(async(t,e,n,r,i)=>{if(e&&await Bo(e),!self.ModuleFactory)throw Error("ModuleFactory not set.");if(n&&(await Bo(n),!self.ModuleFactory))throw Error("ModuleFactory not set.");return self.Module&&i&&((e=self.Module).locateFile=i.locateFile,i.mainScriptUrlOrBlob&&(e.mainScriptUrlOrBlob=i.mainScriptUrlOrBlob)),i=await self.ModuleFactory(self.Module||i),self.ModuleFactory=self.Module=void 0,new t(i,r)})(t,n.wasmLoaderPath,n.assetLoaderPath,e,{locateFile:t=>t.endsWith(".wasm")?n.wasmBinaryPath.toString():n.assetBinaryPath&&t.endsWith(".data")?n.assetBinaryPath.toString():t}),await t.o(r),t}function Ko(t,e){const n=pn(t.baseOptions,Ss,1)||new Ss;"string"==typeof e?($e(n,2,ne(e)),$e(n,1)):e instanceof Uint8Array&&($e(n,1,lt(e,!1,!1)),$e(n,2)),yn(t.baseOptions,0,1,n)}function Yo(t){try{const e=t.H.length;if(1===e)throw Error(t.H[0].message);if(e>1)throw Error("Encountered multiple errors: "+t.H.map((t=>t.message)).join(", "))}finally{t.H=[]}}function $o(t,e){t.B=Math.max(t.B,e)}function qo(t,e){t.A=new Vi,Bi(t.A,"PassThroughCalculator"),Gi(t.A,"free_memory"),ji(t.A,"free_memory_unused_out"),Ki(e,"free_memory"),zi(e,t.A)}function Jo(t,e){Gi(t.A,e),ji(t.A,e+"_unused_out")}function Zo(t){t.g.addBoolToStream(!0,"free_memory",t.B)}var Qo=class{constructor(t){this.g=t,this.H=[],this.B=0,this.g.setAutoRenderToScreen(!1)}l(t,e=!0){if(e){const e=t.baseOptions||{};if(t.baseOptions?.modelAssetBuffer&&t.baseOptions?.modelAssetPath)throw Error("Cannot set both baseOptions.modelAssetPath and baseOptions.modelAssetBuffer");if(!(pn(this.baseOptions,Ss,1)?.g()||pn(this.baseOptions,Ss,1)?.h()||t.baseOptions?.modelAssetBuffer||t.baseOptions?.modelAssetPath))throw Error("Either baseOptions.modelAssetPath or baseOptions.modelAssetBuffer must be set");if(function(t,e){let n=pn(t.baseOptions,bs,3);if(!n){var r=n=new bs,i=new Mi;_n(r,4,ks,i)}"delegate"in e&&("GPU"===e.delegate?(e=n,r=new Li,_n(e,2,ks,r)):(e=n,r=new Mi,_n(e,4,ks,r))),yn(t.baseOptions,0,3,n)}(this,e),e.modelAssetPath)return fetch(e.modelAssetPath.toString()).then((t=>{if(t.ok)return t.arrayBuffer();throw Error(`Failed to fetch model: ${e.modelAssetPath} (${t.status})`)})).then((t=>{try{this.g.i.FS_unlink("/model.dat")}catch{}this.g.i.FS_createDataFile("/","model.dat",new Uint8Array(t),!0,!1,!1),Ko(this,"/model.dat"),this.m(),this.J()}));if(e.modelAssetBuffer instanceof Uint8Array)Ko(this,e.modelAssetBuffer);else if(e.modelAssetBuffer)return async function(t){const e=[];for(var n=0;;){const{done:r,value:i}=await t.read();if(r)break;e.push(i),n+=i.length}if(0===e.length)return new Uint8Array(0);if(1===e.length)return e[0];t=new Uint8Array(n),n=0;for(const r of e)t.set(r,n),n+=r.length;return t}(e.modelAssetBuffer).then((t=>{Ko(this,t),this.m(),this.J()}))}return this.m(),this.J(),Promise.resolve()}J(){}ga(){let t;if(this.g.ga((e=>{t=Ji(e)})),!t)throw Error("Failed to retrieve CalculatorGraphConfig");return t}setGraph(t,e){this.g.attachErrorListener(((t,e)=>{this.H.push(Error(e))})),this.g.Oa(),this.g.setGraph(t,e),this.A=void 0,Yo(this)}finishProcessing(){this.g.finishProcessing(),Yo(this)}close(){this.A=void 0,this.g.closeGraph()}};function ta(t,e){if(!t)throw Error(`Unable to obtain required WebGL resource: ${e}`);return t}Qo.prototype.close=Qo.prototype.close,function(e,n){e=e.split(".");var r,i=t;e[0]in i||void 0===i.execScript||i.execScript("var "+e[0]);for(;e.length&&(r=e.shift());)e.length||void 0===n?i=i[r]&&i[r]!==Object.prototype[r]?i[r]:i[r]={}:i[r]=n}("TaskRunner",Qo);class ea{constructor(t,e,n,r){this.g=t,this.h=e,this.m=n,this.l=r}bind(){this.g.bindVertexArray(this.h)}close(){this.g.deleteVertexArray(this.h),this.g.deleteBuffer(this.m),this.g.deleteBuffer(this.l)}}function na(t,e,n){const r=t.g;if(n=ta(r.createShader(n),"Failed to create WebGL shader"),r.shaderSource(n,e),r.compileShader(n),!r.getShaderParameter(n,r.COMPILE_STATUS))throw Error(`Could not compile WebGL shader: ${r.getShaderInfoLog(n)}`);return r.attachShader(t.h,n),n}function ra(t,e){const n=t.g,r=ta(n.createVertexArray(),"Failed to create vertex array");n.bindVertexArray(r);const i=ta(n.createBuffer(),"Failed to create buffer");n.bindBuffer(n.ARRAY_BUFFER,i),n.enableVertexAttribArray(t.R),n.vertexAttribPointer(t.R,2,n.FLOAT,!1,0,0),n.bufferData(n.ARRAY_BUFFER,new Float32Array([-1,-1,-1,1,1,1,1,-1]),n.STATIC_DRAW);const s=ta(n.createBuffer(),"Failed to create buffer");return n.bindBuffer(n.ARRAY_BUFFER,s),n.enableVertexAttribArray(t.J),n.vertexAttribPointer(t.J,2,n.FLOAT,!1,0,0),n.bufferData(n.ARRAY_BUFFER,new Float32Array(e?[0,1,0,0,1,0,1,1]:[0,0,0,1,1,1,1,0]),n.STATIC_DRAW),n.bindBuffer(n.ARRAY_BUFFER,null),n.bindVertexArray(null),new ea(n,r,i,s)}function ia(t,e){if(t.g){if(e!==t.g)throw Error("Cannot change GL context once initialized")}else t.g=e}function sa(t,e,n,r){return ia(t,e),t.h||(t.m(),t.C()),n?(t.s||(t.s=ra(t,!0)),n=t.s):(t.v||(t.v=ra(t,!1)),n=t.v),e.useProgram(t.h),n.bind(),t.l(),t=r(),n.g.bindVertexArray(null),t}function oa(t,e,n){return ia(t,e),t=ta(e.createTexture(),"Failed to create texture"),e.bindTexture(e.TEXTURE_2D,t),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MIN_FILTER,n??e.LINEAR),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MAG_FILTER,n??e.LINEAR),e.bindTexture(e.TEXTURE_2D,null),t}function aa(t,e,n){ia(t,e),t.A||(t.A=ta(e.createFramebuffer(),"Failed to create framebuffe.")),e.bindFramebuffer(e.FRAMEBUFFER,t.A),e.framebufferTexture2D(e.FRAMEBUFFER,e.COLOR_ATTACHMENT0,e.TEXTURE_2D,n,0)}function ha(t){t.g?.bindFramebuffer(t.g.FRAMEBUFFER,null)}var ca=class{H(){return"\n precision mediump float;\n varying vec2 vTex;\n uniform sampler2D inputTexture;\n void main() {\n gl_FragColor = texture2D(inputTexture, vTex);\n }\n "}m(){const t=this.g;if(this.h=ta(t.createProgram(),"Failed to create WebGL program"),this.da=na(this,"\n attribute vec2 aVertex;\n attribute vec2 aTex;\n varying vec2 vTex;\n void main(void) {\n gl_Position = vec4(aVertex, 0.0, 1.0);\n vTex = aTex;\n }",t.VERTEX_SHADER),this.ca=na(this,this.H(),t.FRAGMENT_SHADER),t.linkProgram(this.h),!t.getProgramParameter(this.h,t.LINK_STATUS))throw Error(`Error during program linking: ${t.getProgramInfoLog(this.h)}`);this.R=t.getAttribLocation(this.h,"aVertex"),this.J=t.getAttribLocation(this.h,"aTex")}C(){}l(){}close(){if(this.h){const t=this.g;t.deleteProgram(this.h),t.deleteShader(this.da),t.deleteShader(this.ca)}this.A&&this.g.deleteFramebuffer(this.A),this.v&&this.v.close(),this.s&&this.s.close()}};var ua=class extends ca{H(){return"\n precision mediump float;\n uniform sampler2D backgroundTexture;\n uniform sampler2D maskTexture;\n uniform sampler2D colorMappingTexture;\n varying vec2 vTex;\n void main() {\n vec4 backgroundColor = texture2D(backgroundTexture, vTex);\n float category = texture2D(maskTexture, vTex).r;\n vec4 categoryColor = texture2D(colorMappingTexture, vec2(category, 0.0));\n gl_FragColor = mix(backgroundColor, categoryColor, categoryColor.a);\n }\n "}C(){const t=this.g;t.activeTexture(t.TEXTURE1),this.B=oa(this,t,t.LINEAR),t.activeTexture(t.TEXTURE2),this.j=oa(this,t,t.NEAREST)}m(){super.m();const t=this.g;this.L=ta(t.getUniformLocation(this.h,"backgroundTexture"),"Uniform location"),this.V=ta(t.getUniformLocation(this.h,"colorMappingTexture"),"Uniform location"),this.K=ta(t.getUniformLocation(this.h,"maskTexture"),"Uniform location")}l(){super.l();const t=this.g;t.uniform1i(this.K,0),t.uniform1i(this.L,1),t.uniform1i(this.V,2)}close(){this.B&&this.g.deleteTexture(this.B),this.j&&this.g.deleteTexture(this.j),super.close()}},la=class extends ca{H(){return"\n precision mediump float;\n uniform sampler2D maskTexture;\n uniform sampler2D defaultTexture;\n uniform sampler2D overlayTexture;\n varying vec2 vTex;\n void main() {\n float confidence = texture2D(maskTexture, vTex).r;\n vec4 defaultColor = texture2D(defaultTexture, vTex);\n vec4 overlayColor = texture2D(overlayTexture, vTex);\n // Apply the alpha from the overlay and merge in the default color\n overlayColor = mix(defaultColor, overlayColor, overlayColor.a);\n gl_FragColor = mix(defaultColor, overlayColor, confidence);\n }\n "}C(){const t=this.g;t.activeTexture(t.TEXTURE1),this.j=oa(this,t),t.activeTexture(t.TEXTURE2),this.B=oa(this,t)}m(){super.m();const t=this.g;this.K=ta(t.getUniformLocation(this.h,"defaultTexture"),"Uniform location"),this.L=ta(t.getUniformLocation(this.h,"overlayTexture"),"Uniform location"),this.I=ta(t.getUniformLocation(this.h,"maskTexture"),"Uniform location")}l(){super.l();const t=this.g;t.uniform1i(this.I,0),t.uniform1i(this.K,1),t.uniform1i(this.L,2)}close(){this.j&&this.g.deleteTexture(this.j),this.B&&this.g.deleteTexture(this.B),super.close()}};function fa(t,e){switch(e){case 0:return t.g.find((t=>t instanceof Uint8Array));case 1:return t.g.find((t=>t instanceof Float32Array));case 2:return t.g.find((t=>"undefined"!=typeof WebGLTexture&&t instanceof WebGLTexture));default:throw Error(`Type is not supported: ${e}`)}}function da(t){var e=fa(t,1);if(!e){if(e=fa(t,0))e=new Float32Array(e).map((t=>t/255));else{e=new Float32Array(t.width*t.height);const r=ga(t);var n=ya(t);if(aa(n,r,pa(t)),"iPad Simulator;iPhone Simulator;iPod Simulator;iPad;iPhone;iPod".split(";").includes(navigator.platform)||navigator.userAgent.includes("Mac")&&"ontouchend"in self.document){n=new Float32Array(t.width*t.height*4),r.readPixels(0,0,t.width,t.height,r.RGBA,r.FLOAT,n);for(let t=0,r=0;t255*t))),t.g.push(e)),e;var t,e}ka(){return da(this)}N(){return pa(this)}clone(){const t=[];for(const e of this.g){let n;if(e instanceof Uint8Array)n=new Uint8Array(e);else if(e instanceof Float32Array)n=new Float32Array(e);else{if(!(e instanceof WebGLTexture))throw Error(`Type is not supported: ${e}`);{const t=ga(this),e=ya(this);t.activeTexture(t.TEXTURE1),n=oa(e,t,this.m?t.LINEAR:t.NEAREST),t.bindTexture(t.TEXTURE_2D,n);const r=ma(this);t.texImage2D(t.TEXTURE_2D,0,r,this.width,this.height,0,t.RED,t.FLOAT,null),t.bindTexture(t.TEXTURE_2D,null),aa(e,t,n),sa(e,t,!1,(()=>{_a(this),t.clearColor(0,0,0,0),t.clear(t.COLOR_BUFFER_BIT),t.drawArrays(t.TRIANGLE_FAN,0,4),va(this)})),ha(e),va(this)}}t.push(n)}return new wa(t,this.m,this.S(),this.canvas,this.l,this.width,this.height)}close(){this.j&&ga(this).deleteTexture(fa(this,2)),Ta=-1}};wa.prototype.close=wa.prototype.close,wa.prototype.clone=wa.prototype.clone,wa.prototype.getAsWebGLTexture=wa.prototype.N,wa.prototype.getAsFloat32Array=wa.prototype.ka,wa.prototype.getAsUint8Array=wa.prototype.la,wa.prototype.hasWebGLTexture=wa.prototype.S,wa.prototype.hasFloat32Array=wa.prototype.ma,wa.prototype.hasUint8Array=wa.prototype.Ja;var Ta=250;const Aa={color:"white",lineWidth:4,radius:6};function ba(t){return{...Aa,fillColor:(t=t||{}).color,...t}}function ka(t,e){return t instanceof Function?t(e):t}function Sa(t,e,n){return Math.max(Math.min(e,n),Math.min(Math.max(e,n),t))}function xa(t){if(!t.l)throw Error("CPU rendering requested but CanvasRenderingContext2D not provided.");return t.l}function La(t){if(!t.j)throw Error("GPU rendering requested but WebGL2RenderingContext not provided.");return t.j}function Ra(t,e,n){if(e.S())n(e.N());else{const r=e.ma()?e.ka():e.la();t.m=t.m??new ca;const i=La(t);n((t=new wa([r],e.m,!1,i.canvas,t.m,e.width,e.height)).N()),t.close()}}function Fa(t,e,n,r){const i=function(t){return t.g||(t.g=new ua),t.g}(t),s=La(t),o=Array.isArray(n)?new ImageData(new Uint8ClampedArray(n),1,1):n;sa(i,s,!0,(()=>{!function(t,e,n,r){const i=t.g;if(i.activeTexture(i.TEXTURE0),i.bindTexture(i.TEXTURE_2D,e),i.activeTexture(i.TEXTURE1),i.bindTexture(i.TEXTURE_2D,t.B),i.texImage2D(i.TEXTURE_2D,0,i.RGBA,i.RGBA,i.UNSIGNED_BYTE,n),t.I&&function(t,e){if(t!==e)return!1;t=t.entries(),e=e.entries();for(const[r,i]of t){t=r;const s=i;var n=e.next();if(n.done)return!1;const[o,a]=n.value;if(n=a,t!==o||s[0]!==n[0]||s[1]!==n[1]||s[2]!==n[2]||s[3]!==n[3])return!1}return!!e.next().done}(t.I,r))i.activeTexture(i.TEXTURE2),i.bindTexture(i.TEXTURE_2D,t.j);else{t.I=r;const e=Array(1024).fill(0);r.forEach(((t,n)=>{if(4!==t.length)throw Error(`Color at index ${n} is not a four-channel value.`);e[4*n]=t[0],e[4*n+1]=t[1],e[4*n+2]=t[2],e[4*n+3]=t[3]})),i.activeTexture(i.TEXTURE2),i.bindTexture(i.TEXTURE_2D,t.j),i.texImage2D(i.TEXTURE_2D,0,i.RGBA,256,1,0,i.RGBA,i.UNSIGNED_BYTE,new Uint8Array(e))}}(i,e,o,r),s.clearColor(0,0,0,0),s.clear(s.COLOR_BUFFER_BIT),s.drawArrays(s.TRIANGLE_FAN,0,4);const t=i.g;t.activeTexture(t.TEXTURE0),t.bindTexture(t.TEXTURE_2D,null),t.activeTexture(t.TEXTURE1),t.bindTexture(t.TEXTURE_2D,null),t.activeTexture(t.TEXTURE2),t.bindTexture(t.TEXTURE_2D,null)}))}function Ma(t,e,n,r){const i=La(t),s=function(t){return t.h||(t.h=new la),t.h}(t),o=Array.isArray(n)?new ImageData(new Uint8ClampedArray(n),1,1):n,a=Array.isArray(r)?new ImageData(new Uint8ClampedArray(r),1,1):r;sa(s,i,!0,(()=>{var t=s.g;t.activeTexture(t.TEXTURE0),t.bindTexture(t.TEXTURE_2D,e),t.activeTexture(t.TEXTURE1),t.bindTexture(t.TEXTURE_2D,s.j),t.texImage2D(t.TEXTURE_2D,0,t.RGBA,t.RGBA,t.UNSIGNED_BYTE,o),t.activeTexture(t.TEXTURE2),t.bindTexture(t.TEXTURE_2D,s.B),t.texImage2D(t.TEXTURE_2D,0,t.RGBA,t.RGBA,t.UNSIGNED_BYTE,a),i.clearColor(0,0,0,0),i.clear(i.COLOR_BUFFER_BIT),i.drawArrays(i.TRIANGLE_FAN,0,4),i.bindTexture(i.TEXTURE_2D,null),(t=s.g).activeTexture(t.TEXTURE0),t.bindTexture(t.TEXTURE_2D,null),t.activeTexture(t.TEXTURE1),t.bindTexture(t.TEXTURE_2D,null),t.activeTexture(t.TEXTURE2),t.bindTexture(t.TEXTURE_2D,null)}))}var Ia=class{constructor(t,e){t instanceof CanvasRenderingContext2D||t instanceof OffscreenCanvasRenderingContext2D?(this.l=t,this.j=e):this.j=t}Ca(t,e){if(t){var n=xa(this);e=ba(e),n.save();var r=n.canvas,i=0;for(const s of t)n.fillStyle=ka(e.fillColor,{index:i,from:s}),n.strokeStyle=ka(e.color,{index:i,from:s}),n.lineWidth=ka(e.lineWidth,{index:i,from:s}),(t=new Path2D).arc(s.x*r.width,s.y*r.height,ka(e.radius,{index:i,from:s}),0,2*Math.PI),n.fill(t),n.stroke(t),++i;n.restore()}}Ba(t,e,n){if(t&&e){var r=xa(this);n=ba(n),r.save();var i=r.canvas,s=0;for(const o of e){r.beginPath(),e=t[o.start];const a=t[o.end];e&&a&&(r.strokeStyle=ka(n.color,{index:s,from:e,to:a}),r.lineWidth=ka(n.lineWidth,{index:s,from:e,to:a}),r.moveTo(e.x*i.width,e.y*i.height),r.lineTo(a.x*i.width,a.y*i.height)),++s,r.stroke()}r.restore()}}ya(t,e){const n=xa(this);e=ba(e),n.save(),n.beginPath(),n.lineWidth=ka(e.lineWidth,{}),n.strokeStyle=ka(e.color,{}),n.fillStyle=ka(e.fillColor,{}),n.moveTo(t.originX,t.originY),n.lineTo(t.originX+t.width,t.originY),n.lineTo(t.originX+t.width,t.originY+t.height),n.lineTo(t.originX,t.originY+t.height),n.lineTo(t.originX,t.originY),n.stroke(),n.fill(),n.restore()}za(t,e,n=[0,0,0,255]){this.l?function(t,e,n,r){const i=La(t);Ra(t,e,(e=>{Fa(t,e,n,r),(e=xa(t)).drawImage(i.canvas,0,0,e.canvas.width,e.canvas.height)}))}(this,t,n,e):Fa(this,t.N(),n,e)}Aa(t,e,n){this.l?function(t,e,n,r){const i=La(t);Ra(t,e,(e=>{Ma(t,e,n,r),(e=xa(t)).drawImage(i.canvas,0,0,e.canvas.width,e.canvas.height)}))}(this,t,e,n):Ma(this,t.N(),e,n)}close(){this.g?.close(),this.g=void 0,this.h?.close(),this.h=void 0,this.m?.close(),this.m=void 0}};function Pa(t,e){switch(e){case 0:return t.g.find((t=>t instanceof ImageData));case 1:return t.g.find((t=>"undefined"!=typeof ImageBitmap&&t instanceof ImageBitmap));case 2:return t.g.find((t=>"undefined"!=typeof WebGLTexture&&t instanceof WebGLTexture));default:throw Error(`Type is not supported: ${e}`)}}function Oa(t){var e=Pa(t,0);if(!e){e=Na(t);const n=Ua(t),r=new Uint8Array(t.width*t.height*4);aa(n,e,Ca(t)),e.readPixels(0,0,t.width,t.height,e.RGBA,e.UNSIGNED_BYTE,r),ha(n),e=new ImageData(new Uint8ClampedArray(r.buffer),t.width,t.height),t.g.push(e)}return e}function Ca(t){let e=Pa(t,2);if(!e){const n=Na(t);e=Da(t);const r=Pa(t,1)||Oa(t);n.texImage2D(n.TEXTURE_2D,0,n.RGBA,n.RGBA,n.UNSIGNED_BYTE,r),Ba(t)}return e}function Na(t){if(!t.canvas)throw Error("Conversion to different image formats require that a canvas is passed when iniitializing the image.");return t.h||(t.h=ta(t.canvas.getContext("webgl2"),"You cannot use a canvas that is already bound to a different type of rendering context.")),t.h}function Ua(t){return t.l||(t.l=new ca),t.l}function Da(t){const e=Na(t);e.viewport(0,0,t.width,t.height),e.activeTexture(e.TEXTURE0);let n=Pa(t,2);return n||(n=oa(Ua(t),e),t.g.push(n),t.m=!0),e.bindTexture(e.TEXTURE_2D,n),n}function Ba(t){t.h.bindTexture(t.h.TEXTURE_2D,null)}function Ga(t){const e=Na(t);return sa(Ua(t),e,!0,(()=>function(t,e){const n=t.canvas;if(n.width===t.width&&n.height===t.height)return e();const r=n.width,i=n.height;return n.width=t.width,n.height=t.height,t=e(),n.width=r,n.height=i,t}(t,(()=>{if(e.bindFramebuffer(e.FRAMEBUFFER,null),e.clearColor(0,0,0,0),e.clear(e.COLOR_BUFFER_BIT),e.drawArrays(e.TRIANGLE_FAN,0,4),!(t.canvas instanceof OffscreenCanvas))throw Error("Conversion to ImageBitmap requires that the MediaPipe Tasks is initialized with an OffscreenCanvas");return t.canvas.transferToImageBitmap()}))))}Ia.prototype.close=Ia.prototype.close,Ia.prototype.drawConfidenceMask=Ia.prototype.Aa,Ia.prototype.drawCategoryMask=Ia.prototype.za,Ia.prototype.drawBoundingBox=Ia.prototype.ya,Ia.prototype.drawConnectors=Ia.prototype.Ba,Ia.prototype.drawLandmarks=Ia.prototype.Ca,Ia.lerp=function(t,e,n,r,i){return Sa(r*(1-(t-e)/(n-e))+i*(1-(n-t)/(n-e)),r,i)},Ia.clamp=Sa;var ja=class{constructor(t,e,n,r,i,s,o){this.g=t,this.j=e,this.m=n,this.canvas=r,this.l=i,this.width=s,this.height=o,(this.j||this.m)&&(0===--Va&&console.error("You seem to be creating MPImage instances without invoking .close(). This leaks resources."))}Ia(){return!!Pa(this,0)}na(){return!!Pa(this,1)}S(){return!!Pa(this,2)}Ga(){return Oa(this)}Fa(){var t=Pa(this,1);return t||(Ca(this),Da(this),t=Ga(this),Ba(this),this.g.push(t),this.j=!0),t}N(){return Ca(this)}clone(){const t=[];for(const e of this.g){let n;if(e instanceof ImageData)n=new ImageData(e.data,this.width,this.height);else if(e instanceof WebGLTexture){const t=Na(this),e=Ua(this);t.activeTexture(t.TEXTURE1),n=oa(e,t),t.bindTexture(t.TEXTURE_2D,n),t.texImage2D(t.TEXTURE_2D,0,t.RGBA,this.width,this.height,0,t.RGBA,t.UNSIGNED_BYTE,null),t.bindTexture(t.TEXTURE_2D,null),aa(e,t,n),sa(e,t,!1,(()=>{Da(this),t.clearColor(0,0,0,0),t.clear(t.COLOR_BUFFER_BIT),t.drawArrays(t.TRIANGLE_FAN,0,4),Ba(this)})),ha(e),Ba(this)}else{if(!(e instanceof ImageBitmap))throw Error(`Type is not supported: ${e}`);Ca(this),Da(this),n=Ga(this),Ba(this)}t.push(n)}return new ja(t,this.na(),this.S(),this.canvas,this.l,this.width,this.height)}close(){this.j&&Pa(this,1).close(),this.m&&Na(this).deleteTexture(Pa(this,2)),Va=-1}};ja.prototype.close=ja.prototype.close,ja.prototype.clone=ja.prototype.clone,ja.prototype.getAsWebGLTexture=ja.prototype.N,ja.prototype.getAsImageBitmap=ja.prototype.Fa,ja.prototype.getAsImageData=ja.prototype.Ga,ja.prototype.hasWebGLTexture=ja.prototype.S,ja.prototype.hasImageBitmap=ja.prototype.na,ja.prototype.hasImageData=ja.prototype.Ia;var Va=250;function Xa(...t){return t.map((([t,e])=>({start:t,end:e})))}const Ha=function(t){return class extends t{Oa(){this.i._registerModelResourcesGraphService()}}}((Wa=class{constructor(t,e){this.l=!0,this.i=t,this.g=null,this.h=0,this.m="function"==typeof this.i._addIntToInputStream,void 0!==e?this.i.canvas=e:Do()?this.i.canvas=new OffscreenCanvas(1,1):(console.warn("OffscreenCanvas not supported and GraphRunner constructor glCanvas parameter is undefined. Creating backup canvas."),this.i.canvas=document.createElement("canvas"))}async initializeGraph(t){const e=await(await fetch(t)).arrayBuffer();t=!(t.endsWith(".pbtxt")||t.endsWith(".textproto")),this.setGraph(new Uint8Array(e),t)}setGraphFromString(t){this.setGraph((new TextEncoder).encode(t),!1)}setGraph(t,e){const n=t.length,r=this.i._malloc(n);this.i.HEAPU8.set(t,r),e?this.i._changeBinaryGraph(n,r):this.i._changeTextGraph(n,r),this.i._free(r)}configureAudio(t,e,n,r,i){this.i._configureAudio||console.warn('Attempting to use configureAudio without support for input audio. Is build dep ":gl_graph_runner_audio" missing?'),jo(this,r||"input_audio",(r=>{jo(this,i=i||"audio_header",(i=>{this.i._configureAudio(r,i,t,e,n)}))}))}setAutoResizeCanvas(t){this.l=t}setAutoRenderToScreen(t){this.i._setAutoRenderToScreen(t)}setGpuBufferVerticalFlip(t){this.i.gpuOriginForWebTexturesIsBottomLeft=t}ga(t){Ho(this,"__graph_config__",(e=>{t(e)})),jo(this,"__graph_config__",(t=>{this.i._getGraphConfig(t,void 0)})),delete this.i.simpleListeners.__graph_config__}attachErrorListener(t){this.i.errorListener=t}attachEmptyPacketListener(t,e){this.i.emptyPacketListeners=this.i.emptyPacketListeners||{},this.i.emptyPacketListeners[t]=e}addAudioToStream(t,e,n){this.addAudioToStreamWithShape(t,0,0,e,n)}addAudioToStreamWithShape(t,e,n,r,i){const s=4*t.length;this.h!==s&&(this.g&&this.i._free(this.g),this.g=this.i._malloc(s),this.h=s),this.i.HEAPF32.set(t,this.g/4),jo(this,r,(t=>{this.i._addAudioToInputStream(this.g,e,n,t,i)}))}addGpuBufferToStream(t,e,n){jo(this,e,(e=>{const[r,i]=Vo(this,t,e);this.i._addBoundTextureToStream(e,r,i,n)}))}addBoolToStream(t,e,n){jo(this,e,(e=>{this.i._addBoolToInputStream(t,e,n)}))}addDoubleToStream(t,e,n){jo(this,e,(e=>{this.i._addDoubleToInputStream(t,e,n)}))}addFloatToStream(t,e,n){jo(this,e,(e=>{this.i._addFloatToInputStream(t,e,n)}))}addIntToStream(t,e,n){jo(this,e,(e=>{this.i._addIntToInputStream(t,e,n)}))}addUintToStream(t,e,n){jo(this,e,(e=>{this.i._addUintToInputStream(t,e,n)}))}addStringToStream(t,e,n){jo(this,e,(e=>{jo(this,t,(t=>{this.i._addStringToInputStream(t,e,n)}))}))}addStringRecordToStream(t,e,n){jo(this,e,(e=>{Xo(this,Object.keys(t),(r=>{Xo(this,Object.values(t),(i=>{this.i._addFlatHashMapToInputStream(r,i,Object.keys(t).length,e,n)}))}))}))}addProtoToStream(t,e,n,r){jo(this,n,(n=>{jo(this,e,(e=>{const i=this.i._malloc(t.length);this.i.HEAPU8.set(t,i),this.i._addProtoToInputStream(i,t.length,e,n,r),this.i._free(i)}))}))}addEmptyPacketToStream(t,e){jo(this,t,(t=>{this.i._addEmptyPacketToInputStream(t,e)}))}addBoolVectorToStream(t,e,n){jo(this,e,(e=>{const r=this.i._allocateBoolVector(t.length);if(!r)throw Error("Unable to allocate new bool vector on heap.");for(const e of t)this.i._addBoolVectorEntry(r,e);this.i._addBoolVectorToInputStream(r,e,n)}))}addDoubleVectorToStream(t,e,n){jo(this,e,(e=>{const r=this.i._allocateDoubleVector(t.length);if(!r)throw Error("Unable to allocate new double vector on heap.");for(const e of t)this.i._addDoubleVectorEntry(r,e);this.i._addDoubleVectorToInputStream(r,e,n)}))}addFloatVectorToStream(t,e,n){jo(this,e,(e=>{const r=this.i._allocateFloatVector(t.length);if(!r)throw Error("Unable to allocate new float vector on heap.");for(const e of t)this.i._addFloatVectorEntry(r,e);this.i._addFloatVectorToInputStream(r,e,n)}))}addIntVectorToStream(t,e,n){jo(this,e,(e=>{const r=this.i._allocateIntVector(t.length);if(!r)throw Error("Unable to allocate new int vector on heap.");for(const e of t)this.i._addIntVectorEntry(r,e);this.i._addIntVectorToInputStream(r,e,n)}))}addUintVectorToStream(t,e,n){jo(this,e,(e=>{const r=this.i._allocateUintVector(t.length);if(!r)throw Error("Unable to allocate new unsigned int vector on heap.");for(const e of t)this.i._addUintVectorEntry(r,e);this.i._addUintVectorToInputStream(r,e,n)}))}addStringVectorToStream(t,e,n){jo(this,e,(e=>{const r=this.i._allocateStringVector(t.length);if(!r)throw Error("Unable to allocate new string vector on heap.");for(const e of t)jo(this,e,(t=>{this.i._addStringVectorEntry(r,t)}));this.i._addStringVectorToInputStream(r,e,n)}))}addBoolToInputSidePacket(t,e){jo(this,e,(e=>{this.i._addBoolToInputSidePacket(t,e)}))}addDoubleToInputSidePacket(t,e){jo(this,e,(e=>{this.i._addDoubleToInputSidePacket(t,e)}))}addFloatToInputSidePacket(t,e){jo(this,e,(e=>{this.i._addFloatToInputSidePacket(t,e)}))}addIntToInputSidePacket(t,e){jo(this,e,(e=>{this.i._addIntToInputSidePacket(t,e)}))}addUintToInputSidePacket(t,e){jo(this,e,(e=>{this.i._addUintToInputSidePacket(t,e)}))}addStringToInputSidePacket(t,e){jo(this,e,(e=>{jo(this,t,(t=>{this.i._addStringToInputSidePacket(t,e)}))}))}addProtoToInputSidePacket(t,e,n){jo(this,n,(n=>{jo(this,e,(e=>{const r=this.i._malloc(t.length);this.i.HEAPU8.set(t,r),this.i._addProtoToInputSidePacket(r,t.length,e,n),this.i._free(r)}))}))}addBoolVectorToInputSidePacket(t,e){jo(this,e,(e=>{const n=this.i._allocateBoolVector(t.length);if(!n)throw Error("Unable to allocate new bool vector on heap.");for(const e of t)this.i._addBoolVectorEntry(n,e);this.i._addBoolVectorToInputSidePacket(n,e)}))}addDoubleVectorToInputSidePacket(t,e){jo(this,e,(e=>{const n=this.i._allocateDoubleVector(t.length);if(!n)throw Error("Unable to allocate new double vector on heap.");for(const e of t)this.i._addDoubleVectorEntry(n,e);this.i._addDoubleVectorToInputSidePacket(n,e)}))}addFloatVectorToInputSidePacket(t,e){jo(this,e,(e=>{const n=this.i._allocateFloatVector(t.length);if(!n)throw Error("Unable to allocate new float vector on heap.");for(const e of t)this.i._addFloatVectorEntry(n,e);this.i._addFloatVectorToInputSidePacket(n,e)}))}addIntVectorToInputSidePacket(t,e){jo(this,e,(e=>{const n=this.i._allocateIntVector(t.length);if(!n)throw Error("Unable to allocate new int vector on heap.");for(const e of t)this.i._addIntVectorEntry(n,e);this.i._addIntVectorToInputSidePacket(n,e)}))}addUintVectorToInputSidePacket(t,e){jo(this,e,(e=>{const n=this.i._allocateUintVector(t.length);if(!n)throw Error("Unable to allocate new unsigned int vector on heap.");for(const e of t)this.i._addUintVectorEntry(n,e);this.i._addUintVectorToInputSidePacket(n,e)}))}addStringVectorToInputSidePacket(t,e){jo(this,e,(e=>{const n=this.i._allocateStringVector(t.length);if(!n)throw Error("Unable to allocate new string vector on heap.");for(const e of t)jo(this,e,(t=>{this.i._addStringVectorEntry(n,t)}));this.i._addStringVectorToInputSidePacket(n,e)}))}attachBoolListener(t,e){Ho(this,t,e),jo(this,t,(t=>{this.i._attachBoolListener(t)}))}attachBoolVectorListener(t,e){Wo(this,t,e),jo(this,t,(t=>{this.i._attachBoolVectorListener(t)}))}attachIntListener(t,e){Ho(this,t,e),jo(this,t,(t=>{this.i._attachIntListener(t)}))}attachIntVectorListener(t,e){Wo(this,t,e),jo(this,t,(t=>{this.i._attachIntVectorListener(t)}))}attachUintListener(t,e){Ho(this,t,e),jo(this,t,(t=>{this.i._attachUintListener(t)}))}attachUintVectorListener(t,e){Wo(this,t,e),jo(this,t,(t=>{this.i._attachUintVectorListener(t)}))}attachDoubleListener(t,e){Ho(this,t,e),jo(this,t,(t=>{this.i._attachDoubleListener(t)}))}attachDoubleVectorListener(t,e){Wo(this,t,e),jo(this,t,(t=>{this.i._attachDoubleVectorListener(t)}))}attachFloatListener(t,e){Ho(this,t,e),jo(this,t,(t=>{this.i._attachFloatListener(t)}))}attachFloatVectorListener(t,e){Wo(this,t,e),jo(this,t,(t=>{this.i._attachFloatVectorListener(t)}))}attachStringListener(t,e){Ho(this,t,e),jo(this,t,(t=>{this.i._attachStringListener(t)}))}attachStringVectorListener(t,e){Wo(this,t,e),jo(this,t,(t=>{this.i._attachStringVectorListener(t)}))}attachProtoListener(t,e,n){Ho(this,t,e),jo(this,t,(t=>{this.i._attachProtoListener(t,n||!1)}))}attachProtoVectorListener(t,e,n){Wo(this,t,e),jo(this,t,(t=>{this.i._attachProtoVectorListener(t,n||!1)}))}attachAudioListener(t,e,n){this.i._attachAudioListener||console.warn('Attempting to use attachAudioListener without support for output audio. Is build dep ":gl_graph_runner_audio_out" missing?'),Ho(this,t,((t,n)=>{t=new Float32Array(t.buffer,t.byteOffset,t.length/4),e(t,n)})),jo(this,t,(t=>{this.i._attachAudioListener(t,n||!1)}))}finishProcessing(){this.i._waitUntilIdle()}closeGraph(){this.i._closeGraph(),this.i.simpleListeners=void 0,this.i.emptyPacketListeners=void 0}},class extends Wa{get ia(){return this.i}ta(t,e,n){jo(this,e,(e=>{const[r,i]=Vo(this,t,e);this.ia._addBoundTextureAsImageToStream(e,r,i,n)}))}W(t,e){Ho(this,t,e),jo(this,t,(t=>{this.ia._attachImageListener(t)}))}fa(t,e){Wo(this,t,e),jo(this,t,(t=>{this.ia._attachImageVectorListener(t)}))}}));var Wa,za=class extends Ha{};async function Ka(t,e,n){return async function(t,e,n,r){return zo(t,e,n,r)}(t,n.canvas??(Do()?void 0:document.createElement("canvas")),e,n)}function Ya(t,e,n,r){if(t.V){const s=new fs;if(n?.regionOfInterest){if(!t.sa)throw Error("This task doesn't support region-of-interest.");var i=n.regionOfInterest;if(i.left>=i.right||i.top>=i.bottom)throw Error("Expected RectF with left < right and top < bottom.");if(i.left<0||i.top<0||i.right>1||i.bottom>1)throw Error("Expected RectF values to be in [0,1].");Ln(s,1,(i.left+i.right)/2),Ln(s,2,(i.top+i.bottom)/2),Ln(s,4,i.right-i.left),Ln(s,3,i.bottom-i.top)}else Ln(s,1,.5),Ln(s,2,.5),Ln(s,4,1),Ln(s,3,1);if(n?.rotationDegrees){if(n?.rotationDegrees%90!=0)throw Error("Expected rotation to be a multiple of 90°.");if(Ln(s,5,-Math.PI*n.rotationDegrees/180),n?.rotationDegrees%180!=0){const[t,r]=Go(e);n=bn(s,3)*r/t,i=bn(s,4)*t/r,Ln(s,4,n),Ln(s,3,i)}}t.g.addProtoToStream(s.g(),"mediapipe.NormalizedRect",t.V,r)}t.g.ta(e,t.da,r??performance.now()),t.finishProcessing()}function $a(t,e,n){if(t.baseOptions?.g())throw Error("Task is not initialized with image mode. 'runningMode' must be set to 'IMAGE'.");Ya(t,e,n,t.B+1)}function qa(t,e,n,r){if(!t.baseOptions?.g())throw Error("Task is not initialized with video mode. 'runningMode' must be set to 'VIDEO'.");Ya(t,e,n,r)}function Ja(t,e,n,r){var i=e.data;const s=e.width,o=s*(e=e.height);if((i instanceof Uint8Array||i instanceof Float32Array)&&i.length!==o)throw Error("Unsupported channel count: "+i.length/o);return t=new wa([i],n,!1,t.g.i.canvas,t.R,s,e),r?t.clone():t}var Za=class extends Qo{constructor(t,e,n,r){super(t),this.g=t,this.da=e,this.V=n,this.sa=r,this.R=new ca}l(t,e=!0){if("runningMode"in t&&Sn(this.baseOptions,2,!!t.runningMode&&"IMAGE"!==t.runningMode),void 0!==t.canvas&&this.g.i.canvas!==t.canvas)throw Error("You must create a new task to reset the canvas.");return super.l(t,e)}close(){this.R.close(),super.close()}};Za.prototype.close=Za.prototype.close;var Qa=class extends Za{constructor(t,e){super(new za(t,e),"image_in","norm_rect_in",!1),this.j={detections:[]},yn(t=this.h=new Fs,0,1,e=new xs),Ln(this.h,2,.5),Ln(this.h,3,.3)}get baseOptions(){return pn(this.h,xs,1)}set baseOptions(t){yn(this.h,0,1,t)}o(t){return"minDetectionConfidence"in t&&Ln(this.h,2,t.minDetectionConfidence??.5),"minSuppressionThreshold"in t&&Ln(this.h,3,t.minSuppressionThreshold??.3),this.l(t)}D(t,e){return this.j={detections:[]},$a(this,t,e),this.j}F(t,e,n){return this.j={detections:[]},qa(this,t,n,e),this.j}m(){var t=new $i;Ki(t,"image_in"),Ki(t,"norm_rect_in"),Yi(t,"detections");const e=new Ci;er(e,Is,this.h);const n=new Vi;Bi(n,"mediapipe.tasks.vision.face_detector.FaceDetectorGraph"),Gi(n,"IMAGE:image_in"),Gi(n,"NORM_RECT:norm_rect_in"),ji(n,"DETECTIONS:detections"),n.o(e),zi(t,n),this.g.attachProtoVectorListener("detections",((t,e)=>{for(const e of t)t=ss(e),this.j.detections.push(Lo(t));$o(this,e)})),this.g.attachEmptyPacketListener("detections",(t=>{$o(this,t)})),t=t.g(),this.setGraph(new Uint8Array(t),!0)}};Qa.prototype.detectForVideo=Qa.prototype.F,Qa.prototype.detect=Qa.prototype.D,Qa.prototype.setOptions=Qa.prototype.o,Qa.createFromModelPath=async function(t,e){return Ka(Qa,t,{baseOptions:{modelAssetPath:e}})},Qa.createFromModelBuffer=function(t,e){return Ka(Qa,t,{baseOptions:{modelAssetBuffer:e}})},Qa.createFromOptions=function(t,e){return Ka(Qa,t,e)};var th=Xa([61,146],[146,91],[91,181],[181,84],[84,17],[17,314],[314,405],[405,321],[321,375],[375,291],[61,185],[185,40],[40,39],[39,37],[37,0],[0,267],[267,269],[269,270],[270,409],[409,291],[78,95],[95,88],[88,178],[178,87],[87,14],[14,317],[317,402],[402,318],[318,324],[324,308],[78,191],[191,80],[80,81],[81,82],[82,13],[13,312],[312,311],[311,310],[310,415],[415,308]),eh=Xa([263,249],[249,390],[390,373],[373,374],[374,380],[380,381],[381,382],[382,362],[263,466],[466,388],[388,387],[387,386],[386,385],[385,384],[384,398],[398,362]),nh=Xa([276,283],[283,282],[282,295],[295,285],[300,293],[293,334],[334,296],[296,336]),rh=Xa([474,475],[475,476],[476,477],[477,474]),ih=Xa([33,7],[7,163],[163,144],[144,145],[145,153],[153,154],[154,155],[155,133],[33,246],[246,161],[161,160],[160,159],[159,158],[158,157],[157,173],[173,133]),sh=Xa([46,53],[53,52],[52,65],[65,55],[70,63],[63,105],[105,66],[66,107]),oh=Xa([469,470],[470,471],[471,472],[472,469]),ah=Xa([10,338],[338,297],[297,332],[332,284],[284,251],[251,389],[389,356],[356,454],[454,323],[323,361],[361,288],[288,397],[397,365],[365,379],[379,378],[378,400],[400,377],[377,152],[152,148],[148,176],[176,149],[149,150],[150,136],[136,172],[172,58],[58,132],[132,93],[93,234],[234,127],[127,162],[162,21],[21,54],[54,103],[103,67],[67,109],[109,10]),hh=[...th,...eh,...nh,...ih,...sh,...ah],ch=Xa([127,34],[34,139],[139,127],[11,0],[0,37],[37,11],[232,231],[231,120],[120,232],[72,37],[37,39],[39,72],[128,121],[121,47],[47,128],[232,121],[121,128],[128,232],[104,69],[69,67],[67,104],[175,171],[171,148],[148,175],[118,50],[50,101],[101,118],[73,39],[39,40],[40,73],[9,151],[151,108],[108,9],[48,115],[115,131],[131,48],[194,204],[204,211],[211,194],[74,40],[40,185],[185,74],[80,42],[42,183],[183,80],[40,92],[92,186],[186,40],[230,229],[229,118],[118,230],[202,212],[212,214],[214,202],[83,18],[18,17],[17,83],[76,61],[61,146],[146,76],[160,29],[29,30],[30,160],[56,157],[157,173],[173,56],[106,204],[204,194],[194,106],[135,214],[214,192],[192,135],[203,165],[165,98],[98,203],[21,71],[71,68],[68,21],[51,45],[45,4],[4,51],[144,24],[24,23],[23,144],[77,146],[146,91],[91,77],[205,50],[50,187],[187,205],[201,200],[200,18],[18,201],[91,106],[106,182],[182,91],[90,91],[91,181],[181,90],[85,84],[84,17],[17,85],[206,203],[203,36],[36,206],[148,171],[171,140],[140,148],[92,40],[40,39],[39,92],[193,189],[189,244],[244,193],[159,158],[158,28],[28,159],[247,246],[246,161],[161,247],[236,3],[3,196],[196,236],[54,68],[68,104],[104,54],[193,168],[168,8],[8,193],[117,228],[228,31],[31,117],[189,193],[193,55],[55,189],[98,97],[97,99],[99,98],[126,47],[47,100],[100,126],[166,79],[79,218],[218,166],[155,154],[154,26],[26,155],[209,49],[49,131],[131,209],[135,136],[136,150],[150,135],[47,126],[126,217],[217,47],[223,52],[52,53],[53,223],[45,51],[51,134],[134,45],[211,170],[170,140],[140,211],[67,69],[69,108],[108,67],[43,106],[106,91],[91,43],[230,119],[119,120],[120,230],[226,130],[130,247],[247,226],[63,53],[53,52],[52,63],[238,20],[20,242],[242,238],[46,70],[70,156],[156,46],[78,62],[62,96],[96,78],[46,53],[53,63],[63,46],[143,34],[34,227],[227,143],[123,117],[117,111],[111,123],[44,125],[125,19],[19,44],[236,134],[134,51],[51,236],[216,206],[206,205],[205,216],[154,153],[153,22],[22,154],[39,37],[37,167],[167,39],[200,201],[201,208],[208,200],[36,142],[142,100],[100,36],[57,212],[212,202],[202,57],[20,60],[60,99],[99,20],[28,158],[158,157],[157,28],[35,226],[226,113],[113,35],[160,159],[159,27],[27,160],[204,202],[202,210],[210,204],[113,225],[225,46],[46,113],[43,202],[202,204],[204,43],[62,76],[76,77],[77,62],[137,123],[123,116],[116,137],[41,38],[38,72],[72,41],[203,129],[129,142],[142,203],[64,98],[98,240],[240,64],[49,102],[102,64],[64,49],[41,73],[73,74],[74,41],[212,216],[216,207],[207,212],[42,74],[74,184],[184,42],[169,170],[170,211],[211,169],[170,149],[149,176],[176,170],[105,66],[66,69],[69,105],[122,6],[6,168],[168,122],[123,147],[147,187],[187,123],[96,77],[77,90],[90,96],[65,55],[55,107],[107,65],[89,90],[90,180],[180,89],[101,100],[100,120],[120,101],[63,105],[105,104],[104,63],[93,137],[137,227],[227,93],[15,86],[86,85],[85,15],[129,102],[102,49],[49,129],[14,87],[87,86],[86,14],[55,8],[8,9],[9,55],[100,47],[47,121],[121,100],[145,23],[23,22],[22,145],[88,89],[89,179],[179,88],[6,122],[122,196],[196,6],[88,95],[95,96],[96,88],[138,172],[172,136],[136,138],[215,58],[58,172],[172,215],[115,48],[48,219],[219,115],[42,80],[80,81],[81,42],[195,3],[3,51],[51,195],[43,146],[146,61],[61,43],[171,175],[175,199],[199,171],[81,82],[82,38],[38,81],[53,46],[46,225],[225,53],[144,163],[163,110],[110,144],[52,65],[65,66],[66,52],[229,228],[228,117],[117,229],[34,127],[127,234],[234,34],[107,108],[108,69],[69,107],[109,108],[108,151],[151,109],[48,64],[64,235],[235,48],[62,78],[78,191],[191,62],[129,209],[209,126],[126,129],[111,35],[35,143],[143,111],[117,123],[123,50],[50,117],[222,65],[65,52],[52,222],[19,125],[125,141],[141,19],[221,55],[55,65],[65,221],[3,195],[195,197],[197,3],[25,7],[7,33],[33,25],[220,237],[237,44],[44,220],[70,71],[71,139],[139,70],[122,193],[193,245],[245,122],[247,130],[130,33],[33,247],[71,21],[21,162],[162,71],[170,169],[169,150],[150,170],[188,174],[174,196],[196,188],[216,186],[186,92],[92,216],[2,97],[97,167],[167,2],[141,125],[125,241],[241,141],[164,167],[167,37],[37,164],[72,38],[38,12],[12,72],[38,82],[82,13],[13,38],[63,68],[68,71],[71,63],[226,35],[35,111],[111,226],[101,50],[50,205],[205,101],[206,92],[92,165],[165,206],[209,198],[198,217],[217,209],[165,167],[167,97],[97,165],[220,115],[115,218],[218,220],[133,112],[112,243],[243,133],[239,238],[238,241],[241,239],[214,135],[135,169],[169,214],[190,173],[173,133],[133,190],[171,208],[208,32],[32,171],[125,44],[44,237],[237,125],[86,87],[87,178],[178,86],[85,86],[86,179],[179,85],[84,85],[85,180],[180,84],[83,84],[84,181],[181,83],[201,83],[83,182],[182,201],[137,93],[93,132],[132,137],[76,62],[62,183],[183,76],[61,76],[76,184],[184,61],[57,61],[61,185],[185,57],[212,57],[57,186],[186,212],[214,207],[207,187],[187,214],[34,143],[143,156],[156,34],[79,239],[239,237],[237,79],[123,137],[137,177],[177,123],[44,1],[1,4],[4,44],[201,194],[194,32],[32,201],[64,102],[102,129],[129,64],[213,215],[215,138],[138,213],[59,166],[166,219],[219,59],[242,99],[99,97],[97,242],[2,94],[94,141],[141,2],[75,59],[59,235],[235,75],[24,110],[110,228],[228,24],[25,130],[130,226],[226,25],[23,24],[24,229],[229,23],[22,23],[23,230],[230,22],[26,22],[22,231],[231,26],[112,26],[26,232],[232,112],[189,190],[190,243],[243,189],[221,56],[56,190],[190,221],[28,56],[56,221],[221,28],[27,28],[28,222],[222,27],[29,27],[27,223],[223,29],[30,29],[29,224],[224,30],[247,30],[30,225],[225,247],[238,79],[79,20],[20,238],[166,59],[59,75],[75,166],[60,75],[75,240],[240,60],[147,177],[177,215],[215,147],[20,79],[79,166],[166,20],[187,147],[147,213],[213,187],[112,233],[233,244],[244,112],[233,128],[128,245],[245,233],[128,114],[114,188],[188,128],[114,217],[217,174],[174,114],[131,115],[115,220],[220,131],[217,198],[198,236],[236,217],[198,131],[131,134],[134,198],[177,132],[132,58],[58,177],[143,35],[35,124],[124,143],[110,163],[163,7],[7,110],[228,110],[110,25],[25,228],[356,389],[389,368],[368,356],[11,302],[302,267],[267,11],[452,350],[350,349],[349,452],[302,303],[303,269],[269,302],[357,343],[343,277],[277,357],[452,453],[453,357],[357,452],[333,332],[332,297],[297,333],[175,152],[152,377],[377,175],[347,348],[348,330],[330,347],[303,304],[304,270],[270,303],[9,336],[336,337],[337,9],[278,279],[279,360],[360,278],[418,262],[262,431],[431,418],[304,408],[408,409],[409,304],[310,415],[415,407],[407,310],[270,409],[409,410],[410,270],[450,348],[348,347],[347,450],[422,430],[430,434],[434,422],[313,314],[314,17],[17,313],[306,307],[307,375],[375,306],[387,388],[388,260],[260,387],[286,414],[414,398],[398,286],[335,406],[406,418],[418,335],[364,367],[367,416],[416,364],[423,358],[358,327],[327,423],[251,284],[284,298],[298,251],[281,5],[5,4],[4,281],[373,374],[374,253],[253,373],[307,320],[320,321],[321,307],[425,427],[427,411],[411,425],[421,313],[313,18],[18,421],[321,405],[405,406],[406,321],[320,404],[404,405],[405,320],[315,16],[16,17],[17,315],[426,425],[425,266],[266,426],[377,400],[400,369],[369,377],[322,391],[391,269],[269,322],[417,465],[465,464],[464,417],[386,257],[257,258],[258,386],[466,260],[260,388],[388,466],[456,399],[399,419],[419,456],[284,332],[332,333],[333,284],[417,285],[285,8],[8,417],[346,340],[340,261],[261,346],[413,441],[441,285],[285,413],[327,460],[460,328],[328,327],[355,371],[371,329],[329,355],[392,439],[439,438],[438,392],[382,341],[341,256],[256,382],[429,420],[420,360],[360,429],[364,394],[394,379],[379,364],[277,343],[343,437],[437,277],[443,444],[444,283],[283,443],[275,440],[440,363],[363,275],[431,262],[262,369],[369,431],[297,338],[338,337],[337,297],[273,375],[375,321],[321,273],[450,451],[451,349],[349,450],[446,342],[342,467],[467,446],[293,334],[334,282],[282,293],[458,461],[461,462],[462,458],[276,353],[353,383],[383,276],[308,324],[324,325],[325,308],[276,300],[300,293],[293,276],[372,345],[345,447],[447,372],[352,345],[345,340],[340,352],[274,1],[1,19],[19,274],[456,248],[248,281],[281,456],[436,427],[427,425],[425,436],[381,256],[256,252],[252,381],[269,391],[391,393],[393,269],[200,199],[199,428],[428,200],[266,330],[330,329],[329,266],[287,273],[273,422],[422,287],[250,462],[462,328],[328,250],[258,286],[286,384],[384,258],[265,353],[353,342],[342,265],[387,259],[259,257],[257,387],[424,431],[431,430],[430,424],[342,353],[353,276],[276,342],[273,335],[335,424],[424,273],[292,325],[325,307],[307,292],[366,447],[447,345],[345,366],[271,303],[303,302],[302,271],[423,266],[266,371],[371,423],[294,455],[455,460],[460,294],[279,278],[278,294],[294,279],[271,272],[272,304],[304,271],[432,434],[434,427],[427,432],[272,407],[407,408],[408,272],[394,430],[430,431],[431,394],[395,369],[369,400],[400,395],[334,333],[333,299],[299,334],[351,417],[417,168],[168,351],[352,280],[280,411],[411,352],[325,319],[319,320],[320,325],[295,296],[296,336],[336,295],[319,403],[403,404],[404,319],[330,348],[348,349],[349,330],[293,298],[298,333],[333,293],[323,454],[454,447],[447,323],[15,16],[16,315],[315,15],[358,429],[429,279],[279,358],[14,15],[15,316],[316,14],[285,336],[336,9],[9,285],[329,349],[349,350],[350,329],[374,380],[380,252],[252,374],[318,402],[402,403],[403,318],[6,197],[197,419],[419,6],[318,319],[319,325],[325,318],[367,364],[364,365],[365,367],[435,367],[367,397],[397,435],[344,438],[438,439],[439,344],[272,271],[271,311],[311,272],[195,5],[5,281],[281,195],[273,287],[287,291],[291,273],[396,428],[428,199],[199,396],[311,271],[271,268],[268,311],[283,444],[444,445],[445,283],[373,254],[254,339],[339,373],[282,334],[334,296],[296,282],[449,347],[347,346],[346,449],[264,447],[447,454],[454,264],[336,296],[296,299],[299,336],[338,10],[10,151],[151,338],[278,439],[439,455],[455,278],[292,407],[407,415],[415,292],[358,371],[371,355],[355,358],[340,345],[345,372],[372,340],[346,347],[347,280],[280,346],[442,443],[443,282],[282,442],[19,94],[94,370],[370,19],[441,442],[442,295],[295,441],[248,419],[419,197],[197,248],[263,255],[255,359],[359,263],[440,275],[275,274],[274,440],[300,383],[383,368],[368,300],[351,412],[412,465],[465,351],[263,467],[467,466],[466,263],[301,368],[368,389],[389,301],[395,378],[378,379],[379,395],[412,351],[351,419],[419,412],[436,426],[426,322],[322,436],[2,164],[164,393],[393,2],[370,462],[462,461],[461,370],[164,0],[0,267],[267,164],[302,11],[11,12],[12,302],[268,12],[12,13],[13,268],[293,300],[300,301],[301,293],[446,261],[261,340],[340,446],[330,266],[266,425],[425,330],[426,423],[423,391],[391,426],[429,355],[355,437],[437,429],[391,327],[327,326],[326,391],[440,457],[457,438],[438,440],[341,382],[382,362],[362,341],[459,457],[457,461],[461,459],[434,430],[430,394],[394,434],[414,463],[463,362],[362,414],[396,369],[369,262],[262,396],[354,461],[461,457],[457,354],[316,403],[403,402],[402,316],[315,404],[404,403],[403,315],[314,405],[405,404],[404,314],[313,406],[406,405],[405,313],[421,418],[418,406],[406,421],[366,401],[401,361],[361,366],[306,408],[408,407],[407,306],[291,409],[409,408],[408,291],[287,410],[410,409],[409,287],[432,436],[436,410],[410,432],[434,416],[416,411],[411,434],[264,368],[368,383],[383,264],[309,438],[438,457],[457,309],[352,376],[376,401],[401,352],[274,275],[275,4],[4,274],[421,428],[428,262],[262,421],[294,327],[327,358],[358,294],[433,416],[416,367],[367,433],[289,455],[455,439],[439,289],[462,370],[370,326],[326,462],[2,326],[326,370],[370,2],[305,460],[460,455],[455,305],[254,449],[449,448],[448,254],[255,261],[261,446],[446,255],[253,450],[450,449],[449,253],[252,451],[451,450],[450,252],[256,452],[452,451],[451,256],[341,453],[453,452],[452,341],[413,464],[464,463],[463,413],[441,413],[413,414],[414,441],[258,442],[442,441],[441,258],[257,443],[443,442],[442,257],[259,444],[444,443],[443,259],[260,445],[445,444],[444,260],[467,342],[342,445],[445,467],[459,458],[458,250],[250,459],[289,392],[392,290],[290,289],[290,328],[328,460],[460,290],[376,433],[433,435],[435,376],[250,290],[290,392],[392,250],[411,416],[416,433],[433,411],[341,463],[463,464],[464,341],[453,464],[464,465],[465,453],[357,465],[465,412],[412,357],[343,412],[412,399],[399,343],[360,363],[363,440],[440,360],[437,399],[399,456],[456,437],[420,456],[456,363],[363,420],[401,435],[435,288],[288,401],[372,383],[383,353],[353,372],[339,255],[255,249],[249,339],[448,261],[261,255],[255,448],[133,243],[243,190],[190,133],[133,155],[155,112],[112,133],[33,246],[246,247],[247,33],[33,130],[130,25],[25,33],[398,384],[384,286],[286,398],[362,398],[398,414],[414,362],[362,463],[463,341],[341,362],[263,359],[359,467],[467,263],[263,249],[249,255],[255,263],[466,467],[467,260],[260,466],[75,60],[60,166],[166,75],[238,239],[239,79],[79,238],[162,127],[127,139],[139,162],[72,11],[11,37],[37,72],[121,232],[232,120],[120,121],[73,72],[72,39],[39,73],[114,128],[128,47],[47,114],[233,232],[232,128],[128,233],[103,104],[104,67],[67,103],[152,175],[175,148],[148,152],[119,118],[118,101],[101,119],[74,73],[73,40],[40,74],[107,9],[9,108],[108,107],[49,48],[48,131],[131,49],[32,194],[194,211],[211,32],[184,74],[74,185],[185,184],[191,80],[80,183],[183,191],[185,40],[40,186],[186,185],[119,230],[230,118],[118,119],[210,202],[202,214],[214,210],[84,83],[83,17],[17,84],[77,76],[76,146],[146,77],[161,160],[160,30],[30,161],[190,56],[56,173],[173,190],[182,106],[106,194],[194,182],[138,135],[135,192],[192,138],[129,203],[203,98],[98,129],[54,21],[21,68],[68,54],[5,51],[51,4],[4,5],[145,144],[144,23],[23,145],[90,77],[77,91],[91,90],[207,205],[205,187],[187,207],[83,201],[201,18],[18,83],[181,91],[91,182],[182,181],[180,90],[90,181],[181,180],[16,85],[85,17],[17,16],[205,206],[206,36],[36,205],[176,148],[148,140],[140,176],[165,92],[92,39],[39,165],[245,193],[193,244],[244,245],[27,159],[159,28],[28,27],[30,247],[247,161],[161,30],[174,236],[236,196],[196,174],[103,54],[54,104],[104,103],[55,193],[193,8],[8,55],[111,117],[117,31],[31,111],[221,189],[189,55],[55,221],[240,98],[98,99],[99,240],[142,126],[126,100],[100,142],[219,166],[166,218],[218,219],[112,155],[155,26],[26,112],[198,209],[209,131],[131,198],[169,135],[135,150],[150,169],[114,47],[47,217],[217,114],[224,223],[223,53],[53,224],[220,45],[45,134],[134,220],[32,211],[211,140],[140,32],[109,67],[67,108],[108,109],[146,43],[43,91],[91,146],[231,230],[230,120],[120,231],[113,226],[226,247],[247,113],[105,63],[63,52],[52,105],[241,238],[238,242],[242,241],[124,46],[46,156],[156,124],[95,78],[78,96],[96,95],[70,46],[46,63],[63,70],[116,143],[143,227],[227,116],[116,123],[123,111],[111,116],[1,44],[44,19],[19,1],[3,236],[236,51],[51,3],[207,216],[216,205],[205,207],[26,154],[154,22],[22,26],[165,39],[39,167],[167,165],[199,200],[200,208],[208,199],[101,36],[36,100],[100,101],[43,57],[57,202],[202,43],[242,20],[20,99],[99,242],[56,28],[28,157],[157,56],[124,35],[35,113],[113,124],[29,160],[160,27],[27,29],[211,204],[204,210],[210,211],[124,113],[113,46],[46,124],[106,43],[43,204],[204,106],[96,62],[62,77],[77,96],[227,137],[137,116],[116,227],[73,41],[41,72],[72,73],[36,203],[203,142],[142,36],[235,64],[64,240],[240,235],[48,49],[49,64],[64,48],[42,41],[41,74],[74,42],[214,212],[212,207],[207,214],[183,42],[42,184],[184,183],[210,169],[169,211],[211,210],[140,170],[170,176],[176,140],[104,105],[105,69],[69,104],[193,122],[122,168],[168,193],[50,123],[123,187],[187,50],[89,96],[96,90],[90,89],[66,65],[65,107],[107,66],[179,89],[89,180],[180,179],[119,101],[101,120],[120,119],[68,63],[63,104],[104,68],[234,93],[93,227],[227,234],[16,15],[15,85],[85,16],[209,129],[129,49],[49,209],[15,14],[14,86],[86,15],[107,55],[55,9],[9,107],[120,100],[100,121],[121,120],[153,145],[145,22],[22,153],[178,88],[88,179],[179,178],[197,6],[6,196],[196,197],[89,88],[88,96],[96,89],[135,138],[138,136],[136,135],[138,215],[215,172],[172,138],[218,115],[115,219],[219,218],[41,42],[42,81],[81,41],[5,195],[195,51],[51,5],[57,43],[43,61],[61,57],[208,171],[171,199],[199,208],[41,81],[81,38],[38,41],[224,53],[53,225],[225,224],[24,144],[144,110],[110,24],[105,52],[52,66],[66,105],[118,229],[229,117],[117,118],[227,34],[34,234],[234,227],[66,107],[107,69],[69,66],[10,109],[109,151],[151,10],[219,48],[48,235],[235,219],[183,62],[62,191],[191,183],[142,129],[129,126],[126,142],[116,111],[111,143],[143,116],[118,117],[117,50],[50,118],[223,222],[222,52],[52,223],[94,19],[19,141],[141,94],[222,221],[221,65],[65,222],[196,3],[3,197],[197,196],[45,220],[220,44],[44,45],[156,70],[70,139],[139,156],[188,122],[122,245],[245,188],[139,71],[71,162],[162,139],[149,170],[170,150],[150,149],[122,188],[188,196],[196,122],[206,216],[216,92],[92,206],[164,2],[2,167],[167,164],[242,141],[141,241],[241,242],[0,164],[164,37],[37,0],[11,72],[72,12],[12,11],[12,38],[38,13],[13,12],[70,63],[63,71],[71,70],[31,226],[226,111],[111,31],[36,101],[101,205],[205,36],[203,206],[206,165],[165,203],[126,209],[209,217],[217,126],[98,165],[165,97],[97,98],[237,220],[220,218],[218,237],[237,239],[239,241],[241,237],[210,214],[214,169],[169,210],[140,171],[171,32],[32,140],[241,125],[125,237],[237,241],[179,86],[86,178],[178,179],[180,85],[85,179],[179,180],[181,84],[84,180],[180,181],[182,83],[83,181],[181,182],[194,201],[201,182],[182,194],[177,137],[137,132],[132,177],[184,76],[76,183],[183,184],[185,61],[61,184],[184,185],[186,57],[57,185],[185,186],[216,212],[212,186],[186,216],[192,214],[214,187],[187,192],[139,34],[34,156],[156,139],[218,79],[79,237],[237,218],[147,123],[123,177],[177,147],[45,44],[44,4],[4,45],[208,201],[201,32],[32,208],[98,64],[64,129],[129,98],[192,213],[213,138],[138,192],[235,59],[59,219],[219,235],[141,242],[242,97],[97,141],[97,2],[2,141],[141,97],[240,75],[75,235],[235,240],[229,24],[24,228],[228,229],[31,25],[25,226],[226,31],[230,23],[23,229],[229,230],[231,22],[22,230],[230,231],[232,26],[26,231],[231,232],[233,112],[112,232],[232,233],[244,189],[189,243],[243,244],[189,221],[221,190],[190,189],[222,28],[28,221],[221,222],[223,27],[27,222],[222,223],[224,29],[29,223],[223,224],[225,30],[30,224],[224,225],[113,247],[247,225],[225,113],[99,60],[60,240],[240,99],[213,147],[147,215],[215,213],[60,20],[20,166],[166,60],[192,187],[187,213],[213,192],[243,112],[112,244],[244,243],[244,233],[233,245],[245,244],[245,128],[128,188],[188,245],[188,114],[114,174],[174,188],[134,131],[131,220],[220,134],[174,217],[217,236],[236,174],[236,198],[198,134],[134,236],[215,177],[177,58],[58,215],[156,143],[143,124],[124,156],[25,110],[110,7],[7,25],[31,228],[228,25],[25,31],[264,356],[356,368],[368,264],[0,11],[11,267],[267,0],[451,452],[452,349],[349,451],[267,302],[302,269],[269,267],[350,357],[357,277],[277,350],[350,452],[452,357],[357,350],[299,333],[333,297],[297,299],[396,175],[175,377],[377,396],[280,347],[347,330],[330,280],[269,303],[303,270],[270,269],[151,9],[9,337],[337,151],[344,278],[278,360],[360,344],[424,418],[418,431],[431,424],[270,304],[304,409],[409,270],[272,310],[310,407],[407,272],[322,270],[270,410],[410,322],[449,450],[450,347],[347,449],[432,422],[422,434],[434,432],[18,313],[313,17],[17,18],[291,306],[306,375],[375,291],[259,387],[387,260],[260,259],[424,335],[335,418],[418,424],[434,364],[364,416],[416,434],[391,423],[423,327],[327,391],[301,251],[251,298],[298,301],[275,281],[281,4],[4,275],[254,373],[373,253],[253,254],[375,307],[307,321],[321,375],[280,425],[425,411],[411,280],[200,421],[421,18],[18,200],[335,321],[321,406],[406,335],[321,320],[320,405],[405,321],[314,315],[315,17],[17,314],[423,426],[426,266],[266,423],[396,377],[377,369],[369,396],[270,322],[322,269],[269,270],[413,417],[417,464],[464,413],[385,386],[386,258],[258,385],[248,456],[456,419],[419,248],[298,284],[284,333],[333,298],[168,417],[417,8],[8,168],[448,346],[346,261],[261,448],[417,413],[413,285],[285,417],[326,327],[327,328],[328,326],[277,355],[355,329],[329,277],[309,392],[392,438],[438,309],[381,382],[382,256],[256,381],[279,429],[429,360],[360,279],[365,364],[364,379],[379,365],[355,277],[277,437],[437,355],[282,443],[443,283],[283,282],[281,275],[275,363],[363,281],[395,431],[431,369],[369,395],[299,297],[297,337],[337,299],[335,273],[273,321],[321,335],[348,450],[450,349],[349,348],[359,446],[446,467],[467,359],[283,293],[293,282],[282,283],[250,458],[458,462],[462,250],[300,276],[276,383],[383,300],[292,308],[308,325],[325,292],[283,276],[276,293],[293,283],[264,372],[372,447],[447,264],[346,352],[352,340],[340,346],[354,274],[274,19],[19,354],[363,456],[456,281],[281,363],[426,436],[436,425],[425,426],[380,381],[381,252],[252,380],[267,269],[269,393],[393,267],[421,200],[200,428],[428,421],[371,266],[266,329],[329,371],[432,287],[287,422],[422,432],[290,250],[250,328],[328,290],[385,258],[258,384],[384,385],[446,265],[265,342],[342,446],[386,387],[387,257],[257,386],[422,424],[424,430],[430,422],[445,342],[342,276],[276,445],[422,273],[273,424],[424,422],[306,292],[292,307],[307,306],[352,366],[366,345],[345,352],[268,271],[271,302],[302,268],[358,423],[423,371],[371,358],[327,294],[294,460],[460,327],[331,279],[279,294],[294,331],[303,271],[271,304],[304,303],[436,432],[432,427],[427,436],[304,272],[272,408],[408,304],[395,394],[394,431],[431,395],[378,395],[395,400],[400,378],[296,334],[334,299],[299,296],[6,351],[351,168],[168,6],[376,352],[352,411],[411,376],[307,325],[325,320],[320,307],[285,295],[295,336],[336,285],[320,319],[319,404],[404,320],[329,330],[330,349],[349,329],[334,293],[293,333],[333,334],[366,323],[323,447],[447,366],[316,15],[15,315],[315,316],[331,358],[358,279],[279,331],[317,14],[14,316],[316,317],[8,285],[285,9],[9,8],[277,329],[329,350],[350,277],[253,374],[374,252],[252,253],[319,318],[318,403],[403,319],[351,6],[6,419],[419,351],[324,318],[318,325],[325,324],[397,367],[367,365],[365,397],[288,435],[435,397],[397,288],[278,344],[344,439],[439,278],[310,272],[272,311],[311,310],[248,195],[195,281],[281,248],[375,273],[273,291],[291,375],[175,396],[396,199],[199,175],[312,311],[311,268],[268,312],[276,283],[283,445],[445,276],[390,373],[373,339],[339,390],[295,282],[282,296],[296,295],[448,449],[449,346],[346,448],[356,264],[264,454],[454,356],[337,336],[336,299],[299,337],[337,338],[338,151],[151,337],[294,278],[278,455],[455,294],[308,292],[292,415],[415,308],[429,358],[358,355],[355,429],[265,340],[340,372],[372,265],[352,346],[346,280],[280,352],[295,442],[442,282],[282,295],[354,19],[19,370],[370,354],[285,441],[441,295],[295,285],[195,248],[248,197],[197,195],[457,440],[440,274],[274,457],[301,300],[300,368],[368,301],[417,351],[351,465],[465,417],[251,301],[301,389],[389,251],[394,395],[395,379],[379,394],[399,412],[412,419],[419,399],[410,436],[436,322],[322,410],[326,2],[2,393],[393,326],[354,370],[370,461],[461,354],[393,164],[164,267],[267,393],[268,302],[302,12],[12,268],[312,268],[268,13],[13,312],[298,293],[293,301],[301,298],[265,446],[446,340],[340,265],[280,330],[330,425],[425,280],[322,426],[426,391],[391,322],[420,429],[429,437],[437,420],[393,391],[391,326],[326,393],[344,440],[440,438],[438,344],[458,459],[459,461],[461,458],[364,434],[434,394],[394,364],[428,396],[396,262],[262,428],[274,354],[354,457],[457,274],[317,316],[316,402],[402,317],[316,315],[315,403],[403,316],[315,314],[314,404],[404,315],[314,313],[313,405],[405,314],[313,421],[421,406],[406,313],[323,366],[366,361],[361,323],[292,306],[306,407],[407,292],[306,291],[291,408],[408,306],[291,287],[287,409],[409,291],[287,432],[432,410],[410,287],[427,434],[434,411],[411,427],[372,264],[264,383],[383,372],[459,309],[309,457],[457,459],[366,352],[352,401],[401,366],[1,274],[274,4],[4,1],[418,421],[421,262],[262,418],[331,294],[294,358],[358,331],[435,433],[433,367],[367,435],[392,289],[289,439],[439,392],[328,462],[462,326],[326,328],[94,2],[2,370],[370,94],[289,305],[305,455],[455,289],[339,254],[254,448],[448,339],[359,255],[255,446],[446,359],[254,253],[253,449],[449,254],[253,252],[252,450],[450,253],[252,256],[256,451],[451,252],[256,341],[341,452],[452,256],[414,413],[413,463],[463,414],[286,441],[441,414],[414,286],[286,258],[258,441],[441,286],[258,257],[257,442],[442,258],[257,259],[259,443],[443,257],[259,260],[260,444],[444,259],[260,467],[467,445],[445,260],[309,459],[459,250],[250,309],[305,289],[289,290],[290,305],[305,290],[290,460],[460,305],[401,376],[376,435],[435,401],[309,250],[250,392],[392,309],[376,411],[411,433],[433,376],[453,341],[341,464],[464,453],[357,453],[453,465],[465,357],[343,357],[357,412],[412,343],[437,343],[343,399],[399,437],[344,360],[360,440],[440,344],[420,437],[437,456],[456,420],[360,420],[420,363],[363,360],[361,401],[401,288],[288,361],[265,372],[372,353],[353,265],[390,339],[339,249],[249,390],[339,448],[448,255],[255,339]);function uh(t){t.j={faceLandmarks:[],faceBlendshapes:[],facialTransformationMatrixes:[]}}var lh=class extends Za{constructor(t,e){super(new za(t,e),"image_in","norm_rect",!1),this.j={faceLandmarks:[],faceBlendshapes:[],facialTransformationMatrixes:[]},this.outputFacialTransformationMatrixes=this.outputFaceBlendshapes=!1,yn(t=this.h=new Ds,0,1,e=new xs),this.v=new Us,yn(this.h,0,3,this.v),this.s=new Fs,yn(this.h,0,2,this.s),xn(this.s,4,1),Ln(this.s,2,.5),Ln(this.v,2,.5),Ln(this.h,4,.5)}get baseOptions(){return pn(this.h,xs,1)}set baseOptions(t){yn(this.h,0,1,t)}o(t){return"numFaces"in t&&xn(this.s,4,t.numFaces??1),"minFaceDetectionConfidence"in t&&Ln(this.s,2,t.minFaceDetectionConfidence??.5),"minTrackingConfidence"in t&&Ln(this.h,4,t.minTrackingConfidence??.5),"minFacePresenceConfidence"in t&&Ln(this.v,2,t.minFacePresenceConfidence??.5),"outputFaceBlendshapes"in t&&(this.outputFaceBlendshapes=!!t.outputFaceBlendshapes),"outputFacialTransformationMatrixes"in t&&(this.outputFacialTransformationMatrixes=!!t.outputFacialTransformationMatrixes),this.l(t)}D(t,e){return uh(this),$a(this,t,e),this.j}F(t,e,n){return uh(this),qa(this,t,n,e),this.j}m(){var t=new $i;Ki(t,"image_in"),Ki(t,"norm_rect"),Yi(t,"face_landmarks");const e=new Ci;er(e,js,this.h);const n=new Vi;Bi(n,"mediapipe.tasks.vision.face_landmarker.FaceLandmarkerGraph"),Gi(n,"IMAGE:image_in"),Gi(n,"NORM_RECT:norm_rect"),ji(n,"NORM_LANDMARKS:face_landmarks"),n.o(e),zi(t,n),this.g.attachProtoVectorListener("face_landmarks",((t,e)=>{for(const e of t)t=cs(e),this.j.faceLandmarks.push(Ro(t));$o(this,e)})),this.g.attachEmptyPacketListener("face_landmarks",(t=>{$o(this,t)})),this.outputFaceBlendshapes&&(Yi(t,"blendshapes"),ji(n,"BLENDSHAPES:blendshapes"),this.g.attachProtoVectorListener("blendshapes",((t,e)=>{if(this.outputFaceBlendshapes)for(const e of t)t=es(e),this.j.faceBlendshapes.push(xo(t.g()??[]));$o(this,e)})),this.g.attachEmptyPacketListener("blendshapes",(t=>{$o(this,t)}))),this.outputFacialTransformationMatrixes&&(Yi(t,"face_geometry"),ji(n,"FACE_GEOMETRY:face_geometry"),this.g.attachProtoVectorListener("face_geometry",((t,e)=>{if(this.outputFacialTransformationMatrixes)for(const e of t)(t=pn(Cs(e),us,2))&&this.j.facialTransformationMatrixes.push({rows:Tn(An(t,1),0)??0,columns:Tn(An(t,2),0)??0,data:en(t,3,Ht,tn()).slice()??[]});$o(this,e)})),this.g.attachEmptyPacketListener("face_geometry",(t=>{$o(this,t)}))),t=t.g(),this.setGraph(new Uint8Array(t),!0)}};lh.prototype.detectForVideo=lh.prototype.F,lh.prototype.detect=lh.prototype.D,lh.prototype.setOptions=lh.prototype.o,lh.createFromModelPath=function(t,e){return Ka(lh,t,{baseOptions:{modelAssetPath:e}})},lh.createFromModelBuffer=function(t,e){return Ka(lh,t,{baseOptions:{modelAssetBuffer:e}})},lh.createFromOptions=function(t,e){return Ka(lh,t,e)},lh.FACE_LANDMARKS_LIPS=th,lh.FACE_LANDMARKS_LEFT_EYE=eh,lh.FACE_LANDMARKS_LEFT_EYEBROW=nh,lh.FACE_LANDMARKS_LEFT_IRIS=rh,lh.FACE_LANDMARKS_RIGHT_EYE=ih,lh.FACE_LANDMARKS_RIGHT_EYEBROW=sh,lh.FACE_LANDMARKS_RIGHT_IRIS=oh,lh.FACE_LANDMARKS_FACE_OVAL=ah,lh.FACE_LANDMARKS_CONTOURS=hh,lh.FACE_LANDMARKS_TESSELATION=ch;var fh=class extends Za{constructor(t,e){super(new za(t,e),"image_in","norm_rect",!0),yn(t=this.j=new Vs,0,1,e=new xs)}get baseOptions(){return pn(this.j,xs,1)}set baseOptions(t){yn(this.j,0,1,t)}o(t){return super.l(t)}Ra(t,e,n){const r="function"!=typeof e?e:{};if(this.h="function"==typeof e?e:n,$a(this,t,r??{}),!this.h)return this.s}m(){var t=new $i;Ki(t,"image_in"),Ki(t,"norm_rect"),Yi(t,"stylized_image");const e=new Ci;er(e,Xs,this.j);const n=new Vi;Bi(n,"mediapipe.tasks.vision.face_stylizer.FaceStylizerGraph"),Gi(n,"IMAGE:image_in"),Gi(n,"NORM_RECT:norm_rect"),ji(n,"STYLIZED_IMAGE:stylized_image"),n.o(e),zi(t,n),this.g.W("stylized_image",((t,e)=>{var n=!this.h,r=t.data,i=t.width;const s=i*(t=t.height);if(r instanceof Uint8Array)if(r.length===3*s){const e=new Uint8ClampedArray(4*s);for(let t=0;t{this.s=null,this.h&&this.h(null),$o(this,t)})),t=t.g(),this.setGraph(new Uint8Array(t),!0)}};fh.prototype.stylize=fh.prototype.Ra,fh.prototype.setOptions=fh.prototype.o,fh.createFromModelPath=function(t,e){return Ka(fh,t,{baseOptions:{modelAssetPath:e}})},fh.createFromModelBuffer=function(t,e){return Ka(fh,t,{baseOptions:{modelAssetBuffer:e}})},fh.createFromOptions=function(t,e){return Ka(fh,t,e)};var dh=Xa([0,1],[1,2],[2,3],[3,4],[0,5],[5,6],[6,7],[7,8],[5,9],[9,10],[10,11],[11,12],[9,13],[13,14],[14,15],[15,16],[13,17],[0,17],[17,18],[18,19],[19,20]);function ph(t){t.gestures=[],t.landmarks=[],t.worldLandmarks=[],t.handedness=[]}function gh(t){return 0===t.gestures.length?{gestures:[],landmarks:[],worldLandmarks:[],handedness:[],handednesses:[]}:{gestures:t.gestures,landmarks:t.landmarks,worldLandmarks:t.worldLandmarks,handedness:t.handedness,handednesses:t.handedness}}function mh(t,e=!0){const n=[];for(const i of t){var r=es(i);t=[];for(const n of r.g())r=e&&null!=An(n,1)?Tn(An(n,1),0):-1,t.push({score:bn(n,2)??0,index:r,categoryName:kn(n,3)??"",displayName:kn(n,4)??""});n.push(t)}return n}var yh=class extends Za{constructor(t,e){super(new za(t,e),"image_in","norm_rect",!1),this.gestures=[],this.landmarks=[],this.worldLandmarks=[],this.handedness=[],yn(t=this.j=new Js,0,1,e=new xs),this.s=new qs,yn(this.j,0,2,this.s),this.C=new $s,yn(this.s,0,3,this.C),this.v=new Ys,yn(this.s,0,2,this.v),this.h=new Ks,yn(this.j,0,3,this.h),Ln(this.v,2,.5),Ln(this.s,4,.5),Ln(this.C,2,.5)}get baseOptions(){return pn(this.j,xs,1)}set baseOptions(t){yn(this.j,0,1,t)}o(t){if(xn(this.v,3,t.numHands??1),"minHandDetectionConfidence"in t&&Ln(this.v,2,t.minHandDetectionConfidence??.5),"minTrackingConfidence"in t&&Ln(this.s,4,t.minTrackingConfidence??.5),"minHandPresenceConfidence"in t&&Ln(this.C,2,t.minHandPresenceConfidence??.5),t.cannedGesturesClassifierOptions){var e=new Hs,n=e,r=So(t.cannedGesturesClassifierOptions,pn(this.h,Hs,3)?.h());yn(n,0,2,r),yn(this.h,0,3,e)}else void 0===t.cannedGesturesClassifierOptions&&pn(this.h,Hs,3)?.g();return t.customGesturesClassifierOptions?(yn(n=e=new Hs,0,2,r=So(t.customGesturesClassifierOptions,pn(this.h,Hs,4)?.h())),yn(this.h,0,4,e)):void 0===t.customGesturesClassifierOptions&&pn(this.h,Hs,4)?.g(),this.l(t)}Ma(t,e){return ph(this),$a(this,t,e),gh(this)}Na(t,e,n){return ph(this),qa(this,t,n,e),gh(this)}m(){var t=new $i;Ki(t,"image_in"),Ki(t,"norm_rect"),Yi(t,"hand_gestures"),Yi(t,"hand_landmarks"),Yi(t,"world_hand_landmarks"),Yi(t,"handedness");const e=new Ci;er(e,io,this.j);const n=new Vi;Bi(n,"mediapipe.tasks.vision.gesture_recognizer.GestureRecognizerGraph"),Gi(n,"IMAGE:image_in"),Gi(n,"NORM_RECT:norm_rect"),ji(n,"HAND_GESTURES:hand_gestures"),ji(n,"LANDMARKS:hand_landmarks"),ji(n,"WORLD_LANDMARKS:world_hand_landmarks"),ji(n,"HANDEDNESS:handedness"),n.o(e),zi(t,n),this.g.attachProtoVectorListener("hand_landmarks",((t,e)=>{for(const e of t){t=cs(e);const n=[];for(const e of mn(t,hs,1))n.push({x:bn(e,1)??0,y:bn(e,2)??0,z:bn(e,3)??0,visibility:bn(e,4)??0});this.landmarks.push(n)}$o(this,e)})),this.g.attachEmptyPacketListener("hand_landmarks",(t=>{$o(this,t)})),this.g.attachProtoVectorListener("world_hand_landmarks",((t,e)=>{for(const e of t){t=as(e);const n=[];for(const e of mn(t,os,1))n.push({x:bn(e,1)??0,y:bn(e,2)??0,z:bn(e,3)??0,visibility:bn(e,4)??0});this.worldLandmarks.push(n)}$o(this,e)})),this.g.attachEmptyPacketListener("world_hand_landmarks",(t=>{$o(this,t)})),this.g.attachProtoVectorListener("hand_gestures",((t,e)=>{this.gestures.push(...mh(t,!1)),$o(this,e)})),this.g.attachEmptyPacketListener("hand_gestures",(t=>{$o(this,t)})),this.g.attachProtoVectorListener("handedness",((t,e)=>{this.handedness.push(...mh(t)),$o(this,e)})),this.g.attachEmptyPacketListener("handedness",(t=>{$o(this,t)})),t=t.g(),this.setGraph(new Uint8Array(t),!0)}};function _h(t){return{landmarks:t.landmarks,worldLandmarks:t.worldLandmarks,handednesses:t.handedness,handedness:t.handedness}}yh.prototype.recognizeForVideo=yh.prototype.Na,yh.prototype.recognize=yh.prototype.Ma,yh.prototype.setOptions=yh.prototype.o,yh.createFromModelPath=function(t,e){return Ka(yh,t,{baseOptions:{modelAssetPath:e}})},yh.createFromModelBuffer=function(t,e){return Ka(yh,t,{baseOptions:{modelAssetBuffer:e}})},yh.createFromOptions=function(t,e){return Ka(yh,t,e)},yh.HAND_CONNECTIONS=dh;var vh=class extends Za{constructor(t,e){super(new za(t,e),"image_in","norm_rect",!1),this.landmarks=[],this.worldLandmarks=[],this.handedness=[],yn(t=this.h=new qs,0,1,e=new xs),this.s=new $s,yn(this.h,0,3,this.s),this.j=new Ys,yn(this.h,0,2,this.j),xn(this.j,3,1),Ln(this.j,2,.5),Ln(this.s,2,.5),Ln(this.h,4,.5)}get baseOptions(){return pn(this.h,xs,1)}set baseOptions(t){yn(this.h,0,1,t)}o(t){return"numHands"in t&&xn(this.j,3,t.numHands??1),"minHandDetectionConfidence"in t&&Ln(this.j,2,t.minHandDetectionConfidence??.5),"minTrackingConfidence"in t&&Ln(this.h,4,t.minTrackingConfidence??.5),"minHandPresenceConfidence"in t&&Ln(this.s,2,t.minHandPresenceConfidence??.5),this.l(t)}D(t,e){return this.landmarks=[],this.worldLandmarks=[],this.handedness=[],$a(this,t,e),_h(this)}F(t,e,n){return this.landmarks=[],this.worldLandmarks=[],this.handedness=[],qa(this,t,n,e),_h(this)}m(){var t=new $i;Ki(t,"image_in"),Ki(t,"norm_rect"),Yi(t,"hand_landmarks"),Yi(t,"world_hand_landmarks"),Yi(t,"handedness");const e=new Ci;er(e,ro,this.h);const n=new Vi;Bi(n,"mediapipe.tasks.vision.hand_landmarker.HandLandmarkerGraph"),Gi(n,"IMAGE:image_in"),Gi(n,"NORM_RECT:norm_rect"),ji(n,"LANDMARKS:hand_landmarks"),ji(n,"WORLD_LANDMARKS:world_hand_landmarks"),ji(n,"HANDEDNESS:handedness"),n.o(e),zi(t,n),this.g.attachProtoVectorListener("hand_landmarks",((t,e)=>{for(const e of t)t=cs(e),this.landmarks.push(Ro(t));$o(this,e)})),this.g.attachEmptyPacketListener("hand_landmarks",(t=>{$o(this,t)})),this.g.attachProtoVectorListener("world_hand_landmarks",((t,e)=>{for(const e of t)t=as(e),this.worldLandmarks.push(Fo(t));$o(this,e)})),this.g.attachEmptyPacketListener("world_hand_landmarks",(t=>{$o(this,t)})),this.g.attachProtoVectorListener("handedness",((t,e)=>{var n=this.handedness,r=n.push;const i=[];for(const e of t){t=es(e);const n=[];for(const e of t.g())n.push({score:bn(e,2)??0,index:Tn(An(e,1),0)??-1,categoryName:kn(e,3)??"",displayName:kn(e,4)??""});i.push(n)}r.call(n,...i),$o(this,e)})),this.g.attachEmptyPacketListener("handedness",(t=>{$o(this,t)})),t=t.g(),this.setGraph(new Uint8Array(t),!0)}};vh.prototype.detectForVideo=vh.prototype.F,vh.prototype.detect=vh.prototype.D,vh.prototype.setOptions=vh.prototype.o,vh.createFromModelPath=function(t,e){return Ka(vh,t,{baseOptions:{modelAssetPath:e}})},vh.createFromModelBuffer=function(t,e){return Ka(vh,t,{baseOptions:{modelAssetBuffer:e}})},vh.createFromOptions=function(t,e){return Ka(vh,t,e)},vh.HAND_CONNECTIONS=dh;var Eh=Xa([0,1],[1,2],[2,3],[3,7],[0,4],[4,5],[5,6],[6,8],[9,10],[11,12],[11,13],[13,15],[15,17],[15,19],[15,21],[17,19],[12,14],[14,16],[16,18],[16,20],[16,22],[18,20],[11,23],[12,24],[23,24],[23,25],[24,26],[25,27],[26,28],[27,29],[28,30],[29,31],[30,32],[27,31],[28,32]);function wh(t){t.h={faceLandmarks:[],faceBlendshapes:[],poseLandmarks:[],poseWorldLandmarks:[],poseSegmentationMasks:[],leftHandLandmarks:[],leftHandWorldLandmarks:[],rightHandLandmarks:[],rightHandWorldLandmarks:[]}}function Th(t){try{if(!t.C)return t.h;t.C(t.h)}finally{Zo(t)}}function Ah(t,e){t=cs(t),e.push(Ro(t))}var bh=class extends Za{constructor(t,e){super(new za(t,e),"input_frames_image",null,!1),this.h={faceLandmarks:[],faceBlendshapes:[],poseLandmarks:[],poseWorldLandmarks:[],poseSegmentationMasks:[],leftHandLandmarks:[],leftHandWorldLandmarks:[],rightHandLandmarks:[],rightHandWorldLandmarks:[]},this.outputPoseSegmentationMasks=this.outputFaceBlendshapes=!1,yn(t=this.j=new ho,0,1,e=new xs),this.K=new $s,yn(this.j,0,2,this.K),this.ca=new so,yn(this.j,0,3,this.ca),this.s=new Fs,yn(this.j,0,4,this.s),this.I=new Us,yn(this.j,0,5,this.I),this.v=new oo,yn(this.j,0,6,this.v),this.L=new ao,yn(this.j,0,7,this.L),Ln(this.s,2,.5),Ln(this.s,3,.3),Ln(this.I,2,.5),Ln(this.v,2,.5),Ln(this.v,3,.3),Ln(this.L,2,.5),Ln(this.K,2,.5)}get baseOptions(){return pn(this.j,xs,1)}set baseOptions(t){yn(this.j,0,1,t)}o(t){return"minFaceDetectionConfidence"in t&&Ln(this.s,2,t.minFaceDetectionConfidence??.5),"minFaceSuppressionThreshold"in t&&Ln(this.s,3,t.minFaceSuppressionThreshold??.3),"minFacePresenceConfidence"in t&&Ln(this.I,2,t.minFacePresenceConfidence??.5),"outputFaceBlendshapes"in t&&(this.outputFaceBlendshapes=!!t.outputFaceBlendshapes),"minPoseDetectionConfidence"in t&&Ln(this.v,2,t.minPoseDetectionConfidence??.5),"minPoseSuppressionThreshold"in t&&Ln(this.v,3,t.minPoseSuppressionThreshold??.3),"minPosePresenceConfidence"in t&&Ln(this.L,2,t.minPosePresenceConfidence??.5),"outputPoseSegmentationMasks"in t&&(this.outputPoseSegmentationMasks=!!t.outputPoseSegmentationMasks),"minHandLandmarksConfidence"in t&&Ln(this.K,2,t.minHandLandmarksConfidence??.5),this.l(t)}D(t,e,n){const r="function"!=typeof e?e:{};return this.C="function"==typeof e?e:n,wh(this),$a(this,t,r),Th(this)}F(t,e,n,r){const i="function"!=typeof n?n:{};return this.C="function"==typeof n?n:r,wh(this),qa(this,t,i,e),Th(this)}m(){var t=new $i;Ki(t,"input_frames_image"),Yi(t,"pose_landmarks"),Yi(t,"pose_world_landmarks"),Yi(t,"face_landmarks"),Yi(t,"left_hand_landmarks"),Yi(t,"left_hand_world_landmarks"),Yi(t,"right_hand_landmarks"),Yi(t,"right_hand_world_landmarks");const e=new Ci,n=new ki;an(n,1,ne("type.googleapis.com/mediapipe.tasks.vision.holistic_landmarker.proto.HolisticLandmarkerGraphOptions"),""),function(t,e){if(null!=e)if(Array.isArray(e))$e(t,2,De(e,Ge,void 0,void 0,!1));else{if(!("string"==typeof e||e instanceof D||I(e)))throw Error("invalid value in Any.value field: "+e+" expected a ByteString, a base64 encoded string, a Uint8Array or a jspb array");an(t,2,lt(e,!1,!1),N())}}(n,this.j.g());const r=new Vi;Bi(r,"mediapipe.tasks.vision.holistic_landmarker.HolisticLandmarkerGraph"),wn(r,8,ki,n),Gi(r,"IMAGE:input_frames_image"),ji(r,"POSE_LANDMARKS:pose_landmarks"),ji(r,"POSE_WORLD_LANDMARKS:pose_world_landmarks"),ji(r,"FACE_LANDMARKS:face_landmarks"),ji(r,"LEFT_HAND_LANDMARKS:left_hand_landmarks"),ji(r,"LEFT_HAND_WORLD_LANDMARKS:left_hand_world_landmarks"),ji(r,"RIGHT_HAND_LANDMARKS:right_hand_landmarks"),ji(r,"RIGHT_HAND_WORLD_LANDMARKS:right_hand_world_landmarks"),r.o(e),zi(t,r),qo(this,t),this.g.attachProtoListener("pose_landmarks",((t,e)=>{Ah(t,this.h.poseLandmarks),$o(this,e)})),this.g.attachEmptyPacketListener("pose_landmarks",(t=>{$o(this,t)})),this.g.attachProtoListener("pose_world_landmarks",((t,e)=>{var n=this.h.poseWorldLandmarks;t=as(t),n.push(Fo(t)),$o(this,e)})),this.g.attachEmptyPacketListener("pose_world_landmarks",(t=>{$o(this,t)})),this.outputPoseSegmentationMasks&&(ji(r,"POSE_SEGMENTATION_MASK:pose_segmentation_mask"),Jo(this,"pose_segmentation_mask"),this.g.W("pose_segmentation_mask",((t,e)=>{this.h.poseSegmentationMasks=[Ja(this,t,!0,!this.C)],$o(this,e)})),this.g.attachEmptyPacketListener("pose_segmentation_mask",(t=>{this.h.poseSegmentationMasks=[],$o(this,t)}))),this.g.attachProtoListener("face_landmarks",((t,e)=>{Ah(t,this.h.faceLandmarks),$o(this,e)})),this.g.attachEmptyPacketListener("face_landmarks",(t=>{$o(this,t)})),this.outputFaceBlendshapes&&(Yi(t,"extra_blendshapes"),ji(r,"FACE_BLENDSHAPES:extra_blendshapes"),this.g.attachProtoListener("extra_blendshapes",((t,e)=>{var n=this.h.faceBlendshapes;this.outputFaceBlendshapes&&(t=es(t),n.push(xo(t.g()??[]))),$o(this,e)})),this.g.attachEmptyPacketListener("extra_blendshapes",(t=>{$o(this,t)}))),this.g.attachProtoListener("left_hand_landmarks",((t,e)=>{Ah(t,this.h.leftHandLandmarks),$o(this,e)})),this.g.attachEmptyPacketListener("left_hand_landmarks",(t=>{$o(this,t)})),this.g.attachProtoListener("left_hand_world_landmarks",((t,e)=>{var n=this.h.leftHandWorldLandmarks;t=as(t),n.push(Fo(t)),$o(this,e)})),this.g.attachEmptyPacketListener("left_hand_world_landmarks",(t=>{$o(this,t)})),this.g.attachProtoListener("right_hand_landmarks",((t,e)=>{Ah(t,this.h.rightHandLandmarks),$o(this,e)})),this.g.attachEmptyPacketListener("right_hand_landmarks",(t=>{$o(this,t)})),this.g.attachProtoListener("right_hand_world_landmarks",((t,e)=>{var n=this.h.rightHandWorldLandmarks;t=as(t),n.push(Fo(t)),$o(this,e)})),this.g.attachEmptyPacketListener("right_hand_world_landmarks",(t=>{$o(this,t)})),t=t.g(),this.setGraph(new Uint8Array(t),!0)}};bh.prototype.detectForVideo=bh.prototype.F,bh.prototype.detect=bh.prototype.D,bh.prototype.setOptions=bh.prototype.o,bh.createFromModelPath=function(t,e){return Ka(bh,t,{baseOptions:{modelAssetPath:e}})},bh.createFromModelBuffer=function(t,e){return Ka(bh,t,{baseOptions:{modelAssetBuffer:e}})},bh.createFromOptions=function(t,e){return Ka(bh,t,e)},bh.HAND_CONNECTIONS=dh,bh.POSE_CONNECTIONS=Eh,bh.FACE_LANDMARKS_LIPS=th,bh.FACE_LANDMARKS_LEFT_EYE=eh,bh.FACE_LANDMARKS_LEFT_EYEBROW=nh,bh.FACE_LANDMARKS_LEFT_IRIS=rh,bh.FACE_LANDMARKS_RIGHT_EYE=ih,bh.FACE_LANDMARKS_RIGHT_EYEBROW=sh,bh.FACE_LANDMARKS_RIGHT_IRIS=oh,bh.FACE_LANDMARKS_FACE_OVAL=ah,bh.FACE_LANDMARKS_CONTOURS=hh,bh.FACE_LANDMARKS_TESSELATION=ch;var kh=class extends Za{constructor(t,e){super(new za(t,e),"input_image","norm_rect",!0),this.j={classifications:[]},yn(t=this.h=new lo,0,1,e=new xs)}get baseOptions(){return pn(this.h,xs,1)}set baseOptions(t){yn(this.h,0,1,t)}o(t){return yn(this.h,0,2,So(t,pn(this.h,Es,2))),this.l(t)}wa(t,e){return this.j={classifications:[]},$a(this,t,e),this.j}xa(t,e,n){return this.j={classifications:[]},qa(this,t,n,e),this.j}m(){var t=new $i;Ki(t,"input_image"),Ki(t,"norm_rect"),Yi(t,"classifications");const e=new Ci;er(e,fo,this.h);const n=new Vi;Bi(n,"mediapipe.tasks.vision.image_classifier.ImageClassifierGraph"),Gi(n,"IMAGE:input_image"),Gi(n,"NORM_RECT:norm_rect"),ji(n,"CLASSIFICATIONS:classifications"),n.o(e),zi(t,n),this.g.attachProtoListener("classifications",((t,e)=>{this.j=function(t){const e={classifications:mn(t,ds,1).map((t=>xo(pn(t,Qi,4)?.g()??[],Tn(An(t,2),0),kn(t,3))))};return null!=Qt(ze(t,2))&&(e.timestampMs=Tn(Qt(ze(t,2)),0)),e}(ps(t)),$o(this,e)})),this.g.attachEmptyPacketListener("classifications",(t=>{$o(this,t)})),t=t.g(),this.setGraph(new Uint8Array(t),!0)}};kh.prototype.classifyForVideo=kh.prototype.xa,kh.prototype.classify=kh.prototype.wa,kh.prototype.setOptions=kh.prototype.o,kh.createFromModelPath=function(t,e){return Ka(kh,t,{baseOptions:{modelAssetPath:e}})},kh.createFromModelBuffer=function(t,e){return Ka(kh,t,{baseOptions:{modelAssetBuffer:e}})},kh.createFromOptions=function(t,e){return Ka(kh,t,e)};var Sh=class extends Za{constructor(t,e){super(new za(t,e),"image_in","norm_rect",!0),this.h=new po,this.embeddings={embeddings:[]},yn(t=this.h,0,1,e=new xs)}get baseOptions(){return pn(this.h,xs,1)}set baseOptions(t){yn(this.h,0,1,t)}o(t){var e=this.h,n=pn(this.h,Ts,2);return n=n?n.clone():new Ts,void 0!==t.l2Normalize?Sn(n,1,t.l2Normalize):"l2Normalize"in t&&$e(n,1),void 0!==t.quantize?Sn(n,2,t.quantize):"quantize"in t&&$e(n,2),yn(e,0,2,n),this.l(t)}Da(t,e){return $a(this,t,e),this.embeddings}Ea(t,e,n){return qa(this,t,n,e),this.embeddings}m(){var t=new $i;Ki(t,"image_in"),Ki(t,"norm_rect"),Yi(t,"embeddings_out");const e=new Ci;er(e,go,this.h);const n=new Vi;Bi(n,"mediapipe.tasks.vision.image_embedder.ImageEmbedderGraph"),Gi(n,"IMAGE:image_in"),Gi(n,"NORM_RECT:norm_rect"),ji(n,"EMBEDDINGS:embeddings_out"),n.o(e),zi(t,n),this.g.attachProtoListener("embeddings_out",((t,e)=>{t=vs(t),this.embeddings=function(t){return{embeddings:mn(t,ys,1).map((t=>{const e={headIndex:Tn(An(t,3),0)??-1,headName:kn(t,4)??""};if(void 0!==dn(t,gs,hn(t,1)))t=en(t=pn(t,gs,hn(t,1)),1,Ht,tn()),e.floatEmbedding=t.slice();else{const n=new Uint8Array(0);e.quantizedEmbedding=pn(t,ms,hn(t,2))?.ra()?.ua()??n}return e})),timestampMs:Tn(Qt(ze(t,2)),0)}}(t),$o(this,e)})),this.g.attachEmptyPacketListener("embeddings_out",(t=>{$o(this,t)})),t=t.g(),this.setGraph(new Uint8Array(t),!0)}};Sh.cosineSimilarity=function(t,e){if(t.floatEmbedding&&e.floatEmbedding)t=Io(t.floatEmbedding,e.floatEmbedding);else{if(!t.quantizedEmbedding||!e.quantizedEmbedding)throw Error("Cannot compute cosine similarity between quantized and float embeddings.");t=Io(Mo(t.quantizedEmbedding),Mo(e.quantizedEmbedding))}return t},Sh.prototype.embedForVideo=Sh.prototype.Ea,Sh.prototype.embed=Sh.prototype.Da,Sh.prototype.setOptions=Sh.prototype.o,Sh.createFromModelPath=function(t,e){return Ka(Sh,t,{baseOptions:{modelAssetPath:e}})},Sh.createFromModelBuffer=function(t,e){return Ka(Sh,t,{baseOptions:{modelAssetBuffer:e}})},Sh.createFromOptions=function(t,e){return Ka(Sh,t,e)};var xh=class{constructor(t,e,n){this.confidenceMasks=t,this.categoryMask=e,this.qualityScores=n}close(){this.confidenceMasks?.forEach((t=>{t.close()})),this.categoryMask?.close()}};function Lh(t){t.categoryMask=void 0,t.confidenceMasks=void 0,t.qualityScores=void 0}function Rh(t){try{const e=new xh(t.confidenceMasks,t.categoryMask,t.qualityScores);if(!t.j)return e;t.j(e)}finally{Zo(t)}}xh.prototype.close=xh.prototype.close;var Fh=class extends Za{constructor(t,e){super(new za(t,e),"image_in","norm_rect",!1),this.s=[],this.outputCategoryMask=!1,this.outputConfidenceMasks=!0,this.h=new Eo,this.v=new mo,yn(this.h,0,3,this.v),yn(t=this.h,0,1,e=new xs)}get baseOptions(){return pn(this.h,xs,1)}set baseOptions(t){yn(this.h,0,1,t)}o(t){return void 0!==t.displayNamesLocale?$e(this.h,2,ne(t.displayNamesLocale)):"displayNamesLocale"in t&&$e(this.h,2),"outputCategoryMask"in t&&(this.outputCategoryMask=t.outputCategoryMask??!1),"outputConfidenceMasks"in t&&(this.outputConfidenceMasks=t.outputConfidenceMasks??!0),super.l(t)}J(){!function(t){const e=mn(t.ga(),Vi,1).filter((t=>kn(t,1).includes("mediapipe.tasks.TensorsToSegmentationCalculator")));if(t.s=[],e.length>1)throw Error("The graph has more than one mediapipe.tasks.TensorsToSegmentationCalculator.");1===e.length&&(pn(e[0],Ci,7)?.l()?.g()??new Map).forEach(((e,n)=>{t.s[Number(n)]=kn(e,1)}))}(this)}ha(t,e,n){const r="function"!=typeof e?e:{};return this.j="function"==typeof e?e:n,Lh(this),$a(this,t,r),Rh(this)}Pa(t,e,n,r){const i="function"!=typeof n?n:{};return this.j="function"==typeof n?n:r,Lh(this),qa(this,t,i,e),Rh(this)}Ha(){return this.s}m(){var t=new $i;Ki(t,"image_in"),Ki(t,"norm_rect");const e=new Ci;er(e,wo,this.h);const n=new Vi;Bi(n,"mediapipe.tasks.vision.image_segmenter.ImageSegmenterGraph"),Gi(n,"IMAGE:image_in"),Gi(n,"NORM_RECT:norm_rect"),n.o(e),zi(t,n),qo(this,t),this.outputConfidenceMasks&&(Yi(t,"confidence_masks"),ji(n,"CONFIDENCE_MASKS:confidence_masks"),Jo(this,"confidence_masks"),this.g.fa("confidence_masks",((t,e)=>{this.confidenceMasks=t.map((t=>Ja(this,t,!0,!this.j))),$o(this,e)})),this.g.attachEmptyPacketListener("confidence_masks",(t=>{this.confidenceMasks=[],$o(this,t)}))),this.outputCategoryMask&&(Yi(t,"category_mask"),ji(n,"CATEGORY_MASK:category_mask"),Jo(this,"category_mask"),this.g.W("category_mask",((t,e)=>{this.categoryMask=Ja(this,t,!1,!this.j),$o(this,e)})),this.g.attachEmptyPacketListener("category_mask",(t=>{this.categoryMask=void 0,$o(this,t)}))),Yi(t,"quality_scores"),ji(n,"QUALITY_SCORES:quality_scores"),this.g.attachFloatVectorListener("quality_scores",((t,e)=>{this.qualityScores=t,$o(this,e)})),this.g.attachEmptyPacketListener("quality_scores",(t=>{this.categoryMask=void 0,$o(this,t)})),t=t.g(),this.setGraph(new Uint8Array(t),!0)}};Fh.prototype.getLabels=Fh.prototype.Ha,Fh.prototype.segmentForVideo=Fh.prototype.Pa,Fh.prototype.segment=Fh.prototype.ha,Fh.prototype.setOptions=Fh.prototype.o,Fh.createFromModelPath=function(t,e){return Ka(Fh,t,{baseOptions:{modelAssetPath:e}})},Fh.createFromModelBuffer=function(t,e){return Ka(Fh,t,{baseOptions:{modelAssetBuffer:e}})},Fh.createFromOptions=function(t,e){return Ka(Fh,t,e)};var Mh=class{constructor(t,e,n){this.confidenceMasks=t,this.categoryMask=e,this.qualityScores=n}close(){this.confidenceMasks?.forEach((t=>{t.close()})),this.categoryMask?.close()}};Mh.prototype.close=Mh.prototype.close;var Ih=class extends nr{constructor(t){super(t)}},Ph=[0,ai,-2],Oh=[0,ti,-3,ui,ti,-1],Ch=[0,Oh],Nh=[0,Oh,ai,-1],Uh=class extends nr{constructor(t){super(t)}},Dh=[0,ti,-1,ui],Bh=class extends nr{constructor(){super()}},Gh=class extends nr{constructor(t){super(t)}},jh=[1,2,3,4,5,6,7,8,9,10,14,15],Vh=class extends nr{constructor(){super()}};Vh.prototype.g=bi([0,Qr,[0,jh,yi,Oh,yi,[0,Oh,Ph],yi,Ch,yi,[0,Ch,Ph],yi,Dh,yi,[0,ti,-3,ui,Ei],yi,[0,ti,-3,ui],yi,[0,pi,ti,-2,ui,ai,ui,-1,2,ti,Ph],yi,Nh,yi,[0,Nh,Ph],ti,Ph,pi,yi,[0,ti,-3,ui,Ph,-1],yi,[0,Qr,Dh]],pi,[0,pi,ai,-1,ui]]);var Xh=class extends Za{constructor(t,e){super(new za(t,e),"image_in","norm_rect_in",!1),this.outputCategoryMask=!1,this.outputConfidenceMasks=!0,this.h=new Eo,this.s=new mo,yn(this.h,0,3,this.s),yn(t=this.h,0,1,e=new xs)}get baseOptions(){return pn(this.h,xs,1)}set baseOptions(t){yn(this.h,0,1,t)}o(t){return"outputCategoryMask"in t&&(this.outputCategoryMask=t.outputCategoryMask??!1),"outputConfidenceMasks"in t&&(this.outputConfidenceMasks=t.outputConfidenceMasks??!0),super.l(t)}ha(t,e,n,r){const i="function"!=typeof n?n:{};this.j="function"==typeof n?n:r,this.qualityScores=this.categoryMask=this.confidenceMasks=void 0,n=this.B+1,r=new Vh;const s=new Gh;var o=new Ih;if(xn(o,1,255),yn(s,0,12,o),e.keypoint&&e.scribble)throw Error("Cannot provide both keypoint and scribble.");if(e.keypoint){var a=new Uh;Sn(a,3,!0),Ln(a,1,e.keypoint.x),Ln(a,2,e.keypoint.y),_n(s,5,jh,a)}else{if(!e.scribble)throw Error("Must provide either a keypoint or a scribble.");for(a of(o=new Bh,e.scribble))Sn(e=new Uh,3,!0),Ln(e,1,a.x),Ln(e,2,a.y),wn(o,1,Uh,e);_n(s,15,jh,o)}wn(r,1,Gh,s),this.g.addProtoToStream(r.g(),"drishti.RenderData","roi_in",n),$a(this,t,i);t:{try{const t=new Mh(this.confidenceMasks,this.categoryMask,this.qualityScores);if(!this.j){var h=t;break t}this.j(t)}finally{Zo(this)}h=void 0}return h}m(){var t=new $i;Ki(t,"image_in"),Ki(t,"roi_in"),Ki(t,"norm_rect_in");const e=new Ci;er(e,wo,this.h);const n=new Vi;Bi(n,"mediapipe.tasks.vision.interactive_segmenter.InteractiveSegmenterGraph"),Gi(n,"IMAGE:image_in"),Gi(n,"ROI:roi_in"),Gi(n,"NORM_RECT:norm_rect_in"),n.o(e),zi(t,n),qo(this,t),this.outputConfidenceMasks&&(Yi(t,"confidence_masks"),ji(n,"CONFIDENCE_MASKS:confidence_masks"),Jo(this,"confidence_masks"),this.g.fa("confidence_masks",((t,e)=>{this.confidenceMasks=t.map((t=>Ja(this,t,!0,!this.j))),$o(this,e)})),this.g.attachEmptyPacketListener("confidence_masks",(t=>{this.confidenceMasks=[],$o(this,t)}))),this.outputCategoryMask&&(Yi(t,"category_mask"),ji(n,"CATEGORY_MASK:category_mask"),Jo(this,"category_mask"),this.g.W("category_mask",((t,e)=>{this.categoryMask=Ja(this,t,!1,!this.j),$o(this,e)})),this.g.attachEmptyPacketListener("category_mask",(t=>{this.categoryMask=void 0,$o(this,t)}))),Yi(t,"quality_scores"),ji(n,"QUALITY_SCORES:quality_scores"),this.g.attachFloatVectorListener("quality_scores",((t,e)=>{this.qualityScores=t,$o(this,e)})),this.g.attachEmptyPacketListener("quality_scores",(t=>{this.categoryMask=void 0,$o(this,t)})),t=t.g(),this.setGraph(new Uint8Array(t),!0)}};Xh.prototype.segment=Xh.prototype.ha,Xh.prototype.setOptions=Xh.prototype.o,Xh.createFromModelPath=function(t,e){return Ka(Xh,t,{baseOptions:{modelAssetPath:e}})},Xh.createFromModelBuffer=function(t,e){return Ka(Xh,t,{baseOptions:{modelAssetBuffer:e}})},Xh.createFromOptions=function(t,e){return Ka(Xh,t,e)};var Hh=class extends Za{constructor(t,e){super(new za(t,e),"input_frame_gpu","norm_rect",!1),this.j={detections:[]},yn(t=this.h=new To,0,1,e=new xs)}get baseOptions(){return pn(this.h,xs,1)}set baseOptions(t){yn(this.h,0,1,t)}o(t){return void 0!==t.displayNamesLocale?$e(this.h,2,ne(t.displayNamesLocale)):"displayNamesLocale"in t&&$e(this.h,2),void 0!==t.maxResults?xn(this.h,3,t.maxResults):"maxResults"in t&&$e(this.h,3),void 0!==t.scoreThreshold?Ln(this.h,4,t.scoreThreshold):"scoreThreshold"in t&&$e(this.h,4),void 0!==t.categoryAllowlist?Rn(this.h,5,t.categoryAllowlist):"categoryAllowlist"in t&&$e(this.h,5),void 0!==t.categoryDenylist?Rn(this.h,6,t.categoryDenylist):"categoryDenylist"in t&&$e(this.h,6),this.l(t)}D(t,e){return this.j={detections:[]},$a(this,t,e),this.j}F(t,e,n){return this.j={detections:[]},qa(this,t,n,e),this.j}m(){var t=new $i;Ki(t,"input_frame_gpu"),Ki(t,"norm_rect"),Yi(t,"detections");const e=new Ci;er(e,Ao,this.h);const n=new Vi;Bi(n,"mediapipe.tasks.vision.ObjectDetectorGraph"),Gi(n,"IMAGE:input_frame_gpu"),Gi(n,"NORM_RECT:norm_rect"),ji(n,"DETECTIONS:detections"),n.o(e),zi(t,n),this.g.attachProtoVectorListener("detections",((t,e)=>{for(const e of t)t=ss(e),this.j.detections.push(Lo(t));$o(this,e)})),this.g.attachEmptyPacketListener("detections",(t=>{$o(this,t)})),t=t.g(),this.setGraph(new Uint8Array(t),!0)}};Hh.prototype.detectForVideo=Hh.prototype.F,Hh.prototype.detect=Hh.prototype.D,Hh.prototype.setOptions=Hh.prototype.o,Hh.createFromModelPath=async function(t,e){return Ka(Hh,t,{baseOptions:{modelAssetPath:e}})},Hh.createFromModelBuffer=function(t,e){return Ka(Hh,t,{baseOptions:{modelAssetBuffer:e}})},Hh.createFromOptions=function(t,e){return Ka(Hh,t,e)};var Wh=class{constructor(t,e,n){this.landmarks=t,this.worldLandmarks=e,this.segmentationMasks=n}close(){this.segmentationMasks?.forEach((t=>{t.close()}))}};function zh(t){t.landmarks=[],t.worldLandmarks=[],t.segmentationMasks=void 0}function Kh(t){try{const e=new Wh(t.landmarks,t.worldLandmarks,t.segmentationMasks);if(!t.s)return e;t.s(e)}finally{Zo(t)}}Wh.prototype.close=Wh.prototype.close;var Yh=class extends Za{constructor(t,e){super(new za(t,e),"image_in","norm_rect",!1),this.landmarks=[],this.worldLandmarks=[],this.outputSegmentationMasks=!1,yn(t=this.h=new bo,0,1,e=new xs),this.v=new ao,yn(this.h,0,3,this.v),this.j=new oo,yn(this.h,0,2,this.j),xn(this.j,4,1),Ln(this.j,2,.5),Ln(this.v,2,.5),Ln(this.h,4,.5)}get baseOptions(){return pn(this.h,xs,1)}set baseOptions(t){yn(this.h,0,1,t)}o(t){return"numPoses"in t&&xn(this.j,4,t.numPoses??1),"minPoseDetectionConfidence"in t&&Ln(this.j,2,t.minPoseDetectionConfidence??.5),"minTrackingConfidence"in t&&Ln(this.h,4,t.minTrackingConfidence??.5),"minPosePresenceConfidence"in t&&Ln(this.v,2,t.minPosePresenceConfidence??.5),"outputSegmentationMasks"in t&&(this.outputSegmentationMasks=t.outputSegmentationMasks??!1),this.l(t)}D(t,e,n){const r="function"!=typeof e?e:{};return this.s="function"==typeof e?e:n,zh(this),$a(this,t,r),Kh(this)}F(t,e,n,r){const i="function"!=typeof n?n:{};return this.s="function"==typeof n?n:r,zh(this),qa(this,t,i,e),Kh(this)}m(){var t=new $i;Ki(t,"image_in"),Ki(t,"norm_rect"),Yi(t,"normalized_landmarks"),Yi(t,"world_landmarks"),Yi(t,"segmentation_masks");const e=new Ci;er(e,ko,this.h);const n=new Vi;Bi(n,"mediapipe.tasks.vision.pose_landmarker.PoseLandmarkerGraph"),Gi(n,"IMAGE:image_in"),Gi(n,"NORM_RECT:norm_rect"),ji(n,"NORM_LANDMARKS:normalized_landmarks"),ji(n,"WORLD_LANDMARKS:world_landmarks"),n.o(e),zi(t,n),qo(this,t),this.g.attachProtoVectorListener("normalized_landmarks",((t,e)=>{this.landmarks=[];for(const e of t)t=cs(e),this.landmarks.push(Ro(t));$o(this,e)})),this.g.attachEmptyPacketListener("normalized_landmarks",(t=>{this.landmarks=[],$o(this,t)})),this.g.attachProtoVectorListener("world_landmarks",((t,e)=>{this.worldLandmarks=[];for(const e of t)t=as(e),this.worldLandmarks.push(Fo(t));$o(this,e)})),this.g.attachEmptyPacketListener("world_landmarks",(t=>{this.worldLandmarks=[],$o(this,t)})),this.outputSegmentationMasks&&(ji(n,"SEGMENTATION_MASK:segmentation_masks"),Jo(this,"segmentation_masks"),this.g.fa("segmentation_masks",((t,e)=>{this.segmentationMasks=t.map((t=>Ja(this,t,!0,!this.s))),$o(this,e)})),this.g.attachEmptyPacketListener("segmentation_masks",(t=>{this.segmentationMasks=[],$o(this,t)}))),t=t.g(),this.setGraph(new Uint8Array(t),!0)}};Yh.prototype.detectForVideo=Yh.prototype.F,Yh.prototype.detect=Yh.prototype.D,Yh.prototype.setOptions=Yh.prototype.o,Yh.createFromModelPath=function(t,e){return Ka(Yh,t,{baseOptions:{modelAssetPath:e}})},Yh.createFromModelBuffer=function(t,e){return Ka(Yh,t,{baseOptions:{modelAssetBuffer:e}})},Yh.createFromOptions=function(t,e){return Ka(Yh,t,e)},Yh.POSE_CONNECTIONS=Eh;export{Ia as DrawingUtils,Qa as FaceDetector,lh as FaceLandmarker,fh as FaceStylizer,Uo as FilesetResolver,yh as GestureRecognizer,vh as HandLandmarker,bh as HolisticLandmarker,kh as ImageClassifier,Sh as ImageEmbedder,Fh as ImageSegmenter,xh as ImageSegmenterResult,Xh as InteractiveSegmenter,Mh as InteractiveSegmenterResult,ja as MPImage,wa as MPMask,Hh as ObjectDetector,Yh as PoseLandmarker,Za as VisionTaskRunner}; +var t="undefined"!=typeof self?self:{};function e(e,n){t:{for(var r=["CLOSURE_FLAGS"],i=t,s=0;s>6|192;else{if(e>=55296&&e<=57343){if(e<=56319&&i=56320&&s<=57343){e=1024*(e-55296)+s-56320+65536,r[n++]=e>>18|240,r[n++]=e>>12&63|128,r[n++]=e>>6&63|128,r[n++]=63&e|128;continue}i--}e=65533}r[n++]=e>>12|224,r[n++]=e>>6&63|128}r[n++]=63&e|128}}t=n===r.length?r:r.subarray(0,n)}return t}function u(e){t.setTimeout((()=>{throw e}),0)}var l,f=e(610401301,!1),d=e(748402147,!0);function p(){var e=t.navigator;return e&&(e=e.userAgent)?e:""}const g=t.navigator;function m(t){return m[" "](t),t}l=g&&g.userAgentData||null,m[" "]=function(){};const y={};let _=null;function v(t){const e=t.length;let n=3*e/4;n%3?n=Math.floor(n):-1!="=.".indexOf(t[e-1])&&(n=-1!="=.".indexOf(t[e-2])?n-2:n-1);const r=new Uint8Array(n);let i=0;return function(t,e){function n(e){for(;r>4),64!=i&&(e(r<<4&240|i>>2),64!=s&&e(i<<6&192|s))}}(t,(function(t){r[i++]=t})),i!==n?r.subarray(0,i):r}function E(){if(!_){_={};var t="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789".split(""),e=["+/=","+/","-_=","-_.","-_"];for(let n=0;n<5;n++){const r=t.concat(e[n].split(""));y[n]=r;for(let t=0;t0)&&(-1!=p().indexOf("Trident")||-1!=p().indexOf("MSIE")))&&"function"==typeof btoa;const A=/[-_.]/g,b={"-":"+",_:"/",".":"="};function k(t){return b[t]||""}function S(t){if(!T)return v(t);t=A.test(t)?t.replace(A,k):t,t=atob(t);const e=new Uint8Array(t.length);for(let n=0;n=e||(n[t]=r+1,O(t=Error(),"incident"),u(t))}}function D(){return"function"==typeof BigInt}var B="function"==typeof Symbol&&"symbol"==typeof Symbol();function G(t,e,n=!1){return"function"==typeof Symbol&&"symbol"==typeof Symbol()?n&&Symbol.for&&t?Symbol.for(t):null!=t?Symbol(t):Symbol():e}var j=G("jas",void 0,!0),V=G(void 0,"0di"),X=G(void 0,"1oa"),H=G(void 0,Symbol()),W=G(void 0,"0ub"),z=G(void 0,"0ubs"),K=G(void 0,"0ubsb"),Y=G(void 0,"0actk"),q=G("m_m","Pa",!0),$=G();const J={Ga:{value:0,configurable:!0,writable:!0,enumerable:!1}},Z=Object.defineProperties,Q=B?j:"Ga";var tt;const et=[];function nt(t,e){B||Q in t||Z(t,J),t[Q]|=e}function rt(t,e){B||Q in t||Z(t,J),t[Q]=e}function it(t){return nt(t,34),t}function st(t){return nt(t,8192),t}rt(et,7),tt=Object.freeze(et);var ot={};function at(t,e){return void 0===e?t.h!==ct&&!!(2&(0|t.v[Q])):!!(2&e)&&t.h!==ct}const ct={};function ht(t,e){if(null!=t)if("string"==typeof t)t=t?new F(t,L):R();else if(t.constructor!==F)if(x(t))t=t.length?new F(new Uint8Array(t),L):R();else{if(!e)throw Error();t=void 0}return t}class ut{constructor(t,e,n){this.g=t,this.h=e,this.l=n}next(){const t=this.g.next();return t.done||(t.value=this.h.call(this.l,t.value)),t}[Symbol.iterator](){return this}}var lt=Object.freeze({});function ft(t,e,n){const r=128&e?0:-1,i=t.length;var s;(s=!!i)&&(s=null!=(s=t[i-1])&&"object"==typeof s&&s.constructor===Object);const o=i+(s?-1:0);for(e=128&e?1:0;e"number"==typeof t)),yt=gt((t=>"string"==typeof t)),_t=gt((t=>"boolean"==typeof t)),vt="function"==typeof t.BigInt&&"bigint"==typeof t.BigInt(0);function Et(t){var e=t;if(yt(e)){if(!/^\s*(?:-?[1-9]\d*|0)?\s*$/.test(e))throw Error(String(e))}else if(mt(e)&&!Number.isSafeInteger(e))throw Error(String(e));return vt?BigInt(t):t=_t(t)?t?"1":"0":yt(t)?t.trim()||"0":String(t)}var wt=gt((t=>vt?t>=At&&t<=kt:"-"===t[0]?St(t,Tt):St(t,bt)));const Tt=Number.MIN_SAFE_INTEGER.toString(),At=vt?BigInt(Number.MIN_SAFE_INTEGER):void 0,bt=Number.MAX_SAFE_INTEGER.toString(),kt=vt?BigInt(Number.MAX_SAFE_INTEGER):void 0;function St(t,e){if(t.length>e.length)return!1;if(t.lengthi)return!1;if(r>>0;Rt=e,It=(t-e)/4294967296>>>0}function Mt(t){if(t<0){Ft(-t);const[e,n]=jt(Rt,It);Rt=e>>>0,It=n>>>0}else Ft(t)}function Pt(t){const e=Lt||=new DataView(new ArrayBuffer(8));e.setFloat32(0,+t,!0),It=0,Rt=e.getUint32(0,!0)}function Ct(t,e){const n=4294967296*e+(t>>>0);return Number.isSafeInteger(n)?n:Ut(t,e)}function Ot(t,e){return Et(D()?BigInt.asUintN(64,(BigInt(e>>>0)<>>0)):Ut(t,e))}function Nt(t,e){return D()?Et(BigInt.asIntN(64,(BigInt.asUintN(32,BigInt(e))<>>=0,(e>>>=0)<=2097151)var n=""+(4294967296*e+t);else D()?n=""+(BigInt(e)<>>24|e<<8))+6710656*(e=e>>16&65535),n+=8147497*e,e*=2,t>=1e7&&(n+=t/1e7>>>0,t%=1e7),n>=1e7&&(e+=n/1e7>>>0,n%=1e7),n=e+Dt(n)+Dt(t));return n}function Dt(t){return t=String(t),"0000000".slice(t.length)+t}function Bt(t,e){if(2147483648&e)if(D())t=""+(BigInt(0|e)<>>0));else{const[n,r]=jt(t,e);t="-"+Ut(n,r)}else t=Ut(t,e);return t}function Gt(t){if(t.length<16)Mt(Number(t));else if(D())t=BigInt(t),Rt=Number(t&BigInt(4294967295))>>>0,It=Number(t>>BigInt(32)&BigInt(4294967295));else{const e=+("-"===t[0]);It=Rt=0;const n=t.length;for(let r=e,i=(n-e)%6+e;i<=n;r=i,i+=6){const e=Number(t.slice(r,i));It*=1e6,Rt=1e6*Rt+e,Rt>=4294967296&&(It+=Math.trunc(Rt/4294967296),It>>>=0,Rt>>>=0)}if(e){const[t,e]=jt(Rt,It);Rt=t,It=e}}}function jt(t,e){return e=~e,t?t=1+~t:e+=1,[t,e]}function Vt(t){return Array.prototype.slice.call(t)}const Xt="function"==typeof BigInt?BigInt.asIntN:void 0,Ht="function"==typeof BigInt?BigInt.asUintN:void 0,Wt=Number.isSafeInteger,zt=Number.isFinite,Kt=Math.trunc,Yt=Et(0);function qt(t){if(null!=t&&"number"!=typeof t)throw Error(`Value of float/double field must be a number, found ${typeof t}: ${t}`);return t}function $t(t){return null==t||"number"==typeof t?t:"NaN"===t||"Infinity"===t||"-Infinity"===t?Number(t):void 0}function Jt(t){if(null!=t&&"boolean"!=typeof t){var e=typeof t;throw Error(`Expected boolean but got ${"object"!=e?e:t?Array.isArray(t)?"array":e:"null"}: ${t}`)}return t}function Zt(t){return null==t||"boolean"==typeof t?t:"number"==typeof t?!!t:void 0}const Qt=/^-?([1-9][0-9]*|0)(\.[0-9]+)?$/;function te(t){switch(typeof t){case"bigint":return!0;case"number":return zt(t);case"string":return Qt.test(t);default:return!1}}function ee(t){if(null==t)return t;if("string"==typeof t&&t)t=+t;else if("number"!=typeof t)return;return zt(t)?0|t:void 0}function ne(t){if(null==t)return t;if("string"==typeof t&&t)t=+t;else if("number"!=typeof t)return;return zt(t)?t>>>0:void 0}function re(t){const e=t.length;return("-"===t[0]?e<20||20===e&&t<="-9223372036854775808":e<19||19===e&&t<="9223372036854775807")?t:(Gt(t),Bt(Rt,It))}function ie(t){if(t=Kt(t),!Wt(t)){Mt(t);var e=Rt,n=It;(t=2147483648&n)&&(n=~n>>>0,0==(e=1+~e>>>0)&&(n=n+1>>>0)),t="number"==typeof(e=Ct(e,n))?t?-e:e:t?"-"+e:e}return t}function se(t){var e=Kt(Number(t));return Wt(e)?String(e):(-1!==(e=t.indexOf("."))&&(t=t.substring(0,e)),re(t))}function oe(t){var e=Kt(Number(t));return Wt(e)?Et(e):(-1!==(e=t.indexOf("."))&&(t=t.substring(0,e)),D()?Et(Xt(64,BigInt(t))):Et(re(t)))}function ae(t){return Wt(t)?t=Et(ie(t)):(t=Kt(t),Wt(t)?t=String(t):(Mt(t),t=Bt(Rt,It)),t=Et(t)),t}function ce(t){const e=typeof t;return null==t?t:"bigint"===e?Et(Xt(64,t)):te(t)?"string"===e?oe(t):ae(t):void 0}function he(t){if("string"!=typeof t)throw Error();return t}function ue(t){if(null!=t&&"string"!=typeof t)throw Error();return t}function le(t){return null==t||"string"==typeof t?t:void 0}function fe(t,e,n,r){return null!=t&&t[q]===ot?t:Array.isArray(t)?((r=(n=0|t[Q])|32&r|2&r)!==n&&rt(t,r),new e(t)):(n?2&r?((t=e[V])||(it((t=new e).v),t=e[V]=t),e=t):e=new e:e=void 0,e)}function de(t,e,n){if(e)t:{if(!te(e=t))throw N("int64");switch(typeof e){case"string":e=oe(e);break t;case"bigint":e=Et(Xt(64,e));break t;default:e=ae(e)}}else e=ce(t);return null==(t=e)?n?Yt:void 0:t}const pe={};let ge=function(){try{return m(new class extends Map{constructor(){super()}}),!1}catch{return!0}}();class me{constructor(){this.g=new Map}get(t){return this.g.get(t)}set(t,e){return this.g.set(t,e),this.size=this.g.size,this}delete(t){return t=this.g.delete(t),this.size=this.g.size,t}clear(){this.g.clear(),this.size=this.g.size}has(t){return this.g.has(t)}entries(){return this.g.entries()}keys(){return this.g.keys()}values(){return this.g.values()}forEach(t,e){return this.g.forEach(t,e)}[Symbol.iterator](){return this.entries()}}const ye=ge?(Object.setPrototypeOf(me.prototype,Map.prototype),Object.defineProperties(me.prototype,{size:{value:0,configurable:!0,enumerable:!0,writable:!0}}),me):class extends Map{constructor(){super()}};function _e(t){return t}function ve(t){if(2&t.J)throw Error("Cannot mutate an immutable Map")}var Ee=class extends ye{constructor(t,e,n=_e,r=_e){super(),this.J=0|t[Q],this.K=e,this.S=n,this.fa=this.K?we:r;for(let i=0;i{t.call(e,i.get(r),r,i)})):super.forEach(t,e)}set(t,e){return ve(this),null==(t=this.S(t,!0,!1))?this:null==e?(super.delete(t),this):super.set(t,this.fa(e,!0,!0,this.K,!1,this.J))}Ma(t){const e=this.S(t[0],!1,!0);t=t[1],t=this.K?void 0===t?null:t:this.fa(t,!1,!0,void 0,!1,this.J),super.set(e,t)}has(t){return super.has(this.S(t,!1,!1))}get(t){t=this.S(t,!1,!1);const e=super.get(t);if(void 0!==e){var n=this.K;return n?((n=this.fa(e,!1,!0,n,this.ra,this.J))!==e&&super.set(t,n),n):e}}[Symbol.iterator](){return this.entries()}};function we(t,e,n,r,i,s){return t=fe(t,r,n,s),i&&(t=Xe(t)),t}function Te(t){return[t,this.get(t)]}let Ae;function be(){return Ae||=new Ee(it([]),void 0,void 0,void 0,pe)}function ke(t){return H?t[H]:void 0}function Se(t,e){for(const n in t)!isNaN(n)&&e(t,+n,t[n])}Ee.prototype.toJSON=void 0;var xe=class{};const Le={Ka:!0};function Re(t,e){e<100||U(z,1)}function Ie(t,e,n,r){const i=void 0!==r;r=!!r;var s,o=H;!i&&B&&o&&(s=t[o])&&Se(s,Re),o=[];var a=t.length;let c;s=4294967295;let h=!1;const u=!!(64&e),l=u?128&e?0:-1:void 0;1&e||(c=a&&t[a-1],null!=c&&"object"==typeof c&&c.constructor===Object?s=--a:c=void 0,!u||128&e||i||(h=!0,s=s-l+l)),e=void 0;for(var f=0;f=s){const t=f-l;(e??={})[t]=i}else o[f]=i}if(c)for(let t in c){if(null==(a=c[t])||null==(a=n(a,r)))continue;let i;f=+t,u&&!Number.isNaN(f)&&(i=f+l){e[n]=Vt(r)})),e.da=t.da,e}(t)),o}function Fe(t){return t[0]=Me(t[0]),t[1]=Me(t[1]),t}function Me(t){switch(typeof t){case"number":return Number.isFinite(t)?t:""+t;case"bigint":return wt(t)?Number(t):""+t;case"boolean":return t?1:0;case"object":if(Array.isArray(t)){var e=0|t[Q];return 0===t.length&&1&e?void 0:Ie(t,e,Me)}if(null!=t&&t[q]===ot)return Oe(t);if(t instanceof F){if(null==(e=t.g))t="";else if("string"==typeof e)t=e;else{if(T){for(var n="",r=0,i=e.length-10240;r>2];s=n[(3&s)<<4|o>>4],o=n[(15&o)<<2|a>>6],a=n[63&a],r[h++]=c+s+o+a}switch(c=0,a=i,e.length-t){case 2:a=n[(15&(c=e[t+1]))<<2]||i;case 1:e=e[t],r[h]=n[e>>2]+n[(3&e)<<4|c>>4]+a+i}e=r.join("")}t=t.g=e}return t}return t instanceof Ee?t=0!==t.size?t.V(Fe):void 0:void 0}return t}let Pe,Ce;function Oe(t){return Ie(t=t.v,0|t[Q],Me)}function Ne(t,e){return Ue(t,e[0],e[1])}function Ue(t,e,n,r=0){if(null==t){var i=32;n?(t=[n],i|=128):t=[],e&&(i=-16760833&i|(1023&e)<<14)}else{if(!Array.isArray(t))throw Error("narr");if(i=0|t[Q],d&&1&i)throw Error("rfarr");if(2048&i&&!(2&i)&&function(){if(d)throw Error("carr");U(Y,5)}(),256&i)throw Error("farr");if(64&i)return(i|r)!==i&&rt(t,i|r),t;if(n&&(i|=128,n!==t[0]))throw Error("mid");t:{i|=64;var s=(n=t).length;if(s){var o=s-1;const t=n[o];if(null!=t&&"object"==typeof t&&t.constructor===Object){if((o-=e=128&i?0:-1)>=1024)throw Error("pvtlmt");for(var a in t)(s=+a)1024)throw Error("spvt");i=-16760833&i|(1023&a)<<14}}}return rt(t,64|i|r),t}function De(t,e){if("object"!=typeof t)return t;if(Array.isArray(t)){var n=0|t[Q];return 0===t.length&&1&n?void 0:Be(t,n,e)}if(null!=t&&t[q]===ot)return je(t);if(t instanceof Ee){if(2&(e=t.J))return t;if(!t.size)return;if(n=it(t.V()),t.K)for(t=0;t=s)if(o=t[s],null!=o&&"object"==typeof o&&o.constructor===Object)n=o[e],a=!0;else{if(i!==s)return;n=o}else n=t[i];if(r&&null!=n){if(null==(r=r(n)))return r;if(!Object.is(r,n))return a?o[e]=r:t[i]=r,r}return n}}function Ze(t,e,n,r){We(t),Qe(t=t.v,0|t[Q],e,n,r)}function Qe(t,e,n,r,i){const s=n+(i?0:-1);var o=t.length-1;if(o>=1+(i?0:-1)&&s>=o){const i=t[o];if(null!=i&&"object"==typeof i&&i.constructor===Object)return i[n]=r,e}return s<=o?(t[s]=r,e):(void 0!==r&&(n>=(o=(e??=0|t[Q])>>14&1023||536870912)?null!=r&&(t[o+(i?0:-1)]={[n]:r}):t[s]=r),e)}function tn(){return void 0===lt?2:4}function en(t,e,n,r,i){let s=t.v,o=0|s[Q];r=at(t,o)?1:r,i=!!i||3===r,2===r&&He(t)&&(s=t.v,o=0|s[Q]);let a=(t=rn(s,e))===tt?7:0|t[Q],c=sn(a,o);var h=!(4&c);if(h){4&c&&(t=Vt(t),a=0,c=An(c,o),o=Qe(s,o,e,t));let r=0,i=0;for(;r{const r=fe(t,n,!1,e);return s=r!==t&&null!=r,r}))))return s&&!at(r)&&ze(t,e),r}function yn(t,e,n,r){let i=t.v,s=0|i[Q];if(null==(e=mn(i,s,e,n,r)))return e;if(s=0|i[Q],!at(t,s)){const o=Xe(e);o!==e&&(He(t)&&(i=t.v,s=0|i[Q]),s=Qe(i,s,n,e=o,r),ze(i,s))}return e}function _n(t,e,n,r,i,s,o,a){var c=at(t,n);s=c?1:s,o=!!o||3===s,c=a&&!c,(2===s||c)&&He(t)&&(n=0|(e=t.v)[Q]);var h=(t=rn(e,i))===tt?7:0|t[Q],u=sn(h,n);if(a=!(4&u)){var l=t,f=n;const e=!!(2&u);e&&(f|=2);let i=!e,s=!0,o=0,a=0;for(;o32)for(i|=(127&n)>>4,s=3;s<32&&128&n;s+=7)n=o[a++],i|=(127&n)<>>0,i>>>0);throw Error()}function On(t){let e=0,n=t.g;const r=n+10,i=t.h;for(;n>>0}function Dn(t){var e=t.h;const n=t.g;var r=e[n],i=e[n+1];const s=e[n+2];return e=e[n+3],Gn(t,t.g+4),t=2*((i=(r<<0|i<<8|s<<16|e<<24)>>>0)>>31)+1,r=i>>>23&255,i&=8388607,255==r?i?NaN:t*(1/0):0==r?1401298464324817e-60*t*i:t*Math.pow(2,r-150)*(i+8388608)}function Bn(t){return Nn(t)}function Gn(t,e){if(t.g=e,e>t.l)throw Error()}function jn(t,e){if(e<0)throw Error();const n=t.g;if((e=n+e)>t.l)throw Error();return t.g=e,n}function Vn(t,e){if(0==e)return R();var n=jn(t,e);return t.Y&&t.j?n=t.h.subarray(n,n+e):(t=t.h,n=n===(e=n+e)?new Uint8Array(0):xt?t.slice(n,e):new Uint8Array(t.subarray(n,e))),0==n.length?R():new F(n,L)}var Xn=[];function Hn(t,e,n,r){if(Qn.length){const i=Qn.pop();return i.o(r),i.g.init(t,e,n,r),i}return new Zn(t,e,n,r)}function Wn(t){t.g.clear(),t.l=-1,t.h=-1,Qn.length<100&&Qn.push(t)}function zn(t){var e=t.g;if(e.g==e.l)return!1;t.m=t.g.g;var n=Un(t.g);if(e=n>>>3,!((n&=7)>=0&&n<=5))throw Error();if(e<1)throw Error();return t.l=e,t.h=n,!0}function Kn(t){switch(t.h){case 0:0!=t.h?Kn(t):On(t.g);break;case 1:Gn(t=t.g,t.g+8);break;case 2:if(2!=t.h)Kn(t);else{var e=Un(t.g);Gn(t=t.g,t.g+e)}break;case 5:Gn(t=t.g,t.g+4);break;case 3:for(e=t.l;;){if(!zn(t))throw Error();if(4==t.h){if(t.l!=e)throw Error();break}Kn(t)}break;default:throw Error()}}function Yn(t,e,n){const r=t.g.l;var i=Un(t.g);let s=(i=t.g.g+i)-r;if(s<=0&&(t.g.l=i,n(e,t,void 0,void 0,void 0),s=i-t.g.g),s)throw Error();return t.g.g=i,t.g.l=r,e}function qn(t){var e=Un(t.g),a=jn(t=t.g,e);if(t=t.h,o){var c,h=t;(c=s)||(c=s=new TextDecoder("utf-8",{fatal:!0})),e=a+e,h=0===a&&e===h.length?h:h.subarray(a,e);try{var u=c.decode(h)}catch(t){if(void 0===i){try{c.decode(new Uint8Array([128]))}catch(t){}try{c.decode(new Uint8Array([97])),i=!0}catch(t){i=!1}}throw!i&&(s=void 0),t}}else{e=(u=a)+e,a=[];let i,s=null;for(;u=e?n():(i=t[u++],l<194||128!=(192&i)?(u--,n()):a.push((31&l)<<6|63&i)):l<240?u>=e-1?n():(i=t[u++],128!=(192&i)||224===l&&i<160||237===l&&i>=160||128!=(192&(c=t[u++]))?(u--,n()):a.push((15&l)<<12|(63&i)<<6|63&c)):l<=244?u>=e-2?n():(i=t[u++],128!=(192&i)||i-144+(l<<28)>>30!=0||128!=(192&(c=t[u++]))||128!=(192&(h=t[u++]))?(u--,n()):(l=(7&l)<<18|(63&i)<<12|(63&c)<<6|63&h,l-=65536,a.push(55296+(l>>10&1023),56320+(1023&l)))):n(),a.length>=8192&&(s=r(s,a),a.length=0)}u=r(s,a)}return u}function $n(t){const e=Un(t.g);return Vn(t.g,e)}function Jn(t,e,n){var r=Un(t.g);for(r=t.g.g+r;t.g.g>>0,this.g=e>>>0}};let nr;function rr(t){return t?/^-?\d+$/.test(t)?(Gt(t),new ir(Rt,It)):null:sr||=new ir(0,0)}var ir=class{constructor(t,e){this.h=t>>>0,this.g=e>>>0}};let sr;function or(t,e,n){for(;n>0||e>127;)t.g.push(127&e|128),e=(e>>>7|n<<25)>>>0,n>>>=7;t.g.push(e)}function ar(t,e){for(;e>127;)t.g.push(127&e|128),e>>>=7;t.g.push(e)}function cr(t,e){if(e>=0)ar(t,e);else{for(let n=0;n<9;n++)t.g.push(127&e|128),e>>=7;t.g.push(1)}}function hr(t){var e=Rt;t.g.push(e>>>0&255),t.g.push(e>>>8&255),t.g.push(e>>>16&255),t.g.push(e>>>24&255)}function ur(t,e){0!==e.length&&(t.l.push(e),t.h+=e.length)}function lr(t,e,n){ar(t.g,8*e+n)}function fr(t,e){return lr(t,e,2),e=t.g.end(),ur(t,e),e.push(t.h),e}function dr(t,e){var n=e.pop();for(n=t.h+t.g.length()-n;n>127;)e.push(127&n|128),n>>>=7,t.h++;e.push(n),t.h++}function pr(t,e,n){lr(t,e,2),ar(t.g,n.length),ur(t,t.g.end()),ur(t,n)}function gr(t,e,n,r){null!=n&&(e=fr(t,e),r(n,t),dr(t,e))}function mr(){const t=class{constructor(){throw Error()}};return Object.setPrototypeOf(t,t.prototype),t}var yr=mr(),_r=mr(),vr=mr(),Er=mr(),wr=mr(),Tr=mr(),Ar=mr(),br=mr(),kr=mr(),Sr=mr();function xr(t,e,n){var r=t.v;H&&H in r&&(r=r[H])&&delete r[e.g],e.h?e.j(t,e.h,e.g,n,e.l):e.j(t,e.g,n,e.l)}var Lr=class{constructor(t,e){this.v=Ue(t,e,void 0,2048)}toJSON(){return Oe(this)}j(){var t=xo,e=this.v,n=t.g,r=H;if(B&&r&&null!=e[r]?.[n]&&U(W,3),e=t.g,$&&H&&void 0===$&&(r=(n=this.v)[H])&&(r=r.da))try{r(n,e,Le)}catch(t){u(t)}return t.h?t.m(this,t.h,t.g,t.l):t.m(this,t.g,t.defaultValue,t.l)}clone(){const t=this.v,e=0|t[Q];return Ke(this,t,e)?Ge(this,t,!0):new this.constructor(Ve(t,e,!1))}};Lr.prototype[q]=ot,Lr.prototype.toString=function(){return this.v.toString()};var Rr=class{constructor(t,e,n){this.g=t,this.h=e,t=yr,this.l=!!t&&n===t||!1}};function Ir(t,e){return new Rr(t,e,yr)}function Fr(t,e,n,r,i){gr(t,n,Xr(e,r),i)}const Mr=Ir((function(t,e,n,r,i){return 2===t.h&&(Yn(t,gn(e,r,n),i),!0)}),Fr),Pr=Ir((function(t,e,n,r,i){return 2===t.h&&(Yn(t,gn(e,r,n),i),!0)}),Fr);var Cr=Symbol(),Or=Symbol(),Nr=Symbol(),Ur=Symbol(),Dr=Symbol();let Br,Gr;function jr(t,e,n,r){var i=r[t];if(i)return i;(i={}).qa=r,i.T=function(t){switch(typeof t){case"boolean":return Pe||=[0,void 0,!0];case"number":return t>0?void 0:0===t?Ce||=[0,void 0]:[-t,void 0];case"string":return[0,t];case"object":return t}}(r[0]);var s=r[1];let o=1;s&&s.constructor===Object&&(i.ba=s,"function"==typeof(s=r[++o])&&(i.ma=!0,Br??=s,Gr??=r[o+1],s=r[o+=2]));const a={};for(;s&&Array.isArray(s)&&s.length&&"number"==typeof s[0]&&s[0]>0;){for(var c=0;ci(t,e,n,r):i}function Wr(t,e,n,r,i){const s=n.g;let o,a;t[e]=(t,e,n)=>s(t,e,n,a||=jr(Or,Hr,Wr,r).T,o||=zr(r),i)}function zr(t){let e=t[Nr];if(null!=e)return e;const n=jr(Or,Hr,Wr,t);return e=n.ma?(t,e)=>Br(t,e,n):(t,e)=>{for(;zn(e)&&4!=e.h;){var r=e.l,i=n[r];if(null==i){var s=n.ba;s&&(s=s[r])&&(null!=(s=Yr(s))&&(i=n[r]=s))}if(null==i||!i(e,t,r)){if(i=(s=e).m,Kn(s),s.ha)var o=void 0;else o=s.g.g-i,s.g.g=i,o=Vn(s.g,o);i=void 0,s=t,o&&((i=s[H]??(s[H]=new xe))[r]??(i[r]=[])).push(o)}}return(t=ke(t))&&(t.da=n.qa[Dr]),!0},t[Nr]=e,t[Dr]=Kr.bind(t),e}function Kr(t,e,n,r){var i=this[Or];const s=this[Nr],o=Ne(void 0,i.T),a=ke(t);if(a){var c=!1,h=i.ba;if(h){if(i=(e,n,i)=>{if(0!==i.length)if(h[n])for(const t of i){e=Hn(t);try{c=!0,s(o,e)}finally{Wn(e)}}else r?.(t,n,i)},null==e)Se(a,i);else if(null!=a){const t=a[e];t&&i(a,e,t)}if(c){let r=0|t[Q];if(2&r&&2048&r&&!n?.Ka)throw Error();const i=pt(r),s=(e,s)=>{if(null!=Je(t,e,i)){if(1===n?.Qa)return;throw Error()}null!=s&&(r=Qe(t,r,e,s,i)),delete a[e]};null==e?ft(o,0|o[Q],((t,e)=>{s(t,e)})):s(e,Je(o,e,i))}}}}function Yr(t){const e=(t=Vr(t))[0].g;if(t=t[1]){const n=zr(t),r=jr(Or,Hr,Wr,t).T;return(t,i,s)=>e(t,i,s,r,n)}return e}function qr(t,e,n){t[e]=n.h}function $r(t,e,n,r){let i,s;const o=n.h;t[e]=(t,e,n)=>o(t,e,n,s||=jr(Cr,qr,$r,r).T,i||=Jr(r))}function Jr(t){let e=t[Ur];if(!e){const n=jr(Cr,qr,$r,t);e=(t,e)=>Zr(t,e,n),t[Ur]=e}return e}function Zr(t,e,n){ft(t,0|t[Q],((t,r)=>{if(null!=r){var i=function(t,e){var n=t[e];if(n)return n;if((n=t.ba)&&(n=n[e])){var r=(n=Vr(n))[0].h;if(n=n[1]){const e=Jr(n),i=jr(Cr,qr,$r,n).T;n=t.ma?Gr(i,e):(t,n,s)=>r(t,n,s,i,e)}else n=r;return t[e]=n}}(n,t);i?i(e,r,t):t<500||U(K,3)}})),(t=ke(t))&&Se(t,((t,n,r)=>{for(ur(e,e.g.end()),t=0;t{gr(t,n,Ne([s,e],r),i)}));else if(Array.isArray(e)){for(let s=0;s>BigInt(32))),or(t.g,n.h,n.g);break;default:n=rr(e),or(t.g,n.h,n.g)}}}function ai(t,e,n){null!=(e=ee(e))&&null!=e&&(lr(t,n,0),cr(t.g,e))}function ci(t,e,n){null!=(e=Zt(e))&&(lr(t,n,0),t.g.g.push(e?1:0))}function hi(t,e,n){null!=(e=le(e))&&pr(t,n,h(e))}function ui(t,e,n,r,i){gr(t,n,Xr(e,r),i)}function li(t,e,n){null!=(e=null==e||"string"==typeof e||e instanceof F?e:void 0)&&pr(t,n,Pn(e,!0).buffer)}function fi(t,e,n){null!=(e=ne(e))&&null!=e&&(lr(t,n,0),ar(t.g,e))}function di(t,e,n){return(5===t.h||2===t.h)&&(e=un(e,0|e[Q],n),2==t.h?Jn(t,Dn,e):e.push(Dn(t.g)),!0)}var pi=ei((function(t,e,n){return 5===t.h&&(ri(e,n,Dn(t.g)),!0)}),si,br),gi=ni(di,(function(t,e,n){if(null!=(e=ti($t,e)))for(let o=0;o=0?t=String(e):(-1!==(e=t.indexOf("."))&&(t=t.substring(0,e)),(e="-"!==t[0]&&((e=t.length)<20||20===e&&t<="18446744073709551615"))||(Gt(t),t=Ut(Rt,It))),t;if("number"===e)return(t=Kt(t))>=0&&Wt(t)||(Mt(t),t=Ct(Rt,It)),t}}(e),null!=e){if("string"==typeof e)tr(e);if(null!=e)switch(lr(t,n,0),typeof e){case"number":t=t.g,Mt(e),or(t,Rt,It);break;case"bigint":n=BigInt.asUintN(64,e),n=new er(Number(n&BigInt(4294967295)),Number(n>>BigInt(32))),or(t.g,n.h,n.g);break;default:n=tr(e),or(t.g,n.h,n.g)}}}),Ar),wi=ei((function(t,e,n){return 0===t.h&&(ri(e,n,Nn(t.g)),!0)}),ai,Er),Ti=ni((function(t,e,n){return(0===t.h||2===t.h)&&(e=un(e,0|e[Q],n),2==t.h?Jn(t,Nn,e):e.push(Nn(t.g)),!0)}),(function(t,e,n){if(null!=(e=ti(ee,e))&&e.length){n=fr(t,n);for(let n=0;n{{const s={ea:!0};r&&Object.assign(s,r),n=Hn(n,void 0,void 0,s);try{const r=new t,s=r.v;zr(e)(s,n);var i=r}finally{Wn(n)}}return i}}function Di(t){return function(){const e=new class{constructor(){this.l=[],this.h=0,this.g=new class{constructor(){this.g=[]}length(){return this.g.length}end(){const t=this.g;return this.g=[],t}}}};Zr(this.v,e,jr(Cr,qr,$r,t)),ur(e,e.g.end());const n=new Uint8Array(e.h),r=e.l,i=r.length;let s=0;for(let t=0;tt;t=Vi.createPolicy("goog#html",{createHTML:e,createScript:e,createScriptURL:e})}catch(t){}return t}()),t=(e=ji)?e.createScriptURL(t):t,new class{constructor(t){this.g=t}toString(){return this.g+""}}(t)}function Hi(t,...e){if(0===e.length)return Xi(t[0]);let n=t[0];for(let r=0;r({index:kn(t,1)??0??-1,score:Sn(t,2)??0,categoryName:le($e(t,3))??""??"",displayName:le($e(t,4))??""??""}))),headIndex:e,headName:n}}function Vo(t){const e={classifications:vn(t,Rs,1).map((t=>jo(yn(t,gs,4)?.g()??[],kn(t,2)??0,le($e(t,3))??"")))};return null!=function(t){return null==t?t:"bigint"==typeof t?(wt(t)?t=Number(t):(t=Xt(64,t),t=wt(t)?Number(t):String(t)),t):te(t)?"number"==typeof t?ie(t):se(t):void 0}($e(t,2,void 0,void 0,ce))&&(e.timestampMs=Go($e(t,2,void 0,void 0,ce)??Ye)),e}function Xo(t){var e=en(t,3,$t,tn()),n=en(t,2,ee,tn()),r=en(t,1,le,tn()),i=en(t,9,le,tn());const s={categories:[],keypoints:[]};for(let t=0;tt>127?t-256:t))}function Ko(t,e){if(t.length!==e.length)throw Error(`Cannot compute cosine similarity between embeddings of different sizes (${t.length} vs. ${e.length}).`);let n=0,r=0,i=0;for(let s=0;s=1&&Number(t[1])>=17))}async function ta(t){if("function"!=typeof importScripts){const e=document.createElement("script");return e.src=t.toString(),e.crossOrigin="anonymous",new Promise(((t,n)=>{e.addEventListener("load",(()=>{t()}),!1),e.addEventListener("error",(t=>{n(t)}),!1),document.body.appendChild(e)}))}try{importScripts(t.toString())}catch(e){if(!(e instanceof TypeError))throw e;await self.import(t.toString())}}function ea(t){return void 0!==t.videoWidth?[t.videoWidth,t.videoHeight]:void 0!==t.naturalWidth?[t.naturalWidth,t.naturalHeight]:void 0!==t.displayWidth?[t.displayWidth,t.displayHeight]:[t.width,t.height]}function na(t,e,n){t.m||console.error("No wasm multistream support detected: ensure dependency inclusion of :gl_graph_runner_internal_multi_input target"),n(e=t.i.stringToNewUTF8(e)),t.i._free(e)}function ra(t,e,n){if(!t.i.canvas)throw Error("No OpenGL canvas configured.");if(n?t.i._bindTextureToStream(n):t.i._bindTextureToCanvas(),!(n=t.i.canvas.getContext("webgl2")||t.i.canvas.getContext("webgl")))throw Error("Failed to obtain WebGL context from the provided canvas. `getContext()` should only be invoked with `webgl` or `webgl2`.");t.i.gpuOriginForWebTexturesIsBottomLeft&&n.pixelStorei(n.UNPACK_FLIP_Y_WEBGL,!0),n.texImage2D(n.TEXTURE_2D,0,n.RGBA,n.RGBA,n.UNSIGNED_BYTE,e),t.i.gpuOriginForWebTexturesIsBottomLeft&&n.pixelStorei(n.UNPACK_FLIP_Y_WEBGL,!1);const[r,i]=ea(e);return!t.l||r===t.i.canvas.width&&i===t.i.canvas.height||(t.i.canvas.width=r,t.i.canvas.height=i),[r,i]}function ia(t,e,n){t.m||console.error("No wasm multistream support detected: ensure dependency inclusion of :gl_graph_runner_internal_multi_input target");const r=new Uint32Array(e.length);for(let n=0;n>2),n(e);for(const e of r)t.i._free(e);t.i._free(e)}function sa(t,e,n){t.i.simpleListeners=t.i.simpleListeners||{},t.i.simpleListeners[e]=n}function oa(t,e,n){let r=[];t.i.simpleListeners=t.i.simpleListeners||{},t.i.simpleListeners[e]=(t,e,i)=>{e?(n(r,i),r=[]):r.push(t)}}Zo.forVisionTasks=function(t,e=!1){return Jo("vision",t??Hi``,e)},Zo.forTextTasks=function(t,e=!1){return Jo("text",t??Hi``,e)},Zo.forGenAiTasks=function(t,e=!1){return Jo("genai",t??Hi``,e)},Zo.forAudioTasks=function(t,e=!1){return Jo("audio",t??Hi``,e)},Zo.isSimdSupported=function(t=!1){return $o(t)};async function aa(t,e,n,r){return t=await(async(t,e,n,r,i)=>{if(e&&await ta(e),!self.ModuleFactory)throw Error("ModuleFactory not set.");if(n&&(await ta(n),!self.ModuleFactory))throw Error("ModuleFactory not set.");return self.Module&&i&&((e=self.Module).locateFile=i.locateFile,i.mainScriptUrlOrBlob&&(e.mainScriptUrlOrBlob=i.mainScriptUrlOrBlob)),i=await self.ModuleFactory(self.Module||i),self.ModuleFactory=self.Module=void 0,new t(i,r)})(t,n.wasmLoaderPath,n.assetLoaderPath,e,{locateFile:t=>t.endsWith(".wasm")?n.wasmBinaryPath.toString():n.assetBinaryPath&&t.endsWith(".data")?n.assetBinaryPath.toString():t}),await t.o(r),t}function ca(t,e){const n=yn(t.baseOptions,Vs,1)||new Vs;"string"==typeof e?(Ze(n,2,ue(e)),Ze(n,1)):e instanceof Uint8Array&&(Ze(n,1,ht(e,!1)),Ze(n,2)),wn(t.baseOptions,0,1,n)}function ha(t){try{const e=t.H.length;if(1===e)throw Error(t.H[0].message);if(e>1)throw Error("Encountered multiple errors: "+t.H.map((t=>t.message)).join(", "))}finally{t.H=[]}}function ua(t,e){t.C=Math.max(t.C,e)}function la(t,e){t.B=new is,Rn(t.B,2,"PassThroughCalculator"),ns(t.B,"free_memory"),rs(t.B,"free_memory_unused_out"),hs(e,"free_memory"),cs(e,t.B)}function fa(t,e){ns(t.B,e),rs(t.B,e+"_unused_out")}function da(t){t.g.addBoolToStream(!0,"free_memory",t.C)}var pa=class{constructor(t){this.g=t,this.H=[],this.C=0,this.g.setAutoRenderToScreen(!1)}l(t,e=!0){if(e){const e=t.baseOptions||{};if(t.baseOptions?.modelAssetBuffer&&t.baseOptions?.modelAssetPath)throw Error("Cannot set both baseOptions.modelAssetPath and baseOptions.modelAssetBuffer");if(!(yn(this.baseOptions,Vs,1)?.g()||yn(this.baseOptions,Vs,1)?.l()||t.baseOptions?.modelAssetBuffer||t.baseOptions?.modelAssetPath))throw Error("Either baseOptions.modelAssetPath or baseOptions.modelAssetBuffer must be set");if(function(t,e){let n=yn(t.baseOptions,Gs,3);if(!n){var r=n=new Gs,i=new $i;Tn(r,4,js,i)}"delegate"in e&&("GPU"===e.delegate?(e=n,r=new zi,Tn(e,2,js,r)):(e=n,r=new $i,Tn(e,4,js,r))),wn(t.baseOptions,0,3,n)}(this,e),e.modelAssetPath)return fetch(e.modelAssetPath.toString()).then((t=>{if(t.ok)return t.arrayBuffer();throw Error(`Failed to fetch model: ${e.modelAssetPath} (${t.status})`)})).then((t=>{try{this.g.i.FS_unlink("/model.dat")}catch{}this.g.i.FS_createDataFile("/","model.dat",new Uint8Array(t),!0,!1,!1),ca(this,"/model.dat"),this.m(),this.L()}));if(e.modelAssetBuffer instanceof Uint8Array)ca(this,e.modelAssetBuffer);else if(e.modelAssetBuffer)return async function(t){const e=[];for(var n=0;;){const{done:r,value:i}=await t.read();if(r)break;e.push(i),n+=i.length}if(0===e.length)return new Uint8Array(0);if(1===e.length)return e[0];t=new Uint8Array(n),n=0;for(const r of e)t.set(r,n),n+=r.length;return t}(e.modelAssetBuffer).then((t=>{ca(this,t),this.m(),this.L()}))}return this.m(),this.L(),Promise.resolve()}L(){}ca(){let t;if(this.g.ca((e=>{t=ds(e)})),!t)throw Error("Failed to retrieve CalculatorGraphConfig");return t}setGraph(t,e){this.g.attachErrorListener(((t,e)=>{this.H.push(Error(e))})),this.g.Ja(),this.g.setGraph(t,e),this.B=void 0,ha(this)}finishProcessing(){this.g.finishProcessing(),ha(this)}close(){this.B=void 0,this.g.closeGraph()}};function ga(t,e){if(!t)throw Error(`Unable to obtain required WebGL resource: ${e}`);return t}pa.prototype.close=pa.prototype.close;class ma{constructor(t,e,n,r){this.g=t,this.h=e,this.m=n,this.l=r}bind(){this.g.bindVertexArray(this.h)}close(){this.g.deleteVertexArray(this.h),this.g.deleteBuffer(this.m),this.g.deleteBuffer(this.l)}}function ya(t,e,n){const r=t.g;if(n=ga(r.createShader(n),"Failed to create WebGL shader"),r.shaderSource(n,e),r.compileShader(n),!r.getShaderParameter(n,r.COMPILE_STATUS))throw Error(`Could not compile WebGL shader: ${r.getShaderInfoLog(n)}`);return r.attachShader(t.h,n),n}function _a(t,e){const n=t.g,r=ga(n.createVertexArray(),"Failed to create vertex array");n.bindVertexArray(r);const i=ga(n.createBuffer(),"Failed to create buffer");n.bindBuffer(n.ARRAY_BUFFER,i),n.enableVertexAttribArray(t.O),n.vertexAttribPointer(t.O,2,n.FLOAT,!1,0,0),n.bufferData(n.ARRAY_BUFFER,new Float32Array([-1,-1,-1,1,1,1,1,-1]),n.STATIC_DRAW);const s=ga(n.createBuffer(),"Failed to create buffer");return n.bindBuffer(n.ARRAY_BUFFER,s),n.enableVertexAttribArray(t.L),n.vertexAttribPointer(t.L,2,n.FLOAT,!1,0,0),n.bufferData(n.ARRAY_BUFFER,new Float32Array(e?[0,1,0,0,1,0,1,1]:[0,0,0,1,1,1,1,0]),n.STATIC_DRAW),n.bindBuffer(n.ARRAY_BUFFER,null),n.bindVertexArray(null),new ma(n,r,i,s)}function va(t,e){if(t.g){if(e!==t.g)throw Error("Cannot change GL context once initialized")}else t.g=e}function Ea(t,e,n,r){return va(t,e),t.h||(t.m(),t.D()),n?(t.u||(t.u=_a(t,!0)),n=t.u):(t.A||(t.A=_a(t,!1)),n=t.A),e.useProgram(t.h),n.bind(),t.l(),t=r(),n.g.bindVertexArray(null),t}function wa(t,e,n){return va(t,e),t=ga(e.createTexture(),"Failed to create texture"),e.bindTexture(e.TEXTURE_2D,t),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MIN_FILTER,n??e.LINEAR),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MAG_FILTER,n??e.LINEAR),e.bindTexture(e.TEXTURE_2D,null),t}function Ta(t,e,n){va(t,e),t.B||(t.B=ga(e.createFramebuffer(),"Failed to create framebuffe.")),e.bindFramebuffer(e.FRAMEBUFFER,t.B),e.framebufferTexture2D(e.FRAMEBUFFER,e.COLOR_ATTACHMENT0,e.TEXTURE_2D,n,0)}function Aa(t){t.g?.bindFramebuffer(t.g.FRAMEBUFFER,null)}var ba=class{H(){return"\n precision mediump float;\n varying vec2 vTex;\n uniform sampler2D inputTexture;\n void main() {\n gl_FragColor = texture2D(inputTexture, vTex);\n }\n "}m(){const t=this.g;if(this.h=ga(t.createProgram(),"Failed to create WebGL program"),this.X=ya(this,"\n attribute vec2 aVertex;\n attribute vec2 aTex;\n varying vec2 vTex;\n void main(void) {\n gl_Position = vec4(aVertex, 0.0, 1.0);\n vTex = aTex;\n }",t.VERTEX_SHADER),this.W=ya(this,this.H(),t.FRAGMENT_SHADER),t.linkProgram(this.h),!t.getProgramParameter(this.h,t.LINK_STATUS))throw Error(`Error during program linking: ${t.getProgramInfoLog(this.h)}`);this.O=t.getAttribLocation(this.h,"aVertex"),this.L=t.getAttribLocation(this.h,"aTex")}D(){}l(){}close(){if(this.h){const t=this.g;t.deleteProgram(this.h),t.deleteShader(this.X),t.deleteShader(this.W)}this.B&&this.g.deleteFramebuffer(this.B),this.A&&this.A.close(),this.u&&this.u.close()}};var ka=class extends ba{H(){return"\n precision mediump float;\n uniform sampler2D backgroundTexture;\n uniform sampler2D maskTexture;\n uniform sampler2D colorMappingTexture;\n varying vec2 vTex;\n void main() {\n vec4 backgroundColor = texture2D(backgroundTexture, vTex);\n float category = texture2D(maskTexture, vTex).r;\n vec4 categoryColor = texture2D(colorMappingTexture, vec2(category, 0.0));\n gl_FragColor = mix(backgroundColor, categoryColor, categoryColor.a);\n }\n "}D(){const t=this.g;t.activeTexture(t.TEXTURE1),this.C=wa(this,t,t.LINEAR),t.activeTexture(t.TEXTURE2),this.j=wa(this,t,t.NEAREST)}m(){super.m();const t=this.g;this.P=ga(t.getUniformLocation(this.h,"backgroundTexture"),"Uniform location"),this.U=ga(t.getUniformLocation(this.h,"colorMappingTexture"),"Uniform location"),this.M=ga(t.getUniformLocation(this.h,"maskTexture"),"Uniform location")}l(){super.l();const t=this.g;t.uniform1i(this.M,0),t.uniform1i(this.P,1),t.uniform1i(this.U,2)}close(){this.C&&this.g.deleteTexture(this.C),this.j&&this.g.deleteTexture(this.j),super.close()}},Sa=class extends ba{H(){return"\n precision mediump float;\n uniform sampler2D maskTexture;\n uniform sampler2D defaultTexture;\n uniform sampler2D overlayTexture;\n varying vec2 vTex;\n void main() {\n float confidence = texture2D(maskTexture, vTex).r;\n vec4 defaultColor = texture2D(defaultTexture, vTex);\n vec4 overlayColor = texture2D(overlayTexture, vTex);\n // Apply the alpha from the overlay and merge in the default color\n overlayColor = mix(defaultColor, overlayColor, overlayColor.a);\n gl_FragColor = mix(defaultColor, overlayColor, confidence);\n }\n "}D(){const t=this.g;t.activeTexture(t.TEXTURE1),this.j=wa(this,t),t.activeTexture(t.TEXTURE2),this.C=wa(this,t)}m(){super.m();const t=this.g;this.M=ga(t.getUniformLocation(this.h,"defaultTexture"),"Uniform location"),this.P=ga(t.getUniformLocation(this.h,"overlayTexture"),"Uniform location"),this.I=ga(t.getUniformLocation(this.h,"maskTexture"),"Uniform location")}l(){super.l();const t=this.g;t.uniform1i(this.I,0),t.uniform1i(this.M,1),t.uniform1i(this.P,2)}close(){this.j&&this.g.deleteTexture(this.j),this.C&&this.g.deleteTexture(this.C),super.close()}};function xa(t,e){switch(e){case 0:return t.g.find((t=>t instanceof Uint8Array));case 1:return t.g.find((t=>t instanceof Float32Array));case 2:return t.g.find((t=>"undefined"!=typeof WebGLTexture&&t instanceof WebGLTexture));default:throw Error(`Type is not supported: ${e}`)}}function La(t){var e=xa(t,1);if(!e){if(e=xa(t,0))e=new Float32Array(e).map((t=>t/255));else{e=new Float32Array(t.width*t.height);const r=Ia(t);var n=Ma(t);if(Ta(n,r,Ra(t)),"iPad Simulator;iPhone Simulator;iPod Simulator;iPad;iPhone;iPod".split(";").includes(navigator.platform)||navigator.userAgent.includes("Mac")&&"document"in self&&"ontouchend"in self.document){n=new Float32Array(t.width*t.height*4),r.readPixels(0,0,t.width,t.height,r.RGBA,r.FLOAT,n);for(let t=0,r=0;tMath.round(255*t)))),t.g.push(e)),e;var t,e}ia(){return La(this)}N(){return Ra(this)}clone(){const t=[];for(const e of this.g){let n;if(e instanceof Uint8Array)n=new Uint8Array(e);else if(e instanceof Float32Array)n=new Float32Array(e);else{if(!(e instanceof WebGLTexture))throw Error(`Type is not supported: ${e}`);{const t=Ia(this),e=Ma(this);t.activeTexture(t.TEXTURE1),n=wa(e,t,this.m?t.LINEAR:t.NEAREST),t.bindTexture(t.TEXTURE_2D,n);const r=Fa(this);t.texImage2D(t.TEXTURE_2D,0,r,this.width,this.height,0,t.RED,t.FLOAT,null),t.bindTexture(t.TEXTURE_2D,null),Ta(e,t,n),Ea(e,t,!1,(()=>{Pa(this),t.clearColor(0,0,0,0),t.clear(t.COLOR_BUFFER_BIT),t.drawArrays(t.TRIANGLE_FAN,0,4),Ca(this)})),Aa(e),Ca(this)}}t.push(n)}return new Na(t,this.m,this.R(),this.canvas,this.l,this.width,this.height)}close(){this.j&&Ia(this).deleteTexture(xa(this,2)),Ua=-1}};Na.prototype.close=Na.prototype.close,Na.prototype.clone=Na.prototype.clone,Na.prototype.getAsWebGLTexture=Na.prototype.N,Na.prototype.getAsFloat32Array=Na.prototype.ia,Na.prototype.getAsUint8Array=Na.prototype.ja,Na.prototype.hasWebGLTexture=Na.prototype.R,Na.prototype.hasFloat32Array=Na.prototype.ka,Na.prototype.hasUint8Array=Na.prototype.Fa;var Ua=250;const Da={color:"white",lineWidth:4,radius:6};function Ba(t){return{...Da,fillColor:(t=t||{}).color,...t}}function Ga(t,e){return t instanceof Function?t(e):t}function ja(t,e,n){return Math.max(Math.min(e,n),Math.min(Math.max(e,n),t))}function Va(t){if(!t.l)throw Error("CPU rendering requested but CanvasRenderingContext2D not provided.");return t.l}function Xa(t){if(!t.j)throw Error("GPU rendering requested but WebGL2RenderingContext not provided.");return t.j}function Ha(t,e,n){if(e.R())n(e.N());else{const r=e.ka()?e.ia():e.ja();t.m=t.m??new ba;const i=Xa(t);n((t=new Na([r],e.m,!1,i.canvas,t.m,e.width,e.height)).N()),t.close()}}function Wa(t,e,n,r){const i=function(t){return t.g||(t.g=new ka),t.g}(t),s=Xa(t),o=Array.isArray(n)?new ImageData(new Uint8ClampedArray(n),1,1):n;Ea(i,s,!0,(()=>{!function(t,e,n,r){const i=t.g;if(i.activeTexture(i.TEXTURE0),i.bindTexture(i.TEXTURE_2D,e),i.activeTexture(i.TEXTURE1),i.bindTexture(i.TEXTURE_2D,t.C),i.texImage2D(i.TEXTURE_2D,0,i.RGBA,i.RGBA,i.UNSIGNED_BYTE,n),t.I&&function(t,e){if(t!==e)return!1;t=t.entries(),e=e.entries();for(const[r,i]of t){t=r;const s=i;var n=e.next();if(n.done)return!1;const[o,a]=n.value;if(n=a,t!==o||s[0]!==n[0]||s[1]!==n[1]||s[2]!==n[2]||s[3]!==n[3])return!1}return!!e.next().done}(t.I,r))i.activeTexture(i.TEXTURE2),i.bindTexture(i.TEXTURE_2D,t.j);else{t.I=r;const e=Array(1024).fill(0);r.forEach(((t,n)=>{if(4!==t.length)throw Error(`Color at index ${n} is not a four-channel value.`);e[4*n]=t[0],e[4*n+1]=t[1],e[4*n+2]=t[2],e[4*n+3]=t[3]})),i.activeTexture(i.TEXTURE2),i.bindTexture(i.TEXTURE_2D,t.j),i.texImage2D(i.TEXTURE_2D,0,i.RGBA,256,1,0,i.RGBA,i.UNSIGNED_BYTE,new Uint8Array(e))}}(i,e,o,r),s.clearColor(0,0,0,0),s.clear(s.COLOR_BUFFER_BIT),s.drawArrays(s.TRIANGLE_FAN,0,4);const t=i.g;t.activeTexture(t.TEXTURE0),t.bindTexture(t.TEXTURE_2D,null),t.activeTexture(t.TEXTURE1),t.bindTexture(t.TEXTURE_2D,null),t.activeTexture(t.TEXTURE2),t.bindTexture(t.TEXTURE_2D,null)}))}function za(t,e,n,r){const i=Xa(t),s=function(t){return t.h||(t.h=new Sa),t.h}(t),o=Array.isArray(n)?new ImageData(new Uint8ClampedArray(n),1,1):n,a=Array.isArray(r)?new ImageData(new Uint8ClampedArray(r),1,1):r;Ea(s,i,!0,(()=>{var t=s.g;t.activeTexture(t.TEXTURE0),t.bindTexture(t.TEXTURE_2D,e),t.activeTexture(t.TEXTURE1),t.bindTexture(t.TEXTURE_2D,s.j),t.texImage2D(t.TEXTURE_2D,0,t.RGBA,t.RGBA,t.UNSIGNED_BYTE,o),t.activeTexture(t.TEXTURE2),t.bindTexture(t.TEXTURE_2D,s.C),t.texImage2D(t.TEXTURE_2D,0,t.RGBA,t.RGBA,t.UNSIGNED_BYTE,a),i.clearColor(0,0,0,0),i.clear(i.COLOR_BUFFER_BIT),i.drawArrays(i.TRIANGLE_FAN,0,4),i.bindTexture(i.TEXTURE_2D,null),(t=s.g).activeTexture(t.TEXTURE0),t.bindTexture(t.TEXTURE_2D,null),t.activeTexture(t.TEXTURE1),t.bindTexture(t.TEXTURE_2D,null),t.activeTexture(t.TEXTURE2),t.bindTexture(t.TEXTURE_2D,null)}))}var Ka=class{constructor(t,e){"undefined"!=typeof CanvasRenderingContext2D&&t instanceof CanvasRenderingContext2D||t instanceof OffscreenCanvasRenderingContext2D?(this.l=t,this.j=e):this.j=t}ya(t,e){if(t){var n=Va(this);e=Ba(e),n.save();var r=n.canvas,i=0;for(const s of t)n.fillStyle=Ga(e.fillColor,{index:i,from:s}),n.strokeStyle=Ga(e.color,{index:i,from:s}),n.lineWidth=Ga(e.lineWidth,{index:i,from:s}),(t=new Path2D).arc(s.x*r.width,s.y*r.height,Ga(e.radius,{index:i,from:s}),0,2*Math.PI),n.fill(t),n.stroke(t),++i;n.restore()}}xa(t,e,n){if(t&&e){var r=Va(this);n=Ba(n),r.save();var i=r.canvas,s=0;for(const o of e){r.beginPath(),e=t[o.start];const a=t[o.end];e&&a&&(r.strokeStyle=Ga(n.color,{index:s,from:e,to:a}),r.lineWidth=Ga(n.lineWidth,{index:s,from:e,to:a}),r.moveTo(e.x*i.width,e.y*i.height),r.lineTo(a.x*i.width,a.y*i.height)),++s,r.stroke()}r.restore()}}ua(t,e){const n=Va(this);e=Ba(e),n.save(),n.beginPath(),n.lineWidth=Ga(e.lineWidth,{}),n.strokeStyle=Ga(e.color,{}),n.fillStyle=Ga(e.fillColor,{}),n.moveTo(t.originX,t.originY),n.lineTo(t.originX+t.width,t.originY),n.lineTo(t.originX+t.width,t.originY+t.height),n.lineTo(t.originX,t.originY+t.height),n.lineTo(t.originX,t.originY),n.stroke(),n.fill(),n.restore()}va(t,e,n=[0,0,0,255]){this.l?function(t,e,n,r){const i=Xa(t);Ha(t,e,(e=>{Wa(t,e,n,r),(e=Va(t)).drawImage(i.canvas,0,0,e.canvas.width,e.canvas.height)}))}(this,t,n,e):Wa(this,t.N(),n,e)}wa(t,e,n){this.l?function(t,e,n,r){const i=Xa(t);Ha(t,e,(e=>{za(t,e,n,r),(e=Va(t)).drawImage(i.canvas,0,0,e.canvas.width,e.canvas.height)}))}(this,t,e,n):za(this,t.N(),e,n)}close(){this.g?.close(),this.g=void 0,this.h?.close(),this.h=void 0,this.m?.close(),this.m=void 0}};function Ya(t,e){switch(e){case 0:return t.g.find((t=>t instanceof ImageData));case 1:return t.g.find((t=>"undefined"!=typeof ImageBitmap&&t instanceof ImageBitmap));case 2:return t.g.find((t=>"undefined"!=typeof WebGLTexture&&t instanceof WebGLTexture));default:throw Error(`Type is not supported: ${e}`)}}function qa(t){var e=Ya(t,0);if(!e){e=Ja(t);const n=Za(t),r=new Uint8Array(t.width*t.height*4);Ta(n,e,$a(t)),e.readPixels(0,0,t.width,t.height,e.RGBA,e.UNSIGNED_BYTE,r),Aa(n),e=new ImageData(new Uint8ClampedArray(r.buffer),t.width,t.height),t.g.push(e)}return e}function $a(t){let e=Ya(t,2);if(!e){const n=Ja(t);e=Qa(t);const r=Ya(t,1)||qa(t);n.texImage2D(n.TEXTURE_2D,0,n.RGBA,n.RGBA,n.UNSIGNED_BYTE,r),tc(t)}return e}function Ja(t){if(!t.canvas)throw Error("Conversion to different image formats require that a canvas is passed when initializing the image.");return t.h||(t.h=ga(t.canvas.getContext("webgl2"),"You cannot use a canvas that is already bound to a different type of rendering context.")),t.h}function Za(t){return t.l||(t.l=new ba),t.l}function Qa(t){const e=Ja(t);e.viewport(0,0,t.width,t.height),e.activeTexture(e.TEXTURE0);let n=Ya(t,2);return n||(n=wa(Za(t),e),t.g.push(n),t.m=!0),e.bindTexture(e.TEXTURE_2D,n),n}function tc(t){t.h.bindTexture(t.h.TEXTURE_2D,null)}function ec(t){const e=Ja(t);return Ea(Za(t),e,!0,(()=>function(t,e){const n=t.canvas;if(n.width===t.width&&n.height===t.height)return e();const r=n.width,i=n.height;return n.width=t.width,n.height=t.height,t=e(),n.width=r,n.height=i,t}(t,(()=>{if(e.bindFramebuffer(e.FRAMEBUFFER,null),e.clearColor(0,0,0,0),e.clear(e.COLOR_BUFFER_BIT),e.drawArrays(e.TRIANGLE_FAN,0,4),!(t.canvas instanceof OffscreenCanvas))throw Error("Conversion to ImageBitmap requires that the MediaPipe Tasks is initialized with an OffscreenCanvas");return t.canvas.transferToImageBitmap()}))))}Ka.prototype.close=Ka.prototype.close,Ka.prototype.drawConfidenceMask=Ka.prototype.wa,Ka.prototype.drawCategoryMask=Ka.prototype.va,Ka.prototype.drawBoundingBox=Ka.prototype.ua,Ka.prototype.drawConnectors=Ka.prototype.xa,Ka.prototype.drawLandmarks=Ka.prototype.ya,Ka.lerp=function(t,e,n,r,i){return ja(r*(1-(t-e)/(n-e))+i*(1-(n-t)/(n-e)),r,i)},Ka.clamp=ja;var nc=class{constructor(t,e,n,r,i,s,o){this.g=t,this.j=e,this.m=n,this.canvas=r,this.l=i,this.width=s,this.height=o,(this.j||this.m)&&(0===--rc&&console.error("You seem to be creating MPImage instances without invoking .close(). This leaks resources."))}Ea(){return!!Ya(this,0)}la(){return!!Ya(this,1)}R(){return!!Ya(this,2)}Ca(){return qa(this)}Ba(){var t=Ya(this,1);return t||($a(this),Qa(this),t=ec(this),tc(this),this.g.push(t),this.j=!0),t}N(){return $a(this)}clone(){const t=[];for(const e of this.g){let n;if(e instanceof ImageData)n=new ImageData(e.data,this.width,this.height);else if(e instanceof WebGLTexture){const t=Ja(this),e=Za(this);t.activeTexture(t.TEXTURE1),n=wa(e,t),t.bindTexture(t.TEXTURE_2D,n),t.texImage2D(t.TEXTURE_2D,0,t.RGBA,this.width,this.height,0,t.RGBA,t.UNSIGNED_BYTE,null),t.bindTexture(t.TEXTURE_2D,null),Ta(e,t,n),Ea(e,t,!1,(()=>{Qa(this),t.clearColor(0,0,0,0),t.clear(t.COLOR_BUFFER_BIT),t.drawArrays(t.TRIANGLE_FAN,0,4),tc(this)})),Aa(e),tc(this)}else{if(!(e instanceof ImageBitmap))throw Error(`Type is not supported: ${e}`);$a(this),Qa(this),n=ec(this),tc(this)}t.push(n)}return new nc(t,this.la(),this.R(),this.canvas,this.l,this.width,this.height)}close(){this.j&&Ya(this,1).close(),this.m&&Ja(this).deleteTexture(Ya(this,2)),rc=-1}};nc.prototype.close=nc.prototype.close,nc.prototype.clone=nc.prototype.clone,nc.prototype.getAsWebGLTexture=nc.prototype.N,nc.prototype.getAsImageBitmap=nc.prototype.Ba,nc.prototype.getAsImageData=nc.prototype.Ca,nc.prototype.hasWebGLTexture=nc.prototype.R,nc.prototype.hasImageBitmap=nc.prototype.la,nc.prototype.hasImageData=nc.prototype.Ea;var rc=250;function ic(...t){return t.map((([t,e])=>({start:t,end:e})))}const sc=function(t){return class extends t{Ja(){this.i._registerModelResourcesGraphService()}}}((oc=class{constructor(t,e){this.l=!0,this.i=t,this.g=null,this.h=0,this.m="function"==typeof this.i._addIntToInputStream,void 0!==e?this.i.canvas=e:Qo()?this.i.canvas=new OffscreenCanvas(1,1):(console.warn("OffscreenCanvas not supported and GraphRunner constructor glCanvas parameter is undefined. Creating backup canvas."),this.i.canvas=document.createElement("canvas"))}async initializeGraph(t){const e=await(await fetch(t)).arrayBuffer();t=!(t.endsWith(".pbtxt")||t.endsWith(".textproto")),this.setGraph(new Uint8Array(e),t)}setGraphFromString(t){this.setGraph((new TextEncoder).encode(t),!1)}setGraph(t,e){const n=t.length,r=this.i._malloc(n);this.i.HEAPU8.set(t,r),e?this.i._changeBinaryGraph(n,r):this.i._changeTextGraph(n,r),this.i._free(r)}configureAudio(t,e,n,r,i){this.i._configureAudio||console.warn('Attempting to use configureAudio without support for input audio. Is build dep ":gl_graph_runner_audio" missing?'),na(this,r||"input_audio",(r=>{na(this,i=i||"audio_header",(i=>{this.i._configureAudio(r,i,t,e??0,n)}))}))}setAutoResizeCanvas(t){this.l=t}setAutoRenderToScreen(t){this.i._setAutoRenderToScreen(t)}setGpuBufferVerticalFlip(t){this.i.gpuOriginForWebTexturesIsBottomLeft=t}ca(t){sa(this,"__graph_config__",(e=>{t(e)})),na(this,"__graph_config__",(t=>{this.i._getGraphConfig(t,void 0)})),delete this.i.simpleListeners.__graph_config__}attachErrorListener(t){this.i.errorListener=t}attachEmptyPacketListener(t,e){this.i.emptyPacketListeners=this.i.emptyPacketListeners||{},this.i.emptyPacketListeners[t]=e}addAudioToStream(t,e,n){this.addAudioToStreamWithShape(t,0,0,e,n)}addAudioToStreamWithShape(t,e,n,r,i){const s=4*t.length;this.h!==s&&(this.g&&this.i._free(this.g),this.g=this.i._malloc(s),this.h=s),this.i.HEAPF32.set(t,this.g/4),na(this,r,(t=>{this.i._addAudioToInputStream(this.g,e,n,t,i)}))}addGpuBufferToStream(t,e,n){na(this,e,(e=>{const[r,i]=ra(this,t,e);this.i._addBoundTextureToStream(e,r,i,n)}))}addBoolToStream(t,e,n){na(this,e,(e=>{this.i._addBoolToInputStream(t,e,n)}))}addDoubleToStream(t,e,n){na(this,e,(e=>{this.i._addDoubleToInputStream(t,e,n)}))}addFloatToStream(t,e,n){na(this,e,(e=>{this.i._addFloatToInputStream(t,e,n)}))}addIntToStream(t,e,n){na(this,e,(e=>{this.i._addIntToInputStream(t,e,n)}))}addUintToStream(t,e,n){na(this,e,(e=>{this.i._addUintToInputStream(t,e,n)}))}addStringToStream(t,e,n){na(this,e,(e=>{na(this,t,(t=>{this.i._addStringToInputStream(t,e,n)}))}))}addStringRecordToStream(t,e,n){na(this,e,(e=>{ia(this,Object.keys(t),(r=>{ia(this,Object.values(t),(i=>{this.i._addFlatHashMapToInputStream(r,i,Object.keys(t).length,e,n)}))}))}))}addProtoToStream(t,e,n,r){na(this,n,(n=>{na(this,e,(e=>{const i=this.i._malloc(t.length);this.i.HEAPU8.set(t,i),this.i._addProtoToInputStream(i,t.length,e,n,r),this.i._free(i)}))}))}addEmptyPacketToStream(t,e){na(this,t,(t=>{this.i._addEmptyPacketToInputStream(t,e)}))}addBoolVectorToStream(t,e,n){na(this,e,(e=>{const r=this.i._allocateBoolVector(t.length);if(!r)throw Error("Unable to allocate new bool vector on heap.");for(const e of t)this.i._addBoolVectorEntry(r,e);this.i._addBoolVectorToInputStream(r,e,n)}))}addDoubleVectorToStream(t,e,n){na(this,e,(e=>{const r=this.i._allocateDoubleVector(t.length);if(!r)throw Error("Unable to allocate new double vector on heap.");for(const e of t)this.i._addDoubleVectorEntry(r,e);this.i._addDoubleVectorToInputStream(r,e,n)}))}addFloatVectorToStream(t,e,n){na(this,e,(e=>{const r=this.i._allocateFloatVector(t.length);if(!r)throw Error("Unable to allocate new float vector on heap.");for(const e of t)this.i._addFloatVectorEntry(r,e);this.i._addFloatVectorToInputStream(r,e,n)}))}addIntVectorToStream(t,e,n){na(this,e,(e=>{const r=this.i._allocateIntVector(t.length);if(!r)throw Error("Unable to allocate new int vector on heap.");for(const e of t)this.i._addIntVectorEntry(r,e);this.i._addIntVectorToInputStream(r,e,n)}))}addUintVectorToStream(t,e,n){na(this,e,(e=>{const r=this.i._allocateUintVector(t.length);if(!r)throw Error("Unable to allocate new unsigned int vector on heap.");for(const e of t)this.i._addUintVectorEntry(r,e);this.i._addUintVectorToInputStream(r,e,n)}))}addStringVectorToStream(t,e,n){na(this,e,(e=>{const r=this.i._allocateStringVector(t.length);if(!r)throw Error("Unable to allocate new string vector on heap.");for(const e of t)na(this,e,(t=>{this.i._addStringVectorEntry(r,t)}));this.i._addStringVectorToInputStream(r,e,n)}))}addBoolToInputSidePacket(t,e){na(this,e,(e=>{this.i._addBoolToInputSidePacket(t,e)}))}addDoubleToInputSidePacket(t,e){na(this,e,(e=>{this.i._addDoubleToInputSidePacket(t,e)}))}addFloatToInputSidePacket(t,e){na(this,e,(e=>{this.i._addFloatToInputSidePacket(t,e)}))}addIntToInputSidePacket(t,e){na(this,e,(e=>{this.i._addIntToInputSidePacket(t,e)}))}addUintToInputSidePacket(t,e){na(this,e,(e=>{this.i._addUintToInputSidePacket(t,e)}))}addStringToInputSidePacket(t,e){na(this,e,(e=>{na(this,t,(t=>{this.i._addStringToInputSidePacket(t,e)}))}))}addProtoToInputSidePacket(t,e,n){na(this,n,(n=>{na(this,e,(e=>{const r=this.i._malloc(t.length);this.i.HEAPU8.set(t,r),this.i._addProtoToInputSidePacket(r,t.length,e,n),this.i._free(r)}))}))}addBoolVectorToInputSidePacket(t,e){na(this,e,(e=>{const n=this.i._allocateBoolVector(t.length);if(!n)throw Error("Unable to allocate new bool vector on heap.");for(const e of t)this.i._addBoolVectorEntry(n,e);this.i._addBoolVectorToInputSidePacket(n,e)}))}addDoubleVectorToInputSidePacket(t,e){na(this,e,(e=>{const n=this.i._allocateDoubleVector(t.length);if(!n)throw Error("Unable to allocate new double vector on heap.");for(const e of t)this.i._addDoubleVectorEntry(n,e);this.i._addDoubleVectorToInputSidePacket(n,e)}))}addFloatVectorToInputSidePacket(t,e){na(this,e,(e=>{const n=this.i._allocateFloatVector(t.length);if(!n)throw Error("Unable to allocate new float vector on heap.");for(const e of t)this.i._addFloatVectorEntry(n,e);this.i._addFloatVectorToInputSidePacket(n,e)}))}addIntVectorToInputSidePacket(t,e){na(this,e,(e=>{const n=this.i._allocateIntVector(t.length);if(!n)throw Error("Unable to allocate new int vector on heap.");for(const e of t)this.i._addIntVectorEntry(n,e);this.i._addIntVectorToInputSidePacket(n,e)}))}addUintVectorToInputSidePacket(t,e){na(this,e,(e=>{const n=this.i._allocateUintVector(t.length);if(!n)throw Error("Unable to allocate new unsigned int vector on heap.");for(const e of t)this.i._addUintVectorEntry(n,e);this.i._addUintVectorToInputSidePacket(n,e)}))}addStringVectorToInputSidePacket(t,e){na(this,e,(e=>{const n=this.i._allocateStringVector(t.length);if(!n)throw Error("Unable to allocate new string vector on heap.");for(const e of t)na(this,e,(t=>{this.i._addStringVectorEntry(n,t)}));this.i._addStringVectorToInputSidePacket(n,e)}))}attachBoolListener(t,e){sa(this,t,e),na(this,t,(t=>{this.i._attachBoolListener(t)}))}attachBoolVectorListener(t,e){oa(this,t,e),na(this,t,(t=>{this.i._attachBoolVectorListener(t)}))}attachIntListener(t,e){sa(this,t,e),na(this,t,(t=>{this.i._attachIntListener(t)}))}attachIntVectorListener(t,e){oa(this,t,e),na(this,t,(t=>{this.i._attachIntVectorListener(t)}))}attachUintListener(t,e){sa(this,t,e),na(this,t,(t=>{this.i._attachUintListener(t)}))}attachUintVectorListener(t,e){oa(this,t,e),na(this,t,(t=>{this.i._attachUintVectorListener(t)}))}attachDoubleListener(t,e){sa(this,t,e),na(this,t,(t=>{this.i._attachDoubleListener(t)}))}attachDoubleVectorListener(t,e){oa(this,t,e),na(this,t,(t=>{this.i._attachDoubleVectorListener(t)}))}attachFloatListener(t,e){sa(this,t,e),na(this,t,(t=>{this.i._attachFloatListener(t)}))}attachFloatVectorListener(t,e){oa(this,t,e),na(this,t,(t=>{this.i._attachFloatVectorListener(t)}))}attachStringListener(t,e){sa(this,t,e),na(this,t,(t=>{this.i._attachStringListener(t)}))}attachStringVectorListener(t,e){oa(this,t,e),na(this,t,(t=>{this.i._attachStringVectorListener(t)}))}attachProtoListener(t,e,n){sa(this,t,e),na(this,t,(t=>{this.i._attachProtoListener(t,n||!1)}))}attachProtoVectorListener(t,e,n){oa(this,t,e),na(this,t,(t=>{this.i._attachProtoVectorListener(t,n||!1)}))}attachAudioListener(t,e,n){this.i._attachAudioListener||console.warn('Attempting to use attachAudioListener without support for output audio. Is build dep ":gl_graph_runner_audio_out" missing?'),sa(this,t,((t,n)=>{t=new Float32Array(t.buffer,t.byteOffset,t.length/4),e(t,n)})),na(this,t,(t=>{this.i._attachAudioListener(t,n||!1)}))}finishProcessing(){this.i._waitUntilIdle()}closeGraph(){this.i._closeGraph(),this.i.simpleListeners=void 0,this.i.emptyPacketListeners=void 0}},class extends oc{get ga(){return this.i}pa(t,e,n){na(this,e,(e=>{const[r,i]=ra(this,t,e);this.ga._addBoundTextureAsImageToStream(e,r,i,n)}))}Z(t,e){sa(this,t,e),na(this,t,(t=>{this.ga._attachImageListener(t)}))}aa(t,e){oa(this,t,e),na(this,t,(t=>{this.ga._attachImageVectorListener(t)}))}}));var oc,ac=class extends sc{};async function cc(t,e,n){return async function(t,e,n,r){return aa(t,e,n,r)}(t,n.canvas??(Qo()?void 0:document.createElement("canvas")),e,n)}function hc(t,e,n,r){if(t.U){const s=new Ls;if(n?.regionOfInterest){if(!t.oa)throw Error("This task doesn't support region-of-interest.");var i=n.regionOfInterest;if(i.left>=i.right||i.top>=i.bottom)throw Error("Expected RectF with left < right and top < bottom.");if(i.left<0||i.top<0||i.right>1||i.bottom>1)throw Error("Expected RectF values to be in [0,1].");Ln(s,1,(i.left+i.right)/2),Ln(s,2,(i.top+i.bottom)/2),Ln(s,4,i.right-i.left),Ln(s,3,i.bottom-i.top)}else Ln(s,1,.5),Ln(s,2,.5),Ln(s,4,1),Ln(s,3,1);if(n?.rotationDegrees){if(n?.rotationDegrees%90!=0)throw Error("Expected rotation to be a multiple of 90°.");if(Ln(s,5,-Math.PI*n.rotationDegrees/180),n?.rotationDegrees%180!=0){const[t,r]=ea(e);n=Sn(s,3)*r/t,i=Sn(s,4)*t/r,Ln(s,4,n),Ln(s,3,i)}}t.g.addProtoToStream(s.g(),"mediapipe.NormalizedRect",t.U,r)}t.g.pa(e,t.X,r??performance.now()),t.finishProcessing()}function uc(t,e,n){if(t.baseOptions?.g())throw Error("Task is not initialized with image mode. 'runningMode' must be set to 'IMAGE'.");hc(t,e,n,t.C+1)}function lc(t,e,n,r){if(!t.baseOptions?.g())throw Error("Task is not initialized with video mode. 'runningMode' must be set to 'VIDEO'.");hc(t,e,n,r)}function fc(t,e,n,r){var i=e.data;const s=e.width,o=s*(e=e.height);if((i instanceof Uint8Array||i instanceof Float32Array)&&i.length!==o)throw Error("Unsupported channel count: "+i.length/o);return t=new Na([i],n,!1,t.g.i.canvas,t.P,s,e),r?t.clone():t}var dc=class extends pa{constructor(t,e,n,r){super(t),this.g=t,this.X=e,this.U=n,this.oa=r,this.P=new ba}l(t,e=!0){if("runningMode"in t&&Ze(this.baseOptions,2,Jt(!!t.runningMode&&"IMAGE"!==t.runningMode)),void 0!==t.canvas&&this.g.i.canvas!==t.canvas)throw Error("You must create a new task to reset the canvas.");return super.l(t,e)}close(){this.P.close(),super.close()}};dc.prototype.close=dc.prototype.close;var pc=class extends dc{constructor(t,e){super(new ac(t,e),"image_in","norm_rect_in",!1),this.j={detections:[]},wn(t=this.h=new zs,0,1,e=new Xs),Ln(this.h,2,.5),Ln(this.h,3,.3)}get baseOptions(){return yn(this.h,Xs,1)}set baseOptions(t){wn(this.h,0,1,t)}o(t){return"minDetectionConfidence"in t&&Ln(this.h,2,t.minDetectionConfidence??.5),"minSuppressionThreshold"in t&&Ln(this.h,3,t.minSuppressionThreshold??.3),this.l(t)}F(t,e){return this.j={detections:[]},uc(this,t,e),this.j}G(t,e,n){return this.j={detections:[]},lc(this,t,n,e),this.j}m(){var t=new ls;hs(t,"image_in"),hs(t,"norm_rect_in"),us(t,"detections");const e=new Qi;xr(e,Ys,this.h);const n=new is;Rn(n,2,"mediapipe.tasks.vision.face_detector.FaceDetectorGraph"),ns(n,"IMAGE:image_in"),ns(n,"NORM_RECT:norm_rect_in"),rs(n,"DETECTIONS:detections"),n.o(e),cs(t,n),this.g.attachProtoVectorListener("detections",((t,e)=>{for(const e of t)t=ws(e),this.j.detections.push(Xo(t));ua(this,e)})),this.g.attachEmptyPacketListener("detections",(t=>{ua(this,t)})),t=t.g(),this.setGraph(new Uint8Array(t),!0)}};pc.prototype.detectForVideo=pc.prototype.G,pc.prototype.detect=pc.prototype.F,pc.prototype.setOptions=pc.prototype.o,pc.createFromModelPath=async function(t,e){return cc(pc,t,{baseOptions:{modelAssetPath:e}})},pc.createFromModelBuffer=function(t,e){return cc(pc,t,{baseOptions:{modelAssetBuffer:e}})},pc.createFromOptions=function(t,e){return cc(pc,t,e)};var gc=ic([61,146],[146,91],[91,181],[181,84],[84,17],[17,314],[314,405],[405,321],[321,375],[375,291],[61,185],[185,40],[40,39],[39,37],[37,0],[0,267],[267,269],[269,270],[270,409],[409,291],[78,95],[95,88],[88,178],[178,87],[87,14],[14,317],[317,402],[402,318],[318,324],[324,308],[78,191],[191,80],[80,81],[81,82],[82,13],[13,312],[312,311],[311,310],[310,415],[415,308]),mc=ic([263,249],[249,390],[390,373],[373,374],[374,380],[380,381],[381,382],[382,362],[263,466],[466,388],[388,387],[387,386],[386,385],[385,384],[384,398],[398,362]),yc=ic([276,283],[283,282],[282,295],[295,285],[300,293],[293,334],[334,296],[296,336]),_c=ic([474,475],[475,476],[476,477],[477,474]),vc=ic([33,7],[7,163],[163,144],[144,145],[145,153],[153,154],[154,155],[155,133],[33,246],[246,161],[161,160],[160,159],[159,158],[158,157],[157,173],[173,133]),Ec=ic([46,53],[53,52],[52,65],[65,55],[70,63],[63,105],[105,66],[66,107]),wc=ic([469,470],[470,471],[471,472],[472,469]),Tc=ic([10,338],[338,297],[297,332],[332,284],[284,251],[251,389],[389,356],[356,454],[454,323],[323,361],[361,288],[288,397],[397,365],[365,379],[379,378],[378,400],[400,377],[377,152],[152,148],[148,176],[176,149],[149,150],[150,136],[136,172],[172,58],[58,132],[132,93],[93,234],[234,127],[127,162],[162,21],[21,54],[54,103],[103,67],[67,109],[109,10]),Ac=[...gc,...mc,...yc,...vc,...Ec,...Tc],bc=ic([127,34],[34,139],[139,127],[11,0],[0,37],[37,11],[232,231],[231,120],[120,232],[72,37],[37,39],[39,72],[128,121],[121,47],[47,128],[232,121],[121,128],[128,232],[104,69],[69,67],[67,104],[175,171],[171,148],[148,175],[118,50],[50,101],[101,118],[73,39],[39,40],[40,73],[9,151],[151,108],[108,9],[48,115],[115,131],[131,48],[194,204],[204,211],[211,194],[74,40],[40,185],[185,74],[80,42],[42,183],[183,80],[40,92],[92,186],[186,40],[230,229],[229,118],[118,230],[202,212],[212,214],[214,202],[83,18],[18,17],[17,83],[76,61],[61,146],[146,76],[160,29],[29,30],[30,160],[56,157],[157,173],[173,56],[106,204],[204,194],[194,106],[135,214],[214,192],[192,135],[203,165],[165,98],[98,203],[21,71],[71,68],[68,21],[51,45],[45,4],[4,51],[144,24],[24,23],[23,144],[77,146],[146,91],[91,77],[205,50],[50,187],[187,205],[201,200],[200,18],[18,201],[91,106],[106,182],[182,91],[90,91],[91,181],[181,90],[85,84],[84,17],[17,85],[206,203],[203,36],[36,206],[148,171],[171,140],[140,148],[92,40],[40,39],[39,92],[193,189],[189,244],[244,193],[159,158],[158,28],[28,159],[247,246],[246,161],[161,247],[236,3],[3,196],[196,236],[54,68],[68,104],[104,54],[193,168],[168,8],[8,193],[117,228],[228,31],[31,117],[189,193],[193,55],[55,189],[98,97],[97,99],[99,98],[126,47],[47,100],[100,126],[166,79],[79,218],[218,166],[155,154],[154,26],[26,155],[209,49],[49,131],[131,209],[135,136],[136,150],[150,135],[47,126],[126,217],[217,47],[223,52],[52,53],[53,223],[45,51],[51,134],[134,45],[211,170],[170,140],[140,211],[67,69],[69,108],[108,67],[43,106],[106,91],[91,43],[230,119],[119,120],[120,230],[226,130],[130,247],[247,226],[63,53],[53,52],[52,63],[238,20],[20,242],[242,238],[46,70],[70,156],[156,46],[78,62],[62,96],[96,78],[46,53],[53,63],[63,46],[143,34],[34,227],[227,143],[123,117],[117,111],[111,123],[44,125],[125,19],[19,44],[236,134],[134,51],[51,236],[216,206],[206,205],[205,216],[154,153],[153,22],[22,154],[39,37],[37,167],[167,39],[200,201],[201,208],[208,200],[36,142],[142,100],[100,36],[57,212],[212,202],[202,57],[20,60],[60,99],[99,20],[28,158],[158,157],[157,28],[35,226],[226,113],[113,35],[160,159],[159,27],[27,160],[204,202],[202,210],[210,204],[113,225],[225,46],[46,113],[43,202],[202,204],[204,43],[62,76],[76,77],[77,62],[137,123],[123,116],[116,137],[41,38],[38,72],[72,41],[203,129],[129,142],[142,203],[64,98],[98,240],[240,64],[49,102],[102,64],[64,49],[41,73],[73,74],[74,41],[212,216],[216,207],[207,212],[42,74],[74,184],[184,42],[169,170],[170,211],[211,169],[170,149],[149,176],[176,170],[105,66],[66,69],[69,105],[122,6],[6,168],[168,122],[123,147],[147,187],[187,123],[96,77],[77,90],[90,96],[65,55],[55,107],[107,65],[89,90],[90,180],[180,89],[101,100],[100,120],[120,101],[63,105],[105,104],[104,63],[93,137],[137,227],[227,93],[15,86],[86,85],[85,15],[129,102],[102,49],[49,129],[14,87],[87,86],[86,14],[55,8],[8,9],[9,55],[100,47],[47,121],[121,100],[145,23],[23,22],[22,145],[88,89],[89,179],[179,88],[6,122],[122,196],[196,6],[88,95],[95,96],[96,88],[138,172],[172,136],[136,138],[215,58],[58,172],[172,215],[115,48],[48,219],[219,115],[42,80],[80,81],[81,42],[195,3],[3,51],[51,195],[43,146],[146,61],[61,43],[171,175],[175,199],[199,171],[81,82],[82,38],[38,81],[53,46],[46,225],[225,53],[144,163],[163,110],[110,144],[52,65],[65,66],[66,52],[229,228],[228,117],[117,229],[34,127],[127,234],[234,34],[107,108],[108,69],[69,107],[109,108],[108,151],[151,109],[48,64],[64,235],[235,48],[62,78],[78,191],[191,62],[129,209],[209,126],[126,129],[111,35],[35,143],[143,111],[117,123],[123,50],[50,117],[222,65],[65,52],[52,222],[19,125],[125,141],[141,19],[221,55],[55,65],[65,221],[3,195],[195,197],[197,3],[25,7],[7,33],[33,25],[220,237],[237,44],[44,220],[70,71],[71,139],[139,70],[122,193],[193,245],[245,122],[247,130],[130,33],[33,247],[71,21],[21,162],[162,71],[170,169],[169,150],[150,170],[188,174],[174,196],[196,188],[216,186],[186,92],[92,216],[2,97],[97,167],[167,2],[141,125],[125,241],[241,141],[164,167],[167,37],[37,164],[72,38],[38,12],[12,72],[38,82],[82,13],[13,38],[63,68],[68,71],[71,63],[226,35],[35,111],[111,226],[101,50],[50,205],[205,101],[206,92],[92,165],[165,206],[209,198],[198,217],[217,209],[165,167],[167,97],[97,165],[220,115],[115,218],[218,220],[133,112],[112,243],[243,133],[239,238],[238,241],[241,239],[214,135],[135,169],[169,214],[190,173],[173,133],[133,190],[171,208],[208,32],[32,171],[125,44],[44,237],[237,125],[86,87],[87,178],[178,86],[85,86],[86,179],[179,85],[84,85],[85,180],[180,84],[83,84],[84,181],[181,83],[201,83],[83,182],[182,201],[137,93],[93,132],[132,137],[76,62],[62,183],[183,76],[61,76],[76,184],[184,61],[57,61],[61,185],[185,57],[212,57],[57,186],[186,212],[214,207],[207,187],[187,214],[34,143],[143,156],[156,34],[79,239],[239,237],[237,79],[123,137],[137,177],[177,123],[44,1],[1,4],[4,44],[201,194],[194,32],[32,201],[64,102],[102,129],[129,64],[213,215],[215,138],[138,213],[59,166],[166,219],[219,59],[242,99],[99,97],[97,242],[2,94],[94,141],[141,2],[75,59],[59,235],[235,75],[24,110],[110,228],[228,24],[25,130],[130,226],[226,25],[23,24],[24,229],[229,23],[22,23],[23,230],[230,22],[26,22],[22,231],[231,26],[112,26],[26,232],[232,112],[189,190],[190,243],[243,189],[221,56],[56,190],[190,221],[28,56],[56,221],[221,28],[27,28],[28,222],[222,27],[29,27],[27,223],[223,29],[30,29],[29,224],[224,30],[247,30],[30,225],[225,247],[238,79],[79,20],[20,238],[166,59],[59,75],[75,166],[60,75],[75,240],[240,60],[147,177],[177,215],[215,147],[20,79],[79,166],[166,20],[187,147],[147,213],[213,187],[112,233],[233,244],[244,112],[233,128],[128,245],[245,233],[128,114],[114,188],[188,128],[114,217],[217,174],[174,114],[131,115],[115,220],[220,131],[217,198],[198,236],[236,217],[198,131],[131,134],[134,198],[177,132],[132,58],[58,177],[143,35],[35,124],[124,143],[110,163],[163,7],[7,110],[228,110],[110,25],[25,228],[356,389],[389,368],[368,356],[11,302],[302,267],[267,11],[452,350],[350,349],[349,452],[302,303],[303,269],[269,302],[357,343],[343,277],[277,357],[452,453],[453,357],[357,452],[333,332],[332,297],[297,333],[175,152],[152,377],[377,175],[347,348],[348,330],[330,347],[303,304],[304,270],[270,303],[9,336],[336,337],[337,9],[278,279],[279,360],[360,278],[418,262],[262,431],[431,418],[304,408],[408,409],[409,304],[310,415],[415,407],[407,310],[270,409],[409,410],[410,270],[450,348],[348,347],[347,450],[422,430],[430,434],[434,422],[313,314],[314,17],[17,313],[306,307],[307,375],[375,306],[387,388],[388,260],[260,387],[286,414],[414,398],[398,286],[335,406],[406,418],[418,335],[364,367],[367,416],[416,364],[423,358],[358,327],[327,423],[251,284],[284,298],[298,251],[281,5],[5,4],[4,281],[373,374],[374,253],[253,373],[307,320],[320,321],[321,307],[425,427],[427,411],[411,425],[421,313],[313,18],[18,421],[321,405],[405,406],[406,321],[320,404],[404,405],[405,320],[315,16],[16,17],[17,315],[426,425],[425,266],[266,426],[377,400],[400,369],[369,377],[322,391],[391,269],[269,322],[417,465],[465,464],[464,417],[386,257],[257,258],[258,386],[466,260],[260,388],[388,466],[456,399],[399,419],[419,456],[284,332],[332,333],[333,284],[417,285],[285,8],[8,417],[346,340],[340,261],[261,346],[413,441],[441,285],[285,413],[327,460],[460,328],[328,327],[355,371],[371,329],[329,355],[392,439],[439,438],[438,392],[382,341],[341,256],[256,382],[429,420],[420,360],[360,429],[364,394],[394,379],[379,364],[277,343],[343,437],[437,277],[443,444],[444,283],[283,443],[275,440],[440,363],[363,275],[431,262],[262,369],[369,431],[297,338],[338,337],[337,297],[273,375],[375,321],[321,273],[450,451],[451,349],[349,450],[446,342],[342,467],[467,446],[293,334],[334,282],[282,293],[458,461],[461,462],[462,458],[276,353],[353,383],[383,276],[308,324],[324,325],[325,308],[276,300],[300,293],[293,276],[372,345],[345,447],[447,372],[352,345],[345,340],[340,352],[274,1],[1,19],[19,274],[456,248],[248,281],[281,456],[436,427],[427,425],[425,436],[381,256],[256,252],[252,381],[269,391],[391,393],[393,269],[200,199],[199,428],[428,200],[266,330],[330,329],[329,266],[287,273],[273,422],[422,287],[250,462],[462,328],[328,250],[258,286],[286,384],[384,258],[265,353],[353,342],[342,265],[387,259],[259,257],[257,387],[424,431],[431,430],[430,424],[342,353],[353,276],[276,342],[273,335],[335,424],[424,273],[292,325],[325,307],[307,292],[366,447],[447,345],[345,366],[271,303],[303,302],[302,271],[423,266],[266,371],[371,423],[294,455],[455,460],[460,294],[279,278],[278,294],[294,279],[271,272],[272,304],[304,271],[432,434],[434,427],[427,432],[272,407],[407,408],[408,272],[394,430],[430,431],[431,394],[395,369],[369,400],[400,395],[334,333],[333,299],[299,334],[351,417],[417,168],[168,351],[352,280],[280,411],[411,352],[325,319],[319,320],[320,325],[295,296],[296,336],[336,295],[319,403],[403,404],[404,319],[330,348],[348,349],[349,330],[293,298],[298,333],[333,293],[323,454],[454,447],[447,323],[15,16],[16,315],[315,15],[358,429],[429,279],[279,358],[14,15],[15,316],[316,14],[285,336],[336,9],[9,285],[329,349],[349,350],[350,329],[374,380],[380,252],[252,374],[318,402],[402,403],[403,318],[6,197],[197,419],[419,6],[318,319],[319,325],[325,318],[367,364],[364,365],[365,367],[435,367],[367,397],[397,435],[344,438],[438,439],[439,344],[272,271],[271,311],[311,272],[195,5],[5,281],[281,195],[273,287],[287,291],[291,273],[396,428],[428,199],[199,396],[311,271],[271,268],[268,311],[283,444],[444,445],[445,283],[373,254],[254,339],[339,373],[282,334],[334,296],[296,282],[449,347],[347,346],[346,449],[264,447],[447,454],[454,264],[336,296],[296,299],[299,336],[338,10],[10,151],[151,338],[278,439],[439,455],[455,278],[292,407],[407,415],[415,292],[358,371],[371,355],[355,358],[340,345],[345,372],[372,340],[346,347],[347,280],[280,346],[442,443],[443,282],[282,442],[19,94],[94,370],[370,19],[441,442],[442,295],[295,441],[248,419],[419,197],[197,248],[263,255],[255,359],[359,263],[440,275],[275,274],[274,440],[300,383],[383,368],[368,300],[351,412],[412,465],[465,351],[263,467],[467,466],[466,263],[301,368],[368,389],[389,301],[395,378],[378,379],[379,395],[412,351],[351,419],[419,412],[436,426],[426,322],[322,436],[2,164],[164,393],[393,2],[370,462],[462,461],[461,370],[164,0],[0,267],[267,164],[302,11],[11,12],[12,302],[268,12],[12,13],[13,268],[293,300],[300,301],[301,293],[446,261],[261,340],[340,446],[330,266],[266,425],[425,330],[426,423],[423,391],[391,426],[429,355],[355,437],[437,429],[391,327],[327,326],[326,391],[440,457],[457,438],[438,440],[341,382],[382,362],[362,341],[459,457],[457,461],[461,459],[434,430],[430,394],[394,434],[414,463],[463,362],[362,414],[396,369],[369,262],[262,396],[354,461],[461,457],[457,354],[316,403],[403,402],[402,316],[315,404],[404,403],[403,315],[314,405],[405,404],[404,314],[313,406],[406,405],[405,313],[421,418],[418,406],[406,421],[366,401],[401,361],[361,366],[306,408],[408,407],[407,306],[291,409],[409,408],[408,291],[287,410],[410,409],[409,287],[432,436],[436,410],[410,432],[434,416],[416,411],[411,434],[264,368],[368,383],[383,264],[309,438],[438,457],[457,309],[352,376],[376,401],[401,352],[274,275],[275,4],[4,274],[421,428],[428,262],[262,421],[294,327],[327,358],[358,294],[433,416],[416,367],[367,433],[289,455],[455,439],[439,289],[462,370],[370,326],[326,462],[2,326],[326,370],[370,2],[305,460],[460,455],[455,305],[254,449],[449,448],[448,254],[255,261],[261,446],[446,255],[253,450],[450,449],[449,253],[252,451],[451,450],[450,252],[256,452],[452,451],[451,256],[341,453],[453,452],[452,341],[413,464],[464,463],[463,413],[441,413],[413,414],[414,441],[258,442],[442,441],[441,258],[257,443],[443,442],[442,257],[259,444],[444,443],[443,259],[260,445],[445,444],[444,260],[467,342],[342,445],[445,467],[459,458],[458,250],[250,459],[289,392],[392,290],[290,289],[290,328],[328,460],[460,290],[376,433],[433,435],[435,376],[250,290],[290,392],[392,250],[411,416],[416,433],[433,411],[341,463],[463,464],[464,341],[453,464],[464,465],[465,453],[357,465],[465,412],[412,357],[343,412],[412,399],[399,343],[360,363],[363,440],[440,360],[437,399],[399,456],[456,437],[420,456],[456,363],[363,420],[401,435],[435,288],[288,401],[372,383],[383,353],[353,372],[339,255],[255,249],[249,339],[448,261],[261,255],[255,448],[133,243],[243,190],[190,133],[133,155],[155,112],[112,133],[33,246],[246,247],[247,33],[33,130],[130,25],[25,33],[398,384],[384,286],[286,398],[362,398],[398,414],[414,362],[362,463],[463,341],[341,362],[263,359],[359,467],[467,263],[263,249],[249,255],[255,263],[466,467],[467,260],[260,466],[75,60],[60,166],[166,75],[238,239],[239,79],[79,238],[162,127],[127,139],[139,162],[72,11],[11,37],[37,72],[121,232],[232,120],[120,121],[73,72],[72,39],[39,73],[114,128],[128,47],[47,114],[233,232],[232,128],[128,233],[103,104],[104,67],[67,103],[152,175],[175,148],[148,152],[119,118],[118,101],[101,119],[74,73],[73,40],[40,74],[107,9],[9,108],[108,107],[49,48],[48,131],[131,49],[32,194],[194,211],[211,32],[184,74],[74,185],[185,184],[191,80],[80,183],[183,191],[185,40],[40,186],[186,185],[119,230],[230,118],[118,119],[210,202],[202,214],[214,210],[84,83],[83,17],[17,84],[77,76],[76,146],[146,77],[161,160],[160,30],[30,161],[190,56],[56,173],[173,190],[182,106],[106,194],[194,182],[138,135],[135,192],[192,138],[129,203],[203,98],[98,129],[54,21],[21,68],[68,54],[5,51],[51,4],[4,5],[145,144],[144,23],[23,145],[90,77],[77,91],[91,90],[207,205],[205,187],[187,207],[83,201],[201,18],[18,83],[181,91],[91,182],[182,181],[180,90],[90,181],[181,180],[16,85],[85,17],[17,16],[205,206],[206,36],[36,205],[176,148],[148,140],[140,176],[165,92],[92,39],[39,165],[245,193],[193,244],[244,245],[27,159],[159,28],[28,27],[30,247],[247,161],[161,30],[174,236],[236,196],[196,174],[103,54],[54,104],[104,103],[55,193],[193,8],[8,55],[111,117],[117,31],[31,111],[221,189],[189,55],[55,221],[240,98],[98,99],[99,240],[142,126],[126,100],[100,142],[219,166],[166,218],[218,219],[112,155],[155,26],[26,112],[198,209],[209,131],[131,198],[169,135],[135,150],[150,169],[114,47],[47,217],[217,114],[224,223],[223,53],[53,224],[220,45],[45,134],[134,220],[32,211],[211,140],[140,32],[109,67],[67,108],[108,109],[146,43],[43,91],[91,146],[231,230],[230,120],[120,231],[113,226],[226,247],[247,113],[105,63],[63,52],[52,105],[241,238],[238,242],[242,241],[124,46],[46,156],[156,124],[95,78],[78,96],[96,95],[70,46],[46,63],[63,70],[116,143],[143,227],[227,116],[116,123],[123,111],[111,116],[1,44],[44,19],[19,1],[3,236],[236,51],[51,3],[207,216],[216,205],[205,207],[26,154],[154,22],[22,26],[165,39],[39,167],[167,165],[199,200],[200,208],[208,199],[101,36],[36,100],[100,101],[43,57],[57,202],[202,43],[242,20],[20,99],[99,242],[56,28],[28,157],[157,56],[124,35],[35,113],[113,124],[29,160],[160,27],[27,29],[211,204],[204,210],[210,211],[124,113],[113,46],[46,124],[106,43],[43,204],[204,106],[96,62],[62,77],[77,96],[227,137],[137,116],[116,227],[73,41],[41,72],[72,73],[36,203],[203,142],[142,36],[235,64],[64,240],[240,235],[48,49],[49,64],[64,48],[42,41],[41,74],[74,42],[214,212],[212,207],[207,214],[183,42],[42,184],[184,183],[210,169],[169,211],[211,210],[140,170],[170,176],[176,140],[104,105],[105,69],[69,104],[193,122],[122,168],[168,193],[50,123],[123,187],[187,50],[89,96],[96,90],[90,89],[66,65],[65,107],[107,66],[179,89],[89,180],[180,179],[119,101],[101,120],[120,119],[68,63],[63,104],[104,68],[234,93],[93,227],[227,234],[16,15],[15,85],[85,16],[209,129],[129,49],[49,209],[15,14],[14,86],[86,15],[107,55],[55,9],[9,107],[120,100],[100,121],[121,120],[153,145],[145,22],[22,153],[178,88],[88,179],[179,178],[197,6],[6,196],[196,197],[89,88],[88,96],[96,89],[135,138],[138,136],[136,135],[138,215],[215,172],[172,138],[218,115],[115,219],[219,218],[41,42],[42,81],[81,41],[5,195],[195,51],[51,5],[57,43],[43,61],[61,57],[208,171],[171,199],[199,208],[41,81],[81,38],[38,41],[224,53],[53,225],[225,224],[24,144],[144,110],[110,24],[105,52],[52,66],[66,105],[118,229],[229,117],[117,118],[227,34],[34,234],[234,227],[66,107],[107,69],[69,66],[10,109],[109,151],[151,10],[219,48],[48,235],[235,219],[183,62],[62,191],[191,183],[142,129],[129,126],[126,142],[116,111],[111,143],[143,116],[118,117],[117,50],[50,118],[223,222],[222,52],[52,223],[94,19],[19,141],[141,94],[222,221],[221,65],[65,222],[196,3],[3,197],[197,196],[45,220],[220,44],[44,45],[156,70],[70,139],[139,156],[188,122],[122,245],[245,188],[139,71],[71,162],[162,139],[149,170],[170,150],[150,149],[122,188],[188,196],[196,122],[206,216],[216,92],[92,206],[164,2],[2,167],[167,164],[242,141],[141,241],[241,242],[0,164],[164,37],[37,0],[11,72],[72,12],[12,11],[12,38],[38,13],[13,12],[70,63],[63,71],[71,70],[31,226],[226,111],[111,31],[36,101],[101,205],[205,36],[203,206],[206,165],[165,203],[126,209],[209,217],[217,126],[98,165],[165,97],[97,98],[237,220],[220,218],[218,237],[237,239],[239,241],[241,237],[210,214],[214,169],[169,210],[140,171],[171,32],[32,140],[241,125],[125,237],[237,241],[179,86],[86,178],[178,179],[180,85],[85,179],[179,180],[181,84],[84,180],[180,181],[182,83],[83,181],[181,182],[194,201],[201,182],[182,194],[177,137],[137,132],[132,177],[184,76],[76,183],[183,184],[185,61],[61,184],[184,185],[186,57],[57,185],[185,186],[216,212],[212,186],[186,216],[192,214],[214,187],[187,192],[139,34],[34,156],[156,139],[218,79],[79,237],[237,218],[147,123],[123,177],[177,147],[45,44],[44,4],[4,45],[208,201],[201,32],[32,208],[98,64],[64,129],[129,98],[192,213],[213,138],[138,192],[235,59],[59,219],[219,235],[141,242],[242,97],[97,141],[97,2],[2,141],[141,97],[240,75],[75,235],[235,240],[229,24],[24,228],[228,229],[31,25],[25,226],[226,31],[230,23],[23,229],[229,230],[231,22],[22,230],[230,231],[232,26],[26,231],[231,232],[233,112],[112,232],[232,233],[244,189],[189,243],[243,244],[189,221],[221,190],[190,189],[222,28],[28,221],[221,222],[223,27],[27,222],[222,223],[224,29],[29,223],[223,224],[225,30],[30,224],[224,225],[113,247],[247,225],[225,113],[99,60],[60,240],[240,99],[213,147],[147,215],[215,213],[60,20],[20,166],[166,60],[192,187],[187,213],[213,192],[243,112],[112,244],[244,243],[244,233],[233,245],[245,244],[245,128],[128,188],[188,245],[188,114],[114,174],[174,188],[134,131],[131,220],[220,134],[174,217],[217,236],[236,174],[236,198],[198,134],[134,236],[215,177],[177,58],[58,215],[156,143],[143,124],[124,156],[25,110],[110,7],[7,25],[31,228],[228,25],[25,31],[264,356],[356,368],[368,264],[0,11],[11,267],[267,0],[451,452],[452,349],[349,451],[267,302],[302,269],[269,267],[350,357],[357,277],[277,350],[350,452],[452,357],[357,350],[299,333],[333,297],[297,299],[396,175],[175,377],[377,396],[280,347],[347,330],[330,280],[269,303],[303,270],[270,269],[151,9],[9,337],[337,151],[344,278],[278,360],[360,344],[424,418],[418,431],[431,424],[270,304],[304,409],[409,270],[272,310],[310,407],[407,272],[322,270],[270,410],[410,322],[449,450],[450,347],[347,449],[432,422],[422,434],[434,432],[18,313],[313,17],[17,18],[291,306],[306,375],[375,291],[259,387],[387,260],[260,259],[424,335],[335,418],[418,424],[434,364],[364,416],[416,434],[391,423],[423,327],[327,391],[301,251],[251,298],[298,301],[275,281],[281,4],[4,275],[254,373],[373,253],[253,254],[375,307],[307,321],[321,375],[280,425],[425,411],[411,280],[200,421],[421,18],[18,200],[335,321],[321,406],[406,335],[321,320],[320,405],[405,321],[314,315],[315,17],[17,314],[423,426],[426,266],[266,423],[396,377],[377,369],[369,396],[270,322],[322,269],[269,270],[413,417],[417,464],[464,413],[385,386],[386,258],[258,385],[248,456],[456,419],[419,248],[298,284],[284,333],[333,298],[168,417],[417,8],[8,168],[448,346],[346,261],[261,448],[417,413],[413,285],[285,417],[326,327],[327,328],[328,326],[277,355],[355,329],[329,277],[309,392],[392,438],[438,309],[381,382],[382,256],[256,381],[279,429],[429,360],[360,279],[365,364],[364,379],[379,365],[355,277],[277,437],[437,355],[282,443],[443,283],[283,282],[281,275],[275,363],[363,281],[395,431],[431,369],[369,395],[299,297],[297,337],[337,299],[335,273],[273,321],[321,335],[348,450],[450,349],[349,348],[359,446],[446,467],[467,359],[283,293],[293,282],[282,283],[250,458],[458,462],[462,250],[300,276],[276,383],[383,300],[292,308],[308,325],[325,292],[283,276],[276,293],[293,283],[264,372],[372,447],[447,264],[346,352],[352,340],[340,346],[354,274],[274,19],[19,354],[363,456],[456,281],[281,363],[426,436],[436,425],[425,426],[380,381],[381,252],[252,380],[267,269],[269,393],[393,267],[421,200],[200,428],[428,421],[371,266],[266,329],[329,371],[432,287],[287,422],[422,432],[290,250],[250,328],[328,290],[385,258],[258,384],[384,385],[446,265],[265,342],[342,446],[386,387],[387,257],[257,386],[422,424],[424,430],[430,422],[445,342],[342,276],[276,445],[422,273],[273,424],[424,422],[306,292],[292,307],[307,306],[352,366],[366,345],[345,352],[268,271],[271,302],[302,268],[358,423],[423,371],[371,358],[327,294],[294,460],[460,327],[331,279],[279,294],[294,331],[303,271],[271,304],[304,303],[436,432],[432,427],[427,436],[304,272],[272,408],[408,304],[395,394],[394,431],[431,395],[378,395],[395,400],[400,378],[296,334],[334,299],[299,296],[6,351],[351,168],[168,6],[376,352],[352,411],[411,376],[307,325],[325,320],[320,307],[285,295],[295,336],[336,285],[320,319],[319,404],[404,320],[329,330],[330,349],[349,329],[334,293],[293,333],[333,334],[366,323],[323,447],[447,366],[316,15],[15,315],[315,316],[331,358],[358,279],[279,331],[317,14],[14,316],[316,317],[8,285],[285,9],[9,8],[277,329],[329,350],[350,277],[253,374],[374,252],[252,253],[319,318],[318,403],[403,319],[351,6],[6,419],[419,351],[324,318],[318,325],[325,324],[397,367],[367,365],[365,397],[288,435],[435,397],[397,288],[278,344],[344,439],[439,278],[310,272],[272,311],[311,310],[248,195],[195,281],[281,248],[375,273],[273,291],[291,375],[175,396],[396,199],[199,175],[312,311],[311,268],[268,312],[276,283],[283,445],[445,276],[390,373],[373,339],[339,390],[295,282],[282,296],[296,295],[448,449],[449,346],[346,448],[356,264],[264,454],[454,356],[337,336],[336,299],[299,337],[337,338],[338,151],[151,337],[294,278],[278,455],[455,294],[308,292],[292,415],[415,308],[429,358],[358,355],[355,429],[265,340],[340,372],[372,265],[352,346],[346,280],[280,352],[295,442],[442,282],[282,295],[354,19],[19,370],[370,354],[285,441],[441,295],[295,285],[195,248],[248,197],[197,195],[457,440],[440,274],[274,457],[301,300],[300,368],[368,301],[417,351],[351,465],[465,417],[251,301],[301,389],[389,251],[394,395],[395,379],[379,394],[399,412],[412,419],[419,399],[410,436],[436,322],[322,410],[326,2],[2,393],[393,326],[354,370],[370,461],[461,354],[393,164],[164,267],[267,393],[268,302],[302,12],[12,268],[312,268],[268,13],[13,312],[298,293],[293,301],[301,298],[265,446],[446,340],[340,265],[280,330],[330,425],[425,280],[322,426],[426,391],[391,322],[420,429],[429,437],[437,420],[393,391],[391,326],[326,393],[344,440],[440,438],[438,344],[458,459],[459,461],[461,458],[364,434],[434,394],[394,364],[428,396],[396,262],[262,428],[274,354],[354,457],[457,274],[317,316],[316,402],[402,317],[316,315],[315,403],[403,316],[315,314],[314,404],[404,315],[314,313],[313,405],[405,314],[313,421],[421,406],[406,313],[323,366],[366,361],[361,323],[292,306],[306,407],[407,292],[306,291],[291,408],[408,306],[291,287],[287,409],[409,291],[287,432],[432,410],[410,287],[427,434],[434,411],[411,427],[372,264],[264,383],[383,372],[459,309],[309,457],[457,459],[366,352],[352,401],[401,366],[1,274],[274,4],[4,1],[418,421],[421,262],[262,418],[331,294],[294,358],[358,331],[435,433],[433,367],[367,435],[392,289],[289,439],[439,392],[328,462],[462,326],[326,328],[94,2],[2,370],[370,94],[289,305],[305,455],[455,289],[339,254],[254,448],[448,339],[359,255],[255,446],[446,359],[254,253],[253,449],[449,254],[253,252],[252,450],[450,253],[252,256],[256,451],[451,252],[256,341],[341,452],[452,256],[414,413],[413,463],[463,414],[286,441],[441,414],[414,286],[286,258],[258,441],[441,286],[258,257],[257,442],[442,258],[257,259],[259,443],[443,257],[259,260],[260,444],[444,259],[260,467],[467,445],[445,260],[309,459],[459,250],[250,309],[305,289],[289,290],[290,305],[305,290],[290,460],[460,305],[401,376],[376,435],[435,401],[309,250],[250,392],[392,309],[376,411],[411,433],[433,376],[453,341],[341,464],[464,453],[357,453],[453,465],[465,357],[343,357],[357,412],[412,343],[437,343],[343,399],[399,437],[344,360],[360,440],[440,344],[420,437],[437,456],[456,420],[360,420],[420,363],[363,360],[361,401],[401,288],[288,361],[265,372],[372,353],[353,265],[390,339],[339,249],[249,390],[339,448],[448,255],[255,339]);function kc(t){t.j={faceLandmarks:[],faceBlendshapes:[],facialTransformationMatrixes:[]}}var Sc=class extends dc{constructor(t,e){super(new ac(t,e),"image_in","norm_rect",!1),this.j={faceLandmarks:[],faceBlendshapes:[],facialTransformationMatrixes:[]},this.outputFacialTransformationMatrixes=this.outputFaceBlendshapes=!1,wn(t=this.h=new Js,0,1,e=new Xs),this.A=new $s,wn(this.h,0,3,this.A),this.u=new zs,wn(this.h,0,2,this.u),xn(this.u,4,1),Ln(this.u,2,.5),Ln(this.A,2,.5),Ln(this.h,4,.5)}get baseOptions(){return yn(this.h,Xs,1)}set baseOptions(t){wn(this.h,0,1,t)}o(t){return"numFaces"in t&&xn(this.u,4,t.numFaces??1),"minFaceDetectionConfidence"in t&&Ln(this.u,2,t.minFaceDetectionConfidence??.5),"minTrackingConfidence"in t&&Ln(this.h,4,t.minTrackingConfidence??.5),"minFacePresenceConfidence"in t&&Ln(this.A,2,t.minFacePresenceConfidence??.5),"outputFaceBlendshapes"in t&&(this.outputFaceBlendshapes=!!t.outputFaceBlendshapes),"outputFacialTransformationMatrixes"in t&&(this.outputFacialTransformationMatrixes=!!t.outputFacialTransformationMatrixes),this.l(t)}F(t,e){return kc(this),uc(this,t,e),this.j}G(t,e,n){return kc(this),lc(this,t,n,e),this.j}m(){var t=new ls;hs(t,"image_in"),hs(t,"norm_rect"),us(t,"face_landmarks");const e=new Qi;xr(e,Qs,this.h);const n=new is;Rn(n,2,"mediapipe.tasks.vision.face_landmarker.FaceLandmarkerGraph"),ns(n,"IMAGE:image_in"),ns(n,"NORM_RECT:norm_rect"),rs(n,"NORM_LANDMARKS:face_landmarks"),n.o(e),cs(t,n),this.g.attachProtoVectorListener("face_landmarks",((t,e)=>{for(const e of t)t=ks(e),this.j.faceLandmarks.push(Ho(t));ua(this,e)})),this.g.attachEmptyPacketListener("face_landmarks",(t=>{ua(this,t)})),this.outputFaceBlendshapes&&(us(t,"blendshapes"),rs(n,"BLENDSHAPES:blendshapes"),this.g.attachProtoVectorListener("blendshapes",((t,e)=>{if(this.outputFaceBlendshapes)for(const e of t)t=ys(e),this.j.faceBlendshapes.push(jo(t.g()??[]));ua(this,e)})),this.g.attachEmptyPacketListener("blendshapes",(t=>{ua(this,t)}))),this.outputFacialTransformationMatrixes&&(us(t,"face_geometry"),rs(n,"FACE_GEOMETRY:face_geometry"),this.g.attachProtoVectorListener("face_geometry",((t,e)=>{if(this.outputFacialTransformationMatrixes)for(const e of t)(t=yn(t=qs(e),Ss,2))&&this.j.facialTransformationMatrixes.push({rows:kn(t,1)??0??0,columns:kn(t,2)??0??0,data:en(t,3,$t,tn()).slice()??[]});ua(this,e)})),this.g.attachEmptyPacketListener("face_geometry",(t=>{ua(this,t)}))),t=t.g(),this.setGraph(new Uint8Array(t),!0)}};Sc.prototype.detectForVideo=Sc.prototype.G,Sc.prototype.detect=Sc.prototype.F,Sc.prototype.setOptions=Sc.prototype.o,Sc.createFromModelPath=function(t,e){return cc(Sc,t,{baseOptions:{modelAssetPath:e}})},Sc.createFromModelBuffer=function(t,e){return cc(Sc,t,{baseOptions:{modelAssetBuffer:e}})},Sc.createFromOptions=function(t,e){return cc(Sc,t,e)},Sc.FACE_LANDMARKS_LIPS=gc,Sc.FACE_LANDMARKS_LEFT_EYE=mc,Sc.FACE_LANDMARKS_LEFT_EYEBROW=yc,Sc.FACE_LANDMARKS_LEFT_IRIS=_c,Sc.FACE_LANDMARKS_RIGHT_EYE=vc,Sc.FACE_LANDMARKS_RIGHT_EYEBROW=Ec,Sc.FACE_LANDMARKS_RIGHT_IRIS=wc,Sc.FACE_LANDMARKS_FACE_OVAL=Tc,Sc.FACE_LANDMARKS_CONTOURS=Ac,Sc.FACE_LANDMARKS_TESSELATION=bc;var xc=ic([0,1],[1,2],[2,3],[3,4],[0,5],[5,6],[6,7],[7,8],[5,9],[9,10],[10,11],[11,12],[9,13],[13,14],[14,15],[15,16],[13,17],[0,17],[17,18],[18,19],[19,20]);function Lc(t){t.gestures=[],t.landmarks=[],t.worldLandmarks=[],t.handedness=[]}function Rc(t){return 0===t.gestures.length?{gestures:[],landmarks:[],worldLandmarks:[],handedness:[],handednesses:[]}:{gestures:t.gestures,landmarks:t.landmarks,worldLandmarks:t.worldLandmarks,handedness:t.handedness,handednesses:t.handedness}}function Ic(t,e=!0){const n=[];for(const i of t){var r=ys(i);t=[];for(const n of r.g())r=e&&null!=kn(n,1)?kn(n,1)??0:-1,t.push({score:Sn(n,2)??0,index:r,categoryName:le($e(n,3))??""??"",displayName:le($e(n,4))??""??""});n.push(t)}return n}var Fc=class extends dc{constructor(t,e){super(new ac(t,e),"image_in","norm_rect",!1),this.gestures=[],this.landmarks=[],this.worldLandmarks=[],this.handedness=[],wn(t=this.j=new oo,0,1,e=new Xs),this.u=new so,wn(this.j,0,2,this.u),this.D=new io,wn(this.u,0,3,this.D),this.A=new ro,wn(this.u,0,2,this.A),this.h=new no,wn(this.j,0,3,this.h),Ln(this.A,2,.5),Ln(this.u,4,.5),Ln(this.D,2,.5)}get baseOptions(){return yn(this.j,Xs,1)}set baseOptions(t){wn(this.j,0,1,t)}o(t){if(xn(this.A,3,t.numHands??1),"minHandDetectionConfidence"in t&&Ln(this.A,2,t.minHandDetectionConfidence??.5),"minTrackingConfidence"in t&&Ln(this.u,4,t.minTrackingConfidence??.5),"minHandPresenceConfidence"in t&&Ln(this.D,2,t.minHandPresenceConfidence??.5),t.cannedGesturesClassifierOptions){var e=new to,n=e,r=Bo(t.cannedGesturesClassifierOptions,yn(this.h,to,3)?.l());wn(n,0,2,r),wn(this.h,0,3,e)}else void 0===t.cannedGesturesClassifierOptions&&yn(this.h,to,3)?.g();return t.customGesturesClassifierOptions?(wn(n=e=new to,0,2,r=Bo(t.customGesturesClassifierOptions,yn(this.h,to,4)?.l())),wn(this.h,0,4,e)):void 0===t.customGesturesClassifierOptions&&yn(this.h,to,4)?.g(),this.l(t)}Ha(t,e){return Lc(this),uc(this,t,e),Rc(this)}Ia(t,e,n){return Lc(this),lc(this,t,n,e),Rc(this)}m(){var t=new ls;hs(t,"image_in"),hs(t,"norm_rect"),us(t,"hand_gestures"),us(t,"hand_landmarks"),us(t,"world_hand_landmarks"),us(t,"handedness");const e=new Qi;xr(e,lo,this.j);const n=new is;Rn(n,2,"mediapipe.tasks.vision.gesture_recognizer.GestureRecognizerGraph"),ns(n,"IMAGE:image_in"),ns(n,"NORM_RECT:norm_rect"),rs(n,"HAND_GESTURES:hand_gestures"),rs(n,"LANDMARKS:hand_landmarks"),rs(n,"WORLD_LANDMARKS:world_hand_landmarks"),rs(n,"HANDEDNESS:handedness"),n.o(e),cs(t,n),this.g.attachProtoVectorListener("hand_landmarks",((t,e)=>{for(const e of t){t=ks(e);const n=[];for(const e of vn(t,bs,1))n.push({x:Sn(e,1)??0,y:Sn(e,2)??0,z:Sn(e,3)??0,visibility:Sn(e,4)??0});this.landmarks.push(n)}ua(this,e)})),this.g.attachEmptyPacketListener("hand_landmarks",(t=>{ua(this,t)})),this.g.attachProtoVectorListener("world_hand_landmarks",((t,e)=>{for(const e of t){t=As(e);const n=[];for(const e of vn(t,Ts,1))n.push({x:Sn(e,1)??0,y:Sn(e,2)??0,z:Sn(e,3)??0,visibility:Sn(e,4)??0});this.worldLandmarks.push(n)}ua(this,e)})),this.g.attachEmptyPacketListener("world_hand_landmarks",(t=>{ua(this,t)})),this.g.attachProtoVectorListener("hand_gestures",((t,e)=>{this.gestures.push(...Ic(t,!1)),ua(this,e)})),this.g.attachEmptyPacketListener("hand_gestures",(t=>{ua(this,t)})),this.g.attachProtoVectorListener("handedness",((t,e)=>{this.handedness.push(...Ic(t)),ua(this,e)})),this.g.attachEmptyPacketListener("handedness",(t=>{ua(this,t)})),t=t.g(),this.setGraph(new Uint8Array(t),!0)}};function Mc(t){return{landmarks:t.landmarks,worldLandmarks:t.worldLandmarks,handednesses:t.handedness,handedness:t.handedness}}Fc.prototype.recognizeForVideo=Fc.prototype.Ia,Fc.prototype.recognize=Fc.prototype.Ha,Fc.prototype.setOptions=Fc.prototype.o,Fc.createFromModelPath=function(t,e){return cc(Fc,t,{baseOptions:{modelAssetPath:e}})},Fc.createFromModelBuffer=function(t,e){return cc(Fc,t,{baseOptions:{modelAssetBuffer:e}})},Fc.createFromOptions=function(t,e){return cc(Fc,t,e)},Fc.HAND_CONNECTIONS=xc;var Pc=class extends dc{constructor(t,e){super(new ac(t,e),"image_in","norm_rect",!1),this.landmarks=[],this.worldLandmarks=[],this.handedness=[],wn(t=this.h=new so,0,1,e=new Xs),this.u=new io,wn(this.h,0,3,this.u),this.j=new ro,wn(this.h,0,2,this.j),xn(this.j,3,1),Ln(this.j,2,.5),Ln(this.u,2,.5),Ln(this.h,4,.5)}get baseOptions(){return yn(this.h,Xs,1)}set baseOptions(t){wn(this.h,0,1,t)}o(t){return"numHands"in t&&xn(this.j,3,t.numHands??1),"minHandDetectionConfidence"in t&&Ln(this.j,2,t.minHandDetectionConfidence??.5),"minTrackingConfidence"in t&&Ln(this.h,4,t.minTrackingConfidence??.5),"minHandPresenceConfidence"in t&&Ln(this.u,2,t.minHandPresenceConfidence??.5),this.l(t)}F(t,e){return this.landmarks=[],this.worldLandmarks=[],this.handedness=[],uc(this,t,e),Mc(this)}G(t,e,n){return this.landmarks=[],this.worldLandmarks=[],this.handedness=[],lc(this,t,n,e),Mc(this)}m(){var t=new ls;hs(t,"image_in"),hs(t,"norm_rect"),us(t,"hand_landmarks"),us(t,"world_hand_landmarks"),us(t,"handedness");const e=new Qi;xr(e,fo,this.h);const n=new is;Rn(n,2,"mediapipe.tasks.vision.hand_landmarker.HandLandmarkerGraph"),ns(n,"IMAGE:image_in"),ns(n,"NORM_RECT:norm_rect"),rs(n,"LANDMARKS:hand_landmarks"),rs(n,"WORLD_LANDMARKS:world_hand_landmarks"),rs(n,"HANDEDNESS:handedness"),n.o(e),cs(t,n),this.g.attachProtoVectorListener("hand_landmarks",((t,e)=>{for(const e of t)t=ks(e),this.landmarks.push(Ho(t));ua(this,e)})),this.g.attachEmptyPacketListener("hand_landmarks",(t=>{ua(this,t)})),this.g.attachProtoVectorListener("world_hand_landmarks",((t,e)=>{for(const e of t)t=As(e),this.worldLandmarks.push(Wo(t));ua(this,e)})),this.g.attachEmptyPacketListener("world_hand_landmarks",(t=>{ua(this,t)})),this.g.attachProtoVectorListener("handedness",((t,e)=>{var n=this.handedness,r=n.push;const i=[];for(const e of t){t=ys(e);const n=[];for(const e of t.g())n.push({score:Sn(e,2)??0,index:kn(e,1)??0??-1,categoryName:le($e(e,3))??""??"",displayName:le($e(e,4))??""??""});i.push(n)}r.call(n,...i),ua(this,e)})),this.g.attachEmptyPacketListener("handedness",(t=>{ua(this,t)})),t=t.g(),this.setGraph(new Uint8Array(t),!0)}};Pc.prototype.detectForVideo=Pc.prototype.G,Pc.prototype.detect=Pc.prototype.F,Pc.prototype.setOptions=Pc.prototype.o,Pc.createFromModelPath=function(t,e){return cc(Pc,t,{baseOptions:{modelAssetPath:e}})},Pc.createFromModelBuffer=function(t,e){return cc(Pc,t,{baseOptions:{modelAssetBuffer:e}})},Pc.createFromOptions=function(t,e){return cc(Pc,t,e)},Pc.HAND_CONNECTIONS=xc;var Cc=ic([0,1],[1,2],[2,3],[3,7],[0,4],[4,5],[5,6],[6,8],[9,10],[11,12],[11,13],[13,15],[15,17],[15,19],[15,21],[17,19],[12,14],[14,16],[16,18],[16,20],[16,22],[18,20],[11,23],[12,24],[23,24],[23,25],[24,26],[25,27],[26,28],[27,29],[28,30],[29,31],[30,32],[27,31],[28,32]);function Oc(t){t.h={faceLandmarks:[],faceBlendshapes:[],poseLandmarks:[],poseWorldLandmarks:[],poseSegmentationMasks:[],leftHandLandmarks:[],leftHandWorldLandmarks:[],rightHandLandmarks:[],rightHandWorldLandmarks:[]}}function Nc(t){try{if(!t.D)return t.h;t.D(t.h)}finally{da(t)}}function Uc(t,e){t=ks(t),e.push(Ho(t))}var Dc=class extends dc{constructor(t,e){super(new ac(t,e),"input_frames_image",null,!1),this.h={faceLandmarks:[],faceBlendshapes:[],poseLandmarks:[],poseWorldLandmarks:[],poseSegmentationMasks:[],leftHandLandmarks:[],leftHandWorldLandmarks:[],rightHandLandmarks:[],rightHandWorldLandmarks:[]},this.outputPoseSegmentationMasks=this.outputFaceBlendshapes=!1,wn(t=this.j=new yo,0,1,e=new Xs),this.I=new io,wn(this.j,0,2,this.I),this.W=new po,wn(this.j,0,3,this.W),this.u=new zs,wn(this.j,0,4,this.u),this.O=new $s,wn(this.j,0,5,this.O),this.A=new go,wn(this.j,0,6,this.A),this.M=new mo,wn(this.j,0,7,this.M),Ln(this.u,2,.5),Ln(this.u,3,.3),Ln(this.O,2,.5),Ln(this.A,2,.5),Ln(this.A,3,.3),Ln(this.M,2,.5),Ln(this.I,2,.5)}get baseOptions(){return yn(this.j,Xs,1)}set baseOptions(t){wn(this.j,0,1,t)}o(t){return"minFaceDetectionConfidence"in t&&Ln(this.u,2,t.minFaceDetectionConfidence??.5),"minFaceSuppressionThreshold"in t&&Ln(this.u,3,t.minFaceSuppressionThreshold??.3),"minFacePresenceConfidence"in t&&Ln(this.O,2,t.minFacePresenceConfidence??.5),"outputFaceBlendshapes"in t&&(this.outputFaceBlendshapes=!!t.outputFaceBlendshapes),"minPoseDetectionConfidence"in t&&Ln(this.A,2,t.minPoseDetectionConfidence??.5),"minPoseSuppressionThreshold"in t&&Ln(this.A,3,t.minPoseSuppressionThreshold??.3),"minPosePresenceConfidence"in t&&Ln(this.M,2,t.minPosePresenceConfidence??.5),"outputPoseSegmentationMasks"in t&&(this.outputPoseSegmentationMasks=!!t.outputPoseSegmentationMasks),"minHandLandmarksConfidence"in t&&Ln(this.I,2,t.minHandLandmarksConfidence??.5),this.l(t)}F(t,e,n){const r="function"!=typeof e?e:{};return this.D="function"==typeof e?e:n,Oc(this),uc(this,t,r),Nc(this)}G(t,e,n,r){const i="function"!=typeof n?n:{};return this.D="function"==typeof n?n:r,Oc(this),lc(this,t,i,e),Nc(this)}m(){var t=new ls;hs(t,"input_frames_image"),us(t,"pose_landmarks"),us(t,"pose_world_landmarks"),us(t,"face_landmarks"),us(t,"left_hand_landmarks"),us(t,"left_hand_world_landmarks"),us(t,"right_hand_landmarks"),us(t,"right_hand_world_landmarks");const e=new Qi,n=new Bi;Rn(n,1,"type.googleapis.com/mediapipe.tasks.vision.holistic_landmarker.proto.HolisticLandmarkerGraphOptions"),function(t,e){if(null!=e)if(Array.isArray(e))Ze(t,2,Ie(e,0,Me));else{if(!("string"==typeof e||e instanceof F||x(e)))throw Error("invalid value in Any.value field: "+e+" expected a ByteString, a base64 encoded string, a Uint8Array or a jspb array");hn(t,2,ht(e,!1),R())}}(n,this.j.g());const r=new is;Rn(r,2,"mediapipe.tasks.vision.holistic_landmarker.HolisticLandmarkerGraph"),bn(r,8,Bi,n),ns(r,"IMAGE:input_frames_image"),rs(r,"POSE_LANDMARKS:pose_landmarks"),rs(r,"POSE_WORLD_LANDMARKS:pose_world_landmarks"),rs(r,"FACE_LANDMARKS:face_landmarks"),rs(r,"LEFT_HAND_LANDMARKS:left_hand_landmarks"),rs(r,"LEFT_HAND_WORLD_LANDMARKS:left_hand_world_landmarks"),rs(r,"RIGHT_HAND_LANDMARKS:right_hand_landmarks"),rs(r,"RIGHT_HAND_WORLD_LANDMARKS:right_hand_world_landmarks"),r.o(e),cs(t,r),la(this,t),this.g.attachProtoListener("pose_landmarks",((t,e)=>{Uc(t,this.h.poseLandmarks),ua(this,e)})),this.g.attachEmptyPacketListener("pose_landmarks",(t=>{ua(this,t)})),this.g.attachProtoListener("pose_world_landmarks",((t,e)=>{var n=this.h.poseWorldLandmarks;t=As(t),n.push(Wo(t)),ua(this,e)})),this.g.attachEmptyPacketListener("pose_world_landmarks",(t=>{ua(this,t)})),this.outputPoseSegmentationMasks&&(rs(r,"POSE_SEGMENTATION_MASK:pose_segmentation_mask"),fa(this,"pose_segmentation_mask"),this.g.Z("pose_segmentation_mask",((t,e)=>{this.h.poseSegmentationMasks=[fc(this,t,!0,!this.D)],ua(this,e)})),this.g.attachEmptyPacketListener("pose_segmentation_mask",(t=>{this.h.poseSegmentationMasks=[],ua(this,t)}))),this.g.attachProtoListener("face_landmarks",((t,e)=>{Uc(t,this.h.faceLandmarks),ua(this,e)})),this.g.attachEmptyPacketListener("face_landmarks",(t=>{ua(this,t)})),this.outputFaceBlendshapes&&(us(t,"extra_blendshapes"),rs(r,"FACE_BLENDSHAPES:extra_blendshapes"),this.g.attachProtoListener("extra_blendshapes",((t,e)=>{var n=this.h.faceBlendshapes;this.outputFaceBlendshapes&&(t=ys(t),n.push(jo(t.g()??[]))),ua(this,e)})),this.g.attachEmptyPacketListener("extra_blendshapes",(t=>{ua(this,t)}))),this.g.attachProtoListener("left_hand_landmarks",((t,e)=>{Uc(t,this.h.leftHandLandmarks),ua(this,e)})),this.g.attachEmptyPacketListener("left_hand_landmarks",(t=>{ua(this,t)})),this.g.attachProtoListener("left_hand_world_landmarks",((t,e)=>{var n=this.h.leftHandWorldLandmarks;t=As(t),n.push(Wo(t)),ua(this,e)})),this.g.attachEmptyPacketListener("left_hand_world_landmarks",(t=>{ua(this,t)})),this.g.attachProtoListener("right_hand_landmarks",((t,e)=>{Uc(t,this.h.rightHandLandmarks),ua(this,e)})),this.g.attachEmptyPacketListener("right_hand_landmarks",(t=>{ua(this,t)})),this.g.attachProtoListener("right_hand_world_landmarks",((t,e)=>{var n=this.h.rightHandWorldLandmarks;t=As(t),n.push(Wo(t)),ua(this,e)})),this.g.attachEmptyPacketListener("right_hand_world_landmarks",(t=>{ua(this,t)})),t=t.g(),this.setGraph(new Uint8Array(t),!0)}};Dc.prototype.detectForVideo=Dc.prototype.G,Dc.prototype.detect=Dc.prototype.F,Dc.prototype.setOptions=Dc.prototype.o,Dc.createFromModelPath=function(t,e){return cc(Dc,t,{baseOptions:{modelAssetPath:e}})},Dc.createFromModelBuffer=function(t,e){return cc(Dc,t,{baseOptions:{modelAssetBuffer:e}})},Dc.createFromOptions=function(t,e){return cc(Dc,t,e)},Dc.HAND_CONNECTIONS=xc,Dc.POSE_CONNECTIONS=Cc,Dc.FACE_LANDMARKS_LIPS=gc,Dc.FACE_LANDMARKS_LEFT_EYE=mc,Dc.FACE_LANDMARKS_LEFT_EYEBROW=yc,Dc.FACE_LANDMARKS_LEFT_IRIS=_c,Dc.FACE_LANDMARKS_RIGHT_EYE=vc,Dc.FACE_LANDMARKS_RIGHT_EYEBROW=Ec,Dc.FACE_LANDMARKS_RIGHT_IRIS=wc,Dc.FACE_LANDMARKS_FACE_OVAL=Tc,Dc.FACE_LANDMARKS_CONTOURS=Ac,Dc.FACE_LANDMARKS_TESSELATION=bc;var Bc=class extends dc{constructor(t,e){super(new ac(t,e),"input_image","norm_rect",!0),this.j={classifications:[]},wn(t=this.h=new Eo,0,1,e=new Xs)}get baseOptions(){return yn(this.h,Xs,1)}set baseOptions(t){wn(this.h,0,1,t)}o(t){return wn(this.h,0,2,Bo(t,yn(this.h,Ns,2))),this.l(t)}sa(t,e){return this.j={classifications:[]},uc(this,t,e),this.j}ta(t,e,n){return this.j={classifications:[]},lc(this,t,n,e),this.j}m(){var t=new ls;hs(t,"input_image"),hs(t,"norm_rect"),us(t,"classifications");const e=new Qi;xr(e,wo,this.h);const n=new is;Rn(n,2,"mediapipe.tasks.vision.image_classifier.ImageClassifierGraph"),ns(n,"IMAGE:input_image"),ns(n,"NORM_RECT:norm_rect"),rs(n,"CLASSIFICATIONS:classifications"),n.o(e),cs(t,n),this.g.attachProtoListener("classifications",((t,e)=>{this.j=Vo(Is(t)),ua(this,e)})),this.g.attachEmptyPacketListener("classifications",(t=>{ua(this,t)})),t=t.g(),this.setGraph(new Uint8Array(t),!0)}};Bc.prototype.classifyForVideo=Bc.prototype.ta,Bc.prototype.classify=Bc.prototype.sa,Bc.prototype.setOptions=Bc.prototype.o,Bc.createFromModelPath=function(t,e){return cc(Bc,t,{baseOptions:{modelAssetPath:e}})},Bc.createFromModelBuffer=function(t,e){return cc(Bc,t,{baseOptions:{modelAssetBuffer:e}})},Bc.createFromOptions=function(t,e){return cc(Bc,t,e)};var Gc=class extends dc{constructor(t,e){super(new ac(t,e),"image_in","norm_rect",!0),this.h=new To,this.embeddings={embeddings:[]},wn(t=this.h,0,1,e=new Xs)}get baseOptions(){return yn(this.h,Xs,1)}set baseOptions(t){wn(this.h,0,1,t)}o(t){var e=this.h,n=yn(this.h,Ds,2);return n=n?n.clone():new Ds,void 0!==t.l2Normalize?Ze(n,1,Jt(t.l2Normalize)):"l2Normalize"in t&&Ze(n,1),void 0!==t.quantize?Ze(n,2,Jt(t.quantize)):"quantize"in t&&Ze(n,2),wn(e,0,2,n),this.l(t)}za(t,e){return uc(this,t,e),this.embeddings}Aa(t,e,n){return lc(this,t,n,e),this.embeddings}m(){var t=new ls;hs(t,"image_in"),hs(t,"norm_rect"),us(t,"embeddings_out");const e=new Qi;xr(e,Ao,this.h);const n=new is;Rn(n,2,"mediapipe.tasks.vision.image_embedder.ImageEmbedderGraph"),ns(n,"IMAGE:image_in"),ns(n,"NORM_RECT:norm_rect"),rs(n,"EMBEDDINGS:embeddings_out"),n.o(e),cs(t,n),this.g.attachProtoListener("embeddings_out",((t,e)=>{t=Os(t),this.embeddings=function(t){return{embeddings:vn(t,Ps,1).map((t=>{const e={headIndex:kn(t,3)??0??-1,headName:le($e(t,4))??""??""};var n=t.v;return void 0!==mn(n,0|n[Q],Fs,ln(t,1))?(t=en(t=yn(t,Fs,ln(t,1),void 0),1,$t,tn()),e.floatEmbedding=t.slice()):(n=new Uint8Array(0),e.quantizedEmbedding=yn(t,Ms,ln(t,2),void 0)?.na()?.h()??n),e})),timestampMs:Go($e(t,2,void 0,void 0,ce)??Ye)}}(t),ua(this,e)})),this.g.attachEmptyPacketListener("embeddings_out",(t=>{ua(this,t)})),t=t.g(),this.setGraph(new Uint8Array(t),!0)}};Gc.cosineSimilarity=function(t,e){if(t.floatEmbedding&&e.floatEmbedding)t=Ko(t.floatEmbedding,e.floatEmbedding);else{if(!t.quantizedEmbedding||!e.quantizedEmbedding)throw Error("Cannot compute cosine similarity between quantized and float embeddings.");t=Ko(zo(t.quantizedEmbedding),zo(e.quantizedEmbedding))}return t},Gc.prototype.embedForVideo=Gc.prototype.Aa,Gc.prototype.embed=Gc.prototype.za,Gc.prototype.setOptions=Gc.prototype.o,Gc.createFromModelPath=function(t,e){return cc(Gc,t,{baseOptions:{modelAssetPath:e}})},Gc.createFromModelBuffer=function(t,e){return cc(Gc,t,{baseOptions:{modelAssetBuffer:e}})},Gc.createFromOptions=function(t,e){return cc(Gc,t,e)};var jc=class{constructor(t,e,n){this.confidenceMasks=t,this.categoryMask=e,this.qualityScores=n}close(){this.confidenceMasks?.forEach((t=>{t.close()})),this.categoryMask?.close()}};function Vc(t){const e=function(t){return vn(t,is,1)}(t.ca()).filter((t=>(le($e(t,1))??"").includes("mediapipe.tasks.TensorsToSegmentationCalculator")));if(t.u=[],e.length>1)throw Error("The graph has more than one mediapipe.tasks.TensorsToSegmentationCalculator.");1===e.length&&(yn(e[0],Qi,7)?.j()?.g()??new Map).forEach(((e,n)=>{t.u[Number(n)]=le($e(e,1))??""}))}function Xc(t){t.categoryMask=void 0,t.confidenceMasks=void 0,t.qualityScores=void 0}function Hc(t){try{const e=new jc(t.confidenceMasks,t.categoryMask,t.qualityScores);if(!t.j)return e;t.j(e)}finally{da(t)}}jc.prototype.close=jc.prototype.close;var Wc=class extends dc{constructor(t,e){super(new ac(t,e),"image_in","norm_rect",!1),this.u=[],this.outputCategoryMask=!1,this.outputConfidenceMasks=!0,this.h=new Lo,this.A=new bo,wn(this.h,0,3,this.A),wn(t=this.h,0,1,e=new Xs)}get baseOptions(){return yn(this.h,Xs,1)}set baseOptions(t){wn(this.h,0,1,t)}o(t){return void 0!==t.displayNamesLocale?Ze(this.h,2,ue(t.displayNamesLocale)):"displayNamesLocale"in t&&Ze(this.h,2),"outputCategoryMask"in t&&(this.outputCategoryMask=t.outputCategoryMask??!1),"outputConfidenceMasks"in t&&(this.outputConfidenceMasks=t.outputConfidenceMasks??!0),super.l(t)}L(){Vc(this)}segment(t,e,n){const r="function"!=typeof e?e:{};return this.j="function"==typeof e?e:n,Xc(this),uc(this,t,r),Hc(this)}La(t,e,n,r){const i="function"!=typeof n?n:{};return this.j="function"==typeof n?n:r,Xc(this),lc(this,t,i,e),Hc(this)}Da(){return this.u}m(){var t=new ls;hs(t,"image_in"),hs(t,"norm_rect");const e=new Qi;xr(e,Ro,this.h);const n=new is;Rn(n,2,"mediapipe.tasks.vision.image_segmenter.ImageSegmenterGraph"),ns(n,"IMAGE:image_in"),ns(n,"NORM_RECT:norm_rect"),n.o(e),cs(t,n),la(this,t),this.outputConfidenceMasks&&(us(t,"confidence_masks"),rs(n,"CONFIDENCE_MASKS:confidence_masks"),fa(this,"confidence_masks"),this.g.aa("confidence_masks",((t,e)=>{this.confidenceMasks=t.map((t=>fc(this,t,!0,!this.j))),ua(this,e)})),this.g.attachEmptyPacketListener("confidence_masks",(t=>{this.confidenceMasks=[],ua(this,t)}))),this.outputCategoryMask&&(us(t,"category_mask"),rs(n,"CATEGORY_MASK:category_mask"),fa(this,"category_mask"),this.g.Z("category_mask",((t,e)=>{this.categoryMask=fc(this,t,!1,!this.j),ua(this,e)})),this.g.attachEmptyPacketListener("category_mask",(t=>{this.categoryMask=void 0,ua(this,t)}))),us(t,"quality_scores"),rs(n,"QUALITY_SCORES:quality_scores"),this.g.attachFloatVectorListener("quality_scores",((t,e)=>{this.qualityScores=t,ua(this,e)})),this.g.attachEmptyPacketListener("quality_scores",(t=>{this.categoryMask=void 0,ua(this,t)})),t=t.g(),this.setGraph(new Uint8Array(t),!0)}};Wc.prototype.getLabels=Wc.prototype.Da,Wc.prototype.segmentForVideo=Wc.prototype.La,Wc.prototype.segment=Wc.prototype.segment,Wc.prototype.setOptions=Wc.prototype.o,Wc.createFromModelPath=function(t,e){return cc(Wc,t,{baseOptions:{modelAssetPath:e}})},Wc.createFromModelBuffer=function(t,e){return cc(Wc,t,{baseOptions:{modelAssetBuffer:e}})},Wc.createFromOptions=function(t,e){return cc(Wc,t,e)};var zc=class{constructor(t,e,n){this.confidenceMasks=t,this.categoryMask=e,this.qualityScores=n}close(){this.confidenceMasks?.forEach((t=>{t.close()})),this.categoryMask?.close()}};zc.prototype.close=zc.prototype.close;var Kc=class extends dc{constructor(t,e){super(new ac(t,e),"image_in","norm_rect_in",!1),this.outputCategoryMask=!1,this.outputConfidenceMasks=!0,this.h=new Lo,this.u=new bo,wn(this.h,0,3,this.u),wn(t=this.h,0,1,e=new Xs)}get baseOptions(){return yn(this.h,Xs,1)}set baseOptions(t){wn(this.h,0,1,t)}o(t){return"outputCategoryMask"in t&&(this.outputCategoryMask=t.outputCategoryMask??!1),"outputConfidenceMasks"in t&&(this.outputConfidenceMasks=t.outputConfidenceMasks??!0),super.l(t)}segment(t,e,n,r){const i="function"!=typeof n?n:{};if(this.j="function"==typeof n?n:r,this.qualityScores=this.categoryMask=this.confidenceMasks=void 0,n=this.C+1,r=new Po,e.keypoint&&e.scribble)throw Error("Cannot provide both keypoint and scribble.");if(e.keypoint){var s=new Io;hn(s,3,Jt(!0),!1),hn(s,1,qt(e.keypoint.x),0),hn(s,2,qt(e.keypoint.y),0),Tn(r,1,Co,s)}else{if(!e.scribble)throw Error("Must provide either a keypoint or a scribble.");{const t=new Mo;for(s of e.scribble)hn(e=new Io,3,Jt(!0),!1),hn(e,1,qt(s.x),0),hn(e,2,qt(s.y),0),bn(t,1,Io,e);Tn(r,2,Co,t)}}this.g.addProtoToStream(r.g(),"mediapipe.tasks.vision.interactive_segmenter.proto.RegionOfInterest","roi_in",n),uc(this,t,i);t:{try{const t=new zc(this.confidenceMasks,this.categoryMask,this.qualityScores);if(!this.j){var o=t;break t}this.j(t)}finally{da(this)}o=void 0}return o}m(){var t=new ls;hs(t,"image_in"),hs(t,"roi_in"),hs(t,"norm_rect_in");const e=new Qi;xr(e,Ro,this.h);const n=new is;Rn(n,2,"mediapipe.tasks.vision.interactive_segmenter.InteractiveSegmenterGraphV2"),ns(n,"IMAGE:image_in"),ns(n,"ROI:roi_in"),ns(n,"NORM_RECT:norm_rect_in"),n.o(e),cs(t,n),la(this,t),this.outputConfidenceMasks&&(us(t,"confidence_masks"),rs(n,"CONFIDENCE_MASKS:confidence_masks"),fa(this,"confidence_masks"),this.g.aa("confidence_masks",((t,e)=>{this.confidenceMasks=t.map((t=>fc(this,t,!0,!this.j))),ua(this,e)})),this.g.attachEmptyPacketListener("confidence_masks",(t=>{this.confidenceMasks=[],ua(this,t)}))),this.outputCategoryMask&&(us(t,"category_mask"),rs(n,"CATEGORY_MASK:category_mask"),fa(this,"category_mask"),this.g.Z("category_mask",((t,e)=>{this.categoryMask=fc(this,t,!1,!this.j),ua(this,e)})),this.g.attachEmptyPacketListener("category_mask",(t=>{this.categoryMask=void 0,ua(this,t)}))),us(t,"quality_scores"),rs(n,"QUALITY_SCORES:quality_scores"),this.g.attachFloatVectorListener("quality_scores",((t,e)=>{this.qualityScores=t,ua(this,e)})),this.g.attachEmptyPacketListener("quality_scores",(t=>{this.categoryMask=void 0,ua(this,t)})),t=t.g(),this.setGraph(new Uint8Array(t),!0)}};Kc.prototype.segment=Kc.prototype.segment,Kc.prototype.setOptions=Kc.prototype.o,Kc.createFromModelPath=function(t,e){return cc(Kc,t,{baseOptions:{modelAssetPath:e}})},Kc.createFromModelBuffer=function(t,e){return cc(Kc,t,{baseOptions:{modelAssetBuffer:e}})},Kc.createFromOptions=function(t,e){return cc(Kc,t,e)};var Yc=class extends dc{constructor(t,e){super(new ac(t,e),"input_frame_gpu","norm_rect",!1),this.j={detections:[]},wn(t=this.h=new Oo,0,1,e=new Xs)}get baseOptions(){return yn(this.h,Xs,1)}set baseOptions(t){wn(this.h,0,1,t)}o(t){return void 0!==t.displayNamesLocale?Ze(this.h,2,ue(t.displayNamesLocale)):"displayNamesLocale"in t&&Ze(this.h,2),void 0!==t.maxResults?xn(this.h,3,t.maxResults):"maxResults"in t&&Ze(this.h,3),void 0!==t.scoreThreshold?Ln(this.h,4,t.scoreThreshold):"scoreThreshold"in t&&Ze(this.h,4),void 0!==t.categoryAllowlist?In(this.h,5,t.categoryAllowlist):"categoryAllowlist"in t&&Ze(this.h,5),void 0!==t.categoryDenylist?In(this.h,6,t.categoryDenylist):"categoryDenylist"in t&&Ze(this.h,6),this.l(t)}F(t,e){return this.j={detections:[]},uc(this,t,e),this.j}G(t,e,n){return this.j={detections:[]},lc(this,t,n,e),this.j}m(){var t=new ls;hs(t,"input_frame_gpu"),hs(t,"norm_rect"),us(t,"detections");const e=new Qi;xr(e,No,this.h);const n=new is;Rn(n,2,"mediapipe.tasks.vision.ObjectDetectorGraph"),ns(n,"IMAGE:input_frame_gpu"),ns(n,"NORM_RECT:norm_rect"),rs(n,"DETECTIONS:detections"),n.o(e),cs(t,n),this.g.attachProtoVectorListener("detections",((t,e)=>{for(const e of t)t=ws(e),this.j.detections.push(Xo(t));ua(this,e)})),this.g.attachEmptyPacketListener("detections",(t=>{ua(this,t)})),t=t.g(),this.setGraph(new Uint8Array(t),!0)}};Yc.prototype.detectForVideo=Yc.prototype.G,Yc.prototype.detect=Yc.prototype.F,Yc.prototype.setOptions=Yc.prototype.o,Yc.createFromModelPath=async function(t,e){return cc(Yc,t,{baseOptions:{modelAssetPath:e}})},Yc.createFromModelBuffer=function(t,e){return cc(Yc,t,{baseOptions:{modelAssetBuffer:e}})},Yc.createFromOptions=function(t,e){return cc(Yc,t,e)};var qc=class{constructor(t,e,n){this.landmarks=t,this.worldLandmarks=e,this.segmentationMasks=n}close(){this.segmentationMasks?.forEach((t=>{t.close()}))}};function $c(t){t.landmarks=[],t.worldLandmarks=[],t.segmentationMasks=void 0}function Jc(t){try{const e=new qc(t.landmarks,t.worldLandmarks,t.segmentationMasks);if(!t.u)return e;t.u(e)}finally{da(t)}}qc.prototype.close=qc.prototype.close;var Zc=class extends dc{constructor(t,e){super(new ac(t,e),"image_in","norm_rect",!1),this.landmarks=[],this.worldLandmarks=[],this.outputSegmentationMasks=!1,wn(t=this.h=new Uo,0,1,e=new Xs),this.A=new mo,wn(this.h,0,3,this.A),this.j=new go,wn(this.h,0,2,this.j),xn(this.j,4,1),Ln(this.j,2,.5),Ln(this.A,2,.5),Ln(this.h,4,.5)}get baseOptions(){return yn(this.h,Xs,1)}set baseOptions(t){wn(this.h,0,1,t)}o(t){return"numPoses"in t&&xn(this.j,4,t.numPoses??1),"minPoseDetectionConfidence"in t&&Ln(this.j,2,t.minPoseDetectionConfidence??.5),"minTrackingConfidence"in t&&Ln(this.h,4,t.minTrackingConfidence??.5),"minPosePresenceConfidence"in t&&Ln(this.A,2,t.minPosePresenceConfidence??.5),"outputSegmentationMasks"in t&&(this.outputSegmentationMasks=t.outputSegmentationMasks??!1),this.l(t)}F(t,e,n){const r="function"!=typeof e?e:{};return this.u="function"==typeof e?e:n,$c(this),uc(this,t,r),Jc(this)}G(t,e,n,r){const i="function"!=typeof n?n:{};return this.u="function"==typeof n?n:r,$c(this),lc(this,t,i,e),Jc(this)}m(){var t=new ls;hs(t,"image_in"),hs(t,"norm_rect"),us(t,"normalized_landmarks"),us(t,"world_landmarks"),us(t,"segmentation_masks");const e=new Qi;xr(e,Do,this.h);const n=new is;Rn(n,2,"mediapipe.tasks.vision.pose_landmarker.PoseLandmarkerGraph"),ns(n,"IMAGE:image_in"),ns(n,"NORM_RECT:norm_rect"),rs(n,"NORM_LANDMARKS:normalized_landmarks"),rs(n,"WORLD_LANDMARKS:world_landmarks"),n.o(e),cs(t,n),la(this,t),this.g.attachProtoVectorListener("normalized_landmarks",((t,e)=>{this.landmarks=[];for(const e of t)t=ks(e),this.landmarks.push(Ho(t));ua(this,e)})),this.g.attachEmptyPacketListener("normalized_landmarks",(t=>{this.landmarks=[],ua(this,t)})),this.g.attachProtoVectorListener("world_landmarks",((t,e)=>{this.worldLandmarks=[];for(const e of t)t=As(e),this.worldLandmarks.push(Wo(t));ua(this,e)})),this.g.attachEmptyPacketListener("world_landmarks",(t=>{this.worldLandmarks=[],ua(this,t)})),this.outputSegmentationMasks&&(rs(n,"SEGMENTATION_MASK:segmentation_masks"),fa(this,"segmentation_masks"),this.g.aa("segmentation_masks",((t,e)=>{this.segmentationMasks=t.map((t=>fc(this,t,!0,!this.u))),ua(this,e)})),this.g.attachEmptyPacketListener("segmentation_masks",(t=>{this.segmentationMasks=[],ua(this,t)}))),t=t.g(),this.setGraph(new Uint8Array(t),!0)}};Zc.prototype.detectForVideo=Zc.prototype.G,Zc.prototype.detect=Zc.prototype.F,Zc.prototype.setOptions=Zc.prototype.o,Zc.createFromModelPath=function(t,e){return cc(Zc,t,{baseOptions:{modelAssetPath:e}})},Zc.createFromModelBuffer=function(t,e){return cc(Zc,t,{baseOptions:{modelAssetBuffer:e}})},Zc.createFromOptions=function(t,e){return cc(Zc,t,e)},Zc.POSE_CONNECTIONS=Cc;export{Ka as DrawingUtils,pc as FaceDetector,Sc as FaceLandmarker,Zo as FilesetResolver,Fc as GestureRecognizer,Pc as HandLandmarker,Dc as HolisticLandmarker,Bc as ImageClassifier,Gc as ImageEmbedder,Wc as ImageSegmenter,jc as ImageSegmenterResult,Kc as InteractiveSegmenter,zc as InteractiveSegmenterResult,nc as MPImage,Na as MPMask,Yc as ObjectDetector,Zc as PoseLandmarker,pa as TaskRunner,dc as VisionTaskRunner}; //# sourceMappingURL=vision_bundle_mjs.js.map diff --git a/app/node_modules/@mediapipe/tasks-vision/vision_bundle.mjs.map b/app/node_modules/@mediapipe/tasks-vision/vision_bundle.mjs.map index 2a95eecd..9b55681a 100644 --- a/app/node_modules/@mediapipe/tasks-vision/vision_bundle.mjs.map +++ b/app/node_modules/@mediapipe/tasks-vision/vision_bundle.mjs.map @@ -1 +1 @@ -{"version":3,"file":"vision_bundle_mjs.js","sources":["../../../../../../../mediapipe/tasks/web/vision/vision_js.js"],"sourcesContent":["'use strict';/*\n\n Copyright The Closure Library Authors.\n SPDX-License-Identifier: Apache-2.0\n*/\nvar aa=this||(typeof self!==\"undefined\"?self:{});function ba(a,b){a:{var c=[\"CLOSURE_FLAGS\"];for(var d=aa,e=0;e>6|192;else{if(b>=55296&&b<=57343){if(b<=56319&&e=56320&&f<=57343){b=(b-55296)*1024+f-56320+65536;d[c++]=b>>18|240;d[c++]=b>>12&63|128;d[c++]=b>>6&63|128;d[c++]=b&63|128;continue}else e--}b=65533}d[c++]=b>>12|224;d[c++]=b>>6&63|128}d[c++]=b&63|128}}a=c===d.length?\nd:d.subarray(0,c)}return a};function la(a){aa.setTimeout(()=>{throw a;},0)};var ma=ba(610401301,!1),na=ba(653718497,ba(1,!0)),oa=ba(660014094,!1);var pa;const qa=aa.navigator;pa=qa?qa.userAgentData||null:null;function ra(a){return ma?pa?pa.brands.some(({brand:b})=>b&&b.indexOf(a)!=-1):!1:!1}function sa(a){var b;a:{if(b=aa.navigator)if(b=b.userAgent)break a;b=\"\"}return b.indexOf(a)!=-1};function ta(){return ma?!!pa&&pa.brands.length>0:!1}function ua(){return ta()?ra(\"Chromium\"):(sa(\"Chrome\")||sa(\"CriOS\"))&&!(ta()?0:sa(\"Edge\"))||sa(\"Silk\")};function va(a){va[\" \"](a);return a}va[\" \"]=function(){};var wa=ta()?!1:sa(\"Trident\")||sa(\"MSIE\");!sa(\"Android\")||ua();ua();sa(\"Safari\")&&(ua()||(ta()?0:sa(\"Coast\"))||(ta()?0:sa(\"Opera\"))||(ta()?0:sa(\"Edge\"))||(ta()?ra(\"Microsoft Edge\"):sa(\"Edg/\"))||ta()&&ra(\"Opera\"));var xa={},ya=null;function Aa(a){var b=a.length,c=b*3/4;c%3?c=Math.floor(c):\"=.\".indexOf(a[b-1])!=-1&&(c=\"=.\".indexOf(a[b-2])!=-1?c-2:c-1);var d=new Uint8Array(c),e=0;Ba(a,function(f){d[e++]=f});return e!==c?d.subarray(0,e):d}\nfunction Ba(a,b){function c(h){for(;d>4);g!=64&&(b(f<<4&240|g>>2),k!=64&&b(g<<6&192|k))}}\nfunction Ca(){if(!ya){ya={};for(var a=\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\".split(\"\"),b=[\"+/=\",\"+/\",\"-_=\",\"-_.\",\"-_\"],c=0;c<5;c++){var d=a.concat(b[c].split(\"\"));xa[c]=d;for(var e=0;e>2];e=b[(e&3)<<4|f>>4];f=b[(f&15)<<2|g>>6];g=b[g&63];c[l++]=k+e+f+g}k=0;g=d;switch(a.length-h){case 2:k=a[h+1],g=b[(k&15)<<2]||d;case 1:a=a[h],c[l]=b[a>>2]+b[(a&3)<<4|k>>4]+g+d}return c.join(\"\")}b=\"\";c=0;for(d=a.length-10240;c{a[Za]|=b}:(a,b)=>{a.G!==void 0?a.G|=b:Object.defineProperties(a,{G:{value:b,configurable:!0,writable:!0,enumerable:!1}})},eb=Xa?(a,b)=>{a[Za]&=~b}:(a,b)=>{a.G!==void 0&&(a.G&=~b)},n=Xa?a=>a[Za]|0:a=>a.G|0,p=Xa?a=>a[Za]:a=>a.G,q=Xa?(a,b)=>{a[Za]=b}:(a,b)=>{a.G!==void 0?a.G=b:Object.defineProperties(a,{G:{value:b,configurable:!0,writable:!0,enumerable:!1}})};function fb(a){db(a,34);return a}function gb(a,b){q(b,(a|0)&-14591)}function hb(a,b){q(b,(a|34)&-14557)};var ib={},jb={};function kb(a){return!(!a||typeof a!==\"object\"||a.La!==jb)}function lb(a){return a!==null&&typeof a===\"object\"&&!Array.isArray(a)&&a.constructor===Object}function mb(a,b,c){if(a!=null)if(typeof a===\"string\")a=a?new Pa(a,La):Oa();else if(a.constructor!==Pa)if(Ka(a))a=a.length?new Pa(c?a:new Uint8Array(a),La):Oa();else{if(!b)throw Error();a=void 0}return a}function nb(a){return!Array.isArray(a)||a.length?!1:n(a)&1?!0:!1}var ob;const pb=[];q(pb,55);ob=Object.freeze(pb);\nfunction qb(a){if(a&2)throw Error();}class rb{constructor(a,b,c){this.l=0;this.g=a;this.h=b;this.m=c}next(){if(this.ltypeof a===\"number\"),yb=wb(a=>typeof a===\"string\"),zb=wb(a=>typeof a===\"boolean\");var Ab=typeof aa.BigInt===\"function\"&&typeof aa.BigInt(0)===\"bigint\";var Gb=wb(a=>Ab?a>=Bb&&a<=Cb:a[0]===\"-\"?Db(a,Eb):Db(a,Fb));const Eb=Number.MIN_SAFE_INTEGER.toString(),Bb=Ab?BigInt(Number.MIN_SAFE_INTEGER):void 0,Fb=Number.MAX_SAFE_INTEGER.toString(),Cb=Ab?BigInt(Number.MAX_SAFE_INTEGER):void 0;function Db(a,b){if(a.length>b.length)return!1;if(a.lengthe)return!1;if(d>>0;r=b;t=(a-b)/4294967296>>>0}function Kb(a){if(a<0){Jb(-a);const [b,c]=Lb(r,t);r=b>>>0;t=c>>>0}else Jb(a)}function Mb(a){const b=Ib||=new DataView(new ArrayBuffer(8));b.setFloat32(0,+a,!0);t=0;r=b.getUint32(0,!0)}function Nb(a,b){return b*4294967296+(a>>>0)}function Ob(a,b){const c=b&2147483648;c&&(a=~a+1>>>0,b=~b>>>0,a==0&&(b=b+1>>>0));a=Nb(a,b);return c?-a:a}\nfunction Pb(a,b){b>>>=0;a>>>=0;if(b<=2097151)var c=\"\"+(4294967296*b+a);else Va()?c=\"\"+(BigInt(b)<>>24|b<<8)&16777215,b=b>>16&65535,a=(a&16777215)+c*6777216+b*6710656,c+=b*8147497,b*=2,a>=1E7&&(c+=a/1E7>>>0,a%=1E7),c>=1E7&&(b+=c/1E7>>>0,c%=1E7),c=b+Qb(c)+Qb(a));return c}function Qb(a){a=String(a);return\"0000000\".slice(a.length)+a}\nfunction Rb(a){if(a.length<16)Kb(Number(a));else if(Va())a=BigInt(a),r=Number(a&BigInt(4294967295))>>>0,t=Number(a>>BigInt(32)&BigInt(4294967295));else{const b=+(a[0]===\"-\");t=r=0;const c=a.length;for(let d=b,e=(c-b)%6+b;e<=c;d=e,e+=6){const f=Number(a.slice(d,e));t*=1E6;r=r*1E6+f;r>=4294967296&&(t+=Math.trunc(r/4294967296),t>>>=0,r>>>=0)}if(b){const [d,e]=Lb(r,t);r=d;t=e}}}function Lb(a,b){b=~b;a?a=~a+1:b+=1;return[a,b]};function Sb(a){if(a==null||typeof a===\"number\")return a;if(a===\"NaN\"||a===\"Infinity\"||a===\"-Infinity\")return Number(a)}function Tb(a){if(a==null||typeof a===\"boolean\")return a;if(typeof a===\"number\")return!!a}const Ub=/^-?([1-9][0-9]*|0)(\\.[0-9]+)?$/;function Vb(a){const b=typeof a;switch(b){case \"bigint\":return!0;case \"number\":return Number.isFinite(a)}return b!==\"string\"?!1:Ub.test(a)}\nfunction Wb(a){if(a==null)return a;if(typeof a===\"string\"){if(!a)return;a=+a}if(typeof a===\"number\")return Number.isFinite(a)?a|0:void 0}function Xb(a){if(a==null)return a;if(typeof a===\"string\"){if(!a)return;a=+a}if(typeof a===\"number\")return Number.isFinite(a)?a>>>0:void 0}function Yb(a){return a[0]===\"-\"?!1:a.length<20?!0:a.length===20&&Number(a.substring(0,6))<184467}\nfunction Zb(a){if(a<0){Kb(a);const b=Pb(r,t);a=Number(b);return Number.isSafeInteger(a)?a:b}if(Yb(String(a)))return a;Kb(a);return Nb(r,t)}function $b(a){a=Math.trunc(a);Number.isSafeInteger(a)||(Kb(a),a=Ob(r,t));return a}\nfunction ac(a){var b=Math.trunc(Number(a));if(Number.isSafeInteger(b))return String(b);b=a.indexOf(\".\");b!==-1&&(a=a.substring(0,b));if(!(a[0]===\"-\"?a.length<20||a.length===20&&Number(a.substring(0,7))>-922337:a.length<19||a.length===19&&Number(a.substring(0,6))<922337))if(Rb(a),a=r,b=t,b&2147483648)if(Va())a=\"\"+(BigInt(b|0)<>>0));else{const [c,d]=Lb(a,b);a=\"-\"+Pb(c,d)}else a=Pb(a,b);return a}\nfunction bc(a){if(a==null)return a;if(typeof a===\"bigint\")return Gb(a)?a=Number(a):(a=BigInt.asIntN(64,a),a=Gb(a)?Number(a):String(a)),a;if(Vb(a))return typeof a===\"number\"?$b(a):ac(a)}function cc(a){if(a==null)return a;const b=typeof a;if(b===\"bigint\")return String(BigInt.asIntN(64,a));if(Vb(a)){if(b===\"string\")return ac(a);if(b===\"number\")return $b(a)}}\nfunction dc(a){if(a==null)return a;var b=typeof a;if(b===\"bigint\")return String(BigInt.asUintN(64,a));if(Vb(a)){if(b===\"string\")return b=Math.trunc(Number(a)),Number.isSafeInteger(b)&&b>=0?a=String(b):(b=a.indexOf(\".\"),b!==-1&&(a=a.substring(0,b)),Yb(a)||(Rb(a),a=Pb(r,t))),a;if(b===\"number\")return a=Math.trunc(a),a>=0&&Number.isSafeInteger(a)?a:Zb(a)}}function ec(a){if(typeof a!==\"string\")throw Error();return a}function fc(a){if(a!=null&&typeof a!==\"string\")throw Error();return a}\nfunction gc(a){return a==null||typeof a===\"string\"?a:void 0}function hc(a,b,c,d){if(a!=null&&typeof a===\"object\"&&a.Y===ib)return a;if(!Array.isArray(a))return c?d&2?(a=b[$a])?b=a:(a=new b,fb(a.u),b=b[$a]=a):b=new b:b=void 0,b;let e=c=n(a);e===0&&(e|=d&32);e|=d&2;e!==c&&q(a,e);return new b(a)}\nfunction ic(a,b,c){if(b)a:{b=a;if(!Vb(b))throw Ua(\"int64\");switch(typeof b){case \"string\":b=ac(b);break a;case \"bigint\":a=b=BigInt.asIntN(64,b);if(yb(a)){if(!/^\\s*(?:-?[1-9]\\d*|0)?\\s*$/.test(a))throw Error(String(a));}else if(xb(a)&&!Number.isSafeInteger(a))throw Error(String(a));Ab?b=BigInt(b):b=zb(b)?b?\"1\":\"0\":yb(b)?b.trim()||\"0\":String(b);break a;default:b=$b(b)}}else b=bc(a);a=b;c=a==null?c?0:void 0:a;return typeof c===\"string\"&&(b=+c,Number.isSafeInteger(b))?b:c};function jc(a){kc===void 0&&(kc=typeof Proxy===\"function\"?lc(Proxy):null);if(!kc||!mc())return a;let b=nc?.get(a);if(b)return b;if(Math.random()>.01)return a;oc(a);b=new kc(a,{set(c,d,e){pc();c[d]=e;return!0}});qc(a,b);return b}function pc(){Ta()}let nc=void 0,rc=void 0;function qc(a,b){(nc||=new sc).set(a,b);(rc||=new sc).set(b,a)}let kc=void 0,sc=void 0;function mc(){sc===void 0&&(sc=typeof WeakMap===\"function\"?lc(WeakMap):null);return sc}\nfunction lc(a){try{return a.toString().indexOf(\"[native code]\")!==-1?a:null}catch{return null}}let tc=void 0;function oc(a){if(tc===void 0){const b=new kc([],{});tc=Array.prototype.concat.call([],b).length===1}tc&&typeof Symbol===\"function\"&&Symbol.isConcatSpreadable&&(a[Symbol.isConcatSpreadable]=!0)}\nfunction uc(a,b,c){if(na&&mc()){if(vc?.get(b)?.get(a)){if(c)return}else if(Math.random()>.01)return;var d=a.length;c={length:d};for(var e=0;e0?void 0:a===0?Dc||=[0,void 0]:[-a,void 0];case \"string\":return[0,a];case \"object\":return a}}function Fc(a,b){a=Ic(a,b[0],b[1]);db(a,16384);return a}\nfunction Ic(a,b,c){a==null&&(a=Bc);Bc=void 0;if(a==null){var d=96;c?(a=[c],d|=512):a=[];b&&(d=d&-33521665|(b&1023)<<15)}else{if(!Array.isArray(a))throw Error(\"narr\");d=n(a);if(d&2048)throw Error(\"farr\");if(d&64)return a;d|=64;if(c&&(d|=512,c!==a[0]))throw Error(\"mid\");a:{c=a;const e=c.length;if(e){const f=e-1;if(lb(c[f])){d|=256;b=f-(+!!(d&512)-1);if(b>=1024)throw Error(\"pvtlmt\");d=d&-33521665|(b&1023)<<15;break a}}if(b){b=Math.max(b,e-(+!!(d&512)-1));if(b>1024)throw Error(\"spvt\");d=d&-33521665|(b&\n1023)<<15}}}q(a,d);return a};const Jc={};let Kc=function(){try{return va(new class extends Map{constructor(){super()}}),!1}catch{return!0}}();\nclass Lc{constructor(){this.g=new Map}get(a){return this.g.get(a)}set(a,b){this.g.set(a,b);this.size=this.g.size;return this}delete(a){a=this.g.delete(a);this.size=this.g.size;return a}clear(){this.g.clear();this.size=this.g.size}has(a){return this.g.has(a)}entries(){return this.g.entries()}keys(){return this.g.keys()}values(){return this.g.values()}forEach(a,b){return this.g.forEach(a,b)}[Symbol.iterator](){return this.entries()}}\nconst Mc=(()=>Kc?(Object.setPrototypeOf(Lc.prototype,Map.prototype),Object.defineProperties(Lc.prototype,{size:{value:0,configurable:!0,enumerable:!0,writable:!0}}),Lc):class extends Map{constructor(){super()}})();function Nc(a){return a}function Oc(a){if(a.M&2)throw Error(\"Cannot mutate an immutable Map\");}\nvar Sc=class extends Mc{constructor(a,b,c=Nc,d=Nc){super();let e=n(a);e|=64;q(a,e);this.M=e;this.U=b;this.T=c;this.aa=this.U?Pc:d;for(let f=0;f{a.call(b,this.get(d),d,this)})}set(a,b){Oc(this);a=this.T(a,!0,!1);return a==null?this:b==null?(super.delete(a),this):super.set(a,this.aa(b,!0,!0,this.U,!1,this.M))}Qa(a){const b=this.T(a[0],!1,!0);a=a[1];a=this.U?a===void 0?null:a:this.aa(a,!1,!0,void 0,!1,this.M);super.set(b,a)}has(a){return super.has(this.T(a,!1,!1))}get(a){a=\nthis.T(a,!1,!1);const b=super.get(a);if(b!==void 0){var c=this.U;return c?(c=this.aa(b,!1,!0,c,this.va,this.M),c!==b&&super.set(a,c),c):b}}oa(){return Array.from(super.keys())}Ka(){return super.keys()}[Symbol.iterator](){return this.entries()}};Sc.prototype.toJSON=void 0;Sc.prototype.La=jb;function Pc(a,b,c,d,e,f){a=hc(a,d,c,f);e&&(a=Tc(a));return a}function Qc(a){return a}function Rc(a){return[a,this.get(a)]}let Uc;function Vc(){return Uc||=new Sc(fb([]),void 0,void 0,void 0,Jc)};function Wc(a){switch(typeof a){case \"number\":return isFinite(a)?a:String(a);case \"bigint\":return Gb(a)?Number(a):String(a);case \"boolean\":return a?1:0;case \"object\":if(a)if(Array.isArray(a)){if(nb(a))return}else{if(Ka(a))return Fa(a);if(a instanceof Pa){const b=a.ba;return b==null?\"\":typeof b===\"string\"?b:a.ba=Fa(b)}if(a instanceof Sc)return a.pa()}}return a};function Xc(a,b,c){const d=Wa(a);var e=d.length;const f=b&256?d[e-1]:void 0;e+=f?-1:0;for(b=b&512?1:0;bbd(f,e,d));db(a,32|(c?2:0));return a}function Tc(a){const b=a.u,c=p(b);return c&2?cd(a,b,c,!1):a};function ed(a,b,c,d){if(!(4&b))return!0;if(c==null)return!1;!d&&c===0&&(4096&b||8192&b)&&(a.constructor[cb]=(a.constructor[cb]|0)+1)<5&&Ta();return c===0?!1:!(c&b)}function fd(a,b){a=a.u;return gd(a,p(a),b)}function hd(a,b,c,d){b=d+(+!!(b&512)-1);if(!(b<0||b>=a.length||b>=c))return a[b]}\nfunction gd(a,b,c,d){if(c===-1)return null;const e=b>>15&1023||536870912;if(c>=e){if(b&256)return a[a.length-1][c]}else{var f=a.length;return d&&b&256&&(d=a[f-1][c],d!=null)?(hd(a,b,e,c)&&ab!=null&&(a=Sa??={},b=a[ab]||0,b>=4||(a[ab]=b+1,Ta())),d):hd(a,b,e,c)}}function v(a,b,c){const d=a.u;let e=p(d);qb(e);w(d,e,b,c);return a}\nfunction w(a,b,c,d){const e=b>>15&1023||536870912;if(c>=e){let f,g=b;if(b&256)f=a[a.length-1];else{if(d==null)return g;f=a[e+(+!!(b&512)-1)]={};g|=256}f[c]=d;c ${a}`)};function Rd(a){if(typeof a===\"string\")return{buffer:Ja(a),O:!1};if(Array.isArray(a))return{buffer:new Uint8Array(a),O:!1};if(a.constructor===Uint8Array)return{buffer:a,O:!1};if(a.constructor===ArrayBuffer)return{buffer:new Uint8Array(a),O:!1};if(a.constructor===Pa)return{buffer:Qa(a)||new Uint8Array(0),O:!0};if(a instanceof Uint8Array)return{buffer:new Uint8Array(a.buffer,a.byteOffset,a.byteLength),O:!1};throw Error(\"Type not convertible to a Uint8Array, expected a Uint8Array, an ArrayBuffer, a base64 encoded string, a ByteString or an Array of numbers\");\n};function Sd(a,b){let c,d=0,e=0,f=0;const g=a.h;let k=a.g;do c=g[k++],d|=(c&127)<32&&(e|=(c&127)>>4);for(f=3;f<32&&c&128;f+=7)c=g[k++],e|=(c&127)<>>0,e>>>0);throw Pd();}function Ud(a){let b=0,c=a.g;const d=c+10,e=a.h;for(;c>>0}function Xd(a){var b=a.h;const c=a.g,d=b[c],e=b[c+1],f=b[c+2];b=b[c+3];Td(a,a.g+4);return(d<<0|e<<8|f<<16|b<<24)>>>0}\nfunction $d(a){var b=Xd(a);a=(b>>31)*2+1;const c=b>>>23&255;b&=8388607;return c==255?b?NaN:a*Infinity:c==0?a*1.401298464324817E-45*b:a*Math.pow(2,c-150)*(b+8388608)}function ae(a){return Vd(a)}function be(a,b,{ea:c=!1}={}){a.ea=c;b&&(b=Rd(b),a.h=b.buffer,a.m=b.O,a.j=0,a.l=a.h.length,a.g=a.j)}function Td(a,b){a.g=b;if(b>a.l)throw Qd(a.l,b);}function ce(a,b){if(b<0)throw Error(`Tried to read a negative byte length: ${b}`);const c=a.g,d=c+b;if(d>a.l)throw Qd(b,a.l-c);a.g=d;return c}\nfunction de(a,b){if(b==0)return Oa();var c=ce(a,b);a.ea&&a.m?c=a.h.subarray(c,c+b):(a=a.h,b=c+b,c=c===b?new Uint8Array(0):Hb?a.slice(c,b):new Uint8Array(a.subarray(c,b)));return c.length==0?Oa():new Pa(c,La)}var ee=class{constructor(a,b){this.h=null;this.m=!1;this.g=this.l=this.j=0;be(this,a,b)}clear(){this.h=null;this.m=!1;this.g=this.l=this.j=0;this.ea=!1}},fe=[];function ge(a){var b=a.g;if(b.g==b.l)return!1;a.l=a.g.g;var c=Wd(a.g);b=c>>>3;c&=7;if(!(c>=0&&c<=5))throw Od(c,a.l);if(b<1)throw Error(`Invalid field number: ${b} (at position ${a.l})`);a.m=b;a.h=c;return!0}\nfunction he(a){switch(a.h){case 0:a.h!=0?he(a):Ud(a.g);break;case 1:a=a.g;Td(a,a.g+8);break;case 2:if(a.h!=2)he(a);else{var b=Wd(a.g);a=a.g;Td(a,a.g+b)}break;case 5:a=a.g;Td(a,a.g+4);break;case 3:b=a.m;do{if(!ge(a))throw Error(\"Unmatched start-group tag: stream EOF\");if(a.h==4){if(a.m!=b)throw Error(\"Unmatched end-group tag\");break}he(a)}while(1);break;default:throw Od(a.h,a.l);}}\nfunction ie(a,b,c){const d=a.g.l,e=Wd(a.g),f=a.g.g+e;let g=f-d;g<=0&&(a.g.l=f,c(b,a,void 0,void 0,void 0),g=f-a.g.g);if(g)throw Error(\"Message parsing ended unexpectedly. Expected to read \"+`${e} bytes, instead read ${e-g} bytes, either the `+\"data ended unexpectedly or the message misreported its own length\");a.g.g=f;a.g.l=d;return b}\nfunction je(a){var b=Wd(a.g);a=a.g;var c=ce(a,b);a=a.h;if(ha){var d=a,e;(e=fa)||(e=fa=new TextDecoder(\"utf-8\",{fatal:!0}));b=c+b;d=c===0&&b===d.length?d:d.subarray(c,b);try{var f=e.decode(d)}catch(k){if(ea===void 0){try{e.decode(new Uint8Array([128]))}catch(h){}try{e.decode(new Uint8Array([97])),ea=!0}catch(h){ea=!1}}!ea&&(fa=void 0);throw k;}}else{f=c;b=f+b;c=[];let k=null;let h;for(;f=b?ca():(h=a[f++],g<194||(h&192)!==128?(f--,ca()):c.push((g&31)<<6|h&63)):\ng<240?f>=b-1?ca():(h=a[f++],(h&192)!==128||g===224&&h<160||g===237&&h>=160||((e=a[f++])&192)!==128?(f--,ca()):c.push((g&15)<<12|(h&63)<<6|e&63)):g<=244?f>=b-2?ca():(h=a[f++],(h&192)!==128||(g<<28)+(h-144)>>30!==0||((e=a[f++])&192)!==128||((d=a[f++])&192)!==128?(f--,ca()):(g=(g&7)<<18|(h&63)<<12|(e&63)<<6|d&63,g-=65536,c.push((g>>10&1023)+55296,(g&1023)+56320))):ca();c.length>=8192&&(k=da(k,c),c.length=0)}f=da(k,c)}return f}function ke(a){const b=Wd(a.g);return de(a.g,b)}\nfunction le(a,b,c){var d=Wd(a.g);for(d=a.g.g+d;a.g.g0;l--){g=e[l-1];if(!(g==null||nb(g)||kb(g)&&g.size===0))break;var h=!0}if(e!==a||f||h){if(!b)e=Array.prototype.slice.call(e,\n0,l);else if(h||f||k)e.length=l;k&&e.push(k)}h=e}else h=a}return h};function se(a){if(!a)return te||=new ue(0,0);if(!/^\\d+$/.test(a))return null;Rb(a);return new ue(r,t)}var ue=class{constructor(a,b){this.h=a>>>0;this.g=b>>>0}};let te;function ve(a){if(!a)return we||=new xe(0,0);if(!/^-?\\d+$/.test(a))return null;Rb(a);return new xe(r,t)}var xe=class{constructor(a,b){this.h=a>>>0;this.g=b>>>0}};let we;function ye(a,b,c){for(;c>0||b>127;)a.g.push(b&127|128),b=(b>>>7|c<<25)>>>0,c>>>=7;a.g.push(b)}function ze(a,b){for(;b>127;)a.g.push(b&127|128),b>>>=7;a.g.push(b)}function Ae(a,b){if(b>=0)ze(a,b);else{for(let c=0;c<9;c++)a.g.push(b&127|128),b>>=7;a.g.push(1)}}function Be(a,b){a.g.push(b>>>0&255);a.g.push(b>>>8&255);a.g.push(b>>>16&255);a.g.push(b>>>24&255)}var Ce=class{constructor(){this.g=[]}length(){return this.g.length}end(){const a=this.g;this.g=[];return a}};function De(a,b){b.length!==0&&(a.l.push(b),a.h+=b.length)}function Ee(a,b,c){ze(a.g,b*8+c)}function Fe(a,b){Ee(a,b,2);b=a.g.end();De(a,b);b.push(a.h);return b}function Ge(a,b){var c=b.pop();for(c=a.h+a.g.length()-c;c>127;)b.push(c&127|128),c>>>=7,a.h++;b.push(c);a.h++}function He(a,b,c){Ee(a,b,2);ze(a.g,c.length);De(a,a.g.end());De(a,c)}function Ie(a,b,c,d){c!=null&&(b=Fe(a,b),d(c,a),Ge(a,b))}var Je=class{constructor(){this.l=[];this.h=0;this.g=new Ce}};class Ke{constructor(a,b,c){this.g=a;this.h=b;this.qa=c}};function Le(a){return Array.isArray(a)?a[0]instanceof Ke?a:[Me,a]:[a,void 0]}function Ne(a,b){if(Array.isArray(b)){var c=n(b);if(c&4)return b;for(var d=0,e=0;dd(e,f,c):(e,f)=>{for(;ge(f)&&f.h!=4;){var g=f.m;let l=c[g];const u=!l;let E=!1;if(!l){var k=c.X;if(k){var h=k[g];h&&(E=k.P?.[g],(!oa||E)&&(k=Re(h))&&(l=c[g]=k))}}l&&l(f,e,g)||(k=f,g=k.l,he(k),k.ja?k=void 0:(h=k.g.g-g,k.g.g=g,k=de(k.g,h)),g=e,k&&(sb||=Symbol(),(h=g[sb])?h.push(k):g[sb]=[k]));u&&l&&!E&&Se++<5&&Ta()}};a[Oe]=b}return b}\nfunction Re(a){a=Le(a);const b=a[0].g;if(a=a[1]){const c=Pe(a),d=Qe(a).g;return(e,f,g)=>b(e,f,g,d,c)}return b}function Te(a,b,c){a[b]=c}\nfunction Ue(a,b,c,d){var e=Te;b.g=Ec(a[0]);let f=0;var g=a[++f];g&&g.constructor===Object&&(b.X=g,g=a[++f],typeof g===\"function\"&&(b.h=g,b.l=a[++f],g=a[++f]));const k={};for(;Array.isArray(g)&&typeof g[0]===\"number\"&&g[0]>0;){for(var h=0;hZe(d,e,c);a[We]=b}return b}const $e=Symbol();function af(a){return a.h}function bf(a,b){let c,d;const e=a.h;return(f,g,k)=>e(f,g,k,d||=Ye(b).g,c||=Xe(b))}function Ye(a){let b=a[$e];return b?b:b=Ue(a,a[$e]={},af,bf)}const cf=Symbol();function df(a,b){const c=a.g;return b?(d,e,f)=>c(d,e,f,b):c}\nfunction ef(a,b,c){const d=a.g;let e,f;return(g,k,h)=>d(g,k,h,f||=Qe(b).g,e||=Pe(b),c)}function Qe(a){let b=a[cf];return b?b:b=Ue(a,a[cf]={},df,ef)}function ff(a,b){var c=a[b];if(c)return c;if(c=a.X){var d=c[b];if(d){d=Le(d);var e=d[0].h;d=d[1];c=c.P?.[b];if(!oa||c){if(d){const f=Xe(d),g=Ye(d).g;c=(c=a.l)?c(g,f):(k,h,l)=>e(k,h,l,g,f)}else c=e;return a[b]=c}}}}\nfunction Ze(a,b,c){for(var d=p(a),e=+!!(d&512)-1,f=a.length,g=d&512?1:0,k=f+(d&256?-1:0);g{Ie(a,c,Fc([g,f],d),e)});else if(Array.isArray(b))for(let f=0;f>BigInt(32)));ye(a.g,c.h,c.g);break;default:c=ve(b),ye(a.g,c.h,c.g)}}}function nf(a,b,c){b=Wb(b);b!=null&&b!=null&&(Ee(a,c,0),Ae(a.g,b))}function of(a,b,c){b=Tb(b);b!=null&&(Ee(a,c,0),a.g.g.push(b?1:0))}function pf(a,b,c){b=gc(b);b!=null&&He(a,c,ka(b))}\nfunction qf(a,b,c,d,e){b instanceof B?(Ac(b),b=b.u):b=Array.isArray(b)?Fc(b,d):void 0;Ie(a,c,b,e)}function rf(a,b,c){b=b==null||typeof b==\"string\"||Ka(b)||b instanceof Pa?b:void 0;b!=null&&He(a,c,Rd(b).buffer)}function sf(a,b,c){if(a.h!==5&&a.h!==2)return!1;b=id(b,p(b),c,2,!1);a.h==2?le(a,$d,b):b.push($d(a.g));return!0}\nvar tf=gf(function(a,b,c){if(a.h!==1)return!1;var d=a.g;a=Xd(d);const e=Xd(d);d=(e>>31)*2+1;const f=e>>>20&2047;a=4294967296*(e&1048575)+a;kf(b,c,f==2047?a?NaN:d*Infinity:f==0?d*4.9E-324*a:d*Math.pow(2,f-1075)*(a+4503599627370496));return!0},function(a,b,c){b=Sb(b);b!=null&&(Ee(a,c,1),a=a.g,c=Ib||=new DataView(new ArrayBuffer(8)),c.setFloat64(0,+b,!0),r=c.getUint32(0,!0),t=c.getUint32(4,!0),Be(a,r),Be(a,t))}),C=gf(function(a,b,c){if(a.h!==5)return!1;kf(b,c,$d(a.g));return!0},function(a,b,c){b=Sb(b);\nb!=null&&(Ee(a,c,5),a=a.g,Mb(b),Be(a,r))}),uf=hf(sf,function(a,b,c){b=Ne(Sb,b);if(b!=null)for(let g=0;g>BigInt(32)));ye(a.g,c.h,c.g);break;default:c=se(b),ye(a.g,c.h,c.g)}}}),D=gf(function(a,b,c){if(a.h!==0)return!1;kf(b,c,Vd(a.g));return!0},nf),zf=hf(function(a,b,c){if(a.h!==0&&a.h!==2)return!1;b=id(b,p(b),c,2,\n!1);a.h==2?le(a,Vd,b):b.push(Vd(a.g));return!0},function(a,b,c){b=Ne(Wb,b);if(b!=null&&b.length){c=Fe(a,c);for(let d=0;d{if(ne.length){const f=ne.pop();f.o(d);be(f.g,c,d);c=f}else c=new me(c,d);try{const f=new a,g=f.u;Pe(b)(g,c);var e=f}finally{c.g.clear(),c.m=-1,c.h=-1,ne.length<100&&ne.push(c)}return e}}function Jf(a){return function(){Ac(this);const b=new Je;Ze(this.u,b,Ye(a));De(b,b.g.end());const c=new Uint8Array(b.h),d=b.l,e=d.length;let f=0;for(let g=0;g({index:Hd(Id(d,1),0)??-1,score:z(d,2)??0,categoryName:Jd(d,3)??\"\",displayName:Jd(d,4)??\"\"})),headIndex:b,headName:c}}function Ih(a){const b={classifications:Ed(a,yg,1).map(c=>Hh(x(c,kg,4)?.g()??[],Hd(Id(c,2),0),Jd(c,3)))};bc(fd(a,2))!=null&&(b.timestampMs=Hd(bc(fd(a,2)),0));return b};function Jh(a){var b=md(a,3,Sb,ld());var c=md(a,2,Wb,ld());var d=md(a,1,gc,ld());var e=md(a,9,gc,ld());const f={categories:[],keypoints:[]};for(let g=0;g{const c={headIndex:Hd(Id(b,3),0)??-1,headName:Jd(b,4)??\"\"};if(Cd(b,Ag,wd(b,1))!==void 0)b=x(b,Ag,wd(b,1)),b=md(b,1,Sb,ld()),c.floatEmbedding=b.slice();else{const d=new Uint8Array(0);c.quantizedEmbedding=x(b,Bg,wd(b,2))?.ra()?.ua()??d}return c}),timestampMs:Hd(bc(fd(a,2)),0)}};function Lh(a){const b=[];for(const c of Ed(a,tg,1))b.push({x:z(c,1)??0,y:z(c,2)??0,z:z(c,3)??0,visibility:z(c,4)??0});return b}function Mh(a){const b=[];for(const c of Ed(a,rg,1))b.push({x:z(c,1)??0,y:z(c,2)??0,z:z(c,3)??0,visibility:z(c,4)??0});return b};function Nh(a){return Array.from(a,b=>b>127?b-256:b)}function Oh(a,b){if(a.length!==b.length)throw Error(`Cannot compute cosine similarity between embeddings of different sizes (${a.length} vs. ${b.length}).`);let c=0,d=0,e=0;for(let f=0;f=1&&Number(a[1])>=17?!0:!1:!0};async function Wh(a){if(typeof importScripts===\"function\")importScripts(a.toString());else{const b=document.createElement(\"script\");b.src=a.toString();b.crossOrigin=\"anonymous\";return new Promise((c,d)=>{b.addEventListener(\"load\",()=>{c()},!1);b.addEventListener(\"error\",e=>{d(e)},!1);document.body.appendChild(b)})}};function Xh(a){return a.videoWidth!==void 0?[a.videoWidth,a.videoHeight]:a.naturalWidth!==void 0?[a.naturalWidth,a.naturalHeight]:a.displayWidth!==void 0?[a.displayWidth,a.displayHeight]:[a.width,a.height]}function T(a,b,c){a.m||console.error(\"No wasm multistream support detected: ensure dependency inclusion of :gl_graph_runner_internal_multi_input target\");b=a.i.stringToNewUTF8(b);c(b);a.i._free(b)}\nfunction Yh(a,b,c){if(!a.i.canvas)throw Error(\"No OpenGL canvas configured.\");c?a.i._bindTextureToStream(c):a.i._bindTextureToCanvas();c=a.i.canvas.getContext(\"webgl2\")||a.i.canvas.getContext(\"webgl\");if(!c)throw Error(\"Failed to obtain WebGL context from the provided canvas. `getContext()` should only be invoked with `webgl` or `webgl2`.\");a.i.gpuOriginForWebTexturesIsBottomLeft&&c.pixelStorei(c.UNPACK_FLIP_Y_WEBGL,!0);c.texImage2D(c.TEXTURE_2D,0,c.RGBA,c.RGBA,c.UNSIGNED_BYTE,b);a.i.gpuOriginForWebTexturesIsBottomLeft&&\nc.pixelStorei(c.UNPACK_FLIP_Y_WEBGL,!1);const [d,e]=Xh(b);!a.l||d===a.i.canvas.width&&e===a.i.canvas.height||(a.i.canvas.width=d,a.i.canvas.height=e);return[d,e]}\nfunction Zh(a,b,c){a.m||console.error(\"No wasm multistream support detected: ensure dependency inclusion of :gl_graph_runner_internal_multi_input target\");const d=new Uint32Array(b.length);for(let e=0;e>2);c(b);for(const e of d)a.i._free(e);a.i._free(b)}function $h(a,b,c){a.i.simpleListeners=a.i.simpleListeners||{};a.i.simpleListeners[b]=c}\nfunction ai(a,b,c){let d=[];a.i.simpleListeners=a.i.simpleListeners||{};a.i.simpleListeners[b]=(e,f,g)=>{f?(c(d,g),d=[]):d.push(e)}}\nvar bi=class{constructor(a,b){this.l=!0;this.i=a;this.g=null;this.h=0;this.m=typeof this.i._addIntToInputStream===\"function\";b!==void 0?this.i.canvas=b:Vh()?this.i.canvas=new OffscreenCanvas(1,1):(console.warn(\"OffscreenCanvas not supported and GraphRunner constructor glCanvas parameter is undefined. Creating backup canvas.\"),this.i.canvas=document.createElement(\"canvas\"))}async initializeGraph(a){const b=await (await fetch(a)).arrayBuffer();a=!(a.endsWith(\".pbtxt\")||a.endsWith(\".textproto\"));this.setGraph(new Uint8Array(b),\na)}setGraphFromString(a){this.setGraph((new TextEncoder).encode(a),!1)}setGraph(a,b){const c=a.length,d=this.i._malloc(c);this.i.HEAPU8.set(a,d);b?this.i._changeBinaryGraph(c,d):this.i._changeTextGraph(c,d);this.i._free(d)}configureAudio(a,b,c,d,e){this.i._configureAudio||console.warn('Attempting to use configureAudio without support for input audio. Is build dep \":gl_graph_runner_audio\" missing?');T(this,d||\"input_audio\",f=>{e=e||\"audio_header\";T(this,e,g=>{this.i._configureAudio(f,g,a,b,c)})})}setAutoResizeCanvas(a){this.l=\na}setAutoRenderToScreen(a){this.i._setAutoRenderToScreen(a)}setGpuBufferVerticalFlip(a){this.i.gpuOriginForWebTexturesIsBottomLeft=a}ga(a){$h(this,\"__graph_config__\",b=>{a(b)});T(this,\"__graph_config__\",b=>{this.i._getGraphConfig(b,void 0)});delete this.i.simpleListeners.__graph_config__}attachErrorListener(a){this.i.errorListener=a}attachEmptyPacketListener(a,b){this.i.emptyPacketListeners=this.i.emptyPacketListeners||{};this.i.emptyPacketListeners[a]=b}addAudioToStream(a,b,c){this.addAudioToStreamWithShape(a,\n0,0,b,c)}addAudioToStreamWithShape(a,b,c,d,e){const f=a.length*4;this.h!==f&&(this.g&&this.i._free(this.g),this.g=this.i._malloc(f),this.h=f);this.i.HEAPF32.set(a,this.g/4);T(this,d,g=>{this.i._addAudioToInputStream(this.g,b,c,g,e)})}addGpuBufferToStream(a,b,c){T(this,b,d=>{const [e,f]=Yh(this,a,d);this.i._addBoundTextureToStream(d,e,f,c)})}addBoolToStream(a,b,c){T(this,b,d=>{this.i._addBoolToInputStream(a,d,c)})}addDoubleToStream(a,b,c){T(this,b,d=>{this.i._addDoubleToInputStream(a,d,c)})}addFloatToStream(a,\nb,c){T(this,b,d=>{this.i._addFloatToInputStream(a,d,c)})}addIntToStream(a,b,c){T(this,b,d=>{this.i._addIntToInputStream(a,d,c)})}addUintToStream(a,b,c){T(this,b,d=>{this.i._addUintToInputStream(a,d,c)})}addStringToStream(a,b,c){T(this,b,d=>{T(this,a,e=>{this.i._addStringToInputStream(e,d,c)})})}addStringRecordToStream(a,b,c){T(this,b,d=>{Zh(this,Object.keys(a),e=>{Zh(this,Object.values(a),f=>{this.i._addFlatHashMapToInputStream(e,f,Object.keys(a).length,d,c)})})})}addProtoToStream(a,b,c,d){T(this,\nc,e=>{T(this,b,f=>{const g=this.i._malloc(a.length);this.i.HEAPU8.set(a,g);this.i._addProtoToInputStream(g,a.length,f,e,d);this.i._free(g)})})}addEmptyPacketToStream(a,b){T(this,a,c=>{this.i._addEmptyPacketToInputStream(c,b)})}addBoolVectorToStream(a,b,c){T(this,b,d=>{const e=this.i._allocateBoolVector(a.length);if(!e)throw Error(\"Unable to allocate new bool vector on heap.\");for(const f of a)this.i._addBoolVectorEntry(e,f);this.i._addBoolVectorToInputStream(e,d,c)})}addDoubleVectorToStream(a,b,c){T(this,\nb,d=>{const e=this.i._allocateDoubleVector(a.length);if(!e)throw Error(\"Unable to allocate new double vector on heap.\");for(const f of a)this.i._addDoubleVectorEntry(e,f);this.i._addDoubleVectorToInputStream(e,d,c)})}addFloatVectorToStream(a,b,c){T(this,b,d=>{const e=this.i._allocateFloatVector(a.length);if(!e)throw Error(\"Unable to allocate new float vector on heap.\");for(const f of a)this.i._addFloatVectorEntry(e,f);this.i._addFloatVectorToInputStream(e,d,c)})}addIntVectorToStream(a,b,c){T(this,\nb,d=>{const e=this.i._allocateIntVector(a.length);if(!e)throw Error(\"Unable to allocate new int vector on heap.\");for(const f of a)this.i._addIntVectorEntry(e,f);this.i._addIntVectorToInputStream(e,d,c)})}addUintVectorToStream(a,b,c){T(this,b,d=>{const e=this.i._allocateUintVector(a.length);if(!e)throw Error(\"Unable to allocate new unsigned int vector on heap.\");for(const f of a)this.i._addUintVectorEntry(e,f);this.i._addUintVectorToInputStream(e,d,c)})}addStringVectorToStream(a,b,c){T(this,b,d=>\n{const e=this.i._allocateStringVector(a.length);if(!e)throw Error(\"Unable to allocate new string vector on heap.\");for(const f of a)T(this,f,g=>{this.i._addStringVectorEntry(e,g)});this.i._addStringVectorToInputStream(e,d,c)})}addBoolToInputSidePacket(a,b){T(this,b,c=>{this.i._addBoolToInputSidePacket(a,c)})}addDoubleToInputSidePacket(a,b){T(this,b,c=>{this.i._addDoubleToInputSidePacket(a,c)})}addFloatToInputSidePacket(a,b){T(this,b,c=>{this.i._addFloatToInputSidePacket(a,c)})}addIntToInputSidePacket(a,\nb){T(this,b,c=>{this.i._addIntToInputSidePacket(a,c)})}addUintToInputSidePacket(a,b){T(this,b,c=>{this.i._addUintToInputSidePacket(a,c)})}addStringToInputSidePacket(a,b){T(this,b,c=>{T(this,a,d=>{this.i._addStringToInputSidePacket(d,c)})})}addProtoToInputSidePacket(a,b,c){T(this,c,d=>{T(this,b,e=>{const f=this.i._malloc(a.length);this.i.HEAPU8.set(a,f);this.i._addProtoToInputSidePacket(f,a.length,e,d);this.i._free(f)})})}addBoolVectorToInputSidePacket(a,b){T(this,b,c=>{const d=this.i._allocateBoolVector(a.length);\nif(!d)throw Error(\"Unable to allocate new bool vector on heap.\");for(const e of a)this.i._addBoolVectorEntry(d,e);this.i._addBoolVectorToInputSidePacket(d,c)})}addDoubleVectorToInputSidePacket(a,b){T(this,b,c=>{const d=this.i._allocateDoubleVector(a.length);if(!d)throw Error(\"Unable to allocate new double vector on heap.\");for(const e of a)this.i._addDoubleVectorEntry(d,e);this.i._addDoubleVectorToInputSidePacket(d,c)})}addFloatVectorToInputSidePacket(a,b){T(this,b,c=>{const d=this.i._allocateFloatVector(a.length);\nif(!d)throw Error(\"Unable to allocate new float vector on heap.\");for(const e of a)this.i._addFloatVectorEntry(d,e);this.i._addFloatVectorToInputSidePacket(d,c)})}addIntVectorToInputSidePacket(a,b){T(this,b,c=>{const d=this.i._allocateIntVector(a.length);if(!d)throw Error(\"Unable to allocate new int vector on heap.\");for(const e of a)this.i._addIntVectorEntry(d,e);this.i._addIntVectorToInputSidePacket(d,c)})}addUintVectorToInputSidePacket(a,b){T(this,b,c=>{const d=this.i._allocateUintVector(a.length);\nif(!d)throw Error(\"Unable to allocate new unsigned int vector on heap.\");for(const e of a)this.i._addUintVectorEntry(d,e);this.i._addUintVectorToInputSidePacket(d,c)})}addStringVectorToInputSidePacket(a,b){T(this,b,c=>{const d=this.i._allocateStringVector(a.length);if(!d)throw Error(\"Unable to allocate new string vector on heap.\");for(const e of a)T(this,e,f=>{this.i._addStringVectorEntry(d,f)});this.i._addStringVectorToInputSidePacket(d,c)})}attachBoolListener(a,b){$h(this,a,b);T(this,a,c=>{this.i._attachBoolListener(c)})}attachBoolVectorListener(a,\nb){ai(this,a,b);T(this,a,c=>{this.i._attachBoolVectorListener(c)})}attachIntListener(a,b){$h(this,a,b);T(this,a,c=>{this.i._attachIntListener(c)})}attachIntVectorListener(a,b){ai(this,a,b);T(this,a,c=>{this.i._attachIntVectorListener(c)})}attachUintListener(a,b){$h(this,a,b);T(this,a,c=>{this.i._attachUintListener(c)})}attachUintVectorListener(a,b){ai(this,a,b);T(this,a,c=>{this.i._attachUintVectorListener(c)})}attachDoubleListener(a,b){$h(this,a,b);T(this,a,c=>{this.i._attachDoubleListener(c)})}attachDoubleVectorListener(a,\nb){ai(this,a,b);T(this,a,c=>{this.i._attachDoubleVectorListener(c)})}attachFloatListener(a,b){$h(this,a,b);T(this,a,c=>{this.i._attachFloatListener(c)})}attachFloatVectorListener(a,b){ai(this,a,b);T(this,a,c=>{this.i._attachFloatVectorListener(c)})}attachStringListener(a,b){$h(this,a,b);T(this,a,c=>{this.i._attachStringListener(c)})}attachStringVectorListener(a,b){ai(this,a,b);T(this,a,c=>{this.i._attachStringVectorListener(c)})}attachProtoListener(a,b,c){$h(this,a,b);T(this,a,d=>{this.i._attachProtoListener(d,\nc||!1)})}attachProtoVectorListener(a,b,c){ai(this,a,b);T(this,a,d=>{this.i._attachProtoVectorListener(d,c||!1)})}attachAudioListener(a,b,c){this.i._attachAudioListener||console.warn('Attempting to use attachAudioListener without support for output audio. Is build dep \":gl_graph_runner_audio_out\" missing?');$h(this,a,(d,e)=>{d=new Float32Array(d.buffer,d.byteOffset,d.length/4);b(d,e)});T(this,a,d=>{this.i._attachAudioListener(d,c||!1)})}finishProcessing(){this.i._waitUntilIdle()}closeGraph(){this.i._closeGraph();\nthis.i.simpleListeners=void 0;this.i.emptyPacketListeners=void 0}},ci=async(a,b,c,d,e)=>{b&&await Wh(b);if(!self.ModuleFactory)throw Error(\"ModuleFactory not set.\");if(c&&(await Wh(c),!self.ModuleFactory))throw Error(\"ModuleFactory not set.\");self.Module&&e&&(b=self.Module,b.locateFile=e.locateFile,e.mainScriptUrlOrBlob&&(b.mainScriptUrlOrBlob=e.mainScriptUrlOrBlob));e=await self.ModuleFactory(self.Module||e);self.ModuleFactory=self.Module=void 0;return new a(e,d)};async function di(a,b,c,d){a=await ci(a,c.wasmLoaderPath,c.assetLoaderPath,b,{locateFile(e){return e.endsWith(\".wasm\")?c.wasmBinaryPath.toString():c.assetBinaryPath&&e.endsWith(\".data\")?c.assetBinaryPath.toString():e}});await a.o(d);return a}async function ei(a,b,c,d){return di(a,b,c,d)}function fi(a,b){let c=x(a.baseOptions,Ig,3);if(!c){var d=c=new Ig,e=new Rf;Fd(d,4,Jg,e)}\"delegate\"in b&&(b.delegate===\"GPU\"?(b=c,d=new Of,Fd(b,2,Jg,d)):(b=c,d=new Rf,Fd(b,4,Jg,d)));y(a.baseOptions,Ig,3,c)}\nfunction gi(a,b){const c=x(a.baseOptions,Kg,1)||new Kg;typeof b===\"string\"?(v(c,2,fc(b)),v(c,1)):b instanceof Uint8Array&&(v(c,1,mb(b,!1,!1)),v(c,2));y(a.baseOptions,Kg,1,c)}function hi(a){try{const b=a.H.length;if(b===1)throw Error(a.H[0].message);if(b>1)throw Error(\"Encountered multiple errors: \"+a.H.map(c=>c.message).join(\", \"));}finally{a.H=[]}}function U(a,b){a.B=Math.max(a.B,b)}\nfunction ii(a,b){a.A=new O;bg(a.A,\"PassThroughCalculator\");M(a.A,\"free_memory\");N(a.A,\"free_memory_unused_out\");P(b,\"free_memory\");fg(b,a.A)}function ji(a,b){M(a.A,b);N(a.A,b+\"_unused_out\")}function ki(a){a.g.addBoolToStream(!0,\"free_memory\",a.B)}\nvar mi=class{constructor(a){this.g=a;this.H=[];this.B=0;this.g.setAutoRenderToScreen(!1)}l(a,b=!0){if(b){const c=a.baseOptions||{};if(a.baseOptions?.modelAssetBuffer&&a.baseOptions?.modelAssetPath)throw Error(\"Cannot set both baseOptions.modelAssetPath and baseOptions.modelAssetBuffer\");if(!(x(this.baseOptions,Kg,1)?.g()||x(this.baseOptions,Kg,1)?.h()||a.baseOptions?.modelAssetBuffer||a.baseOptions?.modelAssetPath))throw Error(\"Either baseOptions.modelAssetPath or baseOptions.modelAssetBuffer must be set\");\nfi(this,c);if(c.modelAssetPath)return fetch(c.modelAssetPath.toString()).then(d=>{if(d.ok)return d.arrayBuffer();throw Error(`Failed to fetch model: ${c.modelAssetPath} (${d.status})`);}).then(d=>{try{this.g.i.FS_unlink(\"/model.dat\")}catch{}this.g.i.FS_createDataFile(\"/\",\"model.dat\",new Uint8Array(d),!0,!1,!1);gi(this,\"/model.dat\");this.m();this.J()});if(c.modelAssetBuffer instanceof Uint8Array)gi(this,c.modelAssetBuffer);else if(c.modelAssetBuffer)return li(c.modelAssetBuffer).then(d=>{gi(this,d);\nthis.m();this.J()})}this.m();this.J();return Promise.resolve()}J(){}ga(){let a;this.g.ga(b=>{a=ig(b)});if(!a)throw Error(\"Failed to retrieve CalculatorGraphConfig\");return a}setGraph(a,b){this.g.attachErrorListener((c,d)=>{this.H.push(Error(d))});this.g.Oa();this.g.setGraph(a,b);this.A=void 0;hi(this)}finishProcessing(){this.g.finishProcessing();hi(this)}close(){this.A=void 0;this.g.closeGraph()}};mi.prototype.close=mi.prototype.close;\nasync function li(a){const b=[];for(var c=0;;){const {done:d,value:e}=await a.read();if(d)break;b.push(e);c+=e.length}if(b.length===0)return new Uint8Array(0);if(b.length===1)return b[0];a=new Uint8Array(c);c=0;for(const d of b)a.set(d,c),c+=d.length;return a}m(\"TaskRunner\",mi);function ni(a,b){if(!a)throw Error(`Unable to obtain required WebGL resource: ${b}`);return a}class oi{constructor(a,b,c,d){this.g=a;this.h=b;this.m=c;this.l=d}bind(){this.g.bindVertexArray(this.h)}close(){this.g.deleteVertexArray(this.h);this.g.deleteBuffer(this.m);this.g.deleteBuffer(this.l)}}\nfunction pi(a,b,c){const d=a.g;c=ni(d.createShader(c),\"Failed to create WebGL shader\");d.shaderSource(c,b);d.compileShader(c);if(!d.getShaderParameter(c,d.COMPILE_STATUS))throw Error(`Could not compile WebGL shader: ${d.getShaderInfoLog(c)}`);d.attachShader(a.h,c);return c}\nfunction qi(a,b){const c=a.g,d=ni(c.createVertexArray(),\"Failed to create vertex array\");c.bindVertexArray(d);const e=ni(c.createBuffer(),\"Failed to create buffer\");c.bindBuffer(c.ARRAY_BUFFER,e);c.enableVertexAttribArray(a.R);c.vertexAttribPointer(a.R,2,c.FLOAT,!1,0,0);c.bufferData(c.ARRAY_BUFFER,new Float32Array([-1,-1,-1,1,1,1,1,-1]),c.STATIC_DRAW);const f=ni(c.createBuffer(),\"Failed to create buffer\");c.bindBuffer(c.ARRAY_BUFFER,f);c.enableVertexAttribArray(a.J);c.vertexAttribPointer(a.J,2,c.FLOAT,\n!1,0,0);c.bufferData(c.ARRAY_BUFFER,new Float32Array(b?[0,1,0,0,1,0,1,1]:[0,0,0,1,1,1,1,0]),c.STATIC_DRAW);c.bindBuffer(c.ARRAY_BUFFER,null);c.bindVertexArray(null);return new oi(c,d,e,f)}function ri(a,b){if(!a.g)a.g=b;else if(b!==a.g)throw Error(\"Cannot change GL context once initialized\");}function si(a,b,c,d){ri(a,b);a.h||(a.m(),a.C());c?(a.s||(a.s=qi(a,!0)),c=a.s):(a.v||(a.v=qi(a,!1)),c=a.v);b.useProgram(a.h);c.bind();a.l();a=d();c.g.bindVertexArray(null);return a}\nfunction ti(a,b,c){ri(a,b);a=ni(b.createTexture(),\"Failed to create texture\");b.bindTexture(b.TEXTURE_2D,a);b.texParameteri(b.TEXTURE_2D,b.TEXTURE_WRAP_S,b.CLAMP_TO_EDGE);b.texParameteri(b.TEXTURE_2D,b.TEXTURE_WRAP_T,b.CLAMP_TO_EDGE);b.texParameteri(b.TEXTURE_2D,b.TEXTURE_MIN_FILTER,c??b.LINEAR);b.texParameteri(b.TEXTURE_2D,b.TEXTURE_MAG_FILTER,c??b.LINEAR);b.bindTexture(b.TEXTURE_2D,null);return a}\nfunction ui(a,b,c){ri(a,b);a.A||(a.A=ni(b.createFramebuffer(),\"Failed to create framebuffe.\"));b.bindFramebuffer(b.FRAMEBUFFER,a.A);b.framebufferTexture2D(b.FRAMEBUFFER,b.COLOR_ATTACHMENT0,b.TEXTURE_2D,c,0)}function vi(a){a.g?.bindFramebuffer(a.g.FRAMEBUFFER,null)}\nvar wi=class{H(){return\"\\n precision mediump float;\\n varying vec2 vTex;\\n uniform sampler2D inputTexture;\\n void main() {\\n gl_FragColor = texture2D(inputTexture, vTex);\\n }\\n \"}m(){const a=this.g;this.h=ni(a.createProgram(),\"Failed to create WebGL program\");this.da=pi(this,\"\\n attribute vec2 aVertex;\\n attribute vec2 aTex;\\n varying vec2 vTex;\\n void main(void) {\\n gl_Position = vec4(aVertex, 0.0, 1.0);\\n vTex = aTex;\\n }\",a.VERTEX_SHADER);this.ca=pi(this,this.H(),a.FRAGMENT_SHADER);\na.linkProgram(this.h);if(!a.getProgramParameter(this.h,a.LINK_STATUS))throw Error(`Error during program linking: ${a.getProgramInfoLog(this.h)}`);this.R=a.getAttribLocation(this.h,\"aVertex\");this.J=a.getAttribLocation(this.h,\"aTex\")}C(){}l(){}close(){if(this.h){const a=this.g;a.deleteProgram(this.h);a.deleteShader(this.da);a.deleteShader(this.ca)}this.A&&this.g.deleteFramebuffer(this.A);this.v&&this.v.close();this.s&&this.s.close()}};function xi(a,b){if(a!==b)return!1;a=a.entries();b=b.entries();for(const [d,e]of a){a=d;const f=e;var c=b.next();if(c.done)return!1;const [g,k]=c.value;c=k;if(a!==g||f[0]!==c[0]||f[1]!==c[1]||f[2]!==c[2]||f[3]!==c[3])return!1}return!!b.next().done}\nfunction yi(a,b,c,d){const e=a.g;e.activeTexture(e.TEXTURE0);e.bindTexture(e.TEXTURE_2D,b);e.activeTexture(e.TEXTURE1);e.bindTexture(e.TEXTURE_2D,a.B);e.texImage2D(e.TEXTURE_2D,0,e.RGBA,e.RGBA,e.UNSIGNED_BYTE,c);if(a.I&&xi(a.I,d))e.activeTexture(e.TEXTURE2),e.bindTexture(e.TEXTURE_2D,a.j);else{a.I=d;const f=Array(1024).fill(0);d.forEach((g,k)=>{if(g.length!==4)throw Error(`Color at index ${k} is not a four-channel value.`);f[k*4]=g[0];f[k*4+1]=g[1];f[k*4+2]=g[2];f[k*4+3]=g[3]});e.activeTexture(e.TEXTURE2);\ne.bindTexture(e.TEXTURE_2D,a.j);e.texImage2D(e.TEXTURE_2D,0,e.RGBA,256,1,0,e.RGBA,e.UNSIGNED_BYTE,new Uint8Array(f))}}\nvar zi=class extends wi{H(){return\"\\n precision mediump float;\\n uniform sampler2D backgroundTexture;\\n uniform sampler2D maskTexture;\\n uniform sampler2D colorMappingTexture;\\n varying vec2 vTex;\\n void main() {\\n vec4 backgroundColor = texture2D(backgroundTexture, vTex);\\n float category = texture2D(maskTexture, vTex).r;\\n vec4 categoryColor = texture2D(colorMappingTexture, vec2(category, 0.0));\\n gl_FragColor = mix(backgroundColor, categoryColor, categoryColor.a);\\n }\\n \"}C(){const a=this.g;\na.activeTexture(a.TEXTURE1);this.B=ti(this,a,a.LINEAR);a.activeTexture(a.TEXTURE2);this.j=ti(this,a,a.NEAREST)}m(){super.m();const a=this.g;this.L=ni(a.getUniformLocation(this.h,\"backgroundTexture\"),\"Uniform location\");this.V=ni(a.getUniformLocation(this.h,\"colorMappingTexture\"),\"Uniform location\");this.K=ni(a.getUniformLocation(this.h,\"maskTexture\"),\"Uniform location\")}l(){super.l();const a=this.g;a.uniform1i(this.K,0);a.uniform1i(this.L,1);a.uniform1i(this.V,2)}close(){this.B&&this.g.deleteTexture(this.B);\nthis.j&&this.g.deleteTexture(this.j);super.close()}};var Ai=class extends wi{H(){return\"\\n precision mediump float;\\n uniform sampler2D maskTexture;\\n uniform sampler2D defaultTexture;\\n uniform sampler2D overlayTexture;\\n varying vec2 vTex;\\n void main() {\\n float confidence = texture2D(maskTexture, vTex).r;\\n vec4 defaultColor = texture2D(defaultTexture, vTex);\\n vec4 overlayColor = texture2D(overlayTexture, vTex);\\n // Apply the alpha from the overlay and merge in the default color\\n overlayColor = mix(defaultColor, overlayColor, overlayColor.a);\\n gl_FragColor = mix(defaultColor, overlayColor, confidence);\\n }\\n \"}C(){const a=\nthis.g;a.activeTexture(a.TEXTURE1);this.j=ti(this,a);a.activeTexture(a.TEXTURE2);this.B=ti(this,a)}m(){super.m();const a=this.g;this.K=ni(a.getUniformLocation(this.h,\"defaultTexture\"),\"Uniform location\");this.L=ni(a.getUniformLocation(this.h,\"overlayTexture\"),\"Uniform location\");this.I=ni(a.getUniformLocation(this.h,\"maskTexture\"),\"Uniform location\")}l(){super.l();const a=this.g;a.uniform1i(this.I,0);a.uniform1i(this.K,1);a.uniform1i(this.L,2)}close(){this.j&&this.g.deleteTexture(this.j);this.B&&\nthis.g.deleteTexture(this.B);super.close()}};function Bi(a,b){switch(b){case 0:return a.g.find(c=>c instanceof Uint8Array);case 1:return a.g.find(c=>c instanceof Float32Array);case 2:return a.g.find(c=>typeof WebGLTexture!==\"undefined\"&&c instanceof WebGLTexture);default:throw Error(`Type is not supported: ${b}`);}}function Ci(a){var b=Bi(a,0);b||(b=Di(a),b=new Uint8Array(b.map(c=>255*c)),a.g.push(b));return b}\nfunction Di(a){var b=Bi(a,1);if(!b){if(b=Bi(a,0))b=(new Float32Array(b)).map(d=>d/255);else{b=new Float32Array(a.width*a.height);const d=Ei(a);var c=Fi(a);const e=Gi(a);ui(c,d,e);if(\"iPad Simulator;iPhone Simulator;iPod Simulator;iPad;iPhone;iPod\".split(\";\").includes(navigator.platform)||navigator.userAgent.includes(\"Mac\")&&\"ontouchend\"in self.document){c=new Float32Array(a.width*a.height*4);d.readPixels(0,0,a.width,a.height,d.RGBA,d.FLOAT,c);for(let f=0,g=0;f{Hi(this);d.clearColor(0,0,0,0);d.clear(d.COLOR_BUFFER_BIT);d.drawArrays(d.TRIANGLE_FAN,0,4);Ji(this)});vi(e);Ji(this)}else throw Error(`Type is not supported: ${b}`);a.push(c)}return new V(a,\nthis.m,this.S(),this.canvas,this.l,this.width,this.height)}close(){this.j&&Ei(this).deleteTexture(Bi(this,2));Li=-1}},Ki;V.prototype.close=V.prototype.close;V.prototype.clone=V.prototype.clone;V.prototype.getAsWebGLTexture=V.prototype.N;V.prototype.getAsFloat32Array=V.prototype.ka;V.prototype.getAsUint8Array=V.prototype.la;V.prototype.hasWebGLTexture=V.prototype.S;V.prototype.hasFloat32Array=V.prototype.ma;V.prototype.hasUint8Array=V.prototype.Ja;var Li=250;export {V as MPMask};const Mi={color:\"white\",lineWidth:4,radius:6};function Ni(a){a=a||{};return{...Mi,fillColor:a.color,...a}}function Oi(a,b){return a instanceof Function?a(b):a}function Pi(a,b,c){return Math.max(Math.min(b,c),Math.min(Math.max(b,c),a))}function Qi(a){if(!a.l)throw Error(\"CPU rendering requested but CanvasRenderingContext2D not provided.\");return a.l}function Ri(a){if(!a.j)throw Error(\"GPU rendering requested but WebGL2RenderingContext not provided.\");return a.j}\nfunction Si(a){a.g||(a.g=new zi);return a.g}function Ti(a){a.h||(a.h=new Ai);return a.h}function Ui(a,b,c){if(b.S())c(b.N());else{const d=b.ma()?b.ka():b.la();a.m=a.m??new wi;const e=Ri(a);a=new V([d],b.m,!1,e.canvas,a.m,b.width,b.height);c(a.N());a.close()}}\nfunction Vi(a,b,c,d){const e=Si(a),f=Ri(a),g=Array.isArray(c)?new ImageData(new Uint8ClampedArray(c),1,1):c;si(e,f,!0,()=>{yi(e,b,g,d);f.clearColor(0,0,0,0);f.clear(f.COLOR_BUFFER_BIT);f.drawArrays(f.TRIANGLE_FAN,0,4);const k=e.g;k.activeTexture(k.TEXTURE0);k.bindTexture(k.TEXTURE_2D,null);k.activeTexture(k.TEXTURE1);k.bindTexture(k.TEXTURE_2D,null);k.activeTexture(k.TEXTURE2);k.bindTexture(k.TEXTURE_2D,null)})}\nfunction Wi(a,b,c,d){const e=Ri(a);Ui(a,b,f=>{Vi(a,f,c,d);f=Qi(a);f.drawImage(e.canvas,0,0,f.canvas.width,f.canvas.height)})}\nfunction Xi(a,b,c,d){const e=Ri(a),f=Ti(a),g=Array.isArray(c)?new ImageData(new Uint8ClampedArray(c),1,1):c,k=Array.isArray(d)?new ImageData(new Uint8ClampedArray(d),1,1):d;si(f,e,!0,()=>{var h=f.g;h.activeTexture(h.TEXTURE0);h.bindTexture(h.TEXTURE_2D,b);h.activeTexture(h.TEXTURE1);h.bindTexture(h.TEXTURE_2D,f.j);h.texImage2D(h.TEXTURE_2D,0,h.RGBA,h.RGBA,h.UNSIGNED_BYTE,g);h.activeTexture(h.TEXTURE2);h.bindTexture(h.TEXTURE_2D,f.B);h.texImage2D(h.TEXTURE_2D,0,h.RGBA,h.RGBA,h.UNSIGNED_BYTE,k);e.clearColor(0,\n0,0,0);e.clear(e.COLOR_BUFFER_BIT);e.drawArrays(e.TRIANGLE_FAN,0,4);e.bindTexture(e.TEXTURE_2D,null);h=f.g;h.activeTexture(h.TEXTURE0);h.bindTexture(h.TEXTURE_2D,null);h.activeTexture(h.TEXTURE1);h.bindTexture(h.TEXTURE_2D,null);h.activeTexture(h.TEXTURE2);h.bindTexture(h.TEXTURE_2D,null)})}function Yi(a,b,c,d){const e=Ri(a);Ui(a,b,f=>{Xi(a,f,c,d);f=Qi(a);f.drawImage(e.canvas,0,0,f.canvas.width,f.canvas.height)})}\nvar Zi=class{constructor(a,b){a instanceof CanvasRenderingContext2D||a instanceof OffscreenCanvasRenderingContext2D?(this.l=a,this.j=b):this.j=a}Ca(a,b){if(a){var c=Qi(this);b=Ni(b);c.save();var d=c.canvas,e=0;for(const f of a)c.fillStyle=Oi(b.fillColor,{index:e,from:f}),c.strokeStyle=Oi(b.color,{index:e,from:f}),c.lineWidth=Oi(b.lineWidth,{index:e,from:f}),a=new Path2D,a.arc(f.x*d.width,f.y*d.height,Oi(b.radius,{index:e,from:f}),0,2*Math.PI),c.fill(a),c.stroke(a),++e;c.restore()}}Ba(a,b,c){if(a&&\nb){var d=Qi(this);c=Ni(c);d.save();var e=d.canvas,f=0;for(const g of b){d.beginPath();b=a[g.start];const k=a[g.end];b&&k&&(d.strokeStyle=Oi(c.color,{index:f,from:b,to:k}),d.lineWidth=Oi(c.lineWidth,{index:f,from:b,to:k}),d.moveTo(b.x*e.width,b.y*e.height),d.lineTo(k.x*e.width,k.y*e.height));++f;d.stroke()}d.restore()}}ya(a,b){const c=Qi(this);b=Ni(b);c.save();c.beginPath();c.lineWidth=Oi(b.lineWidth,{});c.strokeStyle=Oi(b.color,{});c.fillStyle=Oi(b.fillColor,{});c.moveTo(a.originX,a.originY);c.lineTo(a.originX+\na.width,a.originY);c.lineTo(a.originX+a.width,a.originY+a.height);c.lineTo(a.originX,a.originY+a.height);c.lineTo(a.originX,a.originY);c.stroke();c.fill();c.restore()}za(a,b,c=[0,0,0,255]){this.l?Wi(this,a,c,b):Vi(this,a.N(),c,b)}Aa(a,b,c){this.l?Yi(this,a,b,c):Xi(this,a.N(),b,c)}close(){this.g?.close();this.g=void 0;this.h?.close();this.h=void 0;this.m?.close();this.m=void 0}};Zi.prototype.close=Zi.prototype.close;Zi.prototype.drawConfidenceMask=Zi.prototype.Aa;Zi.prototype.drawCategoryMask=Zi.prototype.za;\nZi.prototype.drawBoundingBox=Zi.prototype.ya;Zi.prototype.drawConnectors=Zi.prototype.Ba;Zi.prototype.drawLandmarks=Zi.prototype.Ca;Zi.lerp=function(a,b,c,d,e){return Pi(d*(1-(a-b)/(c-b))+e*(1-(c-a)/(c-b)),d,e)};Zi.clamp=Pi;export {Zi as DrawingUtils};function $i(a,b){switch(b){case 0:return a.g.find(c=>c instanceof ImageData);case 1:return a.g.find(c=>typeof ImageBitmap!==\"undefined\"&&c instanceof ImageBitmap);case 2:return a.g.find(c=>typeof WebGLTexture!==\"undefined\"&&c instanceof WebGLTexture);default:throw Error(`Type is not supported: ${b}`);}}\nfunction aj(a){var b=$i(a,0);if(!b){b=bj(a);const c=cj(a),d=new Uint8Array(a.width*a.height*4),e=dj(a);ui(c,b,e);b.readPixels(0,0,a.width,a.height,b.RGBA,b.UNSIGNED_BYTE,d);vi(c);b=new ImageData(new Uint8ClampedArray(d.buffer),a.width,a.height);a.g.push(b)}return b}function dj(a){let b=$i(a,2);if(!b){const c=bj(a);b=ej(a);const d=$i(a,1)||aj(a);c.texImage2D(c.TEXTURE_2D,0,c.RGBA,c.RGBA,c.UNSIGNED_BYTE,d);fj(a)}return b}\nfunction bj(a){if(!a.canvas)throw Error(\"Conversion to different image formats require that a canvas is passed when iniitializing the image.\");a.h||(a.h=ni(a.canvas.getContext(\"webgl2\"),\"You cannot use a canvas that is already bound to a different type of rendering context.\"));return a.h}function cj(a){a.l||(a.l=new wi);return a.l}\nfunction ej(a){const b=bj(a);b.viewport(0,0,a.width,a.height);b.activeTexture(b.TEXTURE0);let c=$i(a,2);c||(c=ti(cj(a),b),a.g.push(c),a.m=!0);b.bindTexture(b.TEXTURE_2D,c);return c}function fj(a){a.h.bindTexture(a.h.TEXTURE_2D,null)}\nfunction gj(a){const b=bj(a);return si(cj(a),b,!0,()=>hj(a,()=>{b.bindFramebuffer(b.FRAMEBUFFER,null);b.clearColor(0,0,0,0);b.clear(b.COLOR_BUFFER_BIT);b.drawArrays(b.TRIANGLE_FAN,0,4);if(!(a.canvas instanceof OffscreenCanvas))throw Error(\"Conversion to ImageBitmap requires that the MediaPipe Tasks is initialized with an OffscreenCanvas\");return a.canvas.transferToImageBitmap()}))}\nfunction hj(a,b){const c=a.canvas;if(c.width===a.width&&c.height===a.height)return b();const d=c.width,e=c.height;c.width=a.width;c.height=a.height;a=b();c.width=d;c.height=e;return a}\nvar W=class{constructor(a,b,c,d,e,f,g){this.g=a;this.j=b;this.m=c;this.canvas=d;this.l=e;this.width=f;this.height=g;if(this.j||this.m)--ij,ij===0&&console.error(\"You seem to be creating MPImage instances without invoking .close(). This leaks resources.\")}Ia(){return!!$i(this,0)}na(){return!!$i(this,1)}S(){return!!$i(this,2)}Ga(){return aj(this)}Fa(){var a=$i(this,1);a||(dj(this),ej(this),a=gj(this),fj(this),this.g.push(a),this.j=!0);return a}N(){return dj(this)}clone(){const a=[];for(const b of this.g){let c;\nif(b instanceof ImageData)c=new ImageData(b.data,this.width,this.height);else if(b instanceof WebGLTexture){const d=bj(this),e=cj(this);d.activeTexture(d.TEXTURE1);c=ti(e,d);d.bindTexture(d.TEXTURE_2D,c);d.texImage2D(d.TEXTURE_2D,0,d.RGBA,this.width,this.height,0,d.RGBA,d.UNSIGNED_BYTE,null);d.bindTexture(d.TEXTURE_2D,null);ui(e,d,c);si(e,d,!1,()=>{ej(this);d.clearColor(0,0,0,0);d.clear(d.COLOR_BUFFER_BIT);d.drawArrays(d.TRIANGLE_FAN,0,4);fj(this)});vi(e);fj(this)}else if(b instanceof ImageBitmap)dj(this),\nej(this),c=gj(this),fj(this);else throw Error(`Type is not supported: ${b}`);a.push(c)}return new W(a,this.na(),this.S(),this.canvas,this.l,this.width,this.height)}close(){this.j&&$i(this,1).close();this.m&&bj(this).deleteTexture($i(this,2));ij=-1}};W.prototype.close=W.prototype.close;W.prototype.clone=W.prototype.clone;W.prototype.getAsWebGLTexture=W.prototype.N;W.prototype.getAsImageBitmap=W.prototype.Fa;W.prototype.getAsImageData=W.prototype.Ga;W.prototype.hasWebGLTexture=W.prototype.S;\nW.prototype.hasImageBitmap=W.prototype.na;W.prototype.hasImageData=W.prototype.Ia;var ij=250;export {W as MPImage};function jj(...a){return a.map(([b,c])=>({start:b,end:c}))};const kj=function(a){return class extends a{Oa(){this.i._registerModelResourcesGraphService()}}}(function(a){return class extends a{get ia(){return this.i}ta(b,c,d){T(this,c,e=>{const [f,g]=Yh(this,b,e);this.ia._addBoundTextureAsImageToStream(e,f,g,d)})}W(b,c){$h(this,b,c);T(this,b,d=>{this.ia._attachImageListener(d)})}fa(b,c){ai(this,b,c);T(this,b,d=>{this.ia._attachImageVectorListener(d)})}}}(bi));var lj=class extends kj{};\nasync function X(a,b,c){const d=c.canvas??(Vh()?void 0:document.createElement(\"canvas\"));return ei(a,d,b,c)}\nfunction mj(a,b,c,d){if(a.V){const f=new xg;if(c?.regionOfInterest){if(!a.sa)throw Error(\"This task doesn't support region-of-interest.\");var e=c.regionOfInterest;if(e.left>=e.right||e.top>=e.bottom)throw Error(\"Expected RectF with left < right and top < bottom.\");if(e.left<0||e.top<0||e.right>1||e.bottom>1)throw Error(\"Expected RectF values to be in [0,1].\");A(f,1,(e.left+e.right)/2);A(f,2,(e.top+e.bottom)/2);A(f,4,e.right-e.left);A(f,3,e.bottom-e.top)}else A(f,1,.5),A(f,2,.5),A(f,4,1),A(f,3,1);\nif(c?.rotationDegrees){if(c?.rotationDegrees%90!==0)throw Error(\"Expected rotation to be a multiple of 90\\u00b0.\");A(f,5,-Math.PI*c.rotationDegrees/180);if(c?.rotationDegrees%180!==0){const [g,k]=Xh(b);c=z(f,3)*k/g;e=z(f,4)*g/k;A(f,4,c);A(f,3,e)}}a.g.addProtoToStream(f.g(),\"mediapipe.NormalizedRect\",a.V,d)}a.g.ta(b,a.da,d??performance.now());a.finishProcessing()}\nfunction nj(a,b,c){if(a.baseOptions?.g())throw Error(\"Task is not initialized with image mode. 'runningMode' must be set to 'IMAGE'.\");mj(a,b,c,a.B+1)}function oj(a,b,c,d){if(!a.baseOptions?.g())throw Error(\"Task is not initialized with video mode. 'runningMode' must be set to 'VIDEO'.\");mj(a,b,c,d)}\nfunction pj(a,b,c,d){var e=b.data;const f=b.width;b=b.height;const g=f*b;if((e instanceof Uint8Array||e instanceof Float32Array)&&e.length!==g)throw Error(`Unsupported channel count: ${e.length/g}`);a=new V([e],c,!1,a.g.i.canvas,a.R,f,b);return d?a.clone():a}\nvar qj=class extends mi{constructor(a,b,c,d){super(a);this.g=a;this.da=b;this.V=c;this.sa=d;this.R=new wi}l(a,b=!0){\"runningMode\"in a&&Kd(this.baseOptions,2,!!a.runningMode&&a.runningMode!==\"IMAGE\");if(a.canvas!==void 0&&this.g.i.canvas!==a.canvas)throw Error(\"You must create a new task to reset the canvas.\");return super.l(a,b)}close(){this.R.close();super.close()}};qj.prototype.close=qj.prototype.close;export {qj as VisionTaskRunner};var rj=class extends qj{constructor(a,b){super(new lj(a,b),\"image_in\",\"norm_rect_in\",!1);this.j={detections:[]};a=this.h=new Mg;b=new R;y(a,R,1,b);A(this.h,2,.5);A(this.h,3,.3)}get baseOptions(){return x(this.h,R,1)}set baseOptions(a){y(this.h,R,1,a)}o(a){\"minDetectionConfidence\"in a&&A(this.h,2,a.minDetectionConfidence??.5);\"minSuppressionThreshold\"in a&&A(this.h,3,a.minSuppressionThreshold??.3);return this.l(a)}D(a,b){this.j={detections:[]};nj(this,a,b);return this.j}F(a,b,c){this.j={detections:[]};\noj(this,a,c,b);return this.j}m(){var a=new gg;P(a,\"image_in\");P(a,\"norm_rect_in\");Q(a,\"detections\");const b=new Zf;pe(b,Og,this.h);const c=new O;bg(c,\"mediapipe.tasks.vision.face_detector.FaceDetectorGraph\");M(c,\"IMAGE:image_in\");M(c,\"NORM_RECT:norm_rect_in\");N(c,\"DETECTIONS:detections\");c.o(b);fg(a,c);this.g.attachProtoVectorListener(\"detections\",(d,e)=>{for(const f of d)d=qg(f),this.j.detections.push(Jh(d));U(this,e)});this.g.attachEmptyPacketListener(\"detections\",d=>{U(this,d)});a=a.g();this.setGraph(new Uint8Array(a),\n!0)}};rj.prototype.detectForVideo=rj.prototype.F;rj.prototype.detect=rj.prototype.D;rj.prototype.setOptions=rj.prototype.o;rj.createFromModelPath=async function(a,b){return X(rj,a,{baseOptions:{modelAssetPath:b}})};rj.createFromModelBuffer=function(a,b){return X(rj,a,{baseOptions:{modelAssetBuffer:b}})};rj.createFromOptions=function(a,b){return X(rj,a,b)};export {rj as FaceDetector};var sj=jj([61,146],[146,91],[91,181],[181,84],[84,17],[17,314],[314,405],[405,321],[321,375],[375,291],[61,185],[185,40],[40,39],[39,37],[37,0],[0,267],[267,269],[269,270],[270,409],[409,291],[78,95],[95,88],[88,178],[178,87],[87,14],[14,317],[317,402],[402,318],[318,324],[324,308],[78,191],[191,80],[80,81],[81,82],[82,13],[13,312],[312,311],[311,310],[310,415],[415,308]),tj=jj([263,249],[249,390],[390,373],[373,374],[374,380],[380,381],[381,382],[382,362],[263,466],[466,388],[388,387],[387,386],\n[386,385],[385,384],[384,398],[398,362]),uj=jj([276,283],[283,282],[282,295],[295,285],[300,293],[293,334],[334,296],[296,336]),vj=jj([474,475],[475,476],[476,477],[477,474]),wj=jj([33,7],[7,163],[163,144],[144,145],[145,153],[153,154],[154,155],[155,133],[33,246],[246,161],[161,160],[160,159],[159,158],[158,157],[157,173],[173,133]),xj=jj([46,53],[53,52],[52,65],[65,55],[70,63],[63,105],[105,66],[66,107]),yj=jj([469,470],[470,471],[471,472],[472,469]),zj=jj([10,338],[338,297],[297,332],[332,284],\n[284,251],[251,389],[389,356],[356,454],[454,323],[323,361],[361,288],[288,397],[397,365],[365,379],[379,378],[378,400],[400,377],[377,152],[152,148],[148,176],[176,149],[149,150],[150,136],[136,172],[172,58],[58,132],[132,93],[93,234],[234,127],[127,162],[162,21],[21,54],[54,103],[103,67],[67,109],[109,10]),Aj=[...sj,...tj,...uj,...wj,...xj,...zj],Bj=jj([127,34],[34,139],[139,127],[11,0],[0,37],[37,11],[232,231],[231,120],[120,232],[72,37],[37,39],[39,72],[128,121],[121,47],[47,128],[232,121],[121,\n128],[128,232],[104,69],[69,67],[67,104],[175,171],[171,148],[148,175],[118,50],[50,101],[101,118],[73,39],[39,40],[40,73],[9,151],[151,108],[108,9],[48,115],[115,131],[131,48],[194,204],[204,211],[211,194],[74,40],[40,185],[185,74],[80,42],[42,183],[183,80],[40,92],[92,186],[186,40],[230,229],[229,118],[118,230],[202,212],[212,214],[214,202],[83,18],[18,17],[17,83],[76,61],[61,146],[146,76],[160,29],[29,30],[30,160],[56,157],[157,173],[173,56],[106,204],[204,194],[194,106],[135,214],[214,192],[192,\n135],[203,165],[165,98],[98,203],[21,71],[71,68],[68,21],[51,45],[45,4],[4,51],[144,24],[24,23],[23,144],[77,146],[146,91],[91,77],[205,50],[50,187],[187,205],[201,200],[200,18],[18,201],[91,106],[106,182],[182,91],[90,91],[91,181],[181,90],[85,84],[84,17],[17,85],[206,203],[203,36],[36,206],[148,171],[171,140],[140,148],[92,40],[40,39],[39,92],[193,189],[189,244],[244,193],[159,158],[158,28],[28,159],[247,246],[246,161],[161,247],[236,3],[3,196],[196,236],[54,68],[68,104],[104,54],[193,168],[168,\n8],[8,193],[117,228],[228,31],[31,117],[189,193],[193,55],[55,189],[98,97],[97,99],[99,98],[126,47],[47,100],[100,126],[166,79],[79,218],[218,166],[155,154],[154,26],[26,155],[209,49],[49,131],[131,209],[135,136],[136,150],[150,135],[47,126],[126,217],[217,47],[223,52],[52,53],[53,223],[45,51],[51,134],[134,45],[211,170],[170,140],[140,211],[67,69],[69,108],[108,67],[43,106],[106,91],[91,43],[230,119],[119,120],[120,230],[226,130],[130,247],[247,226],[63,53],[53,52],[52,63],[238,20],[20,242],[242,\n238],[46,70],[70,156],[156,46],[78,62],[62,96],[96,78],[46,53],[53,63],[63,46],[143,34],[34,227],[227,143],[123,117],[117,111],[111,123],[44,125],[125,19],[19,44],[236,134],[134,51],[51,236],[216,206],[206,205],[205,216],[154,153],[153,22],[22,154],[39,37],[37,167],[167,39],[200,201],[201,208],[208,200],[36,142],[142,100],[100,36],[57,212],[212,202],[202,57],[20,60],[60,99],[99,20],[28,158],[158,157],[157,28],[35,226],[226,113],[113,35],[160,159],[159,27],[27,160],[204,202],[202,210],[210,204],[113,\n225],[225,46],[46,113],[43,202],[202,204],[204,43],[62,76],[76,77],[77,62],[137,123],[123,116],[116,137],[41,38],[38,72],[72,41],[203,129],[129,142],[142,203],[64,98],[98,240],[240,64],[49,102],[102,64],[64,49],[41,73],[73,74],[74,41],[212,216],[216,207],[207,212],[42,74],[74,184],[184,42],[169,170],[170,211],[211,169],[170,149],[149,176],[176,170],[105,66],[66,69],[69,105],[122,6],[6,168],[168,122],[123,147],[147,187],[187,123],[96,77],[77,90],[90,96],[65,55],[55,107],[107,65],[89,90],[90,180],[180,\n89],[101,100],[100,120],[120,101],[63,105],[105,104],[104,63],[93,137],[137,227],[227,93],[15,86],[86,85],[85,15],[129,102],[102,49],[49,129],[14,87],[87,86],[86,14],[55,8],[8,9],[9,55],[100,47],[47,121],[121,100],[145,23],[23,22],[22,145],[88,89],[89,179],[179,88],[6,122],[122,196],[196,6],[88,95],[95,96],[96,88],[138,172],[172,136],[136,138],[215,58],[58,172],[172,215],[115,48],[48,219],[219,115],[42,80],[80,81],[81,42],[195,3],[3,51],[51,195],[43,146],[146,61],[61,43],[171,175],[175,199],[199,\n171],[81,82],[82,38],[38,81],[53,46],[46,225],[225,53],[144,163],[163,110],[110,144],[52,65],[65,66],[66,52],[229,228],[228,117],[117,229],[34,127],[127,234],[234,34],[107,108],[108,69],[69,107],[109,108],[108,151],[151,109],[48,64],[64,235],[235,48],[62,78],[78,191],[191,62],[129,209],[209,126],[126,129],[111,35],[35,143],[143,111],[117,123],[123,50],[50,117],[222,65],[65,52],[52,222],[19,125],[125,141],[141,19],[221,55],[55,65],[65,221],[3,195],[195,197],[197,3],[25,7],[7,33],[33,25],[220,237],\n[237,44],[44,220],[70,71],[71,139],[139,70],[122,193],[193,245],[245,122],[247,130],[130,33],[33,247],[71,21],[21,162],[162,71],[170,169],[169,150],[150,170],[188,174],[174,196],[196,188],[216,186],[186,92],[92,216],[2,97],[97,167],[167,2],[141,125],[125,241],[241,141],[164,167],[167,37],[37,164],[72,38],[38,12],[12,72],[38,82],[82,13],[13,38],[63,68],[68,71],[71,63],[226,35],[35,111],[111,226],[101,50],[50,205],[205,101],[206,92],[92,165],[165,206],[209,198],[198,217],[217,209],[165,167],[167,97],\n[97,165],[220,115],[115,218],[218,220],[133,112],[112,243],[243,133],[239,238],[238,241],[241,239],[214,135],[135,169],[169,214],[190,173],[173,133],[133,190],[171,208],[208,32],[32,171],[125,44],[44,237],[237,125],[86,87],[87,178],[178,86],[85,86],[86,179],[179,85],[84,85],[85,180],[180,84],[83,84],[84,181],[181,83],[201,83],[83,182],[182,201],[137,93],[93,132],[132,137],[76,62],[62,183],[183,76],[61,76],[76,184],[184,61],[57,61],[61,185],[185,57],[212,57],[57,186],[186,212],[214,207],[207,187],\n[187,214],[34,143],[143,156],[156,34],[79,239],[239,237],[237,79],[123,137],[137,177],[177,123],[44,1],[1,4],[4,44],[201,194],[194,32],[32,201],[64,102],[102,129],[129,64],[213,215],[215,138],[138,213],[59,166],[166,219],[219,59],[242,99],[99,97],[97,242],[2,94],[94,141],[141,2],[75,59],[59,235],[235,75],[24,110],[110,228],[228,24],[25,130],[130,226],[226,25],[23,24],[24,229],[229,23],[22,23],[23,230],[230,22],[26,22],[22,231],[231,26],[112,26],[26,232],[232,112],[189,190],[190,243],[243,189],[221,\n56],[56,190],[190,221],[28,56],[56,221],[221,28],[27,28],[28,222],[222,27],[29,27],[27,223],[223,29],[30,29],[29,224],[224,30],[247,30],[30,225],[225,247],[238,79],[79,20],[20,238],[166,59],[59,75],[75,166],[60,75],[75,240],[240,60],[147,177],[177,215],[215,147],[20,79],[79,166],[166,20],[187,147],[147,213],[213,187],[112,233],[233,244],[244,112],[233,128],[128,245],[245,233],[128,114],[114,188],[188,128],[114,217],[217,174],[174,114],[131,115],[115,220],[220,131],[217,198],[198,236],[236,217],[198,\n131],[131,134],[134,198],[177,132],[132,58],[58,177],[143,35],[35,124],[124,143],[110,163],[163,7],[7,110],[228,110],[110,25],[25,228],[356,389],[389,368],[368,356],[11,302],[302,267],[267,11],[452,350],[350,349],[349,452],[302,303],[303,269],[269,302],[357,343],[343,277],[277,357],[452,453],[453,357],[357,452],[333,332],[332,297],[297,333],[175,152],[152,377],[377,175],[347,348],[348,330],[330,347],[303,304],[304,270],[270,303],[9,336],[336,337],[337,9],[278,279],[279,360],[360,278],[418,262],[262,\n431],[431,418],[304,408],[408,409],[409,304],[310,415],[415,407],[407,310],[270,409],[409,410],[410,270],[450,348],[348,347],[347,450],[422,430],[430,434],[434,422],[313,314],[314,17],[17,313],[306,307],[307,375],[375,306],[387,388],[388,260],[260,387],[286,414],[414,398],[398,286],[335,406],[406,418],[418,335],[364,367],[367,416],[416,364],[423,358],[358,327],[327,423],[251,284],[284,298],[298,251],[281,5],[5,4],[4,281],[373,374],[374,253],[253,373],[307,320],[320,321],[321,307],[425,427],[427,411],\n[411,425],[421,313],[313,18],[18,421],[321,405],[405,406],[406,321],[320,404],[404,405],[405,320],[315,16],[16,17],[17,315],[426,425],[425,266],[266,426],[377,400],[400,369],[369,377],[322,391],[391,269],[269,322],[417,465],[465,464],[464,417],[386,257],[257,258],[258,386],[466,260],[260,388],[388,466],[456,399],[399,419],[419,456],[284,332],[332,333],[333,284],[417,285],[285,8],[8,417],[346,340],[340,261],[261,346],[413,441],[441,285],[285,413],[327,460],[460,328],[328,327],[355,371],[371,329],[329,\n355],[392,439],[439,438],[438,392],[382,341],[341,256],[256,382],[429,420],[420,360],[360,429],[364,394],[394,379],[379,364],[277,343],[343,437],[437,277],[443,444],[444,283],[283,443],[275,440],[440,363],[363,275],[431,262],[262,369],[369,431],[297,338],[338,337],[337,297],[273,375],[375,321],[321,273],[450,451],[451,349],[349,450],[446,342],[342,467],[467,446],[293,334],[334,282],[282,293],[458,461],[461,462],[462,458],[276,353],[353,383],[383,276],[308,324],[324,325],[325,308],[276,300],[300,293],\n[293,276],[372,345],[345,447],[447,372],[352,345],[345,340],[340,352],[274,1],[1,19],[19,274],[456,248],[248,281],[281,456],[436,427],[427,425],[425,436],[381,256],[256,252],[252,381],[269,391],[391,393],[393,269],[200,199],[199,428],[428,200],[266,330],[330,329],[329,266],[287,273],[273,422],[422,287],[250,462],[462,328],[328,250],[258,286],[286,384],[384,258],[265,353],[353,342],[342,265],[387,259],[259,257],[257,387],[424,431],[431,430],[430,424],[342,353],[353,276],[276,342],[273,335],[335,424],\n[424,273],[292,325],[325,307],[307,292],[366,447],[447,345],[345,366],[271,303],[303,302],[302,271],[423,266],[266,371],[371,423],[294,455],[455,460],[460,294],[279,278],[278,294],[294,279],[271,272],[272,304],[304,271],[432,434],[434,427],[427,432],[272,407],[407,408],[408,272],[394,430],[430,431],[431,394],[395,369],[369,400],[400,395],[334,333],[333,299],[299,334],[351,417],[417,168],[168,351],[352,280],[280,411],[411,352],[325,319],[319,320],[320,325],[295,296],[296,336],[336,295],[319,403],[403,\n404],[404,319],[330,348],[348,349],[349,330],[293,298],[298,333],[333,293],[323,454],[454,447],[447,323],[15,16],[16,315],[315,15],[358,429],[429,279],[279,358],[14,15],[15,316],[316,14],[285,336],[336,9],[9,285],[329,349],[349,350],[350,329],[374,380],[380,252],[252,374],[318,402],[402,403],[403,318],[6,197],[197,419],[419,6],[318,319],[319,325],[325,318],[367,364],[364,365],[365,367],[435,367],[367,397],[397,435],[344,438],[438,439],[439,344],[272,271],[271,311],[311,272],[195,5],[5,281],[281,195],\n[273,287],[287,291],[291,273],[396,428],[428,199],[199,396],[311,271],[271,268],[268,311],[283,444],[444,445],[445,283],[373,254],[254,339],[339,373],[282,334],[334,296],[296,282],[449,347],[347,346],[346,449],[264,447],[447,454],[454,264],[336,296],[296,299],[299,336],[338,10],[10,151],[151,338],[278,439],[439,455],[455,278],[292,407],[407,415],[415,292],[358,371],[371,355],[355,358],[340,345],[345,372],[372,340],[346,347],[347,280],[280,346],[442,443],[443,282],[282,442],[19,94],[94,370],[370,19],\n[441,442],[442,295],[295,441],[248,419],[419,197],[197,248],[263,255],[255,359],[359,263],[440,275],[275,274],[274,440],[300,383],[383,368],[368,300],[351,412],[412,465],[465,351],[263,467],[467,466],[466,263],[301,368],[368,389],[389,301],[395,378],[378,379],[379,395],[412,351],[351,419],[419,412],[436,426],[426,322],[322,436],[2,164],[164,393],[393,2],[370,462],[462,461],[461,370],[164,0],[0,267],[267,164],[302,11],[11,12],[12,302],[268,12],[12,13],[13,268],[293,300],[300,301],[301,293],[446,261],\n[261,340],[340,446],[330,266],[266,425],[425,330],[426,423],[423,391],[391,426],[429,355],[355,437],[437,429],[391,327],[327,326],[326,391],[440,457],[457,438],[438,440],[341,382],[382,362],[362,341],[459,457],[457,461],[461,459],[434,430],[430,394],[394,434],[414,463],[463,362],[362,414],[396,369],[369,262],[262,396],[354,461],[461,457],[457,354],[316,403],[403,402],[402,316],[315,404],[404,403],[403,315],[314,405],[405,404],[404,314],[313,406],[406,405],[405,313],[421,418],[418,406],[406,421],[366,\n401],[401,361],[361,366],[306,408],[408,407],[407,306],[291,409],[409,408],[408,291],[287,410],[410,409],[409,287],[432,436],[436,410],[410,432],[434,416],[416,411],[411,434],[264,368],[368,383],[383,264],[309,438],[438,457],[457,309],[352,376],[376,401],[401,352],[274,275],[275,4],[4,274],[421,428],[428,262],[262,421],[294,327],[327,358],[358,294],[433,416],[416,367],[367,433],[289,455],[455,439],[439,289],[462,370],[370,326],[326,462],[2,326],[326,370],[370,2],[305,460],[460,455],[455,305],[254,\n449],[449,448],[448,254],[255,261],[261,446],[446,255],[253,450],[450,449],[449,253],[252,451],[451,450],[450,252],[256,452],[452,451],[451,256],[341,453],[453,452],[452,341],[413,464],[464,463],[463,413],[441,413],[413,414],[414,441],[258,442],[442,441],[441,258],[257,443],[443,442],[442,257],[259,444],[444,443],[443,259],[260,445],[445,444],[444,260],[467,342],[342,445],[445,467],[459,458],[458,250],[250,459],[289,392],[392,290],[290,289],[290,328],[328,460],[460,290],[376,433],[433,435],[435,376],\n[250,290],[290,392],[392,250],[411,416],[416,433],[433,411],[341,463],[463,464],[464,341],[453,464],[464,465],[465,453],[357,465],[465,412],[412,357],[343,412],[412,399],[399,343],[360,363],[363,440],[440,360],[437,399],[399,456],[456,437],[420,456],[456,363],[363,420],[401,435],[435,288],[288,401],[372,383],[383,353],[353,372],[339,255],[255,249],[249,339],[448,261],[261,255],[255,448],[133,243],[243,190],[190,133],[133,155],[155,112],[112,133],[33,246],[246,247],[247,33],[33,130],[130,25],[25,33],\n[398,384],[384,286],[286,398],[362,398],[398,414],[414,362],[362,463],[463,341],[341,362],[263,359],[359,467],[467,263],[263,249],[249,255],[255,263],[466,467],[467,260],[260,466],[75,60],[60,166],[166,75],[238,239],[239,79],[79,238],[162,127],[127,139],[139,162],[72,11],[11,37],[37,72],[121,232],[232,120],[120,121],[73,72],[72,39],[39,73],[114,128],[128,47],[47,114],[233,232],[232,128],[128,233],[103,104],[104,67],[67,103],[152,175],[175,148],[148,152],[119,118],[118,101],[101,119],[74,73],[73,40],\n[40,74],[107,9],[9,108],[108,107],[49,48],[48,131],[131,49],[32,194],[194,211],[211,32],[184,74],[74,185],[185,184],[191,80],[80,183],[183,191],[185,40],[40,186],[186,185],[119,230],[230,118],[118,119],[210,202],[202,214],[214,210],[84,83],[83,17],[17,84],[77,76],[76,146],[146,77],[161,160],[160,30],[30,161],[190,56],[56,173],[173,190],[182,106],[106,194],[194,182],[138,135],[135,192],[192,138],[129,203],[203,98],[98,129],[54,21],[21,68],[68,54],[5,51],[51,4],[4,5],[145,144],[144,23],[23,145],[90,\n77],[77,91],[91,90],[207,205],[205,187],[187,207],[83,201],[201,18],[18,83],[181,91],[91,182],[182,181],[180,90],[90,181],[181,180],[16,85],[85,17],[17,16],[205,206],[206,36],[36,205],[176,148],[148,140],[140,176],[165,92],[92,39],[39,165],[245,193],[193,244],[244,245],[27,159],[159,28],[28,27],[30,247],[247,161],[161,30],[174,236],[236,196],[196,174],[103,54],[54,104],[104,103],[55,193],[193,8],[8,55],[111,117],[117,31],[31,111],[221,189],[189,55],[55,221],[240,98],[98,99],[99,240],[142,126],[126,\n100],[100,142],[219,166],[166,218],[218,219],[112,155],[155,26],[26,112],[198,209],[209,131],[131,198],[169,135],[135,150],[150,169],[114,47],[47,217],[217,114],[224,223],[223,53],[53,224],[220,45],[45,134],[134,220],[32,211],[211,140],[140,32],[109,67],[67,108],[108,109],[146,43],[43,91],[91,146],[231,230],[230,120],[120,231],[113,226],[226,247],[247,113],[105,63],[63,52],[52,105],[241,238],[238,242],[242,241],[124,46],[46,156],[156,124],[95,78],[78,96],[96,95],[70,46],[46,63],[63,70],[116,143],\n[143,227],[227,116],[116,123],[123,111],[111,116],[1,44],[44,19],[19,1],[3,236],[236,51],[51,3],[207,216],[216,205],[205,207],[26,154],[154,22],[22,26],[165,39],[39,167],[167,165],[199,200],[200,208],[208,199],[101,36],[36,100],[100,101],[43,57],[57,202],[202,43],[242,20],[20,99],[99,242],[56,28],[28,157],[157,56],[124,35],[35,113],[113,124],[29,160],[160,27],[27,29],[211,204],[204,210],[210,211],[124,113],[113,46],[46,124],[106,43],[43,204],[204,106],[96,62],[62,77],[77,96],[227,137],[137,116],[116,\n227],[73,41],[41,72],[72,73],[36,203],[203,142],[142,36],[235,64],[64,240],[240,235],[48,49],[49,64],[64,48],[42,41],[41,74],[74,42],[214,212],[212,207],[207,214],[183,42],[42,184],[184,183],[210,169],[169,211],[211,210],[140,170],[170,176],[176,140],[104,105],[105,69],[69,104],[193,122],[122,168],[168,193],[50,123],[123,187],[187,50],[89,96],[96,90],[90,89],[66,65],[65,107],[107,66],[179,89],[89,180],[180,179],[119,101],[101,120],[120,119],[68,63],[63,104],[104,68],[234,93],[93,227],[227,234],[16,\n15],[15,85],[85,16],[209,129],[129,49],[49,209],[15,14],[14,86],[86,15],[107,55],[55,9],[9,107],[120,100],[100,121],[121,120],[153,145],[145,22],[22,153],[178,88],[88,179],[179,178],[197,6],[6,196],[196,197],[89,88],[88,96],[96,89],[135,138],[138,136],[136,135],[138,215],[215,172],[172,138],[218,115],[115,219],[219,218],[41,42],[42,81],[81,41],[5,195],[195,51],[51,5],[57,43],[43,61],[61,57],[208,171],[171,199],[199,208],[41,81],[81,38],[38,41],[224,53],[53,225],[225,224],[24,144],[144,110],[110,24],\n[105,52],[52,66],[66,105],[118,229],[229,117],[117,118],[227,34],[34,234],[234,227],[66,107],[107,69],[69,66],[10,109],[109,151],[151,10],[219,48],[48,235],[235,219],[183,62],[62,191],[191,183],[142,129],[129,126],[126,142],[116,111],[111,143],[143,116],[118,117],[117,50],[50,118],[223,222],[222,52],[52,223],[94,19],[19,141],[141,94],[222,221],[221,65],[65,222],[196,3],[3,197],[197,196],[45,220],[220,44],[44,45],[156,70],[70,139],[139,156],[188,122],[122,245],[245,188],[139,71],[71,162],[162,139],\n[149,170],[170,150],[150,149],[122,188],[188,196],[196,122],[206,216],[216,92],[92,206],[164,2],[2,167],[167,164],[242,141],[141,241],[241,242],[0,164],[164,37],[37,0],[11,72],[72,12],[12,11],[12,38],[38,13],[13,12],[70,63],[63,71],[71,70],[31,226],[226,111],[111,31],[36,101],[101,205],[205,36],[203,206],[206,165],[165,203],[126,209],[209,217],[217,126],[98,165],[165,97],[97,98],[237,220],[220,218],[218,237],[237,239],[239,241],[241,237],[210,214],[214,169],[169,210],[140,171],[171,32],[32,140],[241,\n125],[125,237],[237,241],[179,86],[86,178],[178,179],[180,85],[85,179],[179,180],[181,84],[84,180],[180,181],[182,83],[83,181],[181,182],[194,201],[201,182],[182,194],[177,137],[137,132],[132,177],[184,76],[76,183],[183,184],[185,61],[61,184],[184,185],[186,57],[57,185],[185,186],[216,212],[212,186],[186,216],[192,214],[214,187],[187,192],[139,34],[34,156],[156,139],[218,79],[79,237],[237,218],[147,123],[123,177],[177,147],[45,44],[44,4],[4,45],[208,201],[201,32],[32,208],[98,64],[64,129],[129,98],\n[192,213],[213,138],[138,192],[235,59],[59,219],[219,235],[141,242],[242,97],[97,141],[97,2],[2,141],[141,97],[240,75],[75,235],[235,240],[229,24],[24,228],[228,229],[31,25],[25,226],[226,31],[230,23],[23,229],[229,230],[231,22],[22,230],[230,231],[232,26],[26,231],[231,232],[233,112],[112,232],[232,233],[244,189],[189,243],[243,244],[189,221],[221,190],[190,189],[222,28],[28,221],[221,222],[223,27],[27,222],[222,223],[224,29],[29,223],[223,224],[225,30],[30,224],[224,225],[113,247],[247,225],[225,\n113],[99,60],[60,240],[240,99],[213,147],[147,215],[215,213],[60,20],[20,166],[166,60],[192,187],[187,213],[213,192],[243,112],[112,244],[244,243],[244,233],[233,245],[245,244],[245,128],[128,188],[188,245],[188,114],[114,174],[174,188],[134,131],[131,220],[220,134],[174,217],[217,236],[236,174],[236,198],[198,134],[134,236],[215,177],[177,58],[58,215],[156,143],[143,124],[124,156],[25,110],[110,7],[7,25],[31,228],[228,25],[25,31],[264,356],[356,368],[368,264],[0,11],[11,267],[267,0],[451,452],[452,\n349],[349,451],[267,302],[302,269],[269,267],[350,357],[357,277],[277,350],[350,452],[452,357],[357,350],[299,333],[333,297],[297,299],[396,175],[175,377],[377,396],[280,347],[347,330],[330,280],[269,303],[303,270],[270,269],[151,9],[9,337],[337,151],[344,278],[278,360],[360,344],[424,418],[418,431],[431,424],[270,304],[304,409],[409,270],[272,310],[310,407],[407,272],[322,270],[270,410],[410,322],[449,450],[450,347],[347,449],[432,422],[422,434],[434,432],[18,313],[313,17],[17,18],[291,306],[306,\n375],[375,291],[259,387],[387,260],[260,259],[424,335],[335,418],[418,424],[434,364],[364,416],[416,434],[391,423],[423,327],[327,391],[301,251],[251,298],[298,301],[275,281],[281,4],[4,275],[254,373],[373,253],[253,254],[375,307],[307,321],[321,375],[280,425],[425,411],[411,280],[200,421],[421,18],[18,200],[335,321],[321,406],[406,335],[321,320],[320,405],[405,321],[314,315],[315,17],[17,314],[423,426],[426,266],[266,423],[396,377],[377,369],[369,396],[270,322],[322,269],[269,270],[413,417],[417,\n464],[464,413],[385,386],[386,258],[258,385],[248,456],[456,419],[419,248],[298,284],[284,333],[333,298],[168,417],[417,8],[8,168],[448,346],[346,261],[261,448],[417,413],[413,285],[285,417],[326,327],[327,328],[328,326],[277,355],[355,329],[329,277],[309,392],[392,438],[438,309],[381,382],[382,256],[256,381],[279,429],[429,360],[360,279],[365,364],[364,379],[379,365],[355,277],[277,437],[437,355],[282,443],[443,283],[283,282],[281,275],[275,363],[363,281],[395,431],[431,369],[369,395],[299,297],\n[297,337],[337,299],[335,273],[273,321],[321,335],[348,450],[450,349],[349,348],[359,446],[446,467],[467,359],[283,293],[293,282],[282,283],[250,458],[458,462],[462,250],[300,276],[276,383],[383,300],[292,308],[308,325],[325,292],[283,276],[276,293],[293,283],[264,372],[372,447],[447,264],[346,352],[352,340],[340,346],[354,274],[274,19],[19,354],[363,456],[456,281],[281,363],[426,436],[436,425],[425,426],[380,381],[381,252],[252,380],[267,269],[269,393],[393,267],[421,200],[200,428],[428,421],[371,\n266],[266,329],[329,371],[432,287],[287,422],[422,432],[290,250],[250,328],[328,290],[385,258],[258,384],[384,385],[446,265],[265,342],[342,446],[386,387],[387,257],[257,386],[422,424],[424,430],[430,422],[445,342],[342,276],[276,445],[422,273],[273,424],[424,422],[306,292],[292,307],[307,306],[352,366],[366,345],[345,352],[268,271],[271,302],[302,268],[358,423],[423,371],[371,358],[327,294],[294,460],[460,327],[331,279],[279,294],[294,331],[303,271],[271,304],[304,303],[436,432],[432,427],[427,436],\n[304,272],[272,408],[408,304],[395,394],[394,431],[431,395],[378,395],[395,400],[400,378],[296,334],[334,299],[299,296],[6,351],[351,168],[168,6],[376,352],[352,411],[411,376],[307,325],[325,320],[320,307],[285,295],[295,336],[336,285],[320,319],[319,404],[404,320],[329,330],[330,349],[349,329],[334,293],[293,333],[333,334],[366,323],[323,447],[447,366],[316,15],[15,315],[315,316],[331,358],[358,279],[279,331],[317,14],[14,316],[316,317],[8,285],[285,9],[9,8],[277,329],[329,350],[350,277],[253,374],\n[374,252],[252,253],[319,318],[318,403],[403,319],[351,6],[6,419],[419,351],[324,318],[318,325],[325,324],[397,367],[367,365],[365,397],[288,435],[435,397],[397,288],[278,344],[344,439],[439,278],[310,272],[272,311],[311,310],[248,195],[195,281],[281,248],[375,273],[273,291],[291,375],[175,396],[396,199],[199,175],[312,311],[311,268],[268,312],[276,283],[283,445],[445,276],[390,373],[373,339],[339,390],[295,282],[282,296],[296,295],[448,449],[449,346],[346,448],[356,264],[264,454],[454,356],[337,\n336],[336,299],[299,337],[337,338],[338,151],[151,337],[294,278],[278,455],[455,294],[308,292],[292,415],[415,308],[429,358],[358,355],[355,429],[265,340],[340,372],[372,265],[352,346],[346,280],[280,352],[295,442],[442,282],[282,295],[354,19],[19,370],[370,354],[285,441],[441,295],[295,285],[195,248],[248,197],[197,195],[457,440],[440,274],[274,457],[301,300],[300,368],[368,301],[417,351],[351,465],[465,417],[251,301],[301,389],[389,251],[394,395],[395,379],[379,394],[399,412],[412,419],[419,399],\n[410,436],[436,322],[322,410],[326,2],[2,393],[393,326],[354,370],[370,461],[461,354],[393,164],[164,267],[267,393],[268,302],[302,12],[12,268],[312,268],[268,13],[13,312],[298,293],[293,301],[301,298],[265,446],[446,340],[340,265],[280,330],[330,425],[425,280],[322,426],[426,391],[391,322],[420,429],[429,437],[437,420],[393,391],[391,326],[326,393],[344,440],[440,438],[438,344],[458,459],[459,461],[461,458],[364,434],[434,394],[394,364],[428,396],[396,262],[262,428],[274,354],[354,457],[457,274],\n[317,316],[316,402],[402,317],[316,315],[315,403],[403,316],[315,314],[314,404],[404,315],[314,313],[313,405],[405,314],[313,421],[421,406],[406,313],[323,366],[366,361],[361,323],[292,306],[306,407],[407,292],[306,291],[291,408],[408,306],[291,287],[287,409],[409,291],[287,432],[432,410],[410,287],[427,434],[434,411],[411,427],[372,264],[264,383],[383,372],[459,309],[309,457],[457,459],[366,352],[352,401],[401,366],[1,274],[274,4],[4,1],[418,421],[421,262],[262,418],[331,294],[294,358],[358,331],\n[435,433],[433,367],[367,435],[392,289],[289,439],[439,392],[328,462],[462,326],[326,328],[94,2],[2,370],[370,94],[289,305],[305,455],[455,289],[339,254],[254,448],[448,339],[359,255],[255,446],[446,359],[254,253],[253,449],[449,254],[253,252],[252,450],[450,253],[252,256],[256,451],[451,252],[256,341],[341,452],[452,256],[414,413],[413,463],[463,414],[286,441],[441,414],[414,286],[286,258],[258,441],[441,286],[258,257],[257,442],[442,258],[257,259],[259,443],[443,257],[259,260],[260,444],[444,259],\n[260,467],[467,445],[445,260],[309,459],[459,250],[250,309],[305,289],[289,290],[290,305],[305,290],[290,460],[460,305],[401,376],[376,435],[435,401],[309,250],[250,392],[392,309],[376,411],[411,433],[433,376],[453,341],[341,464],[464,453],[357,453],[453,465],[465,357],[343,357],[357,412],[412,343],[437,343],[343,399],[399,437],[344,360],[360,440],[440,344],[420,437],[437,456],[456,420],[360,420],[420,363],[363,360],[361,401],[401,288],[288,361],[265,372],[372,353],[353,265],[390,339],[339,249],[249,\n390],[339,448],[448,255],[255,339]);function Cj(a){a.j={faceLandmarks:[],faceBlendshapes:[],facialTransformationMatrixes:[]}}\nvar Y=class extends qj{constructor(a,b){super(new lj(a,b),\"image_in\",\"norm_rect\",!1);this.j={faceLandmarks:[],faceBlendshapes:[],facialTransformationMatrixes:[]};this.outputFacialTransformationMatrixes=this.outputFaceBlendshapes=!1;a=this.h=new Ug;b=new R;y(a,R,1,b);this.v=new Tg;y(this.h,Tg,3,this.v);this.s=new Mg;y(this.h,Mg,2,this.s);Ld(this.s,4,1);A(this.s,2,.5);A(this.v,2,.5);A(this.h,4,.5)}get baseOptions(){return x(this.h,R,1)}set baseOptions(a){y(this.h,R,1,a)}o(a){\"numFaces\"in a&&Ld(this.s,\n4,a.numFaces??1);\"minFaceDetectionConfidence\"in a&&A(this.s,2,a.minFaceDetectionConfidence??.5);\"minTrackingConfidence\"in a&&A(this.h,4,a.minTrackingConfidence??.5);\"minFacePresenceConfidence\"in a&&A(this.v,2,a.minFacePresenceConfidence??.5);\"outputFaceBlendshapes\"in a&&(this.outputFaceBlendshapes=!!a.outputFaceBlendshapes);\"outputFacialTransformationMatrixes\"in a&&(this.outputFacialTransformationMatrixes=!!a.outputFacialTransformationMatrixes);return this.l(a)}D(a,b){Cj(this);nj(this,a,b);return this.j}F(a,\nb,c){Cj(this);oj(this,a,c,b);return this.j}m(){var a=new gg;P(a,\"image_in\");P(a,\"norm_rect\");Q(a,\"face_landmarks\");const b=new Zf;pe(b,Xg,this.h);const c=new O;bg(c,\"mediapipe.tasks.vision.face_landmarker.FaceLandmarkerGraph\");M(c,\"IMAGE:image_in\");M(c,\"NORM_RECT:norm_rect\");N(c,\"NORM_LANDMARKS:face_landmarks\");c.o(b);fg(a,c);this.g.attachProtoVectorListener(\"face_landmarks\",(d,e)=>{for(const f of d)d=ug(f),this.j.faceLandmarks.push(Lh(d));U(this,e)});this.g.attachEmptyPacketListener(\"face_landmarks\",\nd=>{U(this,d)});this.outputFaceBlendshapes&&(Q(a,\"blendshapes\"),N(c,\"BLENDSHAPES:blendshapes\"),this.g.attachProtoVectorListener(\"blendshapes\",(d,e)=>{if(this.outputFaceBlendshapes)for(const f of d)d=mg(f),this.j.faceBlendshapes.push(Hh(d.g()??[]));U(this,e)}),this.g.attachEmptyPacketListener(\"blendshapes\",d=>{U(this,d)}));this.outputFacialTransformationMatrixes&&(Q(a,\"face_geometry\"),N(c,\"FACE_GEOMETRY:face_geometry\"),this.g.attachProtoVectorListener(\"face_geometry\",(d,e)=>{if(this.outputFacialTransformationMatrixes)for(const f of d)(d=\nx(Rg(f),vg,2))&&this.j.facialTransformationMatrixes.push({rows:Hd(Id(d,1),0)??0,columns:Hd(Id(d,2),0)??0,data:md(d,3,Sb,ld()).slice()??[]});U(this,e)}),this.g.attachEmptyPacketListener(\"face_geometry\",d=>{U(this,d)}));a=a.g();this.setGraph(new Uint8Array(a),!0)}};Y.prototype.detectForVideo=Y.prototype.F;Y.prototype.detect=Y.prototype.D;Y.prototype.setOptions=Y.prototype.o;Y.createFromModelPath=function(a,b){return X(Y,a,{baseOptions:{modelAssetPath:b}})};\nY.createFromModelBuffer=function(a,b){return X(Y,a,{baseOptions:{modelAssetBuffer:b}})};Y.createFromOptions=function(a,b){return X(Y,a,b)};Y.FACE_LANDMARKS_LIPS=sj;Y.FACE_LANDMARKS_LEFT_EYE=tj;\nY.FACE_LANDMARKS_LEFT_EYEBROW=uj;Y.FACE_LANDMARKS_LEFT_IRIS=vj;Y.FACE_LANDMARKS_RIGHT_EYE=wj;\nY.FACE_LANDMARKS_RIGHT_EYEBROW=xj;Y.FACE_LANDMARKS_RIGHT_IRIS=yj;\nY.FACE_LANDMARKS_FACE_OVAL=zj;Y.FACE_LANDMARKS_CONTOURS=Aj;\nY.FACE_LANDMARKS_TESSELATION=Bj;export {Y as FaceLandmarker};var Dj=class extends qj{constructor(a,b){super(new lj(a,b),\"image_in\",\"norm_rect\",!0);a=this.j=new Yg;b=new R;y(a,R,1,b)}get baseOptions(){return x(this.j,R,1)}set baseOptions(a){y(this.j,R,1,a)}o(a){return super.l(a)}Ra(a,b,c){const d=typeof b!==\"function\"?b:{};this.h=typeof b===\"function\"?b:c;nj(this,a,d??{});if(!this.h)return this.s}m(){var a=new gg;P(a,\"image_in\");P(a,\"norm_rect\");Q(a,\"stylized_image\");const b=new Zf;pe(b,Zg,this.j);const c=new O;bg(c,\"mediapipe.tasks.vision.face_stylizer.FaceStylizerGraph\");\nM(c,\"IMAGE:image_in\");M(c,\"NORM_RECT:norm_rect\");N(c,\"STYLIZED_IMAGE:stylized_image\");c.o(b);fg(a,c);this.g.W(\"stylized_image\",(d,e)=>{var f=!this.h;var g=d.data,k=d.width;d=d.height;const h=k*d;if(g instanceof Uint8Array)if(g.length===h*3){const l=new Uint8ClampedArray(h*4);for(let u=0;u{this.s=null;this.h&&this.h(null);U(this,d)});a=a.g();this.setGraph(new Uint8Array(a),!0)}};Dj.prototype.stylize=Dj.prototype.Ra;Dj.prototype.setOptions=Dj.prototype.o;Dj.createFromModelPath=function(a,b){return X(Dj,a,{baseOptions:{modelAssetPath:b}})};\nDj.createFromModelBuffer=function(a,b){return X(Dj,a,{baseOptions:{modelAssetBuffer:b}})};Dj.createFromOptions=function(a,b){return X(Dj,a,b)};export {Dj as FaceStylizer};var Ej=jj([0,1],[1,2],[2,3],[3,4],[0,5],[5,6],[6,7],[7,8],[5,9],[9,10],[10,11],[11,12],[9,13],[13,14],[14,15],[15,16],[13,17],[0,17],[17,18],[18,19],[19,20]);function Fj(a){a.gestures=[];a.landmarks=[];a.worldLandmarks=[];a.handedness=[]}function Gj(a){return a.gestures.length===0?{gestures:[],landmarks:[],worldLandmarks:[],handedness:[],handednesses:[]}:{gestures:a.gestures,landmarks:a.landmarks,worldLandmarks:a.worldLandmarks,handedness:a.handedness,handednesses:a.handedness}}\nfunction Hj(a,b=!0){const c=[];for(const e of a){var d=mg(e);a=[];for(const f of d.g())d=b&&Id(f,1)!=null?Hd(Id(f,1),0):-1,a.push({score:z(f,2)??0,index:d,categoryName:Jd(f,3)??\"\",displayName:Jd(f,4)??\"\"});c.push(a)}return c}\nvar Ij=class extends qj{constructor(a,b){super(new lj(a,b),\"image_in\",\"norm_rect\",!1);this.gestures=[];this.landmarks=[];this.worldLandmarks=[];this.handedness=[];a=this.j=new gh;b=new R;y(a,R,1,b);this.s=new fh;y(this.j,fh,2,this.s);this.C=new eh;y(this.s,eh,3,this.C);this.v=new dh;y(this.s,dh,2,this.v);this.h=new ch;y(this.j,ch,3,this.h);A(this.v,2,.5);A(this.s,4,.5);A(this.C,2,.5)}get baseOptions(){return x(this.j,R,1)}set baseOptions(a){y(this.j,R,1,a)}o(a){Ld(this.v,3,a.numHands??1);\"minHandDetectionConfidence\"in\na&&A(this.v,2,a.minHandDetectionConfidence??.5);\"minTrackingConfidence\"in a&&A(this.s,4,a.minTrackingConfidence??.5);\"minHandPresenceConfidence\"in a&&A(this.C,2,a.minHandPresenceConfidence??.5);if(a.cannedGesturesClassifierOptions){var b=new $g,c=b,d=Gh(a.cannedGesturesClassifierOptions,x(this.h,$g,3)?.h());y(c,Eg,2,d);y(this.h,$g,3,b)}else a.cannedGesturesClassifierOptions===void 0&&x(this.h,$g,3)?.g();a.customGesturesClassifierOptions?(c=b=new $g,d=Gh(a.customGesturesClassifierOptions,x(this.h,\n$g,4)?.h()),y(c,Eg,2,d),y(this.h,$g,4,b)):a.customGesturesClassifierOptions===void 0&&x(this.h,$g,4)?.g();return this.l(a)}Ma(a,b){Fj(this);nj(this,a,b);return Gj(this)}Na(a,b,c){Fj(this);oj(this,a,c,b);return Gj(this)}m(){var a=new gg;P(a,\"image_in\");P(a,\"norm_rect\");Q(a,\"hand_gestures\");Q(a,\"hand_landmarks\");Q(a,\"world_hand_landmarks\");Q(a,\"handedness\");const b=new Zf;pe(b,nh,this.j);const c=new O;bg(c,\"mediapipe.tasks.vision.gesture_recognizer.GestureRecognizerGraph\");M(c,\"IMAGE:image_in\");M(c,\n\"NORM_RECT:norm_rect\");N(c,\"HAND_GESTURES:hand_gestures\");N(c,\"LANDMARKS:hand_landmarks\");N(c,\"WORLD_LANDMARKS:world_hand_landmarks\");N(c,\"HANDEDNESS:handedness\");c.o(b);fg(a,c);this.g.attachProtoVectorListener(\"hand_landmarks\",(d,e)=>{for(const f of d){d=ug(f);const g=[];for(const k of Ed(d,tg,1))g.push({x:z(k,1)??0,y:z(k,2)??0,z:z(k,3)??0,visibility:z(k,4)??0});this.landmarks.push(g)}U(this,e)});this.g.attachEmptyPacketListener(\"hand_landmarks\",d=>{U(this,d)});this.g.attachProtoVectorListener(\"world_hand_landmarks\",\n(d,e)=>{for(const f of d){d=sg(f);const g=[];for(const k of Ed(d,rg,1))g.push({x:z(k,1)??0,y:z(k,2)??0,z:z(k,3)??0,visibility:z(k,4)??0});this.worldLandmarks.push(g)}U(this,e)});this.g.attachEmptyPacketListener(\"world_hand_landmarks\",d=>{U(this,d)});this.g.attachProtoVectorListener(\"hand_gestures\",(d,e)=>{this.gestures.push(...Hj(d,!1));U(this,e)});this.g.attachEmptyPacketListener(\"hand_gestures\",d=>{U(this,d)});this.g.attachProtoVectorListener(\"handedness\",(d,e)=>{this.handedness.push(...Hj(d));\nU(this,e)});this.g.attachEmptyPacketListener(\"handedness\",d=>{U(this,d)});a=a.g();this.setGraph(new Uint8Array(a),!0)}};Ij.prototype.recognizeForVideo=Ij.prototype.Na;Ij.prototype.recognize=Ij.prototype.Ma;Ij.prototype.setOptions=Ij.prototype.o;Ij.createFromModelPath=function(a,b){return X(Ij,a,{baseOptions:{modelAssetPath:b}})};Ij.createFromModelBuffer=function(a,b){return X(Ij,a,{baseOptions:{modelAssetBuffer:b}})};Ij.createFromOptions=function(a,b){return X(Ij,a,b)};Ij.HAND_CONNECTIONS=Ej;\nexport {Ij as GestureRecognizer};function Jj(a){return{landmarks:a.landmarks,worldLandmarks:a.worldLandmarks,handednesses:a.handedness,handedness:a.handedness}}\nvar Kj=class extends qj{constructor(a,b){super(new lj(a,b),\"image_in\",\"norm_rect\",!1);this.landmarks=[];this.worldLandmarks=[];this.handedness=[];a=this.h=new fh;b=new R;y(a,R,1,b);this.s=new eh;y(this.h,eh,3,this.s);this.j=new dh;y(this.h,dh,2,this.j);Ld(this.j,3,1);A(this.j,2,.5);A(this.s,2,.5);A(this.h,4,.5)}get baseOptions(){return x(this.h,R,1)}set baseOptions(a){y(this.h,R,1,a)}o(a){\"numHands\"in a&&Ld(this.j,3,a.numHands??1);\"minHandDetectionConfidence\"in a&&A(this.j,2,a.minHandDetectionConfidence??\n.5);\"minTrackingConfidence\"in a&&A(this.h,4,a.minTrackingConfidence??.5);\"minHandPresenceConfidence\"in a&&A(this.s,2,a.minHandPresenceConfidence??.5);return this.l(a)}D(a,b){this.landmarks=[];this.worldLandmarks=[];this.handedness=[];nj(this,a,b);return Jj(this)}F(a,b,c){this.landmarks=[];this.worldLandmarks=[];this.handedness=[];oj(this,a,c,b);return Jj(this)}m(){var a=new gg;P(a,\"image_in\");P(a,\"norm_rect\");Q(a,\"hand_landmarks\");Q(a,\"world_hand_landmarks\");Q(a,\"handedness\");const b=new Zf;pe(b,\nmh,this.h);const c=new O;bg(c,\"mediapipe.tasks.vision.hand_landmarker.HandLandmarkerGraph\");M(c,\"IMAGE:image_in\");M(c,\"NORM_RECT:norm_rect\");N(c,\"LANDMARKS:hand_landmarks\");N(c,\"WORLD_LANDMARKS:world_hand_landmarks\");N(c,\"HANDEDNESS:handedness\");c.o(b);fg(a,c);this.g.attachProtoVectorListener(\"hand_landmarks\",(d,e)=>{for(const f of d)d=ug(f),this.landmarks.push(Lh(d));U(this,e)});this.g.attachEmptyPacketListener(\"hand_landmarks\",d=>{U(this,d)});this.g.attachProtoVectorListener(\"world_hand_landmarks\",\n(d,e)=>{for(const f of d)d=sg(f),this.worldLandmarks.push(Mh(d));U(this,e)});this.g.attachEmptyPacketListener(\"world_hand_landmarks\",d=>{U(this,d)});this.g.attachProtoVectorListener(\"handedness\",(d,e)=>{var f=this.handedness,g=f.push;const k=[];for(const h of d){d=mg(h);const l=[];for(const u of d.g())l.push({score:z(u,2)??0,index:Hd(Id(u,1),0)??-1,categoryName:Jd(u,3)??\"\",displayName:Jd(u,4)??\"\"});k.push(l)}g.call(f,...k);U(this,e)});this.g.attachEmptyPacketListener(\"handedness\",d=>{U(this,d)});\na=a.g();this.setGraph(new Uint8Array(a),!0)}};Kj.prototype.detectForVideo=Kj.prototype.F;Kj.prototype.detect=Kj.prototype.D;Kj.prototype.setOptions=Kj.prototype.o;Kj.createFromModelPath=function(a,b){return X(Kj,a,{baseOptions:{modelAssetPath:b}})};Kj.createFromModelBuffer=function(a,b){return X(Kj,a,{baseOptions:{modelAssetBuffer:b}})};Kj.createFromOptions=function(a,b){return X(Kj,a,b)};Kj.HAND_CONNECTIONS=Ej;\nexport {Kj as HandLandmarker};var Lj=jj([0,1],[1,2],[2,3],[3,7],[0,4],[4,5],[5,6],[6,8],[9,10],[11,12],[11,13],[13,15],[15,17],[15,19],[15,21],[17,19],[12,14],[14,16],[16,18],[16,20],[16,22],[18,20],[11,23],[12,24],[23,24],[23,25],[24,26],[25,27],[26,28],[27,29],[28,30],[29,31],[30,32],[27,31],[28,32]);function Mj(a){a.h={faceLandmarks:[],faceBlendshapes:[],poseLandmarks:[],poseWorldLandmarks:[],poseSegmentationMasks:[],leftHandLandmarks:[],leftHandWorldLandmarks:[],rightHandLandmarks:[],rightHandWorldLandmarks:[]}}function Nj(a){try{if(a.C)a.C(a.h);else return a.h}finally{ki(a)}}function Oj(a,b){a=ug(a);b.push(Lh(a))}\nvar Z=class extends qj{constructor(a,b){super(new lj(a,b),\"input_frames_image\",null,!1);this.h={faceLandmarks:[],faceBlendshapes:[],poseLandmarks:[],poseWorldLandmarks:[],poseSegmentationMasks:[],leftHandLandmarks:[],leftHandWorldLandmarks:[],rightHandLandmarks:[],rightHandWorldLandmarks:[]};this.outputPoseSegmentationMasks=this.outputFaceBlendshapes=!1;a=this.j=new rh;b=new R;y(a,R,1,b);this.K=new eh;y(this.j,eh,2,this.K);this.ca=new oh;y(this.j,oh,3,this.ca);this.s=new Mg;y(this.j,Mg,4,this.s);\nthis.I=new Tg;y(this.j,Tg,5,this.I);this.v=new ph;y(this.j,ph,6,this.v);this.L=new qh;y(this.j,qh,7,this.L);A(this.s,2,.5);A(this.s,3,.3);A(this.I,2,.5);A(this.v,2,.5);A(this.v,3,.3);A(this.L,2,.5);A(this.K,2,.5)}get baseOptions(){return x(this.j,R,1)}set baseOptions(a){y(this.j,R,1,a)}o(a){\"minFaceDetectionConfidence\"in a&&A(this.s,2,a.minFaceDetectionConfidence??.5);\"minFaceSuppressionThreshold\"in a&&A(this.s,3,a.minFaceSuppressionThreshold??.3);\"minFacePresenceConfidence\"in a&&A(this.I,2,a.minFacePresenceConfidence??\n.5);\"outputFaceBlendshapes\"in a&&(this.outputFaceBlendshapes=!!a.outputFaceBlendshapes);\"minPoseDetectionConfidence\"in a&&A(this.v,2,a.minPoseDetectionConfidence??.5);\"minPoseSuppressionThreshold\"in a&&A(this.v,3,a.minPoseSuppressionThreshold??.3);\"minPosePresenceConfidence\"in a&&A(this.L,2,a.minPosePresenceConfidence??.5);\"outputPoseSegmentationMasks\"in a&&(this.outputPoseSegmentationMasks=!!a.outputPoseSegmentationMasks);\"minHandLandmarksConfidence\"in a&&A(this.K,2,a.minHandLandmarksConfidence??\n.5);return this.l(a)}D(a,b,c){const d=typeof b!==\"function\"?b:{};this.C=typeof b===\"function\"?b:c;Mj(this);nj(this,a,d);return Nj(this)}F(a,b,c,d){const e=typeof c!==\"function\"?c:{};this.C=typeof c===\"function\"?c:d;Mj(this);oj(this,a,e,b);return Nj(this)}m(){var a=new gg;P(a,\"input_frames_image\");Q(a,\"pose_landmarks\");Q(a,\"pose_world_landmarks\");Q(a,\"face_landmarks\");Q(a,\"left_hand_landmarks\");Q(a,\"left_hand_world_landmarks\");Q(a,\"right_hand_landmarks\");Q(a,\"right_hand_world_landmarks\");const b=new Zf,\nc=new Lf;vd(c,1,fc(\"type.googleapis.com/mediapipe.tasks.vision.holistic_landmarker.proto.HolisticLandmarkerGraphOptions\"),\"\");Kf(c,this.j.g());const d=new O;bg(d,\"mediapipe.tasks.vision.holistic_landmarker.HolisticLandmarkerGraph\");Gd(d,8,Lf,c);M(d,\"IMAGE:input_frames_image\");N(d,\"POSE_LANDMARKS:pose_landmarks\");N(d,\"POSE_WORLD_LANDMARKS:pose_world_landmarks\");N(d,\"FACE_LANDMARKS:face_landmarks\");N(d,\"LEFT_HAND_LANDMARKS:left_hand_landmarks\");N(d,\"LEFT_HAND_WORLD_LANDMARKS:left_hand_world_landmarks\");\nN(d,\"RIGHT_HAND_LANDMARKS:right_hand_landmarks\");N(d,\"RIGHT_HAND_WORLD_LANDMARKS:right_hand_world_landmarks\");d.o(b);fg(a,d);ii(this,a);this.g.attachProtoListener(\"pose_landmarks\",(e,f)=>{Oj(e,this.h.poseLandmarks);U(this,f)});this.g.attachEmptyPacketListener(\"pose_landmarks\",e=>{U(this,e)});this.g.attachProtoListener(\"pose_world_landmarks\",(e,f)=>{var g=this.h.poseWorldLandmarks;e=sg(e);g.push(Mh(e));U(this,f)});this.g.attachEmptyPacketListener(\"pose_world_landmarks\",e=>{U(this,e)});this.outputPoseSegmentationMasks&&\n(N(d,\"POSE_SEGMENTATION_MASK:pose_segmentation_mask\"),ji(this,\"pose_segmentation_mask\"),this.g.W(\"pose_segmentation_mask\",(e,f)=>{this.h.poseSegmentationMasks=[pj(this,e,!0,!this.C)];U(this,f)}),this.g.attachEmptyPacketListener(\"pose_segmentation_mask\",e=>{this.h.poseSegmentationMasks=[];U(this,e)}));this.g.attachProtoListener(\"face_landmarks\",(e,f)=>{Oj(e,this.h.faceLandmarks);U(this,f)});this.g.attachEmptyPacketListener(\"face_landmarks\",e=>{U(this,e)});this.outputFaceBlendshapes&&(Q(a,\"extra_blendshapes\"),\nN(d,\"FACE_BLENDSHAPES:extra_blendshapes\"),this.g.attachProtoListener(\"extra_blendshapes\",(e,f)=>{var g=this.h.faceBlendshapes;this.outputFaceBlendshapes&&(e=mg(e),g.push(Hh(e.g()??[])));U(this,f)}),this.g.attachEmptyPacketListener(\"extra_blendshapes\",e=>{U(this,e)}));this.g.attachProtoListener(\"left_hand_landmarks\",(e,f)=>{Oj(e,this.h.leftHandLandmarks);U(this,f)});this.g.attachEmptyPacketListener(\"left_hand_landmarks\",e=>{U(this,e)});this.g.attachProtoListener(\"left_hand_world_landmarks\",(e,f)=>\n{var g=this.h.leftHandWorldLandmarks;e=sg(e);g.push(Mh(e));U(this,f)});this.g.attachEmptyPacketListener(\"left_hand_world_landmarks\",e=>{U(this,e)});this.g.attachProtoListener(\"right_hand_landmarks\",(e,f)=>{Oj(e,this.h.rightHandLandmarks);U(this,f)});this.g.attachEmptyPacketListener(\"right_hand_landmarks\",e=>{U(this,e)});this.g.attachProtoListener(\"right_hand_world_landmarks\",(e,f)=>{var g=this.h.rightHandWorldLandmarks;e=sg(e);g.push(Mh(e));U(this,f)});this.g.attachEmptyPacketListener(\"right_hand_world_landmarks\",\ne=>{U(this,e)});a=a.g();this.setGraph(new Uint8Array(a),!0)}};Z.prototype.detectForVideo=Z.prototype.F;Z.prototype.detect=Z.prototype.D;Z.prototype.setOptions=Z.prototype.o;Z.createFromModelPath=function(a,b){return X(Z,a,{baseOptions:{modelAssetPath:b}})};Z.createFromModelBuffer=function(a,b){return X(Z,a,{baseOptions:{modelAssetBuffer:b}})};Z.createFromOptions=function(a,b){return X(Z,a,b)};Z.HAND_CONNECTIONS=Ej;\nZ.POSE_CONNECTIONS=Lj;Z.FACE_LANDMARKS_LIPS=sj;\nZ.FACE_LANDMARKS_LEFT_EYE=tj;Z.FACE_LANDMARKS_LEFT_EYEBROW=uj;\nZ.FACE_LANDMARKS_LEFT_IRIS=vj;Z.FACE_LANDMARKS_RIGHT_EYE=wj;\nZ.FACE_LANDMARKS_RIGHT_EYEBROW=xj;Z.FACE_LANDMARKS_RIGHT_IRIS=yj;\nZ.FACE_LANDMARKS_FACE_OVAL=zj;Z.FACE_LANDMARKS_CONTOURS=Aj;\nZ.FACE_LANDMARKS_TESSELATION=Bj;export {Z as HolisticLandmarker};var Pj=class extends qj{constructor(a,b){super(new lj(a,b),\"input_image\",\"norm_rect\",!0);this.j={classifications:[]};a=this.h=new uh;b=new R;y(a,R,1,b)}get baseOptions(){return x(this.h,R,1)}set baseOptions(a){y(this.h,R,1,a)}o(a){var b=this.h,c=Gh(a,x(this.h,Eg,2));y(b,Eg,2,c);return this.l(a)}wa(a,b){this.j={classifications:[]};nj(this,a,b);return this.j}xa(a,b,c){this.j={classifications:[]};oj(this,a,c,b);return this.j}m(){var a=new gg;P(a,\"input_image\");P(a,\"norm_rect\");Q(a,\"classifications\");\nconst b=new Zf;pe(b,vh,this.h);const c=new O;bg(c,\"mediapipe.tasks.vision.image_classifier.ImageClassifierGraph\");M(c,\"IMAGE:input_image\");M(c,\"NORM_RECT:norm_rect\");N(c,\"CLASSIFICATIONS:classifications\");c.o(b);fg(a,c);this.g.attachProtoListener(\"classifications\",(d,e)=>{this.j=Ih(zg(d));U(this,e)});this.g.attachEmptyPacketListener(\"classifications\",d=>{U(this,d)});a=a.g();this.setGraph(new Uint8Array(a),!0)}};Pj.prototype.classifyForVideo=Pj.prototype.xa;Pj.prototype.classify=Pj.prototype.wa;\nPj.prototype.setOptions=Pj.prototype.o;Pj.createFromModelPath=function(a,b){return X(Pj,a,{baseOptions:{modelAssetPath:b}})};Pj.createFromModelBuffer=function(a,b){return X(Pj,a,{baseOptions:{modelAssetBuffer:b}})};Pj.createFromOptions=function(a,b){return X(Pj,a,b)};export {Pj as ImageClassifier};var Qj=class extends qj{constructor(a,b){super(new lj(a,b),\"image_in\",\"norm_rect\",!0);this.h=new wh;this.embeddings={embeddings:[]};a=this.h;b=new R;y(a,R,1,b)}get baseOptions(){return x(this.h,R,1)}set baseOptions(a){y(this.h,R,1,a)}o(a){var b=this.h,c=x(this.h,Gg,2);c=c?c.clone():new Gg;a.l2Normalize!==void 0?Kd(c,1,a.l2Normalize):\"l2Normalize\"in a&&v(c,1);a.quantize!==void 0?Kd(c,2,a.quantize):\"quantize\"in a&&v(c,2);y(b,Gg,2,c);return this.l(a)}Da(a,b){nj(this,a,b);return this.embeddings}Ea(a,\nb,c){oj(this,a,c,b);return this.embeddings}m(){var a=new gg;P(a,\"image_in\");P(a,\"norm_rect\");Q(a,\"embeddings_out\");const b=new Zf;pe(b,xh,this.h);const c=new O;bg(c,\"mediapipe.tasks.vision.image_embedder.ImageEmbedderGraph\");M(c,\"IMAGE:image_in\");M(c,\"NORM_RECT:norm_rect\");N(c,\"EMBEDDINGS:embeddings_out\");c.o(b);fg(a,c);this.g.attachProtoListener(\"embeddings_out\",(d,e)=>{d=Dg(d);this.embeddings=Kh(d);U(this,e)});this.g.attachEmptyPacketListener(\"embeddings_out\",d=>{U(this,d)});a=a.g();this.setGraph(new Uint8Array(a),\n!0)}};Qj.cosineSimilarity=function(a,b){if(a.floatEmbedding&&b.floatEmbedding)a=Oh(a.floatEmbedding,b.floatEmbedding);else if(a.quantizedEmbedding&&b.quantizedEmbedding)a=Oh(Nh(a.quantizedEmbedding),Nh(b.quantizedEmbedding));else throw Error(\"Cannot compute cosine similarity between quantized and float embeddings.\");return a};Qj.prototype.embedForVideo=Qj.prototype.Ea;Qj.prototype.embed=Qj.prototype.Da;Qj.prototype.setOptions=Qj.prototype.o;Qj.createFromModelPath=function(a,b){return X(Qj,a,{baseOptions:{modelAssetPath:b}})};\nQj.createFromModelBuffer=function(a,b){return X(Qj,a,{baseOptions:{modelAssetBuffer:b}})};Qj.createFromOptions=function(a,b){return X(Qj,a,b)};export {Qj as ImageEmbedder};var Rj=class{constructor(a,b,c){this.confidenceMasks=a;this.categoryMask=b;this.qualityScores=c}close(){this.confidenceMasks?.forEach(a=>{a.close()});this.categoryMask?.close()}};Rj.prototype.close=Rj.prototype.close;export {Rj as ImageSegmenterResult};function Sj(a){const b=Ed(a.ga(),O,1).filter(c=>Jd(c,1).includes(\"mediapipe.tasks.TensorsToSegmentationCalculator\"));a.s=[];if(b.length>1)throw Error(\"The graph has more than one mediapipe.tasks.TensorsToSegmentationCalculator.\");b.length===1&&(x(b[0],Zf,7)?.l()?.g()??new Map).forEach((c,d)=>{a.s[Number(d)]=Jd(c,1)})}function Tj(a){a.categoryMask=void 0;a.confidenceMasks=void 0;a.qualityScores=void 0}\nfunction Uj(a){try{const b=new Rj(a.confidenceMasks,a.categoryMask,a.qualityScores);if(a.j)a.j(b);else return b}finally{ki(a)}}\nvar Vj=class extends qj{constructor(a,b){super(new lj(a,b),\"image_in\",\"norm_rect\",!1);this.s=[];this.outputCategoryMask=!1;this.outputConfidenceMasks=!0;this.h=new Ah;this.v=new yh;y(this.h,yh,3,this.v);a=this.h;b=new R;y(a,R,1,b)}get baseOptions(){return x(this.h,R,1)}set baseOptions(a){y(this.h,R,1,a)}o(a){a.displayNamesLocale!==void 0?v(this.h,2,fc(a.displayNamesLocale)):\"displayNamesLocale\"in a&&v(this.h,2);\"outputCategoryMask\"in a&&(this.outputCategoryMask=a.outputCategoryMask??!1);\"outputConfidenceMasks\"in\na&&(this.outputConfidenceMasks=a.outputConfidenceMasks??!0);return super.l(a)}J(){Sj(this)}ha(a,b,c){const d=typeof b!==\"function\"?b:{};this.j=typeof b===\"function\"?b:c;Tj(this);nj(this,a,d);return Uj(this)}Pa(a,b,c,d){const e=typeof c!==\"function\"?c:{};this.j=typeof c===\"function\"?c:d;Tj(this);oj(this,a,e,b);return Uj(this)}Ha(){return this.s}m(){var a=new gg;P(a,\"image_in\");P(a,\"norm_rect\");const b=new Zf;pe(b,Bh,this.h);const c=new O;bg(c,\"mediapipe.tasks.vision.image_segmenter.ImageSegmenterGraph\");\nM(c,\"IMAGE:image_in\");M(c,\"NORM_RECT:norm_rect\");c.o(b);fg(a,c);ii(this,a);this.outputConfidenceMasks&&(Q(a,\"confidence_masks\"),N(c,\"CONFIDENCE_MASKS:confidence_masks\"),ji(this,\"confidence_masks\"),this.g.fa(\"confidence_masks\",(d,e)=>{this.confidenceMasks=d.map(f=>pj(this,f,!0,!this.j));U(this,e)}),this.g.attachEmptyPacketListener(\"confidence_masks\",d=>{this.confidenceMasks=[];U(this,d)}));this.outputCategoryMask&&(Q(a,\"category_mask\"),N(c,\"CATEGORY_MASK:category_mask\"),ji(this,\"category_mask\"),this.g.W(\"category_mask\",\n(d,e)=>{this.categoryMask=pj(this,d,!1,!this.j);U(this,e)}),this.g.attachEmptyPacketListener(\"category_mask\",d=>{this.categoryMask=void 0;U(this,d)}));Q(a,\"quality_scores\");N(c,\"QUALITY_SCORES:quality_scores\");this.g.attachFloatVectorListener(\"quality_scores\",(d,e)=>{this.qualityScores=d;U(this,e)});this.g.attachEmptyPacketListener(\"quality_scores\",d=>{this.categoryMask=void 0;U(this,d)});a=a.g();this.setGraph(new Uint8Array(a),!0)}};Vj.prototype.getLabels=Vj.prototype.Ha;\nVj.prototype.segmentForVideo=Vj.prototype.Pa;Vj.prototype.segment=Vj.prototype.ha;Vj.prototype.setOptions=Vj.prototype.o;Vj.createFromModelPath=function(a,b){return X(Vj,a,{baseOptions:{modelAssetPath:b}})};Vj.createFromModelBuffer=function(a,b){return X(Vj,a,{baseOptions:{modelAssetBuffer:b}})};Vj.createFromOptions=function(a,b){return X(Vj,a,b)};export {Vj as ImageSegmenter};var Wj=class{constructor(a,b,c){this.confidenceMasks=a;this.categoryMask=b;this.qualityScores=c}close(){this.confidenceMasks?.forEach(a=>{a.close()});this.categoryMask?.close()}};Wj.prototype.close=Wj.prototype.close;export {Wj as InteractiveSegmenterResult};var Xj=class extends B{constructor(a){super(a)}};var Yj=[0,D,-2];var Zj=[0,tf,-3,F,tf,-1];var ak=[0,Zj];var bk=[0,Zj,D,-1];var ck=class extends B{constructor(a){super(a)}};var dk=[0,tf,-1,F];var ek=class extends B{constructor(){super()}};var fk=class extends B{constructor(a){super(a)}},gk=[1,2,3,4,5,6,7,8,9,10,14,15];var hk=class extends B{constructor(){super()}};hk.prototype.g=Jf([0,I,[0,gk,J,Zj,J,[0,Zj,Yj],J,ak,J,[0,ak,Yj],J,dk,J,[0,tf,-3,F,Ff],J,[0,tf,-3,F],J,[0,H,tf,-2,F,D,F,-1,2,tf,Yj],J,bk,J,[0,bk,Yj],tf,Yj,H,J,[0,tf,-3,F,Yj,-1],J,[0,I,dk]],H,[0,H,D,-1,F]]);var ik=class extends qj{constructor(a,b){super(new lj(a,b),\"image_in\",\"norm_rect_in\",!1);this.outputCategoryMask=!1;this.outputConfidenceMasks=!0;this.h=new Ah;this.s=new yh;y(this.h,yh,3,this.s);a=this.h;b=new R;y(a,R,1,b)}get baseOptions(){return x(this.h,R,1)}set baseOptions(a){y(this.h,R,1,a)}o(a){\"outputCategoryMask\"in a&&(this.outputCategoryMask=a.outputCategoryMask??!1);\"outputConfidenceMasks\"in a&&(this.outputConfidenceMasks=a.outputConfidenceMasks??!0);return super.l(a)}ha(a,b,c,d){const e=\ntypeof c!==\"function\"?c:{};this.j=typeof c===\"function\"?c:d;this.qualityScores=this.categoryMask=this.confidenceMasks=void 0;c=this.B+1;d=new hk;const f=new fk;var g=new Xj;Ld(g,1,255);y(f,Xj,12,g);if(b.keypoint&&b.scribble)throw Error(\"Cannot provide both keypoint and scribble.\");if(b.keypoint){var k=new ck;Kd(k,3,!0);A(k,1,b.keypoint.x);A(k,2,b.keypoint.y);Fd(f,5,gk,k)}else if(b.scribble){g=new ek;for(k of b.scribble)b=new ck,Kd(b,3,!0),A(b,1,k.x),A(b,2,k.y),Gd(g,1,ck,b);Fd(f,15,gk,g)}else throw Error(\"Must provide either a keypoint or a scribble.\");\nGd(d,1,fk,f);this.g.addProtoToStream(d.g(),\"drishti.RenderData\",\"roi_in\",c);nj(this,a,e);a:{try{const l=new Wj(this.confidenceMasks,this.categoryMask,this.qualityScores);if(this.j)this.j(l);else{var h=l;break a}}finally{ki(this)}h=void 0}return h}m(){var a=new gg;P(a,\"image_in\");P(a,\"roi_in\");P(a,\"norm_rect_in\");const b=new Zf;pe(b,Bh,this.h);const c=new O;bg(c,\"mediapipe.tasks.vision.interactive_segmenter.InteractiveSegmenterGraph\");M(c,\"IMAGE:image_in\");M(c,\"ROI:roi_in\");M(c,\"NORM_RECT:norm_rect_in\");\nc.o(b);fg(a,c);ii(this,a);this.outputConfidenceMasks&&(Q(a,\"confidence_masks\"),N(c,\"CONFIDENCE_MASKS:confidence_masks\"),ji(this,\"confidence_masks\"),this.g.fa(\"confidence_masks\",(d,e)=>{this.confidenceMasks=d.map(f=>pj(this,f,!0,!this.j));U(this,e)}),this.g.attachEmptyPacketListener(\"confidence_masks\",d=>{this.confidenceMasks=[];U(this,d)}));this.outputCategoryMask&&(Q(a,\"category_mask\"),N(c,\"CATEGORY_MASK:category_mask\"),ji(this,\"category_mask\"),this.g.W(\"category_mask\",(d,e)=>{this.categoryMask=\npj(this,d,!1,!this.j);U(this,e)}),this.g.attachEmptyPacketListener(\"category_mask\",d=>{this.categoryMask=void 0;U(this,d)}));Q(a,\"quality_scores\");N(c,\"QUALITY_SCORES:quality_scores\");this.g.attachFloatVectorListener(\"quality_scores\",(d,e)=>{this.qualityScores=d;U(this,e)});this.g.attachEmptyPacketListener(\"quality_scores\",d=>{this.categoryMask=void 0;U(this,d)});a=a.g();this.setGraph(new Uint8Array(a),!0)}};ik.prototype.segment=ik.prototype.ha;ik.prototype.setOptions=ik.prototype.o;\nik.createFromModelPath=function(a,b){return X(ik,a,{baseOptions:{modelAssetPath:b}})};ik.createFromModelBuffer=function(a,b){return X(ik,a,{baseOptions:{modelAssetBuffer:b}})};ik.createFromOptions=function(a,b){return X(ik,a,b)};export {ik as InteractiveSegmenter};var jk=class extends qj{constructor(a,b){super(new lj(a,b),\"input_frame_gpu\",\"norm_rect\",!1);this.j={detections:[]};a=this.h=new Ch;b=new R;y(a,R,1,b)}get baseOptions(){return x(this.h,R,1)}set baseOptions(a){y(this.h,R,1,a)}o(a){a.displayNamesLocale!==void 0?v(this.h,2,fc(a.displayNamesLocale)):\"displayNamesLocale\"in a&&v(this.h,2);a.maxResults!==void 0?Ld(this.h,3,a.maxResults):\"maxResults\"in a&&v(this.h,3);a.scoreThreshold!==void 0?A(this.h,4,a.scoreThreshold):\"scoreThreshold\"in a&&v(this.h,4);\na.categoryAllowlist!==void 0?Md(this.h,5,a.categoryAllowlist):\"categoryAllowlist\"in a&&v(this.h,5);a.categoryDenylist!==void 0?Md(this.h,6,a.categoryDenylist):\"categoryDenylist\"in a&&v(this.h,6);return this.l(a)}D(a,b){this.j={detections:[]};nj(this,a,b);return this.j}F(a,b,c){this.j={detections:[]};oj(this,a,c,b);return this.j}m(){var a=new gg;P(a,\"input_frame_gpu\");P(a,\"norm_rect\");Q(a,\"detections\");const b=new Zf;pe(b,Dh,this.h);const c=new O;bg(c,\"mediapipe.tasks.vision.ObjectDetectorGraph\");\nM(c,\"IMAGE:input_frame_gpu\");M(c,\"NORM_RECT:norm_rect\");N(c,\"DETECTIONS:detections\");c.o(b);fg(a,c);this.g.attachProtoVectorListener(\"detections\",(d,e)=>{for(const f of d)d=qg(f),this.j.detections.push(Jh(d));U(this,e)});this.g.attachEmptyPacketListener(\"detections\",d=>{U(this,d)});a=a.g();this.setGraph(new Uint8Array(a),!0)}};jk.prototype.detectForVideo=jk.prototype.F;jk.prototype.detect=jk.prototype.D;jk.prototype.setOptions=jk.prototype.o;\njk.createFromModelPath=async function(a,b){return X(jk,a,{baseOptions:{modelAssetPath:b}})};jk.createFromModelBuffer=function(a,b){return X(jk,a,{baseOptions:{modelAssetBuffer:b}})};jk.createFromOptions=function(a,b){return X(jk,a,b)};export {jk as ObjectDetector};var kk=class{constructor(a,b,c){this.landmarks=a;this.worldLandmarks=b;this.segmentationMasks=c}close(){this.segmentationMasks?.forEach(a=>{a.close()})}};kk.prototype.close=kk.prototype.close;function lk(a){a.landmarks=[];a.worldLandmarks=[];a.segmentationMasks=void 0}function mk(a){try{const b=new kk(a.landmarks,a.worldLandmarks,a.segmentationMasks);if(a.s)a.s(b);else return b}finally{ki(a)}}\nvar nk=class extends qj{constructor(a,b){super(new lj(a,b),\"image_in\",\"norm_rect\",!1);this.landmarks=[];this.worldLandmarks=[];this.outputSegmentationMasks=!1;a=this.h=new Eh;b=new R;y(a,R,1,b);this.v=new qh;y(this.h,qh,3,this.v);this.j=new ph;y(this.h,ph,2,this.j);Ld(this.j,4,1);A(this.j,2,.5);A(this.v,2,.5);A(this.h,4,.5)}get baseOptions(){return x(this.h,R,1)}set baseOptions(a){y(this.h,R,1,a)}o(a){\"numPoses\"in a&&Ld(this.j,4,a.numPoses??1);\"minPoseDetectionConfidence\"in a&&A(this.j,2,a.minPoseDetectionConfidence??\n.5);\"minTrackingConfidence\"in a&&A(this.h,4,a.minTrackingConfidence??.5);\"minPosePresenceConfidence\"in a&&A(this.v,2,a.minPosePresenceConfidence??.5);\"outputSegmentationMasks\"in a&&(this.outputSegmentationMasks=a.outputSegmentationMasks??!1);return this.l(a)}D(a,b,c){const d=typeof b!==\"function\"?b:{};this.s=typeof b===\"function\"?b:c;lk(this);nj(this,a,d);return mk(this)}F(a,b,c,d){const e=typeof c!==\"function\"?c:{};this.s=typeof c===\"function\"?c:d;lk(this);oj(this,a,e,b);return mk(this)}m(){var a=\nnew gg;P(a,\"image_in\");P(a,\"norm_rect\");Q(a,\"normalized_landmarks\");Q(a,\"world_landmarks\");Q(a,\"segmentation_masks\");const b=new Zf;pe(b,Fh,this.h);const c=new O;bg(c,\"mediapipe.tasks.vision.pose_landmarker.PoseLandmarkerGraph\");M(c,\"IMAGE:image_in\");M(c,\"NORM_RECT:norm_rect\");N(c,\"NORM_LANDMARKS:normalized_landmarks\");N(c,\"WORLD_LANDMARKS:world_landmarks\");c.o(b);fg(a,c);ii(this,a);this.g.attachProtoVectorListener(\"normalized_landmarks\",(d,e)=>{this.landmarks=[];for(const f of d)d=ug(f),this.landmarks.push(Lh(d));\nU(this,e)});this.g.attachEmptyPacketListener(\"normalized_landmarks\",d=>{this.landmarks=[];U(this,d)});this.g.attachProtoVectorListener(\"world_landmarks\",(d,e)=>{this.worldLandmarks=[];for(const f of d)d=sg(f),this.worldLandmarks.push(Mh(d));U(this,e)});this.g.attachEmptyPacketListener(\"world_landmarks\",d=>{this.worldLandmarks=[];U(this,d)});this.outputSegmentationMasks&&(N(c,\"SEGMENTATION_MASK:segmentation_masks\"),ji(this,\"segmentation_masks\"),this.g.fa(\"segmentation_masks\",(d,e)=>{this.segmentationMasks=\nd.map(f=>pj(this,f,!0,!this.s));U(this,e)}),this.g.attachEmptyPacketListener(\"segmentation_masks\",d=>{this.segmentationMasks=[];U(this,d)}));a=a.g();this.setGraph(new Uint8Array(a),!0)}};nk.prototype.detectForVideo=nk.prototype.F;nk.prototype.detect=nk.prototype.D;nk.prototype.setOptions=nk.prototype.o;nk.createFromModelPath=function(a,b){return X(nk,a,{baseOptions:{modelAssetPath:b}})};nk.createFromModelBuffer=function(a,b){return X(nk,a,{baseOptions:{modelAssetBuffer:b}})};\nnk.createFromOptions=function(a,b){return X(nk,a,b)};nk.POSE_CONNECTIONS=Lj;export {nk as PoseLandmarker};\n"],"names":["aa","self","ba","a","b","c","d","e","length","ca","Error","da","String","fromCharCode","apply","ea","fa","ha","TextDecoder","ia","ja","TextEncoder","ka","encode","Uint8Array","charCodeAt","f","subarray","pa","ma","na","oa","qa","navigator","ra","brands","some","brand","indexOf","sa","userAgent","ta","ua","va","userAgentData","wa","xa","ya","Aa","Math","floor","h","l","charAt","u","test","Ca","g","k","Ba","split","concat","Da","Ea","btoa","Fa","Array","join","Ga","Ha","_","Ia","Ja","replace","atob","Ka","La","Ma","Na","Oa","Pa","Qa","constructor","this","Ra","__closure__error__context__984382","severity","Sa","Ta","setTimeout","la","Ua","Va","BigInt","Wa","prototype","slice","call","Xa","Symbol","Ya","Za","$a","ab","bb","cb","db","G","Object","defineProperties","value","configurable","writable","enumerable","eb","n","p","q","fb","gb","hb","ob","ib","jb","kb","lb","isArray","mb","nb","pb","qb","freeze","rb","m","next","done","iterator","sb","tb","ub","vb","wb","xb","yb","zb","Ab","Gb","Bb","Cb","Db","Eb","Fb","Number","MIN_SAFE_INTEGER","toString","MAX_SAFE_INTEGER","Hb","Ib","r","t","Jb","Kb","Lb","Mb","DataView","ArrayBuffer","setFloat32","getUint32","Nb","Ob","Pb","Qb","Rb","trunc","Sb","Tb","Ub","Vb","isFinite","Wb","Xb","Yb","substring","$b","isSafeInteger","ac","bc","asIntN","dc","asUintN","Zb","ec","fc","gc","hc","Y","ic","trim","jc","kc","Proxy","lc","mc","nc","get","random","tc","isConcatSpreadable","oc","set","sc","rc","qc","vc","Bc","Cc","Dc","WeakMap","uc","min","wc","xc","yc","isInteger","isNaN","Ac","has","delete","Fc","Ic","max","Jc","Kc","Map","super","Lc","size","clear","entries","keys","values","forEach","Mc","setPrototypeOf","Nc","Oc","M","Sc","U","T","Pc","Qc","Z","push","Rc","from","Tc","Uc","Vc","Yc","Zc","$c","ad","toJSON","Wc","bd","cd","dd","Xc","ed","fd","gd","hd","v","w","id","jd","kd","ld","md","nd","od","E","za","pd","qd","rd","sd","vd","wd","xd","yd","zd","defineProperty","Ad","Bd","Cd","x","Dd","Gc","Sf","Tf","Hc","Yd","Zd","Uf","Vf","Ed","y","Fd","Gd","Hd","Id","z","Jd","Kd","Ld","A","Md","isFrozen","Nd","Od","Pd","Qd","Rd","buffer","O","byteOffset","byteLength","Sd","Td","Ud","Vd","Wd","Xd","$d","NaN","Infinity","pow","ae","be","j","ce","de","fe","ge","he","ie","je","fatal","decode","ke","le","ne","oe","pe","B","qe","re","defaultValue","clone","se","ue","te","ve","xe","we","ye","ze","Ae","Be","De","Ee","Fe","end","Ge","pop","He","Ie","Ke","Le","Me","Ne","Oe","Pe","Qe","X","P","Re","Se","Te","Ue","Ec","Ve","We","Xe","Ye","Ze","$e","af","bf","cf","df","ef","ff","gf","hf","jf","kf","lf","mf","cc","nf","of","pf","qf","rf","sf","I","tf","setFloat64","C","uf","vf","wf","xf","yf","D","zf","Af","F","Bf","Cf","H","J","Df","Ef","Ff","parseInt","Gf","Hf","If","o","Jf","Lf","Mf","Nf","Of","Pf","Qf","Rf","Wf","Xf","Yf","Zf","K","L","$f","bg","N","cg","dg","eg","fg","Q","gg","ag","hg","ig","jg","kg","lg","mg","ng","og","pg","qg","rg","sg","tg","ug","vg","wg","xg","yg","zg","Ag","Bg","Cg","Dg","Eg","Fg","Gg","Hg","Ig","Jg","Kg","R","Lg","S","Mg","Ng","Og","Pg","Qg","Rg","Sg","Tg","Ug","Vg","Wg","Xg","Yg","Zg","$g","ah","bh","ch","dh","eh","fh","gh","hh","ih","jh","kh","lh","mh","nh","oh","ph","qh","rh","sh","th","uh","vh","wh","xh","yh","ud","zh","td","Ah","Bh","Ch","Dh","Eh","Fh","Gh","displayNamesLocale","maxResults","scoreThreshold","categoryAllowlist","categoryDenylist","Hh","categories","map","index","score","categoryName","displayName","headIndex","headName","Jh","keypoints","boundingBox","originX","originY","width","height","angle","label","Lh","visibility","Mh","Nh","Oh","sqrt","Ph","Qh","async","Rh","WebAssembly","instantiate","Sh","wasmLoaderPath","wasmBinaryPath","Th","Vh","OffscreenCanvas","includes","Uh","match","Wh","importScripts","document","createElement","src","crossOrigin","Promise","addEventListener","body","appendChild","Xh","videoWidth","videoHeight","naturalWidth","naturalHeight","displayWidth","displayHeight","console","error","i","stringToNewUTF8","_free","Yh","canvas","_bindTextureToStream","_bindTextureToCanvas","getContext","gpuOriginForWebTexturesIsBottomLeft","pixelStorei","UNPACK_FLIP_Y_WEBGL","texImage2D","TEXTURE_2D","RGBA","UNSIGNED_BYTE","Zh","Uint32Array","_malloc","HEAPU32","$h","simpleListeners","ai","forVisionTasks","forTextTasks","forGenAiExperimentalTasks","forGenAiTasks","forAudioTasks","isSimdSupported","di","ModuleFactory","Module","locateFile","mainScriptUrlOrBlob","ci","assetLoaderPath","endsWith","assetBinaryPath","gi","baseOptions","hi","message","ii","ji","ki","addBoolToStream","mi","setAutoRenderToScreen","modelAssetBuffer","modelAssetPath","delegate","fi","fetch","then","ok","arrayBuffer","status","FS_unlink","FS_createDataFile","read","li","resolve","ga","setGraph","attachErrorListener","finishProcessing","close","closeGraph","ni","execScript","shift","oi","bind","bindVertexArray","deleteVertexArray","deleteBuffer","pi","createShader","shaderSource","compileShader","getShaderParameter","COMPILE_STATUS","getShaderInfoLog","attachShader","qi","createVertexArray","createBuffer","bindBuffer","ARRAY_BUFFER","enableVertexAttribArray","vertexAttribPointer","FLOAT","bufferData","Float32Array","STATIC_DRAW","ri","si","s","useProgram","ti","createTexture","bindTexture","texParameteri","TEXTURE_WRAP_S","CLAMP_TO_EDGE","TEXTURE_WRAP_T","TEXTURE_MIN_FILTER","LINEAR","TEXTURE_MAG_FILTER","ui","createFramebuffer","bindFramebuffer","FRAMEBUFFER","framebufferTexture2D","COLOR_ATTACHMENT0","vi","wi","createProgram","VERTEX_SHADER","FRAGMENT_SHADER","linkProgram","getProgramParameter","LINK_STATUS","getProgramInfoLog","getAttribLocation","deleteProgram","deleteShader","deleteFramebuffer","zi","activeTexture","TEXTURE1","TEXTURE2","NEAREST","getUniformLocation","V","uniform1i","deleteTexture","Ai","Bi","find","WebGLTexture","Di","Ei","Fi","Gi","platform","readPixels","RED","Hi","Ii","Ji","Ki","getExtension","R32F","R16F","viewport","TEXTURE0","Li","clearColor","COLOR_BUFFER_BIT","drawArrays","TRIANGLE_FAN","getAsWebGLTexture","getAsFloat32Array","getAsUint8Array","hasWebGLTexture","hasFloat32Array","hasUint8Array","Mi","color","lineWidth","radius","Ni","fillColor","Oi","Function","Pi","Qi","Ri","Ui","Vi","Si","ImageData","Uint8ClampedArray","xi","fill","yi","Xi","Ti","Zi","CanvasRenderingContext2D","OffscreenCanvasRenderingContext2D","save","fillStyle","strokeStyle","Path2D","arc","PI","stroke","restore","beginPath","start","to","moveTo","lineTo","drawImage","Wi","Yi","$i","ImageBitmap","aj","bj","cj","dj","ej","fj","gj","hj","transferToImageBitmap","drawConfidenceMask","drawCategoryMask","drawBoundingBox","drawConnectors","drawLandmarks","lerp","clamp","W","ij","data","getAsImageBitmap","getAsImageData","hasImageBitmap","hasImageData","jj","kj","_registerModelResourcesGraphService","_addIntToInputStream","warn","setGraphFromString","HEAPU8","_changeBinaryGraph","_changeTextGraph","configureAudio","_configureAudio","setAutoResizeCanvas","_setAutoRenderToScreen","setGpuBufferVerticalFlip","_getGraphConfig","__graph_config__","errorListener","attachEmptyPacketListener","emptyPacketListeners","addAudioToStream","addAudioToStreamWithShape","HEAPF32","_addAudioToInputStream","addGpuBufferToStream","_addBoundTextureToStream","_addBoolToInputStream","addDoubleToStream","_addDoubleToInputStream","addFloatToStream","_addFloatToInputStream","addIntToStream","addUintToStream","_addUintToInputStream","addStringToStream","_addStringToInputStream","addStringRecordToStream","_addFlatHashMapToInputStream","addProtoToStream","_addProtoToInputStream","addEmptyPacketToStream","_addEmptyPacketToInputStream","addBoolVectorToStream","_allocateBoolVector","_addBoolVectorEntry","_addBoolVectorToInputStream","addDoubleVectorToStream","_allocateDoubleVector","_addDoubleVectorEntry","_addDoubleVectorToInputStream","addFloatVectorToStream","_allocateFloatVector","_addFloatVectorEntry","_addFloatVectorToInputStream","addIntVectorToStream","_allocateIntVector","_addIntVectorEntry","_addIntVectorToInputStream","addUintVectorToStream","_allocateUintVector","_addUintVectorEntry","_addUintVectorToInputStream","addStringVectorToStream","_allocateStringVector","_addStringVectorEntry","_addStringVectorToInputStream","addBoolToInputSidePacket","_addBoolToInputSidePacket","addDoubleToInputSidePacket","_addDoubleToInputSidePacket","addFloatToInputSidePacket","_addFloatToInputSidePacket","addIntToInputSidePacket","_addIntToInputSidePacket","addUintToInputSidePacket","_addUintToInputSidePacket","addStringToInputSidePacket","_addStringToInputSidePacket","addProtoToInputSidePacket","_addProtoToInputSidePacket","addBoolVectorToInputSidePacket","_addBoolVectorToInputSidePacket","addDoubleVectorToInputSidePacket","_addDoubleVectorToInputSidePacket","addFloatVectorToInputSidePacket","_addFloatVectorToInputSidePacket","addIntVectorToInputSidePacket","_addIntVectorToInputSidePacket","addUintVectorToInputSidePacket","_addUintVectorToInputSidePacket","addStringVectorToInputSidePacket","_addStringVectorToInputSidePacket","attachBoolListener","_attachBoolListener","attachBoolVectorListener","_attachBoolVectorListener","attachIntListener","_attachIntListener","attachIntVectorListener","_attachIntVectorListener","attachUintListener","_attachUintListener","attachUintVectorListener","_attachUintVectorListener","attachDoubleListener","_attachDoubleListener","attachDoubleVectorListener","_attachDoubleVectorListener","attachFloatListener","_attachFloatListener","attachFloatVectorListener","_attachFloatVectorListener","attachStringListener","_attachStringListener","attachStringVectorListener","_attachStringVectorListener","attachProtoListener","_attachProtoListener","attachProtoVectorListener","_attachProtoVectorListener","attachAudioListener","_attachAudioListener","_waitUntilIdle","_closeGraph","_addBoundTextureAsImageToStream","_attachImageListener","_attachImageVectorListener","lj","ei","mj","regionOfInterest","left","right","top","bottom","rotationDegrees","performance","now","nj","oj","pj","qj","runningMode","rj","detections","minDetectionConfidence","minSuppressionThreshold","detectForVideo","detect","setOptions","createFromModelPath","createFromModelBuffer","createFromOptions","sj","tj","uj","vj","wj","xj","yj","zj","Aj","Bj","Cj","faceLandmarks","faceBlendshapes","facialTransformationMatrixes","outputFacialTransformationMatrixes","outputFaceBlendshapes","numFaces","minFaceDetectionConfidence","minTrackingConfidence","minFacePresenceConfidence","rows","columns","FACE_LANDMARKS_LIPS","FACE_LANDMARKS_LEFT_EYE","FACE_LANDMARKS_LEFT_EYEBROW","FACE_LANDMARKS_LEFT_IRIS","FACE_LANDMARKS_RIGHT_EYE","FACE_LANDMARKS_RIGHT_EYEBROW","FACE_LANDMARKS_RIGHT_IRIS","FACE_LANDMARKS_FACE_OVAL","FACE_LANDMARKS_CONTOURS","FACE_LANDMARKS_TESSELATION","Dj","name","stylize","Ej","Fj","gestures","landmarks","worldLandmarks","handedness","Gj","handednesses","Hj","Ij","numHands","minHandDetectionConfidence","minHandPresenceConfidence","cannedGesturesClassifierOptions","customGesturesClassifierOptions","Jj","recognizeForVideo","recognize","HAND_CONNECTIONS","Kj","Lj","Mj","poseLandmarks","poseWorldLandmarks","poseSegmentationMasks","leftHandLandmarks","leftHandWorldLandmarks","rightHandLandmarks","rightHandWorldLandmarks","Nj","Oj","outputPoseSegmentationMasks","minFaceSuppressionThreshold","minPoseDetectionConfidence","minPoseSuppressionThreshold","minPosePresenceConfidence","minHandLandmarksConfidence","Kf","POSE_CONNECTIONS","Pj","classifications","timestampMs","Ih","classifyForVideo","classify","Qj","embeddings","l2Normalize","quantize","floatEmbedding","quantizedEmbedding","Kh","cosineSimilarity","embedForVideo","embed","Rj","confidenceMasks","categoryMask","qualityScores","Tj","Uj","Vj","outputCategoryMask","outputConfidenceMasks","filter","Sj","getLabels","segmentForVideo","segment","Wj","Xj","Yj","Zj","ak","bk","ck","dk","ek","fk","gk","hk","ik","keypoint","scribble","jk","kk","segmentationMasks","lk","mk","nk","outputSegmentationMasks","numPoses"],"mappings":"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AAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IACpf,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,GAAG,CAAC,EAAE,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,GAAG,CAAC,EAAE,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC,IAClf,GAAG,CAAC,EAAE,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAClf,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IACpf,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,GAAG,CAAC,EAAE,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IACrf,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,GAAG,CAAC,EAAE,GAAG,CAAC,EAAE,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,EAAE,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,GAAG,CAAC,EAAE,IAAI,CAAC,GAAG,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IACjf,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,EAAE,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,GAAG,CAAC,GAAG,GAAG,CAAC,EAAE,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,KAChf,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,EAAE,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,GAAG,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IACnf,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAChf,CAAC,IAAI,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,GAAG,CAAC,EAAE,GAAG,CAAC,EAAE,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,EAAE,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IACnf,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IACpf,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,GAAG,CAAC,EAAE,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,EAAE,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,GAAG,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IACpf,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,GAAG,CAAC,EAAE,GAAG,CAAC,EAAE,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KACpf,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,GAAG,CAAC,EAAE,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IACrf,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KACpf,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,GAAG,CAAC,EAAE,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KACnf,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IACrf,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,GAAG,CAAC,EAAE,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,EAAE,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,GAAG,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,GAAG,CAAC,EAAE,KAAK,CAAC,IAAI,KACpf,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IACpf,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,EAAE,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,GAAG,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,GAAG,CAAC,EAAE,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KACnf,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IACrf,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,GAAG,CAAC,EAAE,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,EAAE,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,GAAG,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAClf,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KACpf,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IACpf,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,IACpf,CAAC,GAAG,IAAI,CAAC,IAAI,GAAG,CAAC,EAAE,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,EAAE,IAAI,CAAC,GAAG,GAAG,CAAC,EAAE,GAAG,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,GACnf,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,GAAG,CAAC,EAAE,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IACnf,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,KAChf,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,EAAE,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,GAAG,CAAC,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,GAAG,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IACrf,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,GACpf,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,GAAG,CAAC,EAAE,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,GAAG,CAAC,EAAE,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IACpf,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,GAAG,CAAC,EAAE,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KACjf,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,GAAG,CAAC,EAAE,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IACrf,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,GAAG,CAAC,EAAE,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IACnf,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,GAAG,GAAG,CAAC,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IACnf,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,GAAG,CAAC,EAAE,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,EAAE,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,GAAG,CAAC,IAAI,KAAK,CAAC,IACpf,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,GAAG,CAAC,EAAE,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,KAAK,CAAC,IAClf,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,GAAG,CAAC,EAAE,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAClf,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,GAAG,CAAC,EAAE,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAChf,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IACnf,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KACpf,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,EAAE,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,GAAG,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,EAAE,KAAK,CAAC,IAAI,GAAG,CAAC,EAAE,GAAG,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KACnf,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,GAAG,CAAC,EAAE,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IACjf,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAClf,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,GAAG,CAAC,EAAE,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KACjf,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,EAAE,KAAK,CAAC,IAAI,GAAG,CAAC,EAAE,GAAG,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KACjf,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,GAAG,CAAC,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KACnf,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI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"} \ No newline at end of file +{"version":3,"file":"vision_bundle_mjs.js","sources":["../../../../../../../mediapipe/tasks/web/vision/vision_js.js"],"sourcesContent":["'use strict';/*\n\n Copyright The Closure Library Authors.\n SPDX-License-Identifier: Apache-2.0\n*/\nvar aa=this||(typeof self!==\"undefined\"?self:{});function ba(a,b){a:{var c=[\"CLOSURE_FLAGS\"];for(var d=aa,e=0;e>6|192;else{if(b>=55296&&b<=57343){if(b<=56319&&e=56320&&f<=57343){b=(b-55296)*1024+f-56320+65536;d[c++]=b>>18|240;d[c++]=b>>12&63|128;d[c++]=b>>6&63|128;d[c++]=b&63|128;continue}else e--}b=65533}d[c++]=b>>12|224;d[c++]=b>>6&63|128}d[c++]=b&63|128}}a=c===d.length?\nd:d.subarray(0,c)}return a};function ma(a){aa.setTimeout(()=>{throw a;},0)};var na=ba(610401301,!1),oa=ba(748402147,!0);function pa(){var a=aa.navigator;return a&&(a=a.userAgent)?a:\"\"}var qa;const ra=aa.navigator;qa=ra?ra.userAgentData||null:null;function sa(a){sa[\" \"](a);return a}sa[\" \"]=function(){};const ta={};let ua=null;function va(a){const b=a.length;let c=b*3/4;c%3?c=Math.floor(c):\"=.\".indexOf(a[b-1])!=-1&&(c=\"=.\".indexOf(a[b-2])!=-1?c-2:c-1);const d=new Uint8Array(c);let e=0;xa(a,function(f){d[e++]=f});return e!==c?d.subarray(0,e):d}\nfunction xa(a,b){function c(e){for(;d>4);g!=64&&(b(f<<4&240|g>>2),h!=64&&b(g<<6&192|h))}}\nfunction ya(){if(!ua){ua={};var a=\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\".split(\"\"),b=[\"+/=\",\"+/\",\"-_=\",\"-_.\",\"-_\"];for(let c=0;c<5;c++){const d=a.concat(b[c].split(\"\"));ta[c]=d;for(let e=0;e0?0:pa().indexOf(\"Trident\")!=-1||pa().indexOf(\"MSIE\")!=-1)&&typeof btoa===\"function\";const Ba=/[-_.]/g,Ca={\"-\":\"+\",_:\"/\",\".\":\"=\"};function Da(a){return Ca[a]||\"\"}function Ea(a){if(!Aa)return va(a);a=Ba.test(a)?a.replace(Ba,Da):a;a=atob(a);const b=new Uint8Array(a.length);for(let c=0;c=b||(c[a]=d+1,a=Error(),Ma(a,\"incident\"),ma(a))}};function Qa(){return typeof BigInt===\"function\"};var Ra=typeof Symbol===\"function\"&&typeof Symbol()===\"symbol\";function Sa(a,b,c=!1){return typeof Symbol===\"function\"&&typeof Symbol()===\"symbol\"?c&&Symbol.for&&a?Symbol.for(a):a!=null?Symbol(a):Symbol():b}var Ta=Sa(\"jas\",void 0,!0),Ua=Sa(void 0,\"0di\"),Va=Sa(void 0,\"1oa\"),Wa=Sa(void 0,Symbol()),Xa=Sa(void 0,\"0ub\"),Ya=Sa(void 0,\"0ubs\"),Za=Sa(void 0,\"0ubsb\"),$a=Sa(void 0,\"0actk\"),ab=Sa(\"m_m\",\"Pa\",!0),bb=Sa();const cb={Ga:{value:0,configurable:!0,writable:!0,enumerable:!1}},db=Object.defineProperties,n=Ra?Ta:\"Ga\";var eb;const fb=[];p(fb,7);eb=Object.freeze(fb);function gb(a,b){Ra||n in a||db(a,cb);a[n]|=b}function p(a,b){Ra||n in a||db(a,cb);a[n]=b}function hb(a){gb(a,34);return a}function ib(a){gb(a,8192);return a};var jb={};function kb(a,b){return b===void 0?a.h!==lb&&!!(2&(a.v[n]|0)):!!(2&b)&&a.h!==lb}const lb={};function mb(a,b){if(a!=null)if(typeof a===\"string\")a=a?new Ja(a,Ga):Ha();else if(a.constructor!==Ja)if(Fa(a))a=a.length?new Ja(new Uint8Array(a),Ga):Ha();else{if(!b)throw Error();a=void 0}return a}class nb{constructor(a,b,c){this.g=a;this.h=b;this.l=c}next(){const a=this.g.next();a.done||(a.value=this.h.call(this.l,a.value));return a}[Symbol.iterator](){return this}}var ob=Object.freeze({});\nfunction pb(a,b,c){const d=b&128?0:-1,e=a.length;var f;if(f=!!e)f=a[e-1],f=f!=null&&typeof f===\"object\"&&f.constructor===Object;const g=e+(f?-1:0);for(b=b&128?1:0;btypeof a===\"number\"),ub=sb(a=>typeof a===\"string\"),vb=sb(a=>typeof a===\"boolean\");var wb=typeof aa.BigInt===\"function\"&&typeof aa.BigInt(0)===\"bigint\";function xb(a){var b=a;if(ub(b)){if(!/^\\s*(?:-?[1-9]\\d*|0)?\\s*$/.test(b))throw Error(String(b));}else if(tb(b)&&!Number.isSafeInteger(b))throw Error(String(b));return wb?BigInt(a):a=vb(a)?a?\"1\":\"0\":ub(a)?a.trim()||\"0\":String(a)}var Db=sb(a=>wb?a>=yb&&a<=zb:a[0]===\"-\"?Ab(a,Bb):Ab(a,Cb));const Bb=Number.MIN_SAFE_INTEGER.toString(),yb=wb?BigInt(Number.MIN_SAFE_INTEGER):void 0,Cb=Number.MAX_SAFE_INTEGER.toString(),zb=wb?BigInt(Number.MAX_SAFE_INTEGER):void 0;\nfunction Ab(a,b){if(a.length>b.length)return!1;if(a.lengthe)return!1;if(d>>0;q=b;r=(a-b)/4294967296>>>0}function Hb(a){if(a<0){Gb(-a);const [b,c]=Ib(q,r);q=b>>>0;r=c>>>0}else Gb(a)}function Jb(a){const b=Fb||=new DataView(new ArrayBuffer(8));b.setFloat32(0,+a,!0);r=0;q=b.getUint32(0,!0)}function Kb(a,b){const c=b*4294967296+(a>>>0);return Number.isSafeInteger(c)?c:Lb(a,b)}function Mb(a,b){return xb(Qa()?BigInt.asUintN(64,(BigInt(b>>>0)<>>0)):Lb(a,b))}\nfunction Nb(a,b){return Qa()?xb(BigInt.asIntN(64,(BigInt.asUintN(32,BigInt(b))<>>=0;a>>>=0;if(b<=2097151)var c=\"\"+(4294967296*b+a);else Qa()?c=\"\"+(BigInt(b)<>>24|b<<8)&16777215,b=b>>16&65535,a=(a&16777215)+c*6777216+b*6710656,c+=b*8147497,b*=2,a>=1E7&&(c+=a/1E7>>>0,a%=1E7),c>=1E7&&(b+=c/1E7>>>0,c%=1E7),c=b+Pb(c)+Pb(a));return c}function Pb(a){a=String(a);return\"0000000\".slice(a.length)+a}\nfunction Ob(a,b){if(b&2147483648)if(Qa())a=\"\"+(BigInt(b|0)<>>0));else{const [c,d]=Ib(a,b);a=\"-\"+Lb(c,d)}else a=Lb(a,b);return a}\nfunction Qb(a){if(a.length<16)Hb(Number(a));else if(Qa())a=BigInt(a),q=Number(a&BigInt(4294967295))>>>0,r=Number(a>>BigInt(32)&BigInt(4294967295));else{const b=+(a[0]===\"-\");r=q=0;const c=a.length;for(let d=b,e=(c-b)%6+b;e<=c;d=e,e+=6){const f=Number(a.slice(d,e));r*=1E6;q=q*1E6+f;q>=4294967296&&(r+=Math.trunc(q/4294967296),r>>>=0,q>>>=0)}if(b){const [d,e]=Ib(q,r);q=d;r=e}}}function Ib(a,b){b=~b;a?a=~a+1:b+=1;return[a,b]};function Rb(a){return Array.prototype.slice.call(a)};const Sb=typeof BigInt===\"function\"?BigInt.asIntN:void 0,Tb=typeof BigInt===\"function\"?BigInt.asUintN:void 0,Ub=Number.isSafeInteger,Vb=Number.isFinite,Wb=Math.trunc,Xb=xb(0);function Yb(a){if(a!=null&&typeof a!==\"number\")throw Error(`Value of float/double field must be a number, found ${typeof a}: ${a}`);return a}function Zb(a){if(a==null||typeof a===\"number\")return a;if(a===\"NaN\"||a===\"Infinity\"||a===\"-Infinity\")return Number(a)}\nfunction $b(a){if(a!=null&&typeof a!==\"boolean\"){var b=typeof a;throw Error(`Expected boolean but got ${b!=\"object\"?b:a?Array.isArray(a)?\"array\":b:\"null\"}: ${a}`);}return a}function ac(a){if(a==null||typeof a===\"boolean\")return a;if(typeof a===\"number\")return!!a}const bc=/^-?([1-9][0-9]*|0)(\\.[0-9]+)?$/;function cc(a){switch(typeof a){case \"bigint\":return!0;case \"number\":return Vb(a);case \"string\":return bc.test(a);default:return!1}}\nfunction dc(a){if(a==null)return a;if(typeof a===\"string\"&&a)a=+a;else if(typeof a!==\"number\")return;return Vb(a)?a|0:void 0}function ec(a){if(a==null)return a;if(typeof a===\"string\"&&a)a=+a;else if(typeof a!==\"number\")return;return Vb(a)?a>>>0:void 0}function fc(a){const b=a.length;if(a[0]===\"-\"?b<20||b===20&&a<=\"-9223372036854775808\":b<19||b===19&&a<=\"9223372036854775807\")return a;Qb(a);return Ob(q,r)}\nfunction hc(a){a=Wb(a);if(!Ub(a)){Hb(a);var b=q,c=r;if(a=c&2147483648)b=~b+1>>>0,c=~c>>>0,b==0&&(c=c+1>>>0);b=Kb(b,c);a=typeof b===\"number\"?a?-b:b:a?\"-\"+b:b}return a}function ic(a){var b=Wb(Number(a));if(Ub(b))return String(b);b=a.indexOf(\".\");b!==-1&&(a=a.substring(0,b));return fc(a)}function jc(a){var b=Wb(Number(a));if(Ub(b))return xb(b);b=a.indexOf(\".\");b!==-1&&(a=a.substring(0,b));return Qa()?xb(Sb(64,BigInt(a))):xb(fc(a))}\nfunction kc(a){Ub(a)?a=xb(hc(a)):(a=Wb(a),Ub(a)?a=String(a):(Hb(a),a=Ob(q,r)),a=xb(a));return a}function lc(a){if(a==null)return a;if(typeof a===\"bigint\")return Db(a)?a=Number(a):(a=Sb(64,a),a=Db(a)?Number(a):String(a)),a;if(cc(a))return typeof a===\"number\"?hc(a):ic(a)}function mc(a){const b=typeof a;if(a==null)return a;if(b===\"bigint\")return xb(Sb(64,a));if(cc(a))return b===\"string\"?jc(a):kc(a)}\nfunction nc(a){if(a==null)return a;const b=typeof a;if(b===\"bigint\")return String(Sb(64,a));if(cc(a)){if(b===\"string\")return ic(a);if(b===\"number\")return hc(a)}}\nfunction oc(a){if(a==null)return a;var b=typeof a;if(b===\"bigint\")return String(Tb(64,a));if(cc(a)){if(b===\"string\")return b=Wb(Number(a)),Ub(b)&&b>=0?a=String(b):(b=a.indexOf(\".\"),b!==-1&&(a=a.substring(0,b)),a[0]===\"-\"?b=!1:(b=a.length,b=b<20?!0:b===20&&a<=\"18446744073709551615\"),b||(Qb(a),a=Lb(q,r))),a;if(b===\"number\")return a=Wb(a),a>=0&&Ub(a)||(Hb(a),a=Kb(q,r)),a}}function pc(a){if(typeof a!==\"string\")throw Error();return a}\nfunction qc(a){if(a!=null&&typeof a!==\"string\")throw Error();return a}function t(a){return a==null||typeof a===\"string\"?a:void 0}function rc(a,b,c,d){if(a!=null&&a[ab]===jb)return a;if(!Array.isArray(a))return c?d&2?((a=b[Ua])||(a=new b,hb(a.v),a=b[Ua]=a),b=a):b=new b:b=void 0,b;c=a[n]|0;d=c|d&32|d&2;d!==c&&p(a,d);return new b(a)}\nfunction sc(a,b,c){if(b)a:{b=a;if(!cc(b))throw Oa(\"int64\");switch(typeof b){case \"string\":b=jc(b);break a;case \"bigint\":b=xb(Sb(64,b));break a;default:b=kc(b)}}else b=mc(a);a=b;return a==null?c?Xb:void 0:a};function tc(a){return a};const uc={};let vc=function(){try{return sa(new class extends Map{constructor(){super()}}),!1}catch{return!0}}();\nclass wc{constructor(){this.g=new Map}get(a){return this.g.get(a)}set(a,b){this.g.set(a,b);this.size=this.g.size;return this}delete(a){a=this.g.delete(a);this.size=this.g.size;return a}clear(){this.g.clear();this.size=this.g.size}has(a){return this.g.has(a)}entries(){return this.g.entries()}keys(){return this.g.keys()}values(){return this.g.values()}forEach(a,b){return this.g.forEach(a,b)}[Symbol.iterator](){return this.entries()}}\nconst xc=(()=>vc?(Object.setPrototypeOf(wc.prototype,Map.prototype),Object.defineProperties(wc.prototype,{size:{value:0,configurable:!0,enumerable:!0,writable:!0}}),wc):class extends Map{constructor(){super()}})();function yc(a){return a}function zc(a){if(a.J&2)throw Error(\"Cannot mutate an immutable Map\");}\nvar Cc=class extends xc{constructor(a,b,c=yc,d=yc){super();this.J=a[n]|0;this.K=b;this.S=c;this.fa=this.K?Ac:d;for(let e=0;e{a.call(b,e.get(d),d,e)}):super.forEach(a,b)}set(a,b){zc(this);a=this.S(a,!0,!1);return a==null?this:b==null?(super.delete(a),this):super.set(a,this.fa(b,!0,!0,this.K,!1,this.J))}Ma(a){const b=this.S(a[0],!1,!0);a=a[1];a=this.K?a===void 0?null:a:this.fa(a,!1,!0,void 0,!1,this.J);super.set(b,a)}has(a){return super.has(this.S(a,!1,!1))}get(a){a=this.S(a,!1,!1);const b=super.get(a);\nif(b!==void 0){var c=this.K;return c?(c=this.fa(b,!1,!0,c,this.ra,this.J),c!==b&&super.set(a,c),c):b}}[Symbol.iterator](){return this.entries()}};Cc.prototype.toJSON=void 0;function Ac(a,b,c,d,e,f){a=rc(a,d,c,f);e&&(a=Dc(a));return a}function Bc(a){return[a,this.get(a)]}let Ec;function Fc(){return Ec||=new Cc(hb([]),void 0,void 0,void 0,uc)};function Gc(a){const b=ca(Wa);return b?a[b]:void 0}function Ic(a,b){for(const c in a)!isNaN(c)&&b(a,+c,a[c])}function Jc(a){const b=new Kc;Ic(a,(c,d,e)=>{b[d]=Rb(e)});b.da=a.da;return b}var Kc=class{};const Lc={Ka:!0};function Mc(a,b){b<100||Pa(Ya,1)};function Nc(a,b,c,d){const e=d!==void 0;d=!!d;var f=ca(Wa),g;!e&&Ra&&f&&(g=a[f])&&Ic(g,Mc);f=[];var h=a.length;let k;g=4294967295;let w=!1;const m=!!(b&64),D=m?b&128?0:-1:void 0;b&1||(k=h&&a[h-1],k!=null&&typeof k===\"object\"&&k.constructor===Object?(h--,g=h):k=void 0,!m||b&128||e||(w=!0,g=(Oc??tc)(g-D,D,a,k,void 0)+D));b=void 0;for(var G=0;G=g){const wa=G-D;(b??={})[wa]=N}else f[G]=N}if(k)for(let N in k){h=k[N];if(h==null||(h=c(h,d))==null)continue;\nG=+N;let wa;m&&!Number.isNaN(G)&&(wa=G+D)>2];f=c[(f&3)<<4|g>>4];g=c[(g&15)<<2|h>>6];h=c[h&63];d[m++]=k+f+g+h}k=0;h=e;switch(b.length-w){case 2:k=b[w+1],h=c[(k&15)<<2]||e;case 1:b=b[w],d[m]=c[b>>2]+c[(b&3)<<4|k>>4]+h+e}b=d.join(\"\")}a=a.g=b}return a}if(a instanceof Cc)return a=a.size!==0?a.V(Pc):void 0,a;return}return a}let Oc;function Rc(a){a=a.v;return Nc(a,a[n]|0,Qc)};let Sc,Tc;function Uc(a){switch(typeof a){case \"boolean\":return Sc||=[0,void 0,!0];case \"number\":return a>0?void 0:a===0?Tc||=[0,void 0]:[-a,void 0];case \"string\":return[0,a];case \"object\":return a}}function Vc(a,b){return Wc(a,b[0],b[1])}\nfunction Wc(a,b,c,d=0){if(a==null){var e=32;c?(a=[c],e|=128):a=[];b&&(e=e&-16760833|(b&1023)<<14)}else{if(!Array.isArray(a))throw Error(\"narr\");e=a[n]|0;if(oa&&1&e)throw Error(\"rfarr\");2048&e&&!(2&e)&&Xc();if(e&256)throw Error(\"farr\");if(e&64)return(e|d)!==e&&p(a,e|d),a;if(c&&(e|=128,c!==a[0]))throw Error(\"mid\");a:{c=a;e|=64;var f=c.length;if(f){var g=f-1;const k=c[g];if(k!=null&&typeof k===\"object\"&&k.constructor===Object){b=e&128?0:-1;g-=b;if(g>=1024)throw Error(\"pvtlmt\");for(var h in k)f=+h,f<\ng&&(c[f+b]=k[h],delete k[h]);e=e&-16760833|(g&1023)<<14;break a}}if(b){h=Math.max(b,f-(e&128?0:-1));if(h>1024)throw Error(\"spvt\");e=e&-16760833|(h&1023)<<14}}}p(a,e|64|d);return a}function Xc(){if(oa)throw Error(\"carr\");Pa($a,5)};function Yc(a,b){if(typeof a!==\"object\")return a;if(Array.isArray(a)){var c=a[n]|0;return a.length===0&&c&1?void 0:Zc(a,c,b)}if(a!=null&&a[ab]===jb)return $c(a);if(a instanceof Cc){b=a.J;if(b&2)return a;if(!a.size)return;c=hb(a.V());if(a.K)for(a=0;a=f)if(g=a[f],g!=null&&typeof g===\"object\"&&g.constructor===Object)c=g[b],h=!0;else if(e===f)c=g;else return;else c=a[e];if(d&&c!=null){d=d(c);if(d==null)return d;if(!Object.is(d,c))return h?g[b]=d:a[e]=d,d}return c}}function v(a,b,c,d){ed(a);a=a.v;x(a,a[n]|0,b,c,d)}\nfunction x(a,b,c,d,e){const f=c+(e?0:-1);var g=a.length-1;if(g>=1+(e?0:-1)&&f>=g){const h=a[g];if(h!=null&&typeof h===\"object\"&&h.constructor===Object)return h[c]=d,b}if(f<=g)return a[f]=d,b;d!==void 0&&(g=(b??=a[n]|0)>>14&1023||536870912,c>=g?d!=null&&(a[g+(e?0:-1)]={[c]:d}):a[f]=d);return b}function jd(){return void 0===ob?2:4}\nfunction kd(a,b,c,d,e){let f=a.v,g=f[n]|0;d=kb(a,g)?1:d;e=!!e||d===3;d===2&&dd(a)&&(f=a.v,g=f[n]|0);a=ld(f,b);let h=a===eb?7:a[n]|0,k=md(h,g);var w=4&k?!1:!0;if(w){4&k&&(a=Rb(a),h=0,k=nd(k,g),g=x(f,g,b,a));let m=0,D=0;for(;m{const h=rc(g,c,!1,b);f=h!==g&&h!=null;return h});if(d!=null)return f&&!kb(d)&&fd(a,b),d}\nfunction y(a,b,c,d){let e=a.v,f=e[n]|0;b=Cd(e,f,b,c,d);if(b==null)return b;f=e[n]|0;if(!kb(a,f)){const g=Dc(b);g!==b&&(dd(a)&&(e=a.v,f=e[n]|0),b=g,f=x(e,f,c,b,d),fd(e,f))}return b}\nfunction Dd(a,b,c,d,e,f,g,h){var k=kb(a,c);f=k?1:f;g=!!g||f===3;k=h&&!k;(f===2||k)&&dd(a)&&(b=a.v,c=b[n]|0);a=ld(b,e);var w=a===eb?7:a[n]|0,m=md(w,c);if(h=!(4&m)){var D=a,G=c;const N=!!(2&m);N&&(G|=2);let wa=!N,Rf=!0,Hc=0,Td=0;for(;Hc32)for(e|=(c&127)>>4,f=3;f<32&&c&128;f+=7)c=g[h++],e|=(c&127)<>>0,e>>>0);throw Error();}function Rd(a){let b=0,c=a.g;const d=c+10,e=a.h;for(;c>>0}\nfunction Wd(a){var b=a.h;const c=a.g;var d=b[c];var e=b[c+1];const f=b[c+2];b=b[c+3];Qd(a,a.g+4);e=(d<<0|e<<8|f<<16|b<<24)>>>0;a=(e>>31)*2+1;d=e>>>23&255;e&=8388607;return d==255?e?NaN:a*Infinity:d==0?a*1.401298464324817E-45*e:a*Math.pow(2,d-150)*(e+8388608)}function Xd(a){return Sd(a)}function Qd(a,b){a.g=b;if(b>a.l)throw Error();}function Yd(a,b){if(b<0)throw Error();const c=a.g;b=c+b;if(b>a.l)throw Error();a.g=b;return c}\nfunction Zd(a,b){if(b==0)return Ha();var c=Yd(a,b);a.Y&&a.j?c=a.h.subarray(c,c+b):(a=a.h,b=c+b,c=c===b?new Uint8Array(0):Eb?a.slice(c,b):new Uint8Array(a.subarray(c,b)));return c.length==0?Ha():new Ja(c,Ga)}\nvar $d=class{constructor(a,b,c,d){this.h=null;this.j=!1;this.g=this.l=this.m=0;this.init(a,b,c,d)}init(a,b,c,{Y:d=!1,ea:e=!1}={}){this.Y=d;this.ea=e;a&&(a=Od(a,this.ea),this.h=a.buffer,this.j=a.g,this.m=b||0,this.l=c!==void 0?this.m+c:this.h.length,this.g=this.m)}clear(){this.h=null;this.j=!1;this.g=this.l=this.m=0;this.Y=!1}},ae=[];function be(a,b,c,d){if(ce.length){const e=ce.pop();e.o(d);e.g.init(a,b,c,d);return e}return new de(a,b,c,d)}function ee(a){a.g.clear();a.l=-1;a.h=-1;ce.length<100&&ce.push(a)}function fe(a){var b=a.g;if(b.g==b.l)return!1;a.m=a.g.g;var c=Vd(a.g);b=c>>>3;c&=7;if(!(c>=0&&c<=5))throw Error();if(b<1)throw Error();a.l=b;a.h=c;return!0}\nfunction ge(a){switch(a.h){case 0:a.h!=0?ge(a):Rd(a.g);break;case 1:a=a.g;Qd(a,a.g+8);break;case 2:if(a.h!=2)ge(a);else{var b=Vd(a.g);a=a.g;Qd(a,a.g+b)}break;case 5:a=a.g;Qd(a,a.g+4);break;case 3:b=a.l;do{if(!fe(a))throw Error();if(a.h==4){if(a.l!=b)throw Error();break}ge(a)}while(1);break;default:throw Error();}}function he(a,b,c){const d=a.g.l;var e=Vd(a.g);e=a.g.g+e;let f=e-d;f<=0&&(a.g.l=e,c(b,a,void 0,void 0,void 0),f=e-a.g.g);if(f)throw Error();a.g.g=e;a.g.l=d;return b}\nfunction ie(a){var b=Vd(a.g);a=a.g;var c=Yd(a,b);a=a.h;if(ia){var d=a,e;(e=ha)||(e=ha=new TextDecoder(\"utf-8\",{fatal:!0}));b=c+b;d=c===0&&b===d.length?d:d.subarray(c,b);try{var f=e.decode(d)}catch(h){if(fa===void 0){try{e.decode(new Uint8Array([128]))}catch(k){}try{e.decode(new Uint8Array([97])),fa=!0}catch(k){fa=!1}}!fa&&(ha=void 0);throw h;}}else{f=c;b=f+b;c=[];let h=null;let k;for(;f=b?da():(k=a[f++],g<194||(k&192)!==128?(f--,da()):c.push((g&31)<<6|k&63)):\ng<240?f>=b-1?da():(k=a[f++],(k&192)!==128||g===224&&k<160||g===237&&k>=160||((e=a[f++])&192)!==128?(f--,da()):c.push((g&15)<<12|(k&63)<<6|e&63)):g<=244?f>=b-2?da():(k=a[f++],(k&192)!==128||(g<<28)+(k-144)>>30!==0||((e=a[f++])&192)!==128||((d=a[f++])&192)!==128?(f--,da()):(g=(g&7)<<18|(k&63)<<12|(e&63)<<6|d&63,g-=65536,c.push((g>>10&1023)+55296,(g&1023)+56320))):da();c.length>=8192&&(h=ea(h,c),c.length=0)}f=ea(h,c)}return f}function je(a){const b=Vd(a.g);return Zd(a.g,b)}\nfunction ke(a,b,c){var d=Vd(a.g);for(d=a.g.g+d;a.g.g>>0;this.g=b>>>0}};let me;function oe(a){if(!a)return pe||=new qe(0,0);if(!/^-?\\d+$/.test(a))return null;Qb(a);return new qe(q,r)}var qe=class{constructor(a,b){this.h=a>>>0;this.g=b>>>0}};let pe;function re(a,b,c){for(;c>0||b>127;)a.g.push(b&127|128),b=(b>>>7|c<<25)>>>0,c>>>=7;a.g.push(b)}function se(a,b){for(;b>127;)a.g.push(b&127|128),b>>>=7;a.g.push(b)}function te(a,b){if(b>=0)se(a,b);else{for(let c=0;c<9;c++)a.g.push(b&127|128),b>>=7;a.g.push(1)}}function ue(a){var b=q;a.g.push(b>>>0&255);a.g.push(b>>>8&255);a.g.push(b>>>16&255);a.g.push(b>>>24&255)}var ve=class{constructor(){this.g=[]}length(){return this.g.length}end(){const a=this.g;this.g=[];return a}};function we(a,b){b.length!==0&&(a.l.push(b),a.h+=b.length)}function xe(a,b,c){se(a.g,b*8+c)}function ye(a,b){xe(a,b,2);b=a.g.end();we(a,b);b.push(a.h);return b}function ze(a,b){var c=b.pop();for(c=a.h+a.g.length()-c;c>127;)b.push(c&127|128),c>>>=7,a.h++;b.push(c);a.h++}function Ae(a,b,c){xe(a,b,2);se(a.g,c.length);we(a,a.g.end());we(a,c)}function Be(a,b,c,d){c!=null&&(b=ye(a,b),d(c,a),ze(a,b))}var Ce=class{constructor(){this.l=[];this.h=0;this.g=new ve}};function De(){const a=class{constructor(){throw Error();}};Object.setPrototypeOf(a,a.prototype);return a}var Ee=De(),Fe=De(),Ge=De(),He=De(),Ie=De(),Je=De(),Ke=De(),Le=De(),Me=De(),Ne=De();function Oe(a,b,c){var d=a.v;const e=ca(Wa);e&&e in d&&(d=d[e])&&delete d[b.g];b.h?b.j(a,b.h,b.g,c,b.l):b.j(a,b.g,c,b.l)}\nvar C=class{constructor(a,b){this.v=Wc(a,b,void 0,2048)}toJSON(){var a=Rc(this);return a}j(){var a=Pe,b=this.v,c=a.g,d=ca(Wa);Ra&&d&&b[d]?.[c]!=null&&Pa(Xa,3);b=a.g;if(ca(bb)&&ca(Wa)&&void 0===bb&&(c=this.v,d=c[Wa])&&(d=d.da))try{d(c,b,Lc)}catch(e){ma(e)}return a.h?a.m(this,a.h,a.g,a.l):a.m(this,a.g,a.defaultValue,a.l)}clone(){const a=this.v,b=a[n]|0;return cd(this,a,b)?bd(this,a,!0):new this.constructor(ad(a,b,!1))}};C.prototype[ab]=jb;C.prototype.toString=function(){return this.v.toString()};var Qe=class{constructor(a,b,c){this.g=a;this.h=b;a=ca(Ee);this.l=!!a&&c===a||!1}};function Re(a,b){return new Qe(a,b,Ee)}function Se(a,b,c,d,e){Be(a,c,Te(b,d),e)}const Ue=Re(function(a,b,c,d,e){if(a.h!==2)return!1;he(a,Bd(b,d,c),e);return!0},Se),Ve=Re(function(a,b,c,d,e){if(a.h!==2)return!1;he(a,Bd(b,d,c),e);return!0},Se);var We=Symbol(),Xe=Symbol(),Ye=Symbol(),Ze=Symbol(),$e=Symbol();let af,bf;\nfunction cf(a,b,c,d){var e=d[a];if(e)return e;e={};e.qa=d;e.T=Uc(d[0]);var f=d[1];let g=1;f&&f.constructor===Object&&(e.ba=f,f=d[++g],typeof f===\"function\"&&(e.ma=!0,af??=f,bf??=d[g+1],f=d[g+=2]));const h={};for(;f&&Array.isArray(f)&&f.length&&typeof f[0]===\"number\"&&f[0]>0;){for(var k=0;ke(f,g,h,d):e}function ff(a,b,c,d,e){const f=c.g;let g,h;a[b]=(k,w,m)=>f(k,w,m,h||=cf(Xe,ef,ff,d).T,g||=gf(d),e)}\nfunction gf(a){let b=a[Ye];if(b!=null)return b;const c=cf(Xe,ef,ff,a);b=c.ma?(d,e)=>af(d,e,c):(d,e)=>{for(;fe(e)&&e.h!=4;){var f=e.l,g=c[f];if(g==null){var h=c.ba;h&&(h=h[f])&&(h=hf(h),h!=null&&(g=c[f]=h))}if(g==null||!g(e,d,f)){h=e;g=h.m;ge(h);if(h.ha)var k=void 0;else k=h.g.g-g,h.g.g=g,k=Zd(h.g,k);g=void 0;h=d;k&&((g=h[Wa]??(h[Wa]=new Kc))[f]??(g[f]=[])).push(k)}}if(d=Gc(d))d.da=c.qa[$e];return!0};a[Ye]=b;a[$e]=jf.bind(a);return b}\nfunction jf(a,b,c,d){var e=this[Xe];const f=this[Ye],g=Vc(void 0,e.T),h=Gc(a);if(h){var k=!1,w=e.ba;if(w){e=(m,D,G)=>{if(G.length!==0)if(w[D])for(const N of G){m=be(N);try{k=!0,f(g,m)}finally{ee(m)}}else d?.(a,D,G)};if(b==null)Ic(h,e);else if(h!=null){const m=h[b];m&&e(h,b,m)}if(k){let m=a[n]|0;if(m&2&&m&2048&&!c?.Ka)throw Error();const D=rb(m),G=(N,wa)=>{if(id(a,N,D)!=null)switch(c?.Qa){case 1:return;default:throw Error();}wa!=null&&(m=x(a,m,N,wa,D));delete h[N]};b==null?pb(g,g[n]|0,(N,wa)=>{G(N,\nwa)}):G(b,id(g,b,D))}}}}function hf(a){a=df(a);const b=a[0].g;if(a=a[1]){const c=gf(a),d=cf(Xe,ef,ff,a).T;return(e,f,g)=>b(e,f,g,d,c)}return b};function kf(a,b,c){a[b]=c.h}function lf(a,b,c,d){let e,f;const g=c.h;a[b]=(h,k,w)=>g(h,k,w,f||=cf(We,kf,lf,d).T,e||=mf(d))}function mf(a){let b=a[Ze];if(!b){const c=cf(We,kf,lf,a);b=(d,e)=>nf(d,e,c);a[Ze]=b}return b}function nf(a,b,c){pb(a,a[n]|0,(d,e)=>{if(e!=null){var f=of(c,d);f?f(b,e,d):d<500||Pa(Za,3)}});(a=Gc(a))&&Ic(a,(d,e,f)=>{we(b,b.g.end());for(d=0;dd(g,h,k,f,e)}else c=d;return a[b]=c}};const pf=xb(0);function qf(a,b){if(Array.isArray(b)){var c=b[n]|0;if(c&4)return b;for(var d=0,e=0;d{Be(a,c,Vc([g,f],d),e)});else if(Array.isArray(b)){for(let f=0;f>BigInt(32)));re(a.g,c.h,c.g);break;default:c=oe(b),re(a.g,c.h,c.g)}}}function xf(a,b,c){b=dc(b);b!=null&&b!=null&&(xe(a,c,0),te(a.g,b))}\nfunction yf(a,b,c){b=ac(b);b!=null&&(xe(a,c,0),a.g.g.push(b?1:0))}function zf(a,b,c){b=t(b);b!=null&&Ae(a,c,la(b))}function Af(a,b,c,d,e){Be(a,c,Te(b,d),e)}function Bf(a,b,c){b=b==null||typeof b==\"string\"||b instanceof Ja?b:void 0;b!=null&&Ae(a,c,Od(b,!0).buffer)}function Cf(a,b,c){b=ec(b);b!=null&&b!=null&&(xe(a,c,0),se(a.g,b))}function Df(a,b,c){if(a.h!==5&&a.h!==2)return!1;b=vd(b,b[n]|0,c);a.h==2?ke(a,Wd,b):b.push(Wd(a.g));return!0}\nvar E=rf(function(a,b,c){if(a.h!==5)return!1;tf(b,c,Wd(a.g));return!0},vf,Le),Ef=sf(Df,function(a,b,c){b=qf(Zb,b);if(b!=null)for(let g=0;g>BigInt(32)));re(a.g,c.h,c.g);break;default:c=le(b),re(a.g,c.h,c.g)}}},Ke),\nF=rf(function(a,b,c){if(a.h!==0)return!1;tf(b,c,Sd(a.g));return!0},xf,He),Kf=sf(function(a,b,c){if(a.h!==0&&a.h!==2)return!1;b=vd(b,b[n]|0,c);a.h==2?ke(a,Sd,b):b.push(Sd(a.g));return!0},function(a,b,c){b=qf(dc,b);if(b!=null&&b.length){c=ye(a,c);for(let d=0;d{{const f={ea:!0};d&&Object.assign(f,d);c=be(c,void 0,void 0,f);try{const g=new a,h=g.v;gf(b)(h,c);var e=g}finally{ee(c)}}return e}}function Zf(a){return function(){const b=new Ce;nf(this.v,b,cf(We,kf,lf,a));we(b,b.g.end());const c=new Uint8Array(b.h),d=b.l,e=d.length;let f=0;for(let g=0;gc;a=cg.createPolicy(\"goog#html\",{createHTML:b,createScript:b,createScriptURL:b})}catch(b){}return a};var fg=class{constructor(a){this.g=a}toString(){return this.g+\"\"}};function gg(a){var b;dg===void 0&&(dg=eg());a=(b=dg)?b.createScriptURL(a):a;return new fg(a)};function hg(a,...b){if(b.length===0)return gg(a[0]);let c=a[0];for(let d=0;d({index:Id(d,1)??0??-1,score:A(d,2)??0,categoryName:t(u(d,3))??\"\"??\"\",displayName:t(u(d,4))??\"\"??\"\"})),headIndex:b,headName:c}}function Yh(a){const b={classifications:Ed(a,Qg,1).map(c=>Xh(y(c,Cg,4)?.g()??[],Id(c,2)??0,t(u(c,3))??\"\"))};lc(u(a,2,void 0,void 0,mc))!=null&&(b.timestampMs=Wh(u(a,2,void 0,void 0,mc)??gd));return b};function Zh(a){var b=kd(a,3,Zb,jd());var c=kd(a,2,dc,jd());var d=kd(a,1,t,jd());var e=kd(a,9,t,jd());const f={categories:[],keypoints:[]};for(let g=0;g{const c={headIndex:Id(b,3)??0??-1,headName:t(u(b,4))??\"\"??\"\"};var d=b.v;Cd(d,d[n]|0,Sg,wd(b,1))!==void 0?(b=y(b,Sg,wd(b,1),void 0),b=kd(b,1,Zb,jd()),c.floatEmbedding=b.slice()):(d=new Uint8Array(0),c.quantizedEmbedding=y(b,Tg,wd(b,2),void 0)?.na()?.h()??d);return c}),timestampMs:Wh(u(a,2,void 0,void 0,mc)??gd)}};function ai(a){const b=[];for(const c of Ed(a,Lg,1))b.push({x:A(c,1)??0,y:A(c,2)??0,z:A(c,3)??0,visibility:A(c,4)??0});return b}function bi(a){const b=[];for(const c of Ed(a,Jg,1))b.push({x:A(c,1)??0,y:A(c,2)??0,z:A(c,3)??0,visibility:A(c,4)??0});return b};function ci(a){return Array.from(a,b=>b>127?b-256:b)}function di(a,b){if(a.length!==b.length)throw Error(`Cannot compute cosine similarity between embeddings of different sizes (${a.length} vs. ${b.length}).`);let c=0,d=0,e=0;for(let f=0;f=1&&Number(a[1])>=17?!0:!1:!0};async function mi(a){if(typeof importScripts===\"function\")try{importScripts(a.toString())}catch(b){if(b instanceof TypeError)await self[\"import\"](a.toString());else throw b;}else{const b=document.createElement(\"script\");b.src=a.toString();b.crossOrigin=\"anonymous\";return new Promise((c,d)=>{b.addEventListener(\"load\",()=>{c()},!1);b.addEventListener(\"error\",e=>{d(e)},!1);document.body.appendChild(b)})}};function ni(a){return a.videoWidth!==void 0?[a.videoWidth,a.videoHeight]:a.naturalWidth!==void 0?[a.naturalWidth,a.naturalHeight]:a.displayWidth!==void 0?[a.displayWidth,a.displayHeight]:[a.width,a.height]}function T(a,b,c){a.m||console.error(\"No wasm multistream support detected: ensure dependency inclusion of :gl_graph_runner_internal_multi_input target\");b=a.i.stringToNewUTF8(b);c(b);a.i._free(b)}\nfunction oi(a,b,c){if(!a.i.canvas)throw Error(\"No OpenGL canvas configured.\");c?a.i._bindTextureToStream(c):a.i._bindTextureToCanvas();c=a.i.canvas.getContext(\"webgl2\")||a.i.canvas.getContext(\"webgl\");if(!c)throw Error(\"Failed to obtain WebGL context from the provided canvas. `getContext()` should only be invoked with `webgl` or `webgl2`.\");a.i.gpuOriginForWebTexturesIsBottomLeft&&c.pixelStorei(c.UNPACK_FLIP_Y_WEBGL,!0);c.texImage2D(c.TEXTURE_2D,0,c.RGBA,c.RGBA,c.UNSIGNED_BYTE,b);a.i.gpuOriginForWebTexturesIsBottomLeft&&\nc.pixelStorei(c.UNPACK_FLIP_Y_WEBGL,!1);const [d,e]=ni(b);!a.l||d===a.i.canvas.width&&e===a.i.canvas.height||(a.i.canvas.width=d,a.i.canvas.height=e);return[d,e]}\nfunction pi(a,b,c){a.m||console.error(\"No wasm multistream support detected: ensure dependency inclusion of :gl_graph_runner_internal_multi_input target\");const d=new Uint32Array(b.length);for(let e=0;e>2);c(b);for(const e of d)a.i._free(e);a.i._free(b)}function qi(a,b,c){a.i.simpleListeners=a.i.simpleListeners||{};a.i.simpleListeners[b]=c}\nfunction ri(a,b,c){let d=[];a.i.simpleListeners=a.i.simpleListeners||{};a.i.simpleListeners[b]=(e,f,g)=>{f?(c(d,g),d=[]):d.push(e)}}\nvar si=class{constructor(a,b){this.l=!0;this.i=a;this.g=null;this.h=0;this.m=typeof this.i._addIntToInputStream===\"function\";b!==void 0?this.i.canvas=b:li()?this.i.canvas=new OffscreenCanvas(1,1):(console.warn(\"OffscreenCanvas not supported and GraphRunner constructor glCanvas parameter is undefined. Creating backup canvas.\"),this.i.canvas=document.createElement(\"canvas\"))}async initializeGraph(a){const b=await (await fetch(a)).arrayBuffer();a=!(a.endsWith(\".pbtxt\")||a.endsWith(\".textproto\"));this.setGraph(new Uint8Array(b),\na)}setGraphFromString(a){this.setGraph((new TextEncoder).encode(a),!1)}setGraph(a,b){const c=a.length,d=this.i._malloc(c);this.i.HEAPU8.set(a,d);b?this.i._changeBinaryGraph(c,d):this.i._changeTextGraph(c,d);this.i._free(d)}configureAudio(a,b,c,d,e){this.i._configureAudio||console.warn('Attempting to use configureAudio without support for input audio. Is build dep \":gl_graph_runner_audio\" missing?');T(this,d||\"input_audio\",f=>{e=e||\"audio_header\";T(this,e,g=>{this.i._configureAudio(f,g,a,b??0,c)})})}setAutoResizeCanvas(a){this.l=\na}setAutoRenderToScreen(a){this.i._setAutoRenderToScreen(a)}setGpuBufferVerticalFlip(a){this.i.gpuOriginForWebTexturesIsBottomLeft=a}ca(a){qi(this,\"__graph_config__\",b=>{a(b)});T(this,\"__graph_config__\",b=>{this.i._getGraphConfig(b,void 0)});delete this.i.simpleListeners.__graph_config__}attachErrorListener(a){this.i.errorListener=a}attachEmptyPacketListener(a,b){this.i.emptyPacketListeners=this.i.emptyPacketListeners||{};this.i.emptyPacketListeners[a]=b}addAudioToStream(a,b,c){this.addAudioToStreamWithShape(a,\n0,0,b,c)}addAudioToStreamWithShape(a,b,c,d,e){const f=a.length*4;this.h!==f&&(this.g&&this.i._free(this.g),this.g=this.i._malloc(f),this.h=f);this.i.HEAPF32.set(a,this.g/4);T(this,d,g=>{this.i._addAudioToInputStream(this.g,b,c,g,e)})}addGpuBufferToStream(a,b,c){T(this,b,d=>{const [e,f]=oi(this,a,d);this.i._addBoundTextureToStream(d,e,f,c)})}addBoolToStream(a,b,c){T(this,b,d=>{this.i._addBoolToInputStream(a,d,c)})}addDoubleToStream(a,b,c){T(this,b,d=>{this.i._addDoubleToInputStream(a,d,c)})}addFloatToStream(a,\nb,c){T(this,b,d=>{this.i._addFloatToInputStream(a,d,c)})}addIntToStream(a,b,c){T(this,b,d=>{this.i._addIntToInputStream(a,d,c)})}addUintToStream(a,b,c){T(this,b,d=>{this.i._addUintToInputStream(a,d,c)})}addStringToStream(a,b,c){T(this,b,d=>{T(this,a,e=>{this.i._addStringToInputStream(e,d,c)})})}addStringRecordToStream(a,b,c){T(this,b,d=>{pi(this,Object.keys(a),e=>{pi(this,Object.values(a),f=>{this.i._addFlatHashMapToInputStream(e,f,Object.keys(a).length,d,c)})})})}addProtoToStream(a,b,c,d){T(this,\nc,e=>{T(this,b,f=>{const g=this.i._malloc(a.length);this.i.HEAPU8.set(a,g);this.i._addProtoToInputStream(g,a.length,f,e,d);this.i._free(g)})})}addEmptyPacketToStream(a,b){T(this,a,c=>{this.i._addEmptyPacketToInputStream(c,b)})}addBoolVectorToStream(a,b,c){T(this,b,d=>{const e=this.i._allocateBoolVector(a.length);if(!e)throw Error(\"Unable to allocate new bool vector on heap.\");for(const f of a)this.i._addBoolVectorEntry(e,f);this.i._addBoolVectorToInputStream(e,d,c)})}addDoubleVectorToStream(a,b,c){T(this,\nb,d=>{const e=this.i._allocateDoubleVector(a.length);if(!e)throw Error(\"Unable to allocate new double vector on heap.\");for(const f of a)this.i._addDoubleVectorEntry(e,f);this.i._addDoubleVectorToInputStream(e,d,c)})}addFloatVectorToStream(a,b,c){T(this,b,d=>{const e=this.i._allocateFloatVector(a.length);if(!e)throw Error(\"Unable to allocate new float vector on heap.\");for(const f of a)this.i._addFloatVectorEntry(e,f);this.i._addFloatVectorToInputStream(e,d,c)})}addIntVectorToStream(a,b,c){T(this,\nb,d=>{const e=this.i._allocateIntVector(a.length);if(!e)throw Error(\"Unable to allocate new int vector on heap.\");for(const f of a)this.i._addIntVectorEntry(e,f);this.i._addIntVectorToInputStream(e,d,c)})}addUintVectorToStream(a,b,c){T(this,b,d=>{const e=this.i._allocateUintVector(a.length);if(!e)throw Error(\"Unable to allocate new unsigned int vector on heap.\");for(const f of a)this.i._addUintVectorEntry(e,f);this.i._addUintVectorToInputStream(e,d,c)})}addStringVectorToStream(a,b,c){T(this,b,d=>\n{const e=this.i._allocateStringVector(a.length);if(!e)throw Error(\"Unable to allocate new string vector on heap.\");for(const f of a)T(this,f,g=>{this.i._addStringVectorEntry(e,g)});this.i._addStringVectorToInputStream(e,d,c)})}addBoolToInputSidePacket(a,b){T(this,b,c=>{this.i._addBoolToInputSidePacket(a,c)})}addDoubleToInputSidePacket(a,b){T(this,b,c=>{this.i._addDoubleToInputSidePacket(a,c)})}addFloatToInputSidePacket(a,b){T(this,b,c=>{this.i._addFloatToInputSidePacket(a,c)})}addIntToInputSidePacket(a,\nb){T(this,b,c=>{this.i._addIntToInputSidePacket(a,c)})}addUintToInputSidePacket(a,b){T(this,b,c=>{this.i._addUintToInputSidePacket(a,c)})}addStringToInputSidePacket(a,b){T(this,b,c=>{T(this,a,d=>{this.i._addStringToInputSidePacket(d,c)})})}addProtoToInputSidePacket(a,b,c){T(this,c,d=>{T(this,b,e=>{const f=this.i._malloc(a.length);this.i.HEAPU8.set(a,f);this.i._addProtoToInputSidePacket(f,a.length,e,d);this.i._free(f)})})}addBoolVectorToInputSidePacket(a,b){T(this,b,c=>{const d=this.i._allocateBoolVector(a.length);\nif(!d)throw Error(\"Unable to allocate new bool vector on heap.\");for(const e of a)this.i._addBoolVectorEntry(d,e);this.i._addBoolVectorToInputSidePacket(d,c)})}addDoubleVectorToInputSidePacket(a,b){T(this,b,c=>{const d=this.i._allocateDoubleVector(a.length);if(!d)throw Error(\"Unable to allocate new double vector on heap.\");for(const e of a)this.i._addDoubleVectorEntry(d,e);this.i._addDoubleVectorToInputSidePacket(d,c)})}addFloatVectorToInputSidePacket(a,b){T(this,b,c=>{const d=this.i._allocateFloatVector(a.length);\nif(!d)throw Error(\"Unable to allocate new float vector on heap.\");for(const e of a)this.i._addFloatVectorEntry(d,e);this.i._addFloatVectorToInputSidePacket(d,c)})}addIntVectorToInputSidePacket(a,b){T(this,b,c=>{const d=this.i._allocateIntVector(a.length);if(!d)throw Error(\"Unable to allocate new int vector on heap.\");for(const e of a)this.i._addIntVectorEntry(d,e);this.i._addIntVectorToInputSidePacket(d,c)})}addUintVectorToInputSidePacket(a,b){T(this,b,c=>{const d=this.i._allocateUintVector(a.length);\nif(!d)throw Error(\"Unable to allocate new unsigned int vector on heap.\");for(const e of a)this.i._addUintVectorEntry(d,e);this.i._addUintVectorToInputSidePacket(d,c)})}addStringVectorToInputSidePacket(a,b){T(this,b,c=>{const d=this.i._allocateStringVector(a.length);if(!d)throw Error(\"Unable to allocate new string vector on heap.\");for(const e of a)T(this,e,f=>{this.i._addStringVectorEntry(d,f)});this.i._addStringVectorToInputSidePacket(d,c)})}attachBoolListener(a,b){qi(this,a,b);T(this,a,c=>{this.i._attachBoolListener(c)})}attachBoolVectorListener(a,\nb){ri(this,a,b);T(this,a,c=>{this.i._attachBoolVectorListener(c)})}attachIntListener(a,b){qi(this,a,b);T(this,a,c=>{this.i._attachIntListener(c)})}attachIntVectorListener(a,b){ri(this,a,b);T(this,a,c=>{this.i._attachIntVectorListener(c)})}attachUintListener(a,b){qi(this,a,b);T(this,a,c=>{this.i._attachUintListener(c)})}attachUintVectorListener(a,b){ri(this,a,b);T(this,a,c=>{this.i._attachUintVectorListener(c)})}attachDoubleListener(a,b){qi(this,a,b);T(this,a,c=>{this.i._attachDoubleListener(c)})}attachDoubleVectorListener(a,\nb){ri(this,a,b);T(this,a,c=>{this.i._attachDoubleVectorListener(c)})}attachFloatListener(a,b){qi(this,a,b);T(this,a,c=>{this.i._attachFloatListener(c)})}attachFloatVectorListener(a,b){ri(this,a,b);T(this,a,c=>{this.i._attachFloatVectorListener(c)})}attachStringListener(a,b){qi(this,a,b);T(this,a,c=>{this.i._attachStringListener(c)})}attachStringVectorListener(a,b){ri(this,a,b);T(this,a,c=>{this.i._attachStringVectorListener(c)})}attachProtoListener(a,b,c){qi(this,a,b);T(this,a,d=>{this.i._attachProtoListener(d,\nc||!1)})}attachProtoVectorListener(a,b,c){ri(this,a,b);T(this,a,d=>{this.i._attachProtoVectorListener(d,c||!1)})}attachAudioListener(a,b,c){this.i._attachAudioListener||console.warn('Attempting to use attachAudioListener without support for output audio. Is build dep \":gl_graph_runner_audio_out\" missing?');qi(this,a,(d,e)=>{d=new Float32Array(d.buffer,d.byteOffset,d.length/4);b(d,e)});T(this,a,d=>{this.i._attachAudioListener(d,c||!1)})}finishProcessing(){this.i._waitUntilIdle()}closeGraph(){this.i._closeGraph();\nthis.i.simpleListeners=void 0;this.i.emptyPacketListeners=void 0}},ti=async(a,b,c,d,e)=>{b&&await mi(b);if(!self.ModuleFactory)throw Error(\"ModuleFactory not set.\");if(c&&(await mi(c),!self.ModuleFactory))throw Error(\"ModuleFactory not set.\");self.Module&&e&&(b=self.Module,b.locateFile=e.locateFile,e.mainScriptUrlOrBlob&&(b.mainScriptUrlOrBlob=e.mainScriptUrlOrBlob));e=await self.ModuleFactory(self.Module||e);self.ModuleFactory=self.Module=void 0;return new a(e,d)};async function ui(a,b,c,d){a=await ti(a,c.wasmLoaderPath,c.assetLoaderPath,b,{locateFile(e){return e.endsWith(\".wasm\")?c.wasmBinaryPath.toString():c.assetBinaryPath&&e.endsWith(\".data\")?c.assetBinaryPath.toString():e}});await a.o(d);return a}async function vi(a,b,c,d){return ui(a,b,c,d)}function wi(a,b){let c=y(a.baseOptions,$g,3);if(!c){var d=c=new $g,e=new ng;Gd(d,4,ah,e)}\"delegate\"in b&&(b.delegate===\"GPU\"?(b=c,d=new jg,Gd(b,2,ah,d)):(b=c,d=new ng,Gd(b,4,ah,d)));z(a.baseOptions,$g,3,c)}\nfunction xi(a,b){const c=y(a.baseOptions,bh,1)||new bh;typeof b===\"string\"?(v(c,2,qc(b)),v(c,1)):b instanceof Uint8Array&&(v(c,1,mb(b,!1)),v(c,2));z(a.baseOptions,bh,1,c)}function yi(a){try{const b=a.H.length;if(b===1)throw Error(a.H[0].message);if(b>1)throw Error(\"Encountered multiple errors: \"+a.H.map(c=>c.message).join(\", \"));}finally{a.H=[]}}function U(a,b){a.C=Math.max(a.C,b)}\nfunction zi(a,b){a.B=new sg;Kd(a.B,2,\"PassThroughCalculator\");M(a.B,\"free_memory\");O(a.B,\"free_memory_unused_out\");P(b,\"free_memory\");xg(b,a.B)}function Ai(a,b){M(a.B,b);O(a.B,b+\"_unused_out\")}function Bi(a){a.g.addBoolToStream(!0,\"free_memory\",a.C)}\nvar Ci=class{constructor(a){this.g=a;this.H=[];this.C=0;this.g.setAutoRenderToScreen(!1)}l(a,b=!0){if(b){const c=a.baseOptions||{};if(a.baseOptions?.modelAssetBuffer&&a.baseOptions?.modelAssetPath)throw Error(\"Cannot set both baseOptions.modelAssetPath and baseOptions.modelAssetBuffer\");if(!(y(this.baseOptions,bh,1)?.g()||y(this.baseOptions,bh,1)?.l()||a.baseOptions?.modelAssetBuffer||a.baseOptions?.modelAssetPath))throw Error(\"Either baseOptions.modelAssetPath or baseOptions.modelAssetBuffer must be set\");\nwi(this,c);if(c.modelAssetPath)return fetch(c.modelAssetPath.toString()).then(d=>{if(d.ok)return d.arrayBuffer();throw Error(`Failed to fetch model: ${c.modelAssetPath} (${d.status})`);}).then(d=>{try{this.g.i.FS_unlink(\"/model.dat\")}catch{}this.g.i.FS_createDataFile(\"/\",\"model.dat\",new Uint8Array(d),!0,!1,!1);xi(this,\"/model.dat\");this.m();this.L()});if(c.modelAssetBuffer instanceof Uint8Array)xi(this,c.modelAssetBuffer);else if(c.modelAssetBuffer)return ji(c.modelAssetBuffer).then(d=>{xi(this,d);\nthis.m();this.L()})}this.m();this.L();return Promise.resolve()}L(){}ca(){let a;this.g.ca(b=>{a=Ag(b)});if(!a)throw Error(\"Failed to retrieve CalculatorGraphConfig\");return a}setGraph(a,b){this.g.attachErrorListener((c,d)=>{this.H.push(Error(d))});this.g.Ja();this.g.setGraph(a,b);this.B=void 0;yi(this)}finishProcessing(){this.g.finishProcessing();yi(this)}close(){this.B=void 0;this.g.closeGraph()}};Ci.prototype.close=Ci.prototype.close;export {Ci as TaskRunner};function Di(a,b){if(!a)throw Error(`Unable to obtain required WebGL resource: ${b}`);return a}class Ei{constructor(a,b,c,d){this.g=a;this.h=b;this.m=c;this.l=d}bind(){this.g.bindVertexArray(this.h)}close(){this.g.deleteVertexArray(this.h);this.g.deleteBuffer(this.m);this.g.deleteBuffer(this.l)}}\nfunction Fi(a,b,c){const d=a.g;c=Di(d.createShader(c),\"Failed to create WebGL shader\");d.shaderSource(c,b);d.compileShader(c);if(!d.getShaderParameter(c,d.COMPILE_STATUS))throw Error(`Could not compile WebGL shader: ${d.getShaderInfoLog(c)}`);d.attachShader(a.h,c);return c}\nfunction Gi(a,b){const c=a.g,d=Di(c.createVertexArray(),\"Failed to create vertex array\");c.bindVertexArray(d);const e=Di(c.createBuffer(),\"Failed to create buffer\");c.bindBuffer(c.ARRAY_BUFFER,e);c.enableVertexAttribArray(a.O);c.vertexAttribPointer(a.O,2,c.FLOAT,!1,0,0);c.bufferData(c.ARRAY_BUFFER,new Float32Array([-1,-1,-1,1,1,1,1,-1]),c.STATIC_DRAW);const f=Di(c.createBuffer(),\"Failed to create buffer\");c.bindBuffer(c.ARRAY_BUFFER,f);c.enableVertexAttribArray(a.L);c.vertexAttribPointer(a.L,2,c.FLOAT,\n!1,0,0);c.bufferData(c.ARRAY_BUFFER,new Float32Array(b?[0,1,0,0,1,0,1,1]:[0,0,0,1,1,1,1,0]),c.STATIC_DRAW);c.bindBuffer(c.ARRAY_BUFFER,null);c.bindVertexArray(null);return new Ei(c,d,e,f)}function Hi(a,b){if(!a.g)a.g=b;else if(b!==a.g)throw Error(\"Cannot change GL context once initialized\");}function Ii(a,b,c,d){Hi(a,b);a.h||(a.m(),a.D());c?(a.u||(a.u=Gi(a,!0)),c=a.u):(a.A||(a.A=Gi(a,!1)),c=a.A);b.useProgram(a.h);c.bind();a.l();a=d();c.g.bindVertexArray(null);return a}\nfunction Ji(a,b,c){Hi(a,b);a=Di(b.createTexture(),\"Failed to create texture\");b.bindTexture(b.TEXTURE_2D,a);b.texParameteri(b.TEXTURE_2D,b.TEXTURE_WRAP_S,b.CLAMP_TO_EDGE);b.texParameteri(b.TEXTURE_2D,b.TEXTURE_WRAP_T,b.CLAMP_TO_EDGE);b.texParameteri(b.TEXTURE_2D,b.TEXTURE_MIN_FILTER,c??b.LINEAR);b.texParameteri(b.TEXTURE_2D,b.TEXTURE_MAG_FILTER,c??b.LINEAR);b.bindTexture(b.TEXTURE_2D,null);return a}\nfunction Ki(a,b,c){Hi(a,b);a.B||(a.B=Di(b.createFramebuffer(),\"Failed to create framebuffe.\"));b.bindFramebuffer(b.FRAMEBUFFER,a.B);b.framebufferTexture2D(b.FRAMEBUFFER,b.COLOR_ATTACHMENT0,b.TEXTURE_2D,c,0)}function Li(a){a.g?.bindFramebuffer(a.g.FRAMEBUFFER,null)}\nvar Mi=class{H(){return\"\\n precision mediump float;\\n varying vec2 vTex;\\n uniform sampler2D inputTexture;\\n void main() {\\n gl_FragColor = texture2D(inputTexture, vTex);\\n }\\n \"}m(){const a=this.g;this.h=Di(a.createProgram(),\"Failed to create WebGL program\");this.X=Fi(this,\"\\n attribute vec2 aVertex;\\n attribute vec2 aTex;\\n varying vec2 vTex;\\n void main(void) {\\n gl_Position = vec4(aVertex, 0.0, 1.0);\\n vTex = aTex;\\n }\",a.VERTEX_SHADER);this.W=Fi(this,this.H(),a.FRAGMENT_SHADER);\na.linkProgram(this.h);if(!a.getProgramParameter(this.h,a.LINK_STATUS))throw Error(`Error during program linking: ${a.getProgramInfoLog(this.h)}`);this.O=a.getAttribLocation(this.h,\"aVertex\");this.L=a.getAttribLocation(this.h,\"aTex\")}D(){}l(){}close(){if(this.h){const a=this.g;a.deleteProgram(this.h);a.deleteShader(this.X);a.deleteShader(this.W)}this.B&&this.g.deleteFramebuffer(this.B);this.A&&this.A.close();this.u&&this.u.close()}};function Ni(a,b){if(a!==b)return!1;a=a.entries();b=b.entries();for(const [d,e]of a){a=d;const f=e;var c=b.next();if(c.done)return!1;const [g,h]=c.value;c=h;if(a!==g||f[0]!==c[0]||f[1]!==c[1]||f[2]!==c[2]||f[3]!==c[3])return!1}return!!b.next().done}\nfunction Oi(a,b,c,d){const e=a.g;e.activeTexture(e.TEXTURE0);e.bindTexture(e.TEXTURE_2D,b);e.activeTexture(e.TEXTURE1);e.bindTexture(e.TEXTURE_2D,a.C);e.texImage2D(e.TEXTURE_2D,0,e.RGBA,e.RGBA,e.UNSIGNED_BYTE,c);if(a.I&&Ni(a.I,d))e.activeTexture(e.TEXTURE2),e.bindTexture(e.TEXTURE_2D,a.j);else{a.I=d;const f=Array(1024).fill(0);d.forEach((g,h)=>{if(g.length!==4)throw Error(`Color at index ${h} is not a four-channel value.`);f[h*4]=g[0];f[h*4+1]=g[1];f[h*4+2]=g[2];f[h*4+3]=g[3]});e.activeTexture(e.TEXTURE2);\ne.bindTexture(e.TEXTURE_2D,a.j);e.texImage2D(e.TEXTURE_2D,0,e.RGBA,256,1,0,e.RGBA,e.UNSIGNED_BYTE,new Uint8Array(f))}}\nvar Pi=class extends Mi{H(){return\"\\n precision mediump float;\\n uniform sampler2D backgroundTexture;\\n uniform sampler2D maskTexture;\\n uniform sampler2D colorMappingTexture;\\n varying vec2 vTex;\\n void main() {\\n vec4 backgroundColor = texture2D(backgroundTexture, vTex);\\n float category = texture2D(maskTexture, vTex).r;\\n vec4 categoryColor = texture2D(colorMappingTexture, vec2(category, 0.0));\\n gl_FragColor = mix(backgroundColor, categoryColor, categoryColor.a);\\n }\\n \"}D(){const a=this.g;\na.activeTexture(a.TEXTURE1);this.C=Ji(this,a,a.LINEAR);a.activeTexture(a.TEXTURE2);this.j=Ji(this,a,a.NEAREST)}m(){super.m();const a=this.g;this.P=Di(a.getUniformLocation(this.h,\"backgroundTexture\"),\"Uniform location\");this.U=Di(a.getUniformLocation(this.h,\"colorMappingTexture\"),\"Uniform location\");this.M=Di(a.getUniformLocation(this.h,\"maskTexture\"),\"Uniform location\")}l(){super.l();const a=this.g;a.uniform1i(this.M,0);a.uniform1i(this.P,1);a.uniform1i(this.U,2)}close(){this.C&&this.g.deleteTexture(this.C);\nthis.j&&this.g.deleteTexture(this.j);super.close()}};var Qi=class extends Mi{H(){return\"\\n precision mediump float;\\n uniform sampler2D maskTexture;\\n uniform sampler2D defaultTexture;\\n uniform sampler2D overlayTexture;\\n varying vec2 vTex;\\n void main() {\\n float confidence = texture2D(maskTexture, vTex).r;\\n vec4 defaultColor = texture2D(defaultTexture, vTex);\\n vec4 overlayColor = texture2D(overlayTexture, vTex);\\n // Apply the alpha from the overlay and merge in the default color\\n overlayColor = mix(defaultColor, overlayColor, overlayColor.a);\\n gl_FragColor = mix(defaultColor, overlayColor, confidence);\\n }\\n \"}D(){const a=\nthis.g;a.activeTexture(a.TEXTURE1);this.j=Ji(this,a);a.activeTexture(a.TEXTURE2);this.C=Ji(this,a)}m(){super.m();const a=this.g;this.M=Di(a.getUniformLocation(this.h,\"defaultTexture\"),\"Uniform location\");this.P=Di(a.getUniformLocation(this.h,\"overlayTexture\"),\"Uniform location\");this.I=Di(a.getUniformLocation(this.h,\"maskTexture\"),\"Uniform location\")}l(){super.l();const a=this.g;a.uniform1i(this.I,0);a.uniform1i(this.M,1);a.uniform1i(this.P,2)}close(){this.j&&this.g.deleteTexture(this.j);this.C&&\nthis.g.deleteTexture(this.C);super.close()}};function Ri(a,b){switch(b){case 0:return a.g.find(c=>c instanceof Uint8Array);case 1:return a.g.find(c=>c instanceof Float32Array);case 2:return a.g.find(c=>typeof WebGLTexture!==\"undefined\"&&c instanceof WebGLTexture);default:throw Error(`Type is not supported: ${b}`);}}function Si(a){var b=Ri(a,0);b||(b=Ti(a),b=new Uint8Array(b.map(c=>Math.round(255*c))),a.g.push(b));return b}\nfunction Ti(a){var b=Ri(a,1);if(!b){if(b=Ri(a,0))b=(new Float32Array(b)).map(d=>d/255);else{b=new Float32Array(a.width*a.height);const d=Ui(a);var c=Vi(a);const e=Wi(a);Ki(c,d,e);if(\"iPad Simulator;iPhone Simulator;iPod Simulator;iPad;iPhone;iPod\".split(\";\").includes(navigator.platform)||navigator.userAgent.includes(\"Mac\")&&\"document\"in self&&\"ontouchend\"in self.document){c=new Float32Array(a.width*a.height*4);d.readPixels(0,0,a.width,a.height,d.RGBA,d.FLOAT,c);for(let f=0,g=0;f{Xi(this);d.clearColor(0,0,0,0);d.clear(d.COLOR_BUFFER_BIT);d.drawArrays(d.TRIANGLE_FAN,0,4);Zi(this)});Li(e);Zi(this)}else throw Error(`Type is not supported: ${b}`);a.push(c)}return new V(a,\nthis.m,this.R(),this.canvas,this.l,this.width,this.height)}close(){this.j&&Ui(this).deleteTexture(Ri(this,2));aj=-1}},$i;V.prototype.close=V.prototype.close;V.prototype.clone=V.prototype.clone;V.prototype.getAsWebGLTexture=V.prototype.N;V.prototype.getAsFloat32Array=V.prototype.ia;V.prototype.getAsUint8Array=V.prototype.ja;V.prototype.hasWebGLTexture=V.prototype.R;V.prototype.hasFloat32Array=V.prototype.ka;V.prototype.hasUint8Array=V.prototype.Fa;var aj=250;export {V as MPMask};const bj={color:\"white\",lineWidth:4,radius:6};function cj(a){a=a||{};return{...bj,fillColor:a.color,...a}}function dj(a,b){return a instanceof Function?a(b):a}function ej(a,b,c){return Math.max(Math.min(b,c),Math.min(Math.max(b,c),a))}function fj(a){if(!a.l)throw Error(\"CPU rendering requested but CanvasRenderingContext2D not provided.\");return a.l}function gj(a){if(!a.j)throw Error(\"GPU rendering requested but WebGL2RenderingContext not provided.\");return a.j}\nfunction hj(a){a.g||(a.g=new Pi);return a.g}function ij(a){a.h||(a.h=new Qi);return a.h}function jj(a,b,c){if(b.R())c(b.N());else{const d=b.ka()?b.ia():b.ja();a.m=a.m??new Mi;const e=gj(a);a=new V([d],b.m,!1,e.canvas,a.m,b.width,b.height);c(a.N());a.close()}}\nfunction kj(a,b,c,d){const e=hj(a),f=gj(a),g=Array.isArray(c)?new ImageData(new Uint8ClampedArray(c),1,1):c;Ii(e,f,!0,()=>{Oi(e,b,g,d);f.clearColor(0,0,0,0);f.clear(f.COLOR_BUFFER_BIT);f.drawArrays(f.TRIANGLE_FAN,0,4);const h=e.g;h.activeTexture(h.TEXTURE0);h.bindTexture(h.TEXTURE_2D,null);h.activeTexture(h.TEXTURE1);h.bindTexture(h.TEXTURE_2D,null);h.activeTexture(h.TEXTURE2);h.bindTexture(h.TEXTURE_2D,null)})}\nfunction lj(a,b,c,d){const e=gj(a);jj(a,b,f=>{kj(a,f,c,d);f=fj(a);f.drawImage(e.canvas,0,0,f.canvas.width,f.canvas.height)})}\nfunction mj(a,b,c,d){const e=gj(a),f=ij(a),g=Array.isArray(c)?new ImageData(new Uint8ClampedArray(c),1,1):c,h=Array.isArray(d)?new ImageData(new Uint8ClampedArray(d),1,1):d;Ii(f,e,!0,()=>{var k=f.g;k.activeTexture(k.TEXTURE0);k.bindTexture(k.TEXTURE_2D,b);k.activeTexture(k.TEXTURE1);k.bindTexture(k.TEXTURE_2D,f.j);k.texImage2D(k.TEXTURE_2D,0,k.RGBA,k.RGBA,k.UNSIGNED_BYTE,g);k.activeTexture(k.TEXTURE2);k.bindTexture(k.TEXTURE_2D,f.C);k.texImage2D(k.TEXTURE_2D,0,k.RGBA,k.RGBA,k.UNSIGNED_BYTE,h);e.clearColor(0,\n0,0,0);e.clear(e.COLOR_BUFFER_BIT);e.drawArrays(e.TRIANGLE_FAN,0,4);e.bindTexture(e.TEXTURE_2D,null);k=f.g;k.activeTexture(k.TEXTURE0);k.bindTexture(k.TEXTURE_2D,null);k.activeTexture(k.TEXTURE1);k.bindTexture(k.TEXTURE_2D,null);k.activeTexture(k.TEXTURE2);k.bindTexture(k.TEXTURE_2D,null)})}function nj(a,b,c,d){const e=gj(a);jj(a,b,f=>{mj(a,f,c,d);f=fj(a);f.drawImage(e.canvas,0,0,f.canvas.width,f.canvas.height)})}\nvar oj=class{constructor(a,b){typeof CanvasRenderingContext2D!==\"undefined\"&&a instanceof CanvasRenderingContext2D||a instanceof OffscreenCanvasRenderingContext2D?(this.l=a,this.j=b):this.j=a}ya(a,b){if(a){var c=fj(this);b=cj(b);c.save();var d=c.canvas,e=0;for(const f of a)c.fillStyle=dj(b.fillColor,{index:e,from:f}),c.strokeStyle=dj(b.color,{index:e,from:f}),c.lineWidth=dj(b.lineWidth,{index:e,from:f}),a=new Path2D,a.arc(f.x*d.width,f.y*d.height,dj(b.radius,{index:e,from:f}),0,2*Math.PI),c.fill(a),\nc.stroke(a),++e;c.restore()}}xa(a,b,c){if(a&&b){var d=fj(this);c=cj(c);d.save();var e=d.canvas,f=0;for(const g of b){d.beginPath();b=a[g.start];const h=a[g.end];b&&h&&(d.strokeStyle=dj(c.color,{index:f,from:b,to:h}),d.lineWidth=dj(c.lineWidth,{index:f,from:b,to:h}),d.moveTo(b.x*e.width,b.y*e.height),d.lineTo(h.x*e.width,h.y*e.height));++f;d.stroke()}d.restore()}}ua(a,b){const c=fj(this);b=cj(b);c.save();c.beginPath();c.lineWidth=dj(b.lineWidth,{});c.strokeStyle=dj(b.color,{});c.fillStyle=dj(b.fillColor,\n{});c.moveTo(a.originX,a.originY);c.lineTo(a.originX+a.width,a.originY);c.lineTo(a.originX+a.width,a.originY+a.height);c.lineTo(a.originX,a.originY+a.height);c.lineTo(a.originX,a.originY);c.stroke();c.fill();c.restore()}va(a,b,c=[0,0,0,255]){this.l?lj(this,a,c,b):kj(this,a.N(),c,b)}wa(a,b,c){this.l?nj(this,a,b,c):mj(this,a.N(),b,c)}close(){this.g?.close();this.g=void 0;this.h?.close();this.h=void 0;this.m?.close();this.m=void 0}};oj.prototype.close=oj.prototype.close;\noj.prototype.drawConfidenceMask=oj.prototype.wa;oj.prototype.drawCategoryMask=oj.prototype.va;oj.prototype.drawBoundingBox=oj.prototype.ua;oj.prototype.drawConnectors=oj.prototype.xa;oj.prototype.drawLandmarks=oj.prototype.ya;oj.lerp=function(a,b,c,d,e){return ej(d*(1-(a-b)/(c-b))+e*(1-(c-a)/(c-b)),d,e)};oj.clamp=ej;export {oj as DrawingUtils};function pj(a,b){switch(b){case 0:return a.g.find(c=>c instanceof ImageData);case 1:return a.g.find(c=>typeof ImageBitmap!==\"undefined\"&&c instanceof ImageBitmap);case 2:return a.g.find(c=>typeof WebGLTexture!==\"undefined\"&&c instanceof WebGLTexture);default:throw Error(`Type is not supported: ${b}`);}}\nfunction qj(a){var b=pj(a,0);if(!b){b=rj(a);const c=sj(a),d=new Uint8Array(a.width*a.height*4),e=tj(a);Ki(c,b,e);b.readPixels(0,0,a.width,a.height,b.RGBA,b.UNSIGNED_BYTE,d);Li(c);b=new ImageData(new Uint8ClampedArray(d.buffer),a.width,a.height);a.g.push(b)}return b}function tj(a){let b=pj(a,2);if(!b){const c=rj(a);b=uj(a);const d=pj(a,1)||qj(a);c.texImage2D(c.TEXTURE_2D,0,c.RGBA,c.RGBA,c.UNSIGNED_BYTE,d);vj(a)}return b}\nfunction rj(a){if(!a.canvas)throw Error(\"Conversion to different image formats require that a canvas is passed when initializing the image.\");a.h||(a.h=Di(a.canvas.getContext(\"webgl2\"),\"You cannot use a canvas that is already bound to a different type of rendering context.\"));return a.h}function sj(a){a.l||(a.l=new Mi);return a.l}\nfunction uj(a){const b=rj(a);b.viewport(0,0,a.width,a.height);b.activeTexture(b.TEXTURE0);let c=pj(a,2);c||(c=Ji(sj(a),b),a.g.push(c),a.m=!0);b.bindTexture(b.TEXTURE_2D,c);return c}function vj(a){a.h.bindTexture(a.h.TEXTURE_2D,null)}\nfunction wj(a){const b=rj(a);return Ii(sj(a),b,!0,()=>xj(a,()=>{b.bindFramebuffer(b.FRAMEBUFFER,null);b.clearColor(0,0,0,0);b.clear(b.COLOR_BUFFER_BIT);b.drawArrays(b.TRIANGLE_FAN,0,4);if(!(a.canvas instanceof OffscreenCanvas))throw Error(\"Conversion to ImageBitmap requires that the MediaPipe Tasks is initialized with an OffscreenCanvas\");return a.canvas.transferToImageBitmap()}))}\nfunction xj(a,b){const c=a.canvas;if(c.width===a.width&&c.height===a.height)return b();const d=c.width,e=c.height;c.width=a.width;c.height=a.height;a=b();c.width=d;c.height=e;return a}\nvar W=class{constructor(a,b,c,d,e,f,g){this.g=a;this.j=b;this.m=c;this.canvas=d;this.l=e;this.width=f;this.height=g;if(this.j||this.m)--yj,yj===0&&console.error(\"You seem to be creating MPImage instances without invoking .close(). This leaks resources.\")}Ea(){return!!pj(this,0)}la(){return!!pj(this,1)}R(){return!!pj(this,2)}Ca(){return qj(this)}Ba(){var a=pj(this,1);a||(tj(this),uj(this),a=wj(this),vj(this),this.g.push(a),this.j=!0);return a}N(){return tj(this)}clone(){const a=[];for(const b of this.g){let c;\nif(b instanceof ImageData)c=new ImageData(b.data,this.width,this.height);else if(b instanceof WebGLTexture){const d=rj(this),e=sj(this);d.activeTexture(d.TEXTURE1);c=Ji(e,d);d.bindTexture(d.TEXTURE_2D,c);d.texImage2D(d.TEXTURE_2D,0,d.RGBA,this.width,this.height,0,d.RGBA,d.UNSIGNED_BYTE,null);d.bindTexture(d.TEXTURE_2D,null);Ki(e,d,c);Ii(e,d,!1,()=>{uj(this);d.clearColor(0,0,0,0);d.clear(d.COLOR_BUFFER_BIT);d.drawArrays(d.TRIANGLE_FAN,0,4);vj(this)});Li(e);vj(this)}else if(b instanceof ImageBitmap)tj(this),\nuj(this),c=wj(this),vj(this);else throw Error(`Type is not supported: ${b}`);a.push(c)}return new W(a,this.la(),this.R(),this.canvas,this.l,this.width,this.height)}close(){this.j&&pj(this,1).close();this.m&&rj(this).deleteTexture(pj(this,2));yj=-1}};W.prototype.close=W.prototype.close;W.prototype.clone=W.prototype.clone;W.prototype.getAsWebGLTexture=W.prototype.N;W.prototype.getAsImageBitmap=W.prototype.Ba;W.prototype.getAsImageData=W.prototype.Ca;W.prototype.hasWebGLTexture=W.prototype.R;\nW.prototype.hasImageBitmap=W.prototype.la;W.prototype.hasImageData=W.prototype.Ea;var yj=250;export {W as MPImage};function zj(...a){return a.map(([b,c])=>({start:b,end:c}))};const Aj=function(a){return class extends a{Ja(){this.i._registerModelResourcesGraphService()}}}(function(a){return class extends a{get ga(){return this.i}pa(b,c,d){T(this,c,e=>{const [f,g]=oi(this,b,e);this.ga._addBoundTextureAsImageToStream(e,f,g,d)})}Z(b,c){qi(this,b,c);T(this,b,d=>{this.ga._attachImageListener(d)})}aa(b,c){ri(this,b,c);T(this,b,d=>{this.ga._attachImageVectorListener(d)})}}}(si));var Bj=class extends Aj{};\nasync function X(a,b,c){const d=c.canvas??(li()?void 0:document.createElement(\"canvas\"));return vi(a,d,b,c)}\nfunction Cj(a,b,c,d){if(a.U){const f=new Pg;if(c?.regionOfInterest){if(!a.oa)throw Error(\"This task doesn't support region-of-interest.\");var e=c.regionOfInterest;if(e.left>=e.right||e.top>=e.bottom)throw Error(\"Expected RectF with left < right and top < bottom.\");if(e.left<0||e.top<0||e.right>1||e.bottom>1)throw Error(\"Expected RectF values to be in [0,1].\");B(f,1,(e.left+e.right)/2);B(f,2,(e.top+e.bottom)/2);B(f,4,e.right-e.left);B(f,3,e.bottom-e.top)}else B(f,1,.5),B(f,2,.5),B(f,4,1),B(f,3,1);\nif(c?.rotationDegrees){if(c?.rotationDegrees%90!==0)throw Error(\"Expected rotation to be a multiple of 90\\u00b0.\");B(f,5,-Math.PI*c.rotationDegrees/180);if(c?.rotationDegrees%180!==0){const [g,h]=ni(b);c=A(f,3)*h/g;e=A(f,4)*g/h;B(f,4,c);B(f,3,e)}}a.g.addProtoToStream(f.g(),\"mediapipe.NormalizedRect\",a.U,d)}a.g.pa(b,a.X,d??performance.now());a.finishProcessing()}\nfunction Dj(a,b,c){if(a.baseOptions?.g())throw Error(\"Task is not initialized with image mode. 'runningMode' must be set to 'IMAGE'.\");Cj(a,b,c,a.C+1)}function Ej(a,b,c,d){if(!a.baseOptions?.g())throw Error(\"Task is not initialized with video mode. 'runningMode' must be set to 'VIDEO'.\");Cj(a,b,c,d)}\nfunction Fj(a,b,c,d){var e=b.data;const f=b.width;b=b.height;const g=f*b;if((e instanceof Uint8Array||e instanceof Float32Array)&&e.length!==g)throw Error(`Unsupported channel count: ${e.length/g}`);a=new V([e],c,!1,a.g.i.canvas,a.P,f,b);return d?a.clone():a}\nvar Gj=class extends Ci{constructor(a,b,c,d){super(a);this.g=a;this.X=b;this.U=c;this.oa=d;this.P=new Mi}l(a,b=!0){\"runningMode\"in a&&v(this.baseOptions,2,$b(!!a.runningMode&&a.runningMode!==\"IMAGE\"));if(a.canvas!==void 0&&this.g.i.canvas!==a.canvas)throw Error(\"You must create a new task to reset the canvas.\");return super.l(a,b)}close(){this.P.close();super.close()}};Gj.prototype.close=Gj.prototype.close;export {Gj as VisionTaskRunner};var Hj=class extends Gj{constructor(a,b){super(new Bj(a,b),\"image_in\",\"norm_rect_in\",!1);this.j={detections:[]};a=this.h=new dh;b=new R;z(a,R,1,b);B(this.h,2,.5);B(this.h,3,.3)}get baseOptions(){return y(this.h,R,1)}set baseOptions(a){z(this.h,R,1,a)}o(a){\"minDetectionConfidence\"in a&&B(this.h,2,a.minDetectionConfidence??.5);\"minSuppressionThreshold\"in a&&B(this.h,3,a.minSuppressionThreshold??.3);return this.l(a)}F(a,b){this.j={detections:[]};Dj(this,a,b);return this.j}G(a,b,c){this.j={detections:[]};\nEj(this,a,c,b);return this.j}m(){var a=new yg;P(a,\"image_in\");P(a,\"norm_rect_in\");Q(a,\"detections\");const b=new Wf;Oe(b,fh,this.h);const c=new sg;Kd(c,2,\"mediapipe.tasks.vision.face_detector.FaceDetectorGraph\");M(c,\"IMAGE:image_in\");M(c,\"NORM_RECT:norm_rect_in\");O(c,\"DETECTIONS:detections\");c.o(b);xg(a,c);this.g.attachProtoVectorListener(\"detections\",(d,e)=>{for(const f of d)d=Ig(f),this.j.detections.push(Zh(d));U(this,e)});this.g.attachEmptyPacketListener(\"detections\",d=>{U(this,d)});a=a.g();this.setGraph(new Uint8Array(a),\n!0)}};Hj.prototype.detectForVideo=Hj.prototype.G;Hj.prototype.detect=Hj.prototype.F;Hj.prototype.setOptions=Hj.prototype.o;Hj.createFromModelPath=async function(a,b){return X(Hj,a,{baseOptions:{modelAssetPath:b}})};Hj.createFromModelBuffer=function(a,b){return X(Hj,a,{baseOptions:{modelAssetBuffer:b}})};Hj.createFromOptions=function(a,b){return X(Hj,a,b)};export {Hj as FaceDetector};var Ij=zj([61,146],[146,91],[91,181],[181,84],[84,17],[17,314],[314,405],[405,321],[321,375],[375,291],[61,185],[185,40],[40,39],[39,37],[37,0],[0,267],[267,269],[269,270],[270,409],[409,291],[78,95],[95,88],[88,178],[178,87],[87,14],[14,317],[317,402],[402,318],[318,324],[324,308],[78,191],[191,80],[80,81],[81,82],[82,13],[13,312],[312,311],[311,310],[310,415],[415,308]),Jj=zj([263,249],[249,390],[390,373],[373,374],[374,380],[380,381],[381,382],[382,362],[263,466],[466,388],[388,387],[387,386],\n[386,385],[385,384],[384,398],[398,362]),Kj=zj([276,283],[283,282],[282,295],[295,285],[300,293],[293,334],[334,296],[296,336]),Lj=zj([474,475],[475,476],[476,477],[477,474]),Mj=zj([33,7],[7,163],[163,144],[144,145],[145,153],[153,154],[154,155],[155,133],[33,246],[246,161],[161,160],[160,159],[159,158],[158,157],[157,173],[173,133]),Nj=zj([46,53],[53,52],[52,65],[65,55],[70,63],[63,105],[105,66],[66,107]),Oj=zj([469,470],[470,471],[471,472],[472,469]),Pj=zj([10,338],[338,297],[297,332],[332,284],\n[284,251],[251,389],[389,356],[356,454],[454,323],[323,361],[361,288],[288,397],[397,365],[365,379],[379,378],[378,400],[400,377],[377,152],[152,148],[148,176],[176,149],[149,150],[150,136],[136,172],[172,58],[58,132],[132,93],[93,234],[234,127],[127,162],[162,21],[21,54],[54,103],[103,67],[67,109],[109,10]),Qj=[...Ij,...Jj,...Kj,...Mj,...Nj,...Pj],Rj=zj([127,34],[34,139],[139,127],[11,0],[0,37],[37,11],[232,231],[231,120],[120,232],[72,37],[37,39],[39,72],[128,121],[121,47],[47,128],[232,121],[121,\n128],[128,232],[104,69],[69,67],[67,104],[175,171],[171,148],[148,175],[118,50],[50,101],[101,118],[73,39],[39,40],[40,73],[9,151],[151,108],[108,9],[48,115],[115,131],[131,48],[194,204],[204,211],[211,194],[74,40],[40,185],[185,74],[80,42],[42,183],[183,80],[40,92],[92,186],[186,40],[230,229],[229,118],[118,230],[202,212],[212,214],[214,202],[83,18],[18,17],[17,83],[76,61],[61,146],[146,76],[160,29],[29,30],[30,160],[56,157],[157,173],[173,56],[106,204],[204,194],[194,106],[135,214],[214,192],[192,\n135],[203,165],[165,98],[98,203],[21,71],[71,68],[68,21],[51,45],[45,4],[4,51],[144,24],[24,23],[23,144],[77,146],[146,91],[91,77],[205,50],[50,187],[187,205],[201,200],[200,18],[18,201],[91,106],[106,182],[182,91],[90,91],[91,181],[181,90],[85,84],[84,17],[17,85],[206,203],[203,36],[36,206],[148,171],[171,140],[140,148],[92,40],[40,39],[39,92],[193,189],[189,244],[244,193],[159,158],[158,28],[28,159],[247,246],[246,161],[161,247],[236,3],[3,196],[196,236],[54,68],[68,104],[104,54],[193,168],[168,\n8],[8,193],[117,228],[228,31],[31,117],[189,193],[193,55],[55,189],[98,97],[97,99],[99,98],[126,47],[47,100],[100,126],[166,79],[79,218],[218,166],[155,154],[154,26],[26,155],[209,49],[49,131],[131,209],[135,136],[136,150],[150,135],[47,126],[126,217],[217,47],[223,52],[52,53],[53,223],[45,51],[51,134],[134,45],[211,170],[170,140],[140,211],[67,69],[69,108],[108,67],[43,106],[106,91],[91,43],[230,119],[119,120],[120,230],[226,130],[130,247],[247,226],[63,53],[53,52],[52,63],[238,20],[20,242],[242,\n238],[46,70],[70,156],[156,46],[78,62],[62,96],[96,78],[46,53],[53,63],[63,46],[143,34],[34,227],[227,143],[123,117],[117,111],[111,123],[44,125],[125,19],[19,44],[236,134],[134,51],[51,236],[216,206],[206,205],[205,216],[154,153],[153,22],[22,154],[39,37],[37,167],[167,39],[200,201],[201,208],[208,200],[36,142],[142,100],[100,36],[57,212],[212,202],[202,57],[20,60],[60,99],[99,20],[28,158],[158,157],[157,28],[35,226],[226,113],[113,35],[160,159],[159,27],[27,160],[204,202],[202,210],[210,204],[113,\n225],[225,46],[46,113],[43,202],[202,204],[204,43],[62,76],[76,77],[77,62],[137,123],[123,116],[116,137],[41,38],[38,72],[72,41],[203,129],[129,142],[142,203],[64,98],[98,240],[240,64],[49,102],[102,64],[64,49],[41,73],[73,74],[74,41],[212,216],[216,207],[207,212],[42,74],[74,184],[184,42],[169,170],[170,211],[211,169],[170,149],[149,176],[176,170],[105,66],[66,69],[69,105],[122,6],[6,168],[168,122],[123,147],[147,187],[187,123],[96,77],[77,90],[90,96],[65,55],[55,107],[107,65],[89,90],[90,180],[180,\n89],[101,100],[100,120],[120,101],[63,105],[105,104],[104,63],[93,137],[137,227],[227,93],[15,86],[86,85],[85,15],[129,102],[102,49],[49,129],[14,87],[87,86],[86,14],[55,8],[8,9],[9,55],[100,47],[47,121],[121,100],[145,23],[23,22],[22,145],[88,89],[89,179],[179,88],[6,122],[122,196],[196,6],[88,95],[95,96],[96,88],[138,172],[172,136],[136,138],[215,58],[58,172],[172,215],[115,48],[48,219],[219,115],[42,80],[80,81],[81,42],[195,3],[3,51],[51,195],[43,146],[146,61],[61,43],[171,175],[175,199],[199,\n171],[81,82],[82,38],[38,81],[53,46],[46,225],[225,53],[144,163],[163,110],[110,144],[52,65],[65,66],[66,52],[229,228],[228,117],[117,229],[34,127],[127,234],[234,34],[107,108],[108,69],[69,107],[109,108],[108,151],[151,109],[48,64],[64,235],[235,48],[62,78],[78,191],[191,62],[129,209],[209,126],[126,129],[111,35],[35,143],[143,111],[117,123],[123,50],[50,117],[222,65],[65,52],[52,222],[19,125],[125,141],[141,19],[221,55],[55,65],[65,221],[3,195],[195,197],[197,3],[25,7],[7,33],[33,25],[220,237],\n[237,44],[44,220],[70,71],[71,139],[139,70],[122,193],[193,245],[245,122],[247,130],[130,33],[33,247],[71,21],[21,162],[162,71],[170,169],[169,150],[150,170],[188,174],[174,196],[196,188],[216,186],[186,92],[92,216],[2,97],[97,167],[167,2],[141,125],[125,241],[241,141],[164,167],[167,37],[37,164],[72,38],[38,12],[12,72],[38,82],[82,13],[13,38],[63,68],[68,71],[71,63],[226,35],[35,111],[111,226],[101,50],[50,205],[205,101],[206,92],[92,165],[165,206],[209,198],[198,217],[217,209],[165,167],[167,97],\n[97,165],[220,115],[115,218],[218,220],[133,112],[112,243],[243,133],[239,238],[238,241],[241,239],[214,135],[135,169],[169,214],[190,173],[173,133],[133,190],[171,208],[208,32],[32,171],[125,44],[44,237],[237,125],[86,87],[87,178],[178,86],[85,86],[86,179],[179,85],[84,85],[85,180],[180,84],[83,84],[84,181],[181,83],[201,83],[83,182],[182,201],[137,93],[93,132],[132,137],[76,62],[62,183],[183,76],[61,76],[76,184],[184,61],[57,61],[61,185],[185,57],[212,57],[57,186],[186,212],[214,207],[207,187],\n[187,214],[34,143],[143,156],[156,34],[79,239],[239,237],[237,79],[123,137],[137,177],[177,123],[44,1],[1,4],[4,44],[201,194],[194,32],[32,201],[64,102],[102,129],[129,64],[213,215],[215,138],[138,213],[59,166],[166,219],[219,59],[242,99],[99,97],[97,242],[2,94],[94,141],[141,2],[75,59],[59,235],[235,75],[24,110],[110,228],[228,24],[25,130],[130,226],[226,25],[23,24],[24,229],[229,23],[22,23],[23,230],[230,22],[26,22],[22,231],[231,26],[112,26],[26,232],[232,112],[189,190],[190,243],[243,189],[221,\n56],[56,190],[190,221],[28,56],[56,221],[221,28],[27,28],[28,222],[222,27],[29,27],[27,223],[223,29],[30,29],[29,224],[224,30],[247,30],[30,225],[225,247],[238,79],[79,20],[20,238],[166,59],[59,75],[75,166],[60,75],[75,240],[240,60],[147,177],[177,215],[215,147],[20,79],[79,166],[166,20],[187,147],[147,213],[213,187],[112,233],[233,244],[244,112],[233,128],[128,245],[245,233],[128,114],[114,188],[188,128],[114,217],[217,174],[174,114],[131,115],[115,220],[220,131],[217,198],[198,236],[236,217],[198,\n131],[131,134],[134,198],[177,132],[132,58],[58,177],[143,35],[35,124],[124,143],[110,163],[163,7],[7,110],[228,110],[110,25],[25,228],[356,389],[389,368],[368,356],[11,302],[302,267],[267,11],[452,350],[350,349],[349,452],[302,303],[303,269],[269,302],[357,343],[343,277],[277,357],[452,453],[453,357],[357,452],[333,332],[332,297],[297,333],[175,152],[152,377],[377,175],[347,348],[348,330],[330,347],[303,304],[304,270],[270,303],[9,336],[336,337],[337,9],[278,279],[279,360],[360,278],[418,262],[262,\n431],[431,418],[304,408],[408,409],[409,304],[310,415],[415,407],[407,310],[270,409],[409,410],[410,270],[450,348],[348,347],[347,450],[422,430],[430,434],[434,422],[313,314],[314,17],[17,313],[306,307],[307,375],[375,306],[387,388],[388,260],[260,387],[286,414],[414,398],[398,286],[335,406],[406,418],[418,335],[364,367],[367,416],[416,364],[423,358],[358,327],[327,423],[251,284],[284,298],[298,251],[281,5],[5,4],[4,281],[373,374],[374,253],[253,373],[307,320],[320,321],[321,307],[425,427],[427,411],\n[411,425],[421,313],[313,18],[18,421],[321,405],[405,406],[406,321],[320,404],[404,405],[405,320],[315,16],[16,17],[17,315],[426,425],[425,266],[266,426],[377,400],[400,369],[369,377],[322,391],[391,269],[269,322],[417,465],[465,464],[464,417],[386,257],[257,258],[258,386],[466,260],[260,388],[388,466],[456,399],[399,419],[419,456],[284,332],[332,333],[333,284],[417,285],[285,8],[8,417],[346,340],[340,261],[261,346],[413,441],[441,285],[285,413],[327,460],[460,328],[328,327],[355,371],[371,329],[329,\n355],[392,439],[439,438],[438,392],[382,341],[341,256],[256,382],[429,420],[420,360],[360,429],[364,394],[394,379],[379,364],[277,343],[343,437],[437,277],[443,444],[444,283],[283,443],[275,440],[440,363],[363,275],[431,262],[262,369],[369,431],[297,338],[338,337],[337,297],[273,375],[375,321],[321,273],[450,451],[451,349],[349,450],[446,342],[342,467],[467,446],[293,334],[334,282],[282,293],[458,461],[461,462],[462,458],[276,353],[353,383],[383,276],[308,324],[324,325],[325,308],[276,300],[300,293],\n[293,276],[372,345],[345,447],[447,372],[352,345],[345,340],[340,352],[274,1],[1,19],[19,274],[456,248],[248,281],[281,456],[436,427],[427,425],[425,436],[381,256],[256,252],[252,381],[269,391],[391,393],[393,269],[200,199],[199,428],[428,200],[266,330],[330,329],[329,266],[287,273],[273,422],[422,287],[250,462],[462,328],[328,250],[258,286],[286,384],[384,258],[265,353],[353,342],[342,265],[387,259],[259,257],[257,387],[424,431],[431,430],[430,424],[342,353],[353,276],[276,342],[273,335],[335,424],\n[424,273],[292,325],[325,307],[307,292],[366,447],[447,345],[345,366],[271,303],[303,302],[302,271],[423,266],[266,371],[371,423],[294,455],[455,460],[460,294],[279,278],[278,294],[294,279],[271,272],[272,304],[304,271],[432,434],[434,427],[427,432],[272,407],[407,408],[408,272],[394,430],[430,431],[431,394],[395,369],[369,400],[400,395],[334,333],[333,299],[299,334],[351,417],[417,168],[168,351],[352,280],[280,411],[411,352],[325,319],[319,320],[320,325],[295,296],[296,336],[336,295],[319,403],[403,\n404],[404,319],[330,348],[348,349],[349,330],[293,298],[298,333],[333,293],[323,454],[454,447],[447,323],[15,16],[16,315],[315,15],[358,429],[429,279],[279,358],[14,15],[15,316],[316,14],[285,336],[336,9],[9,285],[329,349],[349,350],[350,329],[374,380],[380,252],[252,374],[318,402],[402,403],[403,318],[6,197],[197,419],[419,6],[318,319],[319,325],[325,318],[367,364],[364,365],[365,367],[435,367],[367,397],[397,435],[344,438],[438,439],[439,344],[272,271],[271,311],[311,272],[195,5],[5,281],[281,195],\n[273,287],[287,291],[291,273],[396,428],[428,199],[199,396],[311,271],[271,268],[268,311],[283,444],[444,445],[445,283],[373,254],[254,339],[339,373],[282,334],[334,296],[296,282],[449,347],[347,346],[346,449],[264,447],[447,454],[454,264],[336,296],[296,299],[299,336],[338,10],[10,151],[151,338],[278,439],[439,455],[455,278],[292,407],[407,415],[415,292],[358,371],[371,355],[355,358],[340,345],[345,372],[372,340],[346,347],[347,280],[280,346],[442,443],[443,282],[282,442],[19,94],[94,370],[370,19],\n[441,442],[442,295],[295,441],[248,419],[419,197],[197,248],[263,255],[255,359],[359,263],[440,275],[275,274],[274,440],[300,383],[383,368],[368,300],[351,412],[412,465],[465,351],[263,467],[467,466],[466,263],[301,368],[368,389],[389,301],[395,378],[378,379],[379,395],[412,351],[351,419],[419,412],[436,426],[426,322],[322,436],[2,164],[164,393],[393,2],[370,462],[462,461],[461,370],[164,0],[0,267],[267,164],[302,11],[11,12],[12,302],[268,12],[12,13],[13,268],[293,300],[300,301],[301,293],[446,261],\n[261,340],[340,446],[330,266],[266,425],[425,330],[426,423],[423,391],[391,426],[429,355],[355,437],[437,429],[391,327],[327,326],[326,391],[440,457],[457,438],[438,440],[341,382],[382,362],[362,341],[459,457],[457,461],[461,459],[434,430],[430,394],[394,434],[414,463],[463,362],[362,414],[396,369],[369,262],[262,396],[354,461],[461,457],[457,354],[316,403],[403,402],[402,316],[315,404],[404,403],[403,315],[314,405],[405,404],[404,314],[313,406],[406,405],[405,313],[421,418],[418,406],[406,421],[366,\n401],[401,361],[361,366],[306,408],[408,407],[407,306],[291,409],[409,408],[408,291],[287,410],[410,409],[409,287],[432,436],[436,410],[410,432],[434,416],[416,411],[411,434],[264,368],[368,383],[383,264],[309,438],[438,457],[457,309],[352,376],[376,401],[401,352],[274,275],[275,4],[4,274],[421,428],[428,262],[262,421],[294,327],[327,358],[358,294],[433,416],[416,367],[367,433],[289,455],[455,439],[439,289],[462,370],[370,326],[326,462],[2,326],[326,370],[370,2],[305,460],[460,455],[455,305],[254,\n449],[449,448],[448,254],[255,261],[261,446],[446,255],[253,450],[450,449],[449,253],[252,451],[451,450],[450,252],[256,452],[452,451],[451,256],[341,453],[453,452],[452,341],[413,464],[464,463],[463,413],[441,413],[413,414],[414,441],[258,442],[442,441],[441,258],[257,443],[443,442],[442,257],[259,444],[444,443],[443,259],[260,445],[445,444],[444,260],[467,342],[342,445],[445,467],[459,458],[458,250],[250,459],[289,392],[392,290],[290,289],[290,328],[328,460],[460,290],[376,433],[433,435],[435,376],\n[250,290],[290,392],[392,250],[411,416],[416,433],[433,411],[341,463],[463,464],[464,341],[453,464],[464,465],[465,453],[357,465],[465,412],[412,357],[343,412],[412,399],[399,343],[360,363],[363,440],[440,360],[437,399],[399,456],[456,437],[420,456],[456,363],[363,420],[401,435],[435,288],[288,401],[372,383],[383,353],[353,372],[339,255],[255,249],[249,339],[448,261],[261,255],[255,448],[133,243],[243,190],[190,133],[133,155],[155,112],[112,133],[33,246],[246,247],[247,33],[33,130],[130,25],[25,33],\n[398,384],[384,286],[286,398],[362,398],[398,414],[414,362],[362,463],[463,341],[341,362],[263,359],[359,467],[467,263],[263,249],[249,255],[255,263],[466,467],[467,260],[260,466],[75,60],[60,166],[166,75],[238,239],[239,79],[79,238],[162,127],[127,139],[139,162],[72,11],[11,37],[37,72],[121,232],[232,120],[120,121],[73,72],[72,39],[39,73],[114,128],[128,47],[47,114],[233,232],[232,128],[128,233],[103,104],[104,67],[67,103],[152,175],[175,148],[148,152],[119,118],[118,101],[101,119],[74,73],[73,40],\n[40,74],[107,9],[9,108],[108,107],[49,48],[48,131],[131,49],[32,194],[194,211],[211,32],[184,74],[74,185],[185,184],[191,80],[80,183],[183,191],[185,40],[40,186],[186,185],[119,230],[230,118],[118,119],[210,202],[202,214],[214,210],[84,83],[83,17],[17,84],[77,76],[76,146],[146,77],[161,160],[160,30],[30,161],[190,56],[56,173],[173,190],[182,106],[106,194],[194,182],[138,135],[135,192],[192,138],[129,203],[203,98],[98,129],[54,21],[21,68],[68,54],[5,51],[51,4],[4,5],[145,144],[144,23],[23,145],[90,\n77],[77,91],[91,90],[207,205],[205,187],[187,207],[83,201],[201,18],[18,83],[181,91],[91,182],[182,181],[180,90],[90,181],[181,180],[16,85],[85,17],[17,16],[205,206],[206,36],[36,205],[176,148],[148,140],[140,176],[165,92],[92,39],[39,165],[245,193],[193,244],[244,245],[27,159],[159,28],[28,27],[30,247],[247,161],[161,30],[174,236],[236,196],[196,174],[103,54],[54,104],[104,103],[55,193],[193,8],[8,55],[111,117],[117,31],[31,111],[221,189],[189,55],[55,221],[240,98],[98,99],[99,240],[142,126],[126,\n100],[100,142],[219,166],[166,218],[218,219],[112,155],[155,26],[26,112],[198,209],[209,131],[131,198],[169,135],[135,150],[150,169],[114,47],[47,217],[217,114],[224,223],[223,53],[53,224],[220,45],[45,134],[134,220],[32,211],[211,140],[140,32],[109,67],[67,108],[108,109],[146,43],[43,91],[91,146],[231,230],[230,120],[120,231],[113,226],[226,247],[247,113],[105,63],[63,52],[52,105],[241,238],[238,242],[242,241],[124,46],[46,156],[156,124],[95,78],[78,96],[96,95],[70,46],[46,63],[63,70],[116,143],\n[143,227],[227,116],[116,123],[123,111],[111,116],[1,44],[44,19],[19,1],[3,236],[236,51],[51,3],[207,216],[216,205],[205,207],[26,154],[154,22],[22,26],[165,39],[39,167],[167,165],[199,200],[200,208],[208,199],[101,36],[36,100],[100,101],[43,57],[57,202],[202,43],[242,20],[20,99],[99,242],[56,28],[28,157],[157,56],[124,35],[35,113],[113,124],[29,160],[160,27],[27,29],[211,204],[204,210],[210,211],[124,113],[113,46],[46,124],[106,43],[43,204],[204,106],[96,62],[62,77],[77,96],[227,137],[137,116],[116,\n227],[73,41],[41,72],[72,73],[36,203],[203,142],[142,36],[235,64],[64,240],[240,235],[48,49],[49,64],[64,48],[42,41],[41,74],[74,42],[214,212],[212,207],[207,214],[183,42],[42,184],[184,183],[210,169],[169,211],[211,210],[140,170],[170,176],[176,140],[104,105],[105,69],[69,104],[193,122],[122,168],[168,193],[50,123],[123,187],[187,50],[89,96],[96,90],[90,89],[66,65],[65,107],[107,66],[179,89],[89,180],[180,179],[119,101],[101,120],[120,119],[68,63],[63,104],[104,68],[234,93],[93,227],[227,234],[16,\n15],[15,85],[85,16],[209,129],[129,49],[49,209],[15,14],[14,86],[86,15],[107,55],[55,9],[9,107],[120,100],[100,121],[121,120],[153,145],[145,22],[22,153],[178,88],[88,179],[179,178],[197,6],[6,196],[196,197],[89,88],[88,96],[96,89],[135,138],[138,136],[136,135],[138,215],[215,172],[172,138],[218,115],[115,219],[219,218],[41,42],[42,81],[81,41],[5,195],[195,51],[51,5],[57,43],[43,61],[61,57],[208,171],[171,199],[199,208],[41,81],[81,38],[38,41],[224,53],[53,225],[225,224],[24,144],[144,110],[110,24],\n[105,52],[52,66],[66,105],[118,229],[229,117],[117,118],[227,34],[34,234],[234,227],[66,107],[107,69],[69,66],[10,109],[109,151],[151,10],[219,48],[48,235],[235,219],[183,62],[62,191],[191,183],[142,129],[129,126],[126,142],[116,111],[111,143],[143,116],[118,117],[117,50],[50,118],[223,222],[222,52],[52,223],[94,19],[19,141],[141,94],[222,221],[221,65],[65,222],[196,3],[3,197],[197,196],[45,220],[220,44],[44,45],[156,70],[70,139],[139,156],[188,122],[122,245],[245,188],[139,71],[71,162],[162,139],\n[149,170],[170,150],[150,149],[122,188],[188,196],[196,122],[206,216],[216,92],[92,206],[164,2],[2,167],[167,164],[242,141],[141,241],[241,242],[0,164],[164,37],[37,0],[11,72],[72,12],[12,11],[12,38],[38,13],[13,12],[70,63],[63,71],[71,70],[31,226],[226,111],[111,31],[36,101],[101,205],[205,36],[203,206],[206,165],[165,203],[126,209],[209,217],[217,126],[98,165],[165,97],[97,98],[237,220],[220,218],[218,237],[237,239],[239,241],[241,237],[210,214],[214,169],[169,210],[140,171],[171,32],[32,140],[241,\n125],[125,237],[237,241],[179,86],[86,178],[178,179],[180,85],[85,179],[179,180],[181,84],[84,180],[180,181],[182,83],[83,181],[181,182],[194,201],[201,182],[182,194],[177,137],[137,132],[132,177],[184,76],[76,183],[183,184],[185,61],[61,184],[184,185],[186,57],[57,185],[185,186],[216,212],[212,186],[186,216],[192,214],[214,187],[187,192],[139,34],[34,156],[156,139],[218,79],[79,237],[237,218],[147,123],[123,177],[177,147],[45,44],[44,4],[4,45],[208,201],[201,32],[32,208],[98,64],[64,129],[129,98],\n[192,213],[213,138],[138,192],[235,59],[59,219],[219,235],[141,242],[242,97],[97,141],[97,2],[2,141],[141,97],[240,75],[75,235],[235,240],[229,24],[24,228],[228,229],[31,25],[25,226],[226,31],[230,23],[23,229],[229,230],[231,22],[22,230],[230,231],[232,26],[26,231],[231,232],[233,112],[112,232],[232,233],[244,189],[189,243],[243,244],[189,221],[221,190],[190,189],[222,28],[28,221],[221,222],[223,27],[27,222],[222,223],[224,29],[29,223],[223,224],[225,30],[30,224],[224,225],[113,247],[247,225],[225,\n113],[99,60],[60,240],[240,99],[213,147],[147,215],[215,213],[60,20],[20,166],[166,60],[192,187],[187,213],[213,192],[243,112],[112,244],[244,243],[244,233],[233,245],[245,244],[245,128],[128,188],[188,245],[188,114],[114,174],[174,188],[134,131],[131,220],[220,134],[174,217],[217,236],[236,174],[236,198],[198,134],[134,236],[215,177],[177,58],[58,215],[156,143],[143,124],[124,156],[25,110],[110,7],[7,25],[31,228],[228,25],[25,31],[264,356],[356,368],[368,264],[0,11],[11,267],[267,0],[451,452],[452,\n349],[349,451],[267,302],[302,269],[269,267],[350,357],[357,277],[277,350],[350,452],[452,357],[357,350],[299,333],[333,297],[297,299],[396,175],[175,377],[377,396],[280,347],[347,330],[330,280],[269,303],[303,270],[270,269],[151,9],[9,337],[337,151],[344,278],[278,360],[360,344],[424,418],[418,431],[431,424],[270,304],[304,409],[409,270],[272,310],[310,407],[407,272],[322,270],[270,410],[410,322],[449,450],[450,347],[347,449],[432,422],[422,434],[434,432],[18,313],[313,17],[17,18],[291,306],[306,\n375],[375,291],[259,387],[387,260],[260,259],[424,335],[335,418],[418,424],[434,364],[364,416],[416,434],[391,423],[423,327],[327,391],[301,251],[251,298],[298,301],[275,281],[281,4],[4,275],[254,373],[373,253],[253,254],[375,307],[307,321],[321,375],[280,425],[425,411],[411,280],[200,421],[421,18],[18,200],[335,321],[321,406],[406,335],[321,320],[320,405],[405,321],[314,315],[315,17],[17,314],[423,426],[426,266],[266,423],[396,377],[377,369],[369,396],[270,322],[322,269],[269,270],[413,417],[417,\n464],[464,413],[385,386],[386,258],[258,385],[248,456],[456,419],[419,248],[298,284],[284,333],[333,298],[168,417],[417,8],[8,168],[448,346],[346,261],[261,448],[417,413],[413,285],[285,417],[326,327],[327,328],[328,326],[277,355],[355,329],[329,277],[309,392],[392,438],[438,309],[381,382],[382,256],[256,381],[279,429],[429,360],[360,279],[365,364],[364,379],[379,365],[355,277],[277,437],[437,355],[282,443],[443,283],[283,282],[281,275],[275,363],[363,281],[395,431],[431,369],[369,395],[299,297],\n[297,337],[337,299],[335,273],[273,321],[321,335],[348,450],[450,349],[349,348],[359,446],[446,467],[467,359],[283,293],[293,282],[282,283],[250,458],[458,462],[462,250],[300,276],[276,383],[383,300],[292,308],[308,325],[325,292],[283,276],[276,293],[293,283],[264,372],[372,447],[447,264],[346,352],[352,340],[340,346],[354,274],[274,19],[19,354],[363,456],[456,281],[281,363],[426,436],[436,425],[425,426],[380,381],[381,252],[252,380],[267,269],[269,393],[393,267],[421,200],[200,428],[428,421],[371,\n266],[266,329],[329,371],[432,287],[287,422],[422,432],[290,250],[250,328],[328,290],[385,258],[258,384],[384,385],[446,265],[265,342],[342,446],[386,387],[387,257],[257,386],[422,424],[424,430],[430,422],[445,342],[342,276],[276,445],[422,273],[273,424],[424,422],[306,292],[292,307],[307,306],[352,366],[366,345],[345,352],[268,271],[271,302],[302,268],[358,423],[423,371],[371,358],[327,294],[294,460],[460,327],[331,279],[279,294],[294,331],[303,271],[271,304],[304,303],[436,432],[432,427],[427,436],\n[304,272],[272,408],[408,304],[395,394],[394,431],[431,395],[378,395],[395,400],[400,378],[296,334],[334,299],[299,296],[6,351],[351,168],[168,6],[376,352],[352,411],[411,376],[307,325],[325,320],[320,307],[285,295],[295,336],[336,285],[320,319],[319,404],[404,320],[329,330],[330,349],[349,329],[334,293],[293,333],[333,334],[366,323],[323,447],[447,366],[316,15],[15,315],[315,316],[331,358],[358,279],[279,331],[317,14],[14,316],[316,317],[8,285],[285,9],[9,8],[277,329],[329,350],[350,277],[253,374],\n[374,252],[252,253],[319,318],[318,403],[403,319],[351,6],[6,419],[419,351],[324,318],[318,325],[325,324],[397,367],[367,365],[365,397],[288,435],[435,397],[397,288],[278,344],[344,439],[439,278],[310,272],[272,311],[311,310],[248,195],[195,281],[281,248],[375,273],[273,291],[291,375],[175,396],[396,199],[199,175],[312,311],[311,268],[268,312],[276,283],[283,445],[445,276],[390,373],[373,339],[339,390],[295,282],[282,296],[296,295],[448,449],[449,346],[346,448],[356,264],[264,454],[454,356],[337,\n336],[336,299],[299,337],[337,338],[338,151],[151,337],[294,278],[278,455],[455,294],[308,292],[292,415],[415,308],[429,358],[358,355],[355,429],[265,340],[340,372],[372,265],[352,346],[346,280],[280,352],[295,442],[442,282],[282,295],[354,19],[19,370],[370,354],[285,441],[441,295],[295,285],[195,248],[248,197],[197,195],[457,440],[440,274],[274,457],[301,300],[300,368],[368,301],[417,351],[351,465],[465,417],[251,301],[301,389],[389,251],[394,395],[395,379],[379,394],[399,412],[412,419],[419,399],\n[410,436],[436,322],[322,410],[326,2],[2,393],[393,326],[354,370],[370,461],[461,354],[393,164],[164,267],[267,393],[268,302],[302,12],[12,268],[312,268],[268,13],[13,312],[298,293],[293,301],[301,298],[265,446],[446,340],[340,265],[280,330],[330,425],[425,280],[322,426],[426,391],[391,322],[420,429],[429,437],[437,420],[393,391],[391,326],[326,393],[344,440],[440,438],[438,344],[458,459],[459,461],[461,458],[364,434],[434,394],[394,364],[428,396],[396,262],[262,428],[274,354],[354,457],[457,274],\n[317,316],[316,402],[402,317],[316,315],[315,403],[403,316],[315,314],[314,404],[404,315],[314,313],[313,405],[405,314],[313,421],[421,406],[406,313],[323,366],[366,361],[361,323],[292,306],[306,407],[407,292],[306,291],[291,408],[408,306],[291,287],[287,409],[409,291],[287,432],[432,410],[410,287],[427,434],[434,411],[411,427],[372,264],[264,383],[383,372],[459,309],[309,457],[457,459],[366,352],[352,401],[401,366],[1,274],[274,4],[4,1],[418,421],[421,262],[262,418],[331,294],[294,358],[358,331],\n[435,433],[433,367],[367,435],[392,289],[289,439],[439,392],[328,462],[462,326],[326,328],[94,2],[2,370],[370,94],[289,305],[305,455],[455,289],[339,254],[254,448],[448,339],[359,255],[255,446],[446,359],[254,253],[253,449],[449,254],[253,252],[252,450],[450,253],[252,256],[256,451],[451,252],[256,341],[341,452],[452,256],[414,413],[413,463],[463,414],[286,441],[441,414],[414,286],[286,258],[258,441],[441,286],[258,257],[257,442],[442,258],[257,259],[259,443],[443,257],[259,260],[260,444],[444,259],\n[260,467],[467,445],[445,260],[309,459],[459,250],[250,309],[305,289],[289,290],[290,305],[305,290],[290,460],[460,305],[401,376],[376,435],[435,401],[309,250],[250,392],[392,309],[376,411],[411,433],[433,376],[453,341],[341,464],[464,453],[357,453],[453,465],[465,357],[343,357],[357,412],[412,343],[437,343],[343,399],[399,437],[344,360],[360,440],[440,344],[420,437],[437,456],[456,420],[360,420],[420,363],[363,360],[361,401],[401,288],[288,361],[265,372],[372,353],[353,265],[390,339],[339,249],[249,\n390],[339,448],[448,255],[255,339]);function Sj(a){a.j={faceLandmarks:[],faceBlendshapes:[],facialTransformationMatrixes:[]}}\nvar Y=class extends Gj{constructor(a,b){super(new Bj(a,b),\"image_in\",\"norm_rect\",!1);this.j={faceLandmarks:[],faceBlendshapes:[],facialTransformationMatrixes:[]};this.outputFacialTransformationMatrixes=this.outputFaceBlendshapes=!1;a=this.h=new ih;b=new R;z(a,R,1,b);this.A=new hh;z(this.h,hh,3,this.A);this.u=new dh;z(this.h,dh,2,this.u);Jd(this.u,4,1);B(this.u,2,.5);B(this.A,2,.5);B(this.h,4,.5)}get baseOptions(){return y(this.h,R,1)}set baseOptions(a){z(this.h,R,1,a)}o(a){\"numFaces\"in a&&Jd(this.u,\n4,a.numFaces??1);\"minFaceDetectionConfidence\"in a&&B(this.u,2,a.minFaceDetectionConfidence??.5);\"minTrackingConfidence\"in a&&B(this.h,4,a.minTrackingConfidence??.5);\"minFacePresenceConfidence\"in a&&B(this.A,2,a.minFacePresenceConfidence??.5);\"outputFaceBlendshapes\"in a&&(this.outputFaceBlendshapes=!!a.outputFaceBlendshapes);\"outputFacialTransformationMatrixes\"in a&&(this.outputFacialTransformationMatrixes=!!a.outputFacialTransformationMatrixes);return this.l(a)}F(a,b){Sj(this);Dj(this,a,b);return this.j}G(a,\nb,c){Sj(this);Ej(this,a,c,b);return this.j}m(){var a=new yg;P(a,\"image_in\");P(a,\"norm_rect\");Q(a,\"face_landmarks\");const b=new Wf;Oe(b,kh,this.h);const c=new sg;Kd(c,2,\"mediapipe.tasks.vision.face_landmarker.FaceLandmarkerGraph\");M(c,\"IMAGE:image_in\");M(c,\"NORM_RECT:norm_rect\");O(c,\"NORM_LANDMARKS:face_landmarks\");c.o(b);xg(a,c);this.g.attachProtoVectorListener(\"face_landmarks\",(d,e)=>{for(const f of d)d=Mg(f),this.j.faceLandmarks.push(ai(d));U(this,e)});this.g.attachEmptyPacketListener(\"face_landmarks\",\nd=>{U(this,d)});this.outputFaceBlendshapes&&(Q(a,\"blendshapes\"),O(c,\"BLENDSHAPES:blendshapes\"),this.g.attachProtoVectorListener(\"blendshapes\",(d,e)=>{if(this.outputFaceBlendshapes)for(const f of d)d=Eg(f),this.j.faceBlendshapes.push(Xh(d.g()??[]));U(this,e)}),this.g.attachEmptyPacketListener(\"blendshapes\",d=>{U(this,d)}));this.outputFacialTransformationMatrixes&&(Q(a,\"face_geometry\"),O(c,\"FACE_GEOMETRY:face_geometry\"),this.g.attachProtoVectorListener(\"face_geometry\",(d,e)=>{if(this.outputFacialTransformationMatrixes)for(const f of d)d=\ngh(f),(d=y(d,Ng,2))&&this.j.facialTransformationMatrixes.push({rows:Id(d,1)??0??0,columns:Id(d,2)??0??0,data:kd(d,3,Zb,jd()).slice()??[]});U(this,e)}),this.g.attachEmptyPacketListener(\"face_geometry\",d=>{U(this,d)}));a=a.g();this.setGraph(new Uint8Array(a),!0)}};Y.prototype.detectForVideo=Y.prototype.G;Y.prototype.detect=Y.prototype.F;Y.prototype.setOptions=Y.prototype.o;Y.createFromModelPath=function(a,b){return X(Y,a,{baseOptions:{modelAssetPath:b}})};\nY.createFromModelBuffer=function(a,b){return X(Y,a,{baseOptions:{modelAssetBuffer:b}})};Y.createFromOptions=function(a,b){return X(Y,a,b)};Y.FACE_LANDMARKS_LIPS=Ij;Y.FACE_LANDMARKS_LEFT_EYE=Jj;\nY.FACE_LANDMARKS_LEFT_EYEBROW=Kj;Y.FACE_LANDMARKS_LEFT_IRIS=Lj;Y.FACE_LANDMARKS_RIGHT_EYE=Mj;\nY.FACE_LANDMARKS_RIGHT_EYEBROW=Nj;Y.FACE_LANDMARKS_RIGHT_IRIS=Oj;\nY.FACE_LANDMARKS_FACE_OVAL=Pj;Y.FACE_LANDMARKS_CONTOURS=Qj;\nY.FACE_LANDMARKS_TESSELATION=Rj;export {Y as FaceLandmarker};var Tj=zj([0,1],[1,2],[2,3],[3,4],[0,5],[5,6],[6,7],[7,8],[5,9],[9,10],[10,11],[11,12],[9,13],[13,14],[14,15],[15,16],[13,17],[0,17],[17,18],[18,19],[19,20]);function Uj(a){a.gestures=[];a.landmarks=[];a.worldLandmarks=[];a.handedness=[]}function Vj(a){return a.gestures.length===0?{gestures:[],landmarks:[],worldLandmarks:[],handedness:[],handednesses:[]}:{gestures:a.gestures,landmarks:a.landmarks,worldLandmarks:a.worldLandmarks,handedness:a.handedness,handednesses:a.handedness}}\nfunction Wj(a,b=!0){const c=[];for(const e of a){var d=Eg(e);a=[];for(const f of d.g())d=b&&Id(f,1)!=null?Id(f,1)??0:-1,a.push({score:A(f,2)??0,index:d,categoryName:t(u(f,3))??\"\"??\"\",displayName:t(u(f,4))??\"\"??\"\"});c.push(a)}return c}\nvar Xj=class extends Gj{constructor(a,b){super(new Bj(a,b),\"image_in\",\"norm_rect\",!1);this.gestures=[];this.landmarks=[];this.worldLandmarks=[];this.handedness=[];a=this.j=new rh;b=new R;z(a,R,1,b);this.u=new qh;z(this.j,qh,2,this.u);this.D=new ph;z(this.u,ph,3,this.D);this.A=new oh;z(this.u,oh,2,this.A);this.h=new nh;z(this.j,nh,3,this.h);B(this.A,2,.5);B(this.u,4,.5);B(this.D,2,.5)}get baseOptions(){return y(this.j,R,1)}set baseOptions(a){z(this.j,R,1,a)}o(a){Jd(this.A,3,a.numHands??1);\"minHandDetectionConfidence\"in\na&&B(this.A,2,a.minHandDetectionConfidence??.5);\"minTrackingConfidence\"in a&&B(this.u,4,a.minTrackingConfidence??.5);\"minHandPresenceConfidence\"in a&&B(this.D,2,a.minHandPresenceConfidence??.5);if(a.cannedGesturesClassifierOptions){var b=new lh,c=b,d=Vh(a.cannedGesturesClassifierOptions,y(this.h,lh,3)?.l());z(c,Wg,2,d);z(this.h,lh,3,b)}else a.cannedGesturesClassifierOptions===void 0&&y(this.h,lh,3)?.g();a.customGesturesClassifierOptions?(c=b=new lh,d=Vh(a.customGesturesClassifierOptions,y(this.h,\nlh,4)?.l()),z(c,Wg,2,d),z(this.h,lh,4,b)):a.customGesturesClassifierOptions===void 0&&y(this.h,lh,4)?.g();return this.l(a)}Ha(a,b){Uj(this);Dj(this,a,b);return Vj(this)}Ia(a,b,c){Uj(this);Ej(this,a,c,b);return Vj(this)}m(){var a=new yg;P(a,\"image_in\");P(a,\"norm_rect\");Q(a,\"hand_gestures\");Q(a,\"hand_landmarks\");Q(a,\"world_hand_landmarks\");Q(a,\"handedness\");const b=new Wf;Oe(b,wh,this.j);const c=new sg;Kd(c,2,\"mediapipe.tasks.vision.gesture_recognizer.GestureRecognizerGraph\");M(c,\"IMAGE:image_in\");\nM(c,\"NORM_RECT:norm_rect\");O(c,\"HAND_GESTURES:hand_gestures\");O(c,\"LANDMARKS:hand_landmarks\");O(c,\"WORLD_LANDMARKS:world_hand_landmarks\");O(c,\"HANDEDNESS:handedness\");c.o(b);xg(a,c);this.g.attachProtoVectorListener(\"hand_landmarks\",(d,e)=>{for(const f of d){d=Mg(f);const g=[];for(const h of Ed(d,Lg,1))g.push({x:A(h,1)??0,y:A(h,2)??0,z:A(h,3)??0,visibility:A(h,4)??0});this.landmarks.push(g)}U(this,e)});this.g.attachEmptyPacketListener(\"hand_landmarks\",d=>{U(this,d)});this.g.attachProtoVectorListener(\"world_hand_landmarks\",\n(d,e)=>{for(const f of d){d=Kg(f);const g=[];for(const h of Ed(d,Jg,1))g.push({x:A(h,1)??0,y:A(h,2)??0,z:A(h,3)??0,visibility:A(h,4)??0});this.worldLandmarks.push(g)}U(this,e)});this.g.attachEmptyPacketListener(\"world_hand_landmarks\",d=>{U(this,d)});this.g.attachProtoVectorListener(\"hand_gestures\",(d,e)=>{this.gestures.push(...Wj(d,!1));U(this,e)});this.g.attachEmptyPacketListener(\"hand_gestures\",d=>{U(this,d)});this.g.attachProtoVectorListener(\"handedness\",(d,e)=>{this.handedness.push(...Wj(d));\nU(this,e)});this.g.attachEmptyPacketListener(\"handedness\",d=>{U(this,d)});a=a.g();this.setGraph(new Uint8Array(a),!0)}};Xj.prototype.recognizeForVideo=Xj.prototype.Ia;Xj.prototype.recognize=Xj.prototype.Ha;Xj.prototype.setOptions=Xj.prototype.o;Xj.createFromModelPath=function(a,b){return X(Xj,a,{baseOptions:{modelAssetPath:b}})};Xj.createFromModelBuffer=function(a,b){return X(Xj,a,{baseOptions:{modelAssetBuffer:b}})};Xj.createFromOptions=function(a,b){return X(Xj,a,b)};Xj.HAND_CONNECTIONS=Tj;\nexport {Xj as GestureRecognizer};function Yj(a){return{landmarks:a.landmarks,worldLandmarks:a.worldLandmarks,handednesses:a.handedness,handedness:a.handedness}}\nvar Zj=class extends Gj{constructor(a,b){super(new Bj(a,b),\"image_in\",\"norm_rect\",!1);this.landmarks=[];this.worldLandmarks=[];this.handedness=[];a=this.h=new qh;b=new R;z(a,R,1,b);this.u=new ph;z(this.h,ph,3,this.u);this.j=new oh;z(this.h,oh,2,this.j);Jd(this.j,3,1);B(this.j,2,.5);B(this.u,2,.5);B(this.h,4,.5)}get baseOptions(){return y(this.h,R,1)}set baseOptions(a){z(this.h,R,1,a)}o(a){\"numHands\"in a&&Jd(this.j,3,a.numHands??1);\"minHandDetectionConfidence\"in a&&B(this.j,2,a.minHandDetectionConfidence??\n.5);\"minTrackingConfidence\"in a&&B(this.h,4,a.minTrackingConfidence??.5);\"minHandPresenceConfidence\"in a&&B(this.u,2,a.minHandPresenceConfidence??.5);return this.l(a)}F(a,b){this.landmarks=[];this.worldLandmarks=[];this.handedness=[];Dj(this,a,b);return Yj(this)}G(a,b,c){this.landmarks=[];this.worldLandmarks=[];this.handedness=[];Ej(this,a,c,b);return Yj(this)}m(){var a=new yg;P(a,\"image_in\");P(a,\"norm_rect\");Q(a,\"hand_landmarks\");Q(a,\"world_hand_landmarks\");Q(a,\"handedness\");const b=new Wf;Oe(b,\nxh,this.h);const c=new sg;Kd(c,2,\"mediapipe.tasks.vision.hand_landmarker.HandLandmarkerGraph\");M(c,\"IMAGE:image_in\");M(c,\"NORM_RECT:norm_rect\");O(c,\"LANDMARKS:hand_landmarks\");O(c,\"WORLD_LANDMARKS:world_hand_landmarks\");O(c,\"HANDEDNESS:handedness\");c.o(b);xg(a,c);this.g.attachProtoVectorListener(\"hand_landmarks\",(d,e)=>{for(const f of d)d=Mg(f),this.landmarks.push(ai(d));U(this,e)});this.g.attachEmptyPacketListener(\"hand_landmarks\",d=>{U(this,d)});this.g.attachProtoVectorListener(\"world_hand_landmarks\",\n(d,e)=>{for(const f of d)d=Kg(f),this.worldLandmarks.push(bi(d));U(this,e)});this.g.attachEmptyPacketListener(\"world_hand_landmarks\",d=>{U(this,d)});this.g.attachProtoVectorListener(\"handedness\",(d,e)=>{var f=this.handedness,g=f.push;const h=[];for(const k of d){d=Eg(k);const w=[];for(const m of d.g())w.push({score:A(m,2)??0,index:Id(m,1)??0??-1,categoryName:t(u(m,3))??\"\"??\"\",displayName:t(u(m,4))??\"\"??\"\"});h.push(w)}g.call(f,...h);U(this,e)});this.g.attachEmptyPacketListener(\"handedness\",d=>{U(this,\nd)});a=a.g();this.setGraph(new Uint8Array(a),!0)}};Zj.prototype.detectForVideo=Zj.prototype.G;Zj.prototype.detect=Zj.prototype.F;Zj.prototype.setOptions=Zj.prototype.o;Zj.createFromModelPath=function(a,b){return X(Zj,a,{baseOptions:{modelAssetPath:b}})};Zj.createFromModelBuffer=function(a,b){return X(Zj,a,{baseOptions:{modelAssetBuffer:b}})};Zj.createFromOptions=function(a,b){return X(Zj,a,b)};Zj.HAND_CONNECTIONS=Tj;\nexport {Zj as HandLandmarker};var ak=zj([0,1],[1,2],[2,3],[3,7],[0,4],[4,5],[5,6],[6,8],[9,10],[11,12],[11,13],[13,15],[15,17],[15,19],[15,21],[17,19],[12,14],[14,16],[16,18],[16,20],[16,22],[18,20],[11,23],[12,24],[23,24],[23,25],[24,26],[25,27],[26,28],[27,29],[28,30],[29,31],[30,32],[27,31],[28,32]);function bk(a){a.h={faceLandmarks:[],faceBlendshapes:[],poseLandmarks:[],poseWorldLandmarks:[],poseSegmentationMasks:[],leftHandLandmarks:[],leftHandWorldLandmarks:[],rightHandLandmarks:[],rightHandWorldLandmarks:[]}}function ck(a){try{if(a.D)a.D(a.h);else return a.h}finally{Bi(a)}}function dk(a,b){a=Mg(a);b.push(ai(a))}\nvar Z=class extends Gj{constructor(a,b){super(new Bj(a,b),\"input_frames_image\",null,!1);this.h={faceLandmarks:[],faceBlendshapes:[],poseLandmarks:[],poseWorldLandmarks:[],poseSegmentationMasks:[],leftHandLandmarks:[],leftHandWorldLandmarks:[],rightHandLandmarks:[],rightHandWorldLandmarks:[]};this.outputPoseSegmentationMasks=this.outputFaceBlendshapes=!1;a=this.j=new Bh;b=new R;z(a,R,1,b);this.I=new ph;z(this.j,ph,2,this.I);this.W=new yh;z(this.j,yh,3,this.W);this.u=new dh;z(this.j,dh,4,this.u);this.O=\nnew hh;z(this.j,hh,5,this.O);this.A=new zh;z(this.j,zh,6,this.A);this.M=new Ah;z(this.j,Ah,7,this.M);B(this.u,2,.5);B(this.u,3,.3);B(this.O,2,.5);B(this.A,2,.5);B(this.A,3,.3);B(this.M,2,.5);B(this.I,2,.5)}get baseOptions(){return y(this.j,R,1)}set baseOptions(a){z(this.j,R,1,a)}o(a){\"minFaceDetectionConfidence\"in a&&B(this.u,2,a.minFaceDetectionConfidence??.5);\"minFaceSuppressionThreshold\"in a&&B(this.u,3,a.minFaceSuppressionThreshold??.3);\"minFacePresenceConfidence\"in a&&B(this.O,2,a.minFacePresenceConfidence??\n.5);\"outputFaceBlendshapes\"in a&&(this.outputFaceBlendshapes=!!a.outputFaceBlendshapes);\"minPoseDetectionConfidence\"in a&&B(this.A,2,a.minPoseDetectionConfidence??.5);\"minPoseSuppressionThreshold\"in a&&B(this.A,3,a.minPoseSuppressionThreshold??.3);\"minPosePresenceConfidence\"in a&&B(this.M,2,a.minPosePresenceConfidence??.5);\"outputPoseSegmentationMasks\"in a&&(this.outputPoseSegmentationMasks=!!a.outputPoseSegmentationMasks);\"minHandLandmarksConfidence\"in a&&B(this.I,2,a.minHandLandmarksConfidence??\n.5);return this.l(a)}F(a,b,c){const d=typeof b!==\"function\"?b:{};this.D=typeof b===\"function\"?b:c;bk(this);Dj(this,a,d);return ck(this)}G(a,b,c,d){const e=typeof c!==\"function\"?c:{};this.D=typeof c===\"function\"?c:d;bk(this);Ej(this,a,e,b);return ck(this)}m(){var a=new yg;P(a,\"input_frames_image\");Q(a,\"pose_landmarks\");Q(a,\"pose_world_landmarks\");Q(a,\"face_landmarks\");Q(a,\"left_hand_landmarks\");Q(a,\"left_hand_world_landmarks\");Q(a,\"right_hand_landmarks\");Q(a,\"right_hand_world_landmarks\");const b=new Wf,\nc=new ag;Kd(c,1,\"type.googleapis.com/mediapipe.tasks.vision.holistic_landmarker.proto.HolisticLandmarkerGraphOptions\");$f(c,this.j.g());const d=new sg;Kd(d,2,\"mediapipe.tasks.vision.holistic_landmarker.HolisticLandmarkerGraph\");Hd(d,8,ag,c);M(d,\"IMAGE:input_frames_image\");O(d,\"POSE_LANDMARKS:pose_landmarks\");O(d,\"POSE_WORLD_LANDMARKS:pose_world_landmarks\");O(d,\"FACE_LANDMARKS:face_landmarks\");O(d,\"LEFT_HAND_LANDMARKS:left_hand_landmarks\");O(d,\"LEFT_HAND_WORLD_LANDMARKS:left_hand_world_landmarks\");\nO(d,\"RIGHT_HAND_LANDMARKS:right_hand_landmarks\");O(d,\"RIGHT_HAND_WORLD_LANDMARKS:right_hand_world_landmarks\");d.o(b);xg(a,d);zi(this,a);this.g.attachProtoListener(\"pose_landmarks\",(e,f)=>{dk(e,this.h.poseLandmarks);U(this,f)});this.g.attachEmptyPacketListener(\"pose_landmarks\",e=>{U(this,e)});this.g.attachProtoListener(\"pose_world_landmarks\",(e,f)=>{var g=this.h.poseWorldLandmarks;e=Kg(e);g.push(bi(e));U(this,f)});this.g.attachEmptyPacketListener(\"pose_world_landmarks\",e=>{U(this,e)});this.outputPoseSegmentationMasks&&\n(O(d,\"POSE_SEGMENTATION_MASK:pose_segmentation_mask\"),Ai(this,\"pose_segmentation_mask\"),this.g.Z(\"pose_segmentation_mask\",(e,f)=>{this.h.poseSegmentationMasks=[Fj(this,e,!0,!this.D)];U(this,f)}),this.g.attachEmptyPacketListener(\"pose_segmentation_mask\",e=>{this.h.poseSegmentationMasks=[];U(this,e)}));this.g.attachProtoListener(\"face_landmarks\",(e,f)=>{dk(e,this.h.faceLandmarks);U(this,f)});this.g.attachEmptyPacketListener(\"face_landmarks\",e=>{U(this,e)});this.outputFaceBlendshapes&&(Q(a,\"extra_blendshapes\"),\nO(d,\"FACE_BLENDSHAPES:extra_blendshapes\"),this.g.attachProtoListener(\"extra_blendshapes\",(e,f)=>{var g=this.h.faceBlendshapes;this.outputFaceBlendshapes&&(e=Eg(e),g.push(Xh(e.g()??[])));U(this,f)}),this.g.attachEmptyPacketListener(\"extra_blendshapes\",e=>{U(this,e)}));this.g.attachProtoListener(\"left_hand_landmarks\",(e,f)=>{dk(e,this.h.leftHandLandmarks);U(this,f)});this.g.attachEmptyPacketListener(\"left_hand_landmarks\",e=>{U(this,e)});this.g.attachProtoListener(\"left_hand_world_landmarks\",(e,f)=>\n{var g=this.h.leftHandWorldLandmarks;e=Kg(e);g.push(bi(e));U(this,f)});this.g.attachEmptyPacketListener(\"left_hand_world_landmarks\",e=>{U(this,e)});this.g.attachProtoListener(\"right_hand_landmarks\",(e,f)=>{dk(e,this.h.rightHandLandmarks);U(this,f)});this.g.attachEmptyPacketListener(\"right_hand_landmarks\",e=>{U(this,e)});this.g.attachProtoListener(\"right_hand_world_landmarks\",(e,f)=>{var g=this.h.rightHandWorldLandmarks;e=Kg(e);g.push(bi(e));U(this,f)});this.g.attachEmptyPacketListener(\"right_hand_world_landmarks\",\ne=>{U(this,e)});a=a.g();this.setGraph(new Uint8Array(a),!0)}};Z.prototype.detectForVideo=Z.prototype.G;Z.prototype.detect=Z.prototype.F;Z.prototype.setOptions=Z.prototype.o;Z.createFromModelPath=function(a,b){return X(Z,a,{baseOptions:{modelAssetPath:b}})};Z.createFromModelBuffer=function(a,b){return X(Z,a,{baseOptions:{modelAssetBuffer:b}})};Z.createFromOptions=function(a,b){return X(Z,a,b)};Z.HAND_CONNECTIONS=Tj;\nZ.POSE_CONNECTIONS=ak;Z.FACE_LANDMARKS_LIPS=Ij;\nZ.FACE_LANDMARKS_LEFT_EYE=Jj;Z.FACE_LANDMARKS_LEFT_EYEBROW=Kj;\nZ.FACE_LANDMARKS_LEFT_IRIS=Lj;Z.FACE_LANDMARKS_RIGHT_EYE=Mj;\nZ.FACE_LANDMARKS_RIGHT_EYEBROW=Nj;Z.FACE_LANDMARKS_RIGHT_IRIS=Oj;\nZ.FACE_LANDMARKS_FACE_OVAL=Pj;Z.FACE_LANDMARKS_CONTOURS=Qj;\nZ.FACE_LANDMARKS_TESSELATION=Rj;export {Z as HolisticLandmarker};var ek=class extends Gj{constructor(a,b){super(new Bj(a,b),\"input_image\",\"norm_rect\",!0);this.j={classifications:[]};a=this.h=new Eh;b=new R;z(a,R,1,b)}get baseOptions(){return y(this.h,R,1)}set baseOptions(a){z(this.h,R,1,a)}o(a){var b=this.h,c=Vh(a,y(this.h,Wg,2));z(b,Wg,2,c);return this.l(a)}sa(a,b){this.j={classifications:[]};Dj(this,a,b);return this.j}ta(a,b,c){this.j={classifications:[]};Ej(this,a,c,b);return this.j}m(){var a=new yg;P(a,\"input_image\");P(a,\"norm_rect\");Q(a,\"classifications\");\nconst b=new Wf;Oe(b,Fh,this.h);const c=new sg;Kd(c,2,\"mediapipe.tasks.vision.image_classifier.ImageClassifierGraph\");M(c,\"IMAGE:input_image\");M(c,\"NORM_RECT:norm_rect\");O(c,\"CLASSIFICATIONS:classifications\");c.o(b);xg(a,c);this.g.attachProtoListener(\"classifications\",(d,e)=>{this.j=Yh(Rg(d));U(this,e)});this.g.attachEmptyPacketListener(\"classifications\",d=>{U(this,d)});a=a.g();this.setGraph(new Uint8Array(a),!0)}};ek.prototype.classifyForVideo=ek.prototype.ta;ek.prototype.classify=ek.prototype.sa;\nek.prototype.setOptions=ek.prototype.o;ek.createFromModelPath=function(a,b){return X(ek,a,{baseOptions:{modelAssetPath:b}})};ek.createFromModelBuffer=function(a,b){return X(ek,a,{baseOptions:{modelAssetBuffer:b}})};ek.createFromOptions=function(a,b){return X(ek,a,b)};export {ek as ImageClassifier};var fk=class extends Gj{constructor(a,b){super(new Bj(a,b),\"image_in\",\"norm_rect\",!0);this.h=new Gh;this.embeddings={embeddings:[]};a=this.h;b=new R;z(a,R,1,b)}get baseOptions(){return y(this.h,R,1)}set baseOptions(a){z(this.h,R,1,a)}o(a){var b=this.h,c=y(this.h,Yg,2);c=c?c.clone():new Yg;a.l2Normalize!==void 0?v(c,1,$b(a.l2Normalize)):\"l2Normalize\"in a&&v(c,1);a.quantize!==void 0?v(c,2,$b(a.quantize)):\"quantize\"in a&&v(c,2);z(b,Yg,2,c);return this.l(a)}za(a,b){Dj(this,a,b);return this.embeddings}Aa(a,\nb,c){Ej(this,a,c,b);return this.embeddings}m(){var a=new yg;P(a,\"image_in\");P(a,\"norm_rect\");Q(a,\"embeddings_out\");const b=new Wf;Oe(b,Hh,this.h);const c=new sg;Kd(c,2,\"mediapipe.tasks.vision.image_embedder.ImageEmbedderGraph\");M(c,\"IMAGE:image_in\");M(c,\"NORM_RECT:norm_rect\");O(c,\"EMBEDDINGS:embeddings_out\");c.o(b);xg(a,c);this.g.attachProtoListener(\"embeddings_out\",(d,e)=>{d=Vg(d);this.embeddings=$h(d);U(this,e)});this.g.attachEmptyPacketListener(\"embeddings_out\",d=>{U(this,d)});a=a.g();this.setGraph(new Uint8Array(a),\n!0)}};fk.cosineSimilarity=function(a,b){if(a.floatEmbedding&&b.floatEmbedding)a=di(a.floatEmbedding,b.floatEmbedding);else if(a.quantizedEmbedding&&b.quantizedEmbedding)a=di(ci(a.quantizedEmbedding),ci(b.quantizedEmbedding));else throw Error(\"Cannot compute cosine similarity between quantized and float embeddings.\");return a};fk.prototype.embedForVideo=fk.prototype.Aa;fk.prototype.embed=fk.prototype.za;fk.prototype.setOptions=fk.prototype.o;fk.createFromModelPath=function(a,b){return X(fk,a,{baseOptions:{modelAssetPath:b}})};\nfk.createFromModelBuffer=function(a,b){return X(fk,a,{baseOptions:{modelAssetBuffer:b}})};fk.createFromOptions=function(a,b){return X(fk,a,b)};export {fk as ImageEmbedder};var gk=class{constructor(a,b,c){this.confidenceMasks=a;this.categoryMask=b;this.qualityScores=c}close(){this.confidenceMasks?.forEach(a=>{a.close()});this.categoryMask?.close()}};gk.prototype.close=gk.prototype.close;export {gk as ImageSegmenterResult};function hk(a){const b=wg(a.ca()).filter(c=>(t(u(c,1))??\"\").includes(\"mediapipe.tasks.TensorsToSegmentationCalculator\"));a.u=[];if(b.length>1)throw Error(\"The graph has more than one mediapipe.tasks.TensorsToSegmentationCalculator.\");b.length===1&&(y(b[0],Wf,7)?.j()?.g()??new Map).forEach((c,d)=>{a.u[Number(d)]=t(u(c,1))??\"\"})}function ik(a){a.categoryMask=void 0;a.confidenceMasks=void 0;a.qualityScores=void 0}\nfunction jk(a){try{const b=new gk(a.confidenceMasks,a.categoryMask,a.qualityScores);if(a.j)a.j(b);else return b}finally{Bi(a)}}\nvar kk=class extends Gj{constructor(a,b){super(new Bj(a,b),\"image_in\",\"norm_rect\",!1);this.u=[];this.outputCategoryMask=!1;this.outputConfidenceMasks=!0;this.h=new Kh;this.A=new Ih;z(this.h,Ih,3,this.A);a=this.h;b=new R;z(a,R,1,b)}get baseOptions(){return y(this.h,R,1)}set baseOptions(a){z(this.h,R,1,a)}o(a){a.displayNamesLocale!==void 0?v(this.h,2,qc(a.displayNamesLocale)):\"displayNamesLocale\"in a&&v(this.h,2);\"outputCategoryMask\"in a&&(this.outputCategoryMask=a.outputCategoryMask??!1);\"outputConfidenceMasks\"in\na&&(this.outputConfidenceMasks=a.outputConfidenceMasks??!0);return super.l(a)}L(){hk(this)}segment(a,b,c){const d=typeof b!==\"function\"?b:{};this.j=typeof b===\"function\"?b:c;ik(this);Dj(this,a,d);return jk(this)}La(a,b,c,d){const e=typeof c!==\"function\"?c:{};this.j=typeof c===\"function\"?c:d;ik(this);Ej(this,a,e,b);return jk(this)}Da(){return this.u}m(){var a=new yg;P(a,\"image_in\");P(a,\"norm_rect\");const b=new Wf;Oe(b,Lh,this.h);const c=new sg;Kd(c,2,\"mediapipe.tasks.vision.image_segmenter.ImageSegmenterGraph\");\nM(c,\"IMAGE:image_in\");M(c,\"NORM_RECT:norm_rect\");c.o(b);xg(a,c);zi(this,a);this.outputConfidenceMasks&&(Q(a,\"confidence_masks\"),O(c,\"CONFIDENCE_MASKS:confidence_masks\"),Ai(this,\"confidence_masks\"),this.g.aa(\"confidence_masks\",(d,e)=>{this.confidenceMasks=d.map(f=>Fj(this,f,!0,!this.j));U(this,e)}),this.g.attachEmptyPacketListener(\"confidence_masks\",d=>{this.confidenceMasks=[];U(this,d)}));this.outputCategoryMask&&(Q(a,\"category_mask\"),O(c,\"CATEGORY_MASK:category_mask\"),Ai(this,\"category_mask\"),this.g.Z(\"category_mask\",\n(d,e)=>{this.categoryMask=Fj(this,d,!1,!this.j);U(this,e)}),this.g.attachEmptyPacketListener(\"category_mask\",d=>{this.categoryMask=void 0;U(this,d)}));Q(a,\"quality_scores\");O(c,\"QUALITY_SCORES:quality_scores\");this.g.attachFloatVectorListener(\"quality_scores\",(d,e)=>{this.qualityScores=d;U(this,e)});this.g.attachEmptyPacketListener(\"quality_scores\",d=>{this.categoryMask=void 0;U(this,d)});a=a.g();this.setGraph(new Uint8Array(a),!0)}};kk.prototype.getLabels=kk.prototype.Da;\nkk.prototype.segmentForVideo=kk.prototype.La;kk.prototype.segment=kk.prototype.segment;kk.prototype.setOptions=kk.prototype.o;kk.createFromModelPath=function(a,b){return X(kk,a,{baseOptions:{modelAssetPath:b}})};kk.createFromModelBuffer=function(a,b){return X(kk,a,{baseOptions:{modelAssetBuffer:b}})};kk.createFromOptions=function(a,b){return X(kk,a,b)};export {kk as ImageSegmenter};var lk=class{constructor(a,b,c){this.confidenceMasks=a;this.categoryMask=b;this.qualityScores=c}close(){this.confidenceMasks?.forEach(a=>{a.close()});this.categoryMask?.close()}};lk.prototype.close=lk.prototype.close;export {lk as InteractiveSegmenterResult};var mk=class extends Gj{constructor(a,b){super(new Bj(a,b),\"image_in\",\"norm_rect_in\",!1);this.outputCategoryMask=!1;this.outputConfidenceMasks=!0;this.h=new Kh;this.u=new Ih;z(this.h,Ih,3,this.u);a=this.h;b=new R;z(a,R,1,b)}get baseOptions(){return y(this.h,R,1)}set baseOptions(a){z(this.h,R,1,a)}o(a){\"outputCategoryMask\"in a&&(this.outputCategoryMask=a.outputCategoryMask??!1);\"outputConfidenceMasks\"in a&&(this.outputConfidenceMasks=a.outputConfidenceMasks??!0);return super.l(a)}segment(a,b,c,d){const e=\ntypeof c!==\"function\"?c:{};this.j=typeof c===\"function\"?c:d;this.qualityScores=this.categoryMask=this.confidenceMasks=void 0;c=this.C+1;d=new Ph;if(b.keypoint&&b.scribble)throw Error(\"Cannot provide both keypoint and scribble.\");if(b.keypoint){var f=new Mh;ud(f,3,$b(!0),!1);ud(f,1,Yb(b.keypoint.x),0);ud(f,2,Yb(b.keypoint.y),0);Gd(d,1,Qh,f)}else if(b.scribble){const h=new Oh;for(f of b.scribble)b=new Mh,ud(b,3,$b(!0),!1),ud(b,1,Yb(f.x),0),ud(b,2,Yb(f.y),0),Hd(h,1,Mh,b);Gd(d,2,Qh,h)}else throw Error(\"Must provide either a keypoint or a scribble.\");\nthis.g.addProtoToStream(d.g(),\"mediapipe.tasks.vision.interactive_segmenter.proto.RegionOfInterest\",\"roi_in\",c);Dj(this,a,e);a:{try{const h=new lk(this.confidenceMasks,this.categoryMask,this.qualityScores);if(this.j)this.j(h);else{var g=h;break a}}finally{Bi(this)}g=void 0}return g}m(){var a=new yg;P(a,\"image_in\");P(a,\"roi_in\");P(a,\"norm_rect_in\");const b=new Wf;Oe(b,Lh,this.h);const c=new sg;Kd(c,2,\"mediapipe.tasks.vision.interactive_segmenter.InteractiveSegmenterGraphV2\");M(c,\"IMAGE:image_in\");\nM(c,\"ROI:roi_in\");M(c,\"NORM_RECT:norm_rect_in\");c.o(b);xg(a,c);zi(this,a);this.outputConfidenceMasks&&(Q(a,\"confidence_masks\"),O(c,\"CONFIDENCE_MASKS:confidence_masks\"),Ai(this,\"confidence_masks\"),this.g.aa(\"confidence_masks\",(d,e)=>{this.confidenceMasks=d.map(f=>Fj(this,f,!0,!this.j));U(this,e)}),this.g.attachEmptyPacketListener(\"confidence_masks\",d=>{this.confidenceMasks=[];U(this,d)}));this.outputCategoryMask&&(Q(a,\"category_mask\"),O(c,\"CATEGORY_MASK:category_mask\"),Ai(this,\"category_mask\"),this.g.Z(\"category_mask\",\n(d,e)=>{this.categoryMask=Fj(this,d,!1,!this.j);U(this,e)}),this.g.attachEmptyPacketListener(\"category_mask\",d=>{this.categoryMask=void 0;U(this,d)}));Q(a,\"quality_scores\");O(c,\"QUALITY_SCORES:quality_scores\");this.g.attachFloatVectorListener(\"quality_scores\",(d,e)=>{this.qualityScores=d;U(this,e)});this.g.attachEmptyPacketListener(\"quality_scores\",d=>{this.categoryMask=void 0;U(this,d)});a=a.g();this.setGraph(new Uint8Array(a),!0)}};mk.prototype.segment=mk.prototype.segment;\nmk.prototype.setOptions=mk.prototype.o;mk.createFromModelPath=function(a,b){return X(mk,a,{baseOptions:{modelAssetPath:b}})};mk.createFromModelBuffer=function(a,b){return X(mk,a,{baseOptions:{modelAssetBuffer:b}})};mk.createFromOptions=function(a,b){return X(mk,a,b)};export {mk as InteractiveSegmenter};var nk=class extends Gj{constructor(a,b){super(new Bj(a,b),\"input_frame_gpu\",\"norm_rect\",!1);this.j={detections:[]};a=this.h=new Rh;b=new R;z(a,R,1,b)}get baseOptions(){return y(this.h,R,1)}set baseOptions(a){z(this.h,R,1,a)}o(a){a.displayNamesLocale!==void 0?v(this.h,2,qc(a.displayNamesLocale)):\"displayNamesLocale\"in a&&v(this.h,2);a.maxResults!==void 0?Jd(this.h,3,a.maxResults):\"maxResults\"in a&&v(this.h,3);a.scoreThreshold!==void 0?B(this.h,4,a.scoreThreshold):\"scoreThreshold\"in a&&v(this.h,4);\na.categoryAllowlist!==void 0?Ld(this.h,5,a.categoryAllowlist):\"categoryAllowlist\"in a&&v(this.h,5);a.categoryDenylist!==void 0?Ld(this.h,6,a.categoryDenylist):\"categoryDenylist\"in a&&v(this.h,6);return this.l(a)}F(a,b){this.j={detections:[]};Dj(this,a,b);return this.j}G(a,b,c){this.j={detections:[]};Ej(this,a,c,b);return this.j}m(){var a=new yg;P(a,\"input_frame_gpu\");P(a,\"norm_rect\");Q(a,\"detections\");const b=new Wf;Oe(b,Sh,this.h);const c=new sg;Kd(c,2,\"mediapipe.tasks.vision.ObjectDetectorGraph\");\nM(c,\"IMAGE:input_frame_gpu\");M(c,\"NORM_RECT:norm_rect\");O(c,\"DETECTIONS:detections\");c.o(b);xg(a,c);this.g.attachProtoVectorListener(\"detections\",(d,e)=>{for(const f of d)d=Ig(f),this.j.detections.push(Zh(d));U(this,e)});this.g.attachEmptyPacketListener(\"detections\",d=>{U(this,d)});a=a.g();this.setGraph(new Uint8Array(a),!0)}};nk.prototype.detectForVideo=nk.prototype.G;nk.prototype.detect=nk.prototype.F;nk.prototype.setOptions=nk.prototype.o;\nnk.createFromModelPath=async function(a,b){return X(nk,a,{baseOptions:{modelAssetPath:b}})};nk.createFromModelBuffer=function(a,b){return X(nk,a,{baseOptions:{modelAssetBuffer:b}})};nk.createFromOptions=function(a,b){return X(nk,a,b)};export {nk as ObjectDetector};var ok=class{constructor(a,b,c){this.landmarks=a;this.worldLandmarks=b;this.segmentationMasks=c}close(){this.segmentationMasks?.forEach(a=>{a.close()})}};ok.prototype.close=ok.prototype.close;function pk(a){a.landmarks=[];a.worldLandmarks=[];a.segmentationMasks=void 0}function qk(a){try{const b=new ok(a.landmarks,a.worldLandmarks,a.segmentationMasks);if(a.u)a.u(b);else return b}finally{Bi(a)}}\nvar rk=class extends Gj{constructor(a,b){super(new Bj(a,b),\"image_in\",\"norm_rect\",!1);this.landmarks=[];this.worldLandmarks=[];this.outputSegmentationMasks=!1;a=this.h=new Th;b=new R;z(a,R,1,b);this.A=new Ah;z(this.h,Ah,3,this.A);this.j=new zh;z(this.h,zh,2,this.j);Jd(this.j,4,1);B(this.j,2,.5);B(this.A,2,.5);B(this.h,4,.5)}get baseOptions(){return y(this.h,R,1)}set baseOptions(a){z(this.h,R,1,a)}o(a){\"numPoses\"in a&&Jd(this.j,4,a.numPoses??1);\"minPoseDetectionConfidence\"in a&&B(this.j,2,a.minPoseDetectionConfidence??\n.5);\"minTrackingConfidence\"in a&&B(this.h,4,a.minTrackingConfidence??.5);\"minPosePresenceConfidence\"in a&&B(this.A,2,a.minPosePresenceConfidence??.5);\"outputSegmentationMasks\"in a&&(this.outputSegmentationMasks=a.outputSegmentationMasks??!1);return this.l(a)}F(a,b,c){const d=typeof b!==\"function\"?b:{};this.u=typeof b===\"function\"?b:c;pk(this);Dj(this,a,d);return qk(this)}G(a,b,c,d){const e=typeof c!==\"function\"?c:{};this.u=typeof c===\"function\"?c:d;pk(this);Ej(this,a,e,b);return qk(this)}m(){var a=\nnew yg;P(a,\"image_in\");P(a,\"norm_rect\");Q(a,\"normalized_landmarks\");Q(a,\"world_landmarks\");Q(a,\"segmentation_masks\");const b=new Wf;Oe(b,Uh,this.h);const c=new sg;Kd(c,2,\"mediapipe.tasks.vision.pose_landmarker.PoseLandmarkerGraph\");M(c,\"IMAGE:image_in\");M(c,\"NORM_RECT:norm_rect\");O(c,\"NORM_LANDMARKS:normalized_landmarks\");O(c,\"WORLD_LANDMARKS:world_landmarks\");c.o(b);xg(a,c);zi(this,a);this.g.attachProtoVectorListener(\"normalized_landmarks\",(d,e)=>{this.landmarks=[];for(const f of d)d=Mg(f),this.landmarks.push(ai(d));\nU(this,e)});this.g.attachEmptyPacketListener(\"normalized_landmarks\",d=>{this.landmarks=[];U(this,d)});this.g.attachProtoVectorListener(\"world_landmarks\",(d,e)=>{this.worldLandmarks=[];for(const f of d)d=Kg(f),this.worldLandmarks.push(bi(d));U(this,e)});this.g.attachEmptyPacketListener(\"world_landmarks\",d=>{this.worldLandmarks=[];U(this,d)});this.outputSegmentationMasks&&(O(c,\"SEGMENTATION_MASK:segmentation_masks\"),Ai(this,\"segmentation_masks\"),this.g.aa(\"segmentation_masks\",(d,e)=>{this.segmentationMasks=\nd.map(f=>Fj(this,f,!0,!this.u));U(this,e)}),this.g.attachEmptyPacketListener(\"segmentation_masks\",d=>{this.segmentationMasks=[];U(this,d)}));a=a.g();this.setGraph(new Uint8Array(a),!0)}};rk.prototype.detectForVideo=rk.prototype.G;rk.prototype.detect=rk.prototype.F;rk.prototype.setOptions=rk.prototype.o;rk.createFromModelPath=function(a,b){return X(rk,a,{baseOptions:{modelAssetPath:b}})};rk.createFromModelBuffer=function(a,b){return X(rk,a,{baseOptions:{modelAssetBuffer:b}})};\nrk.createFromOptions=function(a,b){return X(rk,a,b)};rk.POSE_CONNECTIONS=ak;export {rk as PoseLandmarker};\n"],"names":["aa","self","ba","a","b","c","d","e","length","da","Error","ea","String","fromCharCode","apply","fa","ha","ia","TextDecoder","ja","ka","TextEncoder","la","encode","Uint8Array","charCodeAt","f","subarray","ma","setTimeout","qa","na","oa","pa","navigator","userAgent","ra","sa","userAgentData","ta","ua","va","Math","floor","indexOf","charAt","g","test","ya","h","xa","split","concat","za","Aa","brands","btoa","Ba","Ca","_","Da","Ea","replace","atob","Fa","Ga","Ha","Ia","Ja","Ka","La","this","constructor","Na","Ma","__closure__error__context__984382","severity","Oa","Pa","Qa","BigInt","Ra","Symbol","Sa","for","Ta","Ua","Va","Wa","Xa","Ya","Za","$a","ab","bb","cb","value","configurable","writable","enumerable","db","Object","defineProperties","n","eb","fb","gb","p","hb","ib","freeze","jb","kb","lb","v","mb","nb","l","next","done","call","iterator","ob","pb","isNaN","qb","rb","sb","tb","ub","vb","wb","xb","Number","isSafeInteger","trim","Db","yb","zb","Ab","Bb","Cb","MIN_SAFE_INTEGER","toString","MAX_SAFE_INTEGER","Eb","prototype","slice","Fb","q","r","Gb","Hb","Ib","Jb","DataView","ArrayBuffer","setFloat32","getUint32","Kb","Lb","Mb","asUintN","Nb","asIntN","Ob","Pb","Qb","trunc","Rb","Array","Sb","Tb","Ub","Vb","isFinite","Wb","Xb","Yb","Zb","$b","isArray","ac","bc","cc","dc","ec","fc","hc","ic","substring","jc","kc","mc","pc","qc","t","rc","sc","uc","vc","Map","super","wc","get","set","size","delete","clear","has","entries","keys","values","forEach","xc","setPrototypeOf","yc","zc","J","Cc","K","S","Ac","V","from","Bc","Dc","Ec","Fc","Gc","Ic","toJSON","Kc","Lc","Mc","Nc","k","w","m","D","G","N","wa","push","Jc","Pc","Qc","Rc","join","Sc","Tc","Vc","Wc","Xc","max","Yc","Zc","$c","ad","bd","cd","dd","ed","fd","gd","hd","u","id","is","x","jd","kd","ld","md","nd","od","pd","qd","rd","ud","vd","wd","xd","yd","zd","defineProperty","Ad","Bd","Cd","y","Dd","Rf","Hc","Td","Ud","Sf","Ed","Fd","z","Gd","Hd","Id","A","Jd","B","Kd","Ld","isFrozen","Md","Nd","buffer","Od","byteOffset","byteLength","Pd","Qd","Rd","Sd","Vd","Wd","NaN","Infinity","pow","Xd","Yd","Zd","Y","j","ae","be","ce","pop","o","init","de","ee","fe","ge","he","ie","fatal","decode","je","ke","le","ne","me","oe","qe","pe","re","se","te","ue","we","xe","ye","end","ze","Ae","Be","De","Ee","Fe","Ge","He","Ie","Je","Ke","Le","Me","Ne","Oe","C","Pe","defaultValue","clone","Qe","Re","Se","Te","Ue","Ve","We","Xe","Ye","Ze","$e","af","bf","cf","T","Uc","df","ef","ff","gf","hf","jf","bind","kf","lf","mf","nf","of","pf","qf","rf","sf","tf","uf","vf","wf","nc","xf","yf","zf","Af","Bf","Cf","Df","E","Ef","Ff","Gf","Hf","If","Jf","oc","F","Kf","Lf","H","Mf","Nf","Of","I","Pf","Qf","Tf","Uf","parseInt","Vf","Wf","register","Xf","Yf","assign","Zf","ag","bg","dg","cg","globalThis","trustedTypes","gg","createPolicy","createHTML","createScript","createScriptURL","eg","hg","encodeURIComponent","ig","jg","kg","lg","mg","ng","og","pg","L","qg","M","O","sg","tg","ug","vg","xg","P","Q","yg","rg","zg","Ag","Bg","Cg","Dg","Eg","Fg","Gg","Hg","Ig","Jg","Kg","Lg","Mg","Ng","Og","Pg","Qg","Rg","Sg","Tg","Ug","Vg","Wg","Xg","Yg","Zg","$g","ah","bh","R","ch","dh","eh","fh","gh","hh","ih","jh","kh","lh","mh","nh","oh","ph","qh","rh","sh","th","uh","vh","wh","xh","yh","zh","Ah","Bh","Ch","Dh","Eh","Fh","Gh","Hh","Ih","td","Jh","sd","Kh","Lh","Mh","Nh","Oh","Ph","Qh","Rh","Sh","Th","Uh","Vh","displayNamesLocale","maxResults","scoreThreshold","categoryAllowlist","categoryDenylist","Wh","Xh","categories","map","index","score","categoryName","displayName","headIndex","headName","Yh","classifications","lc","timestampMs","Zh","keypoints","boundingBox","originX","originY","width","height","angle","label","ai","visibility","bi","ci","di","sqrt","ei","fi","async","gi","WebAssembly","instantiate","hi","wasmLoaderPath","wasmBinaryPath","ii","li","OffscreenCanvas","includes","ki","match","mi","importScripts","document","createElement","src","crossOrigin","Promise","addEventListener","body","appendChild","TypeError","ni","videoWidth","videoHeight","naturalWidth","naturalHeight","displayWidth","displayHeight","console","error","i","stringToNewUTF8","_free","oi","canvas","_bindTextureToStream","_bindTextureToCanvas","getContext","gpuOriginForWebTexturesIsBottomLeft","pixelStorei","UNPACK_FLIP_Y_WEBGL","texImage2D","TEXTURE_2D","RGBA","UNSIGNED_BYTE","pi","Uint32Array","_malloc","HEAPU32","qi","simpleListeners","ri","forVisionTasks","forTextTasks","forGenAiTasks","forAudioTasks","isSimdSupported","ui","ModuleFactory","Module","locateFile","mainScriptUrlOrBlob","ti","assetLoaderPath","endsWith","assetBinaryPath","xi","baseOptions","yi","message","U","zi","Ai","Bi","addBoolToStream","Ci","setAutoRenderToScreen","modelAssetBuffer","modelAssetPath","delegate","wi","fetch","then","ok","arrayBuffer","status","FS_unlink","FS_createDataFile","read","ji","resolve","ca","setGraph","attachErrorListener","finishProcessing","close","closeGraph","Di","Ei","bindVertexArray","deleteVertexArray","deleteBuffer","Fi","createShader","shaderSource","compileShader","getShaderParameter","COMPILE_STATUS","getShaderInfoLog","attachShader","Gi","createVertexArray","createBuffer","bindBuffer","ARRAY_BUFFER","enableVertexAttribArray","vertexAttribPointer","FLOAT","bufferData","Float32Array","STATIC_DRAW","Hi","Ii","useProgram","Ji","createTexture","bindTexture","texParameteri","TEXTURE_WRAP_S","CLAMP_TO_EDGE","TEXTURE_WRAP_T","TEXTURE_MIN_FILTER","LINEAR","TEXTURE_MAG_FILTER","Ki","createFramebuffer","bindFramebuffer","FRAMEBUFFER","framebufferTexture2D","COLOR_ATTACHMENT0","Li","Mi","createProgram","X","VERTEX_SHADER","W","FRAGMENT_SHADER","linkProgram","getProgramParameter","LINK_STATUS","getProgramInfoLog","getAttribLocation","deleteProgram","deleteShader","deleteFramebuffer","Pi","activeTexture","TEXTURE1","TEXTURE2","NEAREST","getUniformLocation","uniform1i","deleteTexture","Qi","Ri","find","WebGLTexture","Ti","Ui","Vi","Wi","platform","readPixels","RED","Xi","Yi","Zi","$i","getExtension","R32F","R16F","viewport","TEXTURE0","aj","round","clearColor","COLOR_BUFFER_BIT","drawArrays","TRIANGLE_FAN","getAsWebGLTexture","getAsFloat32Array","getAsUint8Array","hasWebGLTexture","hasFloat32Array","hasUint8Array","bj","color","lineWidth","radius","cj","fillColor","dj","Function","ej","min","fj","gj","jj","kj","hj","ImageData","Uint8ClampedArray","Ni","fill","Oi","mj","ij","oj","CanvasRenderingContext2D","OffscreenCanvasRenderingContext2D","save","fillStyle","strokeStyle","Path2D","arc","PI","stroke","restore","beginPath","start","to","moveTo","lineTo","drawImage","lj","nj","pj","ImageBitmap","qj","rj","sj","tj","uj","vj","wj","xj","transferToImageBitmap","drawConfidenceMask","drawCategoryMask","drawBoundingBox","drawConnectors","drawLandmarks","lerp","clamp","yj","data","getAsImageBitmap","getAsImageData","hasImageBitmap","hasImageData","zj","Aj","_registerModelResourcesGraphService","_addIntToInputStream","warn","setGraphFromString","HEAPU8","_changeBinaryGraph","_changeTextGraph","configureAudio","_configureAudio","setAutoResizeCanvas","_setAutoRenderToScreen","setGpuBufferVerticalFlip","_getGraphConfig","__graph_config__","errorListener","attachEmptyPacketListener","emptyPacketListeners","addAudioToStream","addAudioToStreamWithShape","HEAPF32","_addAudioToInputStream","addGpuBufferToStream","_addBoundTextureToStream","_addBoolToInputStream","addDoubleToStream","_addDoubleToInputStream","addFloatToStream","_addFloatToInputStream","addIntToStream","addUintToStream","_addUintToInputStream","addStringToStream","_addStringToInputStream","addStringRecordToStream","_addFlatHashMapToInputStream","addProtoToStream","_addProtoToInputStream","addEmptyPacketToStream","_addEmptyPacketToInputStream","addBoolVectorToStream","_allocateBoolVector","_addBoolVectorEntry","_addBoolVectorToInputStream","addDoubleVectorToStream","_allocateDoubleVector","_addDoubleVectorEntry","_addDoubleVectorToInputStream","addFloatVectorToStream","_allocateFloatVector","_addFloatVectorEntry","_addFloatVectorToInputStream","addIntVectorToStream","_allocateIntVector","_addIntVectorEntry","_addIntVectorToInputStream","addUintVectorToStream","_allocateUintVector","_addUintVectorEntry","_addUintVectorToInputStream","addStringVectorToStream","_allocateStringVector","_addStringVectorEntry","_addStringVectorToInputStream","addBoolToInputSidePacket","_addBoolToInputSidePacket","addDoubleToInputSidePacket","_addDoubleToInputSidePacket","addFloatToInputSidePacket","_addFloatToInputSidePacket","addIntToInputSidePacket","_addIntToInputSidePacket","addUintToInputSidePacket","_addUintToInputSidePacket","addStringToInputSidePacket","_addStringToInputSidePacket","addProtoToInputSidePacket","_addProtoToInputSidePacket","addBoolVectorToInputSidePacket","_addBoolVectorToInputSidePacket","addDoubleVectorToInputSidePacket","_addDoubleVectorToInputSidePacket","addFloatVectorToInputSidePacket","_addFloatVectorToInputSidePacket","addIntVectorToInputSidePacket","_addIntVectorToInputSidePacket","addUintVectorToInputSidePacket","_addUintVectorToInputSidePacket","addStringVectorToInputSidePacket","_addStringVectorToInputSidePacket","attachBoolListener","_attachBoolListener","attachBoolVectorListener","_attachBoolVectorListener","attachIntListener","_attachIntListener","attachIntVectorListener","_attachIntVectorListener","attachUintListener","_attachUintListener","attachUintVectorListener","_attachUintVectorListener","attachDoubleListener","_attachDoubleListener","attachDoubleVectorListener","_attachDoubleVectorListener","attachFloatListener","_attachFloatListener","attachFloatVectorListener","_attachFloatVectorListener","attachStringListener","_attachStringListener","attachStringVectorListener","_attachStringVectorListener","attachProtoListener","_attachProtoListener","attachProtoVectorListener","_attachProtoVectorListener","attachAudioListener","_attachAudioListener","_waitUntilIdle","_closeGraph","ga","_addBoundTextureAsImageToStream","Z","_attachImageListener","_attachImageVectorListener","Bj","vi","Cj","regionOfInterest","left","right","top","bottom","rotationDegrees","performance","now","Dj","Ej","Fj","Gj","runningMode","Hj","detections","minDetectionConfidence","minSuppressionThreshold","detectForVideo","detect","setOptions","createFromModelPath","createFromModelBuffer","createFromOptions","Ij","Jj","Kj","Lj","Mj","Nj","Oj","Pj","Qj","Rj","Sj","faceLandmarks","faceBlendshapes","facialTransformationMatrixes","outputFacialTransformationMatrixes","outputFaceBlendshapes","numFaces","minFaceDetectionConfidence","minTrackingConfidence","minFacePresenceConfidence","rows","columns","FACE_LANDMARKS_LIPS","FACE_LANDMARKS_LEFT_EYE","FACE_LANDMARKS_LEFT_EYEBROW","FACE_LANDMARKS_LEFT_IRIS","FACE_LANDMARKS_RIGHT_EYE","FACE_LANDMARKS_RIGHT_EYEBROW","FACE_LANDMARKS_RIGHT_IRIS","FACE_LANDMARKS_FACE_OVAL","FACE_LANDMARKS_CONTOURS","FACE_LANDMARKS_TESSELATION","Tj","Uj","gestures","landmarks","worldLandmarks","handedness","Vj","handednesses","Wj","Xj","numHands","minHandDetectionConfidence","minHandPresenceConfidence","cannedGesturesClassifierOptions","customGesturesClassifierOptions","Yj","recognizeForVideo","recognize","HAND_CONNECTIONS","Zj","ak","bk","poseLandmarks","poseWorldLandmarks","poseSegmentationMasks","leftHandLandmarks","leftHandWorldLandmarks","rightHandLandmarks","rightHandWorldLandmarks","ck","dk","outputPoseSegmentationMasks","minFaceSuppressionThreshold","minPoseDetectionConfidence","minPoseSuppressionThreshold","minPosePresenceConfidence","minHandLandmarksConfidence","$f","POSE_CONNECTIONS","ek","classifyForVideo","classify","fk","embeddings","l2Normalize","quantize","floatEmbedding","quantizedEmbedding","$h","cosineSimilarity","embedForVideo","embed","gk","confidenceMasks","categoryMask","qualityScores","hk","wg","filter","ik","jk","kk","outputCategoryMask","outputConfidenceMasks","segment","getLabels","segmentForVideo","lk","mk","keypoint","scribble","nk","segmentationMasks","pk","qk","rk","outputSegmentationMasks","numPoses"],"mappings":"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C,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IACpf,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,GAAG,CAAC,EAAE,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,GAAG,CAAC,EAAE,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC,IAClf,GAAG,CAAC,EAAE,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAClf,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IACpf,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,GAAG,CAAC,EAAE,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IACrf,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,GAAG,CAAC,EAAE,GAAG,CAAC,EAAE,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,EAAE,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,GAAG,CAAC,EAAE,IAAI,CAAC,GAAG,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IACjf,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,EAAE,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,GAAG,CAAC,GAAG,GAAG,CAAC,EAAE,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,KAChf,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,EAAE,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,GAAG,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IACnf,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAChf,CAAC,IAAI,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,GAAG,CAAC,EAAE,GAAG,CAAC,EAAE,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,EAAE,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IACnf,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IACpf,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,GAAG,CAAC,EAAE,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,EAAE,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,GAAG,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IACpf,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,GAAG,CAAC,EAAE,GAAG,CAAC,EAAE,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KACpf,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,GAAG,CAAC,EAAE,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IACrf,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KACpf,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,GAAG,CAAC,EAAE,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KACnf,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IACrf,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,GAAG,CAAC,EAAE,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,EAAE,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,GAAG,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,GAAG,CAAC,EAAE,KAAK,CAAC,IAAI,KACpf,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IACpf,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,EAAE,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,GAAG,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,GAAG,CAAC,EAAE,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KACnf,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IACrf,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,GAAG,CAAC,EAAE,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,EAAE,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,GAAG,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAClf,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KACpf,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IACpf,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,IACpf,CAAC,GAAG,IAAI,CAAC,IAAI,GAAG,CAAC,EAAE,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,EAAE,IAAI,CAAC,GAAG,GAAG,CAAC,EAAE,GAAG,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,GACnf,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,GAAG,CAAC,EAAE,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IACnf,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,KAChf,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,EAAE,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,GAAG,CAAC,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,GAAG,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IACrf,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,GACpf,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,GAAG,CAAC,EAAE,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,GAAG,CAAC,EAAE,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IACpf,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,GAAG,CAAC,EAAE,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KACjf,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,GAAG,CAAC,EAAE,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IACrf,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,GAAG,CAAC,EAAE,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IACnf,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,GAAG,GAAG,CAAC,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IACnf,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,GAAG,CAAC,EAAE,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,EAAE,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,GAAG,CAAC,IAAI,KAAK,CAAC,IACpf,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,GAAG,CAAC,EAAE,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,KAAK,CAAC,IAClf,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,GAAG,CAAC,EAAE,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAClf,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,GAAG,CAAC,EAAE,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAChf,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IACnf,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KACpf,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,EAAE,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,GAAG,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,EAAE,KAAK,CAAC,IAAI,GAAG,CAAC,EAAE,GAAG,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KACnf,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,GAAG,CAAC,EAAE,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IACjf,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAClf,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,GAAG,CAAC,EAAE,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KACjf,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,EAAE,KAAK,CAAC,IAAI,GAAG,CAAC,EAAE,GAAG,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KACjf,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,GAAG,CAAC,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KACnf,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,C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"} \ No newline at end of file diff --git a/app/node_modules/@mediapipe/tasks-vision/wasm/vision_wasm_internal.js b/app/node_modules/@mediapipe/tasks-vision/wasm/vision_wasm_internal.js index 162d0b8f..15dde9e8 100644 --- a/app/node_modules/@mediapipe/tasks-vision/wasm/vision_wasm_internal.js +++ b/app/node_modules/@mediapipe/tasks-vision/wasm/vision_wasm_internal.js @@ -1,20 +1,8844 @@ -// Build 676155176 +// This code implements the `-sMODULARIZE` settings by taking the generated +// JS program code (INNER_JS_CODE) and wrapping it in a factory function. +// Single threaded MINIMAL_RUNTIME programs do not need access to +// document.currentScript, so a simple export declaration is enough. var ModuleFactory = (() => { - var _scriptName = typeof document != 'undefined' ? document.currentScript?.src : undefined; - if (typeof __filename != 'undefined') _scriptName ||= __filename; - return ( -function(moduleArg = {}) { - var moduleRtn; + // When MODULARIZE this JS may be executed later, + // after document.currentScript is gone, so we save it. + // In EXPORT_ES6 mode we can just use 'import.meta.url'. + var _scriptName = globalThis.document?.currentScript?.src; + return async function(moduleArg = {}) { + var moduleRtn; -var Module=moduleArg;var readyPromiseResolve,readyPromiseReject;var readyPromise=new Promise((resolve,reject)=>{readyPromiseResolve=resolve;readyPromiseReject=reject});var ENVIRONMENT_IS_WEB=typeof window=="object";var ENVIRONMENT_IS_WORKER=typeof importScripts=="function";var ENVIRONMENT_IS_NODE=typeof process=="object"&&typeof process.versions=="object"&&typeof process.versions.node=="string";if(ENVIRONMENT_IS_NODE){}var moduleOverrides=Object.assign({},Module);var arguments_=[];var thisProgram="./this.program";var quit_=(status,toThrow)=>{throw toThrow};var scriptDirectory="";function locateFile(path){if(Module["locateFile"]){return Module["locateFile"](path,scriptDirectory)}return scriptDirectory+path}var readAsync,readBinary;if(ENVIRONMENT_IS_NODE){var fs=require("fs");var nodePath=require("path");scriptDirectory=__dirname+"/";readBinary=filename=>{filename=isFileURI(filename)?new URL(filename):nodePath.normalize(filename);var ret=fs.readFileSync(filename);return ret};readAsync=(filename,binary=true)=>{filename=isFileURI(filename)?new URL(filename):nodePath.normalize(filename);return new Promise((resolve,reject)=>{fs.readFile(filename,binary?undefined:"utf8",(err,data)=>{if(err)reject(err);else resolve(binary?data.buffer:data)})})};if(!Module["thisProgram"]&&process.argv.length>1){thisProgram=process.argv[1].replace(/\\/g,"/")}arguments_=process.argv.slice(2);quit_=(status,toThrow)=>{process.exitCode=status;throw toThrow}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(typeof document!="undefined"&&document.currentScript){scriptDirectory=document.currentScript.src}if(_scriptName){scriptDirectory=_scriptName}if(scriptDirectory.startsWith("blob:")){scriptDirectory=""}else{scriptDirectory=scriptDirectory.substr(0,scriptDirectory.replace(/[?#].*/,"").lastIndexOf("/")+1)}{if(ENVIRONMENT_IS_WORKER){readBinary=url=>{var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=url=>{if(isFileURI(url)){return new Promise((reject,resolve)=>{var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=()=>{if(xhr.status==200||xhr.status==0&&xhr.response){resolve(xhr.response)}reject(xhr.status)};xhr.onerror=reject;xhr.send(null)})}return fetch(url,{credentials:"same-origin"}).then(response=>{if(response.ok){return response.arrayBuffer()}return Promise.reject(new Error(response.status+" : "+response.url))})}}}else{}var out=Module["print"]||console.log.bind(console);var err=Module["printErr"]||console.error.bind(console);Object.assign(Module,moduleOverrides);moduleOverrides=null;if(Module["arguments"])arguments_=Module["arguments"];if(Module["thisProgram"])thisProgram=Module["thisProgram"];if(Module["quit"])quit_=Module["quit"];var wasmBinary;if(Module["wasmBinary"])wasmBinary=Module["wasmBinary"];var wasmMemory;var ABORT=false;var EXITSTATUS;var HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateMemoryViews(){var b=wasmMemory.buffer;Module["HEAP8"]=HEAP8=new Int8Array(b);Module["HEAP16"]=HEAP16=new Int16Array(b);Module["HEAPU8"]=HEAPU8=new Uint8Array(b);Module["HEAPU16"]=HEAPU16=new Uint16Array(b);Module["HEAP32"]=HEAP32=new Int32Array(b);Module["HEAPU32"]=HEAPU32=new Uint32Array(b);Module["HEAPF32"]=HEAPF32=new Float32Array(b);Module["HEAPF64"]=HEAPF64=new Float64Array(b)}var __ATPRERUN__=[];var __ATINIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;function preRun(){if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;if(!Module["noFSInit"]&&!FS.init.initialized)FS.init();FS.ignorePermissions=false;TTY.init();callRuntimeCallbacks(__ATINIT__)}function postRun(){if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnInit(cb){__ATINIT__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function getUniqueRunDependency(id){return id}function addRunDependency(id){runDependencies++;Module["monitorRunDependencies"]?.(runDependencies)}function removeRunDependency(id){runDependencies--;Module["monitorRunDependencies"]?.(runDependencies);if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}function abort(what){Module["onAbort"]?.(what);what="Aborted("+what+")";err(what);ABORT=true;EXITSTATUS=1;what+=". Build with -sASSERTIONS for more info.";var e=new WebAssembly.RuntimeError(what);readyPromiseReject(e);throw e}var dataURIPrefix="data:application/octet-stream;base64,";var isDataURI=filename=>filename.startsWith(dataURIPrefix);var isFileURI=filename=>filename.startsWith("file://");function findWasmBinary(){var f="vision_wasm_internal.wasm";if(!isDataURI(f)){return locateFile(f)}return f}var wasmBinaryFile;function getBinarySync(file){if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(file)}throw"both async and sync fetching of the wasm failed"}function getBinaryPromise(binaryFile){if(!wasmBinary){return readAsync(binaryFile).then(response=>new Uint8Array(response),()=>getBinarySync(binaryFile))}return Promise.resolve().then(()=>getBinarySync(binaryFile))}function instantiateArrayBuffer(binaryFile,imports,receiver){return getBinaryPromise(binaryFile).then(binary=>WebAssembly.instantiate(binary,imports)).then(receiver,reason=>{err(`failed to asynchronously prepare wasm: ${reason}`);abort(reason)})}function instantiateAsync(binary,binaryFile,imports,callback){if(!binary&&typeof WebAssembly.instantiateStreaming=="function"&&!isDataURI(binaryFile)&&!isFileURI(binaryFile)&&!ENVIRONMENT_IS_NODE&&typeof fetch=="function"){return fetch(binaryFile,{credentials:"same-origin"}).then(response=>{var result=WebAssembly.instantiateStreaming(response,imports);return result.then(callback,function(reason){err(`wasm streaming compile failed: ${reason}`);err("falling back to ArrayBuffer instantiation");return instantiateArrayBuffer(binaryFile,imports,callback)})})}return instantiateArrayBuffer(binaryFile,imports,callback)}function getWasmImports(){return{a:wasmImports}}function createWasm(){var info=getWasmImports();function receiveInstance(instance,module){wasmExports=instance.exports;wasmMemory=wasmExports["xd"];updateMemoryViews();wasmTable=wasmExports["zd"];addOnInit(wasmExports["yd"]);removeRunDependency("wasm-instantiate");return wasmExports}addRunDependency("wasm-instantiate");function receiveInstantiationResult(result){receiveInstance(result["instance"])}if(Module["instantiateWasm"]){try{return Module["instantiateWasm"](info,receiveInstance)}catch(e){err(`Module.instantiateWasm callback failed with error: ${e}`);readyPromiseReject(e)}}if(!wasmBinaryFile)wasmBinaryFile=findWasmBinary();instantiateAsync(wasmBinary,wasmBinaryFile,info,receiveInstantiationResult).catch(readyPromiseReject);return{}}var tempDouble;var tempI64;var ASM_CONSTS={1271505:$0=>{const canvas=Emval.toValue($0);const context=canvas.getContext("webgpu");return JsValStore.add(context.getCurrentTexture())},1271640:($0,$1,$2,$3,$4)=>{const drawable=Emval.toValue($0);const device=JsValStore.get($1);const texture=JsValStore.get($2);const width=$3;const height=$4;device.queue.copyExternalImageToTexture({source:drawable},{texture:texture},[width,height])},1271891:($0,$1,$2,$3)=>{const sourceExtTex=Emval.toValue($0);const device=JsValStore.get($1);const sampler=JsValStore.get($2);const bgLayout=JsValStore.get($3);const bindGroup=device.createBindGroup({layout:bgLayout,entries:[{binding:0,resource:sampler},{binding:1,resource:sourceExtTex}]});return JsValStore.add(bindGroup)},1272239:($0,$1)=>{const input=Emval.toValue($0);const output=Emval.toValue($1);const ctx=output.getContext("2d");ctx.drawImage(input,0,0,output.width,output.height)},1272404:($0,$1)=>{const inputArray=Emval.toValue($0);const output=Emval.toValue($1);const ctx=output.getContext("2d");const image_data=new ImageData(inputArray,output.width,output.height);ctx.putImageData(image_data,0,0)},1272628:($0,$1)=>{const input=Emval.toValue($0);const outputArray=Emval.toValue($1);const ctx=input.getContext("2d");const data=ctx.getImageData(0,0,input.width,input.height);outputArray.set(data.data)},1272832:()=>typeof HTMLCanvasElement!=="undefined",1272887:()=>!!Module["preinitializedWebGPUDevice"],1272938:()=>{specialHTMLTargets["#canvas"]=Module.canvas},1272989:()=>typeof wasmOffsetConverter!=="undefined"};function JsWrapImageConverter(){if(!Module._imageConverter){Module._imageConverter=(binaryPtr,binarySize,width,height,numChannels,makeDeepCopy,outputType)=>{const imageData=new outputType(makeDeepCopy?Module.HEAPU8.slice(binaryPtr,binaryPtr+binarySize).buffer:Module.HEAPU8.buffer,binaryPtr,width*height*numChannels);return{data:imageData,width:width,height:height}}}}function JsOnUint8ArrayImageListener(output_stream_name,binary_ptr,binary_size,width,height,num_channels,make_deep_copy,timestamp_ms){const image=Module._imageConverter(binary_ptr,binary_size,width,height,num_channels,make_deep_copy,Uint8Array);Module._wrapSimpleListenerOutput(output_stream_name,image,timestamp_ms)}function JsOnFloat32ArrayImageListener(output_stream_name,binary_ptr,binary_size,width,height,num_channels,make_deep_copy,timestamp_ms){const image=Module._imageConverter(binary_ptr,binary_size,width,height,num_channels,make_deep_copy,Float32Array);Module._wrapSimpleListenerOutput(output_stream_name,image,timestamp_ms)}function JsOnWebGLTextureListener(output_stream_name,name,width,height,timestamp_ms){Module._wrapSimpleListenerOutput(output_stream_name,{data:GL.textures[name],width:width,height:height},timestamp_ms)}function JsOnUint8ArrayImageVectorListener(output_stream_name,binary_ptr,binary_size,width,height,num_channels,make_deep_copy,timestamp_ms){const image=Module._imageConverter(binary_ptr,binary_size,width,height,num_channels,make_deep_copy,Uint8Array);Module._wrapSimpleListenerOutput(output_stream_name,image,false,timestamp_ms)}function JsOnFloat32ArrayImageVectorListener(output_stream_name,binary_ptr,binary_size,width,height,num_channels,make_deep_copy,timestamp_ms){const image=Module._imageConverter(binary_ptr,binary_size,width,height,num_channels,make_deep_copy,Float32Array);Module._wrapSimpleListenerOutput(output_stream_name,image,false,timestamp_ms)}function JsOnWebGLTextureVectorListener(output_stream_name,name,width,height,timestamp_ms){Module._wrapSimpleListenerOutput(output_stream_name,{data:GL.textures[name],width:width,height:height},false,timestamp_ms)}function JsOnEmptyPacketListener(output_stream_name,timestamp){Module._wrapEmptyPacketListenerOutput(output_stream_name,timestamp)}function JsOnVectorFinishedListener(output_stream_name,timestamp){Module._wrapSimpleListenerOutput(output_stream_name,undefined,true,timestamp)}function JsOnSimpleListenerBool(output_stream_name,out_data,timestamp){Module._wrapSimpleListenerOutput(output_stream_name,out_data,timestamp)}function JsOnVectorListenerBool(output_stream_name,out_data,timestamp){Module._wrapSimpleListenerOutput(output_stream_name,out_data,false,timestamp)}function JsOnSimpleListenerInt(output_stream_name,out_data,timestamp){Module._wrapSimpleListenerOutput(output_stream_name,out_data,timestamp)}function JsOnVectorListenerInt(output_stream_name,out_data,timestamp){Module._wrapSimpleListenerOutput(output_stream_name,out_data,false,timestamp)}function JsOnSimpleListenerUint(output_stream_name,out_data,timestamp){Module._wrapSimpleListenerOutput(output_stream_name,out_data,timestamp)}function JsOnVectorListenerUint(output_stream_name,out_data,timestamp){Module._wrapSimpleListenerOutput(output_stream_name,out_data,false,timestamp)}function JsOnSimpleListenerDouble(output_stream_name,out_data,timestamp){Module._wrapSimpleListenerOutput(output_stream_name,out_data,timestamp)}function JsOnVectorListenerDouble(output_stream_name,out_data,timestamp){Module._wrapSimpleListenerOutput(output_stream_name,out_data,false,timestamp)}function JsOnSimpleListenerFloat(output_stream_name,out_data,timestamp){Module._wrapSimpleListenerOutput(output_stream_name,out_data,timestamp)}function JsOnVectorListenerFloat(output_stream_name,out_data,timestamp){Module._wrapSimpleListenerOutput(output_stream_name,out_data,false,timestamp)}function JsOnSimpleListenerString(output_stream_name,out_data,timestamp){Module._wrapSimpleListenerOutput(output_stream_name,UTF8ToString(out_data),timestamp)}function JsOnVectorListenerString(output_stream_name,out_data,timestamp){Module._wrapSimpleListenerOutput(output_stream_name,UTF8ToString(out_data),false,timestamp)}function JsOnVectorListenerProto(output_stream_name,proto_ptr,proto_size,make_deep_copy,timestamp){const newProtoArray=make_deep_copy?Module.HEAPU8.slice(proto_ptr,proto_ptr+proto_size):new Uint8Array(Module.HEAPU8.buffer,proto_ptr,proto_size);Module._wrapSimpleListenerOutput(output_stream_name,newProtoArray,false,timestamp)}function JsWrapSimpleListeners(){if(!Module._wrapSimpleListenerOutput){Module._wrapSimpleListenerOutput=(outputStreamName,...args)=>{if(Module.simpleListeners){const streamName=UTF8ToString(outputStreamName);if(Module.simpleListeners[streamName]){Module.simpleListeners[streamName](...args)}}}}if(!Module._wrapEmptyPacketListenerOutput){Module._wrapEmptyPacketListenerOutput=(outputStreamName,timestamp)=>{if(Module.emptyPacketListeners){const streamName=UTF8ToString(outputStreamName);if(Module.emptyPacketListeners[streamName]){Module.emptyPacketListeners[streamName](timestamp)}}}}}function JsOnSimpleListenerBinaryArray(output_stream_name,binary_ptr,binary_size,make_deep_copy,timestamp){const newProtoArray=make_deep_copy?Module.HEAPU8.slice(binary_ptr,binary_ptr+binary_size):new Uint8Array(Module.HEAPU8.buffer,binary_ptr,binary_size);Module._wrapSimpleListenerOutput(output_stream_name,newProtoArray,timestamp)}function mediapipe_import_external_texture(device_handle,source_handle){const device=WebGPU.mgrDevice.get(device_handle);const source=Emval.toValue(source_handle);const externalTexture=device.importExternalTexture({source:source});return Emval.toHandle(externalTexture)}function mediapipe_create_utility_canvas2d(){let canvas;if(typeof HTMLCanvasElement!=="undefined"){canvas=document.createElement("canvas");canvas.style.display="none"}else{canvas=new OffscreenCanvas(0,0)}return Emval.toHandle(canvas)}function GetAdapterArchitecture(){const device=Module["preinitializedWebGPUDevice"];const architecture=device.adapterInfo?device.adapterInfo.architecture:"Unknown";return stringToNewUTF8(architecture)}function GetAdapterDescription(){const device=Module["preinitializedWebGPUDevice"];const description=device.adapterInfo?device.adapterInfo.description:"Unknown";return stringToNewUTF8(description)}function GetAdapterDeviceName(){const device=Module["preinitializedWebGPUDevice"];const deviceName=device.adapterInfo?device.adapterInfo.device:"Unknown";return stringToNewUTF8(deviceName)}function GetAdapterVendor(){const device=Module["preinitializedWebGPUDevice"];const vendor=device.adapterInfo?device.adapterInfo.vendor:"Unknown";return stringToNewUTF8(vendor)}function __asyncjs__mediapipe_map_buffer_jspi(buffer_handle,data){return Asyncify.handleAsync(async()=>{const buffer=WebGPU.mgrBuffer.get(buffer_handle);await buffer.mapAsync(GPUMapMode.READ);const mapped=buffer.getMappedRange();HEAPU8.set(new Uint8Array(mapped),data);buffer.unmap()})}function hardware_concurrency(){var concurrency=1;try{concurrency=self.navigator.hardwareConcurrency}catch(e){}return concurrency}function JsWrapErrorListener(code,message){if(Module.errorListener){const stringMessage=UTF8ToString(message);Module.errorListener(code,stringMessage)}}function UseBottomLeftGpuOrigin(){return Module&&Module.gpuOriginForWebTexturesIsBottomLeft}function custom_emscripten_dbgn(str,len){if(typeof dbg!=="undefined"){dbg(UTF8ToString(str,len))}else{if(typeof custom_dbg==="undefined"){function custom_dbg(text){console.warn.apply(console,arguments)}}custom_dbg(UTF8ToString(str,len))}}function HaveOffsetConverter(){return typeof wasmOffsetConverter!=="undefined"}var _emscripten_set_main_loop_timing=(mode,value)=>{Browser.mainLoop.timingMode=mode;Browser.mainLoop.timingValue=value;if(!Browser.mainLoop.func){return 1}if(!Browser.mainLoop.running){Browser.mainLoop.running=true}if(mode==0){Browser.mainLoop.scheduler=function Browser_mainLoop_scheduler_setTimeout(){var timeUntilNextTick=Math.max(0,Browser.mainLoop.tickStartTime+value-_emscripten_get_now())|0;setTimeout(Browser.mainLoop.runner,timeUntilNextTick)};Browser.mainLoop.method="timeout"}else if(mode==1){Browser.mainLoop.scheduler=function Browser_mainLoop_scheduler_rAF(){Browser.requestAnimationFrame(Browser.mainLoop.runner)};Browser.mainLoop.method="rAF"}else if(mode==2){if(typeof Browser.setImmediate=="undefined"){if(typeof setImmediate=="undefined"){var setImmediates=[];var emscriptenMainLoopMessageId="setimmediate";var Browser_setImmediate_messageHandler=event=>{if(event.data===emscriptenMainLoopMessageId||event.data.target===emscriptenMainLoopMessageId){event.stopPropagation();setImmediates.shift()()}};addEventListener("message",Browser_setImmediate_messageHandler,true);Browser.setImmediate=function Browser_emulated_setImmediate(func){setImmediates.push(func);if(ENVIRONMENT_IS_WORKER){Module["setImmediates"]??=[];Module["setImmediates"].push(func);postMessage({target:emscriptenMainLoopMessageId})}else postMessage(emscriptenMainLoopMessageId,"*")}}else{Browser.setImmediate=setImmediate}}Browser.mainLoop.scheduler=function Browser_mainLoop_scheduler_setImmediate(){Browser.setImmediate(Browser.mainLoop.runner)};Browser.mainLoop.method="immediate"}return 0};var _emscripten_get_now;_emscripten_get_now=()=>performance.now();var setMainLoop=(browserIterationFunc,fps,simulateInfiniteLoop,arg,noSetTiming)=>{Browser.mainLoop.func=browserIterationFunc;Browser.mainLoop.arg=arg;var thisMainLoopId=Browser.mainLoop.currentlyRunningMainloop;function checkIsRunning(){if(thisMainLoopId0){var start=Date.now();var blocker=Browser.mainLoop.queue.shift();blocker.func(blocker.arg);if(Browser.mainLoop.remainingBlockers){var remaining=Browser.mainLoop.remainingBlockers;var next=remaining%1==0?remaining-1:Math.floor(remaining);if(blocker.counted){Browser.mainLoop.remainingBlockers=next}else{next=next+.5;Browser.mainLoop.remainingBlockers=(8*remaining+next)/9}}Browser.mainLoop.updateStatus();if(!checkIsRunning())return;setTimeout(Browser.mainLoop.runner,0);return}if(!checkIsRunning())return;Browser.mainLoop.currentFrameNumber=Browser.mainLoop.currentFrameNumber+1|0;if(Browser.mainLoop.timingMode==1&&Browser.mainLoop.timingValue>1&&Browser.mainLoop.currentFrameNumber%Browser.mainLoop.timingValue!=0){Browser.mainLoop.scheduler();return}else if(Browser.mainLoop.timingMode==0){Browser.mainLoop.tickStartTime=_emscripten_get_now()}GL.newRenderingFrameStarted();Browser.mainLoop.runIter(browserIterationFunc);if(!checkIsRunning())return;if(typeof SDL=="object")SDL.audio?.queueNewAudioData?.();Browser.mainLoop.scheduler()};if(!noSetTiming){if(fps&&fps>0){_emscripten_set_main_loop_timing(0,1e3/fps)}else{_emscripten_set_main_loop_timing(1,1)}Browser.mainLoop.scheduler()}if(simulateInfiniteLoop){throw"unwind"}};var handleException=e=>{if(e instanceof ExitStatus||e=="unwind"){return EXITSTATUS}quit_(1,e)};function ExitStatus(status){this.name="ExitStatus";this.message=`Program terminated with exit(${status})`;this.status=status}var runtimeKeepaliveCounter=0;var keepRuntimeAlive=()=>noExitRuntime||runtimeKeepaliveCounter>0;var _proc_exit=code=>{EXITSTATUS=code;if(!keepRuntimeAlive()){Module["onExit"]?.(code);ABORT=true}quit_(code,new ExitStatus(code))};var exitJS=(status,implicit)=>{EXITSTATUS=status;_proc_exit(status)};var _exit=exitJS;var maybeExit=()=>{if(!keepRuntimeAlive()){try{_exit(EXITSTATUS)}catch(e){handleException(e)}}};var callUserCallback=func=>{if(ABORT){return}try{func();maybeExit()}catch(e){handleException(e)}};var safeSetTimeout=(func,timeout)=>setTimeout(()=>{callUserCallback(func)},timeout);var warnOnce=text=>{warnOnce.shown||={};if(!warnOnce.shown[text]){warnOnce.shown[text]=1;if(ENVIRONMENT_IS_NODE)text="warning: "+text;err(text)}};var preloadPlugins=Module["preloadPlugins"]||[];var Browser={mainLoop:{running:false,scheduler:null,method:"",currentlyRunningMainloop:0,func:null,arg:0,timingMode:0,timingValue:0,currentFrameNumber:0,queue:[],pause(){Browser.mainLoop.scheduler=null;Browser.mainLoop.currentlyRunningMainloop++},resume(){Browser.mainLoop.currentlyRunningMainloop++;var timingMode=Browser.mainLoop.timingMode;var timingValue=Browser.mainLoop.timingValue;var func=Browser.mainLoop.func;Browser.mainLoop.func=null;setMainLoop(func,0,false,Browser.mainLoop.arg,true);_emscripten_set_main_loop_timing(timingMode,timingValue);Browser.mainLoop.scheduler()},updateStatus(){if(Module["setStatus"]){var message=Module["statusMessage"]||"Please wait...";var remaining=Browser.mainLoop.remainingBlockers;var expected=Browser.mainLoop.expectedBlockers;if(remaining){if(remaining{var canvas=document.createElement("canvas");canvas.width=img.width;canvas.height=img.height;var ctx=canvas.getContext("2d");ctx.drawImage(img,0,0);preloadedImages[name]=canvas;URL.revokeObjectURL(url);onload?.(byteArray)};img.onerror=event=>{err(`Image ${url} could not be decoded`);onerror?.()};img.src=url};preloadPlugins.push(imagePlugin);var audioPlugin={};audioPlugin["canHandle"]=function audioPlugin_canHandle(name){return!Module.noAudioDecoding&&name.substr(-4)in{".ogg":1,".wav":1,".mp3":1}};audioPlugin["handle"]=function audioPlugin_handle(byteArray,name,onload,onerror){var done=false;function finish(audio){if(done)return;done=true;preloadedAudios[name]=audio;onload?.(byteArray)}var b=new Blob([byteArray],{type:Browser.getMimetype(name)});var url=URL.createObjectURL(b);var audio=new Audio;audio.addEventListener("canplaythrough",()=>finish(audio),false);audio.onerror=function audio_onerror(event){if(done)return;err(`warning: browser could not fully decode audio ${name}, trying slower base64 approach`);function encode64(data){var BASE="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";var PAD="=";var ret="";var leftchar=0;var leftbits=0;for(var i=0;i=6){var curr=leftchar>>leftbits-6&63;leftbits-=6;ret+=BASE[curr]}}if(leftbits==2){ret+=BASE[(leftchar&3)<<4];ret+=PAD+PAD}else if(leftbits==4){ret+=BASE[(leftchar&15)<<2];ret+=PAD}return ret}audio.src="data:audio/x-"+name.substr(-3)+";base64,"+encode64(byteArray);finish(audio)};audio.src=url;safeSetTimeout(()=>{finish(audio)},1e4)};preloadPlugins.push(audioPlugin);function pointerLockChange(){Browser.pointerLock=document["pointerLockElement"]===Module["canvas"]||document["mozPointerLockElement"]===Module["canvas"]||document["webkitPointerLockElement"]===Module["canvas"]||document["msPointerLockElement"]===Module["canvas"]}var canvas=Module["canvas"];if(canvas){canvas.requestPointerLock=canvas["requestPointerLock"]||canvas["mozRequestPointerLock"]||canvas["webkitRequestPointerLock"]||canvas["msRequestPointerLock"]||(()=>{});canvas.exitPointerLock=document["exitPointerLock"]||document["mozExitPointerLock"]||document["webkitExitPointerLock"]||document["msExitPointerLock"]||(()=>{});canvas.exitPointerLock=canvas.exitPointerLock.bind(document);document.addEventListener("pointerlockchange",pointerLockChange,false);document.addEventListener("mozpointerlockchange",pointerLockChange,false);document.addEventListener("webkitpointerlockchange",pointerLockChange,false);document.addEventListener("mspointerlockchange",pointerLockChange,false);if(Module["elementPointerLock"]){canvas.addEventListener("click",ev=>{if(!Browser.pointerLock&&Module["canvas"].requestPointerLock){Module["canvas"].requestPointerLock();ev.preventDefault()}},false)}}},createContext(canvas,useWebGL,setInModule,webGLContextAttributes){if(useWebGL&&Module.ctx&&canvas==Module.canvas)return Module.ctx;var ctx;var contextHandle;if(useWebGL){var contextAttributes={antialias:false,alpha:false,majorVersion:typeof WebGL2RenderingContext!="undefined"?2:1};if(webGLContextAttributes){for(var attribute in webGLContextAttributes){contextAttributes[attribute]=webGLContextAttributes[attribute]}}if(typeof GL!="undefined"){contextHandle=GL.createContext(canvas,contextAttributes);if(contextHandle){ctx=GL.getContext(contextHandle).GLctx}}}else{ctx=canvas.getContext("2d")}if(!ctx)return null;if(setInModule){Module.ctx=ctx;if(useWebGL)GL.makeContextCurrent(contextHandle);Module.useWebGL=useWebGL;Browser.moduleContextCreatedCallbacks.forEach(callback=>callback());Browser.init()}return ctx},destroyContext(canvas,useWebGL,setInModule){},fullscreenHandlersInstalled:false,lockPointer:undefined,resizeCanvas:undefined,requestFullscreen(lockPointer,resizeCanvas){Browser.lockPointer=lockPointer;Browser.resizeCanvas=resizeCanvas;if(typeof Browser.lockPointer=="undefined")Browser.lockPointer=true;if(typeof Browser.resizeCanvas=="undefined")Browser.resizeCanvas=false;var canvas=Module["canvas"];function fullscreenChange(){Browser.isFullscreen=false;var canvasContainer=canvas.parentNode;if((document["fullscreenElement"]||document["mozFullScreenElement"]||document["msFullscreenElement"]||document["webkitFullscreenElement"]||document["webkitCurrentFullScreenElement"])===canvasContainer){canvas.exitFullscreen=Browser.exitFullscreen;if(Browser.lockPointer)canvas.requestPointerLock();Browser.isFullscreen=true;if(Browser.resizeCanvas){Browser.setFullscreenCanvasSize()}else{Browser.updateCanvasDimensions(canvas)}}else{canvasContainer.parentNode.insertBefore(canvas,canvasContainer);canvasContainer.parentNode.removeChild(canvasContainer);if(Browser.resizeCanvas){Browser.setWindowedCanvasSize()}else{Browser.updateCanvasDimensions(canvas)}}Module["onFullScreen"]?.(Browser.isFullscreen);Module["onFullscreen"]?.(Browser.isFullscreen)}if(!Browser.fullscreenHandlersInstalled){Browser.fullscreenHandlersInstalled=true;document.addEventListener("fullscreenchange",fullscreenChange,false);document.addEventListener("mozfullscreenchange",fullscreenChange,false);document.addEventListener("webkitfullscreenchange",fullscreenChange,false);document.addEventListener("MSFullscreenChange",fullscreenChange,false)}var canvasContainer=document.createElement("div");canvas.parentNode.insertBefore(canvasContainer,canvas);canvasContainer.appendChild(canvas);canvasContainer.requestFullscreen=canvasContainer["requestFullscreen"]||canvasContainer["mozRequestFullScreen"]||canvasContainer["msRequestFullscreen"]||(canvasContainer["webkitRequestFullscreen"]?()=>canvasContainer["webkitRequestFullscreen"](Element["ALLOW_KEYBOARD_INPUT"]):null)||(canvasContainer["webkitRequestFullScreen"]?()=>canvasContainer["webkitRequestFullScreen"](Element["ALLOW_KEYBOARD_INPUT"]):null);canvasContainer.requestFullscreen()},exitFullscreen(){if(!Browser.isFullscreen){return false}var CFS=document["exitFullscreen"]||document["cancelFullScreen"]||document["mozCancelFullScreen"]||document["msExitFullscreen"]||document["webkitCancelFullScreen"]||(()=>{});CFS.apply(document,[]);return true},nextRAF:0,fakeRequestAnimationFrame(func){var now=Date.now();if(Browser.nextRAF===0){Browser.nextRAF=now+1e3/60}else{while(now+2>=Browser.nextRAF){Browser.nextRAF+=1e3/60}}var delay=Math.max(Browser.nextRAF-now,0);setTimeout(func,delay)},requestAnimationFrame(func){if(typeof requestAnimationFrame=="function"){requestAnimationFrame(func);return}var RAF=Browser.fakeRequestAnimationFrame;RAF(func)},safeSetTimeout(func,timeout){return safeSetTimeout(func,timeout)},safeRequestAnimationFrame(func){return Browser.requestAnimationFrame(()=>{callUserCallback(func)})},getMimetype(name){return{jpg:"image/jpeg",jpeg:"image/jpeg",png:"image/png",bmp:"image/bmp",ogg:"audio/ogg",wav:"audio/wav",mp3:"audio/mpeg"}[name.substr(name.lastIndexOf(".")+1)]},getUserMedia(func){window.getUserMedia||=navigator["getUserMedia"]||navigator["mozGetUserMedia"];window.getUserMedia(func)},getMovementX(event){return event["movementX"]||event["mozMovementX"]||event["webkitMovementX"]||0},getMovementY(event){return event["movementY"]||event["mozMovementY"]||event["webkitMovementY"]||0},getMouseWheelDelta(event){var delta=0;switch(event.type){case"DOMMouseScroll":delta=event.detail/3;break;case"mousewheel":delta=event.wheelDelta/120;break;case"wheel":delta=event.deltaY;switch(event.deltaMode){case 0:delta/=100;break;case 1:delta/=3;break;case 2:delta*=80;break;default:throw"unrecognized mouse wheel delta mode: "+event.deltaMode}break;default:throw"unrecognized mouse wheel event: "+event.type}return delta},mouseX:0,mouseY:0,mouseMovementX:0,mouseMovementY:0,touches:{},lastTouches:{},calculateMouseCoords(pageX,pageY){var rect=Module["canvas"].getBoundingClientRect();var cw=Module["canvas"].width;var ch=Module["canvas"].height;var scrollX=typeof window.scrollX!="undefined"?window.scrollX:window.pageXOffset;var scrollY=typeof window.scrollY!="undefined"?window.scrollY:window.pageYOffset;var adjustedX=pageX-(scrollX+rect.left);var adjustedY=pageY-(scrollY+rect.top);adjustedX=adjustedX*(cw/rect.width);adjustedY=adjustedY*(ch/rect.height);return{x:adjustedX,y:adjustedY}},setMouseCoords(pageX,pageY){const{x:x,y:y}=Browser.calculateMouseCoords(pageX,pageY);Browser.mouseMovementX=x-Browser.mouseX;Browser.mouseMovementY=y-Browser.mouseY;Browser.mouseX=x;Browser.mouseY=y},calculateMouseEvent(event){if(Browser.pointerLock){if(event.type!="mousemove"&&"mozMovementX"in event){Browser.mouseMovementX=Browser.mouseMovementY=0}else{Browser.mouseMovementX=Browser.getMovementX(event);Browser.mouseMovementY=Browser.getMovementY(event)}Browser.mouseX+=Browser.mouseMovementX;Browser.mouseY+=Browser.mouseMovementY}else{if(event.type==="touchstart"||event.type==="touchend"||event.type==="touchmove"){var touch=event.touch;if(touch===undefined){return}var coords=Browser.calculateMouseCoords(touch.pageX,touch.pageY);if(event.type==="touchstart"){Browser.lastTouches[touch.identifier]=coords;Browser.touches[touch.identifier]=coords}else if(event.type==="touchend"||event.type==="touchmove"){var last=Browser.touches[touch.identifier];last||=coords;Browser.lastTouches[touch.identifier]=last;Browser.touches[touch.identifier]=coords}return}Browser.setMouseCoords(event.pageX,event.pageY)}},resizeListeners:[],updateResizeListeners(){var canvas=Module["canvas"];Browser.resizeListeners.forEach(listener=>listener(canvas.width,canvas.height))},setCanvasSize(width,height,noUpdates){var canvas=Module["canvas"];Browser.updateCanvasDimensions(canvas,width,height);if(!noUpdates)Browser.updateResizeListeners()},windowedWidth:0,windowedHeight:0,setFullscreenCanvasSize(){if(typeof SDL!="undefined"){var flags=HEAPU32[SDL.screen>>2];flags=flags|8388608;HEAP32[SDL.screen>>2]=flags}Browser.updateCanvasDimensions(Module["canvas"]);Browser.updateResizeListeners()},setWindowedCanvasSize(){if(typeof SDL!="undefined"){var flags=HEAPU32[SDL.screen>>2];flags=flags&~8388608;HEAP32[SDL.screen>>2]=flags}Browser.updateCanvasDimensions(Module["canvas"]);Browser.updateResizeListeners()},updateCanvasDimensions(canvas,wNative,hNative){if(wNative&&hNative){canvas.widthNative=wNative;canvas.heightNative=hNative}else{wNative=canvas.widthNative;hNative=canvas.heightNative}var w=wNative;var h=hNative;if(Module["forcedAspectRatio"]&&Module["forcedAspectRatio"]>0){if(w/h{while(callbacks.length>0){callbacks.shift()(Module)}};var noExitRuntime=Module["noExitRuntime"]||true;var stackRestore=val=>__emscripten_stack_restore(val);var stackSave=()=>_emscripten_stack_get_current();class ExceptionInfo{constructor(excPtr){this.excPtr=excPtr;this.ptr=excPtr-24}set_type(type){HEAPU32[this.ptr+4>>2]=type}get_type(){return HEAPU32[this.ptr+4>>2]}set_destructor(destructor){HEAPU32[this.ptr+8>>2]=destructor}get_destructor(){return HEAPU32[this.ptr+8>>2]}set_caught(caught){caught=caught?1:0;HEAP8[this.ptr+12]=caught}get_caught(){return HEAP8[this.ptr+12]!=0}set_rethrown(rethrown){rethrown=rethrown?1:0;HEAP8[this.ptr+13]=rethrown}get_rethrown(){return HEAP8[this.ptr+13]!=0}init(type,destructor){this.set_adjusted_ptr(0);this.set_type(type);this.set_destructor(destructor)}set_adjusted_ptr(adjustedPtr){HEAPU32[this.ptr+16>>2]=adjustedPtr}get_adjusted_ptr(){return HEAPU32[this.ptr+16>>2]}get_exception_ptr(){var isPointer=___cxa_is_pointer_type(this.get_type());if(isPointer){return HEAPU32[this.excPtr>>2]}var adjusted=this.get_adjusted_ptr();if(adjusted!==0)return adjusted;return this.excPtr}}var exceptionLast=0;var uncaughtExceptionCount=0;var ___cxa_throw=(ptr,type,destructor)=>{var info=new ExceptionInfo(ptr);info.init(type,destructor);exceptionLast=ptr;uncaughtExceptionCount++;throw exceptionLast};var PATH={isAbs:path=>path.charAt(0)==="/",splitPath:filename=>{var splitPathRe=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return splitPathRe.exec(filename).slice(1)},normalizeArray:(parts,allowAboveRoot)=>{var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last==="."){parts.splice(i,1)}else if(last===".."){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up;up--){parts.unshift("..")}}return parts},normalize:path=>{var isAbsolute=PATH.isAbs(path),trailingSlash=path.substr(-1)==="/";path=PATH.normalizeArray(path.split("/").filter(p=>!!p),!isAbsolute).join("/");if(!path&&!isAbsolute){path="."}if(path&&trailingSlash){path+="/"}return(isAbsolute?"/":"")+path},dirname:path=>{var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return"."}if(dir){dir=dir.substr(0,dir.length-1)}return root+dir},basename:path=>{if(path==="/")return"/";path=PATH.normalize(path);path=path.replace(/\/$/,"");var lastSlash=path.lastIndexOf("/");if(lastSlash===-1)return path;return path.substr(lastSlash+1)},join:(...paths)=>PATH.normalize(paths.join("/")),join2:(l,r)=>PATH.normalize(l+"/"+r)};var initRandomFill=()=>{if(typeof crypto=="object"&&typeof crypto["getRandomValues"]=="function"){return view=>crypto.getRandomValues(view)}else if(ENVIRONMENT_IS_NODE){try{var crypto_module=require("crypto");var randomFillSync=crypto_module["randomFillSync"];if(randomFillSync){return view=>crypto_module["randomFillSync"](view)}var randomBytes=crypto_module["randomBytes"];return view=>(view.set(randomBytes(view.byteLength)),view)}catch(e){}}abort("initRandomDevice")};var randomFill=view=>(randomFill=initRandomFill())(view);var PATH_FS={resolve:(...args)=>{var resolvedPath="",resolvedAbsolute=false;for(var i=args.length-1;i>=-1&&!resolvedAbsolute;i--){var path=i>=0?args[i]:FS.cwd();if(typeof path!="string"){throw new TypeError("Arguments to path.resolve must be strings")}else if(!path){return""}resolvedPath=path+"/"+resolvedPath;resolvedAbsolute=PATH.isAbs(path)}resolvedPath=PATH.normalizeArray(resolvedPath.split("/").filter(p=>!!p),!resolvedAbsolute).join("/");return(resolvedAbsolute?"/":"")+resolvedPath||"."},relative:(from,to)=>{from=PATH_FS.resolve(from).substr(1);to=PATH_FS.resolve(to).substr(1);function trim(arr){var start=0;for(;start=0;end--){if(arr[end]!=="")break}if(start>end)return[];return arr.slice(start,end-start+1)}var fromParts=trim(from.split("/"));var toParts=trim(to.split("/"));var length=Math.min(fromParts.length,toParts.length);var samePartsLength=length;for(var i=0;i{var endIdx=idx+maxBytesToRead;var endPtr=idx;while(heapOrArray[endPtr]&&!(endPtr>=endIdx))++endPtr;return UTF8Decoder.decode(heapOrArray.buffer?heapOrArray.subarray(idx,endPtr):new Uint8Array(heapOrArray.slice(idx,endPtr)))};var FS_stdin_getChar_buffer=[];var lengthBytesUTF8=str=>{var len=0;for(var i=0;i=55296&&c<=57343){len+=4;++i}else{len+=3}}return len};var stringToUTF8Array=(str,heap,outIdx,maxBytesToWrite)=>{if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx};function intArrayFromString(stringy,dontAddNull,length){var len=length>0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array}var FS_stdin_getChar=()=>{if(!FS_stdin_getChar_buffer.length){var result=null;if(ENVIRONMENT_IS_NODE){var BUFSIZE=256;var buf=Buffer.alloc(BUFSIZE);var bytesRead=0;var fd=process.stdin.fd;try{bytesRead=fs.readSync(fd,buf,0,BUFSIZE)}catch(e){if(e.toString().includes("EOF"))bytesRead=0;else throw e}if(bytesRead>0){result=buf.slice(0,bytesRead).toString("utf-8")}}else if(typeof window!="undefined"&&typeof window.prompt=="function"){result=window.prompt("Input: ");if(result!==null){result+="\n"}}else{}if(!result){return null}FS_stdin_getChar_buffer=intArrayFromString(result,true)}return FS_stdin_getChar_buffer.shift()};var TTY={ttys:[],init(){},shutdown(){},register(dev,ops){TTY.ttys[dev]={input:[],output:[],ops:ops};FS.registerDevice(dev,TTY.stream_ops)},stream_ops:{open(stream){var tty=TTY.ttys[stream.node.rdev];if(!tty){throw new FS.ErrnoError(43)}stream.tty=tty;stream.seekable=false},close(stream){stream.tty.ops.fsync(stream.tty)},fsync(stream){stream.tty.ops.fsync(stream.tty)},read(stream,buffer,offset,length,pos){if(!stream.tty||!stream.tty.ops.get_char){throw new FS.ErrnoError(60)}var bytesRead=0;for(var i=0;i0){out(UTF8ArrayToString(tty.output,0));tty.output=[]}},ioctl_tcgets(tty){return{c_iflag:25856,c_oflag:5,c_cflag:191,c_lflag:35387,c_cc:[3,28,127,21,4,0,1,0,17,19,26,0,18,15,23,22,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]}},ioctl_tcsets(tty,optional_actions,data){return 0},ioctl_tiocgwinsz(tty){return[24,80]}},default_tty1_ops:{put_char(tty,val){if(val===null||val===10){err(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},fsync(tty){if(tty.output&&tty.output.length>0){err(UTF8ArrayToString(tty.output,0));tty.output=[]}}}};var zeroMemory=(address,size)=>{HEAPU8.fill(0,address,address+size);return address};var alignMemory=(size,alignment)=>Math.ceil(size/alignment)*alignment;var mmapAlloc=size=>{size=alignMemory(size,65536);var ptr=_emscripten_builtin_memalign(65536,size);if(!ptr)return 0;return zeroMemory(ptr,size)};var MEMFS={ops_table:null,mount(mount){return MEMFS.createNode(null,"/",16384|511,0)},createNode(parent,name,mode,dev){if(FS.isBlkdev(mode)||FS.isFIFO(mode)){throw new FS.ErrnoError(63)}MEMFS.ops_table||={dir:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,lookup:MEMFS.node_ops.lookup,mknod:MEMFS.node_ops.mknod,rename:MEMFS.node_ops.rename,unlink:MEMFS.node_ops.unlink,rmdir:MEMFS.node_ops.rmdir,readdir:MEMFS.node_ops.readdir,symlink:MEMFS.node_ops.symlink},stream:{llseek:MEMFS.stream_ops.llseek}},file:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:{llseek:MEMFS.stream_ops.llseek,read:MEMFS.stream_ops.read,write:MEMFS.stream_ops.write,allocate:MEMFS.stream_ops.allocate,mmap:MEMFS.stream_ops.mmap,msync:MEMFS.stream_ops.msync}},link:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,readlink:MEMFS.node_ops.readlink},stream:{}},chrdev:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:FS.chrdev_stream_ops}};var node=FS.createNode(parent,name,mode,dev);if(FS.isDir(node.mode)){node.node_ops=MEMFS.ops_table.dir.node;node.stream_ops=MEMFS.ops_table.dir.stream;node.contents={}}else if(FS.isFile(node.mode)){node.node_ops=MEMFS.ops_table.file.node;node.stream_ops=MEMFS.ops_table.file.stream;node.usedBytes=0;node.contents=null}else if(FS.isLink(node.mode)){node.node_ops=MEMFS.ops_table.link.node;node.stream_ops=MEMFS.ops_table.link.stream}else if(FS.isChrdev(node.mode)){node.node_ops=MEMFS.ops_table.chrdev.node;node.stream_ops=MEMFS.ops_table.chrdev.stream}node.timestamp=Date.now();if(parent){parent.contents[name]=node;parent.timestamp=node.timestamp}return node},getFileDataAsTypedArray(node){if(!node.contents)return new Uint8Array(0);if(node.contents.subarray)return node.contents.subarray(0,node.usedBytes);return new Uint8Array(node.contents)},expandFileStorage(node,newCapacity){var prevCapacity=node.contents?node.contents.length:0;if(prevCapacity>=newCapacity)return;var CAPACITY_DOUBLING_MAX=1024*1024;newCapacity=Math.max(newCapacity,prevCapacity*(prevCapacity>>0);if(prevCapacity!=0)newCapacity=Math.max(newCapacity,256);var oldContents=node.contents;node.contents=new Uint8Array(newCapacity);if(node.usedBytes>0)node.contents.set(oldContents.subarray(0,node.usedBytes),0)},resizeFileStorage(node,newSize){if(node.usedBytes==newSize)return;if(newSize==0){node.contents=null;node.usedBytes=0}else{var oldContents=node.contents;node.contents=new Uint8Array(newSize);if(oldContents){node.contents.set(oldContents.subarray(0,Math.min(newSize,node.usedBytes)))}node.usedBytes=newSize}},node_ops:{getattr(node){var attr={};attr.dev=FS.isChrdev(node.mode)?node.id:1;attr.ino=node.id;attr.mode=node.mode;attr.nlink=1;attr.uid=0;attr.gid=0;attr.rdev=node.rdev;if(FS.isDir(node.mode)){attr.size=4096}else if(FS.isFile(node.mode)){attr.size=node.usedBytes}else if(FS.isLink(node.mode)){attr.size=node.link.length}else{attr.size=0}attr.atime=new Date(node.timestamp);attr.mtime=new Date(node.timestamp);attr.ctime=new Date(node.timestamp);attr.blksize=4096;attr.blocks=Math.ceil(attr.size/attr.blksize);return attr},setattr(node,attr){if(attr.mode!==undefined){node.mode=attr.mode}if(attr.timestamp!==undefined){node.timestamp=attr.timestamp}if(attr.size!==undefined){MEMFS.resizeFileStorage(node,attr.size)}},lookup(parent,name){throw FS.genericErrors[44]},mknod(parent,name,mode,dev){return MEMFS.createNode(parent,name,mode,dev)},rename(old_node,new_dir,new_name){if(FS.isDir(old_node.mode)){var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(new_node){for(var i in new_node.contents){throw new FS.ErrnoError(55)}}}delete old_node.parent.contents[old_node.name];old_node.parent.timestamp=Date.now();old_node.name=new_name;new_dir.contents[new_name]=old_node;new_dir.timestamp=old_node.parent.timestamp},unlink(parent,name){delete parent.contents[name];parent.timestamp=Date.now()},rmdir(parent,name){var node=FS.lookupNode(parent,name);for(var i in node.contents){throw new FS.ErrnoError(55)}delete parent.contents[name];parent.timestamp=Date.now()},readdir(node){var entries=[".",".."];for(var key of Object.keys(node.contents)){entries.push(key)}return entries},symlink(parent,newname,oldpath){var node=MEMFS.createNode(parent,newname,511|40960,0);node.link=oldpath;return node},readlink(node){if(!FS.isLink(node.mode)){throw new FS.ErrnoError(28)}return node.link}},stream_ops:{read(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=stream.node.usedBytes)return 0;var size=Math.min(stream.node.usedBytes-position,length);if(size>8&&contents.subarray){buffer.set(contents.subarray(position,position+size),offset)}else{for(var i=0;i0||position+length{var dep=!noRunDep?getUniqueRunDependency(`al ${url}`):"";readAsync(url).then(arrayBuffer=>{onload(new Uint8Array(arrayBuffer));if(dep)removeRunDependency(dep)},err=>{if(onerror){onerror()}else{throw`Loading data file "${url}" failed.`}});if(dep)addRunDependency(dep)};var FS_createDataFile=(parent,name,fileData,canRead,canWrite,canOwn)=>{FS.createDataFile(parent,name,fileData,canRead,canWrite,canOwn)};var FS_handledByPreloadPlugin=(byteArray,fullname,finish,onerror)=>{if(typeof Browser!="undefined")Browser.init();var handled=false;preloadPlugins.forEach(plugin=>{if(handled)return;if(plugin["canHandle"](fullname)){plugin["handle"](byteArray,fullname,finish,onerror);handled=true}});return handled};var FS_createPreloadedFile=(parent,name,url,canRead,canWrite,onload,onerror,dontCreateFile,canOwn,preFinish)=>{var fullname=name?PATH_FS.resolve(PATH.join2(parent,name)):parent;var dep=getUniqueRunDependency(`cp ${fullname}`);function processData(byteArray){function finish(byteArray){preFinish?.();if(!dontCreateFile){FS_createDataFile(parent,name,byteArray,canRead,canWrite,canOwn)}onload?.();removeRunDependency(dep)}if(FS_handledByPreloadPlugin(byteArray,fullname,finish,()=>{onerror?.();removeRunDependency(dep)})){return}finish(byteArray)}addRunDependency(dep);if(typeof url=="string"){asyncLoad(url,processData,onerror)}else{processData(url)}};var FS_modeStringToFlags=str=>{var flagModes={r:0,"r+":2,w:512|64|1,"w+":512|64|2,a:1024|64|1,"a+":1024|64|2};var flags=flagModes[str];if(typeof flags=="undefined"){throw new Error(`Unknown file open mode: ${str}`)}return flags};var FS_getMode=(canRead,canWrite)=>{var mode=0;if(canRead)mode|=292|73;if(canWrite)mode|=146;return mode};var FS={root:null,mounts:[],devices:{},streams:[],nextInode:1,nameTable:null,currentPath:"/",initialized:false,ignorePermissions:true,ErrnoError:class{constructor(errno){this.name="ErrnoError";this.errno=errno}},genericErrors:{},filesystems:null,syncFSRequests:0,FSStream:class{constructor(){this.shared={}}get object(){return this.node}set object(val){this.node=val}get isRead(){return(this.flags&2097155)!==1}get isWrite(){return(this.flags&2097155)!==0}get isAppend(){return this.flags&1024}get flags(){return this.shared.flags}set flags(val){this.shared.flags=val}get position(){return this.shared.position}set position(val){this.shared.position=val}},FSNode:class{constructor(parent,name,mode,rdev){if(!parent){parent=this}this.parent=parent;this.mount=parent.mount;this.mounted=null;this.id=FS.nextInode++;this.name=name;this.mode=mode;this.node_ops={};this.stream_ops={};this.rdev=rdev;this.readMode=292|73;this.writeMode=146}get read(){return(this.mode&this.readMode)===this.readMode}set read(val){val?this.mode|=this.readMode:this.mode&=~this.readMode}get write(){return(this.mode&this.writeMode)===this.writeMode}set write(val){val?this.mode|=this.writeMode:this.mode&=~this.writeMode}get isFolder(){return FS.isDir(this.mode)}get isDevice(){return FS.isChrdev(this.mode)}},lookupPath(path,opts={}){path=PATH_FS.resolve(path);if(!path)return{path:"",node:null};var defaults={follow_mount:true,recurse_count:0};opts=Object.assign(defaults,opts);if(opts.recurse_count>8){throw new FS.ErrnoError(32)}var parts=path.split("/").filter(p=>!!p);var current=FS.root;var current_path="/";for(var i=0;i40){throw new FS.ErrnoError(32)}}}}return{path:current_path,node:current}},getPath(node){var path;while(true){if(FS.isRoot(node)){var mount=node.mount.mountpoint;if(!path)return mount;return mount[mount.length-1]!=="/"?`${mount}/${path}`:mount+path}path=path?`${node.name}/${path}`:node.name;node=node.parent}},hashName(parentid,name){var hash=0;for(var i=0;i>>0)%FS.nameTable.length},hashAddNode(node){var hash=FS.hashName(node.parent.id,node.name);node.name_next=FS.nameTable[hash];FS.nameTable[hash]=node},hashRemoveNode(node){var hash=FS.hashName(node.parent.id,node.name);if(FS.nameTable[hash]===node){FS.nameTable[hash]=node.name_next}else{var current=FS.nameTable[hash];while(current){if(current.name_next===node){current.name_next=node.name_next;break}current=current.name_next}}},lookupNode(parent,name){var errCode=FS.mayLookup(parent);if(errCode){throw new FS.ErrnoError(errCode)}var hash=FS.hashName(parent.id,name);for(var node=FS.nameTable[hash];node;node=node.name_next){var nodeName=node.name;if(node.parent.id===parent.id&&nodeName===name){return node}}return FS.lookup(parent,name)},createNode(parent,name,mode,rdev){var node=new FS.FSNode(parent,name,mode,rdev);FS.hashAddNode(node);return node},destroyNode(node){FS.hashRemoveNode(node)},isRoot(node){return node===node.parent},isMountpoint(node){return!!node.mounted},isFile(mode){return(mode&61440)===32768},isDir(mode){return(mode&61440)===16384},isLink(mode){return(mode&61440)===40960},isChrdev(mode){return(mode&61440)===8192},isBlkdev(mode){return(mode&61440)===24576},isFIFO(mode){return(mode&61440)===4096},isSocket(mode){return(mode&49152)===49152},flagsToPermissionString(flag){var perms=["r","w","rw"][flag&3];if(flag&512){perms+="w"}return perms},nodePermissions(node,perms){if(FS.ignorePermissions){return 0}if(perms.includes("r")&&!(node.mode&292)){return 2}else if(perms.includes("w")&&!(node.mode&146)){return 2}else if(perms.includes("x")&&!(node.mode&73)){return 2}return 0},mayLookup(dir){if(!FS.isDir(dir.mode))return 54;var errCode=FS.nodePermissions(dir,"x");if(errCode)return errCode;if(!dir.node_ops.lookup)return 2;return 0},mayCreate(dir,name){try{var node=FS.lookupNode(dir,name);return 20}catch(e){}return FS.nodePermissions(dir,"wx")},mayDelete(dir,name,isdir){var node;try{node=FS.lookupNode(dir,name)}catch(e){return e.errno}var errCode=FS.nodePermissions(dir,"wx");if(errCode){return errCode}if(isdir){if(!FS.isDir(node.mode)){return 54}if(FS.isRoot(node)||FS.getPath(node)===FS.cwd()){return 10}}else{if(FS.isDir(node.mode)){return 31}}return 0},mayOpen(node,flags){if(!node){return 44}if(FS.isLink(node.mode)){return 32}else if(FS.isDir(node.mode)){if(FS.flagsToPermissionString(flags)!=="r"||flags&512){return 31}}return FS.nodePermissions(node,FS.flagsToPermissionString(flags))},MAX_OPEN_FDS:4096,nextfd(){for(var fd=0;fd<=FS.MAX_OPEN_FDS;fd++){if(!FS.streams[fd]){return fd}}throw new FS.ErrnoError(33)},getStreamChecked(fd){var stream=FS.getStream(fd);if(!stream){throw new FS.ErrnoError(8)}return stream},getStream:fd=>FS.streams[fd],createStream(stream,fd=-1){stream=Object.assign(new FS.FSStream,stream);if(fd==-1){fd=FS.nextfd()}stream.fd=fd;FS.streams[fd]=stream;return stream},closeStream(fd){FS.streams[fd]=null},dupStream(origStream,fd=-1){var stream=FS.createStream(origStream,fd);stream.stream_ops?.dup?.(stream);return stream},chrdev_stream_ops:{open(stream){var device=FS.getDevice(stream.node.rdev);stream.stream_ops=device.stream_ops;stream.stream_ops.open?.(stream)},llseek(){throw new FS.ErrnoError(70)}},major:dev=>dev>>8,minor:dev=>dev&255,makedev:(ma,mi)=>ma<<8|mi,registerDevice(dev,ops){FS.devices[dev]={stream_ops:ops}},getDevice:dev=>FS.devices[dev],getMounts(mount){var mounts=[];var check=[mount];while(check.length){var m=check.pop();mounts.push(m);check.push(...m.mounts)}return mounts},syncfs(populate,callback){if(typeof populate=="function"){callback=populate;populate=false}FS.syncFSRequests++;if(FS.syncFSRequests>1){err(`warning: ${FS.syncFSRequests} FS.syncfs operations in flight at once, probably just doing extra work`)}var mounts=FS.getMounts(FS.root.mount);var completed=0;function doCallback(errCode){FS.syncFSRequests--;return callback(errCode)}function done(errCode){if(errCode){if(!done.errored){done.errored=true;return doCallback(errCode)}return}if(++completed>=mounts.length){doCallback(null)}}mounts.forEach(mount=>{if(!mount.type.syncfs){return done(null)}mount.type.syncfs(mount,populate,done)})},mount(type,opts,mountpoint){var root=mountpoint==="/";var pseudo=!mountpoint;var node;if(root&&FS.root){throw new FS.ErrnoError(10)}else if(!root&&!pseudo){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});mountpoint=lookup.path;node=lookup.node;if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}if(!FS.isDir(node.mode)){throw new FS.ErrnoError(54)}}var mount={type:type,opts:opts,mountpoint:mountpoint,mounts:[]};var mountRoot=type.mount(mount);mountRoot.mount=mount;mount.root=mountRoot;if(root){FS.root=mountRoot}else if(node){node.mounted=mount;if(node.mount){node.mount.mounts.push(mount)}}return mountRoot},unmount(mountpoint){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});if(!FS.isMountpoint(lookup.node)){throw new FS.ErrnoError(28)}var node=lookup.node;var mount=node.mounted;var mounts=FS.getMounts(mount);Object.keys(FS.nameTable).forEach(hash=>{var current=FS.nameTable[hash];while(current){var next=current.name_next;if(mounts.includes(current.mount)){FS.destroyNode(current)}current=next}});node.mounted=null;var idx=node.mount.mounts.indexOf(mount);node.mount.mounts.splice(idx,1)},lookup(parent,name){return parent.node_ops.lookup(parent,name)},mknod(path,mode,dev){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);if(!name||name==="."||name===".."){throw new FS.ErrnoError(28)}var errCode=FS.mayCreate(parent,name);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.mknod){throw new FS.ErrnoError(63)}return parent.node_ops.mknod(parent,name,mode,dev)},create(path,mode){mode=mode!==undefined?mode:438;mode&=4095;mode|=32768;return FS.mknod(path,mode,0)},mkdir(path,mode){mode=mode!==undefined?mode:511;mode&=511|512;mode|=16384;return FS.mknod(path,mode,0)},mkdirTree(path,mode){var dirs=path.split("/");var d="";for(var i=0;iFS.currentPath,chdir(path){var lookup=FS.lookupPath(path,{follow:true});if(lookup.node===null){throw new FS.ErrnoError(44)}if(!FS.isDir(lookup.node.mode)){throw new FS.ErrnoError(54)}var errCode=FS.nodePermissions(lookup.node,"x");if(errCode){throw new FS.ErrnoError(errCode)}FS.currentPath=lookup.path},createDefaultDirectories(){FS.mkdir("/tmp");FS.mkdir("/home");FS.mkdir("/home/web_user")},createDefaultDevices(){FS.mkdir("/dev");FS.registerDevice(FS.makedev(1,3),{read:()=>0,write:(stream,buffer,offset,length,pos)=>length});FS.mkdev("/dev/null",FS.makedev(1,3));TTY.register(FS.makedev(5,0),TTY.default_tty_ops);TTY.register(FS.makedev(6,0),TTY.default_tty1_ops);FS.mkdev("/dev/tty",FS.makedev(5,0));FS.mkdev("/dev/tty1",FS.makedev(6,0));var randomBuffer=new Uint8Array(1024),randomLeft=0;var randomByte=()=>{if(randomLeft===0){randomLeft=randomFill(randomBuffer).byteLength}return randomBuffer[--randomLeft]};FS.createDevice("/dev","random",randomByte);FS.createDevice("/dev","urandom",randomByte);FS.mkdir("/dev/shm");FS.mkdir("/dev/shm/tmp")},createSpecialDirectories(){FS.mkdir("/proc");var proc_self=FS.mkdir("/proc/self");FS.mkdir("/proc/self/fd");FS.mount({mount(){var node=FS.createNode(proc_self,"fd",16384|511,73);node.node_ops={lookup(parent,name){var fd=+name;var stream=FS.getStreamChecked(fd);var ret={parent:null,mount:{mountpoint:"fake"},node_ops:{readlink:()=>stream.path}};ret.parent=ret;return ret}};return node}},{},"/proc/self/fd")},createStandardStreams(){if(Module["stdin"]){FS.createDevice("/dev","stdin",Module["stdin"])}else{FS.symlink("/dev/tty","/dev/stdin")}if(Module["stdout"]){FS.createDevice("/dev","stdout",null,Module["stdout"])}else{FS.symlink("/dev/tty","/dev/stdout")}if(Module["stderr"]){FS.createDevice("/dev","stderr",null,Module["stderr"])}else{FS.symlink("/dev/tty1","/dev/stderr")}var stdin=FS.open("/dev/stdin",0);var stdout=FS.open("/dev/stdout",1);var stderr=FS.open("/dev/stderr",1)},staticInit(){[44].forEach(code=>{FS.genericErrors[code]=new FS.ErrnoError(code);FS.genericErrors[code].stack=""});FS.nameTable=new Array(4096);FS.mount(MEMFS,{},"/");FS.createDefaultDirectories();FS.createDefaultDevices();FS.createSpecialDirectories();FS.filesystems={MEMFS:MEMFS}},init(input,output,error){FS.init.initialized=true;Module["stdin"]=input||Module["stdin"];Module["stdout"]=output||Module["stdout"];Module["stderr"]=error||Module["stderr"];FS.createStandardStreams()},quit(){FS.init.initialized=false;for(var i=0;ithis.length-1||idx<0){return undefined}var chunkOffset=idx%this.chunkSize;var chunkNum=idx/this.chunkSize|0;return this.getter(chunkNum)[chunkOffset]}setDataGetter(getter){this.getter=getter}cacheLength(){var xhr=new XMLHttpRequest;xhr.open("HEAD",url,false);xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);var datalength=Number(xhr.getResponseHeader("Content-length"));var header;var hasByteServing=(header=xhr.getResponseHeader("Accept-Ranges"))&&header==="bytes";var usesGzip=(header=xhr.getResponseHeader("Content-Encoding"))&&header==="gzip";var chunkSize=1024*1024;if(!hasByteServing)chunkSize=datalength;var doXHR=(from,to)=>{if(from>to)throw new Error("invalid range ("+from+", "+to+") or no bytes requested!");if(to>datalength-1)throw new Error("only "+datalength+" bytes available! programmer error!");var xhr=new XMLHttpRequest;xhr.open("GET",url,false);if(datalength!==chunkSize)xhr.setRequestHeader("Range","bytes="+from+"-"+to);xhr.responseType="arraybuffer";if(xhr.overrideMimeType){xhr.overrideMimeType("text/plain; charset=x-user-defined")}xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);if(xhr.response!==undefined){return new Uint8Array(xhr.response||[])}return intArrayFromString(xhr.responseText||"",true)};var lazyArray=this;lazyArray.setDataGetter(chunkNum=>{var start=chunkNum*chunkSize;var end=(chunkNum+1)*chunkSize-1;end=Math.min(end,datalength-1);if(typeof lazyArray.chunks[chunkNum]=="undefined"){lazyArray.chunks[chunkNum]=doXHR(start,end)}if(typeof lazyArray.chunks[chunkNum]=="undefined")throw new Error("doXHR failed!");return lazyArray.chunks[chunkNum]});if(usesGzip||!datalength){chunkSize=datalength=1;datalength=this.getter(0).length;chunkSize=datalength;out("LazyFiles on gzip forces download of the whole file when length is accessed")}this._length=datalength;this._chunkSize=chunkSize;this.lengthKnown=true}get length(){if(!this.lengthKnown){this.cacheLength()}return this._length}get chunkSize(){if(!this.lengthKnown){this.cacheLength()}return this._chunkSize}}if(typeof XMLHttpRequest!="undefined"){if(!ENVIRONMENT_IS_WORKER)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var lazyArray=new LazyUint8Array;var properties={isDevice:false,contents:lazyArray}}else{var properties={isDevice:false,url:url}}var node=FS.createFile(parent,name,properties,canRead,canWrite);if(properties.contents){node.contents=properties.contents}else if(properties.url){node.contents=null;node.url=properties.url}Object.defineProperties(node,{usedBytes:{get:function(){return this.contents.length}}});var stream_ops={};var keys=Object.keys(node.stream_ops);keys.forEach(key=>{var fn=node.stream_ops[key];stream_ops[key]=(...args)=>{FS.forceLoadFile(node);return fn(...args)}});function writeChunks(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=contents.length)return 0;var size=Math.min(contents.length-position,length);if(contents.slice){for(var i=0;i{FS.forceLoadFile(node);return writeChunks(stream,buffer,offset,length,position)};stream_ops.mmap=(stream,length,position,prot,flags)=>{FS.forceLoadFile(node);var ptr=mmapAlloc(length);if(!ptr){throw new FS.ErrnoError(48)}writeChunks(stream,HEAP8,ptr,length,position);return{ptr:ptr,allocated:true}};node.stream_ops=stream_ops;return node}};var UTF8ToString=(ptr,maxBytesToRead)=>{if(!ptr)return"";var maxPtr=ptr+maxBytesToRead;for(var end=ptr;!(end>=maxPtr)&&HEAPU8[end];)++end;return UTF8Decoder.decode(HEAPU8.subarray(ptr,end))};var SYSCALLS={DEFAULT_POLLMASK:5,calculateAt(dirfd,path,allowEmpty){if(PATH.isAbs(path)){return path}var dir;if(dirfd===-100){dir=FS.cwd()}else{var dirstream=SYSCALLS.getStreamFromFD(dirfd);dir=dirstream.path}if(path.length==0){if(!allowEmpty){throw new FS.ErrnoError(44)}return dir}return PATH.join2(dir,path)},doStat(func,path,buf){var stat=func(path);HEAP32[buf>>2]=stat.dev;HEAP32[buf+4>>2]=stat.mode;HEAPU32[buf+8>>2]=stat.nlink;HEAP32[buf+12>>2]=stat.uid;HEAP32[buf+16>>2]=stat.gid;HEAP32[buf+20>>2]=stat.rdev;tempI64=[stat.size>>>0,(tempDouble=stat.size,+Math.abs(tempDouble)>=1?tempDouble>0?+Math.floor(tempDouble/4294967296)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+24>>2]=tempI64[0],HEAP32[buf+28>>2]=tempI64[1];HEAP32[buf+32>>2]=4096;HEAP32[buf+36>>2]=stat.blocks;var atime=stat.atime.getTime();var mtime=stat.mtime.getTime();var ctime=stat.ctime.getTime();tempI64=[Math.floor(atime/1e3)>>>0,(tempDouble=Math.floor(atime/1e3),+Math.abs(tempDouble)>=1?tempDouble>0?+Math.floor(tempDouble/4294967296)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+40>>2]=tempI64[0],HEAP32[buf+44>>2]=tempI64[1];HEAPU32[buf+48>>2]=atime%1e3*1e3;tempI64=[Math.floor(mtime/1e3)>>>0,(tempDouble=Math.floor(mtime/1e3),+Math.abs(tempDouble)>=1?tempDouble>0?+Math.floor(tempDouble/4294967296)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+56>>2]=tempI64[0],HEAP32[buf+60>>2]=tempI64[1];HEAPU32[buf+64>>2]=mtime%1e3*1e3;tempI64=[Math.floor(ctime/1e3)>>>0,(tempDouble=Math.floor(ctime/1e3),+Math.abs(tempDouble)>=1?tempDouble>0?+Math.floor(tempDouble/4294967296)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+72>>2]=tempI64[0],HEAP32[buf+76>>2]=tempI64[1];HEAPU32[buf+80>>2]=ctime%1e3*1e3;tempI64=[stat.ino>>>0,(tempDouble=stat.ino,+Math.abs(tempDouble)>=1?tempDouble>0?+Math.floor(tempDouble/4294967296)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+88>>2]=tempI64[0],HEAP32[buf+92>>2]=tempI64[1];return 0},doMsync(addr,stream,len,flags,offset){if(!FS.isFile(stream.node.mode)){throw new FS.ErrnoError(43)}if(flags&2){return 0}var buffer=HEAPU8.slice(addr,addr+len);FS.msync(stream,buffer,offset,len,flags)},getStreamFromFD(fd){var stream=FS.getStreamChecked(fd);return stream},varargs:undefined,getStr(ptr){var ret=UTF8ToString(ptr);return ret}};function ___syscall_dup(fd){try{var old=SYSCALLS.getStreamFromFD(fd);return FS.dupStream(old).fd}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}function ___syscall_faccessat(dirfd,path,amode,flags){try{path=SYSCALLS.getStr(path);path=SYSCALLS.calculateAt(dirfd,path);if(amode&~7){return-28}var lookup=FS.lookupPath(path,{follow:true});var node=lookup.node;if(!node){return-44}var perms="";if(amode&4)perms+="r";if(amode&2)perms+="w";if(amode&1)perms+="x";if(perms&&FS.nodePermissions(node,perms)){return-2}return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}function syscallGetVarargI(){var ret=HEAP32[+SYSCALLS.varargs>>2];SYSCALLS.varargs+=4;return ret}var syscallGetVarargP=syscallGetVarargI;function ___syscall_fcntl64(fd,cmd,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(fd);switch(cmd){case 0:{var arg=syscallGetVarargI();if(arg<0){return-28}while(FS.streams[arg]){arg++}var newStream;newStream=FS.dupStream(stream,arg);return newStream.fd}case 1:case 2:return 0;case 3:return stream.flags;case 4:{var arg=syscallGetVarargI();stream.flags|=arg;return 0}case 12:{var arg=syscallGetVarargP();var offset=0;HEAP16[arg+offset>>1]=2;return 0}case 13:case 14:return 0}return-28}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}function ___syscall_fstat64(fd,buf){try{var stream=SYSCALLS.getStreamFromFD(fd);return SYSCALLS.doStat(FS.stat,stream.path,buf)}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}function ___syscall_ioctl(fd,op,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(fd);switch(op){case 21509:{if(!stream.tty)return-59;return 0}case 21505:{if(!stream.tty)return-59;if(stream.tty.ops.ioctl_tcgets){var termios=stream.tty.ops.ioctl_tcgets(stream);var argp=syscallGetVarargP();HEAP32[argp>>2]=termios.c_iflag||0;HEAP32[argp+4>>2]=termios.c_oflag||0;HEAP32[argp+8>>2]=termios.c_cflag||0;HEAP32[argp+12>>2]=termios.c_lflag||0;for(var i=0;i<32;i++){HEAP8[argp+i+17]=termios.c_cc[i]||0}return 0}return 0}case 21510:case 21511:case 21512:{if(!stream.tty)return-59;return 0}case 21506:case 21507:case 21508:{if(!stream.tty)return-59;if(stream.tty.ops.ioctl_tcsets){var argp=syscallGetVarargP();var c_iflag=HEAP32[argp>>2];var c_oflag=HEAP32[argp+4>>2];var c_cflag=HEAP32[argp+8>>2];var c_lflag=HEAP32[argp+12>>2];var c_cc=[];for(var i=0;i<32;i++){c_cc.push(HEAP8[argp+i+17])}return stream.tty.ops.ioctl_tcsets(stream.tty,op,{c_iflag:c_iflag,c_oflag:c_oflag,c_cflag:c_cflag,c_lflag:c_lflag,c_cc:c_cc})}return 0}case 21519:{if(!stream.tty)return-59;var argp=syscallGetVarargP();HEAP32[argp>>2]=0;return 0}case 21520:{if(!stream.tty)return-59;return-28}case 21531:{var argp=syscallGetVarargP();return FS.ioctl(stream,op,argp)}case 21523:{if(!stream.tty)return-59;if(stream.tty.ops.ioctl_tiocgwinsz){var winsize=stream.tty.ops.ioctl_tiocgwinsz(stream.tty);var argp=syscallGetVarargP();HEAP16[argp>>1]=winsize[0];HEAP16[argp+2>>1]=winsize[1]}return 0}case 21524:{if(!stream.tty)return-59;return 0}case 21515:{if(!stream.tty)return-59;return 0}default:return-28}}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}function ___syscall_lstat64(path,buf){try{path=SYSCALLS.getStr(path);return SYSCALLS.doStat(FS.lstat,path,buf)}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}function ___syscall_newfstatat(dirfd,path,buf,flags){try{path=SYSCALLS.getStr(path);var nofollow=flags&256;var allowEmpty=flags&4096;flags=flags&~6400;path=SYSCALLS.calculateAt(dirfd,path,allowEmpty);return SYSCALLS.doStat(nofollow?FS.lstat:FS.stat,path,buf)}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}function ___syscall_openat(dirfd,path,flags,varargs){SYSCALLS.varargs=varargs;try{path=SYSCALLS.getStr(path);path=SYSCALLS.calculateAt(dirfd,path);var mode=varargs?syscallGetVarargI():0;return FS.open(path,flags,mode).fd}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}function ___syscall_stat64(path,buf){try{path=SYSCALLS.getStr(path);return SYSCALLS.doStat(FS.stat,path,buf)}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}var __abort_js=()=>{abort("")};var __embind_register_bigint=(primitiveType,name,size,minRange,maxRange)=>{};var embind_init_charCodes=()=>{var codes=new Array(256);for(var i=0;i<256;++i){codes[i]=String.fromCharCode(i)}embind_charCodes=codes};var embind_charCodes;var readLatin1String=ptr=>{var ret="";var c=ptr;while(HEAPU8[c]){ret+=embind_charCodes[HEAPU8[c++]]}return ret};var awaitingDependencies={};var registeredTypes={};var typeDependencies={};var BindingError;var throwBindingError=message=>{throw new BindingError(message)};var InternalError;function sharedRegisterType(rawType,registeredInstance,options={}){var name=registeredInstance.name;if(!rawType){throwBindingError(`type "${name}" must have a positive integer typeid pointer`)}if(registeredTypes.hasOwnProperty(rawType)){if(options.ignoreDuplicateRegistrations){return}else{throwBindingError(`Cannot register type '${name}' twice`)}}registeredTypes[rawType]=registeredInstance;delete typeDependencies[rawType];if(awaitingDependencies.hasOwnProperty(rawType)){var callbacks=awaitingDependencies[rawType];delete awaitingDependencies[rawType];callbacks.forEach(cb=>cb())}}function registerType(rawType,registeredInstance,options={}){if(!("argPackAdvance"in registeredInstance)){throw new TypeError("registerType registeredInstance requires argPackAdvance")}return sharedRegisterType(rawType,registeredInstance,options)}var GenericWireTypeSize=8;var __embind_register_bool=(rawType,name,trueValue,falseValue)=>{name=readLatin1String(name);registerType(rawType,{name:name,fromWireType:function(wt){return!!wt},toWireType:function(destructors,o){return o?trueValue:falseValue},argPackAdvance:GenericWireTypeSize,readValueFromPointer:function(pointer){return this["fromWireType"](HEAPU8[pointer])},destructorFunction:null})};var emval_freelist=[];var emval_handles=[];var __emval_decref=handle=>{if(handle>9&&0===--emval_handles[handle+1]){emval_handles[handle]=undefined;emval_freelist.push(handle)}};var count_emval_handles=()=>emval_handles.length/2-5-emval_freelist.length;var init_emval=()=>{emval_handles.push(0,1,undefined,1,null,1,true,1,false,1);Module["count_emval_handles"]=count_emval_handles};var Emval={toValue:handle=>{if(!handle){throwBindingError("Cannot use deleted val. handle = "+handle)}return emval_handles[handle]},toHandle:value=>{switch(value){case undefined:return 2;case null:return 4;case true:return 6;case false:return 8;default:{const handle=emval_freelist.pop()||emval_handles.length;emval_handles[handle]=value;emval_handles[handle+1]=1;return handle}}}};function readPointer(pointer){return this["fromWireType"](HEAPU32[pointer>>2])}var EmValType={name:"emscripten::val",fromWireType:handle=>{var rv=Emval.toValue(handle);__emval_decref(handle);return rv},toWireType:(destructors,value)=>Emval.toHandle(value),argPackAdvance:GenericWireTypeSize,readValueFromPointer:readPointer,destructorFunction:null};var __embind_register_emval=rawType=>registerType(rawType,EmValType);var floatReadValueFromPointer=(name,width)=>{switch(width){case 4:return function(pointer){return this["fromWireType"](HEAPF32[pointer>>2])};case 8:return function(pointer){return this["fromWireType"](HEAPF64[pointer>>3])};default:throw new TypeError(`invalid float width (${width}): ${name}`)}};var __embind_register_float=(rawType,name,size)=>{name=readLatin1String(name);registerType(rawType,{name:name,fromWireType:value=>value,toWireType:(destructors,value)=>value,argPackAdvance:GenericWireTypeSize,readValueFromPointer:floatReadValueFromPointer(name,size),destructorFunction:null})};var integerReadValueFromPointer=(name,width,signed)=>{switch(width){case 1:return signed?pointer=>HEAP8[pointer]:pointer=>HEAPU8[pointer];case 2:return signed?pointer=>HEAP16[pointer>>1]:pointer=>HEAPU16[pointer>>1];case 4:return signed?pointer=>HEAP32[pointer>>2]:pointer=>HEAPU32[pointer>>2];default:throw new TypeError(`invalid integer width (${width}): ${name}`)}};var __embind_register_integer=(primitiveType,name,size,minRange,maxRange)=>{name=readLatin1String(name);if(maxRange===-1){maxRange=4294967295}var fromWireType=value=>value;if(minRange===0){var bitshift=32-8*size;fromWireType=value=>value<>>bitshift}var isUnsignedType=name.includes("unsigned");var checkAssertions=(value,toTypeName)=>{};var toWireType;if(isUnsignedType){toWireType=function(destructors,value){checkAssertions(value,this.name);return value>>>0}}else{toWireType=function(destructors,value){checkAssertions(value,this.name);return value}}registerType(primitiveType,{name:name,fromWireType:fromWireType,toWireType:toWireType,argPackAdvance:GenericWireTypeSize,readValueFromPointer:integerReadValueFromPointer(name,size,minRange!==0),destructorFunction:null})};var __embind_register_memory_view=(rawType,dataTypeIndex,name)=>{var typeMapping=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array];var TA=typeMapping[dataTypeIndex];function decodeMemoryView(handle){var size=HEAPU32[handle>>2];var data=HEAPU32[handle+4>>2];return new TA(HEAP8.buffer,data,size)}name=readLatin1String(name);registerType(rawType,{name:name,fromWireType:decodeMemoryView,argPackAdvance:GenericWireTypeSize,readValueFromPointer:decodeMemoryView},{ignoreDuplicateRegistrations:true})};var stringToUTF8=(str,outPtr,maxBytesToWrite)=>stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite);var __embind_register_std_string=(rawType,name)=>{name=readLatin1String(name);var stdStringIsUTF8=name==="std::string";registerType(rawType,{name:name,fromWireType(value){var length=HEAPU32[value>>2];var payload=value+4;var str;if(stdStringIsUTF8){var decodeStartPtr=payload;for(var i=0;i<=length;++i){var currentBytePtr=payload+i;if(i==length||HEAPU8[currentBytePtr]==0){var maxRead=currentBytePtr-decodeStartPtr;var stringSegment=UTF8ToString(decodeStartPtr,maxRead);if(str===undefined){str=stringSegment}else{str+=String.fromCharCode(0);str+=stringSegment}decodeStartPtr=currentBytePtr+1}}}else{var a=new Array(length);for(var i=0;i>2]=length;if(stdStringIsUTF8&&valueIsOfTypeString){stringToUTF8(value,ptr,length+1)}else{if(valueIsOfTypeString){for(var i=0;i255){_free(ptr);throwBindingError("String has UTF-16 code units that do not fit in 8 bits")}HEAPU8[ptr+i]=charCode}}else{for(var i=0;i{var endPtr=ptr;var idx=endPtr>>1;var maxIdx=idx+maxBytesToRead/2;while(!(idx>=maxIdx)&&HEAPU16[idx])++idx;endPtr=idx<<1;return UTF16Decoder.decode(HEAPU8.subarray(ptr,endPtr))};var stringToUTF16=(str,outPtr,maxBytesToWrite)=>{maxBytesToWrite??=2147483647;if(maxBytesToWrite<2)return 0;maxBytesToWrite-=2;var startPtr=outPtr;var numCharsToWrite=maxBytesToWrite>1]=codeUnit;outPtr+=2}HEAP16[outPtr>>1]=0;return outPtr-startPtr};var lengthBytesUTF16=str=>str.length*2;var UTF32ToString=(ptr,maxBytesToRead)=>{var i=0;var str="";while(!(i>=maxBytesToRead/4)){var utf32=HEAP32[ptr+i*4>>2];if(utf32==0)break;++i;if(utf32>=65536){var ch=utf32-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}else{str+=String.fromCharCode(utf32)}}return str};var stringToUTF32=(str,outPtr,maxBytesToWrite)=>{maxBytesToWrite??=2147483647;if(maxBytesToWrite<4)return 0;var startPtr=outPtr;var endPtr=startPtr+maxBytesToWrite-4;for(var i=0;i=55296&&codeUnit<=57343){var trailSurrogate=str.charCodeAt(++i);codeUnit=65536+((codeUnit&1023)<<10)|trailSurrogate&1023}HEAP32[outPtr>>2]=codeUnit;outPtr+=4;if(outPtr+4>endPtr)break}HEAP32[outPtr>>2]=0;return outPtr-startPtr};var lengthBytesUTF32=str=>{var len=0;for(var i=0;i=55296&&codeUnit<=57343)++i;len+=4}return len};var __embind_register_std_wstring=(rawType,charSize,name)=>{name=readLatin1String(name);var decodeString,encodeString,readCharAt,lengthBytesUTF;if(charSize===2){decodeString=UTF16ToString;encodeString=stringToUTF16;lengthBytesUTF=lengthBytesUTF16;readCharAt=pointer=>HEAPU16[pointer>>1]}else if(charSize===4){decodeString=UTF32ToString;encodeString=stringToUTF32;lengthBytesUTF=lengthBytesUTF32;readCharAt=pointer=>HEAPU32[pointer>>2]}registerType(rawType,{name:name,fromWireType:value=>{var length=HEAPU32[value>>2];var str;var decodeStartPtr=value+4;for(var i=0;i<=length;++i){var currentBytePtr=value+4+i*charSize;if(i==length||readCharAt(currentBytePtr)==0){var maxReadBytes=currentBytePtr-decodeStartPtr;var stringSegment=decodeString(decodeStartPtr,maxReadBytes);if(str===undefined){str=stringSegment}else{str+=String.fromCharCode(0);str+=stringSegment}decodeStartPtr=currentBytePtr+charSize}}_free(value);return str},toWireType:(destructors,value)=>{if(!(typeof value=="string")){throwBindingError(`Cannot pass non-string to C++ string type ${name}`)}var length=lengthBytesUTF(value);var ptr=_malloc(4+length+charSize);HEAPU32[ptr>>2]=length/charSize;encodeString(value,ptr+4,length+charSize);if(destructors!==null){destructors.push(_free,ptr)}return ptr},argPackAdvance:GenericWireTypeSize,readValueFromPointer:readPointer,destructorFunction(ptr){_free(ptr)}})};var __embind_register_void=(rawType,name)=>{name=readLatin1String(name);registerType(rawType,{isVoid:true,name:name,argPackAdvance:0,fromWireType:()=>undefined,toWireType:(destructors,o)=>undefined})};var nowIsMonotonic=1;var __emscripten_get_now_is_monotonic=()=>nowIsMonotonic;var __emscripten_memcpy_js=(dest,src,num)=>HEAPU8.copyWithin(dest,src,src+num);var getTypeName=type=>{var ptr=___getTypeName(type);var rv=readLatin1String(ptr);_free(ptr);return rv};var requireRegisteredType=(rawType,humanName)=>{var impl=registeredTypes[rawType];if(undefined===impl){throwBindingError(`${humanName} has unknown type ${getTypeName(rawType)}`)}return impl};var emval_returnValue=(returnType,destructorsRef,handle)=>{var destructors=[];var result=returnType["toWireType"](destructors,handle);if(destructors.length){HEAPU32[destructorsRef>>2]=Emval.toHandle(destructors)}return result};var __emval_as=(handle,returnType,destructorsRef)=>{handle=Emval.toValue(handle);returnType=requireRegisteredType(returnType,"emval::as");return emval_returnValue(returnType,destructorsRef,handle)};var emval_symbols={};var getStringOrSymbol=address=>{var symbol=emval_symbols[address];if(symbol===undefined){return readLatin1String(address)}return symbol};var emval_get_global=()=>{if(typeof globalThis=="object"){return globalThis}function testGlobal(obj){obj["$$$embind_global$$$"]=obj;var success=typeof $$$embind_global$$$=="object"&&obj["$$$embind_global$$$"]==obj;if(!success){delete obj["$$$embind_global$$$"]}return success}if(typeof $$$embind_global$$$=="object"){return $$$embind_global$$$}if(typeof global=="object"&&testGlobal(global)){$$$embind_global$$$=global}else if(typeof self=="object"&&testGlobal(self)){$$$embind_global$$$=self}if(typeof $$$embind_global$$$=="object"){return $$$embind_global$$$}throw Error("unable to get global object.")};var __emval_get_global=name=>{if(name===0){return Emval.toHandle(emval_get_global())}else{name=getStringOrSymbol(name);return Emval.toHandle(emval_get_global()[name])}};var __emval_get_property=(handle,key)=>{handle=Emval.toValue(handle);key=Emval.toValue(key);return Emval.toHandle(handle[key])};var __emval_incref=handle=>{if(handle>9){emval_handles[handle+1]+=1}};var __emval_instanceof=(object,constructor)=>{object=Emval.toValue(object);constructor=Emval.toValue(constructor);return object instanceof constructor};var __emval_new_cstring=v=>Emval.toHandle(getStringOrSymbol(v));var runDestructors=destructors=>{while(destructors.length){var ptr=destructors.pop();var del=destructors.pop();del(ptr)}};var __emval_run_destructors=handle=>{var destructors=Emval.toValue(handle);runDestructors(destructors);__emval_decref(handle)};var __emval_set_property=(handle,key,value)=>{handle=Emval.toValue(handle);key=Emval.toValue(key);value=Emval.toValue(value);handle[key]=value};var __emval_take_value=(type,arg)=>{type=requireRegisteredType(type,"_emval_take_value");var v=type["readValueFromPointer"](arg);return Emval.toHandle(v)};var __emval_typeof=handle=>{handle=Emval.toValue(handle);return Emval.toHandle(typeof handle)};var convertI32PairToI53Checked=(lo,hi)=>hi+2097152>>>0<4194305-!!lo?(lo>>>0)+hi*4294967296:NaN;function __gmtime_js(time_low,time_high,tmPtr){var time=convertI32PairToI53Checked(time_low,time_high);var date=new Date(time*1e3);HEAP32[tmPtr>>2]=date.getUTCSeconds();HEAP32[tmPtr+4>>2]=date.getUTCMinutes();HEAP32[tmPtr+8>>2]=date.getUTCHours();HEAP32[tmPtr+12>>2]=date.getUTCDate();HEAP32[tmPtr+16>>2]=date.getUTCMonth();HEAP32[tmPtr+20>>2]=date.getUTCFullYear()-1900;HEAP32[tmPtr+24>>2]=date.getUTCDay();var start=Date.UTC(date.getUTCFullYear(),0,1,0,0,0,0);var yday=(date.getTime()-start)/(1e3*60*60*24)|0;HEAP32[tmPtr+28>>2]=yday}var isLeapYear=year=>year%4===0&&(year%100!==0||year%400===0);var MONTH_DAYS_LEAP_CUMULATIVE=[0,31,60,91,121,152,182,213,244,274,305,335];var MONTH_DAYS_REGULAR_CUMULATIVE=[0,31,59,90,120,151,181,212,243,273,304,334];var ydayFromDate=date=>{var leap=isLeapYear(date.getFullYear());var monthDaysCumulative=leap?MONTH_DAYS_LEAP_CUMULATIVE:MONTH_DAYS_REGULAR_CUMULATIVE;var yday=monthDaysCumulative[date.getMonth()]+date.getDate()-1;return yday};function __localtime_js(time_low,time_high,tmPtr){var time=convertI32PairToI53Checked(time_low,time_high);var date=new Date(time*1e3);HEAP32[tmPtr>>2]=date.getSeconds();HEAP32[tmPtr+4>>2]=date.getMinutes();HEAP32[tmPtr+8>>2]=date.getHours();HEAP32[tmPtr+12>>2]=date.getDate();HEAP32[tmPtr+16>>2]=date.getMonth();HEAP32[tmPtr+20>>2]=date.getFullYear()-1900;HEAP32[tmPtr+24>>2]=date.getDay();var yday=ydayFromDate(date)|0;HEAP32[tmPtr+28>>2]=yday;HEAP32[tmPtr+36>>2]=-(date.getTimezoneOffset()*60);var start=new Date(date.getFullYear(),0,1);var summerOffset=new Date(date.getFullYear(),6,1).getTimezoneOffset();var winterOffset=start.getTimezoneOffset();var dst=(summerOffset!=winterOffset&&date.getTimezoneOffset()==Math.min(winterOffset,summerOffset))|0;HEAP32[tmPtr+32>>2]=dst}var setTempRet0=val=>__emscripten_tempret_set(val);var __mktime_js=function(tmPtr){var ret=(()=>{var date=new Date(HEAP32[tmPtr+20>>2]+1900,HEAP32[tmPtr+16>>2],HEAP32[tmPtr+12>>2],HEAP32[tmPtr+8>>2],HEAP32[tmPtr+4>>2],HEAP32[tmPtr>>2],0);var dst=HEAP32[tmPtr+32>>2];var guessedOffset=date.getTimezoneOffset();var start=new Date(date.getFullYear(),0,1);var summerOffset=new Date(date.getFullYear(),6,1).getTimezoneOffset();var winterOffset=start.getTimezoneOffset();var dstOffset=Math.min(winterOffset,summerOffset);if(dst<0){HEAP32[tmPtr+32>>2]=Number(summerOffset!=winterOffset&&dstOffset==guessedOffset)}else if(dst>0!=(dstOffset==guessedOffset)){var nonDstOffset=Math.max(winterOffset,summerOffset);var trueOffset=dst>0?dstOffset:nonDstOffset;date.setTime(date.getTime()+(trueOffset-guessedOffset)*6e4)}HEAP32[tmPtr+24>>2]=date.getDay();var yday=ydayFromDate(date)|0;HEAP32[tmPtr+28>>2]=yday;HEAP32[tmPtr>>2]=date.getSeconds();HEAP32[tmPtr+4>>2]=date.getMinutes();HEAP32[tmPtr+8>>2]=date.getHours();HEAP32[tmPtr+12>>2]=date.getDate();HEAP32[tmPtr+16>>2]=date.getMonth();HEAP32[tmPtr+20>>2]=date.getYear();var timeMs=date.getTime();if(isNaN(timeMs)){return-1}return timeMs/1e3})();return setTempRet0((tempDouble=ret,+Math.abs(tempDouble)>=1?tempDouble>0?+Math.floor(tempDouble/4294967296)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)),ret>>>0};function __mmap_js(len,prot,flags,fd,offset_low,offset_high,allocated,addr){var offset=convertI32PairToI53Checked(offset_low,offset_high);try{if(isNaN(offset))return 61;var stream=SYSCALLS.getStreamFromFD(fd);var res=FS.mmap(stream,len,offset,prot,flags);var ptr=res.ptr;HEAP32[allocated>>2]=res.allocated;HEAPU32[addr>>2]=ptr;return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}function __munmap_js(addr,len,prot,flags,fd,offset_low,offset_high){var offset=convertI32PairToI53Checked(offset_low,offset_high);try{var stream=SYSCALLS.getStreamFromFD(fd);if(prot&2){SYSCALLS.doMsync(addr,stream,len,flags,offset)}}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}var __tzset_js=(timezone,daylight,std_name,dst_name)=>{var currentYear=(new Date).getFullYear();var winter=new Date(currentYear,0,1);var summer=new Date(currentYear,6,1);var winterOffset=winter.getTimezoneOffset();var summerOffset=summer.getTimezoneOffset();var stdTimezoneOffset=Math.max(winterOffset,summerOffset);HEAPU32[timezone>>2]=stdTimezoneOffset*60;HEAP32[daylight>>2]=Number(winterOffset!=summerOffset);var extractZone=date=>date.toLocaleTimeString(undefined,{hour12:false,timeZoneName:"short"}).split(" ")[1];var winterName=extractZone(winter);var summerName=extractZone(summer);if(summerOffset{readEmAsmArgsArray.length=0;var ch;while(ch=HEAPU8[sigPtr++]){var wide=ch!=105;wide&=ch!=112;buf+=wide&&buf%8?4:0;readEmAsmArgsArray.push(ch==112?HEAPU32[buf>>2]:ch==105?HEAP32[buf>>2]:HEAPF64[buf>>3]);buf+=wide?8:4}return readEmAsmArgsArray};var runEmAsmFunction=(code,sigPtr,argbuf)=>{var args=readEmAsmArgs(sigPtr,argbuf);return ASM_CONSTS[code](...args)};var _emscripten_asm_const_int=(code,sigPtr,argbuf)=>runEmAsmFunction(code,sigPtr,argbuf);var _emscripten_date_now=()=>Date.now();var _emscripten_errn=(str,len)=>err(UTF8ToString(str,len));var getHeapMax=()=>2147483648;var _emscripten_get_heap_max=()=>getHeapMax();var _emscripten_has_asyncify=()=>0;var _emscripten_outn=(str,len)=>out(UTF8ToString(str,len));var _emscripten_pc_get_function=pc=>{abort("Cannot use emscripten_pc_get_function without -sUSE_OFFSET_CONVERTER");return 0};var growMemory=size=>{var b=wasmMemory.buffer;var pages=(size-b.byteLength+65535)/65536;try{wasmMemory.grow(pages);updateMemoryViews();return 1}catch(e){}};var _emscripten_resize_heap=requestedSize=>{var oldSize=HEAPU8.length;requestedSize>>>=0;var maxHeapSize=getHeapMax();if(requestedSize>maxHeapSize){return false}var alignUp=(x,multiple)=>x+(multiple-x%multiple)%multiple;for(var cutDown=1;cutDown<=4;cutDown*=2){var overGrownHeapSize=oldSize*(1+.2/cutDown);overGrownHeapSize=Math.min(overGrownHeapSize,requestedSize+100663296);var newSize=Math.min(maxHeapSize,alignUp(Math.max(requestedSize,overGrownHeapSize),65536));var replacement=growMemory(newSize);if(replacement){return true}}return false};var convertFrameToPC=frame=>{abort("Cannot use convertFrameToPC (needed by __builtin_return_address) without -sUSE_OFFSET_CONVERTER");return 0};var UNWIND_CACHE={};var saveInUnwindCache=callstack=>{callstack.forEach(frame=>{var pc=convertFrameToPC(frame);if(pc){UNWIND_CACHE[pc]=frame}})};function jsStackTrace(){return(new Error).stack.toString()}function _emscripten_stack_snapshot(){var callstack=jsStackTrace().split("\n");if(callstack[0]=="Error"){callstack.shift()}saveInUnwindCache(callstack);UNWIND_CACHE.last_addr=convertFrameToPC(callstack[3]);UNWIND_CACHE.last_stack=callstack;return UNWIND_CACHE.last_addr}var _emscripten_stack_unwind_buffer=(addr,buffer,count)=>{var stack;if(UNWIND_CACHE.last_addr==addr){stack=UNWIND_CACHE.last_stack}else{stack=jsStackTrace().split("\n");if(stack[0]=="Error"){stack.shift()}saveInUnwindCache(stack)}var offset=3;while(stack[offset]&&convertFrameToPC(stack[offset])!=addr){++offset}for(var i=0;i>2]=convertFrameToPC(stack[i+offset])}return i};var webgl_enable_ANGLE_instanced_arrays=ctx=>{var ext=ctx.getExtension("ANGLE_instanced_arrays");if(ext){ctx["vertexAttribDivisor"]=(index,divisor)=>ext["vertexAttribDivisorANGLE"](index,divisor);ctx["drawArraysInstanced"]=(mode,first,count,primcount)=>ext["drawArraysInstancedANGLE"](mode,first,count,primcount);ctx["drawElementsInstanced"]=(mode,count,type,indices,primcount)=>ext["drawElementsInstancedANGLE"](mode,count,type,indices,primcount);return 1}};var webgl_enable_OES_vertex_array_object=ctx=>{var ext=ctx.getExtension("OES_vertex_array_object");if(ext){ctx["createVertexArray"]=()=>ext["createVertexArrayOES"]();ctx["deleteVertexArray"]=vao=>ext["deleteVertexArrayOES"](vao);ctx["bindVertexArray"]=vao=>ext["bindVertexArrayOES"](vao);ctx["isVertexArray"]=vao=>ext["isVertexArrayOES"](vao);return 1}};var webgl_enable_WEBGL_draw_buffers=ctx=>{var ext=ctx.getExtension("WEBGL_draw_buffers");if(ext){ctx["drawBuffers"]=(n,bufs)=>ext["drawBuffersWEBGL"](n,bufs);return 1}};var webgl_enable_WEBGL_draw_instanced_base_vertex_base_instance=ctx=>!!(ctx.dibvbi=ctx.getExtension("WEBGL_draw_instanced_base_vertex_base_instance"));var webgl_enable_WEBGL_multi_draw_instanced_base_vertex_base_instance=ctx=>!!(ctx.mdibvbi=ctx.getExtension("WEBGL_multi_draw_instanced_base_vertex_base_instance"));var webgl_enable_WEBGL_multi_draw=ctx=>!!(ctx.multiDrawWebgl=ctx.getExtension("WEBGL_multi_draw"));var getEmscriptenSupportedExtensions=ctx=>{var supportedExtensions=["ANGLE_instanced_arrays","EXT_blend_minmax","EXT_disjoint_timer_query","EXT_frag_depth","EXT_shader_texture_lod","EXT_sRGB","OES_element_index_uint","OES_fbo_render_mipmap","OES_standard_derivatives","OES_texture_float","OES_texture_half_float","OES_texture_half_float_linear","OES_vertex_array_object","WEBGL_color_buffer_float","WEBGL_depth_texture","WEBGL_draw_buffers","EXT_color_buffer_float","EXT_conservative_depth","EXT_disjoint_timer_query_webgl2","EXT_texture_norm16","NV_shader_noperspective_interpolation","WEBGL_clip_cull_distance","EXT_color_buffer_half_float","EXT_depth_clamp","EXT_float_blend","EXT_texture_compression_bptc","EXT_texture_compression_rgtc","EXT_texture_filter_anisotropic","KHR_parallel_shader_compile","OES_texture_float_linear","WEBGL_blend_func_extended","WEBGL_compressed_texture_astc","WEBGL_compressed_texture_etc","WEBGL_compressed_texture_etc1","WEBGL_compressed_texture_s3tc","WEBGL_compressed_texture_s3tc_srgb","WEBGL_debug_renderer_info","WEBGL_debug_shaders","WEBGL_lose_context","WEBGL_multi_draw"];return(ctx.getSupportedExtensions()||[]).filter(ext=>supportedExtensions.includes(ext))};var GL={counter:1,buffers:[],mappedBuffers:{},programs:[],framebuffers:[],renderbuffers:[],textures:[],shaders:[],vaos:[],contexts:[],offscreenCanvases:{},queries:[],samplers:[],transformFeedbacks:[],syncs:[],byteSizeByTypeRoot:5120,byteSizeByType:[1,1,2,2,4,4,4,2,3,4,8],stringCache:{},stringiCache:{},unpackAlignment:4,unpackRowLength:0,recordError:errorCode=>{if(!GL.lastError){GL.lastError=errorCode}},getNewId:table=>{var ret=GL.counter++;for(var i=table.length;i{for(var i=0;i>2]=id}},MAX_TEMP_BUFFER_SIZE:2097152,numTempVertexBuffersPerSize:64,log2ceilLookup:i=>32-Math.clz32(i===0?0:i-1),generateTempBuffers:(quads,context)=>{var largestIndex=GL.log2ceilLookup(GL.MAX_TEMP_BUFFER_SIZE);context.tempVertexBufferCounters1=[];context.tempVertexBufferCounters2=[];context.tempVertexBufferCounters1.length=context.tempVertexBufferCounters2.length=largestIndex+1;context.tempVertexBuffers1=[];context.tempVertexBuffers2=[];context.tempVertexBuffers1.length=context.tempVertexBuffers2.length=largestIndex+1;context.tempIndexBuffers=[];context.tempIndexBuffers.length=largestIndex+1;for(var i=0;i<=largestIndex;++i){context.tempIndexBuffers[i]=null;context.tempVertexBufferCounters1[i]=context.tempVertexBufferCounters2[i]=0;var ringbufferLength=GL.numTempVertexBuffersPerSize;context.tempVertexBuffers1[i]=[];context.tempVertexBuffers2[i]=[];var ringbuffer1=context.tempVertexBuffers1[i];var ringbuffer2=context.tempVertexBuffers2[i];ringbuffer1.length=ringbuffer2.length=ringbufferLength;for(var j=0;j>1;var quadIndexes=new Uint16Array(numIndexes);var i=0,v=0;while(1){quadIndexes[i++]=v;if(i>=numIndexes)break;quadIndexes[i++]=v+1;if(i>=numIndexes)break;quadIndexes[i++]=v+2;if(i>=numIndexes)break;quadIndexes[i++]=v;if(i>=numIndexes)break;quadIndexes[i++]=v+2;if(i>=numIndexes)break;quadIndexes[i++]=v+3;if(i>=numIndexes)break;v+=4}context.GLctx.bufferData(34963,quadIndexes,35044);context.GLctx.bindBuffer(34963,null)}},getTempVertexBuffer:sizeBytes=>{var idx=GL.log2ceilLookup(sizeBytes);var ringbuffer=GL.currentContext.tempVertexBuffers1[idx];var nextFreeBufferIndex=GL.currentContext.tempVertexBufferCounters1[idx];GL.currentContext.tempVertexBufferCounters1[idx]=GL.currentContext.tempVertexBufferCounters1[idx]+1&GL.numTempVertexBuffersPerSize-1;var vbo=ringbuffer[nextFreeBufferIndex];if(vbo){return vbo}var prevVBO=GLctx.getParameter(34964);ringbuffer[nextFreeBufferIndex]=GLctx.createBuffer();GLctx.bindBuffer(34962,ringbuffer[nextFreeBufferIndex]);GLctx.bufferData(34962,1<{var idx=GL.log2ceilLookup(sizeBytes);var ibo=GL.currentContext.tempIndexBuffers[idx];if(ibo){return ibo}var prevIBO=GLctx.getParameter(34965);GL.currentContext.tempIndexBuffers[idx]=GLctx.createBuffer();GLctx.bindBuffer(34963,GL.currentContext.tempIndexBuffers[idx]);GLctx.bufferData(34963,1<{if(!GL.currentContext){return}var vb=GL.currentContext.tempVertexBuffers1;GL.currentContext.tempVertexBuffers1=GL.currentContext.tempVertexBuffers2;GL.currentContext.tempVertexBuffers2=vb;vb=GL.currentContext.tempVertexBufferCounters1;GL.currentContext.tempVertexBufferCounters1=GL.currentContext.tempVertexBufferCounters2;GL.currentContext.tempVertexBufferCounters2=vb;var largestIndex=GL.log2ceilLookup(GL.MAX_TEMP_BUFFER_SIZE);for(var i=0;i<=largestIndex;++i){GL.currentContext.tempVertexBufferCounters1[i]=0}},getSource:(shader,count,string,length)=>{var source="";for(var i=0;i>2]:undefined;source+=UTF8ToString(HEAPU32[string+i*4>>2],len)}return source},calcBufLength:(size,type,stride,count)=>{if(stride>0){return count*stride}var typeSize=GL.byteSizeByType[type-GL.byteSizeByTypeRoot];return size*typeSize*count},usedTempBuffers:[],preDrawHandleClientVertexAttribBindings:count=>{GL.resetBufferBinding=false;for(var i=0;i{if(GL.resetBufferBinding){GLctx.bindBuffer(34962,GL.buffers[GLctx.currentArrayBufferBinding])}},createContext:(canvas,webGLContextAttributes)=>{if(!canvas.getContextSafariWebGL2Fixed){canvas.getContextSafariWebGL2Fixed=canvas.getContext;function fixedGetContext(ver,attrs){var gl=canvas.getContextSafariWebGL2Fixed(ver,attrs);return ver=="webgl"==gl instanceof WebGLRenderingContext?gl:null}canvas.getContext=fixedGetContext}var ctx=webGLContextAttributes.majorVersion>1?canvas.getContext("webgl2",webGLContextAttributes):canvas.getContext("webgl",webGLContextAttributes);if(!ctx)return 0;var handle=GL.registerContext(ctx,webGLContextAttributes);return handle},registerContext:(ctx,webGLContextAttributes)=>{var handle=GL.getNewId(GL.contexts);var context={handle:handle,attributes:webGLContextAttributes,version:webGLContextAttributes.majorVersion,GLctx:ctx};if(ctx.canvas)ctx.canvas.GLctxObject=context;GL.contexts[handle]=context;if(typeof webGLContextAttributes.enableExtensionsByDefault=="undefined"||webGLContextAttributes.enableExtensionsByDefault){GL.initExtensions(context)}context.maxVertexAttribs=context.GLctx.getParameter(34921);context.clientBuffers=[];for(var i=0;i{GL.currentContext=GL.contexts[contextHandle];Module.ctx=GLctx=GL.currentContext?.GLctx;return!(contextHandle&&!GLctx)},getContext:contextHandle=>GL.contexts[contextHandle],deleteContext:contextHandle=>{if(GL.currentContext===GL.contexts[contextHandle]){GL.currentContext=null}if(typeof JSEvents=="object"){JSEvents.removeAllHandlersOnTarget(GL.contexts[contextHandle].GLctx.canvas)}if(GL.contexts[contextHandle]&&GL.contexts[contextHandle].GLctx.canvas){GL.contexts[contextHandle].GLctx.canvas.GLctxObject=undefined}GL.contexts[contextHandle]=null},initExtensions:context=>{context||=GL.currentContext;if(context.initExtensionsDone)return;context.initExtensionsDone=true;var GLctx=context.GLctx;webgl_enable_ANGLE_instanced_arrays(GLctx);webgl_enable_OES_vertex_array_object(GLctx);webgl_enable_WEBGL_draw_buffers(GLctx);webgl_enable_WEBGL_draw_instanced_base_vertex_base_instance(GLctx);webgl_enable_WEBGL_multi_draw_instanced_base_vertex_base_instance(GLctx);if(context.version>=2){GLctx.disjointTimerQueryExt=GLctx.getExtension("EXT_disjoint_timer_query_webgl2")}if(context.version<2||!GLctx.disjointTimerQueryExt){GLctx.disjointTimerQueryExt=GLctx.getExtension("EXT_disjoint_timer_query")}webgl_enable_WEBGL_multi_draw(GLctx);getEmscriptenSupportedExtensions(GLctx).forEach(ext=>{if(!ext.includes("lose_context")&&!ext.includes("debug")){GLctx.getExtension(ext)}})}};var JSEvents={removeAllEventListeners(){while(JSEvents.eventHandlers.length){JSEvents._removeHandler(JSEvents.eventHandlers.length-1)}JSEvents.deferredCalls=[]},inEventHandler:0,deferredCalls:[],deferCall(targetFunction,precedence,argsList){function arraysHaveEqualContent(arrA,arrB){if(arrA.length!=arrB.length)return false;for(var i in arrA){if(arrA[i]!=arrB[i])return false}return true}for(var call of JSEvents.deferredCalls){if(call.targetFunction==targetFunction&&arraysHaveEqualContent(call.argsList,argsList)){return}}JSEvents.deferredCalls.push({targetFunction:targetFunction,precedence:precedence,argsList:argsList});JSEvents.deferredCalls.sort((x,y)=>x.precedencecall.targetFunction!=targetFunction)},canPerformEventHandlerRequests(){if(navigator.userActivation){return navigator.userActivation.isActive}return JSEvents.inEventHandler&&JSEvents.currentEventHandler.allowsDeferredCalls},runDeferredCalls(){if(!JSEvents.canPerformEventHandlerRequests()){return}var deferredCalls=JSEvents.deferredCalls;JSEvents.deferredCalls=[];for(var call of deferredCalls){call.targetFunction(...call.argsList)}},eventHandlers:[],removeAllHandlersOnTarget:(target,eventTypeString)=>{for(var i=0;i{try{if(!target)return window;if(typeof target=="number")target=specialHTMLTargets[target]||UTF8ToString(target);if(target==="#window")return window;else if(target==="#document")return document;else if(target==="#screen")return screen;else if(target==="#canvas")return Module["canvas"];return typeof target=="string"?document.getElementById(target):target}catch(e){return null}};var findCanvasEventTarget=target=>{if(typeof target=="number")target=UTF8ToString(target);if(!target||target==="#canvas"){if(typeof GL!="undefined"&&GL.offscreenCanvases["canvas"])return GL.offscreenCanvases["canvas"];return Module["canvas"]}if(typeof GL!="undefined"&&GL.offscreenCanvases[target])return GL.offscreenCanvases[target];return findEventTarget(target)};var _emscripten_webgl_do_create_context=(target,attributes)=>{var attr32=attributes>>2;var powerPreference=HEAP32[attr32+(8>>2)];var contextAttributes={alpha:!!HEAP8[attributes+0],depth:!!HEAP8[attributes+1],stencil:!!HEAP8[attributes+2],antialias:!!HEAP8[attributes+3],premultipliedAlpha:!!HEAP8[attributes+4],preserveDrawingBuffer:!!HEAP8[attributes+5],powerPreference:webglPowerPreferences[powerPreference],failIfMajorPerformanceCaveat:!!HEAP8[attributes+12],majorVersion:HEAP32[attr32+(16>>2)],minorVersion:HEAP32[attr32+(20>>2)],enableExtensionsByDefault:HEAP8[attributes+24],explicitSwapControl:HEAP8[attributes+25],proxyContextToMainThread:HEAP32[attr32+(28>>2)],renderViaOffscreenBackBuffer:HEAP8[attributes+32]};var canvas=findCanvasEventTarget(target);if(!canvas){return 0}if(contextAttributes.explicitSwapControl){return 0}var contextHandle=GL.createContext(canvas,contextAttributes);return contextHandle};var _emscripten_webgl_create_context=_emscripten_webgl_do_create_context;var _emscripten_webgl_destroy_context=contextHandle=>{if(GL.currentContext==contextHandle)GL.currentContext=0;GL.deleteContext(contextHandle)};var _emscripten_webgl_get_context_attributes=(c,a)=>{if(!a)return-5;c=GL.contexts[c];if(!c)return-3;var t=c.GLctx;if(!t)return-3;t=t.getContextAttributes();HEAP8[a]=t.alpha;HEAP8[a+1]=t.depth;HEAP8[a+2]=t.stencil;HEAP8[a+3]=t.antialias;HEAP8[a+4]=t.premultipliedAlpha;HEAP8[a+5]=t.preserveDrawingBuffer;var power=t["powerPreference"]&&webglPowerPreferences.indexOf(t["powerPreference"]);HEAP32[a+8>>2]=power;HEAP8[a+12]=t.failIfMajorPerformanceCaveat;HEAP32[a+16>>2]=c.version;HEAP32[a+20>>2]=0;HEAP8[a+24]=c.attributes.enableExtensionsByDefault;return 0};var _emscripten_webgl_do_get_current_context=()=>GL.currentContext?GL.currentContext.handle:0;var _emscripten_webgl_get_current_context=_emscripten_webgl_do_get_current_context;var _emscripten_webgl_make_context_current=contextHandle=>{var success=GL.makeContextCurrent(contextHandle);return success?0:-5};var stackAlloc=sz=>__emscripten_stack_alloc(sz);var stringToUTF8OnStack=str=>{var size=lengthBytesUTF8(str)+1;var ret=stackAlloc(size);stringToUTF8(str,ret,size);return ret};var wasmTableMirror=[];var wasmTable;var getWasmTableEntry=funcPtr=>{var func=wasmTableMirror[funcPtr];if(!func){if(funcPtr>=wasmTableMirror.length)wasmTableMirror.length=funcPtr+1;wasmTableMirror[funcPtr]=func=wasmTable.get(funcPtr)}return func};var WebGPU={errorCallback:(callback,type,message,userdata)=>{var sp=stackSave();var messagePtr=stringToUTF8OnStack(message);getWasmTableEntry(callback)(type,messagePtr,userdata);stackRestore(sp)},initManagers:()=>{if(WebGPU.mgrDevice)return;function Manager(){this.objects={};this.nextId=1;this.create=function(object,wrapper={}){var id=this.nextId++;wrapper.refcount=1;wrapper.object=object;this.objects[id]=wrapper;return id};this.get=function(id){if(!id)return undefined;var o=this.objects[id];return o.object};this.reference=function(id){var o=this.objects[id];o.refcount++};this.release=function(id){var o=this.objects[id];o.refcount--;if(o.refcount<=0){delete this.objects[id]}}}WebGPU.mgrSurface=WebGPU.mgrSurface||new Manager;WebGPU.mgrSwapChain=WebGPU.mgrSwapChain||new Manager;WebGPU.mgrAdapter=WebGPU.mgrAdapter||new Manager;WebGPU.mgrDevice=WebGPU.mgrDevice||new Manager;WebGPU.mgrQueue=WebGPU.mgrQueue||new Manager;WebGPU.mgrCommandBuffer=WebGPU.mgrCommandBuffer||new Manager;WebGPU.mgrCommandEncoder=WebGPU.mgrCommandEncoder||new Manager;WebGPU.mgrRenderPassEncoder=WebGPU.mgrRenderPassEncoder||new Manager;WebGPU.mgrComputePassEncoder=WebGPU.mgrComputePassEncoder||new Manager;WebGPU.mgrBindGroup=WebGPU.mgrBindGroup||new Manager;WebGPU.mgrBuffer=WebGPU.mgrBuffer||new Manager;WebGPU.mgrSampler=WebGPU.mgrSampler||new Manager;WebGPU.mgrTexture=WebGPU.mgrTexture||new Manager;WebGPU.mgrTextureView=WebGPU.mgrTextureView||new Manager;WebGPU.mgrQuerySet=WebGPU.mgrQuerySet||new Manager;WebGPU.mgrBindGroupLayout=WebGPU.mgrBindGroupLayout||new Manager;WebGPU.mgrPipelineLayout=WebGPU.mgrPipelineLayout||new Manager;WebGPU.mgrRenderPipeline=WebGPU.mgrRenderPipeline||new Manager;WebGPU.mgrComputePipeline=WebGPU.mgrComputePipeline||new Manager;WebGPU.mgrShaderModule=WebGPU.mgrShaderModule||new Manager;WebGPU.mgrRenderBundleEncoder=WebGPU.mgrRenderBundleEncoder||new Manager;WebGPU.mgrRenderBundle=WebGPU.mgrRenderBundle||new Manager},makeColor:ptr=>({r:HEAPF64[ptr>>3],g:HEAPF64[ptr+8>>3],b:HEAPF64[ptr+16>>3],a:HEAPF64[ptr+24>>3]}),makeExtent3D:ptr=>({width:HEAPU32[ptr>>2],height:HEAPU32[ptr+4>>2],depthOrArrayLayers:HEAPU32[ptr+8>>2]}),makeOrigin3D:ptr=>({x:HEAPU32[ptr>>2],y:HEAPU32[ptr+4>>2],z:HEAPU32[ptr+8>>2]}),makeImageCopyTexture:ptr=>({texture:WebGPU.mgrTexture.get(HEAPU32[ptr+4>>2]),mipLevel:HEAPU32[ptr+8>>2],origin:WebGPU.makeOrigin3D(ptr+12),aspect:WebGPU.TextureAspect[HEAPU32[ptr+24>>2]]}),makeTextureDataLayout:ptr=>{var bytesPerRow=HEAPU32[ptr+16>>2];var rowsPerImage=HEAPU32[ptr+20>>2];return{offset:HEAPU32[ptr+4+8>>2]*4294967296+HEAPU32[ptr+8>>2],bytesPerRow:bytesPerRow===4294967295?undefined:bytesPerRow,rowsPerImage:rowsPerImage===4294967295?undefined:rowsPerImage}},makeImageCopyBuffer:ptr=>{var layoutPtr=ptr+8;var bufferCopyView=WebGPU.makeTextureDataLayout(layoutPtr);bufferCopyView["buffer"]=WebGPU.mgrBuffer.get(HEAPU32[ptr+32>>2]);return bufferCopyView},makePipelineConstants:(constantCount,constantsPtr)=>{if(!constantCount)return;var constants={};for(var i=0;i>2]);constants[key]=HEAPF64[entryPtr+8>>3]}return constants},makePipelineLayout:layoutPtr=>{if(!layoutPtr)return"auto";return WebGPU.mgrPipelineLayout.get(layoutPtr)},makeProgrammableStageDescriptor:ptr=>{if(!ptr)return undefined;var desc={module:WebGPU.mgrShaderModule.get(HEAPU32[ptr+4>>2]),constants:WebGPU.makePipelineConstants(HEAPU32[ptr+12>>2],HEAPU32[ptr+16>>2])};var entryPointPtr=HEAPU32[ptr+8>>2];if(entryPointPtr)desc["entryPoint"]=UTF8ToString(entryPointPtr);return desc},fillLimitStruct:(limits,supportedLimitsOutPtr)=>{var limitsOutPtr=supportedLimitsOutPtr+8;function setLimitValueU32(name,limitOffset){var limitValue=limits[name];HEAP32[limitsOutPtr+limitOffset>>2]=limitValue}function setLimitValueU64(name,limitOffset){var limitValue=limits[name];tempI64=[limitValue>>>0,(tempDouble=limitValue,+Math.abs(tempDouble)>=1?tempDouble>0?+Math.floor(tempDouble/4294967296)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[limitsOutPtr+limitOffset>>2]=tempI64[0],HEAP32[limitsOutPtr+(limitOffset+4)>>2]=tempI64[1]}setLimitValueU32("maxTextureDimension1D",0);setLimitValueU32("maxTextureDimension2D",4);setLimitValueU32("maxTextureDimension3D",8);setLimitValueU32("maxTextureArrayLayers",12);setLimitValueU32("maxBindGroups",16);setLimitValueU32("maxBindGroupsPlusVertexBuffers",20);setLimitValueU32("maxBindingsPerBindGroup",24);setLimitValueU32("maxDynamicUniformBuffersPerPipelineLayout",28);setLimitValueU32("maxDynamicStorageBuffersPerPipelineLayout",32);setLimitValueU32("maxSampledTexturesPerShaderStage",36);setLimitValueU32("maxSamplersPerShaderStage",40);setLimitValueU32("maxStorageBuffersPerShaderStage",44);setLimitValueU32("maxStorageTexturesPerShaderStage",48);setLimitValueU32("maxUniformBuffersPerShaderStage",52);setLimitValueU32("minUniformBufferOffsetAlignment",72);setLimitValueU32("minStorageBufferOffsetAlignment",76);setLimitValueU64("maxUniformBufferBindingSize",56);setLimitValueU64("maxStorageBufferBindingSize",64);setLimitValueU32("maxVertexBuffers",80);setLimitValueU32("maxBufferSize",88);setLimitValueU32("maxVertexAttributes",96);setLimitValueU32("maxVertexBufferArrayStride",100);setLimitValueU32("maxInterStageShaderComponents",104);setLimitValueU32("maxInterStageShaderVariables",108);setLimitValueU32("maxColorAttachments",112);setLimitValueU32("maxColorAttachmentBytesPerSample",116);setLimitValueU32("maxComputeWorkgroupStorageSize",120);setLimitValueU32("maxComputeInvocationsPerWorkgroup",124);setLimitValueU32("maxComputeWorkgroupSizeX",128);setLimitValueU32("maxComputeWorkgroupSizeY",132);setLimitValueU32("maxComputeWorkgroupSizeZ",136);setLimitValueU32("maxComputeWorkgroupsPerDimension",140)},Int_BufferMapState:{unmapped:0,pending:1,mapped:2},Int_CompilationMessageType:{error:0,warning:1,info:2},Int_DeviceLostReason:{undefined:1,unknown:1,destroyed:2},Int_PreferredFormat:{rgba8unorm:18,bgra8unorm:23},WGSLFeatureName:[,"readonly_and_readwrite_storage_textures","packed_4x8_integer_dot_product","unrestricted_pointer_parameters","pointer_composite_access"],AddressMode:[,"clamp-to-edge","repeat","mirror-repeat"],BlendFactor:[,"zero","one","src","one-minus-src","src-alpha","one-minus-src-alpha","dst","one-minus-dst","dst-alpha","one-minus-dst-alpha","src-alpha-saturated","constant","one-minus-constant"],BlendOperation:[,"add","subtract","reverse-subtract","min","max"],BufferBindingType:[,"uniform","storage","read-only-storage"],BufferMapState:{1:"unmapped",2:"pending",3:"mapped"},CompareFunction:[,"never","less","equal","less-equal","greater","not-equal","greater-equal","always"],CompilationInfoRequestStatus:["success","error","device-lost","unknown"],CullMode:[,"none","front","back"],ErrorFilter:{1:"validation",2:"out-of-memory",3:"internal"},FeatureName:[,"depth-clip-control","depth32float-stencil8","timestamp-query","texture-compression-bc","texture-compression-etc2","texture-compression-astc","indirect-first-instance","shader-f16","rg11b10ufloat-renderable","bgra8unorm-storage","float32-filterable"],FilterMode:[,"nearest","linear"],FrontFace:[,"ccw","cw"],IndexFormat:[,"uint16","uint32"],LoadOp:[,"clear","load"],MipmapFilterMode:[,"nearest","linear"],PowerPreference:[,"low-power","high-performance"],PrimitiveTopology:[,"point-list","line-list","line-strip","triangle-list","triangle-strip"],QueryType:{1:"occlusion",2:"timestamp"},SamplerBindingType:[,"filtering","non-filtering","comparison"],StencilOperation:[,"keep","zero","replace","invert","increment-clamp","decrement-clamp","increment-wrap","decrement-wrap"],StorageTextureAccess:[,"write-only","read-only","read-write"],StoreOp:[,"store","discard"],TextureAspect:[,"all","stencil-only","depth-only"],TextureDimension:[,"1d","2d","3d"],TextureFormat:[,"r8unorm","r8snorm","r8uint","r8sint","r16uint","r16sint","r16float","rg8unorm","rg8snorm","rg8uint","rg8sint","r32float","r32uint","r32sint","rg16uint","rg16sint","rg16float","rgba8unorm","rgba8unorm-srgb","rgba8snorm","rgba8uint","rgba8sint","bgra8unorm","bgra8unorm-srgb","rgb10a2uint","rgb10a2unorm","rg11b10ufloat","rgb9e5ufloat","rg32float","rg32uint","rg32sint","rgba16uint","rgba16sint","rgba16float","rgba32float","rgba32uint","rgba32sint","stencil8","depth16unorm","depth24plus","depth24plus-stencil8","depth32float","depth32float-stencil8","bc1-rgba-unorm","bc1-rgba-unorm-srgb","bc2-rgba-unorm","bc2-rgba-unorm-srgb","bc3-rgba-unorm","bc3-rgba-unorm-srgb","bc4-r-unorm","bc4-r-snorm","bc5-rg-unorm","bc5-rg-snorm","bc6h-rgb-ufloat","bc6h-rgb-float","bc7-rgba-unorm","bc7-rgba-unorm-srgb","etc2-rgb8unorm","etc2-rgb8unorm-srgb","etc2-rgb8a1unorm","etc2-rgb8a1unorm-srgb","etc2-rgba8unorm","etc2-rgba8unorm-srgb","eac-r11unorm","eac-r11snorm","eac-rg11unorm","eac-rg11snorm","astc-4x4-unorm","astc-4x4-unorm-srgb","astc-5x4-unorm","astc-5x4-unorm-srgb","astc-5x5-unorm","astc-5x5-unorm-srgb","astc-6x5-unorm","astc-6x5-unorm-srgb","astc-6x6-unorm","astc-6x6-unorm-srgb","astc-8x5-unorm","astc-8x5-unorm-srgb","astc-8x6-unorm","astc-8x6-unorm-srgb","astc-8x8-unorm","astc-8x8-unorm-srgb","astc-10x5-unorm","astc-10x5-unorm-srgb","astc-10x6-unorm","astc-10x6-unorm-srgb","astc-10x8-unorm","astc-10x8-unorm-srgb","astc-10x10-unorm","astc-10x10-unorm-srgb","astc-12x10-unorm","astc-12x10-unorm-srgb","astc-12x12-unorm","astc-12x12-unorm-srgb"],TextureSampleType:[,"float","unfilterable-float","depth","sint","uint"],TextureViewDimension:[,"1d","2d","2d-array","cube","cube-array","3d"],VertexFormat:[,"uint8x2","uint8x4","sint8x2","sint8x4","unorm8x2","unorm8x4","snorm8x2","snorm8x4","uint16x2","uint16x4","sint16x2","sint16x4","unorm16x2","unorm16x4","snorm16x2","snorm16x4","float16x2","float16x4","float32","float32x2","float32x3","float32x4","uint32","uint32x2","uint32x3","uint32x4","sint32","sint32x2","sint32x3","sint32x4","unorm10-10-10-2"],VertexStepMode:[,"vertex-buffer-not-used","vertex","instance"],FeatureNameString2Enum:{undefined:"0","depth-clip-control":"1","depth32float-stencil8":"2","timestamp-query":"3","texture-compression-bc":"4","texture-compression-etc2":"5","texture-compression-astc":"6","indirect-first-instance":"7","shader-f16":"8","rg11b10ufloat-renderable":"9","bgra8unorm-storage":"10","float32-filterable":"11"}};var JsValStore={values:{},next_id:1,add(js_val){var id;do{id=JsValStore.next_id++;if(JsValStore.next_id>2147483647)JsValStore.next_id=1}while(id in JsValStore.values);JsValStore.values[id]=js_val;return id},remove(id){delete JsValStore.values[id]},get(id){return JsValStore.values[id]}};var _emscripten_webgpu_export_bind_group_layout=handle=>JsValStore.add(WebGPU.mgrBindGroupLayout.get(handle));var _emscripten_webgpu_export_device=handle=>JsValStore.add(WebGPU.mgrDevice.get(handle));var _emscripten_webgpu_export_sampler=handle=>JsValStore.add(WebGPU.mgrSampler.get(handle));var _emscripten_webgpu_export_texture=handle=>JsValStore.add(WebGPU.mgrTexture.get(handle));var _emscripten_webgpu_get_device=()=>{if(WebGPU.preinitializedDeviceId===undefined){var device=Module["preinitializedWebGPUDevice"];var deviceWrapper={queueId:WebGPU.mgrQueue.create(device["queue"])};WebGPU.preinitializedDeviceId=WebGPU.mgrDevice.create(device,deviceWrapper)}WebGPU.mgrDevice.reference(WebGPU.preinitializedDeviceId);return WebGPU.preinitializedDeviceId};var _emscripten_webgpu_import_bind_group=handle=>WebGPU.mgrBindGroup.create(JsValStore.get(handle));var _emscripten_webgpu_import_texture=handle=>WebGPU.mgrTexture.create(JsValStore.get(handle));var _emscripten_webgpu_release_js_handle=id=>JsValStore.remove(id);var ENV={};var getExecutableName=()=>thisProgram||"./this.program";var getEnvStrings=()=>{if(!getEnvStrings.strings){var lang=(typeof navigator=="object"&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8";var env={USER:"web_user",LOGNAME:"web_user",PATH:"/",PWD:"/",HOME:"/home/web_user",LANG:lang,_:getExecutableName()};for(var x in ENV){if(ENV[x]===undefined)delete env[x];else env[x]=ENV[x]}var strings=[];for(var x in env){strings.push(`${x}=${env[x]}`)}getEnvStrings.strings=strings}return getEnvStrings.strings};var stringToAscii=(str,buffer)=>{for(var i=0;i{var bufSize=0;getEnvStrings().forEach((string,i)=>{var ptr=environ_buf+bufSize;HEAPU32[__environ+i*4>>2]=ptr;stringToAscii(string,ptr);bufSize+=string.length+1});return 0};var _environ_sizes_get=(penviron_count,penviron_buf_size)=>{var strings=getEnvStrings();HEAPU32[penviron_count>>2]=strings.length;var bufSize=0;strings.forEach(string=>bufSize+=string.length+1);HEAPU32[penviron_buf_size>>2]=bufSize;return 0};function _fd_close(fd){try{var stream=SYSCALLS.getStreamFromFD(fd);FS.close(stream);return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return e.errno}}var doReadv=(stream,iov,iovcnt,offset)=>{var ret=0;for(var i=0;i>2];var len=HEAPU32[iov+4>>2];iov+=8;var curr=FS.read(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr;if(curr>2]=num;return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return e.errno}}function _fd_seek(fd,offset_low,offset_high,whence,newOffset){var offset=convertI32PairToI53Checked(offset_low,offset_high);try{if(isNaN(offset))return 61;var stream=SYSCALLS.getStreamFromFD(fd);FS.llseek(stream,offset,whence);tempI64=[stream.position>>>0,(tempDouble=stream.position,+Math.abs(tempDouble)>=1?tempDouble>0?+Math.floor(tempDouble/4294967296)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[newOffset>>2]=tempI64[0],HEAP32[newOffset+4>>2]=tempI64[1];if(stream.getdents&&offset===0&&whence===0)stream.getdents=null;return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return e.errno}}var doWritev=(stream,iov,iovcnt,offset)=>{var ret=0;for(var i=0;i>2];var len=HEAPU32[iov+4>>2];iov+=8;var curr=FS.write(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr;if(typeof offset!="undefined"){offset+=curr}}return ret};function _fd_write(fd,iov,iovcnt,pnum){try{var stream=SYSCALLS.getStreamFromFD(fd);var num=doWritev(stream,iov,iovcnt);HEAPU32[pnum>>2]=num;return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return e.errno}}var _getentropy=(buffer,size)=>{randomFill(HEAPU8.subarray(buffer,buffer+size));return 0};var _glActiveTexture=x0=>GLctx.activeTexture(x0);var _glAttachShader=(program,shader)=>{GLctx.attachShader(GL.programs[program],GL.shaders[shader])};var _glBindAttribLocation=(program,index,name)=>{GLctx.bindAttribLocation(GL.programs[program],index,UTF8ToString(name))};var _glBindBuffer=(target,buffer)=>{if(target==34962){GLctx.currentArrayBufferBinding=buffer}else if(target==34963){GLctx.currentElementArrayBufferBinding=buffer}if(target==35051){GLctx.currentPixelPackBufferBinding=buffer}else if(target==35052){GLctx.currentPixelUnpackBufferBinding=buffer}GLctx.bindBuffer(target,GL.buffers[buffer])};var _glBindBufferBase=(target,index,buffer)=>{GLctx.bindBufferBase(target,index,GL.buffers[buffer])};var _glBindFramebuffer=(target,framebuffer)=>{GLctx.bindFramebuffer(target,GL.framebuffers[framebuffer])};var _glBindTexture=(target,texture)=>{GLctx.bindTexture(target,GL.textures[texture])};var _glBindVertexArray=vao=>{GLctx.bindVertexArray(GL.vaos[vao]);var ibo=GLctx.getParameter(34965);GLctx.currentElementArrayBufferBinding=ibo?ibo.name|0:0};var _glBlendEquation=x0=>GLctx.blendEquation(x0);var _glBlendFunc=(x0,x1)=>GLctx.blendFunc(x0,x1);var _glBufferData=(target,size,data,usage)=>{if(GL.currentContext.version>=2){if(data&&size){GLctx.bufferData(target,HEAPU8,usage,data,size)}else{GLctx.bufferData(target,size,usage)}return}GLctx.bufferData(target,data?HEAPU8.subarray(data,data+size):size,usage)};var _glClear=x0=>GLctx.clear(x0);var _glClearColor=(x0,x1,x2,x3)=>GLctx.clearColor(x0,x1,x2,x3);var convertI32PairToI53=(lo,hi)=>(lo>>>0)+hi*4294967296;var _glClientWaitSync=(sync,flags,timeout_low,timeout_high)=>{var timeout=convertI32PairToI53(timeout_low,timeout_high);return GLctx.clientWaitSync(GL.syncs[sync],flags,timeout)};var _glCompileShader=shader=>{GLctx.compileShader(GL.shaders[shader])};var _glCreateProgram=()=>{var id=GL.getNewId(GL.programs);var program=GLctx.createProgram();program.name=id;program.maxUniformLength=program.maxAttributeLength=program.maxUniformBlockNameLength=0;program.uniformIdCounter=1;GL.programs[id]=program;return id};var _glCreateShader=shaderType=>{var id=GL.getNewId(GL.shaders);GL.shaders[id]=GLctx.createShader(shaderType);return id};var _glDeleteBuffers=(n,buffers)=>{for(var i=0;i>2];var buffer=GL.buffers[id];if(!buffer)continue;GLctx.deleteBuffer(buffer);buffer.name=0;GL.buffers[id]=null;if(id==GLctx.currentArrayBufferBinding)GLctx.currentArrayBufferBinding=0;if(id==GLctx.currentElementArrayBufferBinding)GLctx.currentElementArrayBufferBinding=0;if(id==GLctx.currentPixelPackBufferBinding)GLctx.currentPixelPackBufferBinding=0;if(id==GLctx.currentPixelUnpackBufferBinding)GLctx.currentPixelUnpackBufferBinding=0}};var _glDeleteFramebuffers=(n,framebuffers)=>{for(var i=0;i>2];var framebuffer=GL.framebuffers[id];if(!framebuffer)continue;GLctx.deleteFramebuffer(framebuffer);framebuffer.name=0;GL.framebuffers[id]=null}};var _glDeleteProgram=id=>{if(!id)return;var program=GL.programs[id];if(!program){GL.recordError(1281);return}GLctx.deleteProgram(program);program.name=0;GL.programs[id]=null};var _glDeleteShader=id=>{if(!id)return;var shader=GL.shaders[id];if(!shader){GL.recordError(1281);return}GLctx.deleteShader(shader);GL.shaders[id]=null};var _glDeleteSync=id=>{if(!id)return;var sync=GL.syncs[id];if(!sync){GL.recordError(1281);return}GLctx.deleteSync(sync);sync.name=0;GL.syncs[id]=null};var _glDeleteTextures=(n,textures)=>{for(var i=0;i>2];var texture=GL.textures[id];if(!texture)continue;GLctx.deleteTexture(texture);texture.name=0;GL.textures[id]=null}};var _glDeleteVertexArrays=(n,vaos)=>{for(var i=0;i>2];GLctx.deleteVertexArray(GL.vaos[id]);GL.vaos[id]=null}};var _glDetachShader=(program,shader)=>{GLctx.detachShader(GL.programs[program],GL.shaders[shader])};var _glDisable=x0=>GLctx.disable(x0);var _glDisableVertexAttribArray=index=>{var cb=GL.currentContext.clientBuffers[index];cb.enabled=false;GLctx.disableVertexAttribArray(index)};var _glDrawArrays=(mode,first,count)=>{GL.preDrawHandleClientVertexAttribBindings(first+count);GLctx.drawArrays(mode,first,count);GL.postDrawHandleClientVertexAttribBindings()};var tempFixedLengthArray=[];var _glDrawBuffers=(n,bufs)=>{var bufArray=tempFixedLengthArray[n];for(var i=0;i>2]}GLctx.drawBuffers(bufArray)};var _glEnable=x0=>GLctx.enable(x0);var _glEnableVertexAttribArray=index=>{var cb=GL.currentContext.clientBuffers[index];cb.enabled=true;GLctx.enableVertexAttribArray(index)};var _glFenceSync=(condition,flags)=>{var sync=GLctx.fenceSync(condition,flags);if(sync){var id=GL.getNewId(GL.syncs);sync.name=id;GL.syncs[id]=sync;return id}return 0};var _glFinish=()=>GLctx.finish();var _glFlush=()=>GLctx.flush();var _glFramebufferTexture2D=(target,attachment,textarget,texture,level)=>{GLctx.framebufferTexture2D(target,attachment,textarget,GL.textures[texture],level)};var _glFramebufferTextureLayer=(target,attachment,texture,level,layer)=>{GLctx.framebufferTextureLayer(target,attachment,GL.textures[texture],level,layer)};var _glGenBuffers=(n,buffers)=>{GL.genObject(n,buffers,"createBuffer",GL.buffers)};var _glGenFramebuffers=(n,ids)=>{GL.genObject(n,ids,"createFramebuffer",GL.framebuffers)};var _glGenTextures=(n,textures)=>{GL.genObject(n,textures,"createTexture",GL.textures)};var _glGenVertexArrays=(n,arrays)=>{GL.genObject(n,arrays,"createVertexArray",GL.vaos)};var _glGetAttribLocation=(program,name)=>GLctx.getAttribLocation(GL.programs[program],UTF8ToString(name));var _glGetError=()=>{var error=GLctx.getError()||GL.lastError;GL.lastError=0;return error};var writeI53ToI64=(ptr,num)=>{HEAPU32[ptr>>2]=num;var lower=HEAPU32[ptr>>2];HEAPU32[ptr+4>>2]=(num-lower)/4294967296};var webglGetExtensions=function $webglGetExtensions(){var exts=getEmscriptenSupportedExtensions(GLctx);exts=exts.concat(exts.map(e=>"GL_"+e));return exts};var emscriptenWebGLGet=(name_,p,type)=>{if(!p){GL.recordError(1281);return}var ret=undefined;switch(name_){case 36346:ret=1;break;case 36344:if(type!=0&&type!=1){GL.recordError(1280)}return;case 34814:case 36345:ret=0;break;case 34466:var formats=GLctx.getParameter(34467);ret=formats?formats.length:0;break;case 33309:if(GL.currentContext.version<2){GL.recordError(1282);return}ret=webglGetExtensions().length;break;case 33307:case 33308:if(GL.currentContext.version<2){GL.recordError(1280);return}ret=name_==33307?3:0;break}if(ret===undefined){var result=GLctx.getParameter(name_);switch(typeof result){case"number":ret=result;break;case"boolean":ret=result?1:0;break;case"string":GL.recordError(1280);return;case"object":if(result===null){switch(name_){case 34964:case 35725:case 34965:case 36006:case 36007:case 32873:case 34229:case 36662:case 36663:case 35053:case 35055:case 36010:case 35097:case 35869:case 32874:case 36389:case 35983:case 35368:case 34068:{ret=0;break}default:{GL.recordError(1280);return}}}else if(result instanceof Float32Array||result instanceof Uint32Array||result instanceof Int32Array||result instanceof Array){for(var i=0;i>2]=result[i];break;case 2:HEAPF32[p+i*4>>2]=result[i];break;case 4:HEAP8[p+i]=result[i]?1:0;break}}return}else{try{ret=result.name|0}catch(e){GL.recordError(1280);err(`GL_INVALID_ENUM in glGet${type}v: Unknown object returned from WebGL getParameter(${name_})! (error: ${e})`);return}}break;default:GL.recordError(1280);err(`GL_INVALID_ENUM in glGet${type}v: Native code calling glGet${type}v(${name_}) and it returns ${result} of type ${typeof result}!`);return}}switch(type){case 1:writeI53ToI64(p,ret);break;case 0:HEAP32[p>>2]=ret;break;case 2:HEAPF32[p>>2]=ret;break;case 4:HEAP8[p]=ret?1:0;break}};var _glGetIntegerv=(name_,p)=>emscriptenWebGLGet(name_,p,0);var _glGetProgramiv=(program,pname,p)=>{if(!p){GL.recordError(1281);return}if(program>=GL.counter){GL.recordError(1281);return}program=GL.programs[program];if(pname==35716){var log=GLctx.getProgramInfoLog(program);if(log===null)log="(unknown error)";HEAP32[p>>2]=log.length+1}else if(pname==35719){if(!program.maxUniformLength){for(var i=0;i>2]=program.maxUniformLength}else if(pname==35722){if(!program.maxAttributeLength){for(var i=0;i>2]=program.maxAttributeLength}else if(pname==35381){if(!program.maxUniformBlockNameLength){for(var i=0;i>2]=program.maxUniformBlockNameLength}else{HEAP32[p>>2]=GLctx.getProgramParameter(program,pname)}};var _glGetShaderInfoLog=(shader,maxLength,length,infoLog)=>{var log=GLctx.getShaderInfoLog(GL.shaders[shader]);if(log===null)log="(unknown error)";var numBytesWrittenExclNull=maxLength>0&&infoLog?stringToUTF8(log,infoLog,maxLength):0;if(length)HEAP32[length>>2]=numBytesWrittenExclNull};var _glGetShaderiv=(shader,pname,p)=>{if(!p){GL.recordError(1281);return}if(pname==35716){var log=GLctx.getShaderInfoLog(GL.shaders[shader]);if(log===null)log="(unknown error)";var logLength=log?log.length+1:0;HEAP32[p>>2]=logLength}else if(pname==35720){var source=GLctx.getShaderSource(GL.shaders[shader]);var sourceLength=source?source.length+1:0;HEAP32[p>>2]=sourceLength}else{HEAP32[p>>2]=GLctx.getShaderParameter(GL.shaders[shader],pname)}};var stringToNewUTF8=str=>{var size=lengthBytesUTF8(str)+1;var ret=_malloc(size);if(ret)stringToUTF8(str,ret,size);return ret};var _glGetString=name_=>{var ret=GL.stringCache[name_];if(!ret){switch(name_){case 7939:ret=stringToNewUTF8(webglGetExtensions().join(" "));break;case 7936:case 7937:case 37445:case 37446:var s=GLctx.getParameter(name_);if(!s){GL.recordError(1280)}ret=s?stringToNewUTF8(s):0;break;case 7938:var glVersion=GLctx.getParameter(7938);if(GL.currentContext.version>=2)glVersion=`OpenGL ES 3.0 (${glVersion})`;else{glVersion=`OpenGL ES 2.0 (${glVersion})`}ret=stringToNewUTF8(glVersion);break;case 35724:var glslVersion=GLctx.getParameter(35724);var ver_re=/^WebGL GLSL ES ([0-9]\.[0-9][0-9]?)(?:$| .*)/;var ver_num=glslVersion.match(ver_re);if(ver_num!==null){if(ver_num[1].length==3)ver_num[1]=ver_num[1]+"0";glslVersion=`OpenGL ES GLSL ES ${ver_num[1]} (${glslVersion})`}ret=stringToNewUTF8(glslVersion);break;default:GL.recordError(1280)}GL.stringCache[name_]=ret}return ret};var _glGetUniformBlockIndex=(program,uniformBlockName)=>GLctx.getUniformBlockIndex(GL.programs[program],UTF8ToString(uniformBlockName));var jstoi_q=str=>parseInt(str);var webglGetLeftBracePos=name=>name.slice(-1)=="]"&&name.lastIndexOf("[");var webglPrepareUniformLocationsBeforeFirstUse=program=>{var uniformLocsById=program.uniformLocsById,uniformSizeAndIdsByName=program.uniformSizeAndIdsByName,i,j;if(!uniformLocsById){program.uniformLocsById=uniformLocsById={};program.uniformArrayNamesById={};for(i=0;i0?nm.slice(0,lb):nm;var id=program.uniformIdCounter;program.uniformIdCounter+=sz;uniformSizeAndIdsByName[arrayName]=[sz,id];for(j=0;j{name=UTF8ToString(name);if(program=GL.programs[program]){webglPrepareUniformLocationsBeforeFirstUse(program);var uniformLocsById=program.uniformLocsById;var arrayIndex=0;var uniformBaseName=name;var leftBrace=webglGetLeftBracePos(name);if(leftBrace>0){arrayIndex=jstoi_q(name.slice(leftBrace+1))>>>0;uniformBaseName=name.slice(0,leftBrace)}var sizeAndId=program.uniformSizeAndIdsByName[uniformBaseName];if(sizeAndId&&arrayIndex{program=GL.programs[program];GLctx.linkProgram(program);program.uniformLocsById=0;program.uniformSizeAndIdsByName={}};var _glPixelStorei=(pname,param)=>{if(pname==3317){GL.unpackAlignment=param}else if(pname==3314){GL.unpackRowLength=param}GLctx.pixelStorei(pname,param)};var computeUnpackAlignedImageSize=(width,height,sizePerPixel)=>{function roundedToNextMultipleOf(x,y){return x+y-1&-y}var plainRowSize=(GL.unpackRowLength||width)*sizePerPixel;var alignedRowSize=roundedToNextMultipleOf(plainRowSize,GL.unpackAlignment);return height*alignedRowSize};var colorChannelsInGlTextureFormat=format=>{var colorChannels={5:3,6:4,8:2,29502:3,29504:4,26917:2,26918:2,29846:3,29847:4};return colorChannels[format-6402]||1};var heapObjectForWebGLType=type=>{type-=5120;if(type==0)return HEAP8;if(type==1)return HEAPU8;if(type==2)return HEAP16;if(type==4)return HEAP32;if(type==6)return HEAPF32;if(type==5||type==28922||type==28520||type==30779||type==30782)return HEAPU32;return HEAPU16};var toTypedArrayIndex=(pointer,heap)=>pointer>>>31-Math.clz32(heap.BYTES_PER_ELEMENT);var emscriptenWebGLGetTexPixelData=(type,format,width,height,pixels,internalFormat)=>{var heap=heapObjectForWebGLType(type);var sizePerPixel=colorChannelsInGlTextureFormat(format)*heap.BYTES_PER_ELEMENT;var bytes=computeUnpackAlignedImageSize(width,height,sizePerPixel);return heap.subarray(toTypedArrayIndex(pixels,heap),toTypedArrayIndex(pixels+bytes,heap))};var _glReadPixels=(x,y,width,height,format,type,pixels)=>{if(GL.currentContext.version>=2){if(GLctx.currentPixelPackBufferBinding){GLctx.readPixels(x,y,width,height,format,type,pixels);return}var heap=heapObjectForWebGLType(type);var target=toTypedArrayIndex(pixels,heap);GLctx.readPixels(x,y,width,height,format,type,heap,target);return}var pixelData=emscriptenWebGLGetTexPixelData(type,format,width,height,pixels,format);if(!pixelData){GL.recordError(1280);return}GLctx.readPixels(x,y,width,height,format,type,pixelData)};var _glShaderSource=(shader,count,string,length)=>{var source=GL.getSource(shader,count,string,length);GLctx.shaderSource(GL.shaders[shader],source)};var _glTexImage2D=(target,level,internalFormat,width,height,border,format,type,pixels)=>{if(GL.currentContext.version>=2){if(GLctx.currentPixelUnpackBufferBinding){GLctx.texImage2D(target,level,internalFormat,width,height,border,format,type,pixels);return}if(pixels){var heap=heapObjectForWebGLType(type);var index=toTypedArrayIndex(pixels,heap);GLctx.texImage2D(target,level,internalFormat,width,height,border,format,type,heap,index);return}}var pixelData=pixels?emscriptenWebGLGetTexPixelData(type,format,width,height,pixels,internalFormat):null;GLctx.texImage2D(target,level,internalFormat,width,height,border,format,type,pixelData)};var _glTexParameterf=(x0,x1,x2)=>GLctx.texParameterf(x0,x1,x2);var _glTexParameterfv=(target,pname,params)=>{var param=HEAPF32[params>>2];GLctx.texParameterf(target,pname,param)};var _glTexParameteri=(x0,x1,x2)=>GLctx.texParameteri(x0,x1,x2);var _glTexStorage2D=(x0,x1,x2,x3,x4)=>GLctx.texStorage2D(x0,x1,x2,x3,x4);var _glTexStorage3D=(x0,x1,x2,x3,x4,x5)=>GLctx.texStorage3D(x0,x1,x2,x3,x4,x5);var _glTexSubImage2D=(target,level,xoffset,yoffset,width,height,format,type,pixels)=>{if(GL.currentContext.version>=2){if(GLctx.currentPixelUnpackBufferBinding){GLctx.texSubImage2D(target,level,xoffset,yoffset,width,height,format,type,pixels);return}if(pixels){var heap=heapObjectForWebGLType(type);GLctx.texSubImage2D(target,level,xoffset,yoffset,width,height,format,type,heap,toTypedArrayIndex(pixels,heap));return}}var pixelData=pixels?emscriptenWebGLGetTexPixelData(type,format,width,height,pixels,0):null;GLctx.texSubImage2D(target,level,xoffset,yoffset,width,height,format,type,pixelData)};var _glTexSubImage3D=(target,level,xoffset,yoffset,zoffset,width,height,depth,format,type,pixels)=>{if(GLctx.currentPixelUnpackBufferBinding){GLctx.texSubImage3D(target,level,xoffset,yoffset,zoffset,width,height,depth,format,type,pixels)}else if(pixels){var heap=heapObjectForWebGLType(type);GLctx.texSubImage3D(target,level,xoffset,yoffset,zoffset,width,height,depth,format,type,heap,toTypedArrayIndex(pixels,heap))}else{GLctx.texSubImage3D(target,level,xoffset,yoffset,zoffset,width,height,depth,format,type,null)}};var webglGetUniformLocation=location=>{var p=GLctx.currentProgram;if(p){var webglLoc=p.uniformLocsById[location];if(typeof webglLoc=="number"){p.uniformLocsById[location]=webglLoc=GLctx.getUniformLocation(p,p.uniformArrayNamesById[location]+(webglLoc>0?`[${webglLoc}]`:""))}return webglLoc}else{GL.recordError(1282)}};var _glUniform1f=(location,v0)=>{GLctx.uniform1f(webglGetUniformLocation(location),v0)};var _glUniform1i=(location,v0)=>{GLctx.uniform1i(webglGetUniformLocation(location),v0)};var _glUniform2f=(location,v0,v1)=>{GLctx.uniform2f(webglGetUniformLocation(location),v0,v1)};var miniTempWebGLFloatBuffers=[];var _glUniform2fv=(location,count,value)=>{if(GL.currentContext.version>=2){count&&GLctx.uniform2fv(webglGetUniformLocation(location),HEAPF32,value>>2,count*2);return}if(count<=144){var view=miniTempWebGLFloatBuffers[2*count];for(var i=0;i<2*count;i+=2){view[i]=HEAPF32[value+4*i>>2];view[i+1]=HEAPF32[value+(4*i+4)>>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*8>>2)}GLctx.uniform2fv(webglGetUniformLocation(location),view)};var _glUniform3f=(location,v0,v1,v2)=>{GLctx.uniform3f(webglGetUniformLocation(location),v0,v1,v2)};var _glUniform4fv=(location,count,value)=>{if(GL.currentContext.version>=2){count&&GLctx.uniform4fv(webglGetUniformLocation(location),HEAPF32,value>>2,count*4);return}if(count<=72){var view=miniTempWebGLFloatBuffers[4*count];var heap=HEAPF32;value=value>>2;for(var i=0;i<4*count;i+=4){var dst=value+i;view[i]=heap[dst];view[i+1]=heap[dst+1];view[i+2]=heap[dst+2];view[i+3]=heap[dst+3]}}else{var view=HEAPF32.subarray(value>>2,value+count*16>>2)}GLctx.uniform4fv(webglGetUniformLocation(location),view)};var miniTempWebGLIntBuffers=[];var _glUniform4iv=(location,count,value)=>{if(GL.currentContext.version>=2){count&&GLctx.uniform4iv(webglGetUniformLocation(location),HEAP32,value>>2,count*4);return}if(count<=72){var view=miniTempWebGLIntBuffers[4*count];for(var i=0;i<4*count;i+=4){view[i]=HEAP32[value+4*i>>2];view[i+1]=HEAP32[value+(4*i+4)>>2];view[i+2]=HEAP32[value+(4*i+8)>>2];view[i+3]=HEAP32[value+(4*i+12)>>2]}}else{var view=HEAP32.subarray(value>>2,value+count*16>>2)}GLctx.uniform4iv(webglGetUniformLocation(location),view)};var _glUniformBlockBinding=(program,uniformBlockIndex,uniformBlockBinding)=>{program=GL.programs[program];GLctx.uniformBlockBinding(program,uniformBlockIndex,uniformBlockBinding)};var _glUniformMatrix4fv=(location,count,transpose,value)=>{if(GL.currentContext.version>=2){count&&GLctx.uniformMatrix4fv(webglGetUniformLocation(location),!!transpose,HEAPF32,value>>2,count*16);return}if(count<=18){var view=miniTempWebGLFloatBuffers[16*count];var heap=HEAPF32;value=value>>2;for(var i=0;i<16*count;i+=16){var dst=value+i;view[i]=heap[dst];view[i+1]=heap[dst+1];view[i+2]=heap[dst+2];view[i+3]=heap[dst+3];view[i+4]=heap[dst+4];view[i+5]=heap[dst+5];view[i+6]=heap[dst+6];view[i+7]=heap[dst+7];view[i+8]=heap[dst+8];view[i+9]=heap[dst+9];view[i+10]=heap[dst+10];view[i+11]=heap[dst+11];view[i+12]=heap[dst+12];view[i+13]=heap[dst+13];view[i+14]=heap[dst+14];view[i+15]=heap[dst+15]}}else{var view=HEAPF32.subarray(value>>2,value+count*64>>2)}GLctx.uniformMatrix4fv(webglGetUniformLocation(location),!!transpose,view)};var _glUseProgram=program=>{program=GL.programs[program];GLctx.useProgram(program);GLctx.currentProgram=program};var _glVertexAttribPointer=(index,size,type,normalized,stride,ptr)=>{var cb=GL.currentContext.clientBuffers[index];if(!GLctx.currentArrayBufferBinding){cb.size=size;cb.type=type;cb.normalized=normalized;cb.stride=stride;cb.ptr=ptr;cb.clientside=true;cb.vertexAttribPointerAdaptor=function(index,size,type,normalized,stride,ptr){this.vertexAttribPointer(index,size,type,normalized,stride,ptr)};return}cb.clientside=false;GLctx.vertexAttribPointer(index,size,type,!!normalized,stride,ptr)};var _glViewport=(x0,x1,x2,x3)=>GLctx.viewport(x0,x1,x2,x3);function _mediapipe_find_canvas_event_target(canvasSelector){let target=findCanvasEventTarget(canvasSelector);if(Module&&!target){target=Module.canvasWebGpu}return Emval.toHandle(target)}function _mediapipe_webgl_tex_image_drawable(drawableHandle){const drawable=Emval.toValue(drawableHandle);GLctx.texImage2D(GLctx.TEXTURE_2D,0,GLctx.RGBA,GLctx.RGBA,GLctx.UNSIGNED_BYTE,drawable)}var _wgpuBindGroupLayoutRelease=id=>WebGPU.mgrBindGroupLayout.release(id);var _wgpuBindGroupRelease=id=>WebGPU.mgrBindGroup.release(id);var _wgpuBufferDestroy=bufferId=>{var bufferWrapper=WebGPU.mgrBuffer.objects[bufferId];if(bufferWrapper.onUnmap){for(var i=0;i{var bufferWrapper=WebGPU.mgrBuffer.objects[bufferId];if(size===0)warnOnce("getMappedRange size=0 no longer means WGPU_WHOLE_MAP_SIZE");if(size==-1)size=undefined;if(bufferWrapper.mapMode!==2){return 0}var mapped;try{mapped=bufferWrapper.object.getMappedRange(offset,size)}catch(ex){return 0}var data=_memalign(16,mapped.byteLength);HEAPU8.fill(0,data,mapped.byteLength);bufferWrapper.onUnmap.push(()=>{new Uint8Array(mapped).set(HEAPU8.subarray(data,data+mapped.byteLength));_free(data)});return data};var _wgpuBufferReference=id=>WebGPU.mgrBuffer.reference(id);var _wgpuBufferRelease=id=>WebGPU.mgrBuffer.release(id);var _wgpuBufferUnmap=bufferId=>{var bufferWrapper=WebGPU.mgrBuffer.objects[bufferId];if(!bufferWrapper.onUnmap){return}for(var i=0;iWebGPU.mgrCommandBuffer.release(id);var _wgpuCommandEncoderBeginComputePass=(encoderId,descriptor)=>{var desc;function makeComputePassTimestampWrites(twPtr){if(twPtr===0)return undefined;return{querySet:WebGPU.mgrQuerySet.get(HEAPU32[twPtr>>2]),beginningOfPassWriteIndex:HEAPU32[twPtr+4>>2],endOfPassWriteIndex:HEAPU32[twPtr+8>>2]}}if(descriptor){desc={label:undefined,timestampWrites:makeComputePassTimestampWrites(HEAPU32[descriptor+8>>2])};var labelPtr=HEAPU32[descriptor+4>>2];if(labelPtr)desc["label"]=UTF8ToString(labelPtr)}var commandEncoder=WebGPU.mgrCommandEncoder.get(encoderId);return WebGPU.mgrComputePassEncoder.create(commandEncoder.beginComputePass(desc))};var _wgpuCommandEncoderBeginRenderPass=(encoderId,descriptor)=>{function makeColorAttachment(caPtr){var viewPtr=HEAPU32[caPtr+4>>2];if(viewPtr===0){return undefined}var depthSlice=HEAP32[caPtr+8>>2];if(depthSlice==-1)depthSlice=undefined;var loadOpInt=HEAPU32[caPtr+16>>2];var storeOpInt=HEAPU32[caPtr+20>>2];var clearValue=WebGPU.makeColor(caPtr+24);return{view:WebGPU.mgrTextureView.get(viewPtr),depthSlice:depthSlice,resolveTarget:WebGPU.mgrTextureView.get(HEAPU32[caPtr+12>>2]),clearValue:clearValue,loadOp:WebGPU.LoadOp[loadOpInt],storeOp:WebGPU.StoreOp[storeOpInt]}}function makeColorAttachments(count,caPtr){var attachments=[];for(var i=0;i>2]),depthClearValue:HEAPF32[dsaPtr+12>>2],depthLoadOp:WebGPU.LoadOp[HEAPU32[dsaPtr+4>>2]],depthStoreOp:WebGPU.StoreOp[HEAPU32[dsaPtr+8>>2]],depthReadOnly:!!HEAPU32[dsaPtr+16>>2],stencilClearValue:HEAPU32[dsaPtr+28>>2],stencilLoadOp:WebGPU.LoadOp[HEAPU32[dsaPtr+20>>2]],stencilStoreOp:WebGPU.StoreOp[HEAPU32[dsaPtr+24>>2]],stencilReadOnly:!!HEAPU32[dsaPtr+32>>2]}}function makeRenderPassTimestampWrites(twPtr){if(twPtr===0)return undefined;return{querySet:WebGPU.mgrQuerySet.get(HEAPU32[twPtr>>2]),beginningOfPassWriteIndex:HEAPU32[twPtr+4>>2],endOfPassWriteIndex:HEAPU32[twPtr+8>>2]}}function makeRenderPassDescriptor(descriptor){var nextInChainPtr=HEAPU32[descriptor>>2];var maxDrawCount=undefined;if(nextInChainPtr!==0){var sType=HEAPU32[nextInChainPtr+4>>2];var renderPassDescriptorMaxDrawCount=nextInChainPtr;maxDrawCount=HEAPU32[renderPassDescriptorMaxDrawCount+4+8>>2]*4294967296+HEAPU32[renderPassDescriptorMaxDrawCount+8>>2]}var desc={label:undefined,colorAttachments:makeColorAttachments(HEAPU32[descriptor+8>>2],HEAPU32[descriptor+12>>2]),depthStencilAttachment:makeDepthStencilAttachment(HEAPU32[descriptor+16>>2]),occlusionQuerySet:WebGPU.mgrQuerySet.get(HEAPU32[descriptor+20>>2]),timestampWrites:makeRenderPassTimestampWrites(HEAPU32[descriptor+24>>2]),maxDrawCount:maxDrawCount};var labelPtr=HEAPU32[descriptor+4>>2];if(labelPtr)desc["label"]=UTF8ToString(labelPtr);return desc}var desc=makeRenderPassDescriptor(descriptor);var commandEncoder=WebGPU.mgrCommandEncoder.get(encoderId);return WebGPU.mgrRenderPassEncoder.create(commandEncoder.beginRenderPass(desc))};var _wgpuCommandEncoderCopyBufferToTexture=(encoderId,srcPtr,dstPtr,copySizePtr)=>{var commandEncoder=WebGPU.mgrCommandEncoder.get(encoderId);var copySize=WebGPU.makeExtent3D(copySizePtr);commandEncoder.copyBufferToTexture(WebGPU.makeImageCopyBuffer(srcPtr),WebGPU.makeImageCopyTexture(dstPtr),copySize)};var _wgpuCommandEncoderCopyTextureToBuffer=(encoderId,srcPtr,dstPtr,copySizePtr)=>{var commandEncoder=WebGPU.mgrCommandEncoder.get(encoderId);var copySize=WebGPU.makeExtent3D(copySizePtr);commandEncoder.copyTextureToBuffer(WebGPU.makeImageCopyTexture(srcPtr),WebGPU.makeImageCopyBuffer(dstPtr),copySize)};var _wgpuCommandEncoderCopyTextureToTexture=(encoderId,srcPtr,dstPtr,copySizePtr)=>{var commandEncoder=WebGPU.mgrCommandEncoder.get(encoderId);var copySize=WebGPU.makeExtent3D(copySizePtr);commandEncoder.copyTextureToTexture(WebGPU.makeImageCopyTexture(srcPtr),WebGPU.makeImageCopyTexture(dstPtr),copySize)};var _wgpuCommandEncoderFinish=(encoderId,descriptor)=>{var commandEncoder=WebGPU.mgrCommandEncoder.get(encoderId);return WebGPU.mgrCommandBuffer.create(commandEncoder.finish())};var _wgpuCommandEncoderRelease=id=>WebGPU.mgrCommandEncoder.release(id);var _wgpuComputePassEncoderDispatchWorkgroups=(passId,x,y,z)=>{var pass=WebGPU.mgrComputePassEncoder.get(passId);pass.dispatchWorkgroups(x,y,z)};var _wgpuComputePassEncoderEnd=passId=>{var pass=WebGPU.mgrComputePassEncoder.get(passId);pass.end()};var _wgpuComputePassEncoderRelease=id=>WebGPU.mgrComputePassEncoder.release(id);var _wgpuComputePassEncoderSetBindGroup=(passId,groupIndex,groupId,dynamicOffsetCount,dynamicOffsetsPtr)=>{var pass=WebGPU.mgrComputePassEncoder.get(passId);var group=WebGPU.mgrBindGroup.get(groupId);if(dynamicOffsetCount==0){pass.setBindGroup(groupIndex,group)}else{var offsets=[];for(var i=0;i>2])}pass.setBindGroup(groupIndex,group,offsets)}};var _wgpuComputePassEncoderSetPipeline=(passId,pipelineId)=>{var pass=WebGPU.mgrComputePassEncoder.get(passId);var pipeline=WebGPU.mgrComputePipeline.get(pipelineId);pass.setPipeline(pipeline)};var _wgpuComputePipelineGetBindGroupLayout=(pipelineId,groupIndex)=>{var pipeline=WebGPU.mgrComputePipeline.get(pipelineId);return WebGPU.mgrBindGroupLayout.create(pipeline.getBindGroupLayout(groupIndex))};var _wgpuComputePipelineRelease=id=>WebGPU.mgrComputePipeline.release(id);var readI53FromI64=ptr=>HEAPU32[ptr>>2]+HEAP32[ptr+4>>2]*4294967296;var _wgpuDeviceCreateBindGroup=(deviceId,descriptor)=>{function makeEntry(entryPtr){var bufferId=HEAPU32[entryPtr+8>>2];var samplerId=HEAPU32[entryPtr+32>>2];var textureViewId=HEAPU32[entryPtr+36>>2];var binding=HEAPU32[entryPtr+4>>2];if(bufferId){var size=readI53FromI64(entryPtr+24);if(size==-1)size=undefined;return{binding:binding,resource:{buffer:WebGPU.mgrBuffer.get(bufferId),offset:HEAPU32[entryPtr+4+16>>2]*4294967296+HEAPU32[entryPtr+16>>2],size:size}}}else if(samplerId){return{binding:binding,resource:WebGPU.mgrSampler.get(samplerId)}}else{return{binding:binding,resource:WebGPU.mgrTextureView.get(textureViewId)}}}function makeEntries(count,entriesPtrs){var entries=[];for(var i=0;i>2]),entries:makeEntries(HEAPU32[descriptor+12>>2],HEAPU32[descriptor+16>>2])};var labelPtr=HEAPU32[descriptor+4>>2];if(labelPtr)desc["label"]=UTF8ToString(labelPtr);var device=WebGPU.mgrDevice.get(deviceId);return WebGPU.mgrBindGroup.create(device.createBindGroup(desc))};var _wgpuDeviceCreateBuffer=(deviceId,descriptor)=>{var mappedAtCreation=!!HEAPU32[descriptor+24>>2];var desc={label:undefined,usage:HEAPU32[descriptor+8>>2],size:HEAPU32[descriptor+4+16>>2]*4294967296+HEAPU32[descriptor+16>>2],mappedAtCreation:mappedAtCreation};var labelPtr=HEAPU32[descriptor+4>>2];if(labelPtr)desc["label"]=UTF8ToString(labelPtr);var device=WebGPU.mgrDevice.get(deviceId);var bufferWrapper={};var id=WebGPU.mgrBuffer.create(device.createBuffer(desc),bufferWrapper);if(mappedAtCreation){bufferWrapper.mapMode=2;bufferWrapper.onUnmap=[]}return id};var _wgpuDeviceCreateCommandEncoder=(deviceId,descriptor)=>{var desc;if(descriptor){desc={label:undefined};var labelPtr=HEAPU32[descriptor+4>>2];if(labelPtr)desc["label"]=UTF8ToString(labelPtr)}var device=WebGPU.mgrDevice.get(deviceId);return WebGPU.mgrCommandEncoder.create(device.createCommandEncoder(desc))};var generateComputePipelineDesc=descriptor=>{var desc={label:undefined,layout:WebGPU.makePipelineLayout(HEAPU32[descriptor+8>>2]),compute:WebGPU.makeProgrammableStageDescriptor(descriptor+12)};var labelPtr=HEAPU32[descriptor+4>>2];if(labelPtr)desc["label"]=UTF8ToString(labelPtr);return desc};var _wgpuDeviceCreateComputePipeline=(deviceId,descriptor)=>{var desc=generateComputePipelineDesc(descriptor);var device=WebGPU.mgrDevice.get(deviceId);return WebGPU.mgrComputePipeline.create(device.createComputePipeline(desc))};var generateRenderPipelineDesc=descriptor=>{function makePrimitiveState(rsPtr){if(!rsPtr)return undefined;var nextInChainPtr=HEAPU32[rsPtr>>2];var sType=nextInChainPtr?HEAPU32[nextInChainPtr+4>>2]:0;return{topology:WebGPU.PrimitiveTopology[HEAPU32[rsPtr+4>>2]],stripIndexFormat:WebGPU.IndexFormat[HEAPU32[rsPtr+8>>2]],frontFace:WebGPU.FrontFace[HEAPU32[rsPtr+12>>2]],cullMode:WebGPU.CullMode[HEAPU32[rsPtr+16>>2]],unclippedDepth:sType===7&&!!HEAPU32[nextInChainPtr+8>>2]}}function makeBlendComponent(bdPtr){if(!bdPtr)return undefined;return{operation:WebGPU.BlendOperation[HEAPU32[bdPtr>>2]],srcFactor:WebGPU.BlendFactor[HEAPU32[bdPtr+4>>2]],dstFactor:WebGPU.BlendFactor[HEAPU32[bdPtr+8>>2]]}}function makeBlendState(bsPtr){if(!bsPtr)return undefined;return{alpha:makeBlendComponent(bsPtr+12),color:makeBlendComponent(bsPtr+0)}}function makeColorState(csPtr){var formatInt=HEAPU32[csPtr+4>>2];return formatInt===0?undefined:{format:WebGPU.TextureFormat[formatInt],blend:makeBlendState(HEAPU32[csPtr+8>>2]),writeMask:HEAPU32[csPtr+12>>2]}}function makeColorStates(count,csArrayPtr){var states=[];for(var i=0;i>2]],failOp:WebGPU.StencilOperation[HEAPU32[ssfPtr+4>>2]],depthFailOp:WebGPU.StencilOperation[HEAPU32[ssfPtr+8>>2]],passOp:WebGPU.StencilOperation[HEAPU32[ssfPtr+12>>2]]}}function makeDepthStencilState(dssPtr){if(!dssPtr)return undefined;return{format:WebGPU.TextureFormat[HEAPU32[dssPtr+4>>2]],depthWriteEnabled:!!HEAPU32[dssPtr+8>>2],depthCompare:WebGPU.CompareFunction[HEAPU32[dssPtr+12>>2]],stencilFront:makeStencilStateFace(dssPtr+16),stencilBack:makeStencilStateFace(dssPtr+32),stencilReadMask:HEAPU32[dssPtr+48>>2],stencilWriteMask:HEAPU32[dssPtr+52>>2],depthBias:HEAP32[dssPtr+56>>2],depthBiasSlopeScale:HEAPF32[dssPtr+60>>2],depthBiasClamp:HEAPF32[dssPtr+64>>2]}}function makeVertexAttribute(vaPtr){return{format:WebGPU.VertexFormat[HEAPU32[vaPtr>>2]],offset:HEAPU32[vaPtr+4+8>>2]*4294967296+HEAPU32[vaPtr+8>>2],shaderLocation:HEAPU32[vaPtr+16>>2]}}function makeVertexAttributes(count,vaArrayPtr){var vas=[];for(var i=0;i>2];return stepModeInt===1?null:{arrayStride:HEAPU32[vbPtr+4>>2]*4294967296+HEAPU32[vbPtr>>2],stepMode:WebGPU.VertexStepMode[stepModeInt],attributes:makeVertexAttributes(HEAPU32[vbPtr+12>>2],HEAPU32[vbPtr+16>>2])}}function makeVertexBuffers(count,vbArrayPtr){if(!count)return undefined;var vbs=[];for(var i=0;i>2]),constants:WebGPU.makePipelineConstants(HEAPU32[viPtr+12>>2],HEAPU32[viPtr+16>>2]),buffers:makeVertexBuffers(HEAPU32[viPtr+20>>2],HEAPU32[viPtr+24>>2])};var entryPointPtr=HEAPU32[viPtr+8>>2];if(entryPointPtr)desc["entryPoint"]=UTF8ToString(entryPointPtr);return desc}function makeMultisampleState(msPtr){if(!msPtr)return undefined;return{count:HEAPU32[msPtr+4>>2],mask:HEAPU32[msPtr+8>>2],alphaToCoverageEnabled:!!HEAPU32[msPtr+12>>2]}}function makeFragmentState(fsPtr){if(!fsPtr)return undefined;var desc={module:WebGPU.mgrShaderModule.get(HEAPU32[fsPtr+4>>2]),constants:WebGPU.makePipelineConstants(HEAPU32[fsPtr+12>>2],HEAPU32[fsPtr+16>>2]),targets:makeColorStates(HEAPU32[fsPtr+20>>2],HEAPU32[fsPtr+24>>2])};var entryPointPtr=HEAPU32[fsPtr+8>>2];if(entryPointPtr)desc["entryPoint"]=UTF8ToString(entryPointPtr);return desc}var desc={label:undefined,layout:WebGPU.makePipelineLayout(HEAPU32[descriptor+8>>2]),vertex:makeVertexState(descriptor+12),primitive:makePrimitiveState(descriptor+40),depthStencil:makeDepthStencilState(HEAPU32[descriptor+60>>2]),multisample:makeMultisampleState(descriptor+64),fragment:makeFragmentState(HEAPU32[descriptor+80>>2])};var labelPtr=HEAPU32[descriptor+4>>2];if(labelPtr)desc["label"]=UTF8ToString(labelPtr);return desc};var _wgpuDeviceCreateRenderPipeline=(deviceId,descriptor)=>{var desc=generateRenderPipelineDesc(descriptor);var device=WebGPU.mgrDevice.get(deviceId);return WebGPU.mgrRenderPipeline.create(device.createRenderPipeline(desc))};var _wgpuDeviceCreateSampler=(deviceId,descriptor)=>{var desc;if(descriptor){desc={label:undefined,addressModeU:WebGPU.AddressMode[HEAPU32[descriptor+8>>2]],addressModeV:WebGPU.AddressMode[HEAPU32[descriptor+12>>2]],addressModeW:WebGPU.AddressMode[HEAPU32[descriptor+16>>2]],magFilter:WebGPU.FilterMode[HEAPU32[descriptor+20>>2]],minFilter:WebGPU.FilterMode[HEAPU32[descriptor+24>>2]],mipmapFilter:WebGPU.MipmapFilterMode[HEAPU32[descriptor+28>>2]],lodMinClamp:HEAPF32[descriptor+32>>2],lodMaxClamp:HEAPF32[descriptor+36>>2],compare:WebGPU.CompareFunction[HEAPU32[descriptor+40>>2]]};var labelPtr=HEAPU32[descriptor+4>>2];if(labelPtr)desc["label"]=UTF8ToString(labelPtr)}var device=WebGPU.mgrDevice.get(deviceId);return WebGPU.mgrSampler.create(device.createSampler(desc))};var _wgpuDeviceCreateShaderModule=(deviceId,descriptor)=>{var nextInChainPtr=HEAPU32[descriptor>>2];var sType=HEAPU32[nextInChainPtr+4>>2];var desc={label:undefined,code:""};var labelPtr=HEAPU32[descriptor+4>>2];if(labelPtr)desc["label"]=UTF8ToString(labelPtr);switch(sType){case 5:{var count=HEAPU32[nextInChainPtr+8>>2];var start=HEAPU32[nextInChainPtr+12>>2];var offset=start>>2;desc["code"]=HEAPU32.subarray(offset,offset+count);break}case 6:{var sourcePtr=HEAPU32[nextInChainPtr+8>>2];if(sourcePtr){desc["code"]=UTF8ToString(sourcePtr)}break}}var device=WebGPU.mgrDevice.get(deviceId);return WebGPU.mgrShaderModule.create(device.createShaderModule(desc))};var _wgpuDeviceCreateTexture=(deviceId,descriptor)=>{var desc={label:undefined,size:WebGPU.makeExtent3D(descriptor+16),mipLevelCount:HEAPU32[descriptor+32>>2],sampleCount:HEAPU32[descriptor+36>>2],dimension:WebGPU.TextureDimension[HEAPU32[descriptor+12>>2]],format:WebGPU.TextureFormat[HEAPU32[descriptor+28>>2]],usage:HEAPU32[descriptor+8>>2]};var labelPtr=HEAPU32[descriptor+4>>2];if(labelPtr)desc["label"]=UTF8ToString(labelPtr);var viewFormatCount=HEAPU32[descriptor+40>>2];if(viewFormatCount){var viewFormatsPtr=HEAPU32[descriptor+44>>2];desc["viewFormats"]=Array.from(HEAP32.subarray(viewFormatsPtr>>2,viewFormatsPtr+viewFormatCount*4>>2),function(format){return WebGPU.TextureFormat[format]})}var device=WebGPU.mgrDevice.get(deviceId);return WebGPU.mgrTexture.create(device.createTexture(desc))};var _wgpuDeviceGetQueue=deviceId=>{var queueId=WebGPU.mgrDevice.objects[deviceId].queueId;WebGPU.mgrQueue.reference(queueId);return queueId};var _wgpuDeviceReference=id=>WebGPU.mgrDevice.reference(id);var _wgpuDeviceRelease=id=>WebGPU.mgrDevice.release(id);var _wgpuPipelineLayoutRelease=id=>WebGPU.mgrPipelineLayout.release(id);var _wgpuQuerySetRelease=id=>WebGPU.mgrQuerySet.release(id);var _wgpuQueueRelease=id=>WebGPU.mgrQueue.release(id);var _wgpuQueueSubmit=(queueId,commandCount,commands)=>{var queue=WebGPU.mgrQueue.get(queueId);var cmds=Array.from(HEAP32.subarray(commands>>2,commands+commandCount*4>>2),id=>WebGPU.mgrCommandBuffer.get(id));queue.submit(cmds)};function _wgpuQueueWriteBuffer(queueId,bufferId,bufferOffset_low,bufferOffset_high,data,size){var bufferOffset=convertI32PairToI53Checked(bufferOffset_low,bufferOffset_high);var queue=WebGPU.mgrQueue.get(queueId);var buffer=WebGPU.mgrBuffer.get(bufferId);var subarray=HEAPU8.subarray(data,data+size);queue.writeBuffer(buffer,bufferOffset,subarray,0,size)}var _wgpuRenderPassEncoderDraw=(passId,vertexCount,instanceCount,firstVertex,firstInstance)=>{var pass=WebGPU.mgrRenderPassEncoder.get(passId);pass.draw(vertexCount,instanceCount,firstVertex,firstInstance)};var _wgpuRenderPassEncoderEnd=encoderId=>{var encoder=WebGPU.mgrRenderPassEncoder.get(encoderId);encoder.end()};var _wgpuRenderPassEncoderRelease=id=>WebGPU.mgrRenderPassEncoder.release(id);var _wgpuRenderPassEncoderSetBindGroup=(passId,groupIndex,groupId,dynamicOffsetCount,dynamicOffsetsPtr)=>{var pass=WebGPU.mgrRenderPassEncoder.get(passId);var group=WebGPU.mgrBindGroup.get(groupId);if(dynamicOffsetCount==0){pass.setBindGroup(groupIndex,group)}else{var offsets=[];for(var i=0;i>2])}pass.setBindGroup(groupIndex,group,offsets)}};var _wgpuRenderPassEncoderSetPipeline=(passId,pipelineId)=>{var pass=WebGPU.mgrRenderPassEncoder.get(passId);var pipeline=WebGPU.mgrRenderPipeline.get(pipelineId);pass.setPipeline(pipeline)};var _wgpuRenderPipelineGetBindGroupLayout=(pipelineId,groupIndex)=>{var pipeline=WebGPU.mgrRenderPipeline.get(pipelineId);return WebGPU.mgrBindGroupLayout.create(pipeline.getBindGroupLayout(groupIndex))};var _wgpuRenderPipelineRelease=id=>WebGPU.mgrRenderPipeline.release(id);var _wgpuSamplerReference=id=>WebGPU.mgrSampler.reference(id);var _wgpuSamplerRelease=id=>WebGPU.mgrSampler.release(id);var _wgpuShaderModuleReference=id=>WebGPU.mgrShaderModule.reference(id);var _wgpuShaderModuleRelease=id=>WebGPU.mgrShaderModule.release(id);var _wgpuTextureCreateView=(textureId,descriptor)=>{var desc;if(descriptor){var mipLevelCount=HEAPU32[descriptor+20>>2];var arrayLayerCount=HEAPU32[descriptor+28>>2];desc={format:WebGPU.TextureFormat[HEAPU32[descriptor+8>>2]],dimension:WebGPU.TextureViewDimension[HEAPU32[descriptor+12>>2]],baseMipLevel:HEAPU32[descriptor+16>>2],mipLevelCount:mipLevelCount===4294967295?undefined:mipLevelCount,baseArrayLayer:HEAPU32[descriptor+24>>2],arrayLayerCount:arrayLayerCount===4294967295?undefined:arrayLayerCount,aspect:WebGPU.TextureAspect[HEAPU32[descriptor+32>>2]]};var labelPtr=HEAPU32[descriptor+4>>2];if(labelPtr)desc["label"]=UTF8ToString(labelPtr)}var texture=WebGPU.mgrTexture.get(textureId);return WebGPU.mgrTextureView.create(texture.createView(desc))};var _wgpuTextureDestroy=textureId=>WebGPU.mgrTexture.get(textureId).destroy();var _wgpuTextureGetFormat=textureId=>{var texture=WebGPU.mgrTexture.get(textureId);return WebGPU.TextureFormat.indexOf(texture.format)};var _wgpuTextureReference=id=>WebGPU.mgrTexture.reference(id);var _wgpuTextureRelease=id=>WebGPU.mgrTexture.release(id);var _wgpuTextureViewReference=id=>WebGPU.mgrTextureView.reference(id);var _wgpuTextureViewRelease=id=>WebGPU.mgrTextureView.release(id);var getCFunc=ident=>{var func=Module["_"+ident];return func};var writeArrayToMemory=(array,buffer)=>{HEAP8.set(array,buffer)};var ccall=(ident,returnType,argTypes,args,opts)=>{var toC={string:str=>{var ret=0;if(str!==null&&str!==undefined&&str!==0){ret=stringToUTF8OnStack(str)}return ret},array:arr=>{var ret=stackAlloc(arr.length);writeArrayToMemory(arr,ret);return ret}};function convertReturnValue(ret){if(returnType==="string"){return UTF8ToString(ret)}if(returnType==="boolean")return Boolean(ret);return ret}var func=getCFunc(ident);var cArgs=[];var stack=0;if(args){for(var i=0;iFS.unlink(path);var FS_createLazyFile=FS.createLazyFile;var FS_createDevice=FS.createDevice;Module["requestFullscreen"]=Browser.requestFullscreen;Module["requestAnimationFrame"]=Browser.requestAnimationFrame;Module["setCanvasSize"]=Browser.setCanvasSize;Module["pauseMainLoop"]=Browser.mainLoop.pause;Module["resumeMainLoop"]=Browser.mainLoop.resume;Module["getUserMedia"]=Browser.getUserMedia;Module["createContext"]=Browser.createContext;var preloadedImages={};var preloadedAudios={};FS.createPreloadedFile=FS_createPreloadedFile;FS.staticInit();Module["FS_createPath"]=FS.createPath;Module["FS_createDataFile"]=FS.createDataFile;Module["FS_createPreloadedFile"]=FS.createPreloadedFile;Module["FS_unlink"]=FS.unlink;Module["FS_createLazyFile"]=FS.createLazyFile;Module["FS_createDevice"]=FS.createDevice;embind_init_charCodes();BindingError=Module["BindingError"]=class BindingError extends Error{constructor(message){super(message);this.name="BindingError"}};InternalError=Module["InternalError"]=class InternalError extends Error{constructor(message){super(message);this.name="InternalError"}};init_emval();var GLctx;WebGPU.initManagers();for(var i=0;i<32;++i)tempFixedLengthArray.push(new Array(i));var miniTempWebGLFloatBuffersStorage=new Float32Array(288);for(var i=0;i<=288;++i){miniTempWebGLFloatBuffers[i]=miniTempWebGLFloatBuffersStorage.subarray(0,i)}var miniTempWebGLIntBuffersStorage=new Int32Array(288);for(var i=0;i<=288;++i){miniTempWebGLIntBuffers[i]=miniTempWebGLIntBuffersStorage.subarray(0,i)}var wasmImports={wd:GetAdapterArchitecture,vd:GetAdapterDescription,ud:GetAdapterDeviceName,td:GetAdapterVendor,sd:HaveOffsetConverter,rd:JsOnEmptyPacketListener,qd:JsOnFloat32ArrayImageListener,pd:JsOnFloat32ArrayImageVectorListener,Ma:JsOnSimpleListenerBinaryArray,od:JsOnSimpleListenerBool,nd:JsOnSimpleListenerDouble,md:JsOnSimpleListenerFloat,ld:JsOnSimpleListenerInt,kd:JsOnSimpleListenerString,jd:JsOnSimpleListenerUint,id:JsOnUint8ArrayImageListener,hd:JsOnUint8ArrayImageVectorListener,G:JsOnVectorFinishedListener,gd:JsOnVectorListenerBool,fd:JsOnVectorListenerDouble,ed:JsOnVectorListenerFloat,dd:JsOnVectorListenerInt,cd:JsOnVectorListenerProto,bd:JsOnVectorListenerString,ad:JsOnVectorListenerUint,$c:JsOnWebGLTextureListener,_c:JsOnWebGLTextureVectorListener,la:JsWrapErrorListener,La:JsWrapImageConverter,p:JsWrapSimpleListeners,Ka:UseBottomLeftGpuOrigin,Pb:__asyncjs__mediapipe_map_buffer_jspi,o:___cxa_throw,Zc:___syscall_dup,Yc:___syscall_faccessat,Ja:___syscall_fcntl64,Xc:___syscall_fstat64,Wc:___syscall_ioctl,Vc:___syscall_lstat64,Uc:___syscall_newfstatat,Ia:___syscall_openat,Tc:___syscall_stat64,Oc:__abort_js,Zb:__embind_register_bigint,Nc:__embind_register_bool,Mc:__embind_register_emval,Ha:__embind_register_float,E:__embind_register_integer,n:__embind_register_memory_view,Ga:__embind_register_std_string,ia:__embind_register_std_wstring,Lc:__embind_register_void,Kc:__emscripten_get_now_is_monotonic,Jc:__emscripten_memcpy_js,ha:__emval_as,m:__emval_decref,ga:__emval_get_global,Fa:__emval_get_property,Ea:__emval_incref,fa:__emval_instanceof,ba:__emval_new_cstring,ea:__emval_run_destructors,Da:__emval_set_property,aa:__emval_take_value,Ic:__emval_typeof,Yb:__gmtime_js,Xb:__localtime_js,Wb:__mktime_js,Vb:__mmap_js,Ub:__munmap_js,Hc:__tzset_js,Gc:custom_emscripten_dbgn,D:_emscripten_asm_const_int,Fc:_emscripten_date_now,da:_emscripten_errn,Ec:_emscripten_get_heap_max,t:_emscripten_get_now,Dc:_emscripten_has_asyncify,Cc:_emscripten_outn,Bc:_emscripten_pc_get_function,Ac:_emscripten_resize_heap,zc:_emscripten_stack_snapshot,yc:_emscripten_stack_unwind_buffer,xc:_emscripten_webgl_create_context,wc:_emscripten_webgl_destroy_context,vc:_emscripten_webgl_get_context_attributes,Ca:_emscripten_webgl_get_current_context,uc:_emscripten_webgl_make_context_current,tc:_emscripten_webgpu_export_bind_group_layout,Ba:_emscripten_webgpu_export_device,sc:_emscripten_webgpu_export_sampler,rc:_emscripten_webgpu_export_texture,L:_emscripten_webgpu_get_device,qc:_emscripten_webgpu_import_bind_group,pc:_emscripten_webgpu_import_texture,S:_emscripten_webgpu_release_js_handle,Sc:_environ_get,Rc:_environ_sizes_get,Aa:_exit,ka:_fd_close,Qc:_fd_read,_b:_fd_seek,ja:_fd_write,oc:_getentropy,b:_glActiveTexture,$:_glAttachShader,nc:_glBindAttribLocation,d:_glBindBuffer,mc:_glBindBufferBase,u:_glBindFramebuffer,a:_glBindTexture,r:_glBindVertexArray,za:_glBlendEquation,lc:_glBlendFunc,k:_glBufferData,w:_glClear,_:_glClearColor,O:_glClientWaitSync,ya:_glCompileShader,xa:_glCreateProgram,wa:_glCreateShader,A:_glDeleteBuffers,K:_glDeleteFramebuffers,h:_glDeleteProgram,Z:_glDeleteShader,Y:_glDeleteSync,y:_glDeleteTextures,J:_glDeleteVertexArrays,va:_glDetachShader,I:_glDisable,q:_glDisableVertexAttribArray,l:_glDrawArrays,R:_glDrawBuffers,kc:_glEnable,j:_glEnableVertexAttribArray,ua:_glFenceSync,X:_glFinish,z:_glFlush,x:_glFramebufferTexture2D,ta:_glFramebufferTextureLayer,v:_glGenBuffers,N:_glGenFramebuffers,C:_glGenTextures,H:_glGenVertexArrays,sa:_glGetAttribLocation,W:_glGetError,s:_glGetIntegerv,jc:_glGetProgramiv,ic:_glGetShaderInfoLog,hc:_glGetShaderiv,F:_glGetString,gc:_glGetUniformBlockIndex,f:_glGetUniformLocation,ra:_glLinkProgram,V:_glPixelStorei,ca:_glReadPixels,qa:_glShaderSource,B:_glTexImage2D,U:_glTexParameterf,pa:_glTexParameterfv,c:_glTexParameteri,T:_glTexStorage2D,fc:_glTexStorage3D,Q:_glTexSubImage2D,ec:_glTexSubImage3D,P:_glUniform1f,e:_glUniform1i,dc:_glUniform2f,cc:_glUniform2fv,oa:_glUniform3f,na:_glUniform4fv,bc:_glUniform4iv,ac:_glUniformBlockBinding,ma:_glUniformMatrix4fv,g:_glUseProgram,i:_glVertexAttribPointer,M:_glViewport,$b:hardware_concurrency,Sb:mediapipe_create_utility_canvas2d,Rb:_mediapipe_find_canvas_event_target,Qb:mediapipe_import_external_texture,Ob:_mediapipe_webgl_tex_image_drawable,Pc:_proc_exit,Nb:_wgpuBindGroupLayoutRelease,Mb:_wgpuBindGroupRelease,Lb:_wgpuBufferDestroy,Kb:_wgpuBufferGetMappedRange,Jb:_wgpuBufferReference,Ib:_wgpuBufferRelease,Hb:_wgpuBufferUnmap,Gb:_wgpuCommandBufferRelease,Fb:_wgpuCommandEncoderBeginComputePass,Eb:_wgpuCommandEncoderBeginRenderPass,Db:_wgpuCommandEncoderCopyBufferToTexture,Cb:_wgpuCommandEncoderCopyTextureToBuffer,Bb:_wgpuCommandEncoderCopyTextureToTexture,Ab:_wgpuCommandEncoderFinish,zb:_wgpuCommandEncoderRelease,yb:_wgpuComputePassEncoderDispatchWorkgroups,xb:_wgpuComputePassEncoderEnd,wb:_wgpuComputePassEncoderRelease,vb:_wgpuComputePassEncoderSetBindGroup,ub:_wgpuComputePassEncoderSetPipeline,tb:_wgpuComputePipelineGetBindGroupLayout,sb:_wgpuComputePipelineRelease,rb:_wgpuDeviceCreateBindGroup,qb:_wgpuDeviceCreateBuffer,pb:_wgpuDeviceCreateCommandEncoder,ob:_wgpuDeviceCreateComputePipeline,nb:_wgpuDeviceCreateRenderPipeline,mb:_wgpuDeviceCreateSampler,lb:_wgpuDeviceCreateShaderModule,kb:_wgpuDeviceCreateTexture,jb:_wgpuDeviceGetQueue,ib:_wgpuDeviceReference,hb:_wgpuDeviceRelease,gb:_wgpuPipelineLayoutRelease,fb:_wgpuQuerySetRelease,eb:_wgpuQueueRelease,db:_wgpuQueueSubmit,Tb:_wgpuQueueWriteBuffer,cb:_wgpuRenderPassEncoderDraw,bb:_wgpuRenderPassEncoderEnd,ab:_wgpuRenderPassEncoderRelease,$a:_wgpuRenderPassEncoderSetBindGroup,_a:_wgpuRenderPassEncoderSetPipeline,Za:_wgpuRenderPipelineGetBindGroupLayout,Ya:_wgpuRenderPipelineRelease,Xa:_wgpuSamplerReference,Wa:_wgpuSamplerRelease,Va:_wgpuShaderModuleReference,Ua:_wgpuShaderModuleRelease,Ta:_wgpuTextureCreateView,Sa:_wgpuTextureDestroy,Ra:_wgpuTextureGetFormat,Qa:_wgpuTextureReference,Pa:_wgpuTextureRelease,Oa:_wgpuTextureViewReference,Na:_wgpuTextureViewRelease};var wasmExports=createWasm();var ___wasm_call_ctors=()=>(___wasm_call_ctors=wasmExports["yd"])();var _free=Module["_free"]=a0=>(_free=Module["_free"]=wasmExports["Ad"])(a0);var _malloc=Module["_malloc"]=a0=>(_malloc=Module["_malloc"]=wasmExports["Bd"])(a0);var _addBoundTextureAsImageToStream=Module["_addBoundTextureAsImageToStream"]=(a0,a1,a2,a3)=>(_addBoundTextureAsImageToStream=Module["_addBoundTextureAsImageToStream"]=wasmExports["Cd"])(a0,a1,a2,a3);var _attachImageListener=Module["_attachImageListener"]=(a0,a1)=>(_attachImageListener=Module["_attachImageListener"]=wasmExports["Dd"])(a0,a1);var _attachImageVectorListener=Module["_attachImageVectorListener"]=(a0,a1)=>(_attachImageVectorListener=Module["_attachImageVectorListener"]=wasmExports["Ed"])(a0,a1);var _registerModelResourcesGraphService=Module["_registerModelResourcesGraphService"]=()=>(_registerModelResourcesGraphService=Module["_registerModelResourcesGraphService"]=wasmExports["Fd"])();var _bindTextureToStream=Module["_bindTextureToStream"]=a0=>(_bindTextureToStream=Module["_bindTextureToStream"]=wasmExports["Gd"])(a0);var _addBoundTextureToStream=Module["_addBoundTextureToStream"]=(a0,a1,a2,a3)=>(_addBoundTextureToStream=Module["_addBoundTextureToStream"]=wasmExports["Hd"])(a0,a1,a2,a3);var _addDoubleToInputStream=Module["_addDoubleToInputStream"]=(a0,a1,a2)=>(_addDoubleToInputStream=Module["_addDoubleToInputStream"]=wasmExports["Id"])(a0,a1,a2);var _addFloatToInputStream=Module["_addFloatToInputStream"]=(a0,a1,a2)=>(_addFloatToInputStream=Module["_addFloatToInputStream"]=wasmExports["Jd"])(a0,a1,a2);var _addBoolToInputStream=Module["_addBoolToInputStream"]=(a0,a1,a2)=>(_addBoolToInputStream=Module["_addBoolToInputStream"]=wasmExports["Kd"])(a0,a1,a2);var _addIntToInputStream=Module["_addIntToInputStream"]=(a0,a1,a2)=>(_addIntToInputStream=Module["_addIntToInputStream"]=wasmExports["Ld"])(a0,a1,a2);var _addUintToInputStream=Module["_addUintToInputStream"]=(a0,a1,a2)=>(_addUintToInputStream=Module["_addUintToInputStream"]=wasmExports["Md"])(a0,a1,a2);var _addStringToInputStream=Module["_addStringToInputStream"]=(a0,a1,a2)=>(_addStringToInputStream=Module["_addStringToInputStream"]=wasmExports["Nd"])(a0,a1,a2);var _addRawDataSpanToInputStream=Module["_addRawDataSpanToInputStream"]=(a0,a1,a2,a3)=>(_addRawDataSpanToInputStream=Module["_addRawDataSpanToInputStream"]=wasmExports["Od"])(a0,a1,a2,a3);var _allocateBoolVector=Module["_allocateBoolVector"]=a0=>(_allocateBoolVector=Module["_allocateBoolVector"]=wasmExports["Pd"])(a0);var _allocateFloatVector=Module["_allocateFloatVector"]=a0=>(_allocateFloatVector=Module["_allocateFloatVector"]=wasmExports["Qd"])(a0);var _allocateDoubleVector=Module["_allocateDoubleVector"]=a0=>(_allocateDoubleVector=Module["_allocateDoubleVector"]=wasmExports["Rd"])(a0);var _allocateIntVector=Module["_allocateIntVector"]=a0=>(_allocateIntVector=Module["_allocateIntVector"]=wasmExports["Sd"])(a0);var _allocateUintVector=Module["_allocateUintVector"]=a0=>(_allocateUintVector=Module["_allocateUintVector"]=wasmExports["Td"])(a0);var _allocateStringVector=Module["_allocateStringVector"]=a0=>(_allocateStringVector=Module["_allocateStringVector"]=wasmExports["Ud"])(a0);var _addBoolVectorEntry=Module["_addBoolVectorEntry"]=(a0,a1)=>(_addBoolVectorEntry=Module["_addBoolVectorEntry"]=wasmExports["Vd"])(a0,a1);var _addFloatVectorEntry=Module["_addFloatVectorEntry"]=(a0,a1)=>(_addFloatVectorEntry=Module["_addFloatVectorEntry"]=wasmExports["Wd"])(a0,a1);var _addDoubleVectorEntry=Module["_addDoubleVectorEntry"]=(a0,a1)=>(_addDoubleVectorEntry=Module["_addDoubleVectorEntry"]=wasmExports["Xd"])(a0,a1);var _addIntVectorEntry=Module["_addIntVectorEntry"]=(a0,a1)=>(_addIntVectorEntry=Module["_addIntVectorEntry"]=wasmExports["Yd"])(a0,a1);var _addUintVectorEntry=Module["_addUintVectorEntry"]=(a0,a1)=>(_addUintVectorEntry=Module["_addUintVectorEntry"]=wasmExports["Zd"])(a0,a1);var _addStringVectorEntry=Module["_addStringVectorEntry"]=(a0,a1)=>(_addStringVectorEntry=Module["_addStringVectorEntry"]=wasmExports["_d"])(a0,a1);var _addBoolVectorToInputStream=Module["_addBoolVectorToInputStream"]=(a0,a1,a2)=>(_addBoolVectorToInputStream=Module["_addBoolVectorToInputStream"]=wasmExports["$d"])(a0,a1,a2);var _addFloatVectorToInputStream=Module["_addFloatVectorToInputStream"]=(a0,a1,a2)=>(_addFloatVectorToInputStream=Module["_addFloatVectorToInputStream"]=wasmExports["ae"])(a0,a1,a2);var _addDoubleVectorToInputStream=Module["_addDoubleVectorToInputStream"]=(a0,a1,a2)=>(_addDoubleVectorToInputStream=Module["_addDoubleVectorToInputStream"]=wasmExports["be"])(a0,a1,a2);var _addIntVectorToInputStream=Module["_addIntVectorToInputStream"]=(a0,a1,a2)=>(_addIntVectorToInputStream=Module["_addIntVectorToInputStream"]=wasmExports["ce"])(a0,a1,a2);var _addUintVectorToInputStream=Module["_addUintVectorToInputStream"]=(a0,a1,a2)=>(_addUintVectorToInputStream=Module["_addUintVectorToInputStream"]=wasmExports["de"])(a0,a1,a2);var _addStringVectorToInputStream=Module["_addStringVectorToInputStream"]=(a0,a1,a2)=>(_addStringVectorToInputStream=Module["_addStringVectorToInputStream"]=wasmExports["ee"])(a0,a1,a2);var _addFlatHashMapToInputStream=Module["_addFlatHashMapToInputStream"]=(a0,a1,a2,a3,a4)=>(_addFlatHashMapToInputStream=Module["_addFlatHashMapToInputStream"]=wasmExports["fe"])(a0,a1,a2,a3,a4);var _addProtoToInputStream=Module["_addProtoToInputStream"]=(a0,a1,a2,a3,a4)=>(_addProtoToInputStream=Module["_addProtoToInputStream"]=wasmExports["ge"])(a0,a1,a2,a3,a4);var _addEmptyPacketToInputStream=Module["_addEmptyPacketToInputStream"]=(a0,a1)=>(_addEmptyPacketToInputStream=Module["_addEmptyPacketToInputStream"]=wasmExports["he"])(a0,a1);var _addBoolToInputSidePacket=Module["_addBoolToInputSidePacket"]=(a0,a1)=>(_addBoolToInputSidePacket=Module["_addBoolToInputSidePacket"]=wasmExports["ie"])(a0,a1);var _addDoubleToInputSidePacket=Module["_addDoubleToInputSidePacket"]=(a0,a1)=>(_addDoubleToInputSidePacket=Module["_addDoubleToInputSidePacket"]=wasmExports["je"])(a0,a1);var _addFloatToInputSidePacket=Module["_addFloatToInputSidePacket"]=(a0,a1)=>(_addFloatToInputSidePacket=Module["_addFloatToInputSidePacket"]=wasmExports["ke"])(a0,a1);var _addIntToInputSidePacket=Module["_addIntToInputSidePacket"]=(a0,a1)=>(_addIntToInputSidePacket=Module["_addIntToInputSidePacket"]=wasmExports["le"])(a0,a1);var _addUintToInputSidePacket=Module["_addUintToInputSidePacket"]=(a0,a1)=>(_addUintToInputSidePacket=Module["_addUintToInputSidePacket"]=wasmExports["me"])(a0,a1);var _addStringToInputSidePacket=Module["_addStringToInputSidePacket"]=(a0,a1)=>(_addStringToInputSidePacket=Module["_addStringToInputSidePacket"]=wasmExports["ne"])(a0,a1);var _addRawDataSpanToInputSidePacket=Module["_addRawDataSpanToInputSidePacket"]=(a0,a1,a2)=>(_addRawDataSpanToInputSidePacket=Module["_addRawDataSpanToInputSidePacket"]=wasmExports["oe"])(a0,a1,a2);var _addProtoToInputSidePacket=Module["_addProtoToInputSidePacket"]=(a0,a1,a2,a3)=>(_addProtoToInputSidePacket=Module["_addProtoToInputSidePacket"]=wasmExports["pe"])(a0,a1,a2,a3);var _addBoolVectorToInputSidePacket=Module["_addBoolVectorToInputSidePacket"]=(a0,a1)=>(_addBoolVectorToInputSidePacket=Module["_addBoolVectorToInputSidePacket"]=wasmExports["qe"])(a0,a1);var _addDoubleVectorToInputSidePacket=Module["_addDoubleVectorToInputSidePacket"]=(a0,a1)=>(_addDoubleVectorToInputSidePacket=Module["_addDoubleVectorToInputSidePacket"]=wasmExports["re"])(a0,a1);var _addFloatVectorToInputSidePacket=Module["_addFloatVectorToInputSidePacket"]=(a0,a1)=>(_addFloatVectorToInputSidePacket=Module["_addFloatVectorToInputSidePacket"]=wasmExports["se"])(a0,a1);var _addIntVectorToInputSidePacket=Module["_addIntVectorToInputSidePacket"]=(a0,a1)=>(_addIntVectorToInputSidePacket=Module["_addIntVectorToInputSidePacket"]=wasmExports["te"])(a0,a1);var _addUintVectorToInputSidePacket=Module["_addUintVectorToInputSidePacket"]=(a0,a1)=>(_addUintVectorToInputSidePacket=Module["_addUintVectorToInputSidePacket"]=wasmExports["ue"])(a0,a1);var _addStringVectorToInputSidePacket=Module["_addStringVectorToInputSidePacket"]=(a0,a1)=>(_addStringVectorToInputSidePacket=Module["_addStringVectorToInputSidePacket"]=wasmExports["ve"])(a0,a1);var _attachBoolListener=Module["_attachBoolListener"]=a0=>(_attachBoolListener=Module["_attachBoolListener"]=wasmExports["we"])(a0);var _attachBoolVectorListener=Module["_attachBoolVectorListener"]=a0=>(_attachBoolVectorListener=Module["_attachBoolVectorListener"]=wasmExports["xe"])(a0);var _attachDoubleListener=Module["_attachDoubleListener"]=a0=>(_attachDoubleListener=Module["_attachDoubleListener"]=wasmExports["ye"])(a0);var _attachDoubleVectorListener=Module["_attachDoubleVectorListener"]=a0=>(_attachDoubleVectorListener=Module["_attachDoubleVectorListener"]=wasmExports["ze"])(a0);var _attachFloatListener=Module["_attachFloatListener"]=a0=>(_attachFloatListener=Module["_attachFloatListener"]=wasmExports["Ae"])(a0);var _attachFloatVectorListener=Module["_attachFloatVectorListener"]=a0=>(_attachFloatVectorListener=Module["_attachFloatVectorListener"]=wasmExports["Be"])(a0);var _attachIntListener=Module["_attachIntListener"]=a0=>(_attachIntListener=Module["_attachIntListener"]=wasmExports["Ce"])(a0);var _attachIntVectorListener=Module["_attachIntVectorListener"]=a0=>(_attachIntVectorListener=Module["_attachIntVectorListener"]=wasmExports["De"])(a0);var _attachUintListener=Module["_attachUintListener"]=a0=>(_attachUintListener=Module["_attachUintListener"]=wasmExports["Ee"])(a0);var _attachUintVectorListener=Module["_attachUintVectorListener"]=a0=>(_attachUintVectorListener=Module["_attachUintVectorListener"]=wasmExports["Fe"])(a0);var _attachStringListener=Module["_attachStringListener"]=a0=>(_attachStringListener=Module["_attachStringListener"]=wasmExports["Ge"])(a0);var _attachStringVectorListener=Module["_attachStringVectorListener"]=a0=>(_attachStringVectorListener=Module["_attachStringVectorListener"]=wasmExports["He"])(a0);var _attachProtoListener=Module["_attachProtoListener"]=(a0,a1)=>(_attachProtoListener=Module["_attachProtoListener"]=wasmExports["Ie"])(a0,a1);var _attachProtoVectorListener=Module["_attachProtoVectorListener"]=(a0,a1)=>(_attachProtoVectorListener=Module["_attachProtoVectorListener"]=wasmExports["Je"])(a0,a1);var _getGraphConfig=Module["_getGraphConfig"]=(a0,a1)=>(_getGraphConfig=Module["_getGraphConfig"]=wasmExports["Ke"])(a0,a1);var _clearSubgraphs=Module["_clearSubgraphs"]=()=>(_clearSubgraphs=Module["_clearSubgraphs"]=wasmExports["Le"])();var _pushBinarySubgraph=Module["_pushBinarySubgraph"]=(a0,a1)=>(_pushBinarySubgraph=Module["_pushBinarySubgraph"]=wasmExports["Me"])(a0,a1);var _pushTextSubgraph=Module["_pushTextSubgraph"]=(a0,a1)=>(_pushTextSubgraph=Module["_pushTextSubgraph"]=wasmExports["Ne"])(a0,a1);var _changeBinaryGraph=Module["_changeBinaryGraph"]=(a0,a1)=>(_changeBinaryGraph=Module["_changeBinaryGraph"]=wasmExports["Oe"])(a0,a1);var _changeTextGraph=Module["_changeTextGraph"]=(a0,a1)=>(_changeTextGraph=Module["_changeTextGraph"]=wasmExports["Pe"])(a0,a1);var _processGl=Module["_processGl"]=a0=>(_processGl=Module["_processGl"]=wasmExports["Qe"])(a0);var _process=Module["_process"]=a0=>(_process=Module["_process"]=wasmExports["Re"])(a0);var _bindTextureToCanvas=Module["_bindTextureToCanvas"]=()=>(_bindTextureToCanvas=Module["_bindTextureToCanvas"]=wasmExports["Se"])();var _requestShaderRefreshOnGraphChange=Module["_requestShaderRefreshOnGraphChange"]=()=>(_requestShaderRefreshOnGraphChange=Module["_requestShaderRefreshOnGraphChange"]=wasmExports["Te"])();var _waitUntilIdle=Module["_waitUntilIdle"]=()=>(_waitUntilIdle=Module["_waitUntilIdle"]=wasmExports["Ue"])();var _closeGraph=Module["_closeGraph"]=()=>(_closeGraph=Module["_closeGraph"]=wasmExports["Ve"])();var _setAutoRenderToScreen=Module["_setAutoRenderToScreen"]=a0=>(_setAutoRenderToScreen=Module["_setAutoRenderToScreen"]=wasmExports["We"])(a0);var ___getTypeName=a0=>(___getTypeName=wasmExports["Xe"])(a0);var _emscripten_builtin_memalign=(a0,a1)=>(_emscripten_builtin_memalign=wasmExports["Ye"])(a0,a1);var _memalign=(a0,a1)=>(_memalign=wasmExports["Ze"])(a0,a1);var __emscripten_tempret_set=a0=>(__emscripten_tempret_set=wasmExports["_e"])(a0);var __emscripten_stack_restore=a0=>(__emscripten_stack_restore=wasmExports["$e"])(a0);var __emscripten_stack_alloc=a0=>(__emscripten_stack_alloc=wasmExports["af"])(a0);var _emscripten_stack_get_current=()=>(_emscripten_stack_get_current=wasmExports["bf"])();var ___cxa_is_pointer_type=a0=>(___cxa_is_pointer_type=wasmExports["cf"])(a0);var _kVersionStampBuildChangelistStr=Module["_kVersionStampBuildChangelistStr"]=1024;var _kVersionStampCitcSnapshotStr=Module["_kVersionStampCitcSnapshotStr"]=1056;var _kVersionStampCitcWorkspaceIdStr=Module["_kVersionStampCitcWorkspaceIdStr"]=1088;var _kVersionStampSourceUriStr=Module["_kVersionStampSourceUriStr"]=1600;var _kVersionStampBuildClientStr=Module["_kVersionStampBuildClientStr"]=2112;var _kVersionStampBuildClientMintStatusStr=Module["_kVersionStampBuildClientMintStatusStr"]=2624;var _kVersionStampBuildCompilerStr=Module["_kVersionStampBuildCompilerStr"]=2656;var _kVersionStampBuildDateTimePstStr=Module["_kVersionStampBuildDateTimePstStr"]=3168;var _kVersionStampBuildDepotPathStr=Module["_kVersionStampBuildDepotPathStr"]=3200;var _kVersionStampBuildIdStr=Module["_kVersionStampBuildIdStr"]=3712;var _kVersionStampBuildInfoStr=Module["_kVersionStampBuildInfoStr"]=4224;var _kVersionStampBuildLabelStr=Module["_kVersionStampBuildLabelStr"]=4736;var _kVersionStampBuildTargetStr=Module["_kVersionStampBuildTargetStr"]=5248;var _kVersionStampBuildTimestampStr=Module["_kVersionStampBuildTimestampStr"]=5760;var _kVersionStampBuildToolStr=Module["_kVersionStampBuildToolStr"]=5792;var _kVersionStampG3BuildTargetStr=Module["_kVersionStampG3BuildTargetStr"]=6304;var _kVersionStampVerifiableStr=Module["_kVersionStampVerifiableStr"]=6816;var _kVersionStampBuildFdoTypeStr=Module["_kVersionStampBuildFdoTypeStr"]=6848;var _kVersionStampBuildBaselineChangelistStr=Module["_kVersionStampBuildBaselineChangelistStr"]=6880;var _kVersionStampBuildLtoTypeStr=Module["_kVersionStampBuildLtoTypeStr"]=6912;var _kVersionStampBuildPropellerTypeStr=Module["_kVersionStampBuildPropellerTypeStr"]=6944;var _kVersionStampBuildPghoTypeStr=Module["_kVersionStampBuildPghoTypeStr"]=6976;var _kVersionStampBuildUsernameStr=Module["_kVersionStampBuildUsernameStr"]=7008;var _kVersionStampBuildHostnameStr=Module["_kVersionStampBuildHostnameStr"]=7520;var _kVersionStampBuildDirectoryStr=Module["_kVersionStampBuildDirectoryStr"]=8032;var _kVersionStampBuildChangelistInt=Module["_kVersionStampBuildChangelistInt"]=8544;var _kVersionStampCitcSnapshotInt=Module["_kVersionStampCitcSnapshotInt"]=8552;var _kVersionStampBuildClientMintStatusInt=Module["_kVersionStampBuildClientMintStatusInt"]=8556;var _kVersionStampBuildTimestampInt=Module["_kVersionStampBuildTimestampInt"]=8560;var _kVersionStampVerifiableInt=Module["_kVersionStampVerifiableInt"]=8568;var _kVersionStampBuildCoverageEnabledInt=Module["_kVersionStampBuildCoverageEnabledInt"]=8572;var _kVersionStampBuildBaselineChangelistInt=Module["_kVersionStampBuildBaselineChangelistInt"]=8576;var _kVersionStampPrecookedTimestampStr=Module["_kVersionStampPrecookedTimestampStr"]=8592;var _kVersionStampPrecookedClientInfoStr=Module["_kVersionStampPrecookedClientInfoStr"]=9104;Module["addRunDependency"]=addRunDependency;Module["removeRunDependency"]=removeRunDependency;Module["ccall"]=ccall;Module["stringToNewUTF8"]=stringToNewUTF8;Module["FS_createPreloadedFile"]=FS_createPreloadedFile;Module["FS_unlink"]=FS_unlink;Module["FS_createPath"]=FS_createPath;Module["FS_createDevice"]=FS_createDevice;Module["FS_createDataFile"]=FS_createDataFile;Module["FS_createLazyFile"]=FS_createLazyFile;var calledRun;dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function run(){if(runDependencies>0){return}preRun();if(runDependencies>0){return}function doRun(){if(calledRun)return;calledRun=true;Module["calledRun"]=true;if(ABORT)return;initRuntime();readyPromiseResolve(Module);Module["onRuntimeInitialized"]?.();postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(function(){setTimeout(function(){Module["setStatus"]("")},1);doRun()},1)}else{doRun()}}if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}run();moduleRtn=readyPromise; +// include: shell.js +// include: minimum_runtime_check.js +// end include: minimum_runtime_check.js +// The Module object: Our interface to the outside world. We import +// and export values on it. There are various ways Module can be used: +// 1. Not defined. We create it here +// 2. A function parameter, function(moduleArg) => Promise +// 3. pre-run appended it, var Module = {}; ..generated code.. +// 4. External script tag defines var Module. +// We need to check if Module already exists (e.g. case 3 above). +// Substitution will be replaced with actual code on later stage of the build, +// this way Closure Compiler will not mangle it (e.g. case 4. above). +// Note that if you want to run closure, and also to use Module +// after the generated code, you will need to define var Module = {}; +// before the code. Then that object will be used in the code, and you +// can continue to use Module afterwards as well. +var Module = moduleArg; +// Determine the runtime environment we are in. You can customize this by +// setting the ENVIRONMENT setting at compile time (see settings.js). +// Attempt to auto-detect the environment +var ENVIRONMENT_IS_WEB = !!globalThis.window; - return moduleRtn; +var ENVIRONMENT_IS_WORKER = !!globalThis.WorkerGlobalScope; + +// N.b. Electron.js environment is simultaneously a NODE-environment, but +// also a web environment. +var ENVIRONMENT_IS_NODE = globalThis.process?.versions?.node && globalThis.process?.type != "renderer"; + +// --pre-jses are emitted after the Module integration code, so that they can +// refer to Module (if they choose; they can also define Module) +var arguments_ = []; + +var thisProgram = "./this.program"; + +var quit_ = (status, toThrow) => { + throw toThrow; +}; + +if (typeof __filename != "undefined") { + // Node + _scriptName = __filename; +} else if (ENVIRONMENT_IS_WORKER) { + _scriptName = self.location.href; } -); + +// `/` should be present at the end if `scriptDirectory` is not empty +var scriptDirectory = ""; + +function locateFile(path) { + if (Module["locateFile"]) { + return Module["locateFile"](path, scriptDirectory); + } + return scriptDirectory + path; +} + +// Hooks that are implemented differently in different runtime environments. +var readAsync, readBinary; + +if (ENVIRONMENT_IS_NODE) { + // These modules will usually be used on Node.js. Load them eagerly to avoid + // the complexity of lazy-loading. + var fs = require("node:fs"); + scriptDirectory = __dirname + "/"; + // include: node_shell_read.js + readBinary = filename => { + // We need to re-wrap `file://` strings to URLs. + filename = isFileURI(filename) ? new URL(filename) : filename; + var ret = fs.readFileSync(filename); + return ret; + }; + readAsync = async (filename, binary = true) => { + // See the comment in the `readBinary` function. + filename = isFileURI(filename) ? new URL(filename) : filename; + var ret = fs.readFileSync(filename, binary ? undefined : "utf8"); + return ret; + }; + // end include: node_shell_read.js + if (process.argv.length > 1) { + thisProgram = process.argv[1].replace(/\\/g, "/"); + } + arguments_ = process.argv.slice(2); + quit_ = (status, toThrow) => { + process.exitCode = status; + throw toThrow; + }; +} else // Note that this includes Node.js workers when relevant (pthreads is enabled). +// Node.js workers are detected as a combination of ENVIRONMENT_IS_WORKER and +// ENVIRONMENT_IS_NODE. +if (ENVIRONMENT_IS_WEB || ENVIRONMENT_IS_WORKER) { + try { + scriptDirectory = new URL(".", _scriptName).href; + } catch {} + { + // include: web_or_worker_shell_read.js + if (ENVIRONMENT_IS_WORKER) { + readBinary = url => { + var xhr = new XMLHttpRequest; + xhr.open("GET", url, false); + xhr.responseType = "arraybuffer"; + xhr.send(null); + return new Uint8Array(/** @type{!ArrayBuffer} */ (xhr.response)); + }; + } + readAsync = async url => { + // Fetch has some additional restrictions over XHR, like it can't be used on a file:// url. + // See https://github.com/github/fetch/pull/92#issuecomment-140665932 + // Cordova or Electron apps are typically loaded from a file:// url. + // So use XHR on webview if URL is a file URL. + if (isFileURI(url)) { + return new Promise((resolve, reject) => { + var xhr = new XMLHttpRequest; + xhr.open("GET", url, true); + xhr.responseType = "arraybuffer"; + xhr.onload = () => { + if (xhr.status == 200 || (xhr.status == 0 && xhr.response)) { + // file URLs can return 0 + resolve(xhr.response); + return; + } + reject(xhr.status); + }; + xhr.onerror = reject; + xhr.send(null); + }); + } + var response = await fetch(url, { + credentials: "same-origin" + }); + if (response.ok) { + return response.arrayBuffer(); + } + throw new Error(response.status + " : " + response.url); + }; + } +} else {} + +var out = console.log.bind(console); + +var err = console.error.bind(console); + +// end include: shell.js +// include: preamble.js +// === Preamble library stuff === +// Documentation for the public APIs defined in this file must be updated in: +// site/source/docs/api_reference/preamble.js.rst +// A prebuilt local version of the documentation is available at: +// site/build/text/docs/api_reference/preamble.js.txt +// You can also build docs locally as HTML or other formats in site/ +// An online HTML version (which may be of a different version of Emscripten) +// is up at http://kripken.github.io/emscripten-site/docs/api_reference/preamble.js.html +var wasmBinary; + +// Wasm globals +//======================================== +// Runtime essentials +//======================================== +// whether we are quitting the application. no code should run after this. +// set in exit() and abort() +var ABORT = false; + +// set by exit() and abort(). Passed to 'onExit' handler. +// NOTE: This is also used as the process return code in shell environments +// but only when noExitRuntime is false. +var EXITSTATUS; + +// In STRICT mode, we only define assert() when ASSERTIONS is set. i.e. we +// don't define it at all in release modes. This matches the behaviour of +// MINIMAL_RUNTIME. +// TODO(sbc): Make this the default even without STRICT enabled. +/** @type {function(*, string=)} */ function assert(condition, text) { + if (!condition) { + // This build was created without ASSERTIONS defined. `assert()` should not + // ever be called in this configuration but in case there are callers in + // the wild leave this simple abort() implementation here for now. + abort(text); + } +} + +/** + * Indicates whether filename is delivered via file protocol (as opposed to http/https) + * @noinline + */ var isFileURI = filename => filename.startsWith("file://"); + +// include: runtime_common.js +// include: runtime_stack_check.js +// end include: runtime_stack_check.js +// include: runtime_exceptions.js +// end include: runtime_exceptions.js +// include: runtime_debug.js +// end include: runtime_debug.js +var readyPromiseResolve, readyPromiseReject; + +// Memory management +var /** @type {!Int8Array} */ HEAP8, /** @type {!Uint8Array} */ HEAPU8, /** @type {!Int16Array} */ HEAP16, /** @type {!Uint16Array} */ HEAPU16, /** @type {!Int32Array} */ HEAP32, /** @type {!Uint32Array} */ HEAPU32, /** @type {!Float32Array} */ HEAPF32, /** @type {!Float64Array} */ HEAPF64; + +var runtimeInitialized = false; + +function updateMemoryViews() { + var b = wasmMemory.buffer; + HEAP8 = new Int8Array(b); + HEAP16 = new Int16Array(b); + Module["HEAPU8"] = HEAPU8 = new Uint8Array(b); + HEAPU16 = new Uint16Array(b); + HEAP32 = new Int32Array(b); + Module["HEAPU32"] = HEAPU32 = new Uint32Array(b); + Module["HEAPF32"] = HEAPF32 = new Float32Array(b); + Module["HEAPF64"] = HEAPF64 = new Float64Array(b); +} + +// include: memoryprofiler.js +// end include: memoryprofiler.js +// end include: runtime_common.js +function preRun() { + if (Module["preRun"]) { + if (typeof Module["preRun"] == "function") Module["preRun"] = [ Module["preRun"] ]; + while (Module["preRun"].length) { + addOnPreRun(Module["preRun"].shift()); + } + } + // Begin ATPRERUNS hooks + callRuntimeCallbacks(onPreRuns); +} + +function initRuntime() { + runtimeInitialized = true; + // Begin ATINITS hooks + if (!Module["noFSInit"] && !FS.initialized) FS.init(); + TTY.init(); + // End ATINITS hooks + wasmExports["jd"](); + // Begin ATPOSTCTORS hooks + FS.ignorePermissions = false; +} + +function postRun() { + // PThreads reuse the runtime from the main thread. + if (Module["postRun"]) { + if (typeof Module["postRun"] == "function") Module["postRun"] = [ Module["postRun"] ]; + while (Module["postRun"].length) { + addOnPostRun(Module["postRun"].shift()); + } + } + // Begin ATPOSTRUNS hooks + callRuntimeCallbacks(onPostRuns); +} + +/** @param {string|number=} what */ function abort(what) { + Module["onAbort"]?.(what); + what = "Aborted(" + what + ")"; + // TODO(sbc): Should we remove printing and leave it up to whoever + // catches the exception? + err(what); + ABORT = true; + what += ". Build with -sASSERTIONS for more info."; + // Use a wasm runtime error, because a JS error might be seen as a foreign + // exception, which means we'd run destructors on it. We need the error to + // simply make the program stop. + // FIXME This approach does not work in Wasm EH because it currently does not assume + // all RuntimeErrors are from traps; it decides whether a RuntimeError is from + // a trap or not based on a hidden field within the object. So at the moment + // we don't have a way of throwing a wasm trap from JS. TODO Make a JS API that + // allows this in the wasm spec. + // Suppress closure compiler warning here. Closure compiler's builtin extern + // definition for WebAssembly.RuntimeError claims it takes no arguments even + // though it can. + // TODO(https://github.com/google/closure-compiler/pull/3913): Remove if/when upstream closure gets fixed. + /** @suppress {checkTypes} */ var e = new WebAssembly.RuntimeError(what); + readyPromiseReject?.(e); + // Throw the error whether or not MODULARIZE is set because abort is used + // in code paths apart from instantiation where an exception is expected + // to be thrown when abort is called. + throw e; +} + +var wasmBinaryFile; + +function findWasmBinary() { + return locateFile("vision_wasm_internal.wasm"); +} + +function getBinarySync(file) { + if (file == wasmBinaryFile && wasmBinary) { + return new Uint8Array(wasmBinary); + } + if (readBinary) { + return readBinary(file); + } + // Throwing a plain string here, even though it not normally advisable since + // this gets turning into an `abort` in instantiateArrayBuffer. + throw "both async and sync fetching of the wasm failed"; +} + +async function getWasmBinary(binaryFile) { + // If we don't have the binary yet, load it asynchronously using readAsync. + if (!wasmBinary) { + // Fetch the binary using readAsync + try { + var response = await readAsync(binaryFile); + return new Uint8Array(response); + } catch {} + } + // Otherwise, getBinarySync should be able to get it synchronously + return getBinarySync(binaryFile); +} + +async function instantiateArrayBuffer(binaryFile, imports) { + try { + var binary = await getWasmBinary(binaryFile); + var instance = await WebAssembly.instantiate(binary, imports); + return instance; + } catch (reason) { + err(`failed to asynchronously prepare wasm: ${reason}`); + abort(reason); + } +} + +async function instantiateAsync(binary, binaryFile, imports) { + if (!binary && !isFileURI(binaryFile) && !ENVIRONMENT_IS_NODE) { + try { + var response = fetch(binaryFile, { + credentials: "same-origin" + }); + var instantiationResult = await WebAssembly.instantiateStreaming(response, imports); + return instantiationResult; + } catch (reason) { + // We expect the most common failure cause to be a bad MIME type for the binary, + // in which case falling back to ArrayBuffer instantiation should work. + err(`wasm streaming compile failed: ${reason}`); + err("falling back to ArrayBuffer instantiation"); + } + } + return instantiateArrayBuffer(binaryFile, imports); +} + +function getWasmImports() { + // prepare imports + var imports = { + "a": wasmImports + }; + return imports; +} + +// Create the wasm instance. +// Receives the wasm imports, returns the exports. +async function createWasm() { + // Load the wasm module and create an instance of using native support in the JS engine. + // handle a generated wasm instance, receiving its exports and + // performing other necessary setup + /** @param {WebAssembly.Module=} module*/ function receiveInstance(instance, module) { + wasmExports = instance.exports; + assignWasmExports(wasmExports); + updateMemoryViews(); + return wasmExports; + } + // Prefer streaming instantiation if available. + function receiveInstantiationResult(result) { + // 'result' is a ResultObject object which has both the module and instance. + // receiveInstance() will swap in the exports (to Module.asm) so they can be called + // TODO: Due to Closure regression https://github.com/google/closure-compiler/issues/3193, the above line no longer optimizes out down to the following line. + // When the regression is fixed, can restore the above PTHREADS-enabled path. + return receiveInstance(result["instance"]); + } + var info = getWasmImports(); + // User shell pages can write their own Module.instantiateWasm = function(imports, successCallback) callback + // to manually instantiate the Wasm module themselves. This allows pages to + // run the instantiation parallel to any other async startup actions they are + // performing. + // Also pthreads and wasm workers initialize the wasm instance through this + // path. + if (Module["instantiateWasm"]) { + return new Promise((resolve, reject) => { + Module["instantiateWasm"](info, (inst, mod) => { + resolve(receiveInstance(inst, mod)); + }); + }); + } + wasmBinaryFile ??= findWasmBinary(); + var result = await instantiateAsync(wasmBinary, wasmBinaryFile, info); + var exports = receiveInstantiationResult(result); + return exports; +} + +// Globals used by JS i64 conversions (see makeSetValue) +var tempDouble; + +var tempI64; + +// end include: preamble.js +// Begin JS library code +var handleException = e => { + // Certain exception types we do not treat as errors since they are used for + // internal control flow. + // 1. ExitStatus, which is thrown by exit() + // 2. "unwind", which is thrown by emscripten_unwind_to_js_event_loop() and others + // that wish to return to JS event loop. + if (e instanceof ExitStatus || e == "unwind") { + return EXITSTATUS; + } + quit_(1, e); +}; + +class ExitStatus { + name="ExitStatus"; + constructor(status) { + this.message = `Program terminated with exit(${status})`; + this.status = status; + } +} + +var runtimeKeepaliveCounter = 0; + +var keepRuntimeAlive = () => noExitRuntime || runtimeKeepaliveCounter > 0; + +var _proc_exit = code => { + EXITSTATUS = code; + if (!keepRuntimeAlive()) { + Module["onExit"]?.(code); + ABORT = true; + } + quit_(code, new ExitStatus(code)); +}; + +/** @param {boolean|number=} implicit */ var exitJS = (status, implicit) => { + EXITSTATUS = status; + _proc_exit(status); +}; + +var _exit = exitJS; + +var maybeExit = () => { + if (!keepRuntimeAlive()) { + try { + _exit(EXITSTATUS); + } catch (e) { + handleException(e); + } + } +}; + +var callUserCallback = func => { + if (ABORT) { + return; + } + try { + return func(); + } catch (e) { + handleException(e); + } finally { + maybeExit(); + } +}; + +function getFullscreenElement() { + return document.fullscreenElement || document.mozFullScreenElement || document.webkitFullscreenElement || document.webkitCurrentFullScreenElement || document.msFullscreenElement; +} + +/** @param {number=} timeout */ var safeSetTimeout = (func, timeout) => setTimeout(() => { + callUserCallback(func); +}, timeout); + +var warnOnce = text => { + warnOnce.shown ||= {}; + if (!warnOnce.shown[text]) { + warnOnce.shown[text] = 1; + if (ENVIRONMENT_IS_NODE) text = "warning: " + text; + err(text); + } +}; + +var preloadPlugins = []; + +var Browser = { + useWebGL: false, + isFullscreen: false, + pointerLock: false, + moduleContextCreatedCallbacks: [], + workers: [], + preloadedImages: {}, + preloadedAudios: {}, + getCanvas: () => Module["canvas"], + init() { + if (Browser.initted) return; + Browser.initted = true; + // Support for plugins that can process preloaded files. You can add more of these to + // your app by creating and appending to preloadPlugins. + // Each plugin is asked if it can handle a file based on the file's name. If it can, + // it is given the file's raw data. When it is done, it calls a callback with the file's + // (possibly modified) data. For example, a plugin might decompress a file, or it + // might create some side data structure for use later (like an Image element, etc.). + var imagePlugin = {}; + imagePlugin["canHandle"] = name => !Module["noImageDecoding"] && /\.(jpg|jpeg|png|bmp|webp)$/i.test(name); + imagePlugin["handle"] = async (byteArray, name) => { + var b = new Blob([ byteArray ], { + type: Browser.getMimetype(name) + }); + if (b.size !== byteArray.length) { + // Safari bug #118630 + // Safari's Blob can only take an ArrayBuffer + b = new Blob([ (new Uint8Array(byteArray)).buffer ], { + type: Browser.getMimetype(name) + }); + } + var url = URL.createObjectURL(b); + return new Promise((resolve, reject) => { + var img = new Image; + img.onload = () => { + var canvas = /** @type {!HTMLCanvasElement} */ (document.createElement("canvas")); + canvas.width = img.width; + canvas.height = img.height; + var ctx = canvas.getContext("2d"); + ctx.drawImage(img, 0, 0); + Browser.preloadedImages[name] = canvas; + URL.revokeObjectURL(url); + resolve(byteArray); + }; + img.onerror = event => { + err(`Image ${url} could not be decoded`); + reject(); + }; + img.src = url; + }); + }; + preloadPlugins.push(imagePlugin); + var audioPlugin = {}; + audioPlugin["canHandle"] = name => !Module["noAudioDecoding"] && name.slice(-4) in { + ".ogg": 1, + ".wav": 1, + ".mp3": 1 + }; + audioPlugin["handle"] = async (byteArray, name) => new Promise((resolve, reject) => { + var done = false; + function finish(audio) { + if (done) return; + done = true; + Browser.preloadedAudios[name] = audio; + resolve(byteArray); + } + var b = new Blob([ byteArray ], { + type: Browser.getMimetype(name) + }); + var url = URL.createObjectURL(b); + // XXX we never revoke this! + var audio = new Audio; + audio.addEventListener("canplaythrough", () => finish(audio), false); + // use addEventListener due to chromium bug 124926 + audio.onerror = event => { + if (done) return; + err(`warning: browser could not fully decode audio ${name}, trying slower base64 approach`); + function encode64(data) { + var BASE = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"; + var PAD = "="; + var ret = ""; + var leftchar = 0; + var leftbits = 0; + for (var i = 0; i < data.length; i++) { + leftchar = (leftchar << 8) | data[i]; + leftbits += 8; + while (leftbits >= 6) { + var curr = (leftchar >> (leftbits - 6)) & 63; + leftbits -= 6; + ret += BASE[curr]; + } + } + if (leftbits == 2) { + ret += BASE[(leftchar & 3) << 4]; + ret += PAD + PAD; + } else if (leftbits == 4) { + ret += BASE[(leftchar & 15) << 2]; + ret += PAD; + } + return ret; + } + audio.src = "data:audio/x-" + name.slice(-3) + ";base64," + encode64(byteArray); + finish(audio); + }; + audio.src = url; + // workaround for chrome bug 124926 - we do not always get oncanplaythrough or onerror + safeSetTimeout(() => { + finish(audio); + }, 1e4); + }); + preloadPlugins.push(audioPlugin); + // Canvas event setup + function pointerLockChange() { + var canvas = Browser.getCanvas(); + Browser.pointerLock = document.pointerLockElement === canvas; + } + var canvas = Browser.getCanvas(); + if (canvas) { + // forced aspect ratio can be enabled by defining 'forcedAspectRatio' on Module + // Module['forcedAspectRatio'] = 4 / 3; + document.addEventListener("pointerlockchange", pointerLockChange, false); + if (Module["elementPointerLock"]) { + canvas.addEventListener("click", ev => { + if (!Browser.pointerLock && Browser.getCanvas().requestPointerLock) { + Browser.getCanvas().requestPointerLock(); + ev.preventDefault(); + } + }, false); + } + } + }, + createContext(/** @type {HTMLCanvasElement} */ canvas, useWebGL, setInModule, webGLContextAttributes) { + if (useWebGL && Module["ctx"] && canvas == Browser.getCanvas()) return Module["ctx"]; + // no need to recreate GL context if it's already been created for this canvas. + var ctx; + var contextHandle; + if (useWebGL) { + // For GLES2/desktop GL compatibility, adjust a few defaults to be different to WebGL defaults, so that they align better with the desktop defaults. + var contextAttributes = { + antialias: false, + alpha: false, + majorVersion: (typeof WebGL2RenderingContext != "undefined") ? 2 : 1 + }; + if (webGLContextAttributes) { + for (var attribute in webGLContextAttributes) { + contextAttributes[attribute] = webGLContextAttributes[attribute]; + } + } + // This check of existence of GL is here to satisfy Closure compiler, which yells if variable GL is referenced below but GL object is not + // actually compiled in because application is not doing any GL operations. TODO: Ideally if GL is not being used, this function + // Browser.createContext() should not even be emitted. + if (typeof GL != "undefined") { + contextHandle = GL.createContext(canvas, contextAttributes); + if (contextHandle) { + ctx = GL.getContext(contextHandle).GLctx; + } + } + } else { + ctx = canvas.getContext("2d"); + } + if (!ctx) return null; + if (setInModule) { + Module["ctx"] = ctx; + if (useWebGL) GL.makeContextCurrent(contextHandle); + Browser.useWebGL = useWebGL; + Browser.moduleContextCreatedCallbacks.forEach(callback => callback()); + Browser.init(); + } + return ctx; + }, + fullscreenHandlersInstalled: false, + lockPointer: undefined, + resizeCanvas: undefined, + requestFullscreen(lockPointer, resizeCanvas) { + Browser.lockPointer = lockPointer; + Browser.resizeCanvas = resizeCanvas; + if (typeof Browser.lockPointer == "undefined") Browser.lockPointer = true; + if (typeof Browser.resizeCanvas == "undefined") Browser.resizeCanvas = false; + var canvas = Browser.getCanvas(); + function fullscreenChange() { + Browser.isFullscreen = false; + var canvasContainer = canvas.parentNode; + if (getFullscreenElement() === canvasContainer) { + canvas.exitFullscreen = Browser.exitFullscreen; + if (Browser.lockPointer) canvas.requestPointerLock(); + Browser.isFullscreen = true; + if (Browser.resizeCanvas) { + Browser.setFullscreenCanvasSize(); + } else { + Browser.updateCanvasDimensions(canvas); + } + } else { + // remove the full screen specific parent of the canvas again to restore the HTML structure from before going full screen + canvasContainer.parentNode.insertBefore(canvas, canvasContainer); + canvasContainer.parentNode.removeChild(canvasContainer); + if (Browser.resizeCanvas) { + Browser.setWindowedCanvasSize(); + } else { + Browser.updateCanvasDimensions(canvas); + } + } + Module["onFullScreen"]?.(Browser.isFullscreen); + Module["onFullscreen"]?.(Browser.isFullscreen); + } + if (!Browser.fullscreenHandlersInstalled) { + Browser.fullscreenHandlersInstalled = true; + document.addEventListener("fullscreenchange", fullscreenChange, false); + document.addEventListener("mozfullscreenchange", fullscreenChange, false); + document.addEventListener("webkitfullscreenchange", fullscreenChange, false); + document.addEventListener("MSFullscreenChange", fullscreenChange, false); + } + // create a new parent to ensure the canvas has no siblings. this allows browsers to optimize full screen performance when its parent is the full screen root + var canvasContainer = document.createElement("div"); + canvas.parentNode.insertBefore(canvasContainer, canvas); + canvasContainer.appendChild(canvas); + // use parent of canvas as full screen root to allow aspect ratio correction (Firefox stretches the root to screen size) + canvasContainer.requestFullscreen = canvasContainer["requestFullscreen"] || canvasContainer["mozRequestFullScreen"] || canvasContainer["msRequestFullscreen"] || (canvasContainer["webkitRequestFullscreen"] ? () => canvasContainer["webkitRequestFullscreen"](Element["ALLOW_KEYBOARD_INPUT"]) : null) || (canvasContainer["webkitRequestFullScreen"] ? () => canvasContainer["webkitRequestFullScreen"](Element["ALLOW_KEYBOARD_INPUT"]) : null); + canvasContainer.requestFullscreen(); + }, + exitFullscreen() { + // This is workaround for chrome. Trying to exit from fullscreen + // not in fullscreen state will cause "TypeError: Document not active" + // in chrome. See https://github.com/emscripten-core/emscripten/pull/8236 + if (!Browser.isFullscreen) { + return false; + } + var CFS = document["exitFullscreen"] || document["cancelFullScreen"] || document["mozCancelFullScreen"] || document["msExitFullscreen"] || document["webkitCancelFullScreen"] || (() => {}); + CFS.apply(document, []); + return true; + }, + safeSetTimeout(func, timeout) { + // Legacy function, this is used by the SDL2 port so we need to keep it + // around at least until that is updated. + // See https://github.com/libsdl-org/SDL/pull/6304 + return safeSetTimeout(func, timeout); + }, + getMimetype(name) { + return { + "jpg": "image/jpeg", + "jpeg": "image/jpeg", + "png": "image/png", + "bmp": "image/bmp", + "ogg": "audio/ogg", + "wav": "audio/wav", + "mp3": "audio/mpeg" + }[name.slice(name.lastIndexOf(".") + 1)]; + }, + getUserMedia(func) { + window.getUserMedia ||= navigator["getUserMedia"] || navigator["mozGetUserMedia"]; + window.getUserMedia(func); + }, + getMovementX(event) { + return event["movementX"] || event["mozMovementX"] || event["webkitMovementX"] || 0; + }, + getMovementY(event) { + return event["movementY"] || event["mozMovementY"] || event["webkitMovementY"] || 0; + }, + getMouseWheelDelta(event) { + var delta = 0; + switch (event.type) { + case "DOMMouseScroll": + // 3 lines make up a step + delta = event.detail / 3; + break; + + case "mousewheel": + // 120 units make up a step + delta = event.wheelDelta / 120; + break; + + case "wheel": + delta = event.deltaY; + switch (event.deltaMode) { + case 0: + // DOM_DELTA_PIXEL: 100 pixels make up a step + delta /= 100; + break; + + case 1: + // DOM_DELTA_LINE: 3 lines make up a step + delta /= 3; + break; + + case 2: + // DOM_DELTA_PAGE: A page makes up 80 steps + delta *= 80; + break; + + default: + abort("unrecognized mouse wheel delta mode: " + event.deltaMode); + } + break; + + default: + abort("unrecognized mouse wheel event: " + event.type); + } + return delta; + }, + mouseX: 0, + mouseY: 0, + mouseMovementX: 0, + mouseMovementY: 0, + touches: {}, + lastTouches: {}, + calculateMouseCoords(pageX, pageY) { + // Calculate the movement based on the changes + // in the coordinates. + var canvas = Browser.getCanvas(); + var rect = canvas.getBoundingClientRect(); + // Neither .scrollX or .pageXOffset are defined in a spec, but + // we prefer .scrollX because it is currently in a spec draft. + // (see: http://www.w3.org/TR/2013/WD-cssom-view-20131217/) + var scrollX = ((typeof window.scrollX != "undefined") ? window.scrollX : window.pageXOffset); + var scrollY = ((typeof window.scrollY != "undefined") ? window.scrollY : window.pageYOffset); + var adjustedX = pageX - (scrollX + rect.left); + var adjustedY = pageY - (scrollY + rect.top); + // the canvas might be CSS-scaled compared to its backbuffer; + // SDL-using content will want mouse coordinates in terms + // of backbuffer units. + adjustedX = adjustedX * (canvas.width / rect.width); + adjustedY = adjustedY * (canvas.height / rect.height); + return { + x: adjustedX, + y: adjustedY + }; + }, + setMouseCoords(pageX, pageY) { + const {x, y} = Browser.calculateMouseCoords(pageX, pageY); + Browser.mouseMovementX = x - Browser.mouseX; + Browser.mouseMovementY = y - Browser.mouseY; + Browser.mouseX = x; + Browser.mouseY = y; + }, + calculateMouseEvent(event) { + // event should be mousemove, mousedown or mouseup + if (Browser.pointerLock) { + // When the pointer is locked, calculate the coordinates + // based on the movement of the mouse. + // Workaround for Firefox bug 764498 + if (event.type != "mousemove" && ("mozMovementX" in event)) { + Browser.mouseMovementX = Browser.mouseMovementY = 0; + } else { + Browser.mouseMovementX = Browser.getMovementX(event); + Browser.mouseMovementY = Browser.getMovementY(event); + } + // add the mouse delta to the current absolute mouse position + Browser.mouseX += Browser.mouseMovementX; + Browser.mouseY += Browser.mouseMovementY; + } else { + if (event.type === "touchstart" || event.type === "touchend" || event.type === "touchmove") { + var touch = event.touch; + if (touch === undefined) { + return; + } + var coords = Browser.calculateMouseCoords(touch.pageX, touch.pageY); + if (event.type === "touchstart") { + Browser.lastTouches[touch.identifier] = coords; + Browser.touches[touch.identifier] = coords; + } else if (event.type === "touchend" || event.type === "touchmove") { + var last = Browser.touches[touch.identifier]; + last ||= coords; + Browser.lastTouches[touch.identifier] = last; + Browser.touches[touch.identifier] = coords; + } + return; + } + Browser.setMouseCoords(event.pageX, event.pageY); + } + }, + resizeListeners: [], + updateResizeListeners() { + var canvas = Browser.getCanvas(); + Browser.resizeListeners.forEach(listener => listener(canvas.width, canvas.height)); + }, + setCanvasSize(width, height, noUpdates) { + var canvas = Browser.getCanvas(); + Browser.updateCanvasDimensions(canvas, width, height); + if (!noUpdates) Browser.updateResizeListeners(); + }, + windowedWidth: 0, + windowedHeight: 0, + setFullscreenCanvasSize() { + // check if SDL is available + if (typeof SDL != "undefined") { + var flags = HEAPU32[((SDL.screen) >> 2)]; + flags = flags | 8388608; + // set SDL_FULLSCREEN flag + HEAP32[((SDL.screen) >> 2)] = flags; + } + Browser.updateCanvasDimensions(Browser.getCanvas()); + Browser.updateResizeListeners(); + }, + setWindowedCanvasSize() { + // check if SDL is available + if (typeof SDL != "undefined") { + var flags = HEAPU32[((SDL.screen) >> 2)]; + flags = flags & ~8388608; + // clear SDL_FULLSCREEN flag + HEAP32[((SDL.screen) >> 2)] = flags; + } + Browser.updateCanvasDimensions(Browser.getCanvas()); + Browser.updateResizeListeners(); + }, + updateCanvasDimensions(canvas, wNative, hNative) { + if (wNative && hNative) { + canvas.widthNative = wNative; + canvas.heightNative = hNative; + } else { + wNative = canvas.widthNative; + hNative = canvas.heightNative; + } + var w = wNative; + var h = hNative; + if (Module["forcedAspectRatio"] > 0) { + if (w / h < Module["forcedAspectRatio"]) { + w = Math.round(h * Module["forcedAspectRatio"]); + } else { + h = Math.round(w / Module["forcedAspectRatio"]); + } + } + if ((getFullscreenElement() === canvas.parentNode) && (typeof screen != "undefined")) { + var factor = Math.min(screen.width / w, screen.height / h); + w = Math.round(w * factor); + h = Math.round(h * factor); + } + if (Browser.resizeCanvas) { + if (canvas.width != w) canvas.width = w; + if (canvas.height != h) canvas.height = h; + if (typeof canvas.style != "undefined") { + canvas.style.removeProperty("width"); + canvas.style.removeProperty("height"); + } + } else { + if (canvas.width != wNative) canvas.width = wNative; + if (canvas.height != hNative) canvas.height = hNative; + if (typeof canvas.style != "undefined") { + if (w != wNative || h != hNative) { + canvas.style.setProperty("width", w + "px", "important"); + canvas.style.setProperty("height", h + "px", "important"); + } else { + canvas.style.removeProperty("width"); + canvas.style.removeProperty("height"); + } + } + } + } +}; + +var callRuntimeCallbacks = callbacks => { + while (callbacks.length > 0) { + // Pass the module as the first argument. + callbacks.shift()(Module); + } +}; + +var onPostRuns = []; + +var addOnPostRun = cb => onPostRuns.push(cb); + +var onPreRuns = []; + +var addOnPreRun = cb => onPreRuns.push(cb); + +var noExitRuntime = true; + +var stackRestore = val => __emscripten_stack_restore(val); + +var stackSave = () => _emscripten_stack_get_current(); + +class ExceptionInfo { + // excPtr - Thrown object pointer to wrap. Metadata pointer is calculated from it. + constructor(excPtr) { + this.excPtr = excPtr; + this.ptr = excPtr - 24; + } + set_type(type) { + HEAPU32[(((this.ptr) + (4)) >> 2)] = type; + } + get_type() { + return HEAPU32[(((this.ptr) + (4)) >> 2)]; + } + set_destructor(destructor) { + HEAPU32[(((this.ptr) + (8)) >> 2)] = destructor; + } + get_destructor() { + return HEAPU32[(((this.ptr) + (8)) >> 2)]; + } + set_caught(caught) { + caught = caught ? 1 : 0; + HEAP8[(this.ptr) + (12)] = caught; + } + get_caught() { + return HEAP8[(this.ptr) + (12)] != 0; + } + set_rethrown(rethrown) { + rethrown = rethrown ? 1 : 0; + HEAP8[(this.ptr) + (13)] = rethrown; + } + get_rethrown() { + return HEAP8[(this.ptr) + (13)] != 0; + } + // Initialize native structure fields. Should be called once after allocated. + init(type, destructor) { + this.set_adjusted_ptr(0); + this.set_type(type); + this.set_destructor(destructor); + } + set_adjusted_ptr(adjustedPtr) { + HEAPU32[(((this.ptr) + (16)) >> 2)] = adjustedPtr; + } + get_adjusted_ptr() { + return HEAPU32[(((this.ptr) + (16)) >> 2)]; + } +} + +var exceptionLast = 0; + +var uncaughtExceptionCount = 0; + +var ___cxa_throw = (ptr, type, destructor) => { + var info = new ExceptionInfo(ptr); + // Initialize ExceptionInfo content after it was allocated in __cxa_allocate_exception. + info.init(type, destructor); + exceptionLast = ptr; + uncaughtExceptionCount++; + throw exceptionLast; +}; + +var PATH = { + isAbs: path => path.charAt(0) === "/", + splitPath: filename => { + var splitPathRe = /^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/; + return splitPathRe.exec(filename).slice(1); + }, + normalizeArray: (parts, allowAboveRoot) => { + // if the path tries to go above the root, `up` ends up > 0 + var up = 0; + for (var i = parts.length - 1; i >= 0; i--) { + var last = parts[i]; + if (last === ".") { + parts.splice(i, 1); + } else if (last === "..") { + parts.splice(i, 1); + up++; + } else if (up) { + parts.splice(i, 1); + up--; + } + } + // if the path is allowed to go above the root, restore leading ..s + if (allowAboveRoot) { + for (;up; up--) { + parts.unshift(".."); + } + } + return parts; + }, + normalize: path => { + var isAbsolute = PATH.isAbs(path), trailingSlash = path.slice(-1) === "/"; + // Normalize the path + path = PATH.normalizeArray(path.split("/").filter(p => !!p), !isAbsolute).join("/"); + if (!path && !isAbsolute) { + path = "."; + } + if (path && trailingSlash) { + path += "/"; + } + return (isAbsolute ? "/" : "") + path; + }, + dirname: path => { + var result = PATH.splitPath(path), root = result[0], dir = result[1]; + if (!root && !dir) { + // No dirname whatsoever + return "."; + } + if (dir) { + // It has a dirname, strip trailing slash + dir = dir.slice(0, -1); + } + return root + dir; + }, + basename: path => path && path.match(/([^\/]+|\/)\/*$/)[1], + join: (...paths) => PATH.normalize(paths.join("/")), + join2: (l, r) => PATH.normalize(l + "/" + r) +}; + +var initRandomFill = () => { + // This block is not needed on v19+ since crypto.getRandomValues is builtin + if (ENVIRONMENT_IS_NODE) { + var nodeCrypto = require("node:crypto"); + return view => nodeCrypto.randomFillSync(view); + } + return view => crypto.getRandomValues(view); +}; + +var randomFill = view => { + // Lazily init on the first invocation. + (randomFill = initRandomFill())(view); +}; + +var PATH_FS = { + resolve: (...args) => { + var resolvedPath = "", resolvedAbsolute = false; + for (var i = args.length - 1; i >= -1 && !resolvedAbsolute; i--) { + var path = (i >= 0) ? args[i] : FS.cwd(); + // Skip empty and invalid entries + if (typeof path != "string") { + throw new TypeError("Arguments to path.resolve must be strings"); + } else if (!path) { + return ""; + } + resolvedPath = path + "/" + resolvedPath; + resolvedAbsolute = PATH.isAbs(path); + } + // At this point the path should be resolved to a full absolute path, but + // handle relative paths to be safe (might happen when process.cwd() fails) + resolvedPath = PATH.normalizeArray(resolvedPath.split("/").filter(p => !!p), !resolvedAbsolute).join("/"); + return ((resolvedAbsolute ? "/" : "") + resolvedPath) || "."; + }, + relative: (from, to) => { + from = PATH_FS.resolve(from).slice(1); + to = PATH_FS.resolve(to).slice(1); + function trim(arr) { + var start = 0; + for (;start < arr.length; start++) { + if (arr[start] !== "") break; + } + var end = arr.length - 1; + for (;end >= 0; end--) { + if (arr[end] !== "") break; + } + if (start > end) return []; + return arr.slice(start, end - start + 1); + } + var fromParts = trim(from.split("/")); + var toParts = trim(to.split("/")); + var length = Math.min(fromParts.length, toParts.length); + var samePartsLength = length; + for (var i = 0; i < length; i++) { + if (fromParts[i] !== toParts[i]) { + samePartsLength = i; + break; + } + } + var outputParts = []; + for (var i = samePartsLength; i < fromParts.length; i++) { + outputParts.push(".."); + } + outputParts = outputParts.concat(toParts.slice(samePartsLength)); + return outputParts.join("/"); + } +}; + +var UTF8Decoder = new TextDecoder; + +var findStringEnd = (heapOrArray, idx, maxBytesToRead, ignoreNul) => { + var maxIdx = idx + maxBytesToRead; + if (ignoreNul) return maxIdx; + // TextDecoder needs to know the byte length in advance, it doesn't stop on + // null terminator by itself. + // As a tiny code save trick, compare idx against maxIdx using a negation, + // so that maxBytesToRead=undefined/NaN means Infinity. + while (heapOrArray[idx] && !(idx >= maxIdx)) ++idx; + return idx; +}; + +/** + * Given a pointer 'idx' to a null-terminated UTF8-encoded string in the given + * array that contains uint8 values, returns a copy of that string as a + * Javascript String object. + * heapOrArray is either a regular array, or a JavaScript typed array view. + * @param {number=} idx + * @param {number=} maxBytesToRead + * @param {boolean=} ignoreNul - If true, the function will not stop on a NUL character. + * @return {string} + */ var UTF8ArrayToString = (heapOrArray, idx = 0, maxBytesToRead, ignoreNul) => { + var endPtr = findStringEnd(heapOrArray, idx, maxBytesToRead, ignoreNul); + return UTF8Decoder.decode(heapOrArray.buffer ? heapOrArray.subarray(idx, endPtr) : new Uint8Array(heapOrArray.slice(idx, endPtr))); +}; + +var FS_stdin_getChar_buffer = []; + +var lengthBytesUTF8 = str => { + var len = 0; + for (var i = 0; i < str.length; ++i) { + // Gotcha: charCodeAt returns a 16-bit word that is a UTF-16 encoded code + // unit, not a Unicode code point of the character! So decode + // UTF16->UTF32->UTF8. + // See http://unicode.org/faq/utf_bom.html#utf16-3 + var c = str.charCodeAt(i); + // possibly a lead surrogate + if (c <= 127) { + len++; + } else if (c <= 2047) { + len += 2; + } else if (c >= 55296 && c <= 57343) { + len += 4; + ++i; + } else { + len += 3; + } + } + return len; +}; + +var stringToUTF8Array = (str, heap, outIdx, maxBytesToWrite) => { + // Parameter maxBytesToWrite is not optional. Negative values, 0, null, + // undefined and false each don't write out any bytes. + if (!(maxBytesToWrite > 0)) return 0; + var startIdx = outIdx; + var endIdx = outIdx + maxBytesToWrite - 1; + // -1 for string null terminator. + for (var i = 0; i < str.length; ++i) { + // For UTF8 byte structure, see http://en.wikipedia.org/wiki/UTF-8#Description + // and https://www.ietf.org/rfc/rfc2279.txt + // and https://tools.ietf.org/html/rfc3629 + var u = str.codePointAt(i); + if (u <= 127) { + if (outIdx >= endIdx) break; + heap[outIdx++] = u; + } else if (u <= 2047) { + if (outIdx + 1 >= endIdx) break; + heap[outIdx++] = 192 | (u >> 6); + heap[outIdx++] = 128 | (u & 63); + } else if (u <= 65535) { + if (outIdx + 2 >= endIdx) break; + heap[outIdx++] = 224 | (u >> 12); + heap[outIdx++] = 128 | ((u >> 6) & 63); + heap[outIdx++] = 128 | (u & 63); + } else { + if (outIdx + 3 >= endIdx) break; + heap[outIdx++] = 240 | (u >> 18); + heap[outIdx++] = 128 | ((u >> 12) & 63); + heap[outIdx++] = 128 | ((u >> 6) & 63); + heap[outIdx++] = 128 | (u & 63); + // Gotcha: if codePoint is over 0xFFFF, it is represented as a surrogate pair in UTF-16. + // We need to manually skip over the second code unit for correct iteration. + i++; + } + } + // Null-terminate the pointer to the buffer. + heap[outIdx] = 0; + return outIdx - startIdx; +}; + +/** @type {function(string, boolean=, number=)} */ var intArrayFromString = (stringy, dontAddNull, length) => { + var len = length > 0 ? length : lengthBytesUTF8(stringy) + 1; + var u8array = new Array(len); + var numBytesWritten = stringToUTF8Array(stringy, u8array, 0, u8array.length); + if (dontAddNull) u8array.length = numBytesWritten; + return u8array; +}; + +var FS_stdin_getChar = () => { + if (!FS_stdin_getChar_buffer.length) { + var result = null; + if (ENVIRONMENT_IS_NODE) { + // we will read data by chunks of BUFSIZE + var BUFSIZE = 256; + var buf = Buffer.alloc(BUFSIZE); + var bytesRead = 0; + // For some reason we must suppress a closure warning here, even though + // fd definitely exists on process.stdin, and is even the proper way to + // get the fd of stdin, + // https://github.com/nodejs/help/issues/2136#issuecomment-523649904 + // This started to happen after moving this logic out of library_tty.js, + // so it is related to the surrounding code in some unclear manner. + /** @suppress {missingProperties} */ var fd = process.stdin.fd; + try { + bytesRead = fs.readSync(fd, buf, 0, BUFSIZE); + } catch (e) { + // Cross-platform differences: on Windows, reading EOF throws an + // exception, but on other OSes, reading EOF returns 0. Uniformize + // behavior by treating the EOF exception to return 0. + if (e.toString().includes("EOF")) bytesRead = 0; else throw e; + } + if (bytesRead > 0) { + result = buf.slice(0, bytesRead).toString("utf-8"); + } + } else if (globalThis.window?.prompt) { + // Browser. + result = window.prompt("Input: "); + // returns null on cancel + if (result !== null) { + result += "\n"; + } + } else {} + if (!result) { + return null; + } + FS_stdin_getChar_buffer = intArrayFromString(result, true); + } + return FS_stdin_getChar_buffer.shift(); +}; + +var TTY = { + ttys: [], + init() {}, + shutdown() {}, + register(dev, ops) { + TTY.ttys[dev] = { + input: [], + output: [], + ops + }; + FS.registerDevice(dev, TTY.stream_ops); + }, + stream_ops: { + open(stream) { + var tty = TTY.ttys[stream.node.rdev]; + if (!tty) { + throw new FS.ErrnoError(43); + } + stream.tty = tty; + stream.seekable = false; + }, + close(stream) { + // flush any pending line data + stream.tty.ops.fsync(stream.tty); + }, + fsync(stream) { + stream.tty.ops.fsync(stream.tty); + }, + read(stream, buffer, offset, length, pos) { + if (!stream.tty || !stream.tty.ops.get_char) { + throw new FS.ErrnoError(60); + } + var bytesRead = 0; + for (var i = 0; i < length; i++) { + var result; + try { + result = stream.tty.ops.get_char(stream.tty); + } catch (e) { + throw new FS.ErrnoError(29); + } + if (result === undefined && bytesRead === 0) { + throw new FS.ErrnoError(6); + } + if (result === null || result === undefined) break; + bytesRead++; + buffer[offset + i] = result; + } + if (bytesRead) { + stream.node.atime = Date.now(); + } + return bytesRead; + }, + write(stream, buffer, offset, length, pos) { + if (!stream.tty || !stream.tty.ops.put_char) { + throw new FS.ErrnoError(60); + } + try { + for (var i = 0; i < length; i++) { + stream.tty.ops.put_char(stream.tty, buffer[offset + i]); + } + } catch (e) { + throw new FS.ErrnoError(29); + } + if (length) { + stream.node.mtime = stream.node.ctime = Date.now(); + } + return i; + } + }, + default_tty_ops: { + get_char(tty) { + return FS_stdin_getChar(); + }, + put_char(tty, val) { + if (val === null || val === 10) { + out(UTF8ArrayToString(tty.output)); + tty.output = []; + } else { + if (val != 0) tty.output.push(val); + } + }, + fsync(tty) { + if (tty.output?.length > 0) { + out(UTF8ArrayToString(tty.output)); + tty.output = []; + } + }, + ioctl_tcgets(tty) { + // typical setting + return { + c_iflag: 25856, + c_oflag: 5, + c_cflag: 191, + c_lflag: 35387, + c_cc: [ 3, 28, 127, 21, 4, 0, 1, 0, 17, 19, 26, 0, 18, 15, 23, 22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ] + }; + }, + ioctl_tcsets(tty, optional_actions, data) { + // currently just ignore + return 0; + }, + ioctl_tiocgwinsz(tty) { + return [ 24, 80 ]; + } + }, + default_tty1_ops: { + put_char(tty, val) { + if (val === null || val === 10) { + err(UTF8ArrayToString(tty.output)); + tty.output = []; + } else { + if (val != 0) tty.output.push(val); + } + }, + fsync(tty) { + if (tty.output?.length > 0) { + err(UTF8ArrayToString(tty.output)); + tty.output = []; + } + } + } +}; + +var zeroMemory = (ptr, size) => HEAPU8.fill(0, ptr, ptr + size); + +var alignMemory = (size, alignment) => Math.ceil(size / alignment) * alignment; + +var mmapAlloc = size => { + size = alignMemory(size, 65536); + var ptr = _emscripten_builtin_memalign(65536, size); + if (ptr) zeroMemory(ptr, size); + return ptr; +}; + +var MEMFS = { + ops_table: null, + mount(mount) { + return MEMFS.createNode(null, "/", 16895, 0); + }, + createNode(parent, name, mode, dev) { + if (FS.isBlkdev(mode) || FS.isFIFO(mode)) { + // not supported + throw new FS.ErrnoError(63); + } + MEMFS.ops_table ||= { + dir: { + node: { + getattr: MEMFS.node_ops.getattr, + setattr: MEMFS.node_ops.setattr, + lookup: MEMFS.node_ops.lookup, + mknod: MEMFS.node_ops.mknod, + rename: MEMFS.node_ops.rename, + unlink: MEMFS.node_ops.unlink, + rmdir: MEMFS.node_ops.rmdir, + readdir: MEMFS.node_ops.readdir, + symlink: MEMFS.node_ops.symlink + }, + stream: { + llseek: MEMFS.stream_ops.llseek + } + }, + file: { + node: { + getattr: MEMFS.node_ops.getattr, + setattr: MEMFS.node_ops.setattr + }, + stream: { + llseek: MEMFS.stream_ops.llseek, + read: MEMFS.stream_ops.read, + write: MEMFS.stream_ops.write, + mmap: MEMFS.stream_ops.mmap, + msync: MEMFS.stream_ops.msync + } + }, + link: { + node: { + getattr: MEMFS.node_ops.getattr, + setattr: MEMFS.node_ops.setattr, + readlink: MEMFS.node_ops.readlink + }, + stream: {} + }, + chrdev: { + node: { + getattr: MEMFS.node_ops.getattr, + setattr: MEMFS.node_ops.setattr + }, + stream: FS.chrdev_stream_ops + } + }; + var node = FS.createNode(parent, name, mode, dev); + if (FS.isDir(node.mode)) { + node.node_ops = MEMFS.ops_table.dir.node; + node.stream_ops = MEMFS.ops_table.dir.stream; + node.contents = {}; + } else if (FS.isFile(node.mode)) { + node.node_ops = MEMFS.ops_table.file.node; + node.stream_ops = MEMFS.ops_table.file.stream; + node.usedBytes = 0; + // The actual number of bytes used in the typed array, as opposed to contents.length which gives the whole capacity. + // When the byte data of the file is populated, this will point to either a typed array, or a normal JS array. Typed arrays are preferred + // for performance, and used by default. However, typed arrays are not resizable like normal JS arrays are, so there is a small disk size + // penalty involved for appending file writes that continuously grow a file similar to std::vector capacity vs used -scheme. + node.contents = null; + } else if (FS.isLink(node.mode)) { + node.node_ops = MEMFS.ops_table.link.node; + node.stream_ops = MEMFS.ops_table.link.stream; + } else if (FS.isChrdev(node.mode)) { + node.node_ops = MEMFS.ops_table.chrdev.node; + node.stream_ops = MEMFS.ops_table.chrdev.stream; + } + node.atime = node.mtime = node.ctime = Date.now(); + // add the new node to the parent + if (parent) { + parent.contents[name] = node; + parent.atime = parent.mtime = parent.ctime = node.atime; + } + return node; + }, + getFileDataAsTypedArray(node) { + if (!node.contents) return new Uint8Array(0); + if (node.contents.subarray) return node.contents.subarray(0, node.usedBytes); + // Make sure to not return excess unused bytes. + return new Uint8Array(node.contents); + }, + expandFileStorage(node, newCapacity) { + var prevCapacity = node.contents ? node.contents.length : 0; + if (prevCapacity >= newCapacity) return; + // No need to expand, the storage was already large enough. + // Don't expand strictly to the given requested limit if it's only a very small increase, but instead geometrically grow capacity. + // For small filesizes (<1MB), perform size*2 geometric increase, but for large sizes, do a much more conservative size*1.125 increase to + // avoid overshooting the allocation cap by a very large margin. + var CAPACITY_DOUBLING_MAX = 1024 * 1024; + newCapacity = Math.max(newCapacity, (prevCapacity * (prevCapacity < CAPACITY_DOUBLING_MAX ? 2 : 1.125)) >>> 0); + if (prevCapacity != 0) newCapacity = Math.max(newCapacity, 256); + // At minimum allocate 256b for each file when expanding. + var oldContents = node.contents; + node.contents = new Uint8Array(newCapacity); + // Allocate new storage. + if (node.usedBytes > 0) node.contents.set(oldContents.subarray(0, node.usedBytes), 0); + }, + resizeFileStorage(node, newSize) { + if (node.usedBytes == newSize) return; + if (newSize == 0) { + node.contents = null; + // Fully decommit when requesting a resize to zero. + node.usedBytes = 0; + } else { + var oldContents = node.contents; + node.contents = new Uint8Array(newSize); + // Allocate new storage. + if (oldContents) { + node.contents.set(oldContents.subarray(0, Math.min(newSize, node.usedBytes))); + } + node.usedBytes = newSize; + } + }, + node_ops: { + getattr(node) { + var attr = {}; + // device numbers reuse inode numbers. + attr.dev = FS.isChrdev(node.mode) ? node.id : 1; + attr.ino = node.id; + attr.mode = node.mode; + attr.nlink = 1; + attr.uid = 0; + attr.gid = 0; + attr.rdev = node.rdev; + if (FS.isDir(node.mode)) { + attr.size = 4096; + } else if (FS.isFile(node.mode)) { + attr.size = node.usedBytes; + } else if (FS.isLink(node.mode)) { + attr.size = node.link.length; + } else { + attr.size = 0; + } + attr.atime = new Date(node.atime); + attr.mtime = new Date(node.mtime); + attr.ctime = new Date(node.ctime); + // NOTE: In our implementation, st_blocks = Math.ceil(st_size/st_blksize), + // but this is not required by the standard. + attr.blksize = 4096; + attr.blocks = Math.ceil(attr.size / attr.blksize); + return attr; + }, + setattr(node, attr) { + for (const key of [ "mode", "atime", "mtime", "ctime" ]) { + if (attr[key] != null) { + node[key] = attr[key]; + } + } + if (attr.size !== undefined) { + MEMFS.resizeFileStorage(node, attr.size); + } + }, + lookup(parent, name) { + // This error may happen quite a bit. To avoid overhead we reuse it (and + // suffer a lack of stack info). + if (!MEMFS.doesNotExistError) { + MEMFS.doesNotExistError = new FS.ErrnoError(44); + /** @suppress {checkTypes} */ MEMFS.doesNotExistError.stack = ""; + } + throw MEMFS.doesNotExistError; + }, + mknod(parent, name, mode, dev) { + return MEMFS.createNode(parent, name, mode, dev); + }, + rename(old_node, new_dir, new_name) { + var new_node; + try { + new_node = FS.lookupNode(new_dir, new_name); + } catch (e) {} + if (new_node) { + if (FS.isDir(old_node.mode)) { + // if we're overwriting a directory at new_name, make sure it's empty. + for (var i in new_node.contents) { + throw new FS.ErrnoError(55); + } + } + FS.hashRemoveNode(new_node); + } + // do the internal rewiring + delete old_node.parent.contents[old_node.name]; + new_dir.contents[new_name] = old_node; + old_node.name = new_name; + new_dir.ctime = new_dir.mtime = old_node.parent.ctime = old_node.parent.mtime = Date.now(); + }, + unlink(parent, name) { + delete parent.contents[name]; + parent.ctime = parent.mtime = Date.now(); + }, + rmdir(parent, name) { + var node = FS.lookupNode(parent, name); + for (var i in node.contents) { + throw new FS.ErrnoError(55); + } + delete parent.contents[name]; + parent.ctime = parent.mtime = Date.now(); + }, + readdir(node) { + return [ ".", "..", ...Object.keys(node.contents) ]; + }, + symlink(parent, newname, oldpath) { + var node = MEMFS.createNode(parent, newname, 511 | 40960, 0); + node.link = oldpath; + return node; + }, + readlink(node) { + if (!FS.isLink(node.mode)) { + throw new FS.ErrnoError(28); + } + return node.link; + } + }, + stream_ops: { + read(stream, buffer, offset, length, position) { + var contents = stream.node.contents; + if (position >= stream.node.usedBytes) return 0; + var size = Math.min(stream.node.usedBytes - position, length); + if (size > 8 && contents.subarray) { + // non-trivial, and typed array + buffer.set(contents.subarray(position, position + size), offset); + } else { + for (var i = 0; i < size; i++) buffer[offset + i] = contents[position + i]; + } + return size; + }, + write(stream, buffer, offset, length, position, canOwn) { + // If the buffer is located in main memory (HEAP), and if + // memory can grow, we can't hold on to references of the + // memory buffer, as they may get invalidated. That means we + // need to copy its contents. + if (buffer.buffer === HEAP8.buffer) { + canOwn = false; + } + if (!length) return 0; + var node = stream.node; + node.mtime = node.ctime = Date.now(); + if (buffer.subarray && (!node.contents || node.contents.subarray)) { + // This write is from a typed array to a typed array? + if (canOwn) { + node.contents = buffer.subarray(offset, offset + length); + node.usedBytes = length; + return length; + } else if (node.usedBytes === 0 && position === 0) { + // If this is a simple first write to an empty file, do a fast set since we don't need to care about old data. + node.contents = buffer.slice(offset, offset + length); + node.usedBytes = length; + return length; + } else if (position + length <= node.usedBytes) { + // Writing to an already allocated and used subrange of the file? + node.contents.set(buffer.subarray(offset, offset + length), position); + return length; + } + } + // Appending to an existing file and we need to reallocate, or source data did not come as a typed array. + MEMFS.expandFileStorage(node, position + length); + if (node.contents.subarray && buffer.subarray) { + // Use typed array write which is available. + node.contents.set(buffer.subarray(offset, offset + length), position); + } else { + for (var i = 0; i < length; i++) { + node.contents[position + i] = buffer[offset + i]; + } + } + node.usedBytes = Math.max(node.usedBytes, position + length); + return length; + }, + llseek(stream, offset, whence) { + var position = offset; + if (whence === 1) { + position += stream.position; + } else if (whence === 2) { + if (FS.isFile(stream.node.mode)) { + position += stream.node.usedBytes; + } + } + if (position < 0) { + throw new FS.ErrnoError(28); + } + return position; + }, + mmap(stream, length, position, prot, flags) { + if (!FS.isFile(stream.node.mode)) { + throw new FS.ErrnoError(43); + } + var ptr; + var allocated; + var contents = stream.node.contents; + // Only make a new copy when MAP_PRIVATE is specified. + if (!(flags & 2) && contents && contents.buffer === HEAP8.buffer) { + // We can't emulate MAP_SHARED when the file is not backed by the + // buffer we're mapping to (e.g. the HEAP buffer). + allocated = false; + ptr = contents.byteOffset; + } else { + allocated = true; + ptr = mmapAlloc(length); + if (!ptr) { + throw new FS.ErrnoError(48); + } + if (contents) { + // Try to avoid unnecessary slices. + if (position > 0 || position + length < contents.length) { + if (contents.subarray) { + contents = contents.subarray(position, position + length); + } else { + contents = Array.prototype.slice.call(contents, position, position + length); + } + } + HEAP8.set(contents, ptr); + } + } + return { + ptr, + allocated + }; + }, + msync(stream, buffer, offset, length, mmapFlags) { + MEMFS.stream_ops.write(stream, buffer, 0, length, offset, false); + // should we check if bytesWritten and length are the same? + return 0; + } + } +}; + +var FS_modeStringToFlags = str => { + var flagModes = { + "r": 0, + "r+": 2, + "w": 512 | 64 | 1, + "w+": 512 | 64 | 2, + "a": 1024 | 64 | 1, + "a+": 1024 | 64 | 2 + }; + var flags = flagModes[str]; + if (typeof flags == "undefined") { + throw new Error(`Unknown file open mode: ${str}`); + } + return flags; +}; + +var FS_getMode = (canRead, canWrite) => { + var mode = 0; + if (canRead) mode |= 292 | 73; + if (canWrite) mode |= 146; + return mode; +}; + +var asyncLoad = async url => { + var arrayBuffer = await readAsync(url); + return new Uint8Array(arrayBuffer); +}; + +var FS_createDataFile = (...args) => FS.createDataFile(...args); + +var getUniqueRunDependency = id => id; + +var runDependencies = 0; + +var dependenciesFulfilled = null; + +var removeRunDependency = id => { + runDependencies--; + Module["monitorRunDependencies"]?.(runDependencies); + if (runDependencies == 0) { + if (dependenciesFulfilled) { + var callback = dependenciesFulfilled; + dependenciesFulfilled = null; + callback(); + } + } +}; + +var addRunDependency = id => { + runDependencies++; + Module["monitorRunDependencies"]?.(runDependencies); +}; + +var FS_handledByPreloadPlugin = async (byteArray, fullname) => { + // Ensure plugins are ready. + if (typeof Browser != "undefined") Browser.init(); + for (var plugin of preloadPlugins) { + if (plugin["canHandle"](fullname)) { + return plugin["handle"](byteArray, fullname); + } + } + // If no plugin handled this file then return the original/unmodified + // byteArray. + return byteArray; +}; + +var FS_preloadFile = async (parent, name, url, canRead, canWrite, dontCreateFile, canOwn, preFinish) => { + // TODO we should allow people to just pass in a complete filename instead + // of parent and name being that we just join them anyways + var fullname = name ? PATH_FS.resolve(PATH.join2(parent, name)) : parent; + var dep = getUniqueRunDependency(`cp ${fullname}`); + // might have several active requests for the same fullname + addRunDependency(dep); + try { + var byteArray = url; + if (typeof url == "string") { + byteArray = await asyncLoad(url); + } + byteArray = await FS_handledByPreloadPlugin(byteArray, fullname); + preFinish?.(); + if (!dontCreateFile) { + FS_createDataFile(parent, name, byteArray, canRead, canWrite, canOwn); + } + } finally { + removeRunDependency(dep); + } +}; + +var FS_createPreloadedFile = (parent, name, url, canRead, canWrite, onload, onerror, dontCreateFile, canOwn, preFinish) => { + FS_preloadFile(parent, name, url, canRead, canWrite, dontCreateFile, canOwn, preFinish).then(onload).catch(onerror); +}; + +var FS = { + root: null, + mounts: [], + devices: {}, + streams: [], + nextInode: 1, + nameTable: null, + currentPath: "/", + initialized: false, + ignorePermissions: true, + filesystems: null, + syncFSRequests: 0, + ErrnoError: class { + name="ErrnoError"; + // We set the `name` property to be able to identify `FS.ErrnoError` + // - the `name` is a standard ECMA-262 property of error objects. Kind of good to have it anyway. + // - when using PROXYFS, an error can come from an underlying FS + // as different FS objects have their own FS.ErrnoError each, + // the test `err instanceof FS.ErrnoError` won't detect an error coming from another filesystem, causing bugs. + // we'll use the reliable test `err.name == "ErrnoError"` instead + constructor(errno) { + this.errno = errno; + } + }, + FSStream: class { + shared={}; + get object() { + return this.node; + } + set object(val) { + this.node = val; + } + get isRead() { + return (this.flags & 2097155) !== 1; + } + get isWrite() { + return (this.flags & 2097155) !== 0; + } + get isAppend() { + return (this.flags & 1024); + } + get flags() { + return this.shared.flags; + } + set flags(val) { + this.shared.flags = val; + } + get position() { + return this.shared.position; + } + set position(val) { + this.shared.position = val; + } + }, + FSNode: class { + node_ops={}; + stream_ops={}; + readMode=292 | 73; + writeMode=146; + mounted=null; + constructor(parent, name, mode, rdev) { + if (!parent) { + parent = this; + } + this.parent = parent; + this.mount = parent.mount; + this.id = FS.nextInode++; + this.name = name; + this.mode = mode; + this.rdev = rdev; + this.atime = this.mtime = this.ctime = Date.now(); + } + get read() { + return (this.mode & this.readMode) === this.readMode; + } + set read(val) { + val ? this.mode |= this.readMode : this.mode &= ~this.readMode; + } + get write() { + return (this.mode & this.writeMode) === this.writeMode; + } + set write(val) { + val ? this.mode |= this.writeMode : this.mode &= ~this.writeMode; + } + get isFolder() { + return FS.isDir(this.mode); + } + get isDevice() { + return FS.isChrdev(this.mode); + } + }, + lookupPath(path, opts = {}) { + if (!path) { + throw new FS.ErrnoError(44); + } + opts.follow_mount ??= true; + if (!PATH.isAbs(path)) { + path = FS.cwd() + "/" + path; + } + // limit max consecutive symlinks to 40 (SYMLOOP_MAX). + linkloop: for (var nlinks = 0; nlinks < 40; nlinks++) { + // split the absolute path + var parts = path.split("/").filter(p => !!p); + // start at the root + var current = FS.root; + var current_path = "/"; + for (var i = 0; i < parts.length; i++) { + var islast = (i === parts.length - 1); + if (islast && opts.parent) { + // stop resolving + break; + } + if (parts[i] === ".") { + continue; + } + if (parts[i] === "..") { + current_path = PATH.dirname(current_path); + if (FS.isRoot(current)) { + path = current_path + "/" + parts.slice(i + 1).join("/"); + // We're making progress here, don't let many consecutive ..'s + // lead to ELOOP + nlinks--; + continue linkloop; + } else { + current = current.parent; + } + continue; + } + current_path = PATH.join2(current_path, parts[i]); + try { + current = FS.lookupNode(current, parts[i]); + } catch (e) { + // if noent_okay is true, suppress a ENOENT in the last component + // and return an object with an undefined node. This is needed for + // resolving symlinks in the path when creating a file. + if ((e?.errno === 44) && islast && opts.noent_okay) { + return { + path: current_path + }; + } + throw e; + } + // jump to the mount's root node if this is a mountpoint + if (FS.isMountpoint(current) && (!islast || opts.follow_mount)) { + current = current.mounted.root; + } + // by default, lookupPath will not follow a symlink if it is the final path component. + // setting opts.follow = true will override this behavior. + if (FS.isLink(current.mode) && (!islast || opts.follow)) { + if (!current.node_ops.readlink) { + throw new FS.ErrnoError(52); + } + var link = current.node_ops.readlink(current); + if (!PATH.isAbs(link)) { + link = PATH.dirname(current_path) + "/" + link; + } + path = link + "/" + parts.slice(i + 1).join("/"); + continue linkloop; + } + } + return { + path: current_path, + node: current + }; + } + throw new FS.ErrnoError(32); + }, + getPath(node) { + var path; + while (true) { + if (FS.isRoot(node)) { + var mount = node.mount.mountpoint; + if (!path) return mount; + return mount[mount.length - 1] !== "/" ? `${mount}/${path}` : mount + path; + } + path = path ? `${node.name}/${path}` : node.name; + node = node.parent; + } + }, + hashName(parentid, name) { + var hash = 0; + for (var i = 0; i < name.length; i++) { + hash = ((hash << 5) - hash + name.charCodeAt(i)) | 0; + } + return ((parentid + hash) >>> 0) % FS.nameTable.length; + }, + hashAddNode(node) { + var hash = FS.hashName(node.parent.id, node.name); + node.name_next = FS.nameTable[hash]; + FS.nameTable[hash] = node; + }, + hashRemoveNode(node) { + var hash = FS.hashName(node.parent.id, node.name); + if (FS.nameTable[hash] === node) { + FS.nameTable[hash] = node.name_next; + } else { + var current = FS.nameTable[hash]; + while (current) { + if (current.name_next === node) { + current.name_next = node.name_next; + break; + } + current = current.name_next; + } + } + }, + lookupNode(parent, name) { + var errCode = FS.mayLookup(parent); + if (errCode) { + throw new FS.ErrnoError(errCode); + } + var hash = FS.hashName(parent.id, name); + for (var node = FS.nameTable[hash]; node; node = node.name_next) { + var nodeName = node.name; + if (node.parent.id === parent.id && nodeName === name) { + return node; + } + } + // if we failed to find it in the cache, call into the VFS + return FS.lookup(parent, name); + }, + createNode(parent, name, mode, rdev) { + var node = new FS.FSNode(parent, name, mode, rdev); + FS.hashAddNode(node); + return node; + }, + destroyNode(node) { + FS.hashRemoveNode(node); + }, + isRoot(node) { + return node === node.parent; + }, + isMountpoint(node) { + return !!node.mounted; + }, + isFile(mode) { + return (mode & 61440) === 32768; + }, + isDir(mode) { + return (mode & 61440) === 16384; + }, + isLink(mode) { + return (mode & 61440) === 40960; + }, + isChrdev(mode) { + return (mode & 61440) === 8192; + }, + isBlkdev(mode) { + return (mode & 61440) === 24576; + }, + isFIFO(mode) { + return (mode & 61440) === 4096; + }, + isSocket(mode) { + return (mode & 49152) === 49152; + }, + flagsToPermissionString(flag) { + var perms = [ "r", "w", "rw" ][flag & 3]; + if ((flag & 512)) { + perms += "w"; + } + return perms; + }, + nodePermissions(node, perms) { + if (FS.ignorePermissions) { + return 0; + } + // return 0 if any user, group or owner bits are set. + if (perms.includes("r") && !(node.mode & 292)) { + return 2; + } + if (perms.includes("w") && !(node.mode & 146)) { + return 2; + } + if (perms.includes("x") && !(node.mode & 73)) { + return 2; + } + return 0; + }, + mayLookup(dir) { + if (!FS.isDir(dir.mode)) return 54; + var errCode = FS.nodePermissions(dir, "x"); + if (errCode) return errCode; + if (!dir.node_ops.lookup) return 2; + return 0; + }, + mayCreate(dir, name) { + if (!FS.isDir(dir.mode)) { + return 54; + } + try { + var node = FS.lookupNode(dir, name); + return 20; + } catch (e) {} + return FS.nodePermissions(dir, "wx"); + }, + mayDelete(dir, name, isdir) { + var node; + try { + node = FS.lookupNode(dir, name); + } catch (e) { + return e.errno; + } + var errCode = FS.nodePermissions(dir, "wx"); + if (errCode) { + return errCode; + } + if (isdir) { + if (!FS.isDir(node.mode)) { + return 54; + } + if (FS.isRoot(node) || FS.getPath(node) === FS.cwd()) { + return 10; + } + } else if (FS.isDir(node.mode)) { + return 31; + } + return 0; + }, + mayOpen(node, flags) { + if (!node) { + return 44; + } + if (FS.isLink(node.mode)) { + return 32; + } + var mode = FS.flagsToPermissionString(flags); + if (FS.isDir(node.mode)) { + // opening for write + // TODO: check for O_SEARCH? (== search for dir only) + if (mode !== "r" || (flags & (512 | 64))) { + return 31; + } + } + return FS.nodePermissions(node, mode); + }, + checkOpExists(op, err) { + if (!op) { + throw new FS.ErrnoError(err); + } + return op; + }, + MAX_OPEN_FDS: 4096, + nextfd() { + for (var fd = 0; fd <= FS.MAX_OPEN_FDS; fd++) { + if (!FS.streams[fd]) { + return fd; + } + } + throw new FS.ErrnoError(33); + }, + getStreamChecked(fd) { + var stream = FS.getStream(fd); + if (!stream) { + throw new FS.ErrnoError(8); + } + return stream; + }, + getStream: fd => FS.streams[fd], + createStream(stream, fd = -1) { + // clone it, so we can return an instance of FSStream + stream = Object.assign(new FS.FSStream, stream); + if (fd == -1) { + fd = FS.nextfd(); + } + stream.fd = fd; + FS.streams[fd] = stream; + return stream; + }, + closeStream(fd) { + FS.streams[fd] = null; + }, + dupStream(origStream, fd = -1) { + var stream = FS.createStream(origStream, fd); + stream.stream_ops?.dup?.(stream); + return stream; + }, + doSetAttr(stream, node, attr) { + var setattr = stream?.stream_ops.setattr; + var arg = setattr ? stream : node; + setattr ??= node.node_ops.setattr; + FS.checkOpExists(setattr, 63); + setattr(arg, attr); + }, + chrdev_stream_ops: { + open(stream) { + var device = FS.getDevice(stream.node.rdev); + // override node's stream ops with the device's + stream.stream_ops = device.stream_ops; + // forward the open call + stream.stream_ops.open?.(stream); + }, + llseek() { + throw new FS.ErrnoError(70); + } + }, + major: dev => ((dev) >> 8), + minor: dev => ((dev) & 255), + makedev: (ma, mi) => ((ma) << 8 | (mi)), + registerDevice(dev, ops) { + FS.devices[dev] = { + stream_ops: ops + }; + }, + getDevice: dev => FS.devices[dev], + getMounts(mount) { + var mounts = []; + var check = [ mount ]; + while (check.length) { + var m = check.pop(); + mounts.push(m); + check.push(...m.mounts); + } + return mounts; + }, + syncfs(populate, callback) { + if (typeof populate == "function") { + callback = populate; + populate = false; + } + FS.syncFSRequests++; + if (FS.syncFSRequests > 1) { + err(`warning: ${FS.syncFSRequests} FS.syncfs operations in flight at once, probably just doing extra work`); + } + var mounts = FS.getMounts(FS.root.mount); + var completed = 0; + function doCallback(errCode) { + FS.syncFSRequests--; + return callback(errCode); + } + function done(errCode) { + if (errCode) { + if (!done.errored) { + done.errored = true; + return doCallback(errCode); + } + return; + } + if (++completed >= mounts.length) { + doCallback(null); + } + } + // sync all mounts + for (var mount of mounts) { + if (mount.type.syncfs) { + mount.type.syncfs(mount, populate, done); + } else { + done(null); + } + } + }, + mount(type, opts, mountpoint) { + var root = mountpoint === "/"; + var pseudo = !mountpoint; + var node; + if (root && FS.root) { + throw new FS.ErrnoError(10); + } else if (!root && !pseudo) { + var lookup = FS.lookupPath(mountpoint, { + follow_mount: false + }); + mountpoint = lookup.path; + // use the absolute path + node = lookup.node; + if (FS.isMountpoint(node)) { + throw new FS.ErrnoError(10); + } + if (!FS.isDir(node.mode)) { + throw new FS.ErrnoError(54); + } + } + var mount = { + type, + opts, + mountpoint, + mounts: [] + }; + // create a root node for the fs + var mountRoot = type.mount(mount); + mountRoot.mount = mount; + mount.root = mountRoot; + if (root) { + FS.root = mountRoot; + } else if (node) { + // set as a mountpoint + node.mounted = mount; + // add the new mount to the current mount's children + if (node.mount) { + node.mount.mounts.push(mount); + } + } + return mountRoot; + }, + unmount(mountpoint) { + var lookup = FS.lookupPath(mountpoint, { + follow_mount: false + }); + if (!FS.isMountpoint(lookup.node)) { + throw new FS.ErrnoError(28); + } + // destroy the nodes for this mount, and all its child mounts + var node = lookup.node; + var mount = node.mounted; + var mounts = FS.getMounts(mount); + for (var [hash, current] of Object.entries(FS.nameTable)) { + while (current) { + var next = current.name_next; + if (mounts.includes(current.mount)) { + FS.destroyNode(current); + } + current = next; + } + } + // no longer a mountpoint + node.mounted = null; + // remove this mount from the child mounts + var idx = node.mount.mounts.indexOf(mount); + node.mount.mounts.splice(idx, 1); + }, + lookup(parent, name) { + return parent.node_ops.lookup(parent, name); + }, + mknod(path, mode, dev) { + var lookup = FS.lookupPath(path, { + parent: true + }); + var parent = lookup.node; + var name = PATH.basename(path); + if (!name) { + throw new FS.ErrnoError(28); + } + if (name === "." || name === "..") { + throw new FS.ErrnoError(20); + } + var errCode = FS.mayCreate(parent, name); + if (errCode) { + throw new FS.ErrnoError(errCode); + } + if (!parent.node_ops.mknod) { + throw new FS.ErrnoError(63); + } + return parent.node_ops.mknod(parent, name, mode, dev); + }, + statfs(path) { + return FS.statfsNode(FS.lookupPath(path, { + follow: true + }).node); + }, + statfsStream(stream) { + // We keep a separate statfsStream function because noderawfs overrides + // it. In noderawfs, stream.node is sometimes null. Instead, we need to + // look at stream.path. + return FS.statfsNode(stream.node); + }, + statfsNode(node) { + // NOTE: None of the defaults here are true. We're just returning safe and + // sane values. Currently nodefs and rawfs replace these defaults, + // other file systems leave them alone. + var rtn = { + bsize: 4096, + frsize: 4096, + blocks: 1e6, + bfree: 5e5, + bavail: 5e5, + files: FS.nextInode, + ffree: FS.nextInode - 1, + fsid: 42, + flags: 2, + namelen: 255 + }; + if (node.node_ops.statfs) { + Object.assign(rtn, node.node_ops.statfs(node.mount.opts.root)); + } + return rtn; + }, + create(path, mode = 438) { + mode &= 4095; + mode |= 32768; + return FS.mknod(path, mode, 0); + }, + mkdir(path, mode = 511) { + mode &= 511 | 512; + mode |= 16384; + return FS.mknod(path, mode, 0); + }, + mkdirTree(path, mode) { + var dirs = path.split("/"); + var d = ""; + for (var dir of dirs) { + if (!dir) continue; + if (d || PATH.isAbs(path)) d += "/"; + d += dir; + try { + FS.mkdir(d, mode); + } catch (e) { + if (e.errno != 20) throw e; + } + } + }, + mkdev(path, mode, dev) { + if (typeof dev == "undefined") { + dev = mode; + mode = 438; + } + mode |= 8192; + return FS.mknod(path, mode, dev); + }, + symlink(oldpath, newpath) { + if (!PATH_FS.resolve(oldpath)) { + throw new FS.ErrnoError(44); + } + var lookup = FS.lookupPath(newpath, { + parent: true + }); + var parent = lookup.node; + if (!parent) { + throw new FS.ErrnoError(44); + } + var newname = PATH.basename(newpath); + var errCode = FS.mayCreate(parent, newname); + if (errCode) { + throw new FS.ErrnoError(errCode); + } + if (!parent.node_ops.symlink) { + throw new FS.ErrnoError(63); + } + return parent.node_ops.symlink(parent, newname, oldpath); + }, + rename(old_path, new_path) { + var old_dirname = PATH.dirname(old_path); + var new_dirname = PATH.dirname(new_path); + var old_name = PATH.basename(old_path); + var new_name = PATH.basename(new_path); + // parents must exist + var lookup, old_dir, new_dir; + // let the errors from non existent directories percolate up + lookup = FS.lookupPath(old_path, { + parent: true + }); + old_dir = lookup.node; + lookup = FS.lookupPath(new_path, { + parent: true + }); + new_dir = lookup.node; + if (!old_dir || !new_dir) throw new FS.ErrnoError(44); + // need to be part of the same mount + if (old_dir.mount !== new_dir.mount) { + throw new FS.ErrnoError(75); + } + // source must exist + var old_node = FS.lookupNode(old_dir, old_name); + // old path should not be an ancestor of the new path + var relative = PATH_FS.relative(old_path, new_dirname); + if (relative.charAt(0) !== ".") { + throw new FS.ErrnoError(28); + } + // new path should not be an ancestor of the old path + relative = PATH_FS.relative(new_path, old_dirname); + if (relative.charAt(0) !== ".") { + throw new FS.ErrnoError(55); + } + // see if the new path already exists + var new_node; + try { + new_node = FS.lookupNode(new_dir, new_name); + } catch (e) {} + // early out if nothing needs to change + if (old_node === new_node) { + return; + } + // we'll need to delete the old entry + var isdir = FS.isDir(old_node.mode); + var errCode = FS.mayDelete(old_dir, old_name, isdir); + if (errCode) { + throw new FS.ErrnoError(errCode); + } + // need delete permissions if we'll be overwriting. + // need create permissions if new doesn't already exist. + errCode = new_node ? FS.mayDelete(new_dir, new_name, isdir) : FS.mayCreate(new_dir, new_name); + if (errCode) { + throw new FS.ErrnoError(errCode); + } + if (!old_dir.node_ops.rename) { + throw new FS.ErrnoError(63); + } + if (FS.isMountpoint(old_node) || (new_node && FS.isMountpoint(new_node))) { + throw new FS.ErrnoError(10); + } + // if we are going to change the parent, check write permissions + if (new_dir !== old_dir) { + errCode = FS.nodePermissions(old_dir, "w"); + if (errCode) { + throw new FS.ErrnoError(errCode); + } + } + // remove the node from the lookup hash + FS.hashRemoveNode(old_node); + // do the underlying fs rename + try { + old_dir.node_ops.rename(old_node, new_dir, new_name); + // update old node (we do this here to avoid each backend + // needing to) + old_node.parent = new_dir; + } catch (e) { + throw e; + } finally { + // add the node back to the hash (in case node_ops.rename + // changed its name) + FS.hashAddNode(old_node); + } + }, + rmdir(path) { + var lookup = FS.lookupPath(path, { + parent: true + }); + var parent = lookup.node; + var name = PATH.basename(path); + var node = FS.lookupNode(parent, name); + var errCode = FS.mayDelete(parent, name, true); + if (errCode) { + throw new FS.ErrnoError(errCode); + } + if (!parent.node_ops.rmdir) { + throw new FS.ErrnoError(63); + } + if (FS.isMountpoint(node)) { + throw new FS.ErrnoError(10); + } + parent.node_ops.rmdir(parent, name); + FS.destroyNode(node); + }, + readdir(path) { + var lookup = FS.lookupPath(path, { + follow: true + }); + var node = lookup.node; + var readdir = FS.checkOpExists(node.node_ops.readdir, 54); + return readdir(node); + }, + unlink(path) { + var lookup = FS.lookupPath(path, { + parent: true + }); + var parent = lookup.node; + if (!parent) { + throw new FS.ErrnoError(44); + } + var name = PATH.basename(path); + var node = FS.lookupNode(parent, name); + var errCode = FS.mayDelete(parent, name, false); + if (errCode) { + // According to POSIX, we should map EISDIR to EPERM, but + // we instead do what Linux does (and we must, as we use + // the musl linux libc). + throw new FS.ErrnoError(errCode); + } + if (!parent.node_ops.unlink) { + throw new FS.ErrnoError(63); + } + if (FS.isMountpoint(node)) { + throw new FS.ErrnoError(10); + } + parent.node_ops.unlink(parent, name); + FS.destroyNode(node); + }, + readlink(path) { + var lookup = FS.lookupPath(path); + var link = lookup.node; + if (!link) { + throw new FS.ErrnoError(44); + } + if (!link.node_ops.readlink) { + throw new FS.ErrnoError(28); + } + return link.node_ops.readlink(link); + }, + stat(path, dontFollow) { + var lookup = FS.lookupPath(path, { + follow: !dontFollow + }); + var node = lookup.node; + var getattr = FS.checkOpExists(node.node_ops.getattr, 63); + return getattr(node); + }, + fstat(fd) { + var stream = FS.getStreamChecked(fd); + var node = stream.node; + var getattr = stream.stream_ops.getattr; + var arg = getattr ? stream : node; + getattr ??= node.node_ops.getattr; + FS.checkOpExists(getattr, 63); + return getattr(arg); + }, + lstat(path) { + return FS.stat(path, true); + }, + doChmod(stream, node, mode, dontFollow) { + FS.doSetAttr(stream, node, { + mode: (mode & 4095) | (node.mode & ~4095), + ctime: Date.now(), + dontFollow + }); + }, + chmod(path, mode, dontFollow) { + var node; + if (typeof path == "string") { + var lookup = FS.lookupPath(path, { + follow: !dontFollow + }); + node = lookup.node; + } else { + node = path; + } + FS.doChmod(null, node, mode, dontFollow); + }, + lchmod(path, mode) { + FS.chmod(path, mode, true); + }, + fchmod(fd, mode) { + var stream = FS.getStreamChecked(fd); + FS.doChmod(stream, stream.node, mode, false); + }, + doChown(stream, node, dontFollow) { + FS.doSetAttr(stream, node, { + timestamp: Date.now(), + dontFollow + }); + }, + chown(path, uid, gid, dontFollow) { + var node; + if (typeof path == "string") { + var lookup = FS.lookupPath(path, { + follow: !dontFollow + }); + node = lookup.node; + } else { + node = path; + } + FS.doChown(null, node, dontFollow); + }, + lchown(path, uid, gid) { + FS.chown(path, uid, gid, true); + }, + fchown(fd, uid, gid) { + var stream = FS.getStreamChecked(fd); + FS.doChown(stream, stream.node, false); + }, + doTruncate(stream, node, len) { + if (FS.isDir(node.mode)) { + throw new FS.ErrnoError(31); + } + if (!FS.isFile(node.mode)) { + throw new FS.ErrnoError(28); + } + var errCode = FS.nodePermissions(node, "w"); + if (errCode) { + throw new FS.ErrnoError(errCode); + } + FS.doSetAttr(stream, node, { + size: len, + timestamp: Date.now() + }); + }, + truncate(path, len) { + if (len < 0) { + throw new FS.ErrnoError(28); + } + var node; + if (typeof path == "string") { + var lookup = FS.lookupPath(path, { + follow: true + }); + node = lookup.node; + } else { + node = path; + } + FS.doTruncate(null, node, len); + }, + ftruncate(fd, len) { + var stream = FS.getStreamChecked(fd); + if (len < 0 || (stream.flags & 2097155) === 0) { + throw new FS.ErrnoError(28); + } + FS.doTruncate(stream, stream.node, len); + }, + utime(path, atime, mtime) { + var lookup = FS.lookupPath(path, { + follow: true + }); + var node = lookup.node; + var setattr = FS.checkOpExists(node.node_ops.setattr, 63); + setattr(node, { + atime, + mtime + }); + }, + open(path, flags, mode = 438) { + if (path === "") { + throw new FS.ErrnoError(44); + } + flags = typeof flags == "string" ? FS_modeStringToFlags(flags) : flags; + if ((flags & 64)) { + mode = (mode & 4095) | 32768; + } else { + mode = 0; + } + var node; + var isDirPath; + if (typeof path == "object") { + node = path; + } else { + isDirPath = path.endsWith("/"); + // noent_okay makes it so that if the final component of the path + // doesn't exist, lookupPath returns `node: undefined`. `path` will be + // updated to point to the target of all symlinks. + var lookup = FS.lookupPath(path, { + follow: !(flags & 131072), + noent_okay: true + }); + node = lookup.node; + path = lookup.path; + } + // perhaps we need to create the node + var created = false; + if ((flags & 64)) { + if (node) { + // if O_CREAT and O_EXCL are set, error out if the node already exists + if ((flags & 128)) { + throw new FS.ErrnoError(20); + } + } else if (isDirPath) { + throw new FS.ErrnoError(31); + } else { + // node doesn't exist, try to create it + // Ignore the permission bits here to ensure we can `open` this new + // file below. We use chmod below to apply the permissions once the + // file is open. + node = FS.mknod(path, mode | 511, 0); + created = true; + } + } + if (!node) { + throw new FS.ErrnoError(44); + } + // can't truncate a device + if (FS.isChrdev(node.mode)) { + flags &= ~512; + } + // if asked only for a directory, then this must be one + if ((flags & 65536) && !FS.isDir(node.mode)) { + throw new FS.ErrnoError(54); + } + // check permissions, if this is not a file we just created now (it is ok to + // create and write to a file with read-only permissions; it is read-only + // for later use) + if (!created) { + var errCode = FS.mayOpen(node, flags); + if (errCode) { + throw new FS.ErrnoError(errCode); + } + } + // do truncation if necessary + if ((flags & 512) && !created) { + FS.truncate(node, 0); + } + // we've already handled these, don't pass down to the underlying vfs + flags &= ~(128 | 512 | 131072); + // register the stream with the filesystem + var stream = FS.createStream({ + node, + path: FS.getPath(node), + // we want the absolute path to the node + flags, + seekable: true, + position: 0, + stream_ops: node.stream_ops, + // used by the file family libc calls (fopen, fwrite, ferror, etc.) + ungotten: [], + error: false + }); + // call the new stream's open function + if (stream.stream_ops.open) { + stream.stream_ops.open(stream); + } + if (created) { + FS.chmod(node, mode & 511); + } + return stream; + }, + close(stream) { + if (FS.isClosed(stream)) { + throw new FS.ErrnoError(8); + } + if (stream.getdents) stream.getdents = null; + // free readdir state + try { + if (stream.stream_ops.close) { + stream.stream_ops.close(stream); + } + } catch (e) { + throw e; + } finally { + FS.closeStream(stream.fd); + } + stream.fd = null; + }, + isClosed(stream) { + return stream.fd === null; + }, + llseek(stream, offset, whence) { + if (FS.isClosed(stream)) { + throw new FS.ErrnoError(8); + } + if (!stream.seekable || !stream.stream_ops.llseek) { + throw new FS.ErrnoError(70); + } + if (whence != 0 && whence != 1 && whence != 2) { + throw new FS.ErrnoError(28); + } + stream.position = stream.stream_ops.llseek(stream, offset, whence); + stream.ungotten = []; + return stream.position; + }, + read(stream, buffer, offset, length, position) { + if (length < 0 || position < 0) { + throw new FS.ErrnoError(28); + } + if (FS.isClosed(stream)) { + throw new FS.ErrnoError(8); + } + if ((stream.flags & 2097155) === 1) { + throw new FS.ErrnoError(8); + } + if (FS.isDir(stream.node.mode)) { + throw new FS.ErrnoError(31); + } + if (!stream.stream_ops.read) { + throw new FS.ErrnoError(28); + } + var seeking = typeof position != "undefined"; + if (!seeking) { + position = stream.position; + } else if (!stream.seekable) { + throw new FS.ErrnoError(70); + } + var bytesRead = stream.stream_ops.read(stream, buffer, offset, length, position); + if (!seeking) stream.position += bytesRead; + return bytesRead; + }, + write(stream, buffer, offset, length, position, canOwn) { + if (length < 0 || position < 0) { + throw new FS.ErrnoError(28); + } + if (FS.isClosed(stream)) { + throw new FS.ErrnoError(8); + } + if ((stream.flags & 2097155) === 0) { + throw new FS.ErrnoError(8); + } + if (FS.isDir(stream.node.mode)) { + throw new FS.ErrnoError(31); + } + if (!stream.stream_ops.write) { + throw new FS.ErrnoError(28); + } + if (stream.seekable && stream.flags & 1024) { + // seek to the end before writing in append mode + FS.llseek(stream, 0, 2); + } + var seeking = typeof position != "undefined"; + if (!seeking) { + position = stream.position; + } else if (!stream.seekable) { + throw new FS.ErrnoError(70); + } + var bytesWritten = stream.stream_ops.write(stream, buffer, offset, length, position, canOwn); + if (!seeking) stream.position += bytesWritten; + return bytesWritten; + }, + mmap(stream, length, position, prot, flags) { + // User requests writing to file (prot & PROT_WRITE != 0). + // Checking if we have permissions to write to the file unless + // MAP_PRIVATE flag is set. According to POSIX spec it is possible + // to write to file opened in read-only mode with MAP_PRIVATE flag, + // as all modifications will be visible only in the memory of + // the current process. + if ((prot & 2) !== 0 && (flags & 2) === 0 && (stream.flags & 2097155) !== 2) { + throw new FS.ErrnoError(2); + } + if ((stream.flags & 2097155) === 1) { + throw new FS.ErrnoError(2); + } + if (!stream.stream_ops.mmap) { + throw new FS.ErrnoError(43); + } + if (!length) { + throw new FS.ErrnoError(28); + } + return stream.stream_ops.mmap(stream, length, position, prot, flags); + }, + msync(stream, buffer, offset, length, mmapFlags) { + if (!stream.stream_ops.msync) { + return 0; + } + return stream.stream_ops.msync(stream, buffer, offset, length, mmapFlags); + }, + ioctl(stream, cmd, arg) { + if (!stream.stream_ops.ioctl) { + throw new FS.ErrnoError(59); + } + return stream.stream_ops.ioctl(stream, cmd, arg); + }, + readFile(path, opts = {}) { + opts.flags = opts.flags || 0; + opts.encoding = opts.encoding || "binary"; + if (opts.encoding !== "utf8" && opts.encoding !== "binary") { + abort(`Invalid encoding type "${opts.encoding}"`); + } + var stream = FS.open(path, opts.flags); + var stat = FS.stat(path); + var length = stat.size; + var buf = new Uint8Array(length); + FS.read(stream, buf, 0, length, 0); + if (opts.encoding === "utf8") { + buf = UTF8ArrayToString(buf); + } + FS.close(stream); + return buf; + }, + writeFile(path, data, opts = {}) { + opts.flags = opts.flags || 577; + var stream = FS.open(path, opts.flags, opts.mode); + if (typeof data == "string") { + data = new Uint8Array(intArrayFromString(data, true)); + } + if (ArrayBuffer.isView(data)) { + FS.write(stream, data, 0, data.byteLength, undefined, opts.canOwn); + } else { + abort("Unsupported data type"); + } + FS.close(stream); + }, + cwd: () => FS.currentPath, + chdir(path) { + var lookup = FS.lookupPath(path, { + follow: true + }); + if (lookup.node === null) { + throw new FS.ErrnoError(44); + } + if (!FS.isDir(lookup.node.mode)) { + throw new FS.ErrnoError(54); + } + var errCode = FS.nodePermissions(lookup.node, "x"); + if (errCode) { + throw new FS.ErrnoError(errCode); + } + FS.currentPath = lookup.path; + }, + createDefaultDirectories() { + FS.mkdir("/tmp"); + FS.mkdir("/home"); + FS.mkdir("/home/web_user"); + }, + createDefaultDevices() { + // create /dev + FS.mkdir("/dev"); + // setup /dev/null + FS.registerDevice(FS.makedev(1, 3), { + read: () => 0, + write: (stream, buffer, offset, length, pos) => length, + llseek: () => 0 + }); + FS.mkdev("/dev/null", FS.makedev(1, 3)); + // setup /dev/tty and /dev/tty1 + // stderr needs to print output using err() rather than out() + // so we register a second tty just for it. + TTY.register(FS.makedev(5, 0), TTY.default_tty_ops); + TTY.register(FS.makedev(6, 0), TTY.default_tty1_ops); + FS.mkdev("/dev/tty", FS.makedev(5, 0)); + FS.mkdev("/dev/tty1", FS.makedev(6, 0)); + // setup /dev/[u]random + // use a buffer to avoid overhead of individual crypto calls per byte + var randomBuffer = new Uint8Array(1024), randomLeft = 0; + var randomByte = () => { + if (randomLeft === 0) { + randomFill(randomBuffer); + randomLeft = randomBuffer.byteLength; + } + return randomBuffer[--randomLeft]; + }; + FS.createDevice("/dev", "random", randomByte); + FS.createDevice("/dev", "urandom", randomByte); + // we're not going to emulate the actual shm device, + // just create the tmp dirs that reside in it commonly + FS.mkdir("/dev/shm"); + FS.mkdir("/dev/shm/tmp"); + }, + createSpecialDirectories() { + // create /proc/self/fd which allows /proc/self/fd/6 => readlink gives the + // name of the stream for fd 6 (see test_unistd_ttyname) + FS.mkdir("/proc"); + var proc_self = FS.mkdir("/proc/self"); + FS.mkdir("/proc/self/fd"); + FS.mount({ + mount() { + var node = FS.createNode(proc_self, "fd", 16895, 73); + node.stream_ops = { + llseek: MEMFS.stream_ops.llseek + }; + node.node_ops = { + lookup(parent, name) { + var fd = +name; + var stream = FS.getStreamChecked(fd); + var ret = { + parent: null, + mount: { + mountpoint: "fake" + }, + node_ops: { + readlink: () => stream.path + }, + id: fd + 1 + }; + ret.parent = ret; + // make it look like a simple root node + return ret; + }, + readdir() { + return Array.from(FS.streams.entries()).filter(([k, v]) => v).map(([k, v]) => k.toString()); + } + }; + return node; + } + }, {}, "/proc/self/fd"); + }, + createStandardStreams(input, output, error) { + // TODO deprecate the old functionality of a single + // input / output callback and that utilizes FS.createDevice + // and instead require a unique set of stream ops + // by default, we symlink the standard streams to the + // default tty devices. however, if the standard streams + // have been overwritten we create a unique device for + // them instead. + if (input) { + FS.createDevice("/dev", "stdin", input); + } else { + FS.symlink("/dev/tty", "/dev/stdin"); + } + if (output) { + FS.createDevice("/dev", "stdout", null, output); + } else { + FS.symlink("/dev/tty", "/dev/stdout"); + } + if (error) { + FS.createDevice("/dev", "stderr", null, error); + } else { + FS.symlink("/dev/tty1", "/dev/stderr"); + } + // open default streams for the stdin, stdout and stderr devices + var stdin = FS.open("/dev/stdin", 0); + var stdout = FS.open("/dev/stdout", 1); + var stderr = FS.open("/dev/stderr", 1); + }, + staticInit() { + FS.nameTable = new Array(4096); + FS.mount(MEMFS, {}, "/"); + FS.createDefaultDirectories(); + FS.createDefaultDevices(); + FS.createSpecialDirectories(); + FS.filesystems = { + "MEMFS": MEMFS + }; + }, + init(input, output, error) { + FS.initialized = true; + // Allow Module.stdin etc. to provide defaults, if none explicitly passed to us here + input ??= Module["stdin"]; + output ??= Module["stdout"]; + error ??= Module["stderr"]; + FS.createStandardStreams(input, output, error); + }, + quit() { + FS.initialized = false; + // force-flush all streams, so we get musl std streams printed out + // close all of our streams + for (var stream of FS.streams) { + if (stream) { + FS.close(stream); + } + } + }, + findObject(path, dontResolveLastLink) { + var ret = FS.analyzePath(path, dontResolveLastLink); + if (!ret.exists) { + return null; + } + return ret.object; + }, + analyzePath(path, dontResolveLastLink) { + // operate from within the context of the symlink's target + try { + var lookup = FS.lookupPath(path, { + follow: !dontResolveLastLink + }); + path = lookup.path; + } catch (e) {} + var ret = { + isRoot: false, + exists: false, + error: 0, + name: null, + path: null, + object: null, + parentExists: false, + parentPath: null, + parentObject: null + }; + try { + var lookup = FS.lookupPath(path, { + parent: true + }); + ret.parentExists = true; + ret.parentPath = lookup.path; + ret.parentObject = lookup.node; + ret.name = PATH.basename(path); + lookup = FS.lookupPath(path, { + follow: !dontResolveLastLink + }); + ret.exists = true; + ret.path = lookup.path; + ret.object = lookup.node; + ret.name = lookup.node.name; + ret.isRoot = lookup.path === "/"; + } catch (e) { + ret.error = e.errno; + } + return ret; + }, + createPath(parent, path, canRead, canWrite) { + parent = typeof parent == "string" ? parent : FS.getPath(parent); + var parts = path.split("/").reverse(); + while (parts.length) { + var part = parts.pop(); + if (!part) continue; + var current = PATH.join2(parent, part); + try { + FS.mkdir(current); + } catch (e) { + if (e.errno != 20) throw e; + } + parent = current; + } + return current; + }, + createFile(parent, name, properties, canRead, canWrite) { + var path = PATH.join2(typeof parent == "string" ? parent : FS.getPath(parent), name); + var mode = FS_getMode(canRead, canWrite); + return FS.create(path, mode); + }, + createDataFile(parent, name, data, canRead, canWrite, canOwn) { + var path = name; + if (parent) { + parent = typeof parent == "string" ? parent : FS.getPath(parent); + path = name ? PATH.join2(parent, name) : parent; + } + var mode = FS_getMode(canRead, canWrite); + var node = FS.create(path, mode); + if (data) { + if (typeof data == "string") { + var arr = new Array(data.length); + for (var i = 0, len = data.length; i < len; ++i) arr[i] = data.charCodeAt(i); + data = arr; + } + // make sure we can write to the file + FS.chmod(node, mode | 146); + var stream = FS.open(node, 577); + FS.write(stream, data, 0, data.length, 0, canOwn); + FS.close(stream); + FS.chmod(node, mode); + } + }, + createDevice(parent, name, input, output) { + var path = PATH.join2(typeof parent == "string" ? parent : FS.getPath(parent), name); + var mode = FS_getMode(!!input, !!output); + FS.createDevice.major ??= 64; + var dev = FS.makedev(FS.createDevice.major++, 0); + // Create a fake device that a set of stream ops to emulate + // the old behavior. + FS.registerDevice(dev, { + open(stream) { + stream.seekable = false; + }, + close(stream) { + // flush any pending line data + if (output?.buffer?.length) { + output(10); + } + }, + read(stream, buffer, offset, length, pos) { + var bytesRead = 0; + for (var i = 0; i < length; i++) { + var result; + try { + result = input(); + } catch (e) { + throw new FS.ErrnoError(29); + } + if (result === undefined && bytesRead === 0) { + throw new FS.ErrnoError(6); + } + if (result === null || result === undefined) break; + bytesRead++; + buffer[offset + i] = result; + } + if (bytesRead) { + stream.node.atime = Date.now(); + } + return bytesRead; + }, + write(stream, buffer, offset, length, pos) { + for (var i = 0; i < length; i++) { + try { + output(buffer[offset + i]); + } catch (e) { + throw new FS.ErrnoError(29); + } + } + if (length) { + stream.node.mtime = stream.node.ctime = Date.now(); + } + return i; + } + }); + return FS.mkdev(path, mode, dev); + }, + forceLoadFile(obj) { + if (obj.isDevice || obj.isFolder || obj.link || obj.contents) return true; + if (globalThis.XMLHttpRequest) { + abort("Lazy loading should have been performed (contents set) in createLazyFile, but it was not. Lazy loading only works in web workers. Use --embed-file or --preload-file in emcc on the main thread."); + } else { + // Command-line. + try { + obj.contents = readBinary(obj.url); + } catch (e) { + throw new FS.ErrnoError(29); + } + } + }, + createLazyFile(parent, name, url, canRead, canWrite) { + // Lazy chunked Uint8Array (implements get and length from Uint8Array). + // Actual getting is abstracted away for eventual reuse. + class LazyUint8Array { + lengthKnown=false; + chunks=[]; + // Loaded chunks. Index is the chunk number + get(idx) { + if (idx > this.length - 1 || idx < 0) { + return undefined; + } + var chunkOffset = idx % this.chunkSize; + var chunkNum = (idx / this.chunkSize) | 0; + return this.getter(chunkNum)[chunkOffset]; + } + setDataGetter(getter) { + this.getter = getter; + } + cacheLength() { + // Find length + var xhr = new XMLHttpRequest; + xhr.open("HEAD", url, false); + xhr.send(null); + if (!(xhr.status >= 200 && xhr.status < 300 || xhr.status === 304)) abort("Couldn't load " + url + ". Status: " + xhr.status); + var datalength = Number(xhr.getResponseHeader("Content-length")); + var header; + var hasByteServing = (header = xhr.getResponseHeader("Accept-Ranges")) && header === "bytes"; + var usesGzip = (header = xhr.getResponseHeader("Content-Encoding")) && header === "gzip"; + var chunkSize = 1024 * 1024; + // Chunk size in bytes + if (!hasByteServing) chunkSize = datalength; + // Function to get a range from the remote URL. + var doXHR = (from, to) => { + if (from > to) abort("invalid range (" + from + ", " + to + ") or no bytes requested!"); + if (to > datalength - 1) abort("only " + datalength + " bytes available! programmer error!"); + // TODO: Use mozResponseArrayBuffer, responseStream, etc. if available. + var xhr = new XMLHttpRequest; + xhr.open("GET", url, false); + if (datalength !== chunkSize) xhr.setRequestHeader("Range", "bytes=" + from + "-" + to); + // Some hints to the browser that we want binary data. + xhr.responseType = "arraybuffer"; + if (xhr.overrideMimeType) { + xhr.overrideMimeType("text/plain; charset=x-user-defined"); + } + xhr.send(null); + if (!(xhr.status >= 200 && xhr.status < 300 || xhr.status === 304)) abort("Couldn't load " + url + ". Status: " + xhr.status); + if (xhr.response !== undefined) { + return new Uint8Array(/** @type{Array} */ (xhr.response || [])); + } + return intArrayFromString(xhr.responseText || "", true); + }; + var lazyArray = this; + lazyArray.setDataGetter(chunkNum => { + var start = chunkNum * chunkSize; + var end = (chunkNum + 1) * chunkSize - 1; + // including this byte + end = Math.min(end, datalength - 1); + // if datalength-1 is selected, this is the last block + if (typeof lazyArray.chunks[chunkNum] == "undefined") { + lazyArray.chunks[chunkNum] = doXHR(start, end); + } + if (typeof lazyArray.chunks[chunkNum] == "undefined") abort("doXHR failed!"); + return lazyArray.chunks[chunkNum]; + }); + if (usesGzip || !datalength) { + // if the server uses gzip or doesn't supply the length, we have to download the whole file to get the (uncompressed) length + chunkSize = datalength = 1; + // this will force getter(0)/doXHR do download the whole file + datalength = this.getter(0).length; + chunkSize = datalength; + out("LazyFiles on gzip forces download of the whole file when length is accessed"); + } + this._length = datalength; + this._chunkSize = chunkSize; + this.lengthKnown = true; + } + get length() { + if (!this.lengthKnown) { + this.cacheLength(); + } + return this._length; + } + get chunkSize() { + if (!this.lengthKnown) { + this.cacheLength(); + } + return this._chunkSize; + } + } + if (globalThis.XMLHttpRequest) { + if (!ENVIRONMENT_IS_WORKER) abort("Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc"); + var lazyArray = new LazyUint8Array; + var properties = { + isDevice: false, + contents: lazyArray + }; + } else { + var properties = { + isDevice: false, + url + }; + } + var node = FS.createFile(parent, name, properties, canRead, canWrite); + // This is a total hack, but I want to get this lazy file code out of the + // core of MEMFS. If we want to keep this lazy file concept I feel it should + // be its own thin LAZYFS proxying calls to MEMFS. + if (properties.contents) { + node.contents = properties.contents; + } else if (properties.url) { + node.contents = null; + node.url = properties.url; + } + // Add a function that defers querying the file size until it is asked the first time. + Object.defineProperties(node, { + usedBytes: { + get: function() { + return this.contents.length; + } + } + }); + // override each stream op with one that tries to force load the lazy file first + var stream_ops = {}; + for (const [key, fn] of Object.entries(node.stream_ops)) { + stream_ops[key] = (...args) => { + FS.forceLoadFile(node); + return fn(...args); + }; + } + function writeChunks(stream, buffer, offset, length, position) { + var contents = stream.node.contents; + if (position >= contents.length) return 0; + var size = Math.min(contents.length - position, length); + if (contents.slice) { + // normal array + for (var i = 0; i < size; i++) { + buffer[offset + i] = contents[position + i]; + } + } else { + for (var i = 0; i < size; i++) { + // LazyUint8Array from sync binary XHR + buffer[offset + i] = contents.get(position + i); + } + } + return size; + } + // use a custom read function + stream_ops.read = (stream, buffer, offset, length, position) => { + FS.forceLoadFile(node); + return writeChunks(stream, buffer, offset, length, position); + }; + // use a custom mmap function + stream_ops.mmap = (stream, length, position, prot, flags) => { + FS.forceLoadFile(node); + var ptr = mmapAlloc(length); + if (!ptr) { + throw new FS.ErrnoError(48); + } + writeChunks(stream, HEAP8, ptr, length, position); + return { + ptr, + allocated: true + }; + }; + node.stream_ops = stream_ops; + return node; + } +}; + +/** + * Given a pointer 'ptr' to a null-terminated UTF8-encoded string in the + * emscripten HEAP, returns a copy of that string as a Javascript String object. + * + * @param {number} ptr + * @param {number=} maxBytesToRead - An optional length that specifies the + * maximum number of bytes to read. You can omit this parameter to scan the + * string until the first 0 byte. If maxBytesToRead is passed, and the string + * at [ptr, ptr+maxBytesToReadr[ contains a null byte in the middle, then the + * string will cut short at that byte index. + * @param {boolean=} ignoreNul - If true, the function will not stop on a NUL character. + * @return {string} + */ var UTF8ToString = (ptr, maxBytesToRead, ignoreNul) => { + if (!ptr) return ""; + var end = findStringEnd(HEAPU8, ptr, maxBytesToRead, ignoreNul); + return UTF8Decoder.decode(HEAPU8.subarray(ptr, end)); +}; + +var SYSCALLS = { + calculateAt(dirfd, path, allowEmpty) { + if (PATH.isAbs(path)) { + return path; + } + // relative path + var dir; + if (dirfd === -100) { + dir = FS.cwd(); + } else { + var dirstream = SYSCALLS.getStreamFromFD(dirfd); + dir = dirstream.path; + } + if (path.length == 0) { + if (!allowEmpty) { + throw new FS.ErrnoError(44); + } + return dir; + } + return dir + "/" + path; + }, + writeStat(buf, stat) { + HEAPU32[((buf) >> 2)] = stat.dev; + HEAPU32[(((buf) + (4)) >> 2)] = stat.mode; + HEAPU32[(((buf) + (8)) >> 2)] = stat.nlink; + HEAPU32[(((buf) + (12)) >> 2)] = stat.uid; + HEAPU32[(((buf) + (16)) >> 2)] = stat.gid; + HEAPU32[(((buf) + (20)) >> 2)] = stat.rdev; + (tempI64 = [ stat.size >>> 0, (tempDouble = stat.size, (+(Math.abs(tempDouble))) >= 1 ? (tempDouble > 0 ? (+(Math.floor((tempDouble) / 4294967296))) >>> 0 : (~~((+(Math.ceil((tempDouble - +(((~~(tempDouble))) >>> 0)) / 4294967296))))) >>> 0) : 0) ], + HEAP32[(((buf) + (24)) >> 2)] = tempI64[0], HEAP32[(((buf) + (28)) >> 2)] = tempI64[1]); + HEAP32[(((buf) + (32)) >> 2)] = 4096; + HEAP32[(((buf) + (36)) >> 2)] = stat.blocks; + var atime = stat.atime.getTime(); + var mtime = stat.mtime.getTime(); + var ctime = stat.ctime.getTime(); + (tempI64 = [ Math.floor(atime / 1e3) >>> 0, (tempDouble = Math.floor(atime / 1e3), + (+(Math.abs(tempDouble))) >= 1 ? (tempDouble > 0 ? (+(Math.floor((tempDouble) / 4294967296))) >>> 0 : (~~((+(Math.ceil((tempDouble - +(((~~(tempDouble))) >>> 0)) / 4294967296))))) >>> 0) : 0) ], + HEAP32[(((buf) + (40)) >> 2)] = tempI64[0], HEAP32[(((buf) + (44)) >> 2)] = tempI64[1]); + HEAPU32[(((buf) + (48)) >> 2)] = (atime % 1e3) * 1e3 * 1e3; + (tempI64 = [ Math.floor(mtime / 1e3) >>> 0, (tempDouble = Math.floor(mtime / 1e3), + (+(Math.abs(tempDouble))) >= 1 ? (tempDouble > 0 ? (+(Math.floor((tempDouble) / 4294967296))) >>> 0 : (~~((+(Math.ceil((tempDouble - +(((~~(tempDouble))) >>> 0)) / 4294967296))))) >>> 0) : 0) ], + HEAP32[(((buf) + (56)) >> 2)] = tempI64[0], HEAP32[(((buf) + (60)) >> 2)] = tempI64[1]); + HEAPU32[(((buf) + (64)) >> 2)] = (mtime % 1e3) * 1e3 * 1e3; + (tempI64 = [ Math.floor(ctime / 1e3) >>> 0, (tempDouble = Math.floor(ctime / 1e3), + (+(Math.abs(tempDouble))) >= 1 ? (tempDouble > 0 ? (+(Math.floor((tempDouble) / 4294967296))) >>> 0 : (~~((+(Math.ceil((tempDouble - +(((~~(tempDouble))) >>> 0)) / 4294967296))))) >>> 0) : 0) ], + HEAP32[(((buf) + (72)) >> 2)] = tempI64[0], HEAP32[(((buf) + (76)) >> 2)] = tempI64[1]); + HEAPU32[(((buf) + (80)) >> 2)] = (ctime % 1e3) * 1e3 * 1e3; + (tempI64 = [ stat.ino >>> 0, (tempDouble = stat.ino, (+(Math.abs(tempDouble))) >= 1 ? (tempDouble > 0 ? (+(Math.floor((tempDouble) / 4294967296))) >>> 0 : (~~((+(Math.ceil((tempDouble - +(((~~(tempDouble))) >>> 0)) / 4294967296))))) >>> 0) : 0) ], + HEAP32[(((buf) + (88)) >> 2)] = tempI64[0], HEAP32[(((buf) + (92)) >> 2)] = tempI64[1]); + return 0; + }, + writeStatFs(buf, stats) { + HEAPU32[(((buf) + (4)) >> 2)] = stats.bsize; + HEAPU32[(((buf) + (60)) >> 2)] = stats.bsize; + (tempI64 = [ stats.blocks >>> 0, (tempDouble = stats.blocks, (+(Math.abs(tempDouble))) >= 1 ? (tempDouble > 0 ? (+(Math.floor((tempDouble) / 4294967296))) >>> 0 : (~~((+(Math.ceil((tempDouble - +(((~~(tempDouble))) >>> 0)) / 4294967296))))) >>> 0) : 0) ], + HEAP32[(((buf) + (8)) >> 2)] = tempI64[0], HEAP32[(((buf) + (12)) >> 2)] = tempI64[1]); + (tempI64 = [ stats.bfree >>> 0, (tempDouble = stats.bfree, (+(Math.abs(tempDouble))) >= 1 ? (tempDouble > 0 ? (+(Math.floor((tempDouble) / 4294967296))) >>> 0 : (~~((+(Math.ceil((tempDouble - +(((~~(tempDouble))) >>> 0)) / 4294967296))))) >>> 0) : 0) ], + HEAP32[(((buf) + (16)) >> 2)] = tempI64[0], HEAP32[(((buf) + (20)) >> 2)] = tempI64[1]); + (tempI64 = [ stats.bavail >>> 0, (tempDouble = stats.bavail, (+(Math.abs(tempDouble))) >= 1 ? (tempDouble > 0 ? (+(Math.floor((tempDouble) / 4294967296))) >>> 0 : (~~((+(Math.ceil((tempDouble - +(((~~(tempDouble))) >>> 0)) / 4294967296))))) >>> 0) : 0) ], + HEAP32[(((buf) + (24)) >> 2)] = tempI64[0], HEAP32[(((buf) + (28)) >> 2)] = tempI64[1]); + (tempI64 = [ stats.files >>> 0, (tempDouble = stats.files, (+(Math.abs(tempDouble))) >= 1 ? (tempDouble > 0 ? (+(Math.floor((tempDouble) / 4294967296))) >>> 0 : (~~((+(Math.ceil((tempDouble - +(((~~(tempDouble))) >>> 0)) / 4294967296))))) >>> 0) : 0) ], + HEAP32[(((buf) + (32)) >> 2)] = tempI64[0], HEAP32[(((buf) + (36)) >> 2)] = tempI64[1]); + (tempI64 = [ stats.ffree >>> 0, (tempDouble = stats.ffree, (+(Math.abs(tempDouble))) >= 1 ? (tempDouble > 0 ? (+(Math.floor((tempDouble) / 4294967296))) >>> 0 : (~~((+(Math.ceil((tempDouble - +(((~~(tempDouble))) >>> 0)) / 4294967296))))) >>> 0) : 0) ], + HEAP32[(((buf) + (40)) >> 2)] = tempI64[0], HEAP32[(((buf) + (44)) >> 2)] = tempI64[1]); + HEAPU32[(((buf) + (48)) >> 2)] = stats.fsid; + HEAPU32[(((buf) + (64)) >> 2)] = stats.flags; + // ST_NOSUID + HEAPU32[(((buf) + (56)) >> 2)] = stats.namelen; + }, + doMsync(addr, stream, len, flags, offset) { + if (!FS.isFile(stream.node.mode)) { + throw new FS.ErrnoError(43); + } + if (flags & 2) { + // MAP_PRIVATE calls need not to be synced back to underlying fs + return 0; + } + var buffer = HEAPU8.slice(addr, addr + len); + FS.msync(stream, buffer, offset, len, flags); + }, + getStreamFromFD(fd) { + var stream = FS.getStreamChecked(fd); + return stream; + }, + varargs: undefined, + getStr(ptr) { + var ret = UTF8ToString(ptr); + return ret; + } +}; + +function ___syscall_dup(fd) { + try { + var old = SYSCALLS.getStreamFromFD(fd); + return FS.dupStream(old).fd; + } catch (e) { + if (typeof FS == "undefined" || !(e.name === "ErrnoError")) throw e; + return -e.errno; + } +} + +function ___syscall_faccessat(dirfd, path, amode, flags) { + try { + path = SYSCALLS.getStr(path); + path = SYSCALLS.calculateAt(dirfd, path); + if (amode & ~7) { + // need a valid mode + return -28; + } + var lookup = FS.lookupPath(path, { + follow: true + }); + var node = lookup.node; + if (!node) { + return -44; + } + var perms = ""; + if (amode & 4) perms += "r"; + if (amode & 2) perms += "w"; + if (amode & 1) perms += "x"; + if (perms && FS.nodePermissions(node, perms)) { + return -2; + } + return 0; + } catch (e) { + if (typeof FS == "undefined" || !(e.name === "ErrnoError")) throw e; + return -e.errno; + } +} + +var syscallGetVarargI = () => { + // the `+` prepended here is necessary to convince the JSCompiler that varargs is indeed a number. + var ret = HEAP32[((+SYSCALLS.varargs) >> 2)]; + SYSCALLS.varargs += 4; + return ret; +}; + +var syscallGetVarargP = syscallGetVarargI; + +function ___syscall_fcntl64(fd, cmd, varargs) { + SYSCALLS.varargs = varargs; + try { + var stream = SYSCALLS.getStreamFromFD(fd); + switch (cmd) { + case 0: + { + var arg = syscallGetVarargI(); + if (arg < 0) { + return -28; + } + while (FS.streams[arg]) { + arg++; + } + var newStream; + newStream = FS.dupStream(stream, arg); + return newStream.fd; + } + + case 1: + case 2: + return 0; + + // FD_CLOEXEC makes no sense for a single process. + case 3: + return stream.flags; + + case 4: + { + var arg = syscallGetVarargI(); + stream.flags |= arg; + return 0; + } + + case 12: + { + var arg = syscallGetVarargP(); + var offset = 0; + // We're always unlocked. + HEAP16[(((arg) + (offset)) >> 1)] = 2; + return 0; + } + + case 13: + case 14: + // Pretend that the locking is successful. These are process-level locks, + // and Emscripten programs are a single process. If we supported linking a + // filesystem between programs, we'd need to do more here. + // See https://github.com/emscripten-core/emscripten/issues/23697 + return 0; + } + return -28; + } catch (e) { + if (typeof FS == "undefined" || !(e.name === "ErrnoError")) throw e; + return -e.errno; + } +} + +function ___syscall_fstat64(fd, buf) { + try { + return SYSCALLS.writeStat(buf, FS.fstat(fd)); + } catch (e) { + if (typeof FS == "undefined" || !(e.name === "ErrnoError")) throw e; + return -e.errno; + } +} + +var convertI32PairToI53Checked = (lo, hi) => ((hi + 2097152) >>> 0 < 4194305 - !!lo) ? (lo >>> 0) + hi * 4294967296 : NaN; + +function ___syscall_ftruncate64(fd, length_low, length_high) { + var length = convertI32PairToI53Checked(length_low, length_high); + try { + if (isNaN(length)) return -61; + FS.ftruncate(fd, length); + return 0; + } catch (e) { + if (typeof FS == "undefined" || !(e.name === "ErrnoError")) throw e; + return -e.errno; + } +} + +function ___syscall_ioctl(fd, op, varargs) { + SYSCALLS.varargs = varargs; + try { + var stream = SYSCALLS.getStreamFromFD(fd); + switch (op) { + case 21509: + { + if (!stream.tty) return -59; + return 0; + } + + case 21505: + { + if (!stream.tty) return -59; + if (stream.tty.ops.ioctl_tcgets) { + var termios = stream.tty.ops.ioctl_tcgets(stream); + var argp = syscallGetVarargP(); + HEAP32[((argp) >> 2)] = termios.c_iflag || 0; + HEAP32[(((argp) + (4)) >> 2)] = termios.c_oflag || 0; + HEAP32[(((argp) + (8)) >> 2)] = termios.c_cflag || 0; + HEAP32[(((argp) + (12)) >> 2)] = termios.c_lflag || 0; + for (var i = 0; i < 32; i++) { + HEAP8[(argp + i) + (17)] = termios.c_cc[i] || 0; + } + return 0; + } + return 0; + } + + case 21510: + case 21511: + case 21512: + { + if (!stream.tty) return -59; + return 0; + } + + case 21506: + case 21507: + case 21508: + { + if (!stream.tty) return -59; + if (stream.tty.ops.ioctl_tcsets) { + var argp = syscallGetVarargP(); + var c_iflag = HEAP32[((argp) >> 2)]; + var c_oflag = HEAP32[(((argp) + (4)) >> 2)]; + var c_cflag = HEAP32[(((argp) + (8)) >> 2)]; + var c_lflag = HEAP32[(((argp) + (12)) >> 2)]; + var c_cc = []; + for (var i = 0; i < 32; i++) { + c_cc.push(HEAP8[(argp + i) + (17)]); + } + return stream.tty.ops.ioctl_tcsets(stream.tty, op, { + c_iflag, + c_oflag, + c_cflag, + c_lflag, + c_cc + }); + } + return 0; + } + + case 21519: + { + if (!stream.tty) return -59; + var argp = syscallGetVarargP(); + HEAP32[((argp) >> 2)] = 0; + return 0; + } + + case 21520: + { + if (!stream.tty) return -59; + return -28; + } + + case 21537: + case 21531: + { + var argp = syscallGetVarargP(); + return FS.ioctl(stream, op, argp); + } + + case 21523: + { + // TODO: in theory we should write to the winsize struct that gets + // passed in, but for now musl doesn't read anything on it + if (!stream.tty) return -59; + if (stream.tty.ops.ioctl_tiocgwinsz) { + var winsize = stream.tty.ops.ioctl_tiocgwinsz(stream.tty); + var argp = syscallGetVarargP(); + HEAP16[((argp) >> 1)] = winsize[0]; + HEAP16[(((argp) + (2)) >> 1)] = winsize[1]; + } + return 0; + } + + case 21524: + { + // TODO: technically, this ioctl call should change the window size. + // but, since emscripten doesn't have any concept of a terminal window + // yet, we'll just silently throw it away as we do TIOCGWINSZ + if (!stream.tty) return -59; + return 0; + } + + case 21515: + { + if (!stream.tty) return -59; + return 0; + } + + default: + return -28; + } + } catch (e) { + if (typeof FS == "undefined" || !(e.name === "ErrnoError")) throw e; + return -e.errno; + } +} + +function ___syscall_lstat64(path, buf) { + try { + path = SYSCALLS.getStr(path); + return SYSCALLS.writeStat(buf, FS.lstat(path)); + } catch (e) { + if (typeof FS == "undefined" || !(e.name === "ErrnoError")) throw e; + return -e.errno; + } +} + +function ___syscall_newfstatat(dirfd, path, buf, flags) { + try { + path = SYSCALLS.getStr(path); + var nofollow = flags & 256; + var allowEmpty = flags & 4096; + flags = flags & (~6400); + path = SYSCALLS.calculateAt(dirfd, path, allowEmpty); + return SYSCALLS.writeStat(buf, nofollow ? FS.lstat(path) : FS.stat(path)); + } catch (e) { + if (typeof FS == "undefined" || !(e.name === "ErrnoError")) throw e; + return -e.errno; + } +} + +function ___syscall_openat(dirfd, path, flags, varargs) { + SYSCALLS.varargs = varargs; + try { + path = SYSCALLS.getStr(path); + path = SYSCALLS.calculateAt(dirfd, path); + var mode = varargs ? syscallGetVarargI() : 0; + return FS.open(path, flags, mode).fd; + } catch (e) { + if (typeof FS == "undefined" || !(e.name === "ErrnoError")) throw e; + return -e.errno; + } +} + +function ___syscall_stat64(path, buf) { + try { + path = SYSCALLS.getStr(path); + return SYSCALLS.writeStat(buf, FS.stat(path)); + } catch (e) { + if (typeof FS == "undefined" || !(e.name === "ErrnoError")) throw e; + return -e.errno; + } +} + +var __abort_js = () => abort(""); + +var __embind_register_bigint = (primitiveType, name, size, minRange, maxRange) => {}; + +var AsciiToString = ptr => { + var str = ""; + while (1) { + var ch = HEAPU8[ptr++]; + if (!ch) return str; + str += String.fromCharCode(ch); + } +}; + +var awaitingDependencies = {}; + +var registeredTypes = {}; + +var typeDependencies = {}; + +var BindingError = class BindingError extends Error { + constructor(message) { + super(message); + this.name = "BindingError"; + } +}; + +var throwBindingError = message => { + throw new BindingError(message); +}; + +/** @param {Object=} options */ function sharedRegisterType(rawType, registeredInstance, options = {}) { + var name = registeredInstance.name; + if (!rawType) { + throwBindingError(`type "${name}" must have a positive integer typeid pointer`); + } + if (registeredTypes.hasOwnProperty(rawType)) { + if (options.ignoreDuplicateRegistrations) { + return; + } else { + throwBindingError(`Cannot register type '${name}' twice`); + } + } + registeredTypes[rawType] = registeredInstance; + delete typeDependencies[rawType]; + if (awaitingDependencies.hasOwnProperty(rawType)) { + var callbacks = awaitingDependencies[rawType]; + delete awaitingDependencies[rawType]; + callbacks.forEach(cb => cb()); + } +} + +/** @param {Object=} options */ function registerType(rawType, registeredInstance, options = {}) { + return sharedRegisterType(rawType, registeredInstance, options); +} + +/** @suppress {globalThis} */ var __embind_register_bool = (rawType, name, trueValue, falseValue) => { + name = AsciiToString(name); + registerType(rawType, { + name, + fromWireType: function(wt) { + // ambiguous emscripten ABI: sometimes return values are + // true or false, and sometimes integers (0 or 1) + return !!wt; + }, + toWireType: function(destructors, o) { + return o ? trueValue : falseValue; + }, + readValueFromPointer: function(pointer) { + return this.fromWireType(HEAPU8[pointer]); + }, + destructorFunction: null + }); +}; + +var emval_freelist = []; + +var emval_handles = [ 0, 1, , 1, null, 1, true, 1, false, 1 ]; + +var __emval_decref = handle => { + if (handle > 9 && 0 === --emval_handles[handle + 1]) { + emval_handles[handle] = undefined; + emval_freelist.push(handle); + } +}; + +var Emval = { + toValue: handle => { + if (!handle) { + throwBindingError(`Cannot use deleted val. handle = ${handle}`); + } + return emval_handles[handle]; + }, + toHandle: value => { + switch (value) { + case undefined: + return 2; + + case null: + return 4; + + case true: + return 6; + + case false: + return 8; + + default: + { + const handle = emval_freelist.pop() || emval_handles.length; + emval_handles[handle] = value; + emval_handles[handle + 1] = 1; + return handle; + } + } + } +}; + +/** @suppress {globalThis} */ function readPointer(pointer) { + return this.fromWireType(HEAPU32[((pointer) >> 2)]); +} + +var EmValType = { + name: "emscripten::val", + fromWireType: handle => { + var rv = Emval.toValue(handle); + __emval_decref(handle); + return rv; + }, + toWireType: (destructors, value) => Emval.toHandle(value), + readValueFromPointer: readPointer, + destructorFunction: null +}; + +var __embind_register_emval = rawType => registerType(rawType, EmValType); + +var floatReadValueFromPointer = (name, width) => { + switch (width) { + case 4: + return function(pointer) { + return this.fromWireType(HEAPF32[((pointer) >> 2)]); + }; + + case 8: + return function(pointer) { + return this.fromWireType(HEAPF64[((pointer) >> 3)]); + }; + + default: + throw new TypeError(`invalid float width (${width}): ${name}`); + } +}; + +var __embind_register_float = (rawType, name, size) => { + name = AsciiToString(name); + registerType(rawType, { + name, + fromWireType: value => value, + toWireType: (destructors, value) => value, + readValueFromPointer: floatReadValueFromPointer(name, size), + destructorFunction: null + }); +}; + +var integerReadValueFromPointer = (name, width, signed) => { + // integers are quite common, so generate very specialized functions + switch (width) { + case 1: + return signed ? pointer => HEAP8[pointer] : pointer => HEAPU8[pointer]; + + case 2: + return signed ? pointer => HEAP16[((pointer) >> 1)] : pointer => HEAPU16[((pointer) >> 1)]; + + case 4: + return signed ? pointer => HEAP32[((pointer) >> 2)] : pointer => HEAPU32[((pointer) >> 2)]; + + default: + throw new TypeError(`invalid integer width (${width}): ${name}`); + } +}; + +/** @suppress {globalThis} */ var __embind_register_integer = (primitiveType, name, size, minRange, maxRange) => { + name = AsciiToString(name); + const isUnsignedType = minRange === 0; + let fromWireType = value => value; + if (isUnsignedType) { + var bitshift = 32 - 8 * size; + fromWireType = value => (value << bitshift) >>> bitshift; + maxRange = fromWireType(maxRange); + } + registerType(primitiveType, { + name, + fromWireType, + toWireType: (destructors, value) => value, + readValueFromPointer: integerReadValueFromPointer(name, size, minRange !== 0), + destructorFunction: null + }); +}; + +var __embind_register_memory_view = (rawType, dataTypeIndex, name) => { + var typeMapping = [ Int8Array, Uint8Array, Int16Array, Uint16Array, Int32Array, Uint32Array, Float32Array, Float64Array ]; + var TA = typeMapping[dataTypeIndex]; + function decodeMemoryView(handle) { + var size = HEAPU32[((handle) >> 2)]; + var data = HEAPU32[(((handle) + (4)) >> 2)]; + return new TA(HEAP8.buffer, data, size); + } + name = AsciiToString(name); + registerType(rawType, { + name, + fromWireType: decodeMemoryView, + readValueFromPointer: decodeMemoryView + }, { + ignoreDuplicateRegistrations: true + }); +}; + +var stringToUTF8 = (str, outPtr, maxBytesToWrite) => stringToUTF8Array(str, HEAPU8, outPtr, maxBytesToWrite); + +var __embind_register_std_string = (rawType, name) => { + name = AsciiToString(name); + var stdStringIsUTF8 = true; + registerType(rawType, { + name, + // For some method names we use string keys here since they are part of + // the public/external API and/or used by the runtime-generated code. + fromWireType(value) { + var length = HEAPU32[((value) >> 2)]; + var payload = value + 4; + var str; + if (stdStringIsUTF8) { + str = UTF8ToString(payload, length, true); + } else { + str = ""; + for (var i = 0; i < length; ++i) { + str += String.fromCharCode(HEAPU8[payload + i]); + } + } + _free(value); + return str; + }, + toWireType(destructors, value) { + if (value instanceof ArrayBuffer) { + value = new Uint8Array(value); + } + var length; + var valueIsOfTypeString = (typeof value == "string"); + // We accept `string` or array views with single byte elements + if (!(valueIsOfTypeString || (ArrayBuffer.isView(value) && value.BYTES_PER_ELEMENT == 1))) { + throwBindingError("Cannot pass non-string to std::string"); + } + if (stdStringIsUTF8 && valueIsOfTypeString) { + length = lengthBytesUTF8(value); + } else { + length = value.length; + } + // assumes POINTER_SIZE alignment + var base = _malloc(4 + length + 1); + var ptr = base + 4; + HEAPU32[((base) >> 2)] = length; + if (valueIsOfTypeString) { + if (stdStringIsUTF8) { + stringToUTF8(value, ptr, length + 1); + } else { + for (var i = 0; i < length; ++i) { + var charCode = value.charCodeAt(i); + if (charCode > 255) { + _free(base); + throwBindingError("String has UTF-16 code units that do not fit in 8 bits"); + } + HEAPU8[ptr + i] = charCode; + } + } + } else { + HEAPU8.set(value, ptr); + } + if (destructors !== null) { + destructors.push(_free, base); + } + return base; + }, + readValueFromPointer: readPointer, + destructorFunction(ptr) { + _free(ptr); + } + }); +}; + +var UTF16Decoder = new TextDecoder("utf-16le"); + +var UTF16ToString = (ptr, maxBytesToRead, ignoreNul) => { + var idx = ((ptr) >> 1); + var endIdx = findStringEnd(HEAPU16, idx, maxBytesToRead / 2, ignoreNul); + return UTF16Decoder.decode(HEAPU16.subarray(idx, endIdx)); +}; + +var stringToUTF16 = (str, outPtr, maxBytesToWrite) => { + // Backwards compatibility: if max bytes is not specified, assume unsafe unbounded write is allowed. + maxBytesToWrite ??= 2147483647; + if (maxBytesToWrite < 2) return 0; + maxBytesToWrite -= 2; + // Null terminator. + var startPtr = outPtr; + var numCharsToWrite = (maxBytesToWrite < str.length * 2) ? (maxBytesToWrite / 2) : str.length; + for (var i = 0; i < numCharsToWrite; ++i) { + // charCodeAt returns a UTF-16 encoded code unit, so it can be directly written to the HEAP. + var codeUnit = str.charCodeAt(i); + // possibly a lead surrogate + HEAP16[((outPtr) >> 1)] = codeUnit; + outPtr += 2; + } + // Null-terminate the pointer to the HEAP. + HEAP16[((outPtr) >> 1)] = 0; + return outPtr - startPtr; +}; + +var lengthBytesUTF16 = str => str.length * 2; + +var UTF32ToString = (ptr, maxBytesToRead, ignoreNul) => { + var str = ""; + var startIdx = ((ptr) >> 2); + // If maxBytesToRead is not passed explicitly, it will be undefined, and this + // will always evaluate to true. This saves on code size. + for (var i = 0; !(i >= maxBytesToRead / 4); i++) { + var utf32 = HEAPU32[startIdx + i]; + if (!utf32 && !ignoreNul) break; + str += String.fromCodePoint(utf32); + } + return str; +}; + +var stringToUTF32 = (str, outPtr, maxBytesToWrite) => { + // Backwards compatibility: if max bytes is not specified, assume unsafe unbounded write is allowed. + maxBytesToWrite ??= 2147483647; + if (maxBytesToWrite < 4) return 0; + var startPtr = outPtr; + var endPtr = startPtr + maxBytesToWrite - 4; + for (var i = 0; i < str.length; ++i) { + var codePoint = str.codePointAt(i); + // Gotcha: if codePoint is over 0xFFFF, it is represented as a surrogate pair in UTF-16. + // We need to manually skip over the second code unit for correct iteration. + if (codePoint > 65535) { + i++; + } + HEAP32[((outPtr) >> 2)] = codePoint; + outPtr += 4; + if (outPtr + 4 > endPtr) break; + } + // Null-terminate the pointer to the HEAP. + HEAP32[((outPtr) >> 2)] = 0; + return outPtr - startPtr; +}; + +var lengthBytesUTF32 = str => { + var len = 0; + for (var i = 0; i < str.length; ++i) { + var codePoint = str.codePointAt(i); + // Gotcha: if codePoint is over 0xFFFF, it is represented as a surrogate pair in UTF-16. + // We need to manually skip over the second code unit for correct iteration. + if (codePoint > 65535) { + i++; + } + len += 4; + } + return len; +}; + +var __embind_register_std_wstring = (rawType, charSize, name) => { + name = AsciiToString(name); + var decodeString, encodeString, lengthBytesUTF; + if (charSize === 2) { + decodeString = UTF16ToString; + encodeString = stringToUTF16; + lengthBytesUTF = lengthBytesUTF16; + } else { + decodeString = UTF32ToString; + encodeString = stringToUTF32; + lengthBytesUTF = lengthBytesUTF32; + } + registerType(rawType, { + name, + fromWireType: value => { + // Code mostly taken from _embind_register_std_string fromWireType + var length = HEAPU32[((value) >> 2)]; + var str = decodeString(value + 4, length * charSize, true); + _free(value); + return str; + }, + toWireType: (destructors, value) => { + if (!(typeof value == "string")) { + throwBindingError(`Cannot pass non-string to C++ string type ${name}`); + } + // assumes POINTER_SIZE alignment + var length = lengthBytesUTF(value); + var ptr = _malloc(4 + length + charSize); + HEAPU32[((ptr) >> 2)] = length / charSize; + encodeString(value, ptr + 4, length + charSize); + if (destructors !== null) { + destructors.push(_free, ptr); + } + return ptr; + }, + readValueFromPointer: readPointer, + destructorFunction(ptr) { + _free(ptr); + } + }); +}; + +var __embind_register_void = (rawType, name) => { + name = AsciiToString(name); + registerType(rawType, { + isVoid: true, + // void return values can be optimized out sometimes + name, + fromWireType: () => undefined, + // TODO: assert if anything else is given? + toWireType: (destructors, o) => undefined + }); +}; + +var emval_methodCallers = []; + +var emval_addMethodCaller = caller => { + var id = emval_methodCallers.length; + emval_methodCallers.push(caller); + return id; +}; + +var getTypeName = type => { + var ptr = ___getTypeName(type); + var rv = AsciiToString(ptr); + _free(ptr); + return rv; +}; + +var requireRegisteredType = (rawType, humanName) => { + var impl = registeredTypes[rawType]; + if (undefined === impl) { + throwBindingError(`${humanName} has unknown type ${getTypeName(rawType)}`); + } + return impl; +}; + +var emval_lookupTypes = (argCount, argTypes) => { + var a = new Array(argCount); + for (var i = 0; i < argCount; ++i) { + a[i] = requireRegisteredType(HEAPU32[(((argTypes) + (i * 4)) >> 2)], `parameter ${i}`); + } + return a; +}; + +var createNamedFunction = (name, func) => Object.defineProperty(func, "name", { + value: name +}); + +var emval_returnValue = (toReturnWire, destructorsRef, handle) => { + var destructors = []; + var result = toReturnWire(destructors, handle); + if (destructors.length) { + // void, primitives and any other types w/o destructors don't need to allocate a handle + HEAPU32[((destructorsRef) >> 2)] = Emval.toHandle(destructors); + } + return result; +}; + +var emval_symbols = {}; + +var getStringOrSymbol = address => { + var symbol = emval_symbols[address]; + if (symbol === undefined) { + return AsciiToString(address); + } + return symbol; +}; + +var __emval_create_invoker = (argCount, argTypesPtr, kind) => { + var GenericWireTypeSize = 8; + var [retType, ...argTypes] = emval_lookupTypes(argCount, argTypesPtr); + var toReturnWire = retType.toWireType.bind(retType); + var argFromPtr = argTypes.map(type => type.readValueFromPointer.bind(type)); + argCount--; + // remove the extracted return type + var argN = new Array(argCount); + var invokerFunction = (handle, methodName, destructorsRef, args) => { + var offset = 0; + for (var i = 0; i < argCount; ++i) { + argN[i] = argFromPtr[i](args + offset); + offset += GenericWireTypeSize; + } + var rv; + switch (kind) { + case 0: + rv = Emval.toValue(handle).apply(null, argN); + break; + + case 2: + rv = Reflect.construct(Emval.toValue(handle), argN); + break; + + case 3: + // no-op, just return the argument + rv = argN[0]; + break; + + case 1: + rv = Emval.toValue(handle)[getStringOrSymbol(methodName)](...argN); + break; + } + return emval_returnValue(toReturnWire, destructorsRef, rv); + }; + var functionName = `methodCaller<(${argTypes.map(t => t.name)}) => ${retType.name}>`; + return emval_addMethodCaller(createNamedFunction(functionName, invokerFunction)); +}; + +var __emval_get_global = name => { + if (!name) { + return Emval.toHandle(globalThis); + } + name = getStringOrSymbol(name); + return Emval.toHandle(globalThis[name]); +}; + +var __emval_get_property = (handle, key) => { + handle = Emval.toValue(handle); + key = Emval.toValue(key); + return Emval.toHandle(handle[key]); +}; + +var __emval_incref = handle => { + if (handle > 9) { + emval_handles[handle + 1] += 1; + } +}; + +var __emval_instanceof = (object, constructor) => { + object = Emval.toValue(object); + constructor = Emval.toValue(constructor); + return object instanceof constructor; +}; + +var __emval_invoke = (caller, handle, methodName, destructorsRef, args) => emval_methodCallers[caller](handle, methodName, destructorsRef, args); + +var __emval_new_cstring = v => Emval.toHandle(getStringOrSymbol(v)); + +var runDestructors = destructors => { + while (destructors.length) { + var ptr = destructors.pop(); + var del = destructors.pop(); + del(ptr); + } +}; + +var __emval_run_destructors = handle => { + var destructors = Emval.toValue(handle); + runDestructors(destructors); + __emval_decref(handle); +}; + +var __emval_set_property = (handle, key, value) => { + handle = Emval.toValue(handle); + key = Emval.toValue(key); + value = Emval.toValue(value); + handle[key] = value; +}; + +var __emval_typeof = handle => { + handle = Emval.toValue(handle); + return Emval.toHandle(typeof handle); +}; + +function __gmtime_js(time_low, time_high, tmPtr) { + var time = convertI32PairToI53Checked(time_low, time_high); + var date = new Date(time * 1e3); + HEAP32[((tmPtr) >> 2)] = date.getUTCSeconds(); + HEAP32[(((tmPtr) + (4)) >> 2)] = date.getUTCMinutes(); + HEAP32[(((tmPtr) + (8)) >> 2)] = date.getUTCHours(); + HEAP32[(((tmPtr) + (12)) >> 2)] = date.getUTCDate(); + HEAP32[(((tmPtr) + (16)) >> 2)] = date.getUTCMonth(); + HEAP32[(((tmPtr) + (20)) >> 2)] = date.getUTCFullYear() - 1900; + HEAP32[(((tmPtr) + (24)) >> 2)] = date.getUTCDay(); + var start = Date.UTC(date.getUTCFullYear(), 0, 1, 0, 0, 0, 0); + var yday = ((date.getTime() - start) / (1e3 * 60 * 60 * 24)) | 0; + HEAP32[(((tmPtr) + (28)) >> 2)] = yday; +} + +var isLeapYear = year => year % 4 === 0 && (year % 100 !== 0 || year % 400 === 0); + +var MONTH_DAYS_LEAP_CUMULATIVE = [ 0, 31, 60, 91, 121, 152, 182, 213, 244, 274, 305, 335 ]; + +var MONTH_DAYS_REGULAR_CUMULATIVE = [ 0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334 ]; + +var ydayFromDate = date => { + var leap = isLeapYear(date.getFullYear()); + var monthDaysCumulative = (leap ? MONTH_DAYS_LEAP_CUMULATIVE : MONTH_DAYS_REGULAR_CUMULATIVE); + var yday = monthDaysCumulative[date.getMonth()] + date.getDate() - 1; + // -1 since it's days since Jan 1 + return yday; +}; + +function __localtime_js(time_low, time_high, tmPtr) { + var time = convertI32PairToI53Checked(time_low, time_high); + var date = new Date(time * 1e3); + HEAP32[((tmPtr) >> 2)] = date.getSeconds(); + HEAP32[(((tmPtr) + (4)) >> 2)] = date.getMinutes(); + HEAP32[(((tmPtr) + (8)) >> 2)] = date.getHours(); + HEAP32[(((tmPtr) + (12)) >> 2)] = date.getDate(); + HEAP32[(((tmPtr) + (16)) >> 2)] = date.getMonth(); + HEAP32[(((tmPtr) + (20)) >> 2)] = date.getFullYear() - 1900; + HEAP32[(((tmPtr) + (24)) >> 2)] = date.getDay(); + var yday = ydayFromDate(date) | 0; + HEAP32[(((tmPtr) + (28)) >> 2)] = yday; + HEAP32[(((tmPtr) + (36)) >> 2)] = -(date.getTimezoneOffset() * 60); + // Attention: DST is in December in South, and some regions don't have DST at all. + var start = new Date(date.getFullYear(), 0, 1); + var summerOffset = new Date(date.getFullYear(), 6, 1).getTimezoneOffset(); + var winterOffset = start.getTimezoneOffset(); + var dst = (summerOffset != winterOffset && date.getTimezoneOffset() == Math.min(winterOffset, summerOffset)) | 0; + HEAP32[(((tmPtr) + (32)) >> 2)] = dst; +} + +var setTempRet0 = val => __emscripten_tempret_set(val); + +var __mktime_js = function(tmPtr) { + var ret = (() => { + var date = new Date(HEAP32[(((tmPtr) + (20)) >> 2)] + 1900, HEAP32[(((tmPtr) + (16)) >> 2)], HEAP32[(((tmPtr) + (12)) >> 2)], HEAP32[(((tmPtr) + (8)) >> 2)], HEAP32[(((tmPtr) + (4)) >> 2)], HEAP32[((tmPtr) >> 2)], 0); + // There's an ambiguous hour when the time goes back; the tm_isdst field is + // used to disambiguate it. Date() basically guesses, so we fix it up if it + // guessed wrong, or fill in tm_isdst with the guess if it's -1. + var dst = HEAP32[(((tmPtr) + (32)) >> 2)]; + var guessedOffset = date.getTimezoneOffset(); + var start = new Date(date.getFullYear(), 0, 1); + var summerOffset = new Date(date.getFullYear(), 6, 1).getTimezoneOffset(); + var winterOffset = start.getTimezoneOffset(); + var dstOffset = Math.min(winterOffset, summerOffset); + // DST is in December in South + if (dst < 0) { + // Attention: some regions don't have DST at all. + HEAP32[(((tmPtr) + (32)) >> 2)] = Number(summerOffset != winterOffset && dstOffset == guessedOffset); + } else if ((dst > 0) != (dstOffset == guessedOffset)) { + var nonDstOffset = Math.max(winterOffset, summerOffset); + var trueOffset = dst > 0 ? dstOffset : nonDstOffset; + // Don't try setMinutes(date.getMinutes() + ...) -- it's messed up. + date.setTime(date.getTime() + (trueOffset - guessedOffset) * 6e4); + } + HEAP32[(((tmPtr) + (24)) >> 2)] = date.getDay(); + var yday = ydayFromDate(date) | 0; + HEAP32[(((tmPtr) + (28)) >> 2)] = yday; + // To match expected behavior, update fields from date + HEAP32[((tmPtr) >> 2)] = date.getSeconds(); + HEAP32[(((tmPtr) + (4)) >> 2)] = date.getMinutes(); + HEAP32[(((tmPtr) + (8)) >> 2)] = date.getHours(); + HEAP32[(((tmPtr) + (12)) >> 2)] = date.getDate(); + HEAP32[(((tmPtr) + (16)) >> 2)] = date.getMonth(); + HEAP32[(((tmPtr) + (20)) >> 2)] = date.getYear(); + var timeMs = date.getTime(); + if (isNaN(timeMs)) { + return -1; + } + // Return time in microseconds + return timeMs / 1e3; + })(); + return (setTempRet0((tempDouble = ret, (+(Math.abs(tempDouble))) >= 1 ? (tempDouble > 0 ? (+(Math.floor((tempDouble) / 4294967296))) >>> 0 : (~~((+(Math.ceil((tempDouble - +(((~~(tempDouble))) >>> 0)) / 4294967296))))) >>> 0) : 0)), + ret >>> 0); +}; + +function __mmap_js(len, prot, flags, fd, offset_low, offset_high, allocated, addr) { + var offset = convertI32PairToI53Checked(offset_low, offset_high); + try { + var stream = SYSCALLS.getStreamFromFD(fd); + var res = FS.mmap(stream, len, offset, prot, flags); + var ptr = res.ptr; + HEAP32[((allocated) >> 2)] = res.allocated; + HEAPU32[((addr) >> 2)] = ptr; + return 0; + } catch (e) { + if (typeof FS == "undefined" || !(e.name === "ErrnoError")) throw e; + return -e.errno; + } +} + +function __munmap_js(addr, len, prot, flags, fd, offset_low, offset_high) { + var offset = convertI32PairToI53Checked(offset_low, offset_high); + try { + var stream = SYSCALLS.getStreamFromFD(fd); + if (prot & 2) { + SYSCALLS.doMsync(addr, stream, len, flags, offset); + } + } catch (e) { + if (typeof FS == "undefined" || !(e.name === "ErrnoError")) throw e; + return -e.errno; + } +} + +var __tzset_js = (timezone, daylight, std_name, dst_name) => { + // TODO: Use (malleable) environment variables instead of system settings. + var currentYear = (new Date).getFullYear(); + var winter = new Date(currentYear, 0, 1); + var summer = new Date(currentYear, 6, 1); + var winterOffset = winter.getTimezoneOffset(); + var summerOffset = summer.getTimezoneOffset(); + // Local standard timezone offset. Local standard time is not adjusted for + // daylight savings. This code uses the fact that getTimezoneOffset returns + // a greater value during Standard Time versus Daylight Saving Time (DST). + // Thus it determines the expected output during Standard Time, and it + // compares whether the output of the given date the same (Standard) or less + // (DST). + var stdTimezoneOffset = Math.max(winterOffset, summerOffset); + // timezone is specified as seconds west of UTC ("The external variable + // `timezone` shall be set to the difference, in seconds, between + // Coordinated Universal Time (UTC) and local standard time."), the same + // as returned by stdTimezoneOffset. + // See http://pubs.opengroup.org/onlinepubs/009695399/functions/tzset.html + HEAPU32[((timezone) >> 2)] = stdTimezoneOffset * 60; + HEAP32[((daylight) >> 2)] = Number(winterOffset != summerOffset); + var extractZone = timezoneOffset => { + // Why inverse sign? + // Read here https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/getTimezoneOffset + var sign = timezoneOffset >= 0 ? "-" : "+"; + var absOffset = Math.abs(timezoneOffset); + var hours = String(Math.floor(absOffset / 60)).padStart(2, "0"); + var minutes = String(absOffset % 60).padStart(2, "0"); + return `UTC${sign}${hours}${minutes}`; + }; + var winterName = extractZone(winterOffset); + var summerName = extractZone(summerOffset); + if (summerOffset < winterOffset) { + // Northern hemisphere + stringToUTF8(winterName, std_name, 17); + stringToUTF8(summerName, dst_name, 17); + } else { + stringToUTF8(winterName, dst_name, 17); + stringToUTF8(summerName, std_name, 17); + } +}; + +var _emscripten_get_now = () => performance.now(); + +var _emscripten_date_now = () => Date.now(); + +var nowIsMonotonic = 1; + +var checkWasiClock = clock_id => clock_id >= 0 && clock_id <= 3; + +function _clock_time_get(clk_id, ignored_precision_low, ignored_precision_high, ptime) { + var ignored_precision = convertI32PairToI53Checked(ignored_precision_low, ignored_precision_high); + if (!checkWasiClock(clk_id)) { + return 28; + } + var now; + // all wasi clocks but realtime are monotonic + if (clk_id === 0) { + now = _emscripten_date_now(); + } else if (nowIsMonotonic) { + now = _emscripten_get_now(); + } else { + return 52; + } + // "now" is in ms, and wasi times are in ns. + var nsec = Math.round(now * 1e3 * 1e3); + (tempI64 = [ nsec >>> 0, (tempDouble = nsec, (+(Math.abs(tempDouble))) >= 1 ? (tempDouble > 0 ? (+(Math.floor((tempDouble) / 4294967296))) >>> 0 : (~~((+(Math.ceil((tempDouble - +(((~~(tempDouble))) >>> 0)) / 4294967296))))) >>> 0) : 0) ], + HEAP32[((ptime) >> 2)] = tempI64[0], HEAP32[(((ptime) + (4)) >> 2)] = tempI64[1]); + return 0; +} + +var readEmAsmArgsArray = []; + +var readEmAsmArgs = (sigPtr, buf) => { + readEmAsmArgsArray.length = 0; + var ch; + // Most arguments are i32s, so shift the buffer pointer so it is a plain + // index into HEAP32. + while (ch = HEAPU8[sigPtr++]) { + // Floats are always passed as doubles, so all types except for 'i' + // are 8 bytes and require alignment. + var wide = (ch != 105); + wide &= (ch != 112); + buf += wide && (buf % 8) ? 4 : 0; + readEmAsmArgsArray.push(// Special case for pointers under wasm64 or CAN_ADDRESS_2GB mode. + ch == 112 ? HEAPU32[((buf) >> 2)] : ch == 105 ? HEAP32[((buf) >> 2)] : HEAPF64[((buf) >> 3)]); + buf += wide ? 8 : 4; + } + return readEmAsmArgsArray; +}; + +var runEmAsmFunction = (code, sigPtr, argbuf) => { + var args = readEmAsmArgs(sigPtr, argbuf); + return ASM_CONSTS[code](...args); +}; + +var _emscripten_asm_const_int = (code, sigPtr, argbuf) => runEmAsmFunction(code, sigPtr, argbuf); + +var _emscripten_asm_const_ptr = (code, sigPtr, argbuf) => runEmAsmFunction(code, sigPtr, argbuf); + +var _emscripten_errn = (str, len) => err(UTF8ToString(str, len)); + +var getHeapMax = () => // Stay one Wasm page short of 4GB: while e.g. Chrome is able to allocate +// full 4GB Wasm memories, the size will wrap back to 0 bytes in Wasm side +// for any code that deals with heap sizes, which would require special +// casing all heap size related code to treat 0 specially. +2147483648; + +var _emscripten_get_heap_max = () => getHeapMax(); + +var _emscripten_has_asyncify = () => 0; + +var _emscripten_outn = (str, len) => out(UTF8ToString(str, len)); + +var UNWIND_CACHE = {}; + +var stringToNewUTF8 = str => { + var size = lengthBytesUTF8(str) + 1; + var ret = _malloc(size); + if (ret) stringToUTF8(str, ret, size); + return ret; +}; + +/** @returns {number} */ var convertFrameToPC = frame => { + var match; + if (match = /\bwasm-function\[\d+\]:(0x[0-9a-f]+)/.exec(frame)) { + // Wasm engines give the binary offset directly, so we use that as return address + return +match[1]; + } else if (match = /:(\d+):\d+(?:\)|$)/.exec(frame)) { + // If we are in js, we can use the js line number as the "return address". + // This should work for wasm2js. We tag the high bit to distinguish this + // from wasm addresses. + return 2147483648 | +match[1]; + } + // return 0 if we can't find any + return 0; +}; + +var saveInUnwindCache = callstack => { + for (var line of callstack) { + var pc = convertFrameToPC(line); + if (pc) { + UNWIND_CACHE[pc] = line; + } + } +}; + +var jsStackTrace = () => (new Error).stack.toString(); + +var _emscripten_stack_snapshot = () => { + var callstack = jsStackTrace().split("\n"); + if (callstack[0] == "Error") { + callstack.shift(); + } + saveInUnwindCache(callstack); + // Caches the stack snapshot so that emscripten_stack_unwind_buffer() can + // unwind from this spot. + UNWIND_CACHE.last_addr = convertFrameToPC(callstack[3]); + UNWIND_CACHE.last_stack = callstack; + return UNWIND_CACHE.last_addr; +}; + +var _emscripten_pc_get_function = pc => { + var frame = UNWIND_CACHE[pc]; + if (!frame) return 0; + var name; + var match; + // First try to match foo.wasm.sym files explcitly. e.g. + // at test_return_address.wasm.main (wasm://wasm/test_return_address.wasm-0012cc2a:wasm-function[26]:0x9f3 + // Then match JS symbols which don't include that module name: + // at invokeEntryPoint (.../test_return_address.js:1500:42) + // Finally match firefox format: + // Object._main@http://server.com:4324:12' + if (match = /^\s+at .*\.wasm\.(.*) \(.*\)$/.exec(frame)) { + name = match[1]; + } else if (match = /^\s+at (.*) \(.*\)$/.exec(frame)) { + name = match[1]; + } else if (match = /^(.+?)@/.exec(frame)) { + name = match[1]; + } else { + return 0; + } + _free(_emscripten_pc_get_function.ret ?? 0); + _emscripten_pc_get_function.ret = stringToNewUTF8(name); + return _emscripten_pc_get_function.ret; +}; + +var growMemory = size => { + var oldHeapSize = wasmMemory.buffer.byteLength; + var pages = ((size - oldHeapSize + 65535) / 65536) | 0; + try { + // round size grow request up to wasm page size (fixed 64KB per spec) + wasmMemory.grow(pages); + // .grow() takes a delta compared to the previous size + updateMemoryViews(); + return 1; + } catch (e) {} +}; + +var _emscripten_resize_heap = requestedSize => { + var oldSize = HEAPU8.length; + // With CAN_ADDRESS_2GB or MEMORY64, pointers are already unsigned. + requestedSize >>>= 0; + // With multithreaded builds, races can happen (another thread might increase the size + // in between), so return a failure, and let the caller retry. + // Memory resize rules: + // 1. Always increase heap size to at least the requested size, rounded up + // to next page multiple. + // 2a. If MEMORY_GROWTH_LINEAR_STEP == -1, excessively resize the heap + // geometrically: increase the heap size according to + // MEMORY_GROWTH_GEOMETRIC_STEP factor (default +20%), At most + // overreserve by MEMORY_GROWTH_GEOMETRIC_CAP bytes (default 96MB). + // 2b. If MEMORY_GROWTH_LINEAR_STEP != -1, excessively resize the heap + // linearly: increase the heap size by at least + // MEMORY_GROWTH_LINEAR_STEP bytes. + // 3. Max size for the heap is capped at 2048MB-WASM_PAGE_SIZE, or by + // MAXIMUM_MEMORY, or by ASAN limit, depending on which is smallest + // 4. If we were unable to allocate as much memory, it may be due to + // over-eager decision to excessively reserve due to (3) above. + // Hence if an allocation fails, cut down on the amount of excess + // growth, in an attempt to succeed to perform a smaller allocation. + // A limit is set for how much we can grow. We should not exceed that + // (the wasm binary specifies it, so if we tried, we'd fail anyhow). + var maxHeapSize = getHeapMax(); + if (requestedSize > maxHeapSize) { + return false; + } + // Loop through potential heap size increases. If we attempt a too eager + // reservation that fails, cut down on the attempted size and reserve a + // smaller bump instead. (max 3 times, chosen somewhat arbitrarily) + for (var cutDown = 1; cutDown <= 4; cutDown *= 2) { + var overGrownHeapSize = oldSize * (1 + .2 / cutDown); + // ensure geometric growth + // but limit overreserving (default to capping at +96MB overgrowth at most) + overGrownHeapSize = Math.min(overGrownHeapSize, requestedSize + 100663296); + var newSize = Math.min(maxHeapSize, alignMemory(Math.max(requestedSize, overGrownHeapSize), 65536)); + var replacement = growMemory(newSize); + if (replacement) { + return true; + } + } + return false; +}; + +var _emscripten_stack_unwind_buffer = (addr, buffer, count) => { + var stack; + if (UNWIND_CACHE.last_addr == addr) { + stack = UNWIND_CACHE.last_stack; + } else { + stack = jsStackTrace().split("\n"); + if (stack[0] == "Error") { + stack.shift(); + } + saveInUnwindCache(stack); + } + var offset = 3; + while (stack[offset] && convertFrameToPC(stack[offset]) != addr) { + ++offset; + } + for (var i = 0; i < count && stack[i + offset]; ++i) { + HEAP32[(((buffer) + (i * 4)) >> 2)] = convertFrameToPC(stack[i + offset]); + } + return i; +}; + +var GLctx; + +var webgl_enable_ANGLE_instanced_arrays = ctx => { + // Extension available in WebGL 1 from Firefox 26 and Google Chrome 30 onwards. Core feature in WebGL 2. + var ext = ctx.getExtension("ANGLE_instanced_arrays"); + // Because this extension is a core function in WebGL 2, assign the extension entry points in place of + // where the core functions will reside in WebGL 2. This way the calling code can call these without + // having to dynamically branch depending if running against WebGL 1 or WebGL 2. + if (ext) { + ctx["vertexAttribDivisor"] = (index, divisor) => ext["vertexAttribDivisorANGLE"](index, divisor); + ctx["drawArraysInstanced"] = (mode, first, count, primcount) => ext["drawArraysInstancedANGLE"](mode, first, count, primcount); + ctx["drawElementsInstanced"] = (mode, count, type, indices, primcount) => ext["drawElementsInstancedANGLE"](mode, count, type, indices, primcount); + return 1; + } +}; + +var webgl_enable_OES_vertex_array_object = ctx => { + // Extension available in WebGL 1 from Firefox 25 and WebKit 536.28/desktop Safari 6.0.3 onwards. Core feature in WebGL 2. + var ext = ctx.getExtension("OES_vertex_array_object"); + if (ext) { + ctx["createVertexArray"] = () => ext["createVertexArrayOES"](); + ctx["deleteVertexArray"] = vao => ext["deleteVertexArrayOES"](vao); + ctx["bindVertexArray"] = vao => ext["bindVertexArrayOES"](vao); + ctx["isVertexArray"] = vao => ext["isVertexArrayOES"](vao); + return 1; + } +}; + +var webgl_enable_WEBGL_draw_buffers = ctx => { + // Extension available in WebGL 1 from Firefox 28 onwards. Core feature in WebGL 2. + var ext = ctx.getExtension("WEBGL_draw_buffers"); + if (ext) { + ctx["drawBuffers"] = (n, bufs) => ext["drawBuffersWEBGL"](n, bufs); + return 1; + } +}; + +var webgl_enable_WEBGL_draw_instanced_base_vertex_base_instance = ctx => // Closure is expected to be allowed to minify the '.dibvbi' property, so not accessing it quoted. +!!(ctx.dibvbi = ctx.getExtension("WEBGL_draw_instanced_base_vertex_base_instance")); + +var webgl_enable_WEBGL_multi_draw_instanced_base_vertex_base_instance = ctx => !!(ctx.mdibvbi = ctx.getExtension("WEBGL_multi_draw_instanced_base_vertex_base_instance")); + +var webgl_enable_EXT_polygon_offset_clamp = ctx => !!(ctx.extPolygonOffsetClamp = ctx.getExtension("EXT_polygon_offset_clamp")); + +var webgl_enable_EXT_clip_control = ctx => !!(ctx.extClipControl = ctx.getExtension("EXT_clip_control")); + +var webgl_enable_WEBGL_polygon_mode = ctx => !!(ctx.webglPolygonMode = ctx.getExtension("WEBGL_polygon_mode")); + +var webgl_enable_WEBGL_multi_draw = ctx => // Closure is expected to be allowed to minify the '.multiDrawWebgl' property, so not accessing it quoted. +!!(ctx.multiDrawWebgl = ctx.getExtension("WEBGL_multi_draw")); + +var getEmscriptenSupportedExtensions = ctx => { + // Restrict the list of advertised extensions to those that we actually + // support. + var supportedExtensions = [ // WebGL 1 extensions + "ANGLE_instanced_arrays", "EXT_blend_minmax", "EXT_disjoint_timer_query", "EXT_frag_depth", "EXT_shader_texture_lod", "EXT_sRGB", "OES_element_index_uint", "OES_fbo_render_mipmap", "OES_standard_derivatives", "OES_texture_float", "OES_texture_half_float", "OES_texture_half_float_linear", "OES_vertex_array_object", "WEBGL_color_buffer_float", "WEBGL_depth_texture", "WEBGL_draw_buffers", // WebGL 2 extensions + "EXT_color_buffer_float", "EXT_conservative_depth", "EXT_disjoint_timer_query_webgl2", "EXT_texture_norm16", "NV_shader_noperspective_interpolation", "WEBGL_clip_cull_distance", // WebGL 1 and WebGL 2 extensions + "EXT_clip_control", "EXT_color_buffer_half_float", "EXT_depth_clamp", "EXT_float_blend", "EXT_polygon_offset_clamp", "EXT_texture_compression_bptc", "EXT_texture_compression_rgtc", "EXT_texture_filter_anisotropic", "KHR_parallel_shader_compile", "OES_texture_float_linear", "WEBGL_blend_func_extended", "WEBGL_compressed_texture_astc", "WEBGL_compressed_texture_etc", "WEBGL_compressed_texture_etc1", "WEBGL_compressed_texture_s3tc", "WEBGL_compressed_texture_s3tc_srgb", "WEBGL_debug_renderer_info", "WEBGL_debug_shaders", "WEBGL_lose_context", "WEBGL_multi_draw", "WEBGL_polygon_mode" ]; + // .getSupportedExtensions() can return null if context is lost, so coerce to empty array. + return (ctx.getSupportedExtensions() || []).filter(ext => supportedExtensions.includes(ext)); +}; + +var registerPreMainLoop = f => { + // Does nothing unless $MainLoop is included/used. + typeof MainLoop != "undefined" && MainLoop.preMainLoop.push(f); +}; + +var GL = { + counter: 1, + buffers: [], + mappedBuffers: {}, + programs: [], + framebuffers: [], + renderbuffers: [], + textures: [], + shaders: [], + vaos: [], + contexts: [], + offscreenCanvases: {}, + queries: [], + samplers: [], + transformFeedbacks: [], + syncs: [], + byteSizeByTypeRoot: 5120, + byteSizeByType: [ 1, 1, 2, 2, 4, 4, 4, 2, 3, 4, 8 ], + stringCache: {}, + stringiCache: {}, + unpackAlignment: 4, + unpackRowLength: 0, + recordError: errorCode => { + if (!GL.lastError) { + GL.lastError = errorCode; + } + }, + getNewId: table => { + var ret = GL.counter++; + for (var i = table.length; i < ret; i++) { + table[i] = null; + } + // Skip over any non-null elements that might have been created by + // glBindBuffer. + while (table[ret]) { + ret = GL.counter++; + } + return ret; + }, + genObject: (n, buffers, createFunction, objectTable) => { + for (var i = 0; i < n; i++) { + var buffer = GLctx[createFunction](); + var id = buffer && GL.getNewId(objectTable); + if (buffer) { + buffer.name = id; + objectTable[id] = buffer; + } else { + GL.recordError(1282); + } + HEAP32[(((buffers) + (i * 4)) >> 2)] = id; + } + }, + MAX_TEMP_BUFFER_SIZE: 2097152, + numTempVertexBuffersPerSize: 64, + log2ceilLookup: i => 32 - Math.clz32(i === 0 ? 0 : i - 1), + generateTempBuffers: (quads, context) => { + var largestIndex = GL.log2ceilLookup(GL.MAX_TEMP_BUFFER_SIZE); + context.tempVertexBufferCounters1 = []; + context.tempVertexBufferCounters2 = []; + context.tempVertexBufferCounters1.length = context.tempVertexBufferCounters2.length = largestIndex + 1; + context.tempVertexBuffers1 = []; + context.tempVertexBuffers2 = []; + context.tempVertexBuffers1.length = context.tempVertexBuffers2.length = largestIndex + 1; + context.tempIndexBuffers = []; + context.tempIndexBuffers.length = largestIndex + 1; + for (var i = 0; i <= largestIndex; ++i) { + context.tempIndexBuffers[i] = null; + // Created on-demand + context.tempVertexBufferCounters1[i] = context.tempVertexBufferCounters2[i] = 0; + var ringbufferLength = GL.numTempVertexBuffersPerSize; + context.tempVertexBuffers1[i] = []; + context.tempVertexBuffers2[i] = []; + var ringbuffer1 = context.tempVertexBuffers1[i]; + var ringbuffer2 = context.tempVertexBuffers2[i]; + ringbuffer1.length = ringbuffer2.length = ringbufferLength; + for (var j = 0; j < ringbufferLength; ++j) { + ringbuffer1[j] = ringbuffer2[j] = null; + } + } + if (quads) { + // GL_QUAD indexes can be precalculated + context.tempQuadIndexBuffer = GLctx.createBuffer(); + context.GLctx.bindBuffer(34963, context.tempQuadIndexBuffer); + var numIndexes = GL.MAX_TEMP_BUFFER_SIZE >> 1; + var quadIndexes = new Uint16Array(numIndexes); + var i = 0, v = 0; + while (1) { + quadIndexes[i++] = v; + if (i >= numIndexes) break; + quadIndexes[i++] = v + 1; + if (i >= numIndexes) break; + quadIndexes[i++] = v + 2; + if (i >= numIndexes) break; + quadIndexes[i++] = v; + if (i >= numIndexes) break; + quadIndexes[i++] = v + 2; + if (i >= numIndexes) break; + quadIndexes[i++] = v + 3; + if (i >= numIndexes) break; + v += 4; + } + context.GLctx.bufferData(34963, quadIndexes, 35044); + context.GLctx.bindBuffer(34963, null); + } + }, + getTempVertexBuffer: sizeBytes => { + var idx = GL.log2ceilLookup(sizeBytes); + var ringbuffer = GL.currentContext.tempVertexBuffers1[idx]; + var nextFreeBufferIndex = GL.currentContext.tempVertexBufferCounters1[idx]; + GL.currentContext.tempVertexBufferCounters1[idx] = (GL.currentContext.tempVertexBufferCounters1[idx] + 1) & (GL.numTempVertexBuffersPerSize - 1); + var vbo = ringbuffer[nextFreeBufferIndex]; + if (vbo) { + return vbo; + } + var prevVBO = GLctx.getParameter(34964); + ringbuffer[nextFreeBufferIndex] = GLctx.createBuffer(); + GLctx.bindBuffer(34962, ringbuffer[nextFreeBufferIndex]); + GLctx.bufferData(34962, 1 << idx, 35048); + GLctx.bindBuffer(34962, prevVBO); + return ringbuffer[nextFreeBufferIndex]; + }, + getTempIndexBuffer: sizeBytes => { + var idx = GL.log2ceilLookup(sizeBytes); + var ibo = GL.currentContext.tempIndexBuffers[idx]; + if (ibo) { + return ibo; + } + var prevIBO = GLctx.getParameter(34965); + GL.currentContext.tempIndexBuffers[idx] = GLctx.createBuffer(); + GLctx.bindBuffer(34963, GL.currentContext.tempIndexBuffers[idx]); + GLctx.bufferData(34963, 1 << idx, 35048); + GLctx.bindBuffer(34963, prevIBO); + return GL.currentContext.tempIndexBuffers[idx]; + }, + newRenderingFrameStarted: () => { + if (!GL.currentContext) { + return; + } + var vb = GL.currentContext.tempVertexBuffers1; + GL.currentContext.tempVertexBuffers1 = GL.currentContext.tempVertexBuffers2; + GL.currentContext.tempVertexBuffers2 = vb; + vb = GL.currentContext.tempVertexBufferCounters1; + GL.currentContext.tempVertexBufferCounters1 = GL.currentContext.tempVertexBufferCounters2; + GL.currentContext.tempVertexBufferCounters2 = vb; + var largestIndex = GL.log2ceilLookup(GL.MAX_TEMP_BUFFER_SIZE); + for (var i = 0; i <= largestIndex; ++i) { + GL.currentContext.tempVertexBufferCounters1[i] = 0; + } + }, + getSource: (shader, count, string, length) => { + var source = ""; + for (var i = 0; i < count; ++i) { + var len = length ? HEAPU32[(((length) + (i * 4)) >> 2)] : undefined; + source += UTF8ToString(HEAPU32[(((string) + (i * 4)) >> 2)], len); + } + return source; + }, + calcBufLength: (size, type, stride, count) => { + if (stride > 0) { + return count * stride; + } + var typeSize = GL.byteSizeByType[type - GL.byteSizeByTypeRoot]; + return size * typeSize * count; + }, + usedTempBuffers: [], + preDrawHandleClientVertexAttribBindings: count => { + GL.resetBufferBinding = false; + // TODO: initial pass to detect ranges we need to upload, might not need + // an upload per attrib + for (var i = 0; i < GL.currentContext.maxVertexAttribs; ++i) { + var cb = GL.currentContext.clientBuffers[i]; + if (!cb.clientside || !cb.enabled) continue; + GL.resetBufferBinding = true; + var size = GL.calcBufLength(cb.size, cb.type, cb.stride, count); + var buf = GL.getTempVertexBuffer(size); + GLctx.bindBuffer(34962, buf); + GLctx.bufferSubData(34962, 0, HEAPU8.subarray(cb.ptr, cb.ptr + size)); + cb.vertexAttribPointerAdaptor.call(GLctx, i, cb.size, cb.type, cb.normalized, cb.stride, 0); + } + }, + postDrawHandleClientVertexAttribBindings: () => { + if (GL.resetBufferBinding) { + GLctx.bindBuffer(34962, GL.buffers[GLctx.currentArrayBufferBinding]); + } + }, + createContext: (/** @type {HTMLCanvasElement} */ canvas, webGLContextAttributes) => { + // BUG: Workaround Safari WebGL issue: After successfully acquiring WebGL + // context on a canvas, calling .getContext() will always return that + // context independent of which 'webgl' or 'webgl2' + // context version was passed. See: + // https://webkit.org/b/222758 + // and: + // https://github.com/emscripten-core/emscripten/issues/13295. + // TODO: Once the bug is fixed and shipped in Safari, adjust the Safari + // version field in above check. + if (!canvas.getContextSafariWebGL2Fixed) { + canvas.getContextSafariWebGL2Fixed = canvas.getContext; + /** @type {function(this:HTMLCanvasElement, string, (Object|null)=): (Object|null)} */ function fixedGetContext(ver, attrs) { + var gl = canvas.getContextSafariWebGL2Fixed(ver, attrs); + return ((ver == "webgl") == (gl instanceof WebGLRenderingContext)) ? gl : null; + } + canvas.getContext = fixedGetContext; + } + var ctx = (webGLContextAttributes.majorVersion > 1) ? canvas.getContext("webgl2", webGLContextAttributes) : canvas.getContext("webgl", webGLContextAttributes); + if (!ctx) return 0; + var handle = GL.registerContext(ctx, webGLContextAttributes); + return handle; + }, + registerContext: (ctx, webGLContextAttributes) => { + // without pthreads a context is just an integer ID + var handle = GL.getNewId(GL.contexts); + var context = { + handle, + attributes: webGLContextAttributes, + version: webGLContextAttributes.majorVersion, + GLctx: ctx + }; + // Store the created context object so that we can access the context + // given a canvas without having to pass the parameters again. + if (ctx.canvas) ctx.canvas.GLctxObject = context; + GL.contexts[handle] = context; + if (typeof webGLContextAttributes.enableExtensionsByDefault == "undefined" || webGLContextAttributes.enableExtensionsByDefault) { + GL.initExtensions(context); + } + context.maxVertexAttribs = context.GLctx.getParameter(34921); + context.clientBuffers = []; + for (var i = 0; i < context.maxVertexAttribs; i++) { + context.clientBuffers[i] = { + enabled: false, + clientside: false, + size: 0, + type: 0, + normalized: 0, + stride: 0, + ptr: 0, + vertexAttribPointerAdaptor: null + }; + } + GL.generateTempBuffers(false, context); + return handle; + }, + makeContextCurrent: contextHandle => { + // Active Emscripten GL layer context object. + GL.currentContext = GL.contexts[contextHandle]; + // Active WebGL context object. + Module["ctx"] = GLctx = GL.currentContext?.GLctx; + return !(contextHandle && !GLctx); + }, + getContext: contextHandle => GL.contexts[contextHandle], + deleteContext: contextHandle => { + if (GL.currentContext === GL.contexts[contextHandle]) { + GL.currentContext = null; + } + if (typeof JSEvents == "object") { + // Release all JS event handlers on the DOM element that the GL context is + // associated with since the context is now deleted. + JSEvents.removeAllHandlersOnTarget(GL.contexts[contextHandle].GLctx.canvas); + } + // Make sure the canvas object no longer refers to the context object so + // there are no GC surprises. + if (GL.contexts[contextHandle]?.GLctx.canvas) { + GL.contexts[contextHandle].GLctx.canvas.GLctxObject = undefined; + } + GL.contexts[contextHandle] = null; + }, + initExtensions: context => { + // If this function is called without a specific context object, init the + // extensions of the currently active context. + context ||= GL.currentContext; + if (context.initExtensionsDone) return; + context.initExtensionsDone = true; + var GLctx = context.GLctx; + // Detect the presence of a few extensions manually, since the GL interop + // layer itself will need to know if they exist. + // Extensions that are available in both WebGL 1 and WebGL 2 + webgl_enable_WEBGL_multi_draw(GLctx); + webgl_enable_EXT_polygon_offset_clamp(GLctx); + webgl_enable_EXT_clip_control(GLctx); + webgl_enable_WEBGL_polygon_mode(GLctx); + // Extensions that are only available in WebGL 1 (the calls will be no-ops + // if called on a WebGL 2 context active) + webgl_enable_ANGLE_instanced_arrays(GLctx); + webgl_enable_OES_vertex_array_object(GLctx); + webgl_enable_WEBGL_draw_buffers(GLctx); + // Extensions that are available from WebGL >= 2 (no-op if called on a WebGL 1 context active) + webgl_enable_WEBGL_draw_instanced_base_vertex_base_instance(GLctx); + webgl_enable_WEBGL_multi_draw_instanced_base_vertex_base_instance(GLctx); + // On WebGL 2, EXT_disjoint_timer_query is replaced with an alternative + // that's based on core APIs, and exposes only the queryCounterEXT() + // entrypoint. + if (context.version >= 2) { + GLctx.disjointTimerQueryExt = GLctx.getExtension("EXT_disjoint_timer_query_webgl2"); + } + // However, Firefox exposes the WebGL 1 version on WebGL 2 as well and + // thus we look for the WebGL 1 version again if the WebGL 2 version + // isn't present. https://bugzil.la/1328882 + if (context.version < 2 || !GLctx.disjointTimerQueryExt) { + GLctx.disjointTimerQueryExt = GLctx.getExtension("EXT_disjoint_timer_query"); + } + for (var ext of getEmscriptenSupportedExtensions(GLctx)) { + // WEBGL_lose_context, WEBGL_debug_renderer_info and WEBGL_debug_shaders + // are not enabled by default. + if (!ext.includes("lose_context") && !ext.includes("debug")) { + // Call .getExtension() to enable that extension permanently. + GLctx.getExtension(ext); + } + } + } +}; + +var webglPowerPreferences = [ "default", "low-power", "high-performance" ]; + +/** @type {Object} */ var specialHTMLTargets = [ 0, globalThis.document ?? 0, globalThis.window ?? 0 ]; + +var findEventTarget = target => { + // The sensible "default" target varies between events, but use window as the default + // since DOM events mostly can default to that. Specific callback registrations + // override their own defaults. + if (!target) return window; + if (typeof target == "number") target = specialHTMLTargets[target] || UTF8ToString(target); + if (target === "#window") return window; else if (target === "#document") return document; else if (target === "#screen") return screen; else if (target === "#canvas") return Module["canvas"]; else if (typeof target == "string") return globalThis.document?.getElementById(target); + return target; +}; + +var findCanvasEventTarget = target => { + if (typeof target == "number") target = UTF8ToString(target); + if (!target || target === "#canvas") { + if (typeof GL != "undefined" && GL.offscreenCanvases["canvas"]) return GL.offscreenCanvases["canvas"]; + // TODO: Remove this line, target '#canvas' should refer only to Module['canvas'], not to GL.offscreenCanvases['canvas'] - but need stricter tests to be able to remove this line. + return Module["canvas"]; + } + if (typeof GL != "undefined" && GL.offscreenCanvases[target]) return GL.offscreenCanvases[target]; + return findEventTarget(target); +}; + +var _emscripten_webgl_do_create_context = (target, attributes) => { + var attr32 = ((attributes) >> 2); + var powerPreference = HEAP32[attr32 + (8 >> 2)]; + var contextAttributes = { + "alpha": !!HEAP8[attributes + 0], + "depth": !!HEAP8[attributes + 1], + "stencil": !!HEAP8[attributes + 2], + "antialias": !!HEAP8[attributes + 3], + "premultipliedAlpha": !!HEAP8[attributes + 4], + "preserveDrawingBuffer": !!HEAP8[attributes + 5], + "powerPreference": webglPowerPreferences[powerPreference], + "failIfMajorPerformanceCaveat": !!HEAP8[attributes + 12], + // The following are not predefined WebGL context attributes in the WebGL specification, so the property names can be minified by Closure. + majorVersion: HEAP32[attr32 + (16 >> 2)], + minorVersion: HEAP32[attr32 + (20 >> 2)], + enableExtensionsByDefault: HEAP8[attributes + 24], + explicitSwapControl: HEAP8[attributes + 25], + proxyContextToMainThread: HEAP32[attr32 + (28 >> 2)], + renderViaOffscreenBackBuffer: HEAP8[attributes + 32] + }; + var canvas = findCanvasEventTarget(target); + if (!canvas) { + return 0; + } + if (contextAttributes.explicitSwapControl) { + return 0; + } + var contextHandle = GL.createContext(canvas, contextAttributes); + return contextHandle; +}; + +var _emscripten_webgl_create_context = _emscripten_webgl_do_create_context; + +var _emscripten_webgl_destroy_context = contextHandle => { + if (GL.currentContext == contextHandle) GL.currentContext = 0; + GL.deleteContext(contextHandle); +}; + +var _emscripten_webgl_get_context_attributes = (c, a) => { + if (!a) return -5; + c = GL.contexts[c]; + if (!c) return -3; + var t = c.GLctx?.getContextAttributes(); + if (!t) return -3; + HEAP8[a] = t.alpha; + HEAP8[(a) + (1)] = t.depth; + HEAP8[(a) + (2)] = t.stencil; + HEAP8[(a) + (3)] = t.antialias; + HEAP8[(a) + (4)] = t.premultipliedAlpha; + HEAP8[(a) + (5)] = t.preserveDrawingBuffer; + var power = t["powerPreference"] && webglPowerPreferences.indexOf(t["powerPreference"]); + HEAP32[(((a) + (8)) >> 2)] = power; + HEAP8[(a) + (12)] = t.failIfMajorPerformanceCaveat; + HEAP32[(((a) + (16)) >> 2)] = c.version; + HEAP32[(((a) + (20)) >> 2)] = 0; + HEAP8[(a) + (24)] = c.attributes.enableExtensionsByDefault; + return 0; +}; + +var _emscripten_webgl_do_get_current_context = () => GL.currentContext ? GL.currentContext.handle : 0; + +var _emscripten_webgl_get_current_context = _emscripten_webgl_do_get_current_context; + +var _emscripten_webgl_make_context_current = contextHandle => { + var success = GL.makeContextCurrent(contextHandle); + return success ? 0 : -5; +}; + +var stackAlloc = sz => __emscripten_stack_alloc(sz); + +var stringToUTF8OnStack = str => { + var size = lengthBytesUTF8(str) + 1; + var ret = stackAlloc(size); + stringToUTF8(str, ret, size); + return ret; +}; + +var writeI53ToI64 = (ptr, num) => { + HEAPU32[((ptr) >> 2)] = num; + var lower = HEAPU32[((ptr) >> 2)]; + HEAPU32[(((ptr) + (4)) >> 2)] = (num - lower) / 4294967296; +}; + +var readI53FromI64 = ptr => HEAPU32[((ptr) >> 2)] + HEAP32[(((ptr) + (4)) >> 2)] * 4294967296; + +var wasmTableMirror = []; + +var getWasmTableEntry = funcPtr => { + var func = wasmTableMirror[funcPtr]; + if (!func) { + /** @suppress {checkTypes} */ wasmTableMirror[funcPtr] = func = wasmTable.get(funcPtr); + } + return func; +}; + +var WebGPU = { + Internals: { + jsObjects: [], + jsObjectInsert: (ptr, jsObject) => { + ptr >>>= 0; + WebGPU.Internals.jsObjects[ptr] = jsObject; + }, + bufferOnUnmaps: [], + futures: [], + futureInsert: (futureId, promise) => {} + }, + getJsObject: ptr => { + if (!ptr) return undefined; + ptr >>>= 0; + return WebGPU.Internals.jsObjects[ptr]; + }, + importJsAdapter: (obj, parentPtr = 0) => { + var ptr = _emwgpuCreateAdapter(parentPtr); + WebGPU.Internals.jsObjects[ptr] = obj; + return ptr; + }, + importJsBindGroup: (obj, parentPtr = 0) => { + var ptr = _emwgpuCreateBindGroup(parentPtr); + WebGPU.Internals.jsObjects[ptr] = obj; + return ptr; + }, + importJsBindGroupLayout: (obj, parentPtr = 0) => { + var ptr = _emwgpuCreateBindGroupLayout(parentPtr); + WebGPU.Internals.jsObjects[ptr] = obj; + return ptr; + }, + importJsBuffer: (buffer, parentPtr = 0) => { + // At the moment, we do not allow importing pending buffers. + assert(buffer.mapState === "unmapped"); + var bufferPtr = _emwgpuImportBuffer(parentPtr); + WebGPU.Internals.jsObjectInsert(bufferPtr, buffer); + return bufferPtr; + }, + importJsCommandBuffer: (obj, parentPtr = 0) => { + var ptr = _emwgpuCreateCommandBuffer(parentPtr); + WebGPU.Internals.jsObjects[ptr] = obj; + return ptr; + }, + importJsCommandEncoder: (obj, parentPtr = 0) => { + var ptr = _emwgpuCreateCommandEncoder(parentPtr); + WebGPU.Internals.jsObjects[ptr] = obj; + return ptr; + }, + importJsComputePassEncoder: (obj, parentPtr = 0) => { + var ptr = _emwgpuCreateComputePassEncoder(parentPtr); + WebGPU.Internals.jsObjects[ptr] = obj; + return ptr; + }, + importJsComputePipeline: (obj, parentPtr = 0) => { + var ptr = _emwgpuCreateComputePipeline(parentPtr); + WebGPU.Internals.jsObjects[ptr] = obj; + return ptr; + }, + importJsDevice: (device, parentPtr = 0) => { + var queuePtr = _emwgpuCreateQueue(parentPtr); + var devicePtr = _emwgpuCreateDevice(parentPtr, queuePtr); + WebGPU.Internals.jsObjectInsert(queuePtr, device.queue); + WebGPU.Internals.jsObjectInsert(devicePtr, device); + return devicePtr; + }, + importJsExternalTexture: (obj, parentPtr = 0) => { + var ptr = _emwgpuCreateExternalTexture(parentPtr); + WebGPU.Internals.jsObjects[ptr] = obj; + return ptr; + }, + importJsPipelineLayout: (obj, parentPtr = 0) => { + var ptr = _emwgpuCreatePipelineLayout(parentPtr); + WebGPU.Internals.jsObjects[ptr] = obj; + return ptr; + }, + importJsQuerySet: (obj, parentPtr = 0) => { + var ptr = _emwgpuCreateQuerySet(parentPtr); + WebGPU.Internals.jsObjects[ptr] = obj; + return ptr; + }, + importJsQueue: (obj, parentPtr = 0) => { + var ptr = _emwgpuCreateQueue(parentPtr); + WebGPU.Internals.jsObjects[ptr] = obj; + return ptr; + }, + importJsRenderBundle: (obj, parentPtr = 0) => { + var ptr = _emwgpuCreateRenderBundle(parentPtr); + WebGPU.Internals.jsObjects[ptr] = obj; + return ptr; + }, + importJsRenderBundleEncoder: (obj, parentPtr = 0) => { + var ptr = _emwgpuCreateRenderBundleEncoder(parentPtr); + WebGPU.Internals.jsObjects[ptr] = obj; + return ptr; + }, + importJsRenderPassEncoder: (obj, parentPtr = 0) => { + var ptr = _emwgpuCreateRenderPassEncoder(parentPtr); + WebGPU.Internals.jsObjects[ptr] = obj; + return ptr; + }, + importJsRenderPipeline: (obj, parentPtr = 0) => { + var ptr = _emwgpuCreateRenderPipeline(parentPtr); + WebGPU.Internals.jsObjects[ptr] = obj; + return ptr; + }, + importJsSampler: (obj, parentPtr = 0) => { + var ptr = _emwgpuCreateSampler(parentPtr); + WebGPU.Internals.jsObjects[ptr] = obj; + return ptr; + }, + importJsShaderModule: (obj, parentPtr = 0) => { + var ptr = _emwgpuCreateShaderModule(parentPtr); + WebGPU.Internals.jsObjects[ptr] = obj; + return ptr; + }, + importJsSurface: (obj, parentPtr = 0) => { + var ptr = _emwgpuCreateSurface(parentPtr); + WebGPU.Internals.jsObjects[ptr] = obj; + return ptr; + }, + importJsTexture: (obj, parentPtr = 0) => { + var ptr = _emwgpuCreateTexture(parentPtr); + WebGPU.Internals.jsObjects[ptr] = obj; + return ptr; + }, + importJsTextureView: (obj, parentPtr = 0) => { + var ptr = _emwgpuCreateTextureView(parentPtr); + WebGPU.Internals.jsObjects[ptr] = obj; + return ptr; + }, + errorCallback: (callback, type, message, userdata) => { + var sp = stackSave(); + var messagePtr = stringToUTF8OnStack(message); + getWasmTableEntry(callback)(type, messagePtr, userdata); + stackRestore(sp); + }, + iterateExtensions: (root, handlers) => { + for (var ptr = HEAPU32[((root) >> 2)]; ptr; ptr = HEAPU32[((ptr) >> 2)]) { + var sType = HEAP32[(((ptr) + (4)) >> 2)]; + // This will crash if there's no handler indicating either a bogus + // sType, or one we haven't implemented yet. + var handler = handlers[sType](ptr); + } + }, + setStringView: (ptr, data, length) => { + HEAPU32[((ptr) >> 2)] = data; + HEAPU32[(((ptr) + (4)) >> 2)] = length; + }, + makeStringFromStringView: stringViewPtr => { + var ptr = HEAPU32[((stringViewPtr) >> 2)]; + var length = HEAPU32[(((stringViewPtr) + (4)) >> 2)]; + // UTF8ToString stops at the first null terminator character in the + // string regardless of the length. + return UTF8ToString(ptr, length); + }, + makeStringFromOptionalStringView: stringViewPtr => { + var ptr = HEAPU32[((stringViewPtr) >> 2)]; + var length = HEAPU32[(((stringViewPtr) + (4)) >> 2)]; + // If we don't have a valid string pointer, just return undefined when + // optional. + if (!ptr) { + if (length === 0) { + return ""; + } + return undefined; + } + // UTF8ToString stops at the first null terminator character in the + // string regardless of the length. + return UTF8ToString(ptr, length); + }, + makeColor: ptr => ({ + "r": HEAPF64[((ptr) >> 3)], + "g": HEAPF64[(((ptr) + (8)) >> 3)], + "b": HEAPF64[(((ptr) + (16)) >> 3)], + "a": HEAPF64[(((ptr) + (24)) >> 3)] + }), + makeExtent3D: ptr => ({ + "width": HEAPU32[((ptr) >> 2)], + "height": HEAPU32[(((ptr) + (4)) >> 2)], + "depthOrArrayLayers": HEAPU32[(((ptr) + (8)) >> 2)] + }), + makeOrigin3D: ptr => ({ + "x": HEAPU32[((ptr) >> 2)], + "y": HEAPU32[(((ptr) + (4)) >> 2)], + "z": HEAPU32[(((ptr) + (8)) >> 2)] + }), + makeTexelCopyTextureInfo: ptr => ({ + "texture": WebGPU.getJsObject(HEAPU32[((ptr) >> 2)]), + "mipLevel": HEAPU32[(((ptr) + (4)) >> 2)], + "origin": WebGPU.makeOrigin3D(ptr + 8), + "aspect": WebGPU.TextureAspect[HEAP32[(((ptr) + (20)) >> 2)]] + }), + makeTexelCopyBufferLayout: ptr => { + var bytesPerRow = HEAPU32[(((ptr) + (8)) >> 2)]; + var rowsPerImage = HEAPU32[(((ptr) + (12)) >> 2)]; + return { + "offset": readI53FromI64(ptr), + "bytesPerRow": bytesPerRow === 4294967295 ? undefined : bytesPerRow, + "rowsPerImage": rowsPerImage === 4294967295 ? undefined : rowsPerImage + }; + }, + makeTexelCopyBufferInfo: ptr => { + var layoutPtr = ptr + 0; + var bufferCopyView = WebGPU.makeTexelCopyBufferLayout(layoutPtr); + bufferCopyView["buffer"] = WebGPU.getJsObject(HEAPU32[(((ptr) + (16)) >> 2)]); + return bufferCopyView; + }, + makePassTimestampWrites: ptr => { + if (ptr === 0) return undefined; + return { + "querySet": WebGPU.getJsObject(HEAPU32[(((ptr) + (4)) >> 2)]), + "beginningOfPassWriteIndex": HEAPU32[(((ptr) + (8)) >> 2)], + "endOfPassWriteIndex": HEAPU32[(((ptr) + (12)) >> 2)] + }; + }, + makePipelineConstants: (constantCount, constantsPtr) => { + if (!constantCount) return; + var constants = {}; + for (var i = 0; i < constantCount; ++i) { + var entryPtr = constantsPtr + 24 * i; + var key = WebGPU.makeStringFromStringView(entryPtr + 4); + constants[key] = HEAPF64[(((entryPtr) + (16)) >> 3)]; + } + return constants; + }, + makePipelineLayout: layoutPtr => { + if (!layoutPtr) return "auto"; + return WebGPU.getJsObject(layoutPtr); + }, + makeComputeState: ptr => { + if (!ptr) return undefined; + var desc = { + "module": WebGPU.getJsObject(HEAPU32[(((ptr) + (4)) >> 2)]), + "constants": WebGPU.makePipelineConstants(HEAPU32[(((ptr) + (16)) >> 2)], HEAPU32[(((ptr) + (20)) >> 2)]), + "entryPoint": WebGPU.makeStringFromOptionalStringView(ptr + 8) + }; + return desc; + }, + makeComputePipelineDesc: descriptor => { + var desc = { + "label": WebGPU.makeStringFromOptionalStringView(descriptor + 4), + "layout": WebGPU.makePipelineLayout(HEAPU32[(((descriptor) + (12)) >> 2)]), + "compute": WebGPU.makeComputeState(descriptor + 16) + }; + return desc; + }, + makeRenderPipelineDesc: descriptor => { + function makePrimitiveState(psPtr) { + if (!psPtr) return undefined; + return { + "topology": WebGPU.PrimitiveTopology[HEAP32[(((psPtr) + (4)) >> 2)]], + "stripIndexFormat": WebGPU.IndexFormat[HEAP32[(((psPtr) + (8)) >> 2)]], + "frontFace": WebGPU.FrontFace[HEAP32[(((psPtr) + (12)) >> 2)]], + "cullMode": WebGPU.CullMode[HEAP32[(((psPtr) + (16)) >> 2)]], + "unclippedDepth": !!(HEAPU32[(((psPtr) + (20)) >> 2)]) + }; + } + function makeBlendComponent(bdPtr) { + if (!bdPtr) return undefined; + return { + "operation": WebGPU.BlendOperation[HEAP32[((bdPtr) >> 2)]], + "srcFactor": WebGPU.BlendFactor[HEAP32[(((bdPtr) + (4)) >> 2)]], + "dstFactor": WebGPU.BlendFactor[HEAP32[(((bdPtr) + (8)) >> 2)]] + }; + } + function makeBlendState(bsPtr) { + if (!bsPtr) return undefined; + return { + "alpha": makeBlendComponent(bsPtr + 12), + "color": makeBlendComponent(bsPtr + 0) + }; + } + function makeColorState(csPtr) { + var format = WebGPU.TextureFormat[HEAP32[(((csPtr) + (4)) >> 2)]]; + return format ? { + "format": format, + "blend": makeBlendState(HEAPU32[(((csPtr) + (8)) >> 2)]), + "writeMask": HEAPU32[(((csPtr) + (16)) >> 2)] + } : undefined; + } + function makeColorStates(count, csArrayPtr) { + var states = []; + for (var i = 0; i < count; ++i) { + states.push(makeColorState(csArrayPtr + 24 * i)); + } + return states; + } + function makeStencilStateFace(ssfPtr) { + return { + "compare": WebGPU.CompareFunction[HEAP32[((ssfPtr) >> 2)]], + "failOp": WebGPU.StencilOperation[HEAP32[(((ssfPtr) + (4)) >> 2)]], + "depthFailOp": WebGPU.StencilOperation[HEAP32[(((ssfPtr) + (8)) >> 2)]], + "passOp": WebGPU.StencilOperation[HEAP32[(((ssfPtr) + (12)) >> 2)]] + }; + } + function makeDepthStencilState(dssPtr) { + if (!dssPtr) return undefined; + return { + "format": WebGPU.TextureFormat[HEAP32[(((dssPtr) + (4)) >> 2)]], + "depthWriteEnabled": !!(HEAPU32[(((dssPtr) + (8)) >> 2)]), + "depthCompare": WebGPU.CompareFunction[HEAP32[(((dssPtr) + (12)) >> 2)]], + "stencilFront": makeStencilStateFace(dssPtr + 16), + "stencilBack": makeStencilStateFace(dssPtr + 32), + "stencilReadMask": HEAPU32[(((dssPtr) + (48)) >> 2)], + "stencilWriteMask": HEAPU32[(((dssPtr) + (52)) >> 2)], + "depthBias": HEAP32[(((dssPtr) + (56)) >> 2)], + "depthBiasSlopeScale": HEAPF32[(((dssPtr) + (60)) >> 2)], + "depthBiasClamp": HEAPF32[(((dssPtr) + (64)) >> 2)] + }; + } + function makeVertexAttribute(vaPtr) { + return { + "format": WebGPU.VertexFormat[HEAP32[(((vaPtr) + (4)) >> 2)]], + "offset": readI53FromI64((vaPtr) + (8)), + "shaderLocation": HEAPU32[(((vaPtr) + (16)) >> 2)] + }; + } + function makeVertexAttributes(count, vaArrayPtr) { + var vas = []; + for (var i = 0; i < count; ++i) { + vas.push(makeVertexAttribute(vaArrayPtr + i * 24)); + } + return vas; + } + function makeVertexBuffer(vbPtr) { + if (!vbPtr) return undefined; + var stepMode = WebGPU.VertexStepMode[HEAP32[(((vbPtr) + (4)) >> 2)]]; + var attributeCount = HEAPU32[(((vbPtr) + (16)) >> 2)]; + if (!stepMode && !attributeCount) { + return null; + } + return { + "arrayStride": readI53FromI64((vbPtr) + (8)), + "stepMode": stepMode, + "attributes": makeVertexAttributes(attributeCount, HEAPU32[(((vbPtr) + (20)) >> 2)]) + }; + } + function makeVertexBuffers(count, vbArrayPtr) { + if (!count) return undefined; + var vbs = []; + for (var i = 0; i < count; ++i) { + vbs.push(makeVertexBuffer(vbArrayPtr + i * 24)); + } + return vbs; + } + function makeVertexState(viPtr) { + if (!viPtr) return undefined; + var desc = { + "module": WebGPU.getJsObject(HEAPU32[(((viPtr) + (4)) >> 2)]), + "constants": WebGPU.makePipelineConstants(HEAPU32[(((viPtr) + (16)) >> 2)], HEAPU32[(((viPtr) + (20)) >> 2)]), + "buffers": makeVertexBuffers(HEAPU32[(((viPtr) + (24)) >> 2)], HEAPU32[(((viPtr) + (28)) >> 2)]), + "entryPoint": WebGPU.makeStringFromOptionalStringView(viPtr + 8) + }; + return desc; + } + function makeMultisampleState(msPtr) { + if (!msPtr) return undefined; + return { + "count": HEAPU32[(((msPtr) + (4)) >> 2)], + "mask": HEAPU32[(((msPtr) + (8)) >> 2)], + "alphaToCoverageEnabled": !!(HEAPU32[(((msPtr) + (12)) >> 2)]) + }; + } + function makeFragmentState(fsPtr) { + if (!fsPtr) return undefined; + var desc = { + "module": WebGPU.getJsObject(HEAPU32[(((fsPtr) + (4)) >> 2)]), + "constants": WebGPU.makePipelineConstants(HEAPU32[(((fsPtr) + (16)) >> 2)], HEAPU32[(((fsPtr) + (20)) >> 2)]), + "targets": makeColorStates(HEAPU32[(((fsPtr) + (24)) >> 2)], HEAPU32[(((fsPtr) + (28)) >> 2)]), + "entryPoint": WebGPU.makeStringFromOptionalStringView(fsPtr + 8) + }; + return desc; + } + var desc = { + "label": WebGPU.makeStringFromOptionalStringView(descriptor + 4), + "layout": WebGPU.makePipelineLayout(HEAPU32[(((descriptor) + (12)) >> 2)]), + "vertex": makeVertexState(descriptor + 16), + "primitive": makePrimitiveState(descriptor + 48), + "depthStencil": makeDepthStencilState(HEAPU32[(((descriptor) + (72)) >> 2)]), + "multisample": makeMultisampleState(descriptor + 76), + "fragment": makeFragmentState(HEAPU32[(((descriptor) + (92)) >> 2)]) + }; + return desc; + }, + fillLimitStruct: (limits, limitsOutPtr) => { + var nextInChainPtr = HEAPU32[((limitsOutPtr) >> 2)]; + function setLimitValueU32(name, basePtr, limitOffset, fallbackValue = 0) { + var limitValue = limits[name] ?? fallbackValue; + HEAPU32[(((basePtr) + (limitOffset)) >> 2)] = limitValue; + } + function setLimitValueU64(name, basePtr, limitOffset, fallbackValue = 0) { + var limitValue = limits[name] ?? fallbackValue; + // Limits are integer-valued JS `Number`s, so they fit in 'i53'. + writeI53ToI64((basePtr) + (limitOffset), limitValue); + } + setLimitValueU32("maxTextureDimension1D", limitsOutPtr, 4); + setLimitValueU32("maxTextureDimension2D", limitsOutPtr, 8); + setLimitValueU32("maxTextureDimension3D", limitsOutPtr, 12); + setLimitValueU32("maxTextureArrayLayers", limitsOutPtr, 16); + setLimitValueU32("maxBindGroups", limitsOutPtr, 20); + setLimitValueU32("maxBindGroupsPlusVertexBuffers", limitsOutPtr, 24); + setLimitValueU32("maxBindingsPerBindGroup", limitsOutPtr, 28); + setLimitValueU32("maxDynamicUniformBuffersPerPipelineLayout", limitsOutPtr, 32); + setLimitValueU32("maxDynamicStorageBuffersPerPipelineLayout", limitsOutPtr, 36); + setLimitValueU32("maxSampledTexturesPerShaderStage", limitsOutPtr, 40); + setLimitValueU32("maxSamplersPerShaderStage", limitsOutPtr, 44); + setLimitValueU32("maxStorageBuffersPerShaderStage", limitsOutPtr, 48); + setLimitValueU32("maxStorageTexturesPerShaderStage", limitsOutPtr, 52); + setLimitValueU32("maxUniformBuffersPerShaderStage", limitsOutPtr, 56); + setLimitValueU32("minUniformBufferOffsetAlignment", limitsOutPtr, 80); + setLimitValueU32("minStorageBufferOffsetAlignment", limitsOutPtr, 84); + setLimitValueU64("maxUniformBufferBindingSize", limitsOutPtr, 64); + setLimitValueU64("maxStorageBufferBindingSize", limitsOutPtr, 72); + setLimitValueU32("maxVertexBuffers", limitsOutPtr, 88); + setLimitValueU64("maxBufferSize", limitsOutPtr, 96); + setLimitValueU32("maxVertexAttributes", limitsOutPtr, 104); + setLimitValueU32("maxVertexBufferArrayStride", limitsOutPtr, 108); + setLimitValueU32("maxInterStageShaderVariables", limitsOutPtr, 112); + setLimitValueU32("maxColorAttachments", limitsOutPtr, 116); + setLimitValueU32("maxColorAttachmentBytesPerSample", limitsOutPtr, 120); + setLimitValueU32("maxComputeWorkgroupStorageSize", limitsOutPtr, 124); + setLimitValueU32("maxComputeInvocationsPerWorkgroup", limitsOutPtr, 128); + setLimitValueU32("maxComputeWorkgroupSizeX", limitsOutPtr, 132); + setLimitValueU32("maxComputeWorkgroupSizeY", limitsOutPtr, 136); + setLimitValueU32("maxComputeWorkgroupSizeZ", limitsOutPtr, 140); + setLimitValueU32("maxComputeWorkgroupsPerDimension", limitsOutPtr, 144); + // Note this limit is new and won't be present in all browsers for a while. Fall back to 0. + setLimitValueU32("maxImmediateSize", limitsOutPtr, 148); + if (nextInChainPtr !== 0) { + var sType = HEAP32[(((nextInChainPtr) + (4)) >> 2)]; + var compatibilityModeLimitsPtr = nextInChainPtr; + // Note these limits are new and won't be present in all browsers for a while. Fall back to exposing the PerShaderStage limit. + setLimitValueU32("maxStorageBuffersInVertexStage", compatibilityModeLimitsPtr, 8, limits.maxStorageBuffersPerShaderStage); + setLimitValueU32("maxStorageBuffersInFragmentStage", compatibilityModeLimitsPtr, 16, limits.maxStorageBuffersPerShaderStage); + setLimitValueU32("maxStorageTexturesInVertexStage", compatibilityModeLimitsPtr, 12, limits.maxStorageTexturesPerShaderStage); + setLimitValueU32("maxStorageTexturesInFragmentStage", compatibilityModeLimitsPtr, 20, limits.maxStorageTexturesPerShaderStage); + } + }, + fillAdapterInfoStruct: (info, infoStruct) => { + // Populate subgroup limits. + HEAPU32[(((infoStruct) + (52)) >> 2)] = info.subgroupMinSize; + HEAPU32[(((infoStruct) + (56)) >> 2)] = info.subgroupMaxSize; + // Append all the strings together to condense into a single malloc. + var strs = info.vendor + info.architecture + info.device + info.description; + var strPtr = stringToNewUTF8(strs); + var vendorLen = lengthBytesUTF8(info.vendor); + WebGPU.setStringView(infoStruct + 4, strPtr, vendorLen); + strPtr += vendorLen; + var architectureLen = lengthBytesUTF8(info.architecture); + WebGPU.setStringView(infoStruct + 12, strPtr, architectureLen); + strPtr += architectureLen; + var deviceLen = lengthBytesUTF8(info.device); + WebGPU.setStringView(infoStruct + 20, strPtr, deviceLen); + strPtr += deviceLen; + var descriptionLen = lengthBytesUTF8(info.description); + WebGPU.setStringView(infoStruct + 28, strPtr, descriptionLen); + strPtr += descriptionLen; + HEAP32[(((infoStruct) + (36)) >> 2)] = 2; + var adapterType = info.isFallbackAdapter ? 3 : 4; + HEAP32[(((infoStruct) + (40)) >> 2)] = adapterType; + HEAPU32[(((infoStruct) + (44)) >> 2)] = 0; + HEAPU32[(((infoStruct) + (48)) >> 2)] = 0; + }, + AddressMode: [ , "clamp-to-edge", "repeat", "mirror-repeat" ], + BlendFactor: [ , "zero", "one", "src", "one-minus-src", "src-alpha", "one-minus-src-alpha", "dst", "one-minus-dst", "dst-alpha", "one-minus-dst-alpha", "src-alpha-saturated", "constant", "one-minus-constant", "src1", "one-minus-src1", "src1-alpha", "one-minus-src1-alpha" ], + BlendOperation: [ , "add", "subtract", "reverse-subtract", "min", "max" ], + BufferBindingType: [ , , "uniform", "storage", "read-only-storage" ], + BufferMapState: [ , "unmapped", "pending", "mapped" ], + CompareFunction: [ , "never", "less", "equal", "less-equal", "greater", "not-equal", "greater-equal", "always" ], + CompilationInfoRequestStatus: [ , "success", "callback-cancelled" ], + ComponentSwizzle: [ , "0", "1", "r", "g", "b", "a" ], + CompositeAlphaMode: [ , "opaque", "premultiplied", "unpremultiplied", "inherit" ], + CullMode: [ , "none", "front", "back" ], + ErrorFilter: [ , "validation", "out-of-memory", "internal" ], + FeatureLevel: [ , "compatibility", "core" ], + FeatureName: { + 1: "core-features-and-limits", + 2: "depth-clip-control", + 3: "depth32float-stencil8", + 4: "texture-compression-bc", + 5: "texture-compression-bc-sliced-3d", + 6: "texture-compression-etc2", + 7: "texture-compression-astc", + 8: "texture-compression-astc-sliced-3d", + 9: "timestamp-query", + 10: "indirect-first-instance", + 11: "shader-f16", + 12: "rg11b10ufloat-renderable", + 13: "bgra8unorm-storage", + 14: "float32-filterable", + 15: "float32-blendable", + 16: "clip-distances", + 17: "dual-source-blending", + 18: "subgroups", + 19: "texture-formats-tier1", + 20: "texture-formats-tier2", + 21: "primitive-index", + 22: "texture-component-swizzle", + 327692: "chromium-experimental-unorm16-texture-formats", + 327729: "chromium-experimental-multi-draw-indirect" + }, + FilterMode: [ , "nearest", "linear" ], + FrontFace: [ , "ccw", "cw" ], + IndexFormat: [ , "uint16", "uint32" ], + InstanceFeatureName: [ , "timed-wait-any", "shader-source-spirv", "multiple-devices-per-adapter" ], + LoadOp: [ , "load", "clear" ], + MipmapFilterMode: [ , "nearest", "linear" ], + OptionalBool: [ "false", "true" ], + PowerPreference: [ , "low-power", "high-performance" ], + PredefinedColorSpace: [ , "srgb", "display-p3" ], + PrimitiveTopology: [ , "point-list", "line-list", "line-strip", "triangle-list", "triangle-strip" ], + QueryType: [ , "occlusion", "timestamp" ], + SamplerBindingType: [ , , "filtering", "non-filtering", "comparison" ], + Status: [ , "success", "error" ], + StencilOperation: [ , "keep", "zero", "replace", "invert", "increment-clamp", "decrement-clamp", "increment-wrap", "decrement-wrap" ], + StorageTextureAccess: [ , , "write-only", "read-only", "read-write" ], + StoreOp: [ , "store", "discard" ], + SurfaceGetCurrentTextureStatus: [ , "success-optimal", "success-suboptimal", "timeout", "outdated", "lost", "error" ], + TextureAspect: [ , "all", "stencil-only", "depth-only" ], + TextureDimension: [ , "1d", "2d", "3d" ], + TextureFormat: [ , "r8unorm", "r8snorm", "r8uint", "r8sint", "r16unorm", "r16snorm", "r16uint", "r16sint", "r16float", "rg8unorm", "rg8snorm", "rg8uint", "rg8sint", "r32float", "r32uint", "r32sint", "rg16unorm", "rg16snorm", "rg16uint", "rg16sint", "rg16float", "rgba8unorm", "rgba8unorm-srgb", "rgba8snorm", "rgba8uint", "rgba8sint", "bgra8unorm", "bgra8unorm-srgb", "rgb10a2uint", "rgb10a2unorm", "rg11b10ufloat", "rgb9e5ufloat", "rg32float", "rg32uint", "rg32sint", "rgba16unorm", "rgba16snorm", "rgba16uint", "rgba16sint", "rgba16float", "rgba32float", "rgba32uint", "rgba32sint", "stencil8", "depth16unorm", "depth24plus", "depth24plus-stencil8", "depth32float", "depth32float-stencil8", "bc1-rgba-unorm", "bc1-rgba-unorm-srgb", "bc2-rgba-unorm", "bc2-rgba-unorm-srgb", "bc3-rgba-unorm", "bc3-rgba-unorm-srgb", "bc4-r-unorm", "bc4-r-snorm", "bc5-rg-unorm", "bc5-rg-snorm", "bc6h-rgb-ufloat", "bc6h-rgb-float", "bc7-rgba-unorm", "bc7-rgba-unorm-srgb", "etc2-rgb8unorm", "etc2-rgb8unorm-srgb", "etc2-rgb8a1unorm", "etc2-rgb8a1unorm-srgb", "etc2-rgba8unorm", "etc2-rgba8unorm-srgb", "eac-r11unorm", "eac-r11snorm", "eac-rg11unorm", "eac-rg11snorm", "astc-4x4-unorm", "astc-4x4-unorm-srgb", "astc-5x4-unorm", "astc-5x4-unorm-srgb", "astc-5x5-unorm", "astc-5x5-unorm-srgb", "astc-6x5-unorm", "astc-6x5-unorm-srgb", "astc-6x6-unorm", "astc-6x6-unorm-srgb", "astc-8x5-unorm", "astc-8x5-unorm-srgb", "astc-8x6-unorm", "astc-8x6-unorm-srgb", "astc-8x8-unorm", "astc-8x8-unorm-srgb", "astc-10x5-unorm", "astc-10x5-unorm-srgb", "astc-10x6-unorm", "astc-10x6-unorm-srgb", "astc-10x8-unorm", "astc-10x8-unorm-srgb", "astc-10x10-unorm", "astc-10x10-unorm-srgb", "astc-12x10-unorm", "astc-12x10-unorm-srgb", "astc-12x12-unorm", "astc-12x12-unorm-srgb" ], + TextureSampleType: [ , , "float", "unfilterable-float", "depth", "sint", "uint" ], + TextureViewDimension: [ , "1d", "2d", "2d-array", "cube", "cube-array", "3d" ], + ToneMappingMode: [ , "standard", "extended" ], + VertexFormat: [ , "uint8", "uint8x2", "uint8x4", "sint8", "sint8x2", "sint8x4", "unorm8", "unorm8x2", "unorm8x4", "snorm8", "snorm8x2", "snorm8x4", "uint16", "uint16x2", "uint16x4", "sint16", "sint16x2", "sint16x4", "unorm16", "unorm16x2", "unorm16x4", "snorm16", "snorm16x2", "snorm16x4", "float16", "float16x2", "float16x4", "float32", "float32x2", "float32x3", "float32x4", "uint32", "uint32x2", "uint32x3", "uint32x4", "sint32", "sint32x2", "sint32x3", "sint32x4", "unorm10-10-10-2", "unorm8x4-bgra" ], + VertexStepMode: [ , "vertex", "instance" ], + WGSLLanguageFeatureName: [ , "readonly_and_readwrite_storage_textures", "packed_4x8_integer_dot_product", "unrestricted_pointer_parameters", "pointer_composite_access", "uniform_buffer_standard_layout", "subgroup_id", "texture_and_sampler_let", "subgroup_uniformity", "texture_formats_tier1" ] +}; + +var _emscripten_webgpu_get_device = () => { + if (WebGPU.preinitializedDeviceId === undefined) { + WebGPU.preinitializedDeviceId = WebGPU.importJsDevice(Module["preinitializedWebGPUDevice"]); + // Some users depend on this keeping the device alive, so we add an + // additional reference when we first initialize it. + _wgpuDeviceAddRef(WebGPU.preinitializedDeviceId); + } + _wgpuDeviceAddRef(WebGPU.preinitializedDeviceId); + return WebGPU.preinitializedDeviceId; +}; + +var _emwgpuBufferDestroy = bufferPtr => { + var buffer = WebGPU.getJsObject(bufferPtr); + var onUnmap = WebGPU.Internals.bufferOnUnmaps[bufferPtr]; + if (onUnmap) { + for (var i = 0; i < onUnmap.length; ++i) { + onUnmap[i](); + } + delete WebGPU.Internals.bufferOnUnmaps[bufferPtr]; + } + buffer.destroy(); +}; + +var _emwgpuBufferGetMappedRange = (bufferPtr, offset, size) => { + var buffer = WebGPU.getJsObject(bufferPtr); + if (size == -1) size = undefined; + var mapped; + try { + mapped = buffer.getMappedRange(offset, size); + } catch (ex) { + return 0; + } + var data = _memalign(16, mapped.byteLength); + HEAPU8.fill(0, data, mapped.byteLength); + WebGPU.Internals.bufferOnUnmaps[bufferPtr].push(() => { + new Uint8Array(mapped).set(HEAPU8.subarray(data, data + mapped.byteLength)); + _free(data); + }); + return data; +}; + +var _emwgpuBufferUnmap = bufferPtr => { + var buffer = WebGPU.getJsObject(bufferPtr); + var onUnmap = WebGPU.Internals.bufferOnUnmaps[bufferPtr]; + if (!onUnmap) { + // Already unmapped + return; + } + for (var i = 0; i < onUnmap.length; ++i) { + onUnmap[i](); + } + delete WebGPU.Internals.bufferOnUnmaps[bufferPtr]; + buffer.unmap(); +}; + +var _emwgpuDelete = ptr => { + delete WebGPU.Internals.jsObjects[ptr]; +}; + +var _emwgpuDeviceCreateBuffer = (devicePtr, descriptor, bufferPtr) => { + var mappedAtCreation = !!(HEAPU32[(((descriptor) + (32)) >> 2)]); + var desc = { + "label": WebGPU.makeStringFromOptionalStringView(descriptor + 4), + "usage": HEAPU32[(((descriptor) + (16)) >> 2)], + "size": readI53FromI64((descriptor) + (24)), + "mappedAtCreation": mappedAtCreation + }; + var device = WebGPU.getJsObject(devicePtr); + var buffer; + try { + buffer = device.createBuffer(desc); + } catch (ex) { + // The only exception should be RangeError if mapping at creation ran out of memory. + return false; + } + WebGPU.Internals.jsObjectInsert(bufferPtr, buffer); + if (mappedAtCreation) { + WebGPU.Internals.bufferOnUnmaps[bufferPtr] = []; + } + return true; +}; + +var _emwgpuDeviceCreateComputePipelineAsync = function(devicePtr, futureId_low, futureId_high, descriptor, pipelinePtr) { + var futureId = convertI32PairToI53Checked(futureId_low, futureId_high); + var desc = WebGPU.makeComputePipelineDesc(descriptor); + var device = WebGPU.getJsObject(devicePtr); + // createComputePipelineAsync + WebGPU.Internals.futureInsert(futureId, device.createComputePipelineAsync(desc).then(pipeline => { + // createComputePipelineAsync fulfilled + callUserCallback(() => { + WebGPU.Internals.jsObjectInsert(pipelinePtr, pipeline); + _emwgpuOnCreateComputePipelineCompleted(futureId, 1, pipelinePtr, 0); + }); + }, pipelineError => { + // createComputePipelineAsync rejected + callUserCallback(() => { + var sp = stackSave(); + var messagePtr = stringToUTF8OnStack(pipelineError.message); + var status = pipelineError.reason === "validation" ? 3 : pipelineError.reason === "internal" ? 4 : 0; + _emwgpuOnCreateComputePipelineCompleted(futureId, status, pipelinePtr, messagePtr); + stackRestore(sp); + }); + })); +}; + +var _emwgpuDeviceCreateRenderPipelineAsync = function(devicePtr, futureId_low, futureId_high, descriptor, pipelinePtr) { + var futureId = convertI32PairToI53Checked(futureId_low, futureId_high); + var desc = WebGPU.makeRenderPipelineDesc(descriptor); + var device = WebGPU.getJsObject(devicePtr); + // createRenderPipelineAsync + WebGPU.Internals.futureInsert(futureId, device.createRenderPipelineAsync(desc).then(pipeline => { + // createRenderPipelineAsync fulfilled + callUserCallback(() => { + WebGPU.Internals.jsObjectInsert(pipelinePtr, pipeline); + _emwgpuOnCreateRenderPipelineCompleted(futureId, 1, pipelinePtr, 0); + }); + }, pipelineError => { + // createRenderPipelineAsync rejected + callUserCallback(() => { + var sp = stackSave(); + var messagePtr = stringToUTF8OnStack(pipelineError.message); + var status = pipelineError.reason === "validation" ? 3 : pipelineError.reason === "internal" ? 4 : 0; + _emwgpuOnCreateRenderPipelineCompleted(futureId, status, pipelinePtr, messagePtr); + stackRestore(sp); + }); + })); +}; + +var _emwgpuDeviceCreateShaderModule = (devicePtr, descriptor, shaderModulePtr) => { + var nextInChainPtr = HEAPU32[((descriptor) >> 2)]; + var sType = HEAP32[(((nextInChainPtr) + (4)) >> 2)]; + var desc = { + "label": WebGPU.makeStringFromOptionalStringView(descriptor + 4), + "code": "" + }; + switch (sType) { + case 2: + { + desc["code"] = WebGPU.makeStringFromStringView(nextInChainPtr + 8); + break; + } + } + var device = WebGPU.getJsObject(devicePtr); + WebGPU.Internals.jsObjectInsert(shaderModulePtr, device.createShaderModule(desc)); +}; + +var _emwgpuDeviceDestroy = devicePtr => { + const device = WebGPU.getJsObject(devicePtr); + // Remove the onuncapturederror handler which holds a pointer to the WGPUDevice. + device.onuncapturederror = null; + device.destroy(); +}; + +var _emwgpuWaitAny = (futurePtr, futureCount, timeoutMSPtr) => { + abort("TODO: Implement asyncify-free WaitAny for timeout=0"); +}; + +var ENV = {}; + +var getExecutableName = () => thisProgram || "./this.program"; + +var getEnvStrings = () => { + if (!getEnvStrings.strings) { + // Default values. + // Browser language detection #8751 + var lang = (globalThis.navigator?.language ?? "C").replace("-", "_") + ".UTF-8"; + var env = { + "USER": "web_user", + "LOGNAME": "web_user", + "PATH": "/", + "PWD": "/", + "HOME": "/home/web_user", + "LANG": lang, + "_": getExecutableName() + }; + // Apply the user-provided values, if any. + for (var x in ENV) { + // x is a key in ENV; if ENV[x] is undefined, that means it was + // explicitly set to be so. We allow user code to do that to + // force variables with default values to remain unset. + if (ENV[x] === undefined) delete env[x]; else env[x] = ENV[x]; + } + var strings = []; + for (var x in env) { + strings.push(`${x}=${env[x]}`); + } + getEnvStrings.strings = strings; + } + return getEnvStrings.strings; +}; + +var _environ_get = (__environ, environ_buf) => { + var bufSize = 0; + var envp = 0; + for (var string of getEnvStrings()) { + var ptr = environ_buf + bufSize; + HEAPU32[(((__environ) + (envp)) >> 2)] = ptr; + bufSize += stringToUTF8(string, ptr, Infinity) + 1; + envp += 4; + } + return 0; +}; + +var _environ_sizes_get = (penviron_count, penviron_buf_size) => { + var strings = getEnvStrings(); + HEAPU32[((penviron_count) >> 2)] = strings.length; + var bufSize = 0; + for (var string of strings) { + bufSize += lengthBytesUTF8(string) + 1; + } + HEAPU32[((penviron_buf_size) >> 2)] = bufSize; + return 0; +}; + +function _fd_close(fd) { + try { + var stream = SYSCALLS.getStreamFromFD(fd); + FS.close(stream); + return 0; + } catch (e) { + if (typeof FS == "undefined" || !(e.name === "ErrnoError")) throw e; + return e.errno; + } +} + +/** @param {number=} offset */ var doReadv = (stream, iov, iovcnt, offset) => { + var ret = 0; + for (var i = 0; i < iovcnt; i++) { + var ptr = HEAPU32[((iov) >> 2)]; + var len = HEAPU32[(((iov) + (4)) >> 2)]; + iov += 8; + var curr = FS.read(stream, HEAP8, ptr, len, offset); + if (curr < 0) return -1; + ret += curr; + if (curr < len) break; + // nothing more to read + if (typeof offset != "undefined") { + offset += curr; + } + } + return ret; +}; + +function _fd_read(fd, iov, iovcnt, pnum) { + try { + var stream = SYSCALLS.getStreamFromFD(fd); + var num = doReadv(stream, iov, iovcnt); + HEAPU32[((pnum) >> 2)] = num; + return 0; + } catch (e) { + if (typeof FS == "undefined" || !(e.name === "ErrnoError")) throw e; + return e.errno; + } +} + +function _fd_seek(fd, offset_low, offset_high, whence, newOffset) { + var offset = convertI32PairToI53Checked(offset_low, offset_high); + try { + if (isNaN(offset)) return 61; + var stream = SYSCALLS.getStreamFromFD(fd); + FS.llseek(stream, offset, whence); + (tempI64 = [ stream.position >>> 0, (tempDouble = stream.position, (+(Math.abs(tempDouble))) >= 1 ? (tempDouble > 0 ? (+(Math.floor((tempDouble) / 4294967296))) >>> 0 : (~~((+(Math.ceil((tempDouble - +(((~~(tempDouble))) >>> 0)) / 4294967296))))) >>> 0) : 0) ], + HEAP32[((newOffset) >> 2)] = tempI64[0], HEAP32[(((newOffset) + (4)) >> 2)] = tempI64[1]); + if (stream.getdents && offset === 0 && whence === 0) stream.getdents = null; + // reset readdir state + return 0; + } catch (e) { + if (typeof FS == "undefined" || !(e.name === "ErrnoError")) throw e; + return e.errno; + } +} + +/** @param {number=} offset */ var doWritev = (stream, iov, iovcnt, offset) => { + var ret = 0; + for (var i = 0; i < iovcnt; i++) { + var ptr = HEAPU32[((iov) >> 2)]; + var len = HEAPU32[(((iov) + (4)) >> 2)]; + iov += 8; + var curr = FS.write(stream, HEAP8, ptr, len, offset); + if (curr < 0) return -1; + ret += curr; + if (curr < len) { + // No more space to write. + break; + } + if (typeof offset != "undefined") { + offset += curr; + } + } + return ret; +}; + +function _fd_write(fd, iov, iovcnt, pnum) { + try { + var stream = SYSCALLS.getStreamFromFD(fd); + var num = doWritev(stream, iov, iovcnt); + HEAPU32[((pnum) >> 2)] = num; + return 0; + } catch (e) { + if (typeof FS == "undefined" || !(e.name === "ErrnoError")) throw e; + return e.errno; + } +} + +var _emscripten_glActiveTexture = x0 => GLctx.activeTexture(x0); + +var _glActiveTexture = _emscripten_glActiveTexture; + +var _emscripten_glAttachShader = (program, shader) => { + GLctx.attachShader(GL.programs[program], GL.shaders[shader]); +}; + +var _glAttachShader = _emscripten_glAttachShader; + +var _emscripten_glBindAttribLocation = (program, index, name) => { + GLctx.bindAttribLocation(GL.programs[program], index, UTF8ToString(name)); +}; + +var _glBindAttribLocation = _emscripten_glBindAttribLocation; + +var _emscripten_glBindBuffer = (target, buffer) => { + // Calling glBindBuffer with an unknown buffer will implicitly create a + // new one. Here we bypass `GL.counter` and directly using the ID passed + // in. + if (buffer && !GL.buffers[buffer]) { + var b = GLctx.createBuffer(); + b.name = buffer; + GL.buffers[buffer] = b; + } + if (target == 34962) { + GLctx.currentArrayBufferBinding = buffer; + } else if (target == 34963) { + GLctx.currentElementArrayBufferBinding = buffer; + } + if (target == 35051) { + // In WebGL 2 glReadPixels entry point, we need to use a different WebGL 2 + // API function call when a buffer is bound to + // GL_PIXEL_PACK_BUFFER_BINDING point, so must keep track whether that + // binding point is non-null to know what is the proper API function to + // call. + GLctx.currentPixelPackBufferBinding = buffer; + } else if (target == 35052) { + // In WebGL 2 gl(Compressed)Tex(Sub)Image[23]D entry points, we need to + // use a different WebGL 2 API function call when a buffer is bound to + // GL_PIXEL_UNPACK_BUFFER_BINDING point, so must keep track whether that + // binding point is non-null to know what is the proper API function to + // call. + GLctx.currentPixelUnpackBufferBinding = buffer; + } + GLctx.bindBuffer(target, GL.buffers[buffer]); +}; + +var _glBindBuffer = _emscripten_glBindBuffer; + +var _emscripten_glBindBufferBase = (target, index, buffer) => { + GLctx.bindBufferBase(target, index, GL.buffers[buffer]); +}; + +var _glBindBufferBase = _emscripten_glBindBufferBase; + +var _emscripten_glBindFramebuffer = (target, framebuffer) => { + GLctx.bindFramebuffer(target, GL.framebuffers[framebuffer]); +}; + +var _glBindFramebuffer = _emscripten_glBindFramebuffer; + +var _emscripten_glBindTexture = (target, texture) => { + GLctx.bindTexture(target, GL.textures[texture]); +}; + +var _glBindTexture = _emscripten_glBindTexture; + +var _emscripten_glBindVertexArray = vao => { + GLctx.bindVertexArray(GL.vaos[vao]); + var ibo = GLctx.getParameter(34965); + GLctx.currentElementArrayBufferBinding = ibo ? (ibo.name | 0) : 0; +}; + +var _glBindVertexArray = _emscripten_glBindVertexArray; + +var _emscripten_glBlendEquation = x0 => GLctx.blendEquation(x0); + +var _glBlendEquation = _emscripten_glBlendEquation; + +var _emscripten_glBlendFunc = (x0, x1) => GLctx.blendFunc(x0, x1); + +var _glBlendFunc = _emscripten_glBlendFunc; + +var _emscripten_glBufferData = (target, size, data, usage) => { + if (GL.currentContext.version >= 2) { + // If size is zero, WebGL would interpret uploading the whole input + // arraybuffer (starting from given offset), which would not make sense in + // WebAssembly, so avoid uploading if size is zero. However we must still + // call bufferData to establish a backing storage of zero bytes. + if (data && size) { + GLctx.bufferData(target, HEAPU8, usage, data, size); + } else { + GLctx.bufferData(target, size, usage); + } + return; + } + // N.b. here first form specifies a heap subarray, second form an integer + // size, so the ?: code here is polymorphic. It is advised to avoid + // randomly mixing both uses in calling code, to avoid any potential JS + // engine JIT issues. + GLctx.bufferData(target, data ? HEAPU8.subarray(data, data + size) : size, usage); +}; + +var _glBufferData = _emscripten_glBufferData; + +var _emscripten_glClear = x0 => GLctx.clear(x0); + +var _glClear = _emscripten_glClear; + +var _emscripten_glClearColor = (x0, x1, x2, x3) => GLctx.clearColor(x0, x1, x2, x3); + +var _glClearColor = _emscripten_glClearColor; + +var convertI32PairToI53 = (lo, hi) => (lo >>> 0) + hi * 4294967296; + +var _emscripten_glClientWaitSync = (sync, flags, timeout_low, timeout_high) => { + // WebGL2 vs GLES3 differences: in GLES3, the timeout parameter is a uint64, where 0xFFFFFFFFFFFFFFFFULL means GL_TIMEOUT_IGNORED. + // In JS, there's no 64-bit value types, so instead timeout is taken to be signed, and GL_TIMEOUT_IGNORED is given value -1. + // Inherently the value accepted in the timeout is lossy, and can't take in arbitrary u64 bit pattern (but most likely doesn't matter) + // See https://www.khronos.org/registry/webgl/specs/latest/2.0/#5.15 + var timeout = convertI32PairToI53(timeout_low, timeout_high); + return GLctx.clientWaitSync(GL.syncs[sync], flags, timeout); +}; + +var _glClientWaitSync = _emscripten_glClientWaitSync; + +var _emscripten_glColorMask = (red, green, blue, alpha) => { + GLctx.colorMask(!!red, !!green, !!blue, !!alpha); +}; + +var _glColorMask = _emscripten_glColorMask; + +var _emscripten_glCompileShader = shader => { + GLctx.compileShader(GL.shaders[shader]); +}; + +var _glCompileShader = _emscripten_glCompileShader; + +var _emscripten_glCreateProgram = () => { + var id = GL.getNewId(GL.programs); + var program = GLctx.createProgram(); + // Store additional information needed for each shader program: + program.name = id; + // Lazy cache results of + // glGetProgramiv(GL_ACTIVE_UNIFORM_MAX_LENGTH/GL_ACTIVE_ATTRIBUTE_MAX_LENGTH/GL_ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH) + program.maxUniformLength = program.maxAttributeLength = program.maxUniformBlockNameLength = 0; + program.uniformIdCounter = 1; + GL.programs[id] = program; + return id; +}; + +var _glCreateProgram = _emscripten_glCreateProgram; + +var _emscripten_glCreateShader = shaderType => { + var id = GL.getNewId(GL.shaders); + GL.shaders[id] = GLctx.createShader(shaderType); + return id; +}; + +var _glCreateShader = _emscripten_glCreateShader; + +var _emscripten_glDeleteBuffers = (n, buffers) => { + for (var i = 0; i < n; i++) { + var id = HEAP32[(((buffers) + (i * 4)) >> 2)]; + var buffer = GL.buffers[id]; + // From spec: "glDeleteBuffers silently ignores 0's and names that do not + // correspond to existing buffer objects." + if (!buffer) continue; + GLctx.deleteBuffer(buffer); + buffer.name = 0; + GL.buffers[id] = null; + if (id == GLctx.currentArrayBufferBinding) GLctx.currentArrayBufferBinding = 0; + if (id == GLctx.currentElementArrayBufferBinding) GLctx.currentElementArrayBufferBinding = 0; + if (id == GLctx.currentPixelPackBufferBinding) GLctx.currentPixelPackBufferBinding = 0; + if (id == GLctx.currentPixelUnpackBufferBinding) GLctx.currentPixelUnpackBufferBinding = 0; + } +}; + +var _glDeleteBuffers = _emscripten_glDeleteBuffers; + +var _emscripten_glDeleteFramebuffers = (n, framebuffers) => { + for (var i = 0; i < n; ++i) { + var id = HEAP32[(((framebuffers) + (i * 4)) >> 2)]; + var framebuffer = GL.framebuffers[id]; + if (!framebuffer) continue; + // GL spec: "glDeleteFramebuffers silently ignores 0s and names that do not correspond to existing framebuffer objects". + GLctx.deleteFramebuffer(framebuffer); + framebuffer.name = 0; + GL.framebuffers[id] = null; + } +}; + +var _glDeleteFramebuffers = _emscripten_glDeleteFramebuffers; + +var _emscripten_glDeleteProgram = id => { + if (!id) return; + var program = GL.programs[id]; + if (!program) { + // glDeleteProgram actually signals an error when deleting a nonexisting + // object, unlike some other GL delete functions. + GL.recordError(1281); + return; + } + GLctx.deleteProgram(program); + program.name = 0; + GL.programs[id] = null; +}; + +var _glDeleteProgram = _emscripten_glDeleteProgram; + +var _emscripten_glDeleteShader = id => { + if (!id) return; + var shader = GL.shaders[id]; + if (!shader) { + // glDeleteShader actually signals an error when deleting a nonexisting + // object, unlike some other GL delete functions. + GL.recordError(1281); + return; + } + GLctx.deleteShader(shader); + GL.shaders[id] = null; +}; + +var _glDeleteShader = _emscripten_glDeleteShader; + +var _emscripten_glDeleteSync = id => { + if (!id) return; + var sync = GL.syncs[id]; + if (!sync) { + // glDeleteSync signals an error when deleting a nonexisting object, unlike some other GL delete functions. + GL.recordError(1281); + return; + } + GLctx.deleteSync(sync); + sync.name = 0; + GL.syncs[id] = null; +}; + +var _glDeleteSync = _emscripten_glDeleteSync; + +var _emscripten_glDeleteTextures = (n, textures) => { + for (var i = 0; i < n; i++) { + var id = HEAP32[(((textures) + (i * 4)) >> 2)]; + var texture = GL.textures[id]; + // GL spec: "glDeleteTextures silently ignores 0s and names that do not + // correspond to existing textures". + if (!texture) continue; + GLctx.deleteTexture(texture); + texture.name = 0; + GL.textures[id] = null; + } +}; + +var _glDeleteTextures = _emscripten_glDeleteTextures; + +var _emscripten_glDeleteVertexArrays = (n, vaos) => { + for (var i = 0; i < n; i++) { + var id = HEAP32[(((vaos) + (i * 4)) >> 2)]; + GLctx.deleteVertexArray(GL.vaos[id]); + GL.vaos[id] = null; + } +}; + +var _glDeleteVertexArrays = _emscripten_glDeleteVertexArrays; + +var _emscripten_glDetachShader = (program, shader) => { + GLctx.detachShader(GL.programs[program], GL.shaders[shader]); +}; + +var _glDetachShader = _emscripten_glDetachShader; + +var _emscripten_glDisable = x0 => GLctx.disable(x0); + +var _glDisable = _emscripten_glDisable; + +var _emscripten_glDisableVertexAttribArray = index => { + var cb = GL.currentContext.clientBuffers[index]; + cb.enabled = false; + GLctx.disableVertexAttribArray(index); +}; + +var _glDisableVertexAttribArray = _emscripten_glDisableVertexAttribArray; + +var _emscripten_glDrawArrays = (mode, first, count) => { + // bind any client-side buffers + GL.preDrawHandleClientVertexAttribBindings(first + count); + GLctx.drawArrays(mode, first, count); + GL.postDrawHandleClientVertexAttribBindings(); +}; + +var _glDrawArrays = _emscripten_glDrawArrays; + +var tempFixedLengthArray = []; + +var _emscripten_glDrawBuffers = (n, bufs) => { + var bufArray = tempFixedLengthArray[n]; + for (var i = 0; i < n; i++) { + bufArray[i] = HEAP32[(((bufs) + (i * 4)) >> 2)]; + } + GLctx.drawBuffers(bufArray); +}; + +var _glDrawBuffers = _emscripten_glDrawBuffers; + +var _emscripten_glEnable = x0 => GLctx.enable(x0); + +var _glEnable = _emscripten_glEnable; + +var _emscripten_glEnableVertexAttribArray = index => { + var cb = GL.currentContext.clientBuffers[index]; + cb.enabled = true; + GLctx.enableVertexAttribArray(index); +}; + +var _glEnableVertexAttribArray = _emscripten_glEnableVertexAttribArray; + +var _emscripten_glFenceSync = (condition, flags) => { + var sync = GLctx.fenceSync(condition, flags); + if (sync) { + var id = GL.getNewId(GL.syncs); + sync.name = id; + GL.syncs[id] = sync; + return id; + } + return 0; +}; + +var _glFenceSync = _emscripten_glFenceSync; + +var _emscripten_glFinish = () => GLctx.finish(); + +var _glFinish = _emscripten_glFinish; + +var _emscripten_glFlush = () => GLctx.flush(); + +var _glFlush = _emscripten_glFlush; + +var _emscripten_glFramebufferTexture2D = (target, attachment, textarget, texture, level) => { + GLctx.framebufferTexture2D(target, attachment, textarget, GL.textures[texture], level); +}; + +var _glFramebufferTexture2D = _emscripten_glFramebufferTexture2D; + +var _emscripten_glFramebufferTextureLayer = (target, attachment, texture, level, layer) => { + GLctx.framebufferTextureLayer(target, attachment, GL.textures[texture], level, layer); +}; + +var _glFramebufferTextureLayer = _emscripten_glFramebufferTextureLayer; + +var _emscripten_glGenBuffers = (n, buffers) => { + GL.genObject(n, buffers, "createBuffer", GL.buffers); +}; + +var _glGenBuffers = _emscripten_glGenBuffers; + +var _emscripten_glGenFramebuffers = (n, ids) => { + GL.genObject(n, ids, "createFramebuffer", GL.framebuffers); +}; + +var _glGenFramebuffers = _emscripten_glGenFramebuffers; + +var _emscripten_glGenTextures = (n, textures) => { + GL.genObject(n, textures, "createTexture", GL.textures); +}; + +var _glGenTextures = _emscripten_glGenTextures; + +var _emscripten_glGenVertexArrays = (n, arrays) => { + GL.genObject(n, arrays, "createVertexArray", GL.vaos); +}; + +var _glGenVertexArrays = _emscripten_glGenVertexArrays; + +var _emscripten_glGetAttribLocation = (program, name) => GLctx.getAttribLocation(GL.programs[program], UTF8ToString(name)); + +var _glGetAttribLocation = _emscripten_glGetAttribLocation; + +var _emscripten_glGetError = () => { + var error = GLctx.getError() || GL.lastError; + GL.lastError = 0; + return error; +}; + +var _glGetError = _emscripten_glGetError; + +var webglGetExtensions = () => { + var exts = getEmscriptenSupportedExtensions(GLctx); + exts = exts.concat(exts.map(e => "GL_" + e)); + return exts; +}; + +var emscriptenWebGLGet = (name_, p, type) => { + // Guard against user passing a null pointer. + // Note that GLES2 spec does not say anything about how passing a null + // pointer should be treated. Testing on desktop core GL 3, the application + // crashes on glGetIntegerv to a null pointer, but better to report an error + // instead of doing anything random. + if (!p) { + GL.recordError(1281); + return; + } + var ret = undefined; + switch (name_) { + // Handle a few trivial GLES values + case 36346: + // GL_SHADER_COMPILER + ret = 1; + break; + + case 36344: + // GL_SHADER_BINARY_FORMATS + if (type != 0 && type != 1) { + GL.recordError(1280); + } + // Do not write anything to the out pointer, since no binary formats are + // supported. + return; + + case 34814: + // GL_NUM_PROGRAM_BINARY_FORMATS + case 36345: + // GL_NUM_SHADER_BINARY_FORMATS + ret = 0; + break; + + case 34466: + // GL_NUM_COMPRESSED_TEXTURE_FORMATS + // WebGL doesn't have GL_NUM_COMPRESSED_TEXTURE_FORMATS (it's obsolete + // since GL_COMPRESSED_TEXTURE_FORMATS returns a JS array that can be + // queried for length), so implement it ourselves to allow C++ GLES2 + // code to get the length. + var formats = GLctx.getParameter(34467); + ret = formats ? formats.length : 0; + break; + + case 33309: + // GL_NUM_EXTENSIONS + if (GL.currentContext.version < 2) { + // Calling GLES3/WebGL2 function with a GLES2/WebGL1 context + GL.recordError(1282); + return; + } + ret = webglGetExtensions().length; + break; + + case 33307: + // GL_MAJOR_VERSION + case 33308: + // GL_MINOR_VERSION + if (GL.currentContext.version < 2) { + GL.recordError(1280); + // GL_INVALID_ENUM + return; + } + ret = name_ == 33307 ? 3 : 0; + // return version 3.0 + break; + } + if (ret === undefined) { + var result = GLctx.getParameter(name_); + switch (typeof result) { + case "number": + ret = result; + break; + + case "boolean": + ret = result ? 1 : 0; + break; + + case "string": + GL.recordError(1280); + // GL_INVALID_ENUM + return; + + case "object": + if (result === null) { + // null is a valid result for some (e.g., which buffer is bound - + // perhaps nothing is bound), but otherwise can mean an invalid + // name_, which we need to report as an error + switch (name_) { + case 34964: + // ARRAY_BUFFER_BINDING + case 35725: + // CURRENT_PROGRAM + case 34965: + // ELEMENT_ARRAY_BUFFER_BINDING + case 36006: + // FRAMEBUFFER_BINDING or DRAW_FRAMEBUFFER_BINDING + case 36007: + // RENDERBUFFER_BINDING + case 32873: + // TEXTURE_BINDING_2D + case 34229: + // WebGL 2 GL_VERTEX_ARRAY_BINDING, or WebGL 1 extension OES_vertex_array_object GL_VERTEX_ARRAY_BINDING_OES + case 36662: + // COPY_READ_BUFFER_BINDING or COPY_READ_BUFFER + case 36663: + // COPY_WRITE_BUFFER_BINDING or COPY_WRITE_BUFFER + case 35053: + // PIXEL_PACK_BUFFER_BINDING + case 35055: + // PIXEL_UNPACK_BUFFER_BINDING + case 36010: + // READ_FRAMEBUFFER_BINDING + case 35097: + // SAMPLER_BINDING + case 35869: + // TEXTURE_BINDING_2D_ARRAY + case 32874: + // TEXTURE_BINDING_3D + case 36389: + // TRANSFORM_FEEDBACK_BINDING + case 35983: + // TRANSFORM_FEEDBACK_BUFFER_BINDING + case 35368: + // UNIFORM_BUFFER_BINDING + case 34068: + { + // TEXTURE_BINDING_CUBE_MAP + ret = 0; + break; + } + + default: + { + GL.recordError(1280); + // GL_INVALID_ENUM + return; + } + } + } else if (result instanceof Float32Array || result instanceof Uint32Array || result instanceof Int32Array || result instanceof Array) { + for (var i = 0; i < result.length; ++i) { + switch (type) { + case 0: + HEAP32[(((p) + (i * 4)) >> 2)] = result[i]; + break; + + case 2: + HEAPF32[(((p) + (i * 4)) >> 2)] = result[i]; + break; + + case 4: + HEAP8[(p) + (i)] = result[i] ? 1 : 0; + break; + } + } + return; + } else { + try { + ret = result.name | 0; + } catch (e) { + GL.recordError(1280); + // GL_INVALID_ENUM + err(`GL_INVALID_ENUM in glGet${type}v: Unknown object returned from WebGL getParameter(${name_})! (error: ${e})`); + return; + } + } + break; + + default: + GL.recordError(1280); + // GL_INVALID_ENUM + err(`GL_INVALID_ENUM in glGet${type}v: Native code calling glGet${type}v(${name_}) and it returns ${result} of type ${typeof (result)}!`); + return; + } + } + switch (type) { + case 1: + writeI53ToI64(p, ret); + break; + + case 0: + HEAP32[((p) >> 2)] = ret; + break; + + case 2: + HEAPF32[((p) >> 2)] = ret; + break; + + case 4: + HEAP8[p] = ret ? 1 : 0; + break; + } +}; + +var _emscripten_glGetFloatv = (name_, p) => emscriptenWebGLGet(name_, p, 2); + +var _glGetFloatv = _emscripten_glGetFloatv; + +var _emscripten_glGetIntegerv = (name_, p) => emscriptenWebGLGet(name_, p, 0); + +var _glGetIntegerv = _emscripten_glGetIntegerv; + +var _emscripten_glGetProgramiv = (program, pname, p) => { + if (!p) { + // GLES2 specification does not specify how to behave if p is a null + // pointer. Since calling this function does not make sense if p == null, + // issue a GL error to notify user about it. + GL.recordError(1281); + return; + } + if (program >= GL.counter) { + GL.recordError(1281); + return; + } + program = GL.programs[program]; + if (pname == 35716) { + // GL_INFO_LOG_LENGTH + var log = GLctx.getProgramInfoLog(program); + if (log === null) log = "(unknown error)"; + HEAP32[((p) >> 2)] = log.length + 1; + } else if (pname == 35719) { + if (!program.maxUniformLength) { + var numActiveUniforms = GLctx.getProgramParameter(program, 35718); + for (var i = 0; i < numActiveUniforms; ++i) { + program.maxUniformLength = Math.max(program.maxUniformLength, GLctx.getActiveUniform(program, i).name.length + 1); + } + } + HEAP32[((p) >> 2)] = program.maxUniformLength; + } else if (pname == 35722) { + if (!program.maxAttributeLength) { + var numActiveAttributes = GLctx.getProgramParameter(program, 35721); + for (var i = 0; i < numActiveAttributes; ++i) { + program.maxAttributeLength = Math.max(program.maxAttributeLength, GLctx.getActiveAttrib(program, i).name.length + 1); + } + } + HEAP32[((p) >> 2)] = program.maxAttributeLength; + } else if (pname == 35381) { + if (!program.maxUniformBlockNameLength) { + var numActiveUniformBlocks = GLctx.getProgramParameter(program, 35382); + for (var i = 0; i < numActiveUniformBlocks; ++i) { + program.maxUniformBlockNameLength = Math.max(program.maxUniformBlockNameLength, GLctx.getActiveUniformBlockName(program, i).length + 1); + } + } + HEAP32[((p) >> 2)] = program.maxUniformBlockNameLength; + } else { + HEAP32[((p) >> 2)] = GLctx.getProgramParameter(program, pname); + } +}; + +var _glGetProgramiv = _emscripten_glGetProgramiv; + +var _emscripten_glGetShaderInfoLog = (shader, maxLength, length, infoLog) => { + var log = GLctx.getShaderInfoLog(GL.shaders[shader]); + if (log === null) log = "(unknown error)"; + var numBytesWrittenExclNull = (maxLength > 0 && infoLog) ? stringToUTF8(log, infoLog, maxLength) : 0; + if (length) HEAP32[((length) >> 2)] = numBytesWrittenExclNull; +}; + +var _glGetShaderInfoLog = _emscripten_glGetShaderInfoLog; + +var _emscripten_glGetShaderiv = (shader, pname, p) => { + if (!p) { + // GLES2 specification does not specify how to behave if p is a null + // pointer. Since calling this function does not make sense if p == null, + // issue a GL error to notify user about it. + GL.recordError(1281); + return; + } + if (pname == 35716) { + // GL_INFO_LOG_LENGTH + var log = GLctx.getShaderInfoLog(GL.shaders[shader]); + if (log === null) log = "(unknown error)"; + // The GLES2 specification says that if the shader has an empty info log, + // a value of 0 is returned. Otherwise the log has a null char appended. + // (An empty string is falsey, so we can just check that instead of + // looking at log.length.) + var logLength = log ? log.length + 1 : 0; + HEAP32[((p) >> 2)] = logLength; + } else if (pname == 35720) { + // GL_SHADER_SOURCE_LENGTH + var source = GLctx.getShaderSource(GL.shaders[shader]); + // source may be a null, or the empty string, both of which are falsey + // values that we report a 0 length for. + var sourceLength = source ? source.length + 1 : 0; + HEAP32[((p) >> 2)] = sourceLength; + } else { + HEAP32[((p) >> 2)] = GLctx.getShaderParameter(GL.shaders[shader], pname); + } +}; + +var _glGetShaderiv = _emscripten_glGetShaderiv; + +var _emscripten_glGetString = name_ => { + var ret = GL.stringCache[name_]; + if (!ret) { + switch (name_) { + case 7939: + ret = stringToNewUTF8(webglGetExtensions().join(" ")); + break; + + case 7936: + case 7937: + case 37445: + case 37446: + var s = GLctx.getParameter(name_); + if (!s) { + GL.recordError(1280); + } + ret = s ? stringToNewUTF8(s) : 0; + break; + + case 7938: + var webGLVersion = GLctx.getParameter(7938); + // return GLES version string corresponding to the version of the WebGL context + var glVersion = `OpenGL ES 2.0 (${webGLVersion})`; + if (GL.currentContext.version >= 2) glVersion = `OpenGL ES 3.0 (${webGLVersion})`; + ret = stringToNewUTF8(glVersion); + break; + + case 35724: + var glslVersion = GLctx.getParameter(35724); + // extract the version number 'N.M' from the string 'WebGL GLSL ES N.M ...' + var ver_re = /^WebGL GLSL ES ([0-9]\.[0-9][0-9]?)(?:$| .*)/; + var ver_num = glslVersion.match(ver_re); + if (ver_num !== null) { + if (ver_num[1].length == 3) ver_num[1] = ver_num[1] + "0"; + // ensure minor version has 2 digits + glslVersion = `OpenGL ES GLSL ES ${ver_num[1]} (${glslVersion})`; + } + ret = stringToNewUTF8(glslVersion); + break; + + default: + GL.recordError(1280); + } + GL.stringCache[name_] = ret; + } + return ret; +}; + +var _glGetString = _emscripten_glGetString; + +var _emscripten_glGetUniformBlockIndex = (program, uniformBlockName) => GLctx.getUniformBlockIndex(GL.programs[program], UTF8ToString(uniformBlockName)); + +var _glGetUniformBlockIndex = _emscripten_glGetUniformBlockIndex; + +/** @suppress {checkTypes} */ var jstoi_q = str => parseInt(str); + +/** @noinline */ var webglGetLeftBracePos = name => name.slice(-1) == "]" && name.lastIndexOf("["); + +var webglPrepareUniformLocationsBeforeFirstUse = program => { + var uniformLocsById = program.uniformLocsById, // Maps GLuint -> WebGLUniformLocation + uniformSizeAndIdsByName = program.uniformSizeAndIdsByName, // Maps name -> [uniform array length, GLuint] + i, j; + // On the first time invocation of glGetUniformLocation on this shader program: + // initialize cache data structures and discover which uniforms are arrays. + if (!uniformLocsById) { + // maps GLint integer locations to WebGLUniformLocations + program.uniformLocsById = uniformLocsById = {}; + // maps integer locations back to uniform name strings, so that we can lazily fetch uniform array locations + program.uniformArrayNamesById = {}; + var numActiveUniforms = GLctx.getProgramParameter(program, 35718); + for (i = 0; i < numActiveUniforms; ++i) { + var u = GLctx.getActiveUniform(program, i); + var nm = u.name; + var sz = u.size; + var lb = webglGetLeftBracePos(nm); + var arrayName = lb > 0 ? nm.slice(0, lb) : nm; + // Assign a new location. + var id = program.uniformIdCounter; + program.uniformIdCounter += sz; + // Eagerly get the location of the uniformArray[0] base element. + // The remaining indices >0 will be left for lazy evaluation to + // improve performance. Those may never be needed to fetch, if the + // application fills arrays always in full starting from the first + // element of the array. + uniformSizeAndIdsByName[arrayName] = [ sz, id ]; + // Store placeholder integers in place that highlight that these + // >0 index locations are array indices pending population. + for (j = 0; j < sz; ++j) { + uniformLocsById[id] = j; + program.uniformArrayNamesById[id++] = arrayName; + } + } + } +}; + +var _emscripten_glGetUniformLocation = (program, name) => { + name = UTF8ToString(name); + if (program = GL.programs[program]) { + webglPrepareUniformLocationsBeforeFirstUse(program); + var uniformLocsById = program.uniformLocsById; + // Maps GLuint -> WebGLUniformLocation + var arrayIndex = 0; + var uniformBaseName = name; + // Invariant: when populating integer IDs for uniform locations, we must + // maintain the precondition that arrays reside in contiguous addresses, + // i.e. for a 'vec4 colors[10];', colors[4] must be at location + // colors[0]+4. However, user might call glGetUniformLocation(program, + // "colors") for an array, so we cannot discover based on the user input + // arguments whether the uniform we are dealing with is an array. The only + // way to discover which uniforms are arrays is to enumerate over all the + // active uniforms in the program. + var leftBrace = webglGetLeftBracePos(name); + // If user passed an array accessor "[index]", parse the array index off the accessor. + if (leftBrace > 0) { + arrayIndex = jstoi_q(name.slice(leftBrace + 1)) >>> 0; + // "index]", coerce parseInt(']') with >>>0 to treat "foo[]" as "foo[0]" and foo[-1] as unsigned out-of-bounds. + uniformBaseName = name.slice(0, leftBrace); + } + // Have we cached the location of this uniform before? + // A pair [array length, GLint of the uniform location] + var sizeAndId = program.uniformSizeAndIdsByName[uniformBaseName]; + // If a uniform with this name exists, and if its index is within the + // array limits (if it's even an array), query the WebGLlocation, or + // return an existing cached location. + if (sizeAndId && arrayIndex < sizeAndId[0]) { + arrayIndex += sizeAndId[1]; + // Add the base location of the uniform to the array index offset. + if ((uniformLocsById[arrayIndex] = uniformLocsById[arrayIndex] || GLctx.getUniformLocation(program, name))) { + return arrayIndex; + } + } + } else { + // N.b. we are currently unable to distinguish between GL program IDs that + // never existed vs GL program IDs that have been deleted, so report + // GL_INVALID_VALUE in both cases. + GL.recordError(1281); + } + return -1; +}; + +var _glGetUniformLocation = _emscripten_glGetUniformLocation; + +var _emscripten_glLineWidth = x0 => GLctx.lineWidth(x0); + +var _glLineWidth = _emscripten_glLineWidth; + +var _emscripten_glLinkProgram = program => { + program = GL.programs[program]; + GLctx.linkProgram(program); + // Invalidate earlier computed uniform->ID mappings, those have now become stale + program.uniformLocsById = 0; + // Mark as null-like so that glGetUniformLocation() knows to populate this again. + program.uniformSizeAndIdsByName = {}; +}; + +var _glLinkProgram = _emscripten_glLinkProgram; + +var _emscripten_glPixelStorei = (pname, param) => { + if (pname == 3317) { + GL.unpackAlignment = param; + } else if (pname == 3314) { + GL.unpackRowLength = param; + } + GLctx.pixelStorei(pname, param); +}; + +var _glPixelStorei = _emscripten_glPixelStorei; + +var computeUnpackAlignedImageSize = (width, height, sizePerPixel) => { + function roundedToNextMultipleOf(x, y) { + return (x + y - 1) & -y; + } + var plainRowSize = (GL.unpackRowLength || width) * sizePerPixel; + var alignedRowSize = roundedToNextMultipleOf(plainRowSize, GL.unpackAlignment); + return height * alignedRowSize; +}; + +var colorChannelsInGlTextureFormat = format => { + // Micro-optimizations for size: map format to size by subtracting smallest + // enum value (0x1902) from all values first. Also omit the most common + // size value (1) from the list, which is assumed by formats not on the + // list. + var colorChannels = { + // 0x1902 /* GL_DEPTH_COMPONENT */ - 0x1902: 1, + // 0x1906 /* GL_ALPHA */ - 0x1902: 1, + 5: 3, + 6: 4, + // 0x1909 /* GL_LUMINANCE */ - 0x1902: 1, + 8: 2, + 29502: 3, + 29504: 4, + // 0x1903 /* GL_RED */ - 0x1902: 1, + 26917: 2, + 26918: 2, + // 0x8D94 /* GL_RED_INTEGER */ - 0x1902: 1, + 29846: 3, + 29847: 4 + }; + return colorChannels[format - 6402] || 1; +}; + +var heapObjectForWebGLType = type => { + // Micro-optimization for size: Subtract lowest GL enum number (0x1400/* GL_BYTE */) from type to compare + // smaller values for the heap, for shorter generated code size. + // Also the type HEAPU16 is not tested for explicitly, but any unrecognized type will return out HEAPU16. + // (since most types are HEAPU16) + type -= 5120; + if (type == 0) return HEAP8; + if (type == 1) return HEAPU8; + if (type == 2) return HEAP16; + if (type == 4) return HEAP32; + if (type == 6) return HEAPF32; + if (type == 5 || type == 28922 || type == 28520 || type == 30779 || type == 30782) return HEAPU32; + return HEAPU16; +}; + +var toTypedArrayIndex = (pointer, heap) => pointer >>> (31 - Math.clz32(heap.BYTES_PER_ELEMENT)); + +var emscriptenWebGLGetTexPixelData = (type, format, width, height, pixels, internalFormat) => { + var heap = heapObjectForWebGLType(type); + var sizePerPixel = colorChannelsInGlTextureFormat(format) * heap.BYTES_PER_ELEMENT; + var bytes = computeUnpackAlignedImageSize(width, height, sizePerPixel); + return heap.subarray(toTypedArrayIndex(pixels, heap), toTypedArrayIndex(pixels + bytes, heap)); +}; + +var _emscripten_glReadPixels = (x, y, width, height, format, type, pixels) => { + if (GL.currentContext.version >= 2) { + if (GLctx.currentPixelPackBufferBinding) { + GLctx.readPixels(x, y, width, height, format, type, pixels); + return; + } + var heap = heapObjectForWebGLType(type); + var target = toTypedArrayIndex(pixels, heap); + GLctx.readPixels(x, y, width, height, format, type, heap, target); + return; + } + var pixelData = emscriptenWebGLGetTexPixelData(type, format, width, height, pixels, format); + if (!pixelData) { + GL.recordError(1280); + return; + } + GLctx.readPixels(x, y, width, height, format, type, pixelData); +}; + +var _glReadPixels = _emscripten_glReadPixels; + +var _emscripten_glShaderSource = (shader, count, string, length) => { + var source = GL.getSource(shader, count, string, length); + GLctx.shaderSource(GL.shaders[shader], source); +}; + +var _glShaderSource = _emscripten_glShaderSource; + +var _emscripten_glTexImage2D = (target, level, internalFormat, width, height, border, format, type, pixels) => { + if (GL.currentContext.version >= 2) { + if (GLctx.currentPixelUnpackBufferBinding) { + GLctx.texImage2D(target, level, internalFormat, width, height, border, format, type, pixels); + return; + } + if (pixels) { + var heap = heapObjectForWebGLType(type); + var index = toTypedArrayIndex(pixels, heap); + GLctx.texImage2D(target, level, internalFormat, width, height, border, format, type, heap, index); + return; + } + } + var pixelData = pixels ? emscriptenWebGLGetTexPixelData(type, format, width, height, pixels, internalFormat) : null; + GLctx.texImage2D(target, level, internalFormat, width, height, border, format, type, pixelData); +}; + +var _glTexImage2D = _emscripten_glTexImage2D; + +var _emscripten_glTexParameterf = (x0, x1, x2) => GLctx.texParameterf(x0, x1, x2); + +var _glTexParameterf = _emscripten_glTexParameterf; + +var _emscripten_glTexParameterfv = (target, pname, params) => { + var param = HEAPF32[((params) >> 2)]; + GLctx.texParameterf(target, pname, param); +}; + +var _glTexParameterfv = _emscripten_glTexParameterfv; + +var _emscripten_glTexParameteri = (x0, x1, x2) => GLctx.texParameteri(x0, x1, x2); + +var _glTexParameteri = _emscripten_glTexParameteri; + +var _emscripten_glTexStorage2D = (x0, x1, x2, x3, x4) => GLctx.texStorage2D(x0, x1, x2, x3, x4); + +var _glTexStorage2D = _emscripten_glTexStorage2D; + +var _emscripten_glTexStorage3D = (x0, x1, x2, x3, x4, x5) => GLctx.texStorage3D(x0, x1, x2, x3, x4, x5); + +var _glTexStorage3D = _emscripten_glTexStorage3D; + +var _emscripten_glTexSubImage2D = (target, level, xoffset, yoffset, width, height, format, type, pixels) => { + if (GL.currentContext.version >= 2) { + if (GLctx.currentPixelUnpackBufferBinding) { + GLctx.texSubImage2D(target, level, xoffset, yoffset, width, height, format, type, pixels); + return; + } + if (pixels) { + var heap = heapObjectForWebGLType(type); + GLctx.texSubImage2D(target, level, xoffset, yoffset, width, height, format, type, heap, toTypedArrayIndex(pixels, heap)); + return; + } + } + var pixelData = pixels ? emscriptenWebGLGetTexPixelData(type, format, width, height, pixels, 0) : null; + GLctx.texSubImage2D(target, level, xoffset, yoffset, width, height, format, type, pixelData); +}; + +var _glTexSubImage2D = _emscripten_glTexSubImage2D; + +var _emscripten_glTexSubImage3D = (target, level, xoffset, yoffset, zoffset, width, height, depth, format, type, pixels) => { + if (GLctx.currentPixelUnpackBufferBinding) { + GLctx.texSubImage3D(target, level, xoffset, yoffset, zoffset, width, height, depth, format, type, pixels); + } else if (pixels) { + var heap = heapObjectForWebGLType(type); + GLctx.texSubImage3D(target, level, xoffset, yoffset, zoffset, width, height, depth, format, type, heap, toTypedArrayIndex(pixels, heap)); + } else { + GLctx.texSubImage3D(target, level, xoffset, yoffset, zoffset, width, height, depth, format, type, null); + } +}; + +var _glTexSubImage3D = _emscripten_glTexSubImage3D; + +var webglGetUniformLocation = location => { + var p = GLctx.currentProgram; + if (p) { + var webglLoc = p.uniformLocsById[location]; + // p.uniformLocsById[location] stores either an integer, or a + // WebGLUniformLocation. + // If an integer, we have not yet bound the location, so do it now. The + // integer value specifies the array index we should bind to. + if (typeof webglLoc == "number") { + p.uniformLocsById[location] = webglLoc = GLctx.getUniformLocation(p, p.uniformArrayNamesById[location] + (webglLoc > 0 ? `[${webglLoc}]` : "")); + } + // Else an already cached WebGLUniformLocation, return it. + return webglLoc; + } else { + GL.recordError(1282); + } +}; + +var _emscripten_glUniform1f = (location, v0) => { + GLctx.uniform1f(webglGetUniformLocation(location), v0); +}; + +var _glUniform1f = _emscripten_glUniform1f; + +var miniTempWebGLFloatBuffers = []; + +var _emscripten_glUniform1fv = (location, count, value) => { + if (GL.currentContext.version >= 2) { + count && GLctx.uniform1fv(webglGetUniformLocation(location), HEAPF32, ((value) >> 2), count); + return; + } + if (count <= 288) { + // avoid allocation when uploading few enough uniforms + var view = miniTempWebGLFloatBuffers[count]; + for (var i = 0; i < count; ++i) { + view[i] = HEAPF32[(((value) + (4 * i)) >> 2)]; + } + } else { + var view = HEAPF32.subarray((((value) >> 2)), ((value + count * 4) >> 2)); + } + GLctx.uniform1fv(webglGetUniformLocation(location), view); +}; + +var _glUniform1fv = _emscripten_glUniform1fv; + +var _emscripten_glUniform1i = (location, v0) => { + GLctx.uniform1i(webglGetUniformLocation(location), v0); +}; + +var _glUniform1i = _emscripten_glUniform1i; + +var _emscripten_glUniform2f = (location, v0, v1) => { + GLctx.uniform2f(webglGetUniformLocation(location), v0, v1); +}; + +var _glUniform2f = _emscripten_glUniform2f; + +var _emscripten_glUniform2fv = (location, count, value) => { + if (GL.currentContext.version >= 2) { + count && GLctx.uniform2fv(webglGetUniformLocation(location), HEAPF32, ((value) >> 2), count * 2); + return; + } + if (count <= 144) { + // avoid allocation when uploading few enough uniforms + count *= 2; + var view = miniTempWebGLFloatBuffers[count]; + for (var i = 0; i < count; i += 2) { + view[i] = HEAPF32[(((value) + (4 * i)) >> 2)]; + view[i + 1] = HEAPF32[(((value) + (4 * i + 4)) >> 2)]; + } + } else { + var view = HEAPF32.subarray((((value) >> 2)), ((value + count * 8) >> 2)); + } + GLctx.uniform2fv(webglGetUniformLocation(location), view); +}; + +var _glUniform2fv = _emscripten_glUniform2fv; + +var _emscripten_glUniform3f = (location, v0, v1, v2) => { + GLctx.uniform3f(webglGetUniformLocation(location), v0, v1, v2); +}; + +var _glUniform3f = _emscripten_glUniform3f; + +var _emscripten_glUniform4f = (location, v0, v1, v2, v3) => { + GLctx.uniform4f(webglGetUniformLocation(location), v0, v1, v2, v3); +}; + +var _glUniform4f = _emscripten_glUniform4f; + +var _emscripten_glUniform4fv = (location, count, value) => { + if (GL.currentContext.version >= 2) { + count && GLctx.uniform4fv(webglGetUniformLocation(location), HEAPF32, ((value) >> 2), count * 4); + return; + } + if (count <= 72) { + // avoid allocation when uploading few enough uniforms + var view = miniTempWebGLFloatBuffers[4 * count]; + // hoist the heap out of the loop for size and for pthreads+growth. + var heap = HEAPF32; + value = ((value) >> 2); + count *= 4; + for (var i = 0; i < count; i += 4) { + var dst = value + i; + view[i] = heap[dst]; + view[i + 1] = heap[dst + 1]; + view[i + 2] = heap[dst + 2]; + view[i + 3] = heap[dst + 3]; + } + } else { + var view = HEAPF32.subarray((((value) >> 2)), ((value + count * 16) >> 2)); + } + GLctx.uniform4fv(webglGetUniformLocation(location), view); +}; + +var _glUniform4fv = _emscripten_glUniform4fv; + +var miniTempWebGLIntBuffers = []; + +var _emscripten_glUniform4iv = (location, count, value) => { + if (GL.currentContext.version >= 2) { + count && GLctx.uniform4iv(webglGetUniformLocation(location), HEAP32, ((value) >> 2), count * 4); + return; + } + if (count <= 72) { + // avoid allocation when uploading few enough uniforms + count *= 4; + var view = miniTempWebGLIntBuffers[count]; + for (var i = 0; i < count; i += 4) { + view[i] = HEAP32[(((value) + (4 * i)) >> 2)]; + view[i + 1] = HEAP32[(((value) + (4 * i + 4)) >> 2)]; + view[i + 2] = HEAP32[(((value) + (4 * i + 8)) >> 2)]; + view[i + 3] = HEAP32[(((value) + (4 * i + 12)) >> 2)]; + } + } else { + var view = HEAP32.subarray((((value) >> 2)), ((value + count * 16) >> 2)); + } + GLctx.uniform4iv(webglGetUniformLocation(location), view); +}; + +var _glUniform4iv = _emscripten_glUniform4iv; + +var _emscripten_glUniformBlockBinding = (program, uniformBlockIndex, uniformBlockBinding) => { + program = GL.programs[program]; + GLctx.uniformBlockBinding(program, uniformBlockIndex, uniformBlockBinding); +}; + +var _glUniformBlockBinding = _emscripten_glUniformBlockBinding; + +var _emscripten_glUniformMatrix2fv = (location, count, transpose, value) => { + if (GL.currentContext.version >= 2) { + count && GLctx.uniformMatrix2fv(webglGetUniformLocation(location), !!transpose, HEAPF32, ((value) >> 2), count * 4); + return; + } + if (count <= 72) { + // avoid allocation when uploading few enough uniforms + count *= 4; + var view = miniTempWebGLFloatBuffers[count]; + for (var i = 0; i < count; i += 4) { + view[i] = HEAPF32[(((value) + (4 * i)) >> 2)]; + view[i + 1] = HEAPF32[(((value) + (4 * i + 4)) >> 2)]; + view[i + 2] = HEAPF32[(((value) + (4 * i + 8)) >> 2)]; + view[i + 3] = HEAPF32[(((value) + (4 * i + 12)) >> 2)]; + } + } else { + var view = HEAPF32.subarray((((value) >> 2)), ((value + count * 16) >> 2)); + } + GLctx.uniformMatrix2fv(webglGetUniformLocation(location), !!transpose, view); +}; + +var _glUniformMatrix2fv = _emscripten_glUniformMatrix2fv; + +var _emscripten_glUniformMatrix3fv = (location, count, transpose, value) => { + if (GL.currentContext.version >= 2) { + count && GLctx.uniformMatrix3fv(webglGetUniformLocation(location), !!transpose, HEAPF32, ((value) >> 2), count * 9); + return; + } + if (count <= 32) { + // avoid allocation when uploading few enough uniforms + count *= 9; + var view = miniTempWebGLFloatBuffers[count]; + for (var i = 0; i < count; i += 9) { + view[i] = HEAPF32[(((value) + (4 * i)) >> 2)]; + view[i + 1] = HEAPF32[(((value) + (4 * i + 4)) >> 2)]; + view[i + 2] = HEAPF32[(((value) + (4 * i + 8)) >> 2)]; + view[i + 3] = HEAPF32[(((value) + (4 * i + 12)) >> 2)]; + view[i + 4] = HEAPF32[(((value) + (4 * i + 16)) >> 2)]; + view[i + 5] = HEAPF32[(((value) + (4 * i + 20)) >> 2)]; + view[i + 6] = HEAPF32[(((value) + (4 * i + 24)) >> 2)]; + view[i + 7] = HEAPF32[(((value) + (4 * i + 28)) >> 2)]; + view[i + 8] = HEAPF32[(((value) + (4 * i + 32)) >> 2)]; + } + } else { + var view = HEAPF32.subarray((((value) >> 2)), ((value + count * 36) >> 2)); + } + GLctx.uniformMatrix3fv(webglGetUniformLocation(location), !!transpose, view); +}; + +var _glUniformMatrix3fv = _emscripten_glUniformMatrix3fv; + +var _emscripten_glUniformMatrix4fv = (location, count, transpose, value) => { + if (GL.currentContext.version >= 2) { + count && GLctx.uniformMatrix4fv(webglGetUniformLocation(location), !!transpose, HEAPF32, ((value) >> 2), count * 16); + return; + } + if (count <= 18) { + // avoid allocation when uploading few enough uniforms + var view = miniTempWebGLFloatBuffers[16 * count]; + // hoist the heap out of the loop for size and for pthreads+growth. + var heap = HEAPF32; + value = ((value) >> 2); + count *= 16; + for (var i = 0; i < count; i += 16) { + var dst = value + i; + view[i] = heap[dst]; + view[i + 1] = heap[dst + 1]; + view[i + 2] = heap[dst + 2]; + view[i + 3] = heap[dst + 3]; + view[i + 4] = heap[dst + 4]; + view[i + 5] = heap[dst + 5]; + view[i + 6] = heap[dst + 6]; + view[i + 7] = heap[dst + 7]; + view[i + 8] = heap[dst + 8]; + view[i + 9] = heap[dst + 9]; + view[i + 10] = heap[dst + 10]; + view[i + 11] = heap[dst + 11]; + view[i + 12] = heap[dst + 12]; + view[i + 13] = heap[dst + 13]; + view[i + 14] = heap[dst + 14]; + view[i + 15] = heap[dst + 15]; + } + } else { + var view = HEAPF32.subarray((((value) >> 2)), ((value + count * 64) >> 2)); + } + GLctx.uniformMatrix4fv(webglGetUniformLocation(location), !!transpose, view); +}; + +var _glUniformMatrix4fv = _emscripten_glUniformMatrix4fv; + +var _emscripten_glUseProgram = program => { + program = GL.programs[program]; + GLctx.useProgram(program); + // Record the currently active program so that we can access the uniform + // mapping table of that program. + GLctx.currentProgram = program; +}; + +var _glUseProgram = _emscripten_glUseProgram; + +var _emscripten_glVertexAttribPointer = (index, size, type, normalized, stride, ptr) => { + var cb = GL.currentContext.clientBuffers[index]; + if (!GLctx.currentArrayBufferBinding) { + cb.size = size; + cb.type = type; + cb.normalized = normalized; + cb.stride = stride; + cb.ptr = ptr; + cb.clientside = true; + cb.vertexAttribPointerAdaptor = function(index, size, type, normalized, stride, ptr) { + this.vertexAttribPointer(index, size, type, normalized, stride, ptr); + }; + return; + } + cb.clientside = false; + GLctx.vertexAttribPointer(index, size, type, !!normalized, stride, ptr); +}; + +var _glVertexAttribPointer = _emscripten_glVertexAttribPointer; + +var _emscripten_glViewport = (x0, x1, x2, x3) => GLctx.viewport(x0, x1, x2, x3); + +var _glViewport = _emscripten_glViewport; + +function _mediapipe_find_canvas_event_target(canvasSelector) { + let target = findCanvasEventTarget(canvasSelector); + // WebGPU-on-worker uses this function to try to grab the canvas, but + // doesn't have a DOM element to find. So as a quick patch, if the default + // behavior is unsuccessful here then we try a webgpu canvas property + // which is set by the user directly on the Module, much like how our old + // pipeline used the Module.canvas property. See b/265271517 for details. + if (Module && !target) { + target = Module.canvasWebGpu; + } + return Emval.toHandle(target); +} + +function _mediapipe_webgl_tex_image_drawable(drawableHandle) { + const drawable = Emval.toValue(drawableHandle); + GLctx.texImage2D(GLctx.TEXTURE_2D, 0, GLctx.RGBA, GLctx.RGBA, GLctx.UNSIGNED_BYTE, drawable); +} + +function _random_get(buffer, size) { + try { + randomFill(HEAPU8.subarray(buffer, buffer + size)); + return 0; + } catch (e) { + if (typeof FS == "undefined" || !(e.name === "ErrnoError")) throw e; + return e.errno; + } +} + +var _wgpuCommandEncoderBeginComputePass = (encoderPtr, descriptor) => { + var desc; + if (descriptor) { + desc = { + "label": WebGPU.makeStringFromOptionalStringView(descriptor + 4), + "timestampWrites": WebGPU.makePassTimestampWrites(HEAPU32[(((descriptor) + (12)) >> 2)]) + }; + } + var commandEncoder = WebGPU.getJsObject(encoderPtr); + var ptr = _emwgpuCreateComputePassEncoder(0); + WebGPU.Internals.jsObjectInsert(ptr, commandEncoder.beginComputePass(desc)); + return ptr; +}; + +var _wgpuCommandEncoderBeginRenderPass = (encoderPtr, descriptor) => { + function makeColorAttachment(caPtr) { + var viewPtr = HEAPU32[(((caPtr) + (4)) >> 2)]; + if (viewPtr === 0) { + // Null `view` means no attachment in this slot. + return undefined; + } + var depthSlice = HEAPU32[(((caPtr) + (8)) >> 2)]; + if (depthSlice == 4294967295) depthSlice = undefined; + return { + "view": WebGPU.getJsObject(viewPtr), + "depthSlice": depthSlice, + "resolveTarget": WebGPU.getJsObject(HEAPU32[(((caPtr) + (12)) >> 2)]), + "clearValue": WebGPU.makeColor(caPtr + 24), + "loadOp": WebGPU.LoadOp[HEAP32[(((caPtr) + (16)) >> 2)]], + "storeOp": WebGPU.StoreOp[HEAP32[(((caPtr) + (20)) >> 2)]] + }; + } + function makeColorAttachments(count, caPtr) { + var attachments = []; + for (var i = 0; i < count; ++i) { + attachments.push(makeColorAttachment(caPtr + 56 * i)); + } + return attachments; + } + function makeDepthStencilAttachment(dsaPtr) { + if (dsaPtr === 0) return undefined; + return { + "view": WebGPU.getJsObject(HEAPU32[(((dsaPtr) + (4)) >> 2)]), + "depthClearValue": HEAPF32[(((dsaPtr) + (16)) >> 2)], + "depthLoadOp": WebGPU.LoadOp[HEAP32[(((dsaPtr) + (8)) >> 2)]], + "depthStoreOp": WebGPU.StoreOp[HEAP32[(((dsaPtr) + (12)) >> 2)]], + "depthReadOnly": !!(HEAPU32[(((dsaPtr) + (20)) >> 2)]), + "stencilClearValue": HEAPU32[(((dsaPtr) + (32)) >> 2)], + "stencilLoadOp": WebGPU.LoadOp[HEAP32[(((dsaPtr) + (24)) >> 2)]], + "stencilStoreOp": WebGPU.StoreOp[HEAP32[(((dsaPtr) + (28)) >> 2)]], + "stencilReadOnly": !!(HEAPU32[(((dsaPtr) + (36)) >> 2)]) + }; + } + function makeRenderPassDescriptor(descriptor) { + var nextInChainPtr = HEAPU32[((descriptor) >> 2)]; + var maxDrawCount = undefined; + if (nextInChainPtr !== 0) { + var sType = HEAP32[(((nextInChainPtr) + (4)) >> 2)]; + var renderPassMaxDrawCount = nextInChainPtr; + // Note: The user could have passed a really huge value here, which is technically valid in + // C but will not be allowed by WebGPU in JS because of [EnforceRange]. We intentionally + // ignore that case because it's not useful - apps can just pick a smaller maxDrawCount. + maxDrawCount = readI53FromI64((renderPassMaxDrawCount) + (8)); + } + var desc = { + "label": WebGPU.makeStringFromOptionalStringView(descriptor + 4), + "colorAttachments": makeColorAttachments(HEAPU32[(((descriptor) + (12)) >> 2)], HEAPU32[(((descriptor) + (16)) >> 2)]), + "depthStencilAttachment": makeDepthStencilAttachment(HEAPU32[(((descriptor) + (20)) >> 2)]), + "occlusionQuerySet": WebGPU.getJsObject(HEAPU32[(((descriptor) + (24)) >> 2)]), + "timestampWrites": WebGPU.makePassTimestampWrites(HEAPU32[(((descriptor) + (28)) >> 2)]), + "maxDrawCount": maxDrawCount + }; + return desc; + } + var desc = makeRenderPassDescriptor(descriptor); + var commandEncoder = WebGPU.getJsObject(encoderPtr); + var ptr = _emwgpuCreateRenderPassEncoder(0); + WebGPU.Internals.jsObjectInsert(ptr, commandEncoder.beginRenderPass(desc)); + return ptr; +}; + +var _wgpuCommandEncoderCopyBufferToTexture = (encoderPtr, srcPtr, dstPtr, copySizePtr) => { + var commandEncoder = WebGPU.getJsObject(encoderPtr); + var copySize = WebGPU.makeExtent3D(copySizePtr); + commandEncoder.copyBufferToTexture(WebGPU.makeTexelCopyBufferInfo(srcPtr), WebGPU.makeTexelCopyTextureInfo(dstPtr), copySize); +}; + +var _wgpuCommandEncoderCopyTextureToBuffer = (encoderPtr, srcPtr, dstPtr, copySizePtr) => { + var commandEncoder = WebGPU.getJsObject(encoderPtr); + var copySize = WebGPU.makeExtent3D(copySizePtr); + commandEncoder.copyTextureToBuffer(WebGPU.makeTexelCopyTextureInfo(srcPtr), WebGPU.makeTexelCopyBufferInfo(dstPtr), copySize); +}; + +var _wgpuCommandEncoderCopyTextureToTexture = (encoderPtr, srcPtr, dstPtr, copySizePtr) => { + var commandEncoder = WebGPU.getJsObject(encoderPtr); + var copySize = WebGPU.makeExtent3D(copySizePtr); + commandEncoder.copyTextureToTexture(WebGPU.makeTexelCopyTextureInfo(srcPtr), WebGPU.makeTexelCopyTextureInfo(dstPtr), copySize); +}; + +var _wgpuCommandEncoderFinish = (encoderPtr, descriptor) => { + // TODO: Use the descriptor. + var commandEncoder = WebGPU.getJsObject(encoderPtr); + var ptr = _emwgpuCreateCommandBuffer(0); + WebGPU.Internals.jsObjectInsert(ptr, commandEncoder.finish()); + return ptr; +}; + +var _wgpuComputePassEncoderDispatchWorkgroups = (passPtr, x, y, z) => { + var pass = WebGPU.getJsObject(passPtr); + pass.dispatchWorkgroups(x, y, z); +}; + +var _wgpuComputePassEncoderEnd = passPtr => { + var pass = WebGPU.getJsObject(passPtr); + pass.end(); +}; + +var _wgpuComputePassEncoderSetBindGroup = (passPtr, groupIndex, groupPtr, dynamicOffsetCount, dynamicOffsetsPtr) => { + var pass = WebGPU.getJsObject(passPtr); + var group = WebGPU.getJsObject(groupPtr); + if (dynamicOffsetCount == 0) { + pass.setBindGroup(groupIndex, group); + } else { + pass.setBindGroup(groupIndex, group, HEAPU32, ((dynamicOffsetsPtr) >> 2), dynamicOffsetCount); + } +}; + +var _wgpuComputePassEncoderSetPipeline = (passPtr, pipelinePtr) => { + var pass = WebGPU.getJsObject(passPtr); + var pipeline = WebGPU.getJsObject(pipelinePtr); + pass.setPipeline(pipeline); +}; + +var _wgpuComputePipelineGetBindGroupLayout = (pipelinePtr, groupIndex) => { + var pipeline = WebGPU.getJsObject(pipelinePtr); + var ptr = _emwgpuCreateBindGroupLayout(0); + WebGPU.Internals.jsObjectInsert(ptr, pipeline.getBindGroupLayout(groupIndex)); + return ptr; +}; + +var _wgpuDeviceCreateBindGroup = (devicePtr, descriptor) => { + function makeEntry(entryPtr) { + var bufferPtr = HEAPU32[(((entryPtr) + (8)) >> 2)]; + var samplerPtr = HEAPU32[(((entryPtr) + (32)) >> 2)]; + var textureViewPtr = HEAPU32[(((entryPtr) + (36)) >> 2)]; + var externalTexturePtr = 0; + WebGPU.iterateExtensions(entryPtr, { + 14: ptr => { + externalTexturePtr = HEAPU32[(((ptr) + (8)) >> 2)]; + } + }); + var resource; + if (bufferPtr) { + // Note the sentinel UINT64_MAX will be read as -1. + var size = readI53FromI64((entryPtr) + (24)); + if (size == -1) size = undefined; + resource = { + "buffer": WebGPU.getJsObject(bufferPtr), + "offset": readI53FromI64((entryPtr) + (16)), + "size": size + }; + } else { + resource = WebGPU.getJsObject(samplerPtr || textureViewPtr || externalTexturePtr); + } + return { + "binding": HEAPU32[(((entryPtr) + (4)) >> 2)], + "resource": resource + }; + } + function makeEntries(count, entriesPtrs) { + var entries = []; + for (var i = 0; i < count; ++i) { + entries.push(makeEntry(entriesPtrs + 40 * i)); + } + return entries; + } + var desc = { + "label": WebGPU.makeStringFromOptionalStringView(descriptor + 4), + "layout": WebGPU.getJsObject(HEAPU32[(((descriptor) + (12)) >> 2)]), + "entries": makeEntries(HEAPU32[(((descriptor) + (16)) >> 2)], HEAPU32[(((descriptor) + (20)) >> 2)]) + }; + var device = WebGPU.getJsObject(devicePtr); + var ptr = _emwgpuCreateBindGroup(0); + WebGPU.Internals.jsObjectInsert(ptr, device.createBindGroup(desc)); + return ptr; +}; + +var _wgpuDeviceCreateBindGroupLayout = (devicePtr, descriptor) => { + function makeBufferEntry(substructPtr) { + var typeInt = HEAPU32[(((substructPtr) + (4)) >> 2)]; + if (!typeInt) return undefined; + return { + "type": WebGPU.BufferBindingType[typeInt], + "hasDynamicOffset": !!(HEAPU32[(((substructPtr) + (8)) >> 2)]), + "minBindingSize": readI53FromI64((substructPtr) + (16)) + }; + } + function makeSamplerEntry(substructPtr) { + var typeInt = HEAPU32[(((substructPtr) + (4)) >> 2)]; + if (!typeInt) return undefined; + return { + "type": WebGPU.SamplerBindingType[typeInt] + }; + } + function makeTextureEntry(substructPtr) { + var sampleTypeInt = HEAPU32[(((substructPtr) + (4)) >> 2)]; + if (!sampleTypeInt) return undefined; + return { + "sampleType": WebGPU.TextureSampleType[sampleTypeInt], + "viewDimension": WebGPU.TextureViewDimension[HEAP32[(((substructPtr) + (8)) >> 2)]], + "multisampled": !!(HEAPU32[(((substructPtr) + (12)) >> 2)]) + }; + } + function makeStorageTextureEntry(substructPtr) { + var accessInt = HEAPU32[(((substructPtr) + (4)) >> 2)]; + if (!accessInt) return undefined; + return { + "access": WebGPU.StorageTextureAccess[accessInt], + "format": WebGPU.TextureFormat[HEAP32[(((substructPtr) + (8)) >> 2)]], + "viewDimension": WebGPU.TextureViewDimension[HEAP32[(((substructPtr) + (12)) >> 2)]] + }; + } + function makeEntry(entryPtr) { + var entry = { + "binding": HEAPU32[(((entryPtr) + (4)) >> 2)], + "visibility": HEAPU32[(((entryPtr) + (8)) >> 2)], + "buffer": makeBufferEntry(entryPtr + 24), + "sampler": makeSamplerEntry(entryPtr + 48), + "texture": makeTextureEntry(entryPtr + 56), + "storageTexture": makeStorageTextureEntry(entryPtr + 72) + }; + WebGPU.iterateExtensions(entryPtr, { + 13: ptr => { + entry["externalTexture"] = {}; + } + }); + return entry; + } + function makeEntries(count, entriesPtrs) { + var entries = []; + for (var i = 0; i < count; ++i) { + entries.push(makeEntry(entriesPtrs + 88 * i)); + } + return entries; + } + var desc = { + "label": WebGPU.makeStringFromOptionalStringView(descriptor + 4), + "entries": makeEntries(HEAPU32[(((descriptor) + (12)) >> 2)], HEAPU32[(((descriptor) + (16)) >> 2)]) + }; + var device = WebGPU.getJsObject(devicePtr); + var ptr = _emwgpuCreateBindGroupLayout(0); + WebGPU.Internals.jsObjectInsert(ptr, device.createBindGroupLayout(desc)); + return ptr; +}; + +var _wgpuDeviceCreateCommandEncoder = (devicePtr, descriptor) => { + var desc; + if (descriptor) { + desc = { + "label": WebGPU.makeStringFromOptionalStringView(descriptor + 4) + }; + } + var device = WebGPU.getJsObject(devicePtr); + var ptr = _emwgpuCreateCommandEncoder(0); + WebGPU.Internals.jsObjectInsert(ptr, device.createCommandEncoder(desc)); + return ptr; +}; + +var _wgpuDeviceCreateComputePipeline = (devicePtr, descriptor) => { + var desc = WebGPU.makeComputePipelineDesc(descriptor); + var device = WebGPU.getJsObject(devicePtr); + var ptr = _emwgpuCreateComputePipeline(0); + WebGPU.Internals.jsObjectInsert(ptr, device.createComputePipeline(desc)); + return ptr; +}; + +var _wgpuDeviceCreatePipelineLayout = (devicePtr, descriptor) => { + var bglCount = HEAPU32[(((descriptor) + (12)) >> 2)]; + var bglPtr = HEAPU32[(((descriptor) + (16)) >> 2)]; + var bgls = []; + for (var i = 0; i < bglCount; ++i) { + bgls.push(WebGPU.getJsObject(HEAPU32[(((bglPtr) + (4 * i)) >> 2)])); + } + var desc = { + "label": WebGPU.makeStringFromOptionalStringView(descriptor + 4), + "bindGroupLayouts": bgls + }; + var device = WebGPU.getJsObject(devicePtr); + var ptr = _emwgpuCreatePipelineLayout(0); + WebGPU.Internals.jsObjectInsert(ptr, device.createPipelineLayout(desc)); + return ptr; +}; + +var _wgpuDeviceCreateRenderPipeline = (devicePtr, descriptor) => { + var desc = WebGPU.makeRenderPipelineDesc(descriptor); + var device = WebGPU.getJsObject(devicePtr); + var ptr = _emwgpuCreateRenderPipeline(0); + WebGPU.Internals.jsObjectInsert(ptr, device.createRenderPipeline(desc)); + return ptr; +}; + +var _wgpuDeviceCreateSampler = (devicePtr, descriptor) => { + var desc; + if (descriptor) { + desc = { + "label": WebGPU.makeStringFromOptionalStringView(descriptor + 4), + "addressModeU": WebGPU.AddressMode[HEAP32[(((descriptor) + (12)) >> 2)]], + "addressModeV": WebGPU.AddressMode[HEAP32[(((descriptor) + (16)) >> 2)]], + "addressModeW": WebGPU.AddressMode[HEAP32[(((descriptor) + (20)) >> 2)]], + "magFilter": WebGPU.FilterMode[HEAP32[(((descriptor) + (24)) >> 2)]], + "minFilter": WebGPU.FilterMode[HEAP32[(((descriptor) + (28)) >> 2)]], + "mipmapFilter": WebGPU.MipmapFilterMode[HEAP32[(((descriptor) + (32)) >> 2)]], + "lodMinClamp": HEAPF32[(((descriptor) + (36)) >> 2)], + "lodMaxClamp": HEAPF32[(((descriptor) + (40)) >> 2)], + "compare": WebGPU.CompareFunction[HEAP32[(((descriptor) + (44)) >> 2)]], + "maxAnisotropy": HEAPU16[(((descriptor) + (48)) >> 1)] + }; + } + var device = WebGPU.getJsObject(devicePtr); + var ptr = _emwgpuCreateSampler(0); + WebGPU.Internals.jsObjectInsert(ptr, device.createSampler(desc)); + return ptr; +}; + +var _wgpuDeviceCreateTexture = (devicePtr, descriptor) => { + var nextInChainPtr = HEAPU32[((descriptor) >> 2)]; + var textureBindingViewDimension; + if (nextInChainPtr !== 0) { + var sType = HEAP32[(((nextInChainPtr) + (4)) >> 2)]; + var textureBindingViewDimensionDescriptor = nextInChainPtr; + textureBindingViewDimension = WebGPU.TextureViewDimension[HEAP32[(((textureBindingViewDimensionDescriptor) + (8)) >> 2)]]; + } + var desc = { + "label": WebGPU.makeStringFromOptionalStringView(descriptor + 4), + "size": WebGPU.makeExtent3D(descriptor + 28), + "mipLevelCount": HEAPU32[(((descriptor) + (44)) >> 2)], + "sampleCount": HEAPU32[(((descriptor) + (48)) >> 2)], + "dimension": WebGPU.TextureDimension[HEAP32[(((descriptor) + (24)) >> 2)]], + "format": WebGPU.TextureFormat[HEAP32[(((descriptor) + (40)) >> 2)]], + "usage": HEAPU32[(((descriptor) + (16)) >> 2)], + "textureBindingViewDimension": textureBindingViewDimension + }; + var viewFormatCount = HEAPU32[(((descriptor) + (52)) >> 2)]; + if (viewFormatCount) { + var viewFormatsPtr = HEAPU32[(((descriptor) + (56)) >> 2)]; + // viewFormatsPtr pointer to an array of TextureFormat which is an enum of size uint32_t + desc["viewFormats"] = Array.from(HEAP32.subarray((((viewFormatsPtr) >> 2)), ((viewFormatsPtr + viewFormatCount * 4) >> 2)), format => WebGPU.TextureFormat[format]); + } + var device = WebGPU.getJsObject(devicePtr); + var ptr = _emwgpuCreateTexture(0); + WebGPU.Internals.jsObjectInsert(ptr, device.createTexture(desc)); + return ptr; +}; + +var _wgpuQueueSubmit = (queuePtr, commandCount, commands) => { + var queue = WebGPU.getJsObject(queuePtr); + var cmds = Array.from(HEAP32.subarray((((commands) >> 2)), ((commands + commandCount * 4) >> 2)), id => WebGPU.getJsObject(id)); + queue.submit(cmds); +}; + +function _wgpuQueueWriteBuffer(queuePtr, bufferPtr, bufferOffset_low, bufferOffset_high, data, size) { + var bufferOffset = convertI32PairToI53Checked(bufferOffset_low, bufferOffset_high); + var queue = WebGPU.getJsObject(queuePtr); + var buffer = WebGPU.getJsObject(bufferPtr); + // There is a size limitation for ArrayBufferView. Work around by passing in a subarray + // instead of the whole heap. crbug.com/1201109 + var subarray = HEAPU8.subarray(data, data + size); + queue.writeBuffer(buffer, bufferOffset, subarray, 0, size); +} + +var _wgpuQueueWriteTexture = (queuePtr, destinationPtr, data, dataSize, dataLayoutPtr, writeSizePtr) => { + var queue = WebGPU.getJsObject(queuePtr); + var destination = WebGPU.makeTexelCopyTextureInfo(destinationPtr); + var dataLayout = WebGPU.makeTexelCopyBufferLayout(dataLayoutPtr); + var writeSize = WebGPU.makeExtent3D(writeSizePtr); + // This subarray isn't strictly necessary, but helps work around an issue + // where Chromium makes a copy of the entire heap. crbug.com/1134457 + var subarray = HEAPU8.subarray(data, data + dataSize); + queue.writeTexture(destination, subarray, dataLayout, writeSize); +}; + +var _wgpuRenderPassEncoderDraw = (passPtr, vertexCount, instanceCount, firstVertex, firstInstance) => { + firstVertex >>>= 0; + firstInstance >>>= 0; + var pass = WebGPU.getJsObject(passPtr); + pass.draw(vertexCount, instanceCount, firstVertex, firstInstance); +}; + +var _wgpuRenderPassEncoderEnd = encoderPtr => { + var encoder = WebGPU.getJsObject(encoderPtr); + encoder.end(); +}; + +var _wgpuRenderPassEncoderSetBindGroup = (passPtr, groupIndex, groupPtr, dynamicOffsetCount, dynamicOffsetsPtr) => { + var pass = WebGPU.getJsObject(passPtr); + var group = WebGPU.getJsObject(groupPtr); + if (dynamicOffsetCount == 0) { + pass.setBindGroup(groupIndex, group); + } else { + pass.setBindGroup(groupIndex, group, HEAPU32, ((dynamicOffsetsPtr) >> 2), dynamicOffsetCount); + } +}; + +var _wgpuRenderPassEncoderSetPipeline = (passPtr, pipelinePtr) => { + var pass = WebGPU.getJsObject(passPtr); + var pipeline = WebGPU.getJsObject(pipelinePtr); + pass.setPipeline(pipeline); +}; + +var _wgpuRenderPipelineGetBindGroupLayout = (pipelinePtr, groupIndex) => { + var pipeline = WebGPU.getJsObject(pipelinePtr); + var ptr = _emwgpuCreateBindGroupLayout(0); + WebGPU.Internals.jsObjectInsert(ptr, pipeline.getBindGroupLayout(groupIndex)); + return ptr; +}; + +var _wgpuTextureCreateView = (texturePtr, descriptor) => { + var desc; + if (descriptor) { + var swizzle; + var nextInChainPtr = HEAPU32[((descriptor) >> 2)]; + if (nextInChainPtr !== 0) { + var sType = HEAP32[(((nextInChainPtr) + (4)) >> 2)]; + var swizzleDescriptor = nextInChainPtr; + var swizzlePtr = swizzleDescriptor + 8; + var r = WebGPU.ComponentSwizzle[HEAP32[((swizzlePtr) >> 2)]] || "r"; + var g = WebGPU.ComponentSwizzle[HEAP32[(((swizzlePtr) + (4)) >> 2)]] || "g"; + var b = WebGPU.ComponentSwizzle[HEAP32[(((swizzlePtr) + (8)) >> 2)]] || "b"; + var a = WebGPU.ComponentSwizzle[HEAP32[(((swizzlePtr) + (12)) >> 2)]] || "a"; + swizzle = `${r}${g}${b}${a}`; + } + var mipLevelCount = HEAPU32[(((descriptor) + (24)) >> 2)]; + var arrayLayerCount = HEAPU32[(((descriptor) + (32)) >> 2)]; + desc = { + "label": WebGPU.makeStringFromOptionalStringView(descriptor + 4), + "format": WebGPU.TextureFormat[HEAP32[(((descriptor) + (12)) >> 2)]], + "dimension": WebGPU.TextureViewDimension[HEAP32[(((descriptor) + (16)) >> 2)]], + "baseMipLevel": HEAPU32[(((descriptor) + (20)) >> 2)], + "mipLevelCount": mipLevelCount === 4294967295 ? undefined : mipLevelCount, + "baseArrayLayer": HEAPU32[(((descriptor) + (28)) >> 2)], + "arrayLayerCount": arrayLayerCount === 4294967295 ? undefined : arrayLayerCount, + "aspect": WebGPU.TextureAspect[HEAP32[(((descriptor) + (36)) >> 2)]], + "usage": HEAPU32[(((descriptor) + (40)) >> 2)], + "swizzle": swizzle + }; + } + var texture = WebGPU.getJsObject(texturePtr); + var ptr = _emwgpuCreateTextureView(0); + WebGPU.Internals.jsObjectInsert(ptr, texture.createView(desc)); + return ptr; +}; + +var _wgpuTextureDestroy = texturePtr => { + WebGPU.getJsObject(texturePtr).destroy(); +}; + +var _wgpuTextureGetFormat = texturePtr => { + var texture = WebGPU.getJsObject(texturePtr); + // Should return the enum integer instead of string. + return WebGPU.TextureFormat.indexOf(texture.format); +}; + +var getCFunc = ident => { + var func = Module["_" + ident]; + // closure exported function + return func; +}; + +var writeArrayToMemory = (array, buffer) => { + HEAP8.set(array, buffer); +}; + +/** + * @param {string|null=} returnType + * @param {Array=} argTypes + * @param {Array=} args + * @param {Object=} opts + */ var ccall = (ident, returnType, argTypes, args, opts) => { + // For fast lookup of conversion functions + var toC = { + "string": str => { + var ret = 0; + if (str !== null && str !== undefined && str !== 0) { + // null string + ret = stringToUTF8OnStack(str); + } + return ret; + }, + "array": arr => { + var ret = stackAlloc(arr.length); + writeArrayToMemory(arr, ret); + return ret; + } + }; + function convertReturnValue(ret) { + if (returnType === "string") { + return UTF8ToString(ret); + } + if (returnType === "boolean") return Boolean(ret); + return ret; + } + var func = getCFunc(ident); + var cArgs = []; + var stack = 0; + if (args) { + for (var i = 0; i < args.length; i++) { + var converter = toC[argTypes[i]]; + if (converter) { + if (stack === 0) stack = stackSave(); + cArgs[i] = converter(args[i]); + } else { + cArgs[i] = args[i]; + } + } + } + var ret = func(...cArgs); + function onDone(ret) { + if (stack !== 0) stackRestore(stack); + return convertReturnValue(ret); + } + ret = onDone(ret); + return ret; +}; + +var FS_createPath = (...args) => FS.createPath(...args); + +var FS_unlink = (...args) => FS.unlink(...args); + +var FS_createLazyFile = (...args) => FS.createLazyFile(...args); + +var FS_createDevice = (...args) => FS.createDevice(...args); + +FS.createPreloadedFile = FS_createPreloadedFile; + +FS.preloadFile = FS_preloadFile; + +FS.staticInit(); + +// Signal GL rendering layer that processing of a new frame is about to +// start. This helps it optimize VBO double-buffering and reduce GPU stalls. +registerPreMainLoop(() => GL.newRenderingFrameStarted()); + +for (let i = 0; i < 32; ++i) tempFixedLengthArray.push(new Array(i)); + +var miniTempWebGLFloatBuffersStorage = new Float32Array(288); + +// Create GL_POOL_TEMP_BUFFERS_SIZE+1 temporary buffers, for uploads of size 0 through GL_POOL_TEMP_BUFFERS_SIZE inclusive +for (/**@suppress{duplicate}*/ var i = 0; i <= 288; ++i) { + miniTempWebGLFloatBuffers[i] = miniTempWebGLFloatBuffersStorage.subarray(0, i); +} + +var miniTempWebGLIntBuffersStorage = new Int32Array(288); + +// Create GL_POOL_TEMP_BUFFERS_SIZE+1 temporary buffers, for uploads of size 0 through GL_POOL_TEMP_BUFFERS_SIZE inclusive +for (/**@suppress{duplicate}*/ var i = 0; i <= 288; ++i) { + miniTempWebGLIntBuffers[i] = miniTempWebGLIntBuffersStorage.subarray(0, i); +} + +// End JS library code +// include: postlibrary.js +// This file is included after the automatically-generated JS library code +// but before the wasm module is created. +{ + // Begin ATMODULES hooks + if (Module["preloadPlugins"]) preloadPlugins = Module["preloadPlugins"]; + if (Module["noExitRuntime"]) noExitRuntime = Module["noExitRuntime"]; + if (Module["print"]) out = Module["print"]; + if (Module["printErr"]) err = Module["printErr"]; + if (Module["wasmBinary"]) wasmBinary = Module["wasmBinary"]; + // End ATMODULES hooks + if (Module["arguments"]) arguments_ = Module["arguments"]; + if (Module["thisProgram"]) thisProgram = Module["thisProgram"]; + if (Module["preInit"]) { + if (typeof Module["preInit"] == "function") Module["preInit"] = [ Module["preInit"] ]; + while (Module["preInit"].length > 0) { + Module["preInit"].shift()(); + } + } +} + +// Begin runtime exports +Module["addRunDependency"] = addRunDependency; + +Module["removeRunDependency"] = removeRunDependency; + +Module["ccall"] = ccall; + +Module["stringToNewUTF8"] = stringToNewUTF8; + +Module["FS_preloadFile"] = FS_preloadFile; + +Module["FS_unlink"] = FS_unlink; + +Module["FS_createPath"] = FS_createPath; + +Module["FS_createDevice"] = FS_createDevice; + +Module["FS_createDataFile"] = FS_createDataFile; + +Module["FS_createLazyFile"] = FS_createLazyFile; + +// End runtime exports +// Begin JS library exports +// End JS library exports +// end include: postlibrary.js +var ASM_CONSTS = { + 1484179: $0 => { + const canvas = Emval.toValue($0); + const context = canvas.getContext("webgpu"); + return WebGPU.importJsTexture(context.getCurrentTexture()); + }, + 1484322: ($0, $1, $2, $3, $4) => { + const drawable = Emval.toValue($0); + const device = WebGPU.getJsObject($1); + const texture = WebGPU.getJsObject($2); + const width = $3; + const height = $4; + device.queue.copyExternalImageToTexture({ + source: drawable + }, { + texture + }, [ width, height ]); + }, + 1484581: ($0, $1, $2, $3) => { + const sourceExtTex = Emval.toValue($0); + const device = WebGPU.getJsObject($1); + const sampler = WebGPU.getJsObject($2); + const bgLayout = WebGPU.getJsObject($3); + const bindGroup = device.createBindGroup({ + layout: bgLayout, + entries: [ { + binding: 0, + resource: sampler + }, { + binding: 1, + resource: sourceExtTex + } ] + }); + return WebGPU.importJsBindGroup(bindGroup); + }, + 1484951: ($0, $1) => { + const input = Emval.toValue($0); + const output = Emval.toValue($1); + const ctx = output.getContext("2d"); + ctx.drawImage(input, 0, 0, output.width, output.height); + }, + 1485116: ($0, $1) => { + const inputArray = Emval.toValue($0); + const output = Emval.toValue($1); + const ctx = output.getContext("2d"); + const image_data = new ImageData(inputArray, output.width, output.height); + ctx.putImageData(image_data, 0, 0); + }, + 1485340: ($0, $1) => { + const input = Emval.toValue($0); + const outputArray = Emval.toValue($1); + const ctx = input.getContext("2d"); + const data = ctx.getImageData(0, 0, input.width, input.height); + outputArray.set(data.data); + }, + 1485544: () => (typeof HTMLCanvasElement !== "undefined"), + 1485599: () => !!Module["preinitializedWebGPUDevice"], + 1485650: () => { + specialHTMLTargets["#canvas"] = Module.canvas; + } +}; + +function BeginGlQueryTiming(calc_name, num_repetitions) { + const gl = Module.canvas.getContext("webgl2"); + const query = gl.createQuery(); + Module.WEBGL_SHADER_CALC_METRICS = Module.WEBGL_SHADER_CALC_METRICS || {}; + Module.WEBGL_SHADER_CALC_METRICS[UTF8ToString(calc_name)] = { + query, + repetitions: num_repetitions + }; + Module.WEBGL_QUERY_TIMER_EXT = Module.WEBGL_QUERY_TIMER_EXT || gl.getExtension("EXT_disjoint_timer_query_webgl2"); + gl.beginQuery(Module.WEBGL_QUERY_TIMER_EXT.TIME_ELAPSED_EXT, query); +} + +function EndGlQueryTiming(calc_name) { + const gl = Module.canvas.getContext("webgl2"); + gl.endQuery(Module.WEBGL_QUERY_TIMER_EXT.TIME_ELAPSED_EXT, Module.WEBGL_SHADER_CALC_METRICS[UTF8ToString(calc_name)].query); +} + +function JsWrapImageConverter() { + if (!Module._imageConverter) { + Module._imageConverter = (binaryPtr, binarySize, width, height, numChannels, makeDeepCopy, outputType) => { + const imageData = new outputType(makeDeepCopy ? Module.HEAPU8.slice(binaryPtr, binaryPtr + binarySize).buffer : Module.HEAPU8.buffer, binaryPtr, width * height * numChannels); + return { + data: imageData, + width, + height + }; + }; + } +} + +function JsOnUint8ArrayImageListener(output_stream_name, binary_ptr, binary_size, width, height, num_channels, make_deep_copy, timestamp_ms) { + const image = Module._imageConverter(binary_ptr, binary_size, width, height, num_channels, make_deep_copy, Uint8Array); + Module._wrapSimpleListenerOutput(output_stream_name, image, timestamp_ms); +} + +function JsOnFloat32ArrayImageListener(output_stream_name, binary_ptr, binary_size, width, height, num_channels, make_deep_copy, timestamp_ms) { + const image = Module._imageConverter(binary_ptr, binary_size, width, height, num_channels, make_deep_copy, Float32Array); + Module._wrapSimpleListenerOutput(output_stream_name, image, timestamp_ms); +} + +function JsOnWebGLTextureListener(output_stream_name, name, width, height, timestamp_ms) { + Module._wrapSimpleListenerOutput(output_stream_name, { + data: GL.textures[name], + width, + height + }, timestamp_ms); +} + +function JsOnUint8ArrayImageVectorListener(output_stream_name, binary_ptr, binary_size, width, height, num_channels, make_deep_copy, timestamp_ms) { + const image = Module._imageConverter(binary_ptr, binary_size, width, height, num_channels, make_deep_copy, Uint8Array); + Module._wrapSimpleListenerOutput(output_stream_name, image, false, timestamp_ms); +} + +function JsOnFloat32ArrayImageVectorListener(output_stream_name, binary_ptr, binary_size, width, height, num_channels, make_deep_copy, timestamp_ms) { + const image = Module._imageConverter(binary_ptr, binary_size, width, height, num_channels, make_deep_copy, Float32Array); + Module._wrapSimpleListenerOutput(output_stream_name, image, false, timestamp_ms); +} + +function JsOnWebGLTextureVectorListener(output_stream_name, name, width, height, timestamp_ms) { + Module._wrapSimpleListenerOutput(output_stream_name, { + data: GL.textures[name], + width, + height + }, false, timestamp_ms); +} + +function JsOnEmptyPacketListener(output_stream_name, timestamp) { + Module._wrapEmptyPacketListenerOutput(output_stream_name, timestamp); +} + +function JsOnVectorFinishedListener(output_stream_name, timestamp) { + Module._wrapSimpleListenerOutput(output_stream_name, undefined, true, timestamp); +} + +function JsOnSimpleListenerBool(output_stream_name, out_data, timestamp) { + Module._wrapSimpleListenerOutput(output_stream_name, out_data, timestamp); +} + +function JsOnVectorListenerBool(output_stream_name, out_data, timestamp) { + Module._wrapSimpleListenerOutput(output_stream_name, out_data, false, timestamp); +} + +function JsOnSimpleListenerInt(output_stream_name, out_data, timestamp) { + Module._wrapSimpleListenerOutput(output_stream_name, out_data, timestamp); +} + +function JsOnVectorListenerInt(output_stream_name, out_data, timestamp) { + Module._wrapSimpleListenerOutput(output_stream_name, out_data, false, timestamp); +} + +function JsOnSimpleListenerUint(output_stream_name, out_data, timestamp) { + Module._wrapSimpleListenerOutput(output_stream_name, out_data, timestamp); +} + +function JsOnVectorListenerUint(output_stream_name, out_data, timestamp) { + Module._wrapSimpleListenerOutput(output_stream_name, out_data, false, timestamp); +} + +function JsOnSimpleListenerDouble(output_stream_name, out_data, timestamp) { + Module._wrapSimpleListenerOutput(output_stream_name, out_data, timestamp); +} + +function JsOnVectorListenerDouble(output_stream_name, out_data, timestamp) { + Module._wrapSimpleListenerOutput(output_stream_name, out_data, false, timestamp); +} + +function JsOnSimpleListenerFloat(output_stream_name, out_data, timestamp) { + Module._wrapSimpleListenerOutput(output_stream_name, out_data, timestamp); +} + +function JsOnVectorListenerFloat(output_stream_name, out_data, timestamp) { + Module._wrapSimpleListenerOutput(output_stream_name, out_data, false, timestamp); +} + +function JsOnSimpleListenerString(output_stream_name, out_data, timestamp) { + Module._wrapSimpleListenerOutput(output_stream_name, UTF8ToString(out_data), timestamp); +} + +function JsOnVectorListenerString(output_stream_name, out_data, timestamp) { + Module._wrapSimpleListenerOutput(output_stream_name, UTF8ToString(out_data), false, timestamp); +} + +function JsOnVectorListenerProto(output_stream_name, proto_ptr, proto_size, make_deep_copy, timestamp) { + const newProtoArray = make_deep_copy ? Module.HEAPU8.slice(proto_ptr, proto_ptr + proto_size) : new Uint8Array(Module.HEAPU8.buffer, proto_ptr, proto_size); + Module._wrapSimpleListenerOutput(output_stream_name, newProtoArray, false, timestamp); +} + +function JsWrapSimpleListeners() { + if (!Module._wrapSimpleListenerOutput) { + Module._wrapSimpleListenerOutput = (outputStreamName, ...args) => { + if (Module.simpleListeners) { + const streamName = UTF8ToString(outputStreamName); + if (Module.simpleListeners[streamName]) { + Module.simpleListeners[streamName](...args); + } + } + }; + } + if (!Module._wrapEmptyPacketListenerOutput) { + Module._wrapEmptyPacketListenerOutput = (outputStreamName, timestamp) => { + if (Module.emptyPacketListeners) { + const streamName = UTF8ToString(outputStreamName); + if (Module.emptyPacketListeners[streamName]) { + Module.emptyPacketListeners[streamName](timestamp); + } + } + }; + } +} + +function JsOnSimpleListenerBinaryArray(output_stream_name, binary_ptr, binary_size, make_deep_copy, timestamp) { + const newProtoArray = make_deep_copy ? Module.HEAPU8.slice(binary_ptr, binary_ptr + binary_size) : new Uint8Array(Module.HEAPU8.buffer, binary_ptr, binary_size); + Module._wrapSimpleListenerOutput(output_stream_name, newProtoArray, timestamp); +} + +function mediapipe_import_external_texture(device_handle, source_handle) { + const device = WebGPU.getJsObject(device_handle); + const source = Emval.toValue(source_handle); + const externalTexture = device.importExternalTexture({ + source + }); + return Emval.toHandle(externalTexture); +} + +function mediapipe_create_utility_canvas2d() { + let canvas; + if (typeof HTMLCanvasElement !== "undefined") { + canvas = document.createElement("canvas"); + canvas.style.display = "none"; + } else { + canvas = new OffscreenCanvas(0, 0); + } + return Emval.toHandle(canvas); +} + +function GetAdapterArchitecture() { + const device = Module["preinitializedWebGPUDevice"]; + const architecture = device.adapterInfo ? device.adapterInfo.architecture : "Unknown"; + return stringToNewUTF8(architecture); +} + +function GetAdapterDescription() { + const device = Module["preinitializedWebGPUDevice"]; + const description = device.adapterInfo ? device.adapterInfo.description : "Unknown"; + return stringToNewUTF8(description); +} + +function GetAdapterDeviceName() { + const device = Module["preinitializedWebGPUDevice"]; + const deviceName = device.adapterInfo ? device.adapterInfo.device : "Unknown"; + return stringToNewUTF8(deviceName); +} + +function GetAdapterVendor() { + const device = Module["preinitializedWebGPUDevice"]; + const vendor = device.adapterInfo ? device.adapterInfo.vendor : "Unknown"; + return stringToNewUTF8(vendor); +} + +function __asyncjs__mediapipe_map_buffer_jspi(buffer_handle, data) { + return Asyncify.handleAsync(async () => { + const buffer = WebGPU.getJsObject(buffer_handle); + if ("mapSync" in buffer) { + buffer.mapSync(GPUMapMode.READ); + } else { + await buffer.mapAsync(GPUMapMode.READ); + } + const mapped = buffer.getMappedRange(); + HEAPU8.set(new Uint8Array(mapped), data); + buffer.unmap(); + }); +} + +function hardware_concurrency() { + var concurrency = 1; + try { + concurrency = self.navigator.hardwareConcurrency; + } catch (e) {} + return concurrency; +} + +function JsWrapErrorListener(code, message) { + if (Module.errorListener) { + const stringMessage = UTF8ToString(message); + Module.errorListener(code, stringMessage); + } +} + +function UseBottomLeftGpuOrigin() { + return (Module && Module.gpuOriginForWebTexturesIsBottomLeft); +} + +function custom_emscripten_dbgn(str, len) { + if (typeof (dbg) !== "undefined") { + dbg(UTF8ToString(str, len)); + } else { + if (typeof (custom_dbg) === "undefined") { + function custom_dbg(text) { + console.warn.apply(console, arguments); + } + } + custom_dbg(UTF8ToString(str, len)); + } +} + +// Imports from the Wasm binary. +var _free, _malloc, _wgpuDeviceAddRef, _addBoundTextureAsImageToStream, _attachImageListener, _attachImageVectorListener, _registerModelResourcesGraphService, _bindTextureToStream, _addBoundTextureToStream, _addDoubleToInputStream, _addFloatToInputStream, _addBoolToInputStream, _addIntToInputStream, _addUintToInputStream, _addStringToInputStream, _addRawDataSpanToInputStream, _allocateBoolVector, _allocateFloatVector, _allocateDoubleVector, _allocateIntVector, _allocateUintVector, _allocateStringVector, _addBoolVectorEntry, _addFloatVectorEntry, _addDoubleVectorEntry, _addIntVectorEntry, _addUintVectorEntry, _addStringVectorEntry, _addBoolVectorToInputStream, _addFloatVectorToInputStream, _addDoubleVectorToInputStream, _addIntVectorToInputStream, _addUintVectorToInputStream, _addStringVectorToInputStream, _addFlatHashMapToInputStream, _addProtoToInputStream, _addEmptyPacketToInputStream, _addBoolToInputSidePacket, _addDoubleToInputSidePacket, _addFloatToInputSidePacket, _addIntToInputSidePacket, _addUintToInputSidePacket, _addStringToInputSidePacket, _addRawDataSpanToInputSidePacket, _addProtoToInputSidePacket, _addBoolVectorToInputSidePacket, _addDoubleVectorToInputSidePacket, _addFloatVectorToInputSidePacket, _addIntVectorToInputSidePacket, _addUintVectorToInputSidePacket, _addStringVectorToInputSidePacket, _attachBoolListener, _attachBoolVectorListener, _attachDoubleListener, _attachDoubleVectorListener, _attachFloatListener, _attachFloatVectorListener, _attachIntListener, _attachIntVectorListener, _attachUintListener, _attachUintVectorListener, _attachStringListener, _attachStringVectorListener, _attachProtoListener, _attachProtoVectorListener, _getGraphConfig, ___getTypeName, _emwgpuCreateBindGroup, _emwgpuCreateBindGroupLayout, _emwgpuCreateCommandBuffer, _emwgpuCreateCommandEncoder, _emwgpuCreateComputePassEncoder, _emwgpuCreateComputePipeline, _emwgpuCreateExternalTexture, _emwgpuCreatePipelineLayout, _emwgpuCreateQuerySet, _emwgpuCreateRenderBundle, _emwgpuCreateRenderBundleEncoder, _emwgpuCreateRenderPassEncoder, _emwgpuCreateRenderPipeline, _emwgpuCreateSampler, _emwgpuCreateSurface, _emwgpuCreateTexture, _emwgpuCreateTextureView, _emwgpuCreateAdapter, _emwgpuImportBuffer, _emwgpuCreateDevice, _emwgpuCreateQueue, _emwgpuCreateShaderModule, _emwgpuOnCreateComputePipelineCompleted, _emwgpuOnCreateRenderPipelineCompleted, _clearSubgraphs, _pushBinarySubgraph, _pushTextSubgraph, _changeBinaryGraph, _changeTextGraph, _processGl, _process, _bindTextureToCanvas, _requestShaderRefreshOnGraphChange, _waitUntilIdle, _closeGraph, _setAutoRenderToScreen, _emscripten_builtin_memalign, _memalign, __emscripten_tempret_set, __emscripten_stack_restore, __emscripten_stack_alloc, _emscripten_stack_get_current, dynCall_ji, dynCall_jii, dynCall_iiiijij, dynCall_viiji, dynCall_viji, dynCall_iiiji, dynCall_jjj, dynCall_iiiijj, dynCall_viijj, dynCall_viiijjj, dynCall_vij, dynCall_viijii, dynCall_viiiji, dynCall_vijjj, dynCall_vj, dynCall_viij, dynCall_jiji, dynCall_iiiiij, dynCall_iiiiijj, dynCall_iiiiiijj, memory, _kVersionStampBuildChangelistStr, _kVersionStampCitcSnapshotStr, _kVersionStampCitcWorkspaceIdStr, _kVersionStampSourceUriStr, _kVersionStampBuildClientStr, _kVersionStampBuildClientMintStatusStr, _kVersionStampBuildCompilerStr, _kVersionStampBuildDateTimePstStr, _kVersionStampBuildDepotPathStr, _kVersionStampBuildIdStr, _kVersionStampBuildInfoStr, _kVersionStampBuildLabelStr, _kVersionStampBuildTargetStr, _kVersionStampBuildTimestampStr, _kVersionStampBuildToolStr, _kVersionStampG3BuildTargetStr, _kVersionStampVerifiableStr, _kVersionStampBuildFdoTypeStr, _kVersionStampBuildBaselineChangelistStr, _kVersionStampBuildLtoTypeStr, _kVersionStampBuildPropellerTypeStr, _kVersionStampBuildPghoTypeStr, _kVersionStampBuildUsernameStr, _kVersionStampBuildHostnameStr, _kVersionStampBuildDirectoryStr, _kVersionStampBuildChangelistInt, _kVersionStampCitcSnapshotInt, _kVersionStampBuildClientMintStatusInt, _kVersionStampBuildTimestampInt, _kVersionStampVerifiableInt, _kVersionStampBuildCoverageEnabledInt, _kVersionStampBuildBaselineChangelistInt, _kVersionStampPrecookedTimestampStr, _kVersionStampPrecookedClientInfoStr, __indirect_function_table, wasmMemory, wasmTable; + +function assignWasmExports(wasmExports) { + _free = Module["_free"] = wasmExports["Td"]; + _malloc = Module["_malloc"] = wasmExports["Ud"]; + _wgpuDeviceAddRef = wasmExports["Vd"]; + _addBoundTextureAsImageToStream = Module["_addBoundTextureAsImageToStream"] = wasmExports["Wd"]; + _attachImageListener = Module["_attachImageListener"] = wasmExports["Xd"]; + _attachImageVectorListener = Module["_attachImageVectorListener"] = wasmExports["Yd"]; + _registerModelResourcesGraphService = Module["_registerModelResourcesGraphService"] = wasmExports["Zd"]; + _bindTextureToStream = Module["_bindTextureToStream"] = wasmExports["_d"]; + _addBoundTextureToStream = Module["_addBoundTextureToStream"] = wasmExports["$d"]; + _addDoubleToInputStream = Module["_addDoubleToInputStream"] = wasmExports["ae"]; + _addFloatToInputStream = Module["_addFloatToInputStream"] = wasmExports["be"]; + _addBoolToInputStream = Module["_addBoolToInputStream"] = wasmExports["ce"]; + _addIntToInputStream = Module["_addIntToInputStream"] = wasmExports["de"]; + _addUintToInputStream = Module["_addUintToInputStream"] = wasmExports["ee"]; + _addStringToInputStream = Module["_addStringToInputStream"] = wasmExports["fe"]; + _addRawDataSpanToInputStream = Module["_addRawDataSpanToInputStream"] = wasmExports["ge"]; + _allocateBoolVector = Module["_allocateBoolVector"] = wasmExports["he"]; + _allocateFloatVector = Module["_allocateFloatVector"] = wasmExports["ie"]; + _allocateDoubleVector = Module["_allocateDoubleVector"] = wasmExports["je"]; + _allocateIntVector = Module["_allocateIntVector"] = wasmExports["ke"]; + _allocateUintVector = Module["_allocateUintVector"] = wasmExports["le"]; + _allocateStringVector = Module["_allocateStringVector"] = wasmExports["me"]; + _addBoolVectorEntry = Module["_addBoolVectorEntry"] = wasmExports["ne"]; + _addFloatVectorEntry = Module["_addFloatVectorEntry"] = wasmExports["oe"]; + _addDoubleVectorEntry = Module["_addDoubleVectorEntry"] = wasmExports["pe"]; + _addIntVectorEntry = Module["_addIntVectorEntry"] = wasmExports["qe"]; + _addUintVectorEntry = Module["_addUintVectorEntry"] = wasmExports["re"]; + _addStringVectorEntry = Module["_addStringVectorEntry"] = wasmExports["se"]; + _addBoolVectorToInputStream = Module["_addBoolVectorToInputStream"] = wasmExports["te"]; + _addFloatVectorToInputStream = Module["_addFloatVectorToInputStream"] = wasmExports["ue"]; + _addDoubleVectorToInputStream = Module["_addDoubleVectorToInputStream"] = wasmExports["ve"]; + _addIntVectorToInputStream = Module["_addIntVectorToInputStream"] = wasmExports["we"]; + _addUintVectorToInputStream = Module["_addUintVectorToInputStream"] = wasmExports["xe"]; + _addStringVectorToInputStream = Module["_addStringVectorToInputStream"] = wasmExports["ye"]; + _addFlatHashMapToInputStream = Module["_addFlatHashMapToInputStream"] = wasmExports["ze"]; + _addProtoToInputStream = Module["_addProtoToInputStream"] = wasmExports["Ae"]; + _addEmptyPacketToInputStream = Module["_addEmptyPacketToInputStream"] = wasmExports["Be"]; + _addBoolToInputSidePacket = Module["_addBoolToInputSidePacket"] = wasmExports["Ce"]; + _addDoubleToInputSidePacket = Module["_addDoubleToInputSidePacket"] = wasmExports["De"]; + _addFloatToInputSidePacket = Module["_addFloatToInputSidePacket"] = wasmExports["Ee"]; + _addIntToInputSidePacket = Module["_addIntToInputSidePacket"] = wasmExports["Fe"]; + _addUintToInputSidePacket = Module["_addUintToInputSidePacket"] = wasmExports["Ge"]; + _addStringToInputSidePacket = Module["_addStringToInputSidePacket"] = wasmExports["He"]; + _addRawDataSpanToInputSidePacket = Module["_addRawDataSpanToInputSidePacket"] = wasmExports["Ie"]; + _addProtoToInputSidePacket = Module["_addProtoToInputSidePacket"] = wasmExports["Je"]; + _addBoolVectorToInputSidePacket = Module["_addBoolVectorToInputSidePacket"] = wasmExports["Ke"]; + _addDoubleVectorToInputSidePacket = Module["_addDoubleVectorToInputSidePacket"] = wasmExports["Le"]; + _addFloatVectorToInputSidePacket = Module["_addFloatVectorToInputSidePacket"] = wasmExports["Me"]; + _addIntVectorToInputSidePacket = Module["_addIntVectorToInputSidePacket"] = wasmExports["Ne"]; + _addUintVectorToInputSidePacket = Module["_addUintVectorToInputSidePacket"] = wasmExports["Oe"]; + _addStringVectorToInputSidePacket = Module["_addStringVectorToInputSidePacket"] = wasmExports["Pe"]; + _attachBoolListener = Module["_attachBoolListener"] = wasmExports["Qe"]; + _attachBoolVectorListener = Module["_attachBoolVectorListener"] = wasmExports["Re"]; + _attachDoubleListener = Module["_attachDoubleListener"] = wasmExports["Se"]; + _attachDoubleVectorListener = Module["_attachDoubleVectorListener"] = wasmExports["Te"]; + _attachFloatListener = Module["_attachFloatListener"] = wasmExports["Ue"]; + _attachFloatVectorListener = Module["_attachFloatVectorListener"] = wasmExports["Ve"]; + _attachIntListener = Module["_attachIntListener"] = wasmExports["We"]; + _attachIntVectorListener = Module["_attachIntVectorListener"] = wasmExports["Xe"]; + _attachUintListener = Module["_attachUintListener"] = wasmExports["Ye"]; + _attachUintVectorListener = Module["_attachUintVectorListener"] = wasmExports["Ze"]; + _attachStringListener = Module["_attachStringListener"] = wasmExports["_e"]; + _attachStringVectorListener = Module["_attachStringVectorListener"] = wasmExports["$e"]; + _attachProtoListener = Module["_attachProtoListener"] = wasmExports["af"]; + _attachProtoVectorListener = Module["_attachProtoVectorListener"] = wasmExports["bf"]; + _getGraphConfig = Module["_getGraphConfig"] = wasmExports["cf"]; + ___getTypeName = wasmExports["df"]; + _emwgpuCreateBindGroup = wasmExports["ef"]; + _emwgpuCreateBindGroupLayout = wasmExports["ff"]; + _emwgpuCreateCommandBuffer = wasmExports["gf"]; + _emwgpuCreateCommandEncoder = wasmExports["hf"]; + _emwgpuCreateComputePassEncoder = wasmExports["jf"]; + _emwgpuCreateComputePipeline = wasmExports["kf"]; + _emwgpuCreateExternalTexture = wasmExports["lf"]; + _emwgpuCreatePipelineLayout = wasmExports["mf"]; + _emwgpuCreateQuerySet = wasmExports["nf"]; + _emwgpuCreateRenderBundle = wasmExports["of"]; + _emwgpuCreateRenderBundleEncoder = wasmExports["pf"]; + _emwgpuCreateRenderPassEncoder = wasmExports["qf"]; + _emwgpuCreateRenderPipeline = wasmExports["rf"]; + _emwgpuCreateSampler = wasmExports["sf"]; + _emwgpuCreateSurface = wasmExports["tf"]; + _emwgpuCreateTexture = wasmExports["uf"]; + _emwgpuCreateTextureView = wasmExports["vf"]; + _emwgpuCreateAdapter = wasmExports["wf"]; + _emwgpuImportBuffer = wasmExports["xf"]; + _emwgpuCreateDevice = wasmExports["yf"]; + _emwgpuCreateQueue = wasmExports["zf"]; + _emwgpuCreateShaderModule = wasmExports["Af"]; + _emwgpuOnCreateComputePipelineCompleted = wasmExports["Bf"]; + _emwgpuOnCreateRenderPipelineCompleted = wasmExports["Cf"]; + _clearSubgraphs = Module["_clearSubgraphs"] = wasmExports["Df"]; + _pushBinarySubgraph = Module["_pushBinarySubgraph"] = wasmExports["Ef"]; + _pushTextSubgraph = Module["_pushTextSubgraph"] = wasmExports["Ff"]; + _changeBinaryGraph = Module["_changeBinaryGraph"] = wasmExports["Gf"]; + _changeTextGraph = Module["_changeTextGraph"] = wasmExports["Hf"]; + _processGl = Module["_processGl"] = wasmExports["If"]; + _process = Module["_process"] = wasmExports["Jf"]; + _bindTextureToCanvas = Module["_bindTextureToCanvas"] = wasmExports["Kf"]; + _requestShaderRefreshOnGraphChange = Module["_requestShaderRefreshOnGraphChange"] = wasmExports["Lf"]; + _waitUntilIdle = Module["_waitUntilIdle"] = wasmExports["Mf"]; + _closeGraph = Module["_closeGraph"] = wasmExports["Nf"]; + _setAutoRenderToScreen = Module["_setAutoRenderToScreen"] = wasmExports["Of"]; + _emscripten_builtin_memalign = wasmExports["Pf"]; + _memalign = wasmExports["Qf"]; + __emscripten_tempret_set = wasmExports["Rf"]; + __emscripten_stack_restore = wasmExports["Sf"]; + __emscripten_stack_alloc = wasmExports["Tf"]; + _emscripten_stack_get_current = wasmExports["Uf"]; + dynCall_ji = wasmExports["dynCall_ji"]; + dynCall_jii = wasmExports["dynCall_jii"]; + dynCall_iiiijij = wasmExports["dynCall_iiiijij"]; + dynCall_viiji = wasmExports["dynCall_viiji"]; + dynCall_viji = wasmExports["dynCall_viji"]; + dynCall_iiiji = wasmExports["dynCall_iiiji"]; + dynCall_jjj = wasmExports["dynCall_jjj"]; + dynCall_iiiijj = wasmExports["dynCall_iiiijj"]; + dynCall_viijj = wasmExports["dynCall_viijj"]; + dynCall_viiijjj = wasmExports["dynCall_viiijjj"]; + dynCall_vij = wasmExports["dynCall_vij"]; + dynCall_viijii = wasmExports["dynCall_viijii"]; + dynCall_viiiji = wasmExports["dynCall_viiiji"]; + dynCall_vijjj = wasmExports["dynCall_vijjj"]; + dynCall_vj = wasmExports["dynCall_vj"]; + dynCall_viij = wasmExports["dynCall_viij"]; + dynCall_jiji = wasmExports["dynCall_jiji"]; + dynCall_iiiiij = wasmExports["dynCall_iiiiij"]; + dynCall_iiiiijj = wasmExports["dynCall_iiiiijj"]; + dynCall_iiiiiijj = wasmExports["dynCall_iiiiiijj"]; + memory = wasmMemory = wasmExports["id"]; + _kVersionStampBuildChangelistStr = Module["_kVersionStampBuildChangelistStr"] = wasmExports["kd"].value; + _kVersionStampCitcSnapshotStr = Module["_kVersionStampCitcSnapshotStr"] = wasmExports["ld"].value; + _kVersionStampCitcWorkspaceIdStr = Module["_kVersionStampCitcWorkspaceIdStr"] = wasmExports["md"].value; + _kVersionStampSourceUriStr = Module["_kVersionStampSourceUriStr"] = wasmExports["nd"].value; + _kVersionStampBuildClientStr = Module["_kVersionStampBuildClientStr"] = wasmExports["od"].value; + _kVersionStampBuildClientMintStatusStr = Module["_kVersionStampBuildClientMintStatusStr"] = wasmExports["pd"].value; + _kVersionStampBuildCompilerStr = Module["_kVersionStampBuildCompilerStr"] = wasmExports["qd"].value; + _kVersionStampBuildDateTimePstStr = Module["_kVersionStampBuildDateTimePstStr"] = wasmExports["rd"].value; + _kVersionStampBuildDepotPathStr = Module["_kVersionStampBuildDepotPathStr"] = wasmExports["sd"].value; + _kVersionStampBuildIdStr = Module["_kVersionStampBuildIdStr"] = wasmExports["td"].value; + _kVersionStampBuildInfoStr = Module["_kVersionStampBuildInfoStr"] = wasmExports["ud"].value; + _kVersionStampBuildLabelStr = Module["_kVersionStampBuildLabelStr"] = wasmExports["vd"].value; + _kVersionStampBuildTargetStr = Module["_kVersionStampBuildTargetStr"] = wasmExports["wd"].value; + _kVersionStampBuildTimestampStr = Module["_kVersionStampBuildTimestampStr"] = wasmExports["xd"].value; + _kVersionStampBuildToolStr = Module["_kVersionStampBuildToolStr"] = wasmExports["yd"].value; + _kVersionStampG3BuildTargetStr = Module["_kVersionStampG3BuildTargetStr"] = wasmExports["zd"].value; + _kVersionStampVerifiableStr = Module["_kVersionStampVerifiableStr"] = wasmExports["Ad"].value; + _kVersionStampBuildFdoTypeStr = Module["_kVersionStampBuildFdoTypeStr"] = wasmExports["Bd"].value; + _kVersionStampBuildBaselineChangelistStr = Module["_kVersionStampBuildBaselineChangelistStr"] = wasmExports["Cd"].value; + _kVersionStampBuildLtoTypeStr = Module["_kVersionStampBuildLtoTypeStr"] = wasmExports["Dd"].value; + _kVersionStampBuildPropellerTypeStr = Module["_kVersionStampBuildPropellerTypeStr"] = wasmExports["Ed"].value; + _kVersionStampBuildPghoTypeStr = Module["_kVersionStampBuildPghoTypeStr"] = wasmExports["Fd"].value; + _kVersionStampBuildUsernameStr = Module["_kVersionStampBuildUsernameStr"] = wasmExports["Gd"].value; + _kVersionStampBuildHostnameStr = Module["_kVersionStampBuildHostnameStr"] = wasmExports["Hd"].value; + _kVersionStampBuildDirectoryStr = Module["_kVersionStampBuildDirectoryStr"] = wasmExports["Id"].value; + _kVersionStampBuildChangelistInt = Module["_kVersionStampBuildChangelistInt"] = wasmExports["Jd"].value; + _kVersionStampCitcSnapshotInt = Module["_kVersionStampCitcSnapshotInt"] = wasmExports["Kd"].value; + _kVersionStampBuildClientMintStatusInt = Module["_kVersionStampBuildClientMintStatusInt"] = wasmExports["Ld"].value; + _kVersionStampBuildTimestampInt = Module["_kVersionStampBuildTimestampInt"] = wasmExports["Md"].value; + _kVersionStampVerifiableInt = Module["_kVersionStampVerifiableInt"] = wasmExports["Nd"].value; + _kVersionStampBuildCoverageEnabledInt = Module["_kVersionStampBuildCoverageEnabledInt"] = wasmExports["Od"].value; + _kVersionStampBuildBaselineChangelistInt = Module["_kVersionStampBuildBaselineChangelistInt"] = wasmExports["Pd"].value; + _kVersionStampPrecookedTimestampStr = Module["_kVersionStampPrecookedTimestampStr"] = wasmExports["Qd"].value; + _kVersionStampPrecookedClientInfoStr = Module["_kVersionStampPrecookedClientInfoStr"] = wasmExports["Rd"].value; + __indirect_function_table = wasmTable = wasmExports["Sd"]; +} + +var wasmImports = { + /** @export */ hd: BeginGlQueryTiming, + /** @export */ gd: EndGlQueryTiming, + /** @export */ fd: GetAdapterArchitecture, + /** @export */ ed: GetAdapterDescription, + /** @export */ dd: GetAdapterDeviceName, + /** @export */ cd: GetAdapterVendor, + /** @export */ bd: JsOnEmptyPacketListener, + /** @export */ ad: JsOnFloat32ArrayImageListener, + /** @export */ $c: JsOnFloat32ArrayImageVectorListener, + /** @export */ pb: JsOnSimpleListenerBinaryArray, + /** @export */ _c: JsOnSimpleListenerBool, + /** @export */ Zc: JsOnSimpleListenerDouble, + /** @export */ Yc: JsOnSimpleListenerFloat, + /** @export */ Xc: JsOnSimpleListenerInt, + /** @export */ Wc: JsOnSimpleListenerString, + /** @export */ Vc: JsOnSimpleListenerUint, + /** @export */ Uc: JsOnUint8ArrayImageListener, + /** @export */ Tc: JsOnUint8ArrayImageVectorListener, + /** @export */ O: JsOnVectorFinishedListener, + /** @export */ Sc: JsOnVectorListenerBool, + /** @export */ Rc: JsOnVectorListenerDouble, + /** @export */ Qc: JsOnVectorListenerFloat, + /** @export */ Pc: JsOnVectorListenerInt, + /** @export */ Oc: JsOnVectorListenerProto, + /** @export */ Nc: JsOnVectorListenerString, + /** @export */ Mc: JsOnVectorListenerUint, + /** @export */ Lc: JsOnWebGLTextureListener, + /** @export */ Kc: JsOnWebGLTextureVectorListener, + /** @export */ Pa: JsWrapErrorListener, + /** @export */ ob: JsWrapImageConverter, + /** @export */ u: JsWrapSimpleListeners, + /** @export */ nb: UseBottomLeftGpuOrigin, + /** @export */ yb: __asyncjs__mediapipe_map_buffer_jspi, + /** @export */ r: ___cxa_throw, + /** @export */ Jc: ___syscall_dup, + /** @export */ Ic: ___syscall_faccessat, + /** @export */ mb: ___syscall_fcntl64, + /** @export */ Hc: ___syscall_fstat64, + /** @export */ Mb: ___syscall_ftruncate64, + /** @export */ Gc: ___syscall_ioctl, + /** @export */ Fc: ___syscall_lstat64, + /** @export */ Ec: ___syscall_newfstatat, + /** @export */ lb: ___syscall_openat, + /** @export */ Dc: ___syscall_stat64, + /** @export */ yc: __abort_js, + /** @export */ Jb: __embind_register_bigint, + /** @export */ xc: __embind_register_bool, + /** @export */ wc: __embind_register_emval, + /** @export */ jb: __embind_register_float, + /** @export */ I: __embind_register_integer, + /** @export */ q: __embind_register_memory_view, + /** @export */ vc: __embind_register_std_string, + /** @export */ Ma: __embind_register_std_wstring, + /** @export */ uc: __embind_register_void, + /** @export */ $: __emval_create_invoker, + /** @export */ p: __emval_decref, + /** @export */ La: __emval_get_global, + /** @export */ ib: __emval_get_property, + /** @export */ ja: __emval_incref, + /** @export */ Ka: __emval_instanceof, + /** @export */ _: __emval_invoke, + /** @export */ ua: __emval_new_cstring, + /** @export */ Z: __emval_run_destructors, + /** @export */ hb: __emval_set_property, + /** @export */ tc: __emval_typeof, + /** @export */ Ib: __gmtime_js, + /** @export */ Hb: __localtime_js, + /** @export */ Gb: __mktime_js, + /** @export */ Fb: __mmap_js, + /** @export */ Eb: __munmap_js, + /** @export */ sc: __tzset_js, + /** @export */ Lb: _clock_time_get, + /** @export */ rc: custom_emscripten_dbgn, + /** @export */ Y: _emscripten_asm_const_int, + /** @export */ gb: _emscripten_asm_const_ptr, + /** @export */ Ja: _emscripten_errn, + /** @export */ qc: _emscripten_get_heap_max, + /** @export */ y: _emscripten_get_now, + /** @export */ ia: _emscripten_has_asyncify, + /** @export */ pc: _emscripten_outn, + /** @export */ oc: _emscripten_pc_get_function, + /** @export */ nc: _emscripten_resize_heap, + /** @export */ fb: _emscripten_stack_snapshot, + /** @export */ mc: _emscripten_stack_unwind_buffer, + /** @export */ lc: _emscripten_webgl_create_context, + /** @export */ kc: _emscripten_webgl_destroy_context, + /** @export */ jc: _emscripten_webgl_get_context_attributes, + /** @export */ ha: _emscripten_webgl_get_current_context, + /** @export */ ic: _emscripten_webgl_make_context_current, + /** @export */ Q: _emscripten_webgpu_get_device, + /** @export */ hc: _emwgpuBufferDestroy, + /** @export */ gc: _emwgpuBufferGetMappedRange, + /** @export */ fc: _emwgpuBufferUnmap, + /** @export */ x: _emwgpuDelete, + /** @export */ ec: _emwgpuDeviceCreateBuffer, + /** @export */ Db: _emwgpuDeviceCreateComputePipelineAsync, + /** @export */ Cb: _emwgpuDeviceCreateRenderPipelineAsync, + /** @export */ dc: _emwgpuDeviceCreateShaderModule, + /** @export */ cc: _emwgpuDeviceDestroy, + /** @export */ bc: _emwgpuWaitAny, + /** @export */ Cc: _environ_get, + /** @export */ Bc: _environ_sizes_get, + /** @export */ eb: _exit, + /** @export */ Oa: _fd_close, + /** @export */ kb: _fd_read, + /** @export */ Kb: _fd_seek, + /** @export */ Na: _fd_write, + /** @export */ b: _glActiveTexture, + /** @export */ ta: _glAttachShader, + /** @export */ ac: _glBindAttribLocation, + /** @export */ c: _glBindBuffer, + /** @export */ db: _glBindBufferBase, + /** @export */ t: _glBindFramebuffer, + /** @export */ a: _glBindTexture, + /** @export */ m: _glBindVertexArray, + /** @export */ cb: _glBlendEquation, + /** @export */ $b: _glBlendFunc, + /** @export */ j: _glBufferData, + /** @export */ H: _glClear, + /** @export */ X: _glClearColor, + /** @export */ da: _glClientWaitSync, + /** @export */ ga: _glColorMask, + /** @export */ bb: _glCompileShader, + /** @export */ ab: _glCreateProgram, + /** @export */ $a: _glCreateShader, + /** @export */ o: _glDeleteBuffers, + /** @export */ P: _glDeleteFramebuffers, + /** @export */ h: _glDeleteProgram, + /** @export */ sa: _glDeleteShader, + /** @export */ ra: _glDeleteSync, + /** @export */ D: _glDeleteTextures, + /** @export */ A: _glDeleteVertexArrays, + /** @export */ _a: _glDetachShader, + /** @export */ G: _glDisable, + /** @export */ n: _glDisableVertexAttribArray, + /** @export */ i: _glDrawArrays, + /** @export */ fa: _glDrawBuffers, + /** @export */ _b: _glEnable, + /** @export */ l: _glEnableVertexAttribArray, + /** @export */ Za: _glFenceSync, + /** @export */ qa: _glFinish, + /** @export */ v: _glFlush, + /** @export */ C: _glFramebufferTexture2D, + /** @export */ Ya: _glFramebufferTextureLayer, + /** @export */ s: _glGenBuffers, + /** @export */ W: _glGenFramebuffers, + /** @export */ F: _glGenTextures, + /** @export */ B: _glGenVertexArrays, + /** @export */ Xa: _glGetAttribLocation, + /** @export */ ea: _glGetError, + /** @export */ Zb: _glGetFloatv, + /** @export */ w: _glGetIntegerv, + /** @export */ Yb: _glGetProgramiv, + /** @export */ Xb: _glGetShaderInfoLog, + /** @export */ Wb: _glGetShaderiv, + /** @export */ N: _glGetString, + /** @export */ Vb: _glGetUniformBlockIndex, + /** @export */ d: _glGetUniformLocation, + /** @export */ Ub: _glLineWidth, + /** @export */ Wa: _glLinkProgram, + /** @export */ pa: _glPixelStorei, + /** @export */ oa: _glReadPixels, + /** @export */ Va: _glShaderSource, + /** @export */ E: _glTexImage2D, + /** @export */ na: _glTexParameterf, + /** @export */ Ua: _glTexParameterfv, + /** @export */ f: _glTexParameteri, + /** @export */ ma: _glTexStorage2D, + /** @export */ Tb: _glTexStorage3D, + /** @export */ V: _glTexSubImage2D, + /** @export */ Sb: _glTexSubImage3D, + /** @export */ M: _glUniform1f, + /** @export */ la: _glUniform1fv, + /** @export */ e: _glUniform1i, + /** @export */ U: _glUniform2f, + /** @export */ Rb: _glUniform2fv, + /** @export */ Ia: _glUniform3f, + /** @export */ Ta: _glUniform4f, + /** @export */ T: _glUniform4fv, + /** @export */ Qb: _glUniform4iv, + /** @export */ Pb: _glUniformBlockBinding, + /** @export */ Ob: _glUniformMatrix2fv, + /** @export */ Nb: _glUniformMatrix3fv, + /** @export */ Ha: _glUniformMatrix4fv, + /** @export */ g: _glUseProgram, + /** @export */ k: _glVertexAttribPointer, + /** @export */ S: _glViewport, + /** @export */ Ga: hardware_concurrency, + /** @export */ Bb: mediapipe_create_utility_canvas2d, + /** @export */ Ab: _mediapipe_find_canvas_event_target, + /** @export */ zb: mediapipe_import_external_texture, + /** @export */ xb: _mediapipe_webgl_tex_image_drawable, + /** @export */ Ac: _proc_exit, + /** @export */ zc: _random_get, + /** @export */ Fa: _wgpuCommandEncoderBeginComputePass, + /** @export */ Ea: _wgpuCommandEncoderBeginRenderPass, + /** @export */ wb: _wgpuCommandEncoderCopyBufferToTexture, + /** @export */ vb: _wgpuCommandEncoderCopyTextureToBuffer, + /** @export */ ub: _wgpuCommandEncoderCopyTextureToTexture, + /** @export */ L: _wgpuCommandEncoderFinish, + /** @export */ Da: _wgpuComputePassEncoderDispatchWorkgroups, + /** @export */ Ca: _wgpuComputePassEncoderEnd, + /** @export */ Ba: _wgpuComputePassEncoderSetBindGroup, + /** @export */ Aa: _wgpuComputePassEncoderSetPipeline, + /** @export */ za: _wgpuComputePipelineGetBindGroupLayout, + /** @export */ ca: _wgpuDeviceCreateBindGroup, + /** @export */ tb: _wgpuDeviceCreateBindGroupLayout, + /** @export */ K: _wgpuDeviceCreateCommandEncoder, + /** @export */ sb: _wgpuDeviceCreateComputePipeline, + /** @export */ rb: _wgpuDeviceCreatePipelineLayout, + /** @export */ Sa: _wgpuDeviceCreateRenderPipeline, + /** @export */ R: _wgpuDeviceCreateSampler, + /** @export */ ba: _wgpuDeviceCreateTexture, + /** @export */ J: _wgpuQueueSubmit, + /** @export */ ka: _wgpuQueueWriteBuffer, + /** @export */ qb: _wgpuQueueWriteTexture, + /** @export */ ya: _wgpuRenderPassEncoderDraw, + /** @export */ xa: _wgpuRenderPassEncoderEnd, + /** @export */ wa: _wgpuRenderPassEncoderSetBindGroup, + /** @export */ va: _wgpuRenderPassEncoderSetPipeline, + /** @export */ Ra: _wgpuRenderPipelineGetBindGroupLayout, + /** @export */ z: _wgpuTextureCreateView, + /** @export */ Qa: _wgpuTextureDestroy, + /** @export */ aa: _wgpuTextureGetFormat +}; + +// include: postamble.js +// === Auto-generated postamble setup entry stuff === +function run() { + if (runDependencies > 0) { + dependenciesFulfilled = run; + return; + } + preRun(); + // a preRun added a dependency, run will be called later + if (runDependencies > 0) { + dependenciesFulfilled = run; + return; + } + function doRun() { + // run may have just been called through dependencies being fulfilled just in this very frame, + // or while the async setStatus time below was happening + Module["calledRun"] = true; + if (ABORT) return; + initRuntime(); + readyPromiseResolve?.(Module); + Module["onRuntimeInitialized"]?.(); + postRun(); + } + if (Module["setStatus"]) { + Module["setStatus"]("Running..."); + setTimeout(() => { + setTimeout(() => Module["setStatus"](""), 1); + doRun(); + }, 1); + } else { + doRun(); + } +} + +var wasmExports; + +// In modularize mode the generated code is within a factory function so we +// can use await here (since it's not top-level-await). +wasmExports = await (createWasm()); + +run(); + +// end include: postamble.js +// include: postamble_modularize.js +// In MODULARIZE mode we wrap the generated code in a factory function +// and return either the Module itself, or a promise of the module. +// We assign to the `moduleRtn` global here and configure closure to see +// this as an extern so it won't get minified. +if (runtimeInitialized) { + moduleRtn = Module; +} else { + // Set up the promise that indicates the Module is initialized + moduleRtn = new Promise((resolve, reject) => { + readyPromiseResolve = resolve; + readyPromiseReject = reject; + }); +} + + + return moduleRtn; + }; })(); -if (typeof exports === 'object' && typeof module === 'object') + +// Export using a UMD style export, or ES6 exports if selected +if (typeof exports === 'object' && typeof module === 'object') { module.exports = ModuleFactory; -else if (typeof define === 'function' && define['amd']) + // This default export looks redundant, but it allows TS to import this + // commonjs style module. + module.exports.default = ModuleFactory; +} else if (typeof define === 'function' && define['amd']) define([], () => ModuleFactory); + diff --git a/app/node_modules/@mediapipe/tasks-vision/wasm/vision_wasm_internal.wasm b/app/node_modules/@mediapipe/tasks-vision/wasm/vision_wasm_internal.wasm index a0fe60d5..9e6095d0 100644 Binary files a/app/node_modules/@mediapipe/tasks-vision/wasm/vision_wasm_internal.wasm and b/app/node_modules/@mediapipe/tasks-vision/wasm/vision_wasm_internal.wasm differ diff --git a/app/node_modules/@mediapipe/tasks-vision/wasm/vision_wasm_nosimd_internal.js b/app/node_modules/@mediapipe/tasks-vision/wasm/vision_wasm_nosimd_internal.js index d13bf265..63312d27 100644 --- a/app/node_modules/@mediapipe/tasks-vision/wasm/vision_wasm_nosimd_internal.js +++ b/app/node_modules/@mediapipe/tasks-vision/wasm/vision_wasm_nosimd_internal.js @@ -1,20 +1,8835 @@ -// Build 676155176 +// This code implements the `-sMODULARIZE` settings by taking the generated +// JS program code (INNER_JS_CODE) and wrapping it in a factory function. +// Single threaded MINIMAL_RUNTIME programs do not need access to +// document.currentScript, so a simple export declaration is enough. var ModuleFactory = (() => { - var _scriptName = typeof document != 'undefined' ? document.currentScript?.src : undefined; - if (typeof __filename != 'undefined') _scriptName ||= __filename; - return ( -function(moduleArg = {}) { - var moduleRtn; + // When MODULARIZE this JS may be executed later, + // after document.currentScript is gone, so we save it. + // In EXPORT_ES6 mode we can just use 'import.meta.url'. + var _scriptName = globalThis.document?.currentScript?.src; + return async function(moduleArg = {}) { + var moduleRtn; -var Module=moduleArg;var readyPromiseResolve,readyPromiseReject;var readyPromise=new Promise((resolve,reject)=>{readyPromiseResolve=resolve;readyPromiseReject=reject});var ENVIRONMENT_IS_WEB=typeof window=="object";var ENVIRONMENT_IS_WORKER=typeof importScripts=="function";var ENVIRONMENT_IS_NODE=typeof process=="object"&&typeof process.versions=="object"&&typeof process.versions.node=="string";if(ENVIRONMENT_IS_NODE){}var moduleOverrides=Object.assign({},Module);var arguments_=[];var thisProgram="./this.program";var quit_=(status,toThrow)=>{throw toThrow};var scriptDirectory="";function locateFile(path){if(Module["locateFile"]){return Module["locateFile"](path,scriptDirectory)}return scriptDirectory+path}var readAsync,readBinary;if(ENVIRONMENT_IS_NODE){var fs=require("fs");var nodePath=require("path");scriptDirectory=__dirname+"/";readBinary=filename=>{filename=isFileURI(filename)?new URL(filename):nodePath.normalize(filename);var ret=fs.readFileSync(filename);return ret};readAsync=(filename,binary=true)=>{filename=isFileURI(filename)?new URL(filename):nodePath.normalize(filename);return new Promise((resolve,reject)=>{fs.readFile(filename,binary?undefined:"utf8",(err,data)=>{if(err)reject(err);else resolve(binary?data.buffer:data)})})};if(!Module["thisProgram"]&&process.argv.length>1){thisProgram=process.argv[1].replace(/\\/g,"/")}arguments_=process.argv.slice(2);quit_=(status,toThrow)=>{process.exitCode=status;throw toThrow}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(typeof document!="undefined"&&document.currentScript){scriptDirectory=document.currentScript.src}if(_scriptName){scriptDirectory=_scriptName}if(scriptDirectory.startsWith("blob:")){scriptDirectory=""}else{scriptDirectory=scriptDirectory.substr(0,scriptDirectory.replace(/[?#].*/,"").lastIndexOf("/")+1)}{if(ENVIRONMENT_IS_WORKER){readBinary=url=>{var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=url=>{if(isFileURI(url)){return new Promise((reject,resolve)=>{var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=()=>{if(xhr.status==200||xhr.status==0&&xhr.response){resolve(xhr.response)}reject(xhr.status)};xhr.onerror=reject;xhr.send(null)})}return fetch(url,{credentials:"same-origin"}).then(response=>{if(response.ok){return response.arrayBuffer()}return Promise.reject(new Error(response.status+" : "+response.url))})}}}else{}var out=Module["print"]||console.log.bind(console);var err=Module["printErr"]||console.error.bind(console);Object.assign(Module,moduleOverrides);moduleOverrides=null;if(Module["arguments"])arguments_=Module["arguments"];if(Module["thisProgram"])thisProgram=Module["thisProgram"];if(Module["quit"])quit_=Module["quit"];var wasmBinary;if(Module["wasmBinary"])wasmBinary=Module["wasmBinary"];var wasmMemory;var ABORT=false;var EXITSTATUS;var HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateMemoryViews(){var b=wasmMemory.buffer;Module["HEAP8"]=HEAP8=new Int8Array(b);Module["HEAP16"]=HEAP16=new Int16Array(b);Module["HEAPU8"]=HEAPU8=new Uint8Array(b);Module["HEAPU16"]=HEAPU16=new Uint16Array(b);Module["HEAP32"]=HEAP32=new Int32Array(b);Module["HEAPU32"]=HEAPU32=new Uint32Array(b);Module["HEAPF32"]=HEAPF32=new Float32Array(b);Module["HEAPF64"]=HEAPF64=new Float64Array(b)}var __ATPRERUN__=[];var __ATINIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;function preRun(){if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;if(!Module["noFSInit"]&&!FS.init.initialized)FS.init();FS.ignorePermissions=false;TTY.init();callRuntimeCallbacks(__ATINIT__)}function postRun(){if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnInit(cb){__ATINIT__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function getUniqueRunDependency(id){return id}function addRunDependency(id){runDependencies++;Module["monitorRunDependencies"]?.(runDependencies)}function removeRunDependency(id){runDependencies--;Module["monitorRunDependencies"]?.(runDependencies);if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}function abort(what){Module["onAbort"]?.(what);what="Aborted("+what+")";err(what);ABORT=true;EXITSTATUS=1;what+=". Build with -sASSERTIONS for more info.";var e=new WebAssembly.RuntimeError(what);readyPromiseReject(e);throw e}var dataURIPrefix="data:application/octet-stream;base64,";var isDataURI=filename=>filename.startsWith(dataURIPrefix);var isFileURI=filename=>filename.startsWith("file://");function findWasmBinary(){var f="vision_wasm_nosimd_internal.wasm";if(!isDataURI(f)){return locateFile(f)}return f}var wasmBinaryFile;function getBinarySync(file){if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(file)}throw"both async and sync fetching of the wasm failed"}function getBinaryPromise(binaryFile){if(!wasmBinary){return readAsync(binaryFile).then(response=>new Uint8Array(response),()=>getBinarySync(binaryFile))}return Promise.resolve().then(()=>getBinarySync(binaryFile))}function instantiateArrayBuffer(binaryFile,imports,receiver){return getBinaryPromise(binaryFile).then(binary=>WebAssembly.instantiate(binary,imports)).then(receiver,reason=>{err(`failed to asynchronously prepare wasm: ${reason}`);abort(reason)})}function instantiateAsync(binary,binaryFile,imports,callback){if(!binary&&typeof WebAssembly.instantiateStreaming=="function"&&!isDataURI(binaryFile)&&!isFileURI(binaryFile)&&!ENVIRONMENT_IS_NODE&&typeof fetch=="function"){return fetch(binaryFile,{credentials:"same-origin"}).then(response=>{var result=WebAssembly.instantiateStreaming(response,imports);return result.then(callback,function(reason){err(`wasm streaming compile failed: ${reason}`);err("falling back to ArrayBuffer instantiation");return instantiateArrayBuffer(binaryFile,imports,callback)})})}return instantiateArrayBuffer(binaryFile,imports,callback)}function getWasmImports(){return{a:wasmImports}}function createWasm(){var info=getWasmImports();function receiveInstance(instance,module){wasmExports=instance.exports;wasmMemory=wasmExports["wd"];updateMemoryViews();wasmTable=wasmExports["yd"];addOnInit(wasmExports["xd"]);removeRunDependency("wasm-instantiate");return wasmExports}addRunDependency("wasm-instantiate");function receiveInstantiationResult(result){receiveInstance(result["instance"])}if(Module["instantiateWasm"]){try{return Module["instantiateWasm"](info,receiveInstance)}catch(e){err(`Module.instantiateWasm callback failed with error: ${e}`);readyPromiseReject(e)}}if(!wasmBinaryFile)wasmBinaryFile=findWasmBinary();instantiateAsync(wasmBinary,wasmBinaryFile,info,receiveInstantiationResult).catch(readyPromiseReject);return{}}var tempDouble;var tempI64;var ASM_CONSTS={1271635:$0=>{const canvas=Emval.toValue($0);const context=canvas.getContext("webgpu");return JsValStore.add(context.getCurrentTexture())},1271770:($0,$1,$2,$3,$4)=>{const drawable=Emval.toValue($0);const device=JsValStore.get($1);const texture=JsValStore.get($2);const width=$3;const height=$4;device.queue.copyExternalImageToTexture({source:drawable},{texture:texture},[width,height])},1272021:($0,$1,$2,$3)=>{const sourceExtTex=Emval.toValue($0);const device=JsValStore.get($1);const sampler=JsValStore.get($2);const bgLayout=JsValStore.get($3);const bindGroup=device.createBindGroup({layout:bgLayout,entries:[{binding:0,resource:sampler},{binding:1,resource:sourceExtTex}]});return JsValStore.add(bindGroup)},1272369:($0,$1)=>{const input=Emval.toValue($0);const output=Emval.toValue($1);const ctx=output.getContext("2d");ctx.drawImage(input,0,0,output.width,output.height)},1272534:($0,$1)=>{const inputArray=Emval.toValue($0);const output=Emval.toValue($1);const ctx=output.getContext("2d");const image_data=new ImageData(inputArray,output.width,output.height);ctx.putImageData(image_data,0,0)},1272758:($0,$1)=>{const input=Emval.toValue($0);const outputArray=Emval.toValue($1);const ctx=input.getContext("2d");const data=ctx.getImageData(0,0,input.width,input.height);outputArray.set(data.data)},1272962:()=>typeof HTMLCanvasElement!=="undefined",1273017:()=>!!Module["preinitializedWebGPUDevice"],1273068:()=>{specialHTMLTargets["#canvas"]=Module.canvas},1273119:()=>typeof wasmOffsetConverter!=="undefined"};function JsWrapImageConverter(){if(!Module._imageConverter){Module._imageConverter=(binaryPtr,binarySize,width,height,numChannels,makeDeepCopy,outputType)=>{const imageData=new outputType(makeDeepCopy?Module.HEAPU8.slice(binaryPtr,binaryPtr+binarySize).buffer:Module.HEAPU8.buffer,binaryPtr,width*height*numChannels);return{data:imageData,width:width,height:height}}}}function JsOnUint8ArrayImageListener(output_stream_name,binary_ptr,binary_size,width,height,num_channels,make_deep_copy,timestamp_ms){const image=Module._imageConverter(binary_ptr,binary_size,width,height,num_channels,make_deep_copy,Uint8Array);Module._wrapSimpleListenerOutput(output_stream_name,image,timestamp_ms)}function JsOnFloat32ArrayImageListener(output_stream_name,binary_ptr,binary_size,width,height,num_channels,make_deep_copy,timestamp_ms){const image=Module._imageConverter(binary_ptr,binary_size,width,height,num_channels,make_deep_copy,Float32Array);Module._wrapSimpleListenerOutput(output_stream_name,image,timestamp_ms)}function JsOnWebGLTextureListener(output_stream_name,name,width,height,timestamp_ms){Module._wrapSimpleListenerOutput(output_stream_name,{data:GL.textures[name],width:width,height:height},timestamp_ms)}function JsOnUint8ArrayImageVectorListener(output_stream_name,binary_ptr,binary_size,width,height,num_channels,make_deep_copy,timestamp_ms){const image=Module._imageConverter(binary_ptr,binary_size,width,height,num_channels,make_deep_copy,Uint8Array);Module._wrapSimpleListenerOutput(output_stream_name,image,false,timestamp_ms)}function JsOnFloat32ArrayImageVectorListener(output_stream_name,binary_ptr,binary_size,width,height,num_channels,make_deep_copy,timestamp_ms){const image=Module._imageConverter(binary_ptr,binary_size,width,height,num_channels,make_deep_copy,Float32Array);Module._wrapSimpleListenerOutput(output_stream_name,image,false,timestamp_ms)}function JsOnWebGLTextureVectorListener(output_stream_name,name,width,height,timestamp_ms){Module._wrapSimpleListenerOutput(output_stream_name,{data:GL.textures[name],width:width,height:height},false,timestamp_ms)}function JsOnEmptyPacketListener(output_stream_name,timestamp){Module._wrapEmptyPacketListenerOutput(output_stream_name,timestamp)}function JsOnVectorFinishedListener(output_stream_name,timestamp){Module._wrapSimpleListenerOutput(output_stream_name,undefined,true,timestamp)}function JsOnSimpleListenerBool(output_stream_name,out_data,timestamp){Module._wrapSimpleListenerOutput(output_stream_name,out_data,timestamp)}function JsOnVectorListenerBool(output_stream_name,out_data,timestamp){Module._wrapSimpleListenerOutput(output_stream_name,out_data,false,timestamp)}function JsOnSimpleListenerInt(output_stream_name,out_data,timestamp){Module._wrapSimpleListenerOutput(output_stream_name,out_data,timestamp)}function JsOnVectorListenerInt(output_stream_name,out_data,timestamp){Module._wrapSimpleListenerOutput(output_stream_name,out_data,false,timestamp)}function JsOnSimpleListenerUint(output_stream_name,out_data,timestamp){Module._wrapSimpleListenerOutput(output_stream_name,out_data,timestamp)}function JsOnVectorListenerUint(output_stream_name,out_data,timestamp){Module._wrapSimpleListenerOutput(output_stream_name,out_data,false,timestamp)}function JsOnSimpleListenerDouble(output_stream_name,out_data,timestamp){Module._wrapSimpleListenerOutput(output_stream_name,out_data,timestamp)}function JsOnVectorListenerDouble(output_stream_name,out_data,timestamp){Module._wrapSimpleListenerOutput(output_stream_name,out_data,false,timestamp)}function JsOnSimpleListenerFloat(output_stream_name,out_data,timestamp){Module._wrapSimpleListenerOutput(output_stream_name,out_data,timestamp)}function JsOnVectorListenerFloat(output_stream_name,out_data,timestamp){Module._wrapSimpleListenerOutput(output_stream_name,out_data,false,timestamp)}function JsOnSimpleListenerString(output_stream_name,out_data,timestamp){Module._wrapSimpleListenerOutput(output_stream_name,UTF8ToString(out_data),timestamp)}function JsOnVectorListenerString(output_stream_name,out_data,timestamp){Module._wrapSimpleListenerOutput(output_stream_name,UTF8ToString(out_data),false,timestamp)}function JsOnVectorListenerProto(output_stream_name,proto_ptr,proto_size,make_deep_copy,timestamp){const newProtoArray=make_deep_copy?Module.HEAPU8.slice(proto_ptr,proto_ptr+proto_size):new Uint8Array(Module.HEAPU8.buffer,proto_ptr,proto_size);Module._wrapSimpleListenerOutput(output_stream_name,newProtoArray,false,timestamp)}function JsWrapSimpleListeners(){if(!Module._wrapSimpleListenerOutput){Module._wrapSimpleListenerOutput=(outputStreamName,...args)=>{if(Module.simpleListeners){const streamName=UTF8ToString(outputStreamName);if(Module.simpleListeners[streamName]){Module.simpleListeners[streamName](...args)}}}}if(!Module._wrapEmptyPacketListenerOutput){Module._wrapEmptyPacketListenerOutput=(outputStreamName,timestamp)=>{if(Module.emptyPacketListeners){const streamName=UTF8ToString(outputStreamName);if(Module.emptyPacketListeners[streamName]){Module.emptyPacketListeners[streamName](timestamp)}}}}}function JsOnSimpleListenerBinaryArray(output_stream_name,binary_ptr,binary_size,make_deep_copy,timestamp){const newProtoArray=make_deep_copy?Module.HEAPU8.slice(binary_ptr,binary_ptr+binary_size):new Uint8Array(Module.HEAPU8.buffer,binary_ptr,binary_size);Module._wrapSimpleListenerOutput(output_stream_name,newProtoArray,timestamp)}function mediapipe_import_external_texture(device_handle,source_handle){const device=WebGPU.mgrDevice.get(device_handle);const source=Emval.toValue(source_handle);const externalTexture=device.importExternalTexture({source:source});return Emval.toHandle(externalTexture)}function mediapipe_create_utility_canvas2d(){let canvas;if(typeof HTMLCanvasElement!=="undefined"){canvas=document.createElement("canvas");canvas.style.display="none"}else{canvas=new OffscreenCanvas(0,0)}return Emval.toHandle(canvas)}function GetAdapterArchitecture(){const device=Module["preinitializedWebGPUDevice"];const architecture=device.adapterInfo?device.adapterInfo.architecture:"Unknown";return stringToNewUTF8(architecture)}function GetAdapterDescription(){const device=Module["preinitializedWebGPUDevice"];const description=device.adapterInfo?device.adapterInfo.description:"Unknown";return stringToNewUTF8(description)}function GetAdapterDeviceName(){const device=Module["preinitializedWebGPUDevice"];const deviceName=device.adapterInfo?device.adapterInfo.device:"Unknown";return stringToNewUTF8(deviceName)}function GetAdapterVendor(){const device=Module["preinitializedWebGPUDevice"];const vendor=device.adapterInfo?device.adapterInfo.vendor:"Unknown";return stringToNewUTF8(vendor)}function __asyncjs__mediapipe_map_buffer_jspi(buffer_handle,data){return Asyncify.handleAsync(async()=>{const buffer=WebGPU.mgrBuffer.get(buffer_handle);await buffer.mapAsync(GPUMapMode.READ);const mapped=buffer.getMappedRange();HEAPU8.set(new Uint8Array(mapped),data);buffer.unmap()})}function JsWrapErrorListener(code,message){if(Module.errorListener){const stringMessage=UTF8ToString(message);Module.errorListener(code,stringMessage)}}function UseBottomLeftGpuOrigin(){return Module&&Module.gpuOriginForWebTexturesIsBottomLeft}function custom_emscripten_dbgn(str,len){if(typeof dbg!=="undefined"){dbg(UTF8ToString(str,len))}else{if(typeof custom_dbg==="undefined"){function custom_dbg(text){console.warn.apply(console,arguments)}}custom_dbg(UTF8ToString(str,len))}}function HaveOffsetConverter(){return typeof wasmOffsetConverter!=="undefined"}var _emscripten_set_main_loop_timing=(mode,value)=>{Browser.mainLoop.timingMode=mode;Browser.mainLoop.timingValue=value;if(!Browser.mainLoop.func){return 1}if(!Browser.mainLoop.running){Browser.mainLoop.running=true}if(mode==0){Browser.mainLoop.scheduler=function Browser_mainLoop_scheduler_setTimeout(){var timeUntilNextTick=Math.max(0,Browser.mainLoop.tickStartTime+value-_emscripten_get_now())|0;setTimeout(Browser.mainLoop.runner,timeUntilNextTick)};Browser.mainLoop.method="timeout"}else if(mode==1){Browser.mainLoop.scheduler=function Browser_mainLoop_scheduler_rAF(){Browser.requestAnimationFrame(Browser.mainLoop.runner)};Browser.mainLoop.method="rAF"}else if(mode==2){if(typeof Browser.setImmediate=="undefined"){if(typeof setImmediate=="undefined"){var setImmediates=[];var emscriptenMainLoopMessageId="setimmediate";var Browser_setImmediate_messageHandler=event=>{if(event.data===emscriptenMainLoopMessageId||event.data.target===emscriptenMainLoopMessageId){event.stopPropagation();setImmediates.shift()()}};addEventListener("message",Browser_setImmediate_messageHandler,true);Browser.setImmediate=function Browser_emulated_setImmediate(func){setImmediates.push(func);if(ENVIRONMENT_IS_WORKER){Module["setImmediates"]??=[];Module["setImmediates"].push(func);postMessage({target:emscriptenMainLoopMessageId})}else postMessage(emscriptenMainLoopMessageId,"*")}}else{Browser.setImmediate=setImmediate}}Browser.mainLoop.scheduler=function Browser_mainLoop_scheduler_setImmediate(){Browser.setImmediate(Browser.mainLoop.runner)};Browser.mainLoop.method="immediate"}return 0};var _emscripten_get_now;_emscripten_get_now=()=>performance.now();var setMainLoop=(browserIterationFunc,fps,simulateInfiniteLoop,arg,noSetTiming)=>{Browser.mainLoop.func=browserIterationFunc;Browser.mainLoop.arg=arg;var thisMainLoopId=Browser.mainLoop.currentlyRunningMainloop;function checkIsRunning(){if(thisMainLoopId0){var start=Date.now();var blocker=Browser.mainLoop.queue.shift();blocker.func(blocker.arg);if(Browser.mainLoop.remainingBlockers){var remaining=Browser.mainLoop.remainingBlockers;var next=remaining%1==0?remaining-1:Math.floor(remaining);if(blocker.counted){Browser.mainLoop.remainingBlockers=next}else{next=next+.5;Browser.mainLoop.remainingBlockers=(8*remaining+next)/9}}Browser.mainLoop.updateStatus();if(!checkIsRunning())return;setTimeout(Browser.mainLoop.runner,0);return}if(!checkIsRunning())return;Browser.mainLoop.currentFrameNumber=Browser.mainLoop.currentFrameNumber+1|0;if(Browser.mainLoop.timingMode==1&&Browser.mainLoop.timingValue>1&&Browser.mainLoop.currentFrameNumber%Browser.mainLoop.timingValue!=0){Browser.mainLoop.scheduler();return}else if(Browser.mainLoop.timingMode==0){Browser.mainLoop.tickStartTime=_emscripten_get_now()}GL.newRenderingFrameStarted();Browser.mainLoop.runIter(browserIterationFunc);if(!checkIsRunning())return;if(typeof SDL=="object")SDL.audio?.queueNewAudioData?.();Browser.mainLoop.scheduler()};if(!noSetTiming){if(fps&&fps>0){_emscripten_set_main_loop_timing(0,1e3/fps)}else{_emscripten_set_main_loop_timing(1,1)}Browser.mainLoop.scheduler()}if(simulateInfiniteLoop){throw"unwind"}};var handleException=e=>{if(e instanceof ExitStatus||e=="unwind"){return EXITSTATUS}quit_(1,e)};function ExitStatus(status){this.name="ExitStatus";this.message=`Program terminated with exit(${status})`;this.status=status}var runtimeKeepaliveCounter=0;var keepRuntimeAlive=()=>noExitRuntime||runtimeKeepaliveCounter>0;var _proc_exit=code=>{EXITSTATUS=code;if(!keepRuntimeAlive()){Module["onExit"]?.(code);ABORT=true}quit_(code,new ExitStatus(code))};var exitJS=(status,implicit)=>{EXITSTATUS=status;_proc_exit(status)};var _exit=exitJS;var maybeExit=()=>{if(!keepRuntimeAlive()){try{_exit(EXITSTATUS)}catch(e){handleException(e)}}};var callUserCallback=func=>{if(ABORT){return}try{func();maybeExit()}catch(e){handleException(e)}};var safeSetTimeout=(func,timeout)=>setTimeout(()=>{callUserCallback(func)},timeout);var warnOnce=text=>{warnOnce.shown||={};if(!warnOnce.shown[text]){warnOnce.shown[text]=1;if(ENVIRONMENT_IS_NODE)text="warning: "+text;err(text)}};var preloadPlugins=Module["preloadPlugins"]||[];var Browser={mainLoop:{running:false,scheduler:null,method:"",currentlyRunningMainloop:0,func:null,arg:0,timingMode:0,timingValue:0,currentFrameNumber:0,queue:[],pause(){Browser.mainLoop.scheduler=null;Browser.mainLoop.currentlyRunningMainloop++},resume(){Browser.mainLoop.currentlyRunningMainloop++;var timingMode=Browser.mainLoop.timingMode;var timingValue=Browser.mainLoop.timingValue;var func=Browser.mainLoop.func;Browser.mainLoop.func=null;setMainLoop(func,0,false,Browser.mainLoop.arg,true);_emscripten_set_main_loop_timing(timingMode,timingValue);Browser.mainLoop.scheduler()},updateStatus(){if(Module["setStatus"]){var message=Module["statusMessage"]||"Please wait...";var remaining=Browser.mainLoop.remainingBlockers;var expected=Browser.mainLoop.expectedBlockers;if(remaining){if(remaining{var canvas=document.createElement("canvas");canvas.width=img.width;canvas.height=img.height;var ctx=canvas.getContext("2d");ctx.drawImage(img,0,0);preloadedImages[name]=canvas;URL.revokeObjectURL(url);onload?.(byteArray)};img.onerror=event=>{err(`Image ${url} could not be decoded`);onerror?.()};img.src=url};preloadPlugins.push(imagePlugin);var audioPlugin={};audioPlugin["canHandle"]=function audioPlugin_canHandle(name){return!Module.noAudioDecoding&&name.substr(-4)in{".ogg":1,".wav":1,".mp3":1}};audioPlugin["handle"]=function audioPlugin_handle(byteArray,name,onload,onerror){var done=false;function finish(audio){if(done)return;done=true;preloadedAudios[name]=audio;onload?.(byteArray)}var b=new Blob([byteArray],{type:Browser.getMimetype(name)});var url=URL.createObjectURL(b);var audio=new Audio;audio.addEventListener("canplaythrough",()=>finish(audio),false);audio.onerror=function audio_onerror(event){if(done)return;err(`warning: browser could not fully decode audio ${name}, trying slower base64 approach`);function encode64(data){var BASE="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";var PAD="=";var ret="";var leftchar=0;var leftbits=0;for(var i=0;i=6){var curr=leftchar>>leftbits-6&63;leftbits-=6;ret+=BASE[curr]}}if(leftbits==2){ret+=BASE[(leftchar&3)<<4];ret+=PAD+PAD}else if(leftbits==4){ret+=BASE[(leftchar&15)<<2];ret+=PAD}return ret}audio.src="data:audio/x-"+name.substr(-3)+";base64,"+encode64(byteArray);finish(audio)};audio.src=url;safeSetTimeout(()=>{finish(audio)},1e4)};preloadPlugins.push(audioPlugin);function pointerLockChange(){Browser.pointerLock=document["pointerLockElement"]===Module["canvas"]||document["mozPointerLockElement"]===Module["canvas"]||document["webkitPointerLockElement"]===Module["canvas"]||document["msPointerLockElement"]===Module["canvas"]}var canvas=Module["canvas"];if(canvas){canvas.requestPointerLock=canvas["requestPointerLock"]||canvas["mozRequestPointerLock"]||canvas["webkitRequestPointerLock"]||canvas["msRequestPointerLock"]||(()=>{});canvas.exitPointerLock=document["exitPointerLock"]||document["mozExitPointerLock"]||document["webkitExitPointerLock"]||document["msExitPointerLock"]||(()=>{});canvas.exitPointerLock=canvas.exitPointerLock.bind(document);document.addEventListener("pointerlockchange",pointerLockChange,false);document.addEventListener("mozpointerlockchange",pointerLockChange,false);document.addEventListener("webkitpointerlockchange",pointerLockChange,false);document.addEventListener("mspointerlockchange",pointerLockChange,false);if(Module["elementPointerLock"]){canvas.addEventListener("click",ev=>{if(!Browser.pointerLock&&Module["canvas"].requestPointerLock){Module["canvas"].requestPointerLock();ev.preventDefault()}},false)}}},createContext(canvas,useWebGL,setInModule,webGLContextAttributes){if(useWebGL&&Module.ctx&&canvas==Module.canvas)return Module.ctx;var ctx;var contextHandle;if(useWebGL){var contextAttributes={antialias:false,alpha:false,majorVersion:typeof WebGL2RenderingContext!="undefined"?2:1};if(webGLContextAttributes){for(var attribute in webGLContextAttributes){contextAttributes[attribute]=webGLContextAttributes[attribute]}}if(typeof GL!="undefined"){contextHandle=GL.createContext(canvas,contextAttributes);if(contextHandle){ctx=GL.getContext(contextHandle).GLctx}}}else{ctx=canvas.getContext("2d")}if(!ctx)return null;if(setInModule){Module.ctx=ctx;if(useWebGL)GL.makeContextCurrent(contextHandle);Module.useWebGL=useWebGL;Browser.moduleContextCreatedCallbacks.forEach(callback=>callback());Browser.init()}return ctx},destroyContext(canvas,useWebGL,setInModule){},fullscreenHandlersInstalled:false,lockPointer:undefined,resizeCanvas:undefined,requestFullscreen(lockPointer,resizeCanvas){Browser.lockPointer=lockPointer;Browser.resizeCanvas=resizeCanvas;if(typeof Browser.lockPointer=="undefined")Browser.lockPointer=true;if(typeof Browser.resizeCanvas=="undefined")Browser.resizeCanvas=false;var canvas=Module["canvas"];function fullscreenChange(){Browser.isFullscreen=false;var canvasContainer=canvas.parentNode;if((document["fullscreenElement"]||document["mozFullScreenElement"]||document["msFullscreenElement"]||document["webkitFullscreenElement"]||document["webkitCurrentFullScreenElement"])===canvasContainer){canvas.exitFullscreen=Browser.exitFullscreen;if(Browser.lockPointer)canvas.requestPointerLock();Browser.isFullscreen=true;if(Browser.resizeCanvas){Browser.setFullscreenCanvasSize()}else{Browser.updateCanvasDimensions(canvas)}}else{canvasContainer.parentNode.insertBefore(canvas,canvasContainer);canvasContainer.parentNode.removeChild(canvasContainer);if(Browser.resizeCanvas){Browser.setWindowedCanvasSize()}else{Browser.updateCanvasDimensions(canvas)}}Module["onFullScreen"]?.(Browser.isFullscreen);Module["onFullscreen"]?.(Browser.isFullscreen)}if(!Browser.fullscreenHandlersInstalled){Browser.fullscreenHandlersInstalled=true;document.addEventListener("fullscreenchange",fullscreenChange,false);document.addEventListener("mozfullscreenchange",fullscreenChange,false);document.addEventListener("webkitfullscreenchange",fullscreenChange,false);document.addEventListener("MSFullscreenChange",fullscreenChange,false)}var canvasContainer=document.createElement("div");canvas.parentNode.insertBefore(canvasContainer,canvas);canvasContainer.appendChild(canvas);canvasContainer.requestFullscreen=canvasContainer["requestFullscreen"]||canvasContainer["mozRequestFullScreen"]||canvasContainer["msRequestFullscreen"]||(canvasContainer["webkitRequestFullscreen"]?()=>canvasContainer["webkitRequestFullscreen"](Element["ALLOW_KEYBOARD_INPUT"]):null)||(canvasContainer["webkitRequestFullScreen"]?()=>canvasContainer["webkitRequestFullScreen"](Element["ALLOW_KEYBOARD_INPUT"]):null);canvasContainer.requestFullscreen()},exitFullscreen(){if(!Browser.isFullscreen){return false}var CFS=document["exitFullscreen"]||document["cancelFullScreen"]||document["mozCancelFullScreen"]||document["msExitFullscreen"]||document["webkitCancelFullScreen"]||(()=>{});CFS.apply(document,[]);return true},nextRAF:0,fakeRequestAnimationFrame(func){var now=Date.now();if(Browser.nextRAF===0){Browser.nextRAF=now+1e3/60}else{while(now+2>=Browser.nextRAF){Browser.nextRAF+=1e3/60}}var delay=Math.max(Browser.nextRAF-now,0);setTimeout(func,delay)},requestAnimationFrame(func){if(typeof requestAnimationFrame=="function"){requestAnimationFrame(func);return}var RAF=Browser.fakeRequestAnimationFrame;RAF(func)},safeSetTimeout(func,timeout){return safeSetTimeout(func,timeout)},safeRequestAnimationFrame(func){return Browser.requestAnimationFrame(()=>{callUserCallback(func)})},getMimetype(name){return{jpg:"image/jpeg",jpeg:"image/jpeg",png:"image/png",bmp:"image/bmp",ogg:"audio/ogg",wav:"audio/wav",mp3:"audio/mpeg"}[name.substr(name.lastIndexOf(".")+1)]},getUserMedia(func){window.getUserMedia||=navigator["getUserMedia"]||navigator["mozGetUserMedia"];window.getUserMedia(func)},getMovementX(event){return event["movementX"]||event["mozMovementX"]||event["webkitMovementX"]||0},getMovementY(event){return event["movementY"]||event["mozMovementY"]||event["webkitMovementY"]||0},getMouseWheelDelta(event){var delta=0;switch(event.type){case"DOMMouseScroll":delta=event.detail/3;break;case"mousewheel":delta=event.wheelDelta/120;break;case"wheel":delta=event.deltaY;switch(event.deltaMode){case 0:delta/=100;break;case 1:delta/=3;break;case 2:delta*=80;break;default:throw"unrecognized mouse wheel delta mode: "+event.deltaMode}break;default:throw"unrecognized mouse wheel event: "+event.type}return delta},mouseX:0,mouseY:0,mouseMovementX:0,mouseMovementY:0,touches:{},lastTouches:{},calculateMouseCoords(pageX,pageY){var rect=Module["canvas"].getBoundingClientRect();var cw=Module["canvas"].width;var ch=Module["canvas"].height;var scrollX=typeof window.scrollX!="undefined"?window.scrollX:window.pageXOffset;var scrollY=typeof window.scrollY!="undefined"?window.scrollY:window.pageYOffset;var adjustedX=pageX-(scrollX+rect.left);var adjustedY=pageY-(scrollY+rect.top);adjustedX=adjustedX*(cw/rect.width);adjustedY=adjustedY*(ch/rect.height);return{x:adjustedX,y:adjustedY}},setMouseCoords(pageX,pageY){const{x:x,y:y}=Browser.calculateMouseCoords(pageX,pageY);Browser.mouseMovementX=x-Browser.mouseX;Browser.mouseMovementY=y-Browser.mouseY;Browser.mouseX=x;Browser.mouseY=y},calculateMouseEvent(event){if(Browser.pointerLock){if(event.type!="mousemove"&&"mozMovementX"in event){Browser.mouseMovementX=Browser.mouseMovementY=0}else{Browser.mouseMovementX=Browser.getMovementX(event);Browser.mouseMovementY=Browser.getMovementY(event)}Browser.mouseX+=Browser.mouseMovementX;Browser.mouseY+=Browser.mouseMovementY}else{if(event.type==="touchstart"||event.type==="touchend"||event.type==="touchmove"){var touch=event.touch;if(touch===undefined){return}var coords=Browser.calculateMouseCoords(touch.pageX,touch.pageY);if(event.type==="touchstart"){Browser.lastTouches[touch.identifier]=coords;Browser.touches[touch.identifier]=coords}else if(event.type==="touchend"||event.type==="touchmove"){var last=Browser.touches[touch.identifier];last||=coords;Browser.lastTouches[touch.identifier]=last;Browser.touches[touch.identifier]=coords}return}Browser.setMouseCoords(event.pageX,event.pageY)}},resizeListeners:[],updateResizeListeners(){var canvas=Module["canvas"];Browser.resizeListeners.forEach(listener=>listener(canvas.width,canvas.height))},setCanvasSize(width,height,noUpdates){var canvas=Module["canvas"];Browser.updateCanvasDimensions(canvas,width,height);if(!noUpdates)Browser.updateResizeListeners()},windowedWidth:0,windowedHeight:0,setFullscreenCanvasSize(){if(typeof SDL!="undefined"){var flags=HEAPU32[SDL.screen>>2];flags=flags|8388608;HEAP32[SDL.screen>>2]=flags}Browser.updateCanvasDimensions(Module["canvas"]);Browser.updateResizeListeners()},setWindowedCanvasSize(){if(typeof SDL!="undefined"){var flags=HEAPU32[SDL.screen>>2];flags=flags&~8388608;HEAP32[SDL.screen>>2]=flags}Browser.updateCanvasDimensions(Module["canvas"]);Browser.updateResizeListeners()},updateCanvasDimensions(canvas,wNative,hNative){if(wNative&&hNative){canvas.widthNative=wNative;canvas.heightNative=hNative}else{wNative=canvas.widthNative;hNative=canvas.heightNative}var w=wNative;var h=hNative;if(Module["forcedAspectRatio"]&&Module["forcedAspectRatio"]>0){if(w/h{while(callbacks.length>0){callbacks.shift()(Module)}};var noExitRuntime=Module["noExitRuntime"]||true;var stackRestore=val=>__emscripten_stack_restore(val);var stackSave=()=>_emscripten_stack_get_current();class ExceptionInfo{constructor(excPtr){this.excPtr=excPtr;this.ptr=excPtr-24}set_type(type){HEAPU32[this.ptr+4>>2]=type}get_type(){return HEAPU32[this.ptr+4>>2]}set_destructor(destructor){HEAPU32[this.ptr+8>>2]=destructor}get_destructor(){return HEAPU32[this.ptr+8>>2]}set_caught(caught){caught=caught?1:0;HEAP8[this.ptr+12]=caught}get_caught(){return HEAP8[this.ptr+12]!=0}set_rethrown(rethrown){rethrown=rethrown?1:0;HEAP8[this.ptr+13]=rethrown}get_rethrown(){return HEAP8[this.ptr+13]!=0}init(type,destructor){this.set_adjusted_ptr(0);this.set_type(type);this.set_destructor(destructor)}set_adjusted_ptr(adjustedPtr){HEAPU32[this.ptr+16>>2]=adjustedPtr}get_adjusted_ptr(){return HEAPU32[this.ptr+16>>2]}get_exception_ptr(){var isPointer=___cxa_is_pointer_type(this.get_type());if(isPointer){return HEAPU32[this.excPtr>>2]}var adjusted=this.get_adjusted_ptr();if(adjusted!==0)return adjusted;return this.excPtr}}var exceptionLast=0;var uncaughtExceptionCount=0;var ___cxa_throw=(ptr,type,destructor)=>{var info=new ExceptionInfo(ptr);info.init(type,destructor);exceptionLast=ptr;uncaughtExceptionCount++;throw exceptionLast};var PATH={isAbs:path=>path.charAt(0)==="/",splitPath:filename=>{var splitPathRe=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return splitPathRe.exec(filename).slice(1)},normalizeArray:(parts,allowAboveRoot)=>{var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last==="."){parts.splice(i,1)}else if(last===".."){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up;up--){parts.unshift("..")}}return parts},normalize:path=>{var isAbsolute=PATH.isAbs(path),trailingSlash=path.substr(-1)==="/";path=PATH.normalizeArray(path.split("/").filter(p=>!!p),!isAbsolute).join("/");if(!path&&!isAbsolute){path="."}if(path&&trailingSlash){path+="/"}return(isAbsolute?"/":"")+path},dirname:path=>{var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return"."}if(dir){dir=dir.substr(0,dir.length-1)}return root+dir},basename:path=>{if(path==="/")return"/";path=PATH.normalize(path);path=path.replace(/\/$/,"");var lastSlash=path.lastIndexOf("/");if(lastSlash===-1)return path;return path.substr(lastSlash+1)},join:(...paths)=>PATH.normalize(paths.join("/")),join2:(l,r)=>PATH.normalize(l+"/"+r)};var initRandomFill=()=>{if(typeof crypto=="object"&&typeof crypto["getRandomValues"]=="function"){return view=>crypto.getRandomValues(view)}else if(ENVIRONMENT_IS_NODE){try{var crypto_module=require("crypto");var randomFillSync=crypto_module["randomFillSync"];if(randomFillSync){return view=>crypto_module["randomFillSync"](view)}var randomBytes=crypto_module["randomBytes"];return view=>(view.set(randomBytes(view.byteLength)),view)}catch(e){}}abort("initRandomDevice")};var randomFill=view=>(randomFill=initRandomFill())(view);var PATH_FS={resolve:(...args)=>{var resolvedPath="",resolvedAbsolute=false;for(var i=args.length-1;i>=-1&&!resolvedAbsolute;i--){var path=i>=0?args[i]:FS.cwd();if(typeof path!="string"){throw new TypeError("Arguments to path.resolve must be strings")}else if(!path){return""}resolvedPath=path+"/"+resolvedPath;resolvedAbsolute=PATH.isAbs(path)}resolvedPath=PATH.normalizeArray(resolvedPath.split("/").filter(p=>!!p),!resolvedAbsolute).join("/");return(resolvedAbsolute?"/":"")+resolvedPath||"."},relative:(from,to)=>{from=PATH_FS.resolve(from).substr(1);to=PATH_FS.resolve(to).substr(1);function trim(arr){var start=0;for(;start=0;end--){if(arr[end]!=="")break}if(start>end)return[];return arr.slice(start,end-start+1)}var fromParts=trim(from.split("/"));var toParts=trim(to.split("/"));var length=Math.min(fromParts.length,toParts.length);var samePartsLength=length;for(var i=0;i{var endIdx=idx+maxBytesToRead;var endPtr=idx;while(heapOrArray[endPtr]&&!(endPtr>=endIdx))++endPtr;return UTF8Decoder.decode(heapOrArray.buffer?heapOrArray.subarray(idx,endPtr):new Uint8Array(heapOrArray.slice(idx,endPtr)))};var FS_stdin_getChar_buffer=[];var lengthBytesUTF8=str=>{var len=0;for(var i=0;i=55296&&c<=57343){len+=4;++i}else{len+=3}}return len};var stringToUTF8Array=(str,heap,outIdx,maxBytesToWrite)=>{if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx};function intArrayFromString(stringy,dontAddNull,length){var len=length>0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array}var FS_stdin_getChar=()=>{if(!FS_stdin_getChar_buffer.length){var result=null;if(ENVIRONMENT_IS_NODE){var BUFSIZE=256;var buf=Buffer.alloc(BUFSIZE);var bytesRead=0;var fd=process.stdin.fd;try{bytesRead=fs.readSync(fd,buf,0,BUFSIZE)}catch(e){if(e.toString().includes("EOF"))bytesRead=0;else throw e}if(bytesRead>0){result=buf.slice(0,bytesRead).toString("utf-8")}}else if(typeof window!="undefined"&&typeof window.prompt=="function"){result=window.prompt("Input: ");if(result!==null){result+="\n"}}else{}if(!result){return null}FS_stdin_getChar_buffer=intArrayFromString(result,true)}return FS_stdin_getChar_buffer.shift()};var TTY={ttys:[],init(){},shutdown(){},register(dev,ops){TTY.ttys[dev]={input:[],output:[],ops:ops};FS.registerDevice(dev,TTY.stream_ops)},stream_ops:{open(stream){var tty=TTY.ttys[stream.node.rdev];if(!tty){throw new FS.ErrnoError(43)}stream.tty=tty;stream.seekable=false},close(stream){stream.tty.ops.fsync(stream.tty)},fsync(stream){stream.tty.ops.fsync(stream.tty)},read(stream,buffer,offset,length,pos){if(!stream.tty||!stream.tty.ops.get_char){throw new FS.ErrnoError(60)}var bytesRead=0;for(var i=0;i0){out(UTF8ArrayToString(tty.output,0));tty.output=[]}},ioctl_tcgets(tty){return{c_iflag:25856,c_oflag:5,c_cflag:191,c_lflag:35387,c_cc:[3,28,127,21,4,0,1,0,17,19,26,0,18,15,23,22,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]}},ioctl_tcsets(tty,optional_actions,data){return 0},ioctl_tiocgwinsz(tty){return[24,80]}},default_tty1_ops:{put_char(tty,val){if(val===null||val===10){err(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},fsync(tty){if(tty.output&&tty.output.length>0){err(UTF8ArrayToString(tty.output,0));tty.output=[]}}}};var zeroMemory=(address,size)=>{HEAPU8.fill(0,address,address+size);return address};var alignMemory=(size,alignment)=>Math.ceil(size/alignment)*alignment;var mmapAlloc=size=>{size=alignMemory(size,65536);var ptr=_emscripten_builtin_memalign(65536,size);if(!ptr)return 0;return zeroMemory(ptr,size)};var MEMFS={ops_table:null,mount(mount){return MEMFS.createNode(null,"/",16384|511,0)},createNode(parent,name,mode,dev){if(FS.isBlkdev(mode)||FS.isFIFO(mode)){throw new FS.ErrnoError(63)}MEMFS.ops_table||={dir:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,lookup:MEMFS.node_ops.lookup,mknod:MEMFS.node_ops.mknod,rename:MEMFS.node_ops.rename,unlink:MEMFS.node_ops.unlink,rmdir:MEMFS.node_ops.rmdir,readdir:MEMFS.node_ops.readdir,symlink:MEMFS.node_ops.symlink},stream:{llseek:MEMFS.stream_ops.llseek}},file:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:{llseek:MEMFS.stream_ops.llseek,read:MEMFS.stream_ops.read,write:MEMFS.stream_ops.write,allocate:MEMFS.stream_ops.allocate,mmap:MEMFS.stream_ops.mmap,msync:MEMFS.stream_ops.msync}},link:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,readlink:MEMFS.node_ops.readlink},stream:{}},chrdev:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:FS.chrdev_stream_ops}};var node=FS.createNode(parent,name,mode,dev);if(FS.isDir(node.mode)){node.node_ops=MEMFS.ops_table.dir.node;node.stream_ops=MEMFS.ops_table.dir.stream;node.contents={}}else if(FS.isFile(node.mode)){node.node_ops=MEMFS.ops_table.file.node;node.stream_ops=MEMFS.ops_table.file.stream;node.usedBytes=0;node.contents=null}else if(FS.isLink(node.mode)){node.node_ops=MEMFS.ops_table.link.node;node.stream_ops=MEMFS.ops_table.link.stream}else if(FS.isChrdev(node.mode)){node.node_ops=MEMFS.ops_table.chrdev.node;node.stream_ops=MEMFS.ops_table.chrdev.stream}node.timestamp=Date.now();if(parent){parent.contents[name]=node;parent.timestamp=node.timestamp}return node},getFileDataAsTypedArray(node){if(!node.contents)return new Uint8Array(0);if(node.contents.subarray)return node.contents.subarray(0,node.usedBytes);return new Uint8Array(node.contents)},expandFileStorage(node,newCapacity){var prevCapacity=node.contents?node.contents.length:0;if(prevCapacity>=newCapacity)return;var CAPACITY_DOUBLING_MAX=1024*1024;newCapacity=Math.max(newCapacity,prevCapacity*(prevCapacity>>0);if(prevCapacity!=0)newCapacity=Math.max(newCapacity,256);var oldContents=node.contents;node.contents=new Uint8Array(newCapacity);if(node.usedBytes>0)node.contents.set(oldContents.subarray(0,node.usedBytes),0)},resizeFileStorage(node,newSize){if(node.usedBytes==newSize)return;if(newSize==0){node.contents=null;node.usedBytes=0}else{var oldContents=node.contents;node.contents=new Uint8Array(newSize);if(oldContents){node.contents.set(oldContents.subarray(0,Math.min(newSize,node.usedBytes)))}node.usedBytes=newSize}},node_ops:{getattr(node){var attr={};attr.dev=FS.isChrdev(node.mode)?node.id:1;attr.ino=node.id;attr.mode=node.mode;attr.nlink=1;attr.uid=0;attr.gid=0;attr.rdev=node.rdev;if(FS.isDir(node.mode)){attr.size=4096}else if(FS.isFile(node.mode)){attr.size=node.usedBytes}else if(FS.isLink(node.mode)){attr.size=node.link.length}else{attr.size=0}attr.atime=new Date(node.timestamp);attr.mtime=new Date(node.timestamp);attr.ctime=new Date(node.timestamp);attr.blksize=4096;attr.blocks=Math.ceil(attr.size/attr.blksize);return attr},setattr(node,attr){if(attr.mode!==undefined){node.mode=attr.mode}if(attr.timestamp!==undefined){node.timestamp=attr.timestamp}if(attr.size!==undefined){MEMFS.resizeFileStorage(node,attr.size)}},lookup(parent,name){throw FS.genericErrors[44]},mknod(parent,name,mode,dev){return MEMFS.createNode(parent,name,mode,dev)},rename(old_node,new_dir,new_name){if(FS.isDir(old_node.mode)){var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(new_node){for(var i in new_node.contents){throw new FS.ErrnoError(55)}}}delete old_node.parent.contents[old_node.name];old_node.parent.timestamp=Date.now();old_node.name=new_name;new_dir.contents[new_name]=old_node;new_dir.timestamp=old_node.parent.timestamp},unlink(parent,name){delete parent.contents[name];parent.timestamp=Date.now()},rmdir(parent,name){var node=FS.lookupNode(parent,name);for(var i in node.contents){throw new FS.ErrnoError(55)}delete parent.contents[name];parent.timestamp=Date.now()},readdir(node){var entries=[".",".."];for(var key of Object.keys(node.contents)){entries.push(key)}return entries},symlink(parent,newname,oldpath){var node=MEMFS.createNode(parent,newname,511|40960,0);node.link=oldpath;return node},readlink(node){if(!FS.isLink(node.mode)){throw new FS.ErrnoError(28)}return node.link}},stream_ops:{read(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=stream.node.usedBytes)return 0;var size=Math.min(stream.node.usedBytes-position,length);if(size>8&&contents.subarray){buffer.set(contents.subarray(position,position+size),offset)}else{for(var i=0;i0||position+length{var dep=!noRunDep?getUniqueRunDependency(`al ${url}`):"";readAsync(url).then(arrayBuffer=>{onload(new Uint8Array(arrayBuffer));if(dep)removeRunDependency(dep)},err=>{if(onerror){onerror()}else{throw`Loading data file "${url}" failed.`}});if(dep)addRunDependency(dep)};var FS_createDataFile=(parent,name,fileData,canRead,canWrite,canOwn)=>{FS.createDataFile(parent,name,fileData,canRead,canWrite,canOwn)};var FS_handledByPreloadPlugin=(byteArray,fullname,finish,onerror)=>{if(typeof Browser!="undefined")Browser.init();var handled=false;preloadPlugins.forEach(plugin=>{if(handled)return;if(plugin["canHandle"](fullname)){plugin["handle"](byteArray,fullname,finish,onerror);handled=true}});return handled};var FS_createPreloadedFile=(parent,name,url,canRead,canWrite,onload,onerror,dontCreateFile,canOwn,preFinish)=>{var fullname=name?PATH_FS.resolve(PATH.join2(parent,name)):parent;var dep=getUniqueRunDependency(`cp ${fullname}`);function processData(byteArray){function finish(byteArray){preFinish?.();if(!dontCreateFile){FS_createDataFile(parent,name,byteArray,canRead,canWrite,canOwn)}onload?.();removeRunDependency(dep)}if(FS_handledByPreloadPlugin(byteArray,fullname,finish,()=>{onerror?.();removeRunDependency(dep)})){return}finish(byteArray)}addRunDependency(dep);if(typeof url=="string"){asyncLoad(url,processData,onerror)}else{processData(url)}};var FS_modeStringToFlags=str=>{var flagModes={r:0,"r+":2,w:512|64|1,"w+":512|64|2,a:1024|64|1,"a+":1024|64|2};var flags=flagModes[str];if(typeof flags=="undefined"){throw new Error(`Unknown file open mode: ${str}`)}return flags};var FS_getMode=(canRead,canWrite)=>{var mode=0;if(canRead)mode|=292|73;if(canWrite)mode|=146;return mode};var FS={root:null,mounts:[],devices:{},streams:[],nextInode:1,nameTable:null,currentPath:"/",initialized:false,ignorePermissions:true,ErrnoError:class{constructor(errno){this.name="ErrnoError";this.errno=errno}},genericErrors:{},filesystems:null,syncFSRequests:0,FSStream:class{constructor(){this.shared={}}get object(){return this.node}set object(val){this.node=val}get isRead(){return(this.flags&2097155)!==1}get isWrite(){return(this.flags&2097155)!==0}get isAppend(){return this.flags&1024}get flags(){return this.shared.flags}set flags(val){this.shared.flags=val}get position(){return this.shared.position}set position(val){this.shared.position=val}},FSNode:class{constructor(parent,name,mode,rdev){if(!parent){parent=this}this.parent=parent;this.mount=parent.mount;this.mounted=null;this.id=FS.nextInode++;this.name=name;this.mode=mode;this.node_ops={};this.stream_ops={};this.rdev=rdev;this.readMode=292|73;this.writeMode=146}get read(){return(this.mode&this.readMode)===this.readMode}set read(val){val?this.mode|=this.readMode:this.mode&=~this.readMode}get write(){return(this.mode&this.writeMode)===this.writeMode}set write(val){val?this.mode|=this.writeMode:this.mode&=~this.writeMode}get isFolder(){return FS.isDir(this.mode)}get isDevice(){return FS.isChrdev(this.mode)}},lookupPath(path,opts={}){path=PATH_FS.resolve(path);if(!path)return{path:"",node:null};var defaults={follow_mount:true,recurse_count:0};opts=Object.assign(defaults,opts);if(opts.recurse_count>8){throw new FS.ErrnoError(32)}var parts=path.split("/").filter(p=>!!p);var current=FS.root;var current_path="/";for(var i=0;i40){throw new FS.ErrnoError(32)}}}}return{path:current_path,node:current}},getPath(node){var path;while(true){if(FS.isRoot(node)){var mount=node.mount.mountpoint;if(!path)return mount;return mount[mount.length-1]!=="/"?`${mount}/${path}`:mount+path}path=path?`${node.name}/${path}`:node.name;node=node.parent}},hashName(parentid,name){var hash=0;for(var i=0;i>>0)%FS.nameTable.length},hashAddNode(node){var hash=FS.hashName(node.parent.id,node.name);node.name_next=FS.nameTable[hash];FS.nameTable[hash]=node},hashRemoveNode(node){var hash=FS.hashName(node.parent.id,node.name);if(FS.nameTable[hash]===node){FS.nameTable[hash]=node.name_next}else{var current=FS.nameTable[hash];while(current){if(current.name_next===node){current.name_next=node.name_next;break}current=current.name_next}}},lookupNode(parent,name){var errCode=FS.mayLookup(parent);if(errCode){throw new FS.ErrnoError(errCode)}var hash=FS.hashName(parent.id,name);for(var node=FS.nameTable[hash];node;node=node.name_next){var nodeName=node.name;if(node.parent.id===parent.id&&nodeName===name){return node}}return FS.lookup(parent,name)},createNode(parent,name,mode,rdev){var node=new FS.FSNode(parent,name,mode,rdev);FS.hashAddNode(node);return node},destroyNode(node){FS.hashRemoveNode(node)},isRoot(node){return node===node.parent},isMountpoint(node){return!!node.mounted},isFile(mode){return(mode&61440)===32768},isDir(mode){return(mode&61440)===16384},isLink(mode){return(mode&61440)===40960},isChrdev(mode){return(mode&61440)===8192},isBlkdev(mode){return(mode&61440)===24576},isFIFO(mode){return(mode&61440)===4096},isSocket(mode){return(mode&49152)===49152},flagsToPermissionString(flag){var perms=["r","w","rw"][flag&3];if(flag&512){perms+="w"}return perms},nodePermissions(node,perms){if(FS.ignorePermissions){return 0}if(perms.includes("r")&&!(node.mode&292)){return 2}else if(perms.includes("w")&&!(node.mode&146)){return 2}else if(perms.includes("x")&&!(node.mode&73)){return 2}return 0},mayLookup(dir){if(!FS.isDir(dir.mode))return 54;var errCode=FS.nodePermissions(dir,"x");if(errCode)return errCode;if(!dir.node_ops.lookup)return 2;return 0},mayCreate(dir,name){try{var node=FS.lookupNode(dir,name);return 20}catch(e){}return FS.nodePermissions(dir,"wx")},mayDelete(dir,name,isdir){var node;try{node=FS.lookupNode(dir,name)}catch(e){return e.errno}var errCode=FS.nodePermissions(dir,"wx");if(errCode){return errCode}if(isdir){if(!FS.isDir(node.mode)){return 54}if(FS.isRoot(node)||FS.getPath(node)===FS.cwd()){return 10}}else{if(FS.isDir(node.mode)){return 31}}return 0},mayOpen(node,flags){if(!node){return 44}if(FS.isLink(node.mode)){return 32}else if(FS.isDir(node.mode)){if(FS.flagsToPermissionString(flags)!=="r"||flags&512){return 31}}return FS.nodePermissions(node,FS.flagsToPermissionString(flags))},MAX_OPEN_FDS:4096,nextfd(){for(var fd=0;fd<=FS.MAX_OPEN_FDS;fd++){if(!FS.streams[fd]){return fd}}throw new FS.ErrnoError(33)},getStreamChecked(fd){var stream=FS.getStream(fd);if(!stream){throw new FS.ErrnoError(8)}return stream},getStream:fd=>FS.streams[fd],createStream(stream,fd=-1){stream=Object.assign(new FS.FSStream,stream);if(fd==-1){fd=FS.nextfd()}stream.fd=fd;FS.streams[fd]=stream;return stream},closeStream(fd){FS.streams[fd]=null},dupStream(origStream,fd=-1){var stream=FS.createStream(origStream,fd);stream.stream_ops?.dup?.(stream);return stream},chrdev_stream_ops:{open(stream){var device=FS.getDevice(stream.node.rdev);stream.stream_ops=device.stream_ops;stream.stream_ops.open?.(stream)},llseek(){throw new FS.ErrnoError(70)}},major:dev=>dev>>8,minor:dev=>dev&255,makedev:(ma,mi)=>ma<<8|mi,registerDevice(dev,ops){FS.devices[dev]={stream_ops:ops}},getDevice:dev=>FS.devices[dev],getMounts(mount){var mounts=[];var check=[mount];while(check.length){var m=check.pop();mounts.push(m);check.push(...m.mounts)}return mounts},syncfs(populate,callback){if(typeof populate=="function"){callback=populate;populate=false}FS.syncFSRequests++;if(FS.syncFSRequests>1){err(`warning: ${FS.syncFSRequests} FS.syncfs operations in flight at once, probably just doing extra work`)}var mounts=FS.getMounts(FS.root.mount);var completed=0;function doCallback(errCode){FS.syncFSRequests--;return callback(errCode)}function done(errCode){if(errCode){if(!done.errored){done.errored=true;return doCallback(errCode)}return}if(++completed>=mounts.length){doCallback(null)}}mounts.forEach(mount=>{if(!mount.type.syncfs){return done(null)}mount.type.syncfs(mount,populate,done)})},mount(type,opts,mountpoint){var root=mountpoint==="/";var pseudo=!mountpoint;var node;if(root&&FS.root){throw new FS.ErrnoError(10)}else if(!root&&!pseudo){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});mountpoint=lookup.path;node=lookup.node;if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}if(!FS.isDir(node.mode)){throw new FS.ErrnoError(54)}}var mount={type:type,opts:opts,mountpoint:mountpoint,mounts:[]};var mountRoot=type.mount(mount);mountRoot.mount=mount;mount.root=mountRoot;if(root){FS.root=mountRoot}else if(node){node.mounted=mount;if(node.mount){node.mount.mounts.push(mount)}}return mountRoot},unmount(mountpoint){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});if(!FS.isMountpoint(lookup.node)){throw new FS.ErrnoError(28)}var node=lookup.node;var mount=node.mounted;var mounts=FS.getMounts(mount);Object.keys(FS.nameTable).forEach(hash=>{var current=FS.nameTable[hash];while(current){var next=current.name_next;if(mounts.includes(current.mount)){FS.destroyNode(current)}current=next}});node.mounted=null;var idx=node.mount.mounts.indexOf(mount);node.mount.mounts.splice(idx,1)},lookup(parent,name){return parent.node_ops.lookup(parent,name)},mknod(path,mode,dev){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);if(!name||name==="."||name===".."){throw new FS.ErrnoError(28)}var errCode=FS.mayCreate(parent,name);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.mknod){throw new FS.ErrnoError(63)}return parent.node_ops.mknod(parent,name,mode,dev)},create(path,mode){mode=mode!==undefined?mode:438;mode&=4095;mode|=32768;return FS.mknod(path,mode,0)},mkdir(path,mode){mode=mode!==undefined?mode:511;mode&=511|512;mode|=16384;return FS.mknod(path,mode,0)},mkdirTree(path,mode){var dirs=path.split("/");var d="";for(var i=0;iFS.currentPath,chdir(path){var lookup=FS.lookupPath(path,{follow:true});if(lookup.node===null){throw new FS.ErrnoError(44)}if(!FS.isDir(lookup.node.mode)){throw new FS.ErrnoError(54)}var errCode=FS.nodePermissions(lookup.node,"x");if(errCode){throw new FS.ErrnoError(errCode)}FS.currentPath=lookup.path},createDefaultDirectories(){FS.mkdir("/tmp");FS.mkdir("/home");FS.mkdir("/home/web_user")},createDefaultDevices(){FS.mkdir("/dev");FS.registerDevice(FS.makedev(1,3),{read:()=>0,write:(stream,buffer,offset,length,pos)=>length});FS.mkdev("/dev/null",FS.makedev(1,3));TTY.register(FS.makedev(5,0),TTY.default_tty_ops);TTY.register(FS.makedev(6,0),TTY.default_tty1_ops);FS.mkdev("/dev/tty",FS.makedev(5,0));FS.mkdev("/dev/tty1",FS.makedev(6,0));var randomBuffer=new Uint8Array(1024),randomLeft=0;var randomByte=()=>{if(randomLeft===0){randomLeft=randomFill(randomBuffer).byteLength}return randomBuffer[--randomLeft]};FS.createDevice("/dev","random",randomByte);FS.createDevice("/dev","urandom",randomByte);FS.mkdir("/dev/shm");FS.mkdir("/dev/shm/tmp")},createSpecialDirectories(){FS.mkdir("/proc");var proc_self=FS.mkdir("/proc/self");FS.mkdir("/proc/self/fd");FS.mount({mount(){var node=FS.createNode(proc_self,"fd",16384|511,73);node.node_ops={lookup(parent,name){var fd=+name;var stream=FS.getStreamChecked(fd);var ret={parent:null,mount:{mountpoint:"fake"},node_ops:{readlink:()=>stream.path}};ret.parent=ret;return ret}};return node}},{},"/proc/self/fd")},createStandardStreams(){if(Module["stdin"]){FS.createDevice("/dev","stdin",Module["stdin"])}else{FS.symlink("/dev/tty","/dev/stdin")}if(Module["stdout"]){FS.createDevice("/dev","stdout",null,Module["stdout"])}else{FS.symlink("/dev/tty","/dev/stdout")}if(Module["stderr"]){FS.createDevice("/dev","stderr",null,Module["stderr"])}else{FS.symlink("/dev/tty1","/dev/stderr")}var stdin=FS.open("/dev/stdin",0);var stdout=FS.open("/dev/stdout",1);var stderr=FS.open("/dev/stderr",1)},staticInit(){[44].forEach(code=>{FS.genericErrors[code]=new FS.ErrnoError(code);FS.genericErrors[code].stack=""});FS.nameTable=new Array(4096);FS.mount(MEMFS,{},"/");FS.createDefaultDirectories();FS.createDefaultDevices();FS.createSpecialDirectories();FS.filesystems={MEMFS:MEMFS}},init(input,output,error){FS.init.initialized=true;Module["stdin"]=input||Module["stdin"];Module["stdout"]=output||Module["stdout"];Module["stderr"]=error||Module["stderr"];FS.createStandardStreams()},quit(){FS.init.initialized=false;for(var i=0;ithis.length-1||idx<0){return undefined}var chunkOffset=idx%this.chunkSize;var chunkNum=idx/this.chunkSize|0;return this.getter(chunkNum)[chunkOffset]}setDataGetter(getter){this.getter=getter}cacheLength(){var xhr=new XMLHttpRequest;xhr.open("HEAD",url,false);xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);var datalength=Number(xhr.getResponseHeader("Content-length"));var header;var hasByteServing=(header=xhr.getResponseHeader("Accept-Ranges"))&&header==="bytes";var usesGzip=(header=xhr.getResponseHeader("Content-Encoding"))&&header==="gzip";var chunkSize=1024*1024;if(!hasByteServing)chunkSize=datalength;var doXHR=(from,to)=>{if(from>to)throw new Error("invalid range ("+from+", "+to+") or no bytes requested!");if(to>datalength-1)throw new Error("only "+datalength+" bytes available! programmer error!");var xhr=new XMLHttpRequest;xhr.open("GET",url,false);if(datalength!==chunkSize)xhr.setRequestHeader("Range","bytes="+from+"-"+to);xhr.responseType="arraybuffer";if(xhr.overrideMimeType){xhr.overrideMimeType("text/plain; charset=x-user-defined")}xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);if(xhr.response!==undefined){return new Uint8Array(xhr.response||[])}return intArrayFromString(xhr.responseText||"",true)};var lazyArray=this;lazyArray.setDataGetter(chunkNum=>{var start=chunkNum*chunkSize;var end=(chunkNum+1)*chunkSize-1;end=Math.min(end,datalength-1);if(typeof lazyArray.chunks[chunkNum]=="undefined"){lazyArray.chunks[chunkNum]=doXHR(start,end)}if(typeof lazyArray.chunks[chunkNum]=="undefined")throw new Error("doXHR failed!");return lazyArray.chunks[chunkNum]});if(usesGzip||!datalength){chunkSize=datalength=1;datalength=this.getter(0).length;chunkSize=datalength;out("LazyFiles on gzip forces download of the whole file when length is accessed")}this._length=datalength;this._chunkSize=chunkSize;this.lengthKnown=true}get length(){if(!this.lengthKnown){this.cacheLength()}return this._length}get chunkSize(){if(!this.lengthKnown){this.cacheLength()}return this._chunkSize}}if(typeof XMLHttpRequest!="undefined"){if(!ENVIRONMENT_IS_WORKER)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var lazyArray=new LazyUint8Array;var properties={isDevice:false,contents:lazyArray}}else{var properties={isDevice:false,url:url}}var node=FS.createFile(parent,name,properties,canRead,canWrite);if(properties.contents){node.contents=properties.contents}else if(properties.url){node.contents=null;node.url=properties.url}Object.defineProperties(node,{usedBytes:{get:function(){return this.contents.length}}});var stream_ops={};var keys=Object.keys(node.stream_ops);keys.forEach(key=>{var fn=node.stream_ops[key];stream_ops[key]=(...args)=>{FS.forceLoadFile(node);return fn(...args)}});function writeChunks(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=contents.length)return 0;var size=Math.min(contents.length-position,length);if(contents.slice){for(var i=0;i{FS.forceLoadFile(node);return writeChunks(stream,buffer,offset,length,position)};stream_ops.mmap=(stream,length,position,prot,flags)=>{FS.forceLoadFile(node);var ptr=mmapAlloc(length);if(!ptr){throw new FS.ErrnoError(48)}writeChunks(stream,HEAP8,ptr,length,position);return{ptr:ptr,allocated:true}};node.stream_ops=stream_ops;return node}};var UTF8ToString=(ptr,maxBytesToRead)=>{if(!ptr)return"";var maxPtr=ptr+maxBytesToRead;for(var end=ptr;!(end>=maxPtr)&&HEAPU8[end];)++end;return UTF8Decoder.decode(HEAPU8.subarray(ptr,end))};var SYSCALLS={DEFAULT_POLLMASK:5,calculateAt(dirfd,path,allowEmpty){if(PATH.isAbs(path)){return path}var dir;if(dirfd===-100){dir=FS.cwd()}else{var dirstream=SYSCALLS.getStreamFromFD(dirfd);dir=dirstream.path}if(path.length==0){if(!allowEmpty){throw new FS.ErrnoError(44)}return dir}return PATH.join2(dir,path)},doStat(func,path,buf){var stat=func(path);HEAP32[buf>>2]=stat.dev;HEAP32[buf+4>>2]=stat.mode;HEAPU32[buf+8>>2]=stat.nlink;HEAP32[buf+12>>2]=stat.uid;HEAP32[buf+16>>2]=stat.gid;HEAP32[buf+20>>2]=stat.rdev;tempI64=[stat.size>>>0,(tempDouble=stat.size,+Math.abs(tempDouble)>=1?tempDouble>0?+Math.floor(tempDouble/4294967296)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+24>>2]=tempI64[0],HEAP32[buf+28>>2]=tempI64[1];HEAP32[buf+32>>2]=4096;HEAP32[buf+36>>2]=stat.blocks;var atime=stat.atime.getTime();var mtime=stat.mtime.getTime();var ctime=stat.ctime.getTime();tempI64=[Math.floor(atime/1e3)>>>0,(tempDouble=Math.floor(atime/1e3),+Math.abs(tempDouble)>=1?tempDouble>0?+Math.floor(tempDouble/4294967296)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+40>>2]=tempI64[0],HEAP32[buf+44>>2]=tempI64[1];HEAPU32[buf+48>>2]=atime%1e3*1e3;tempI64=[Math.floor(mtime/1e3)>>>0,(tempDouble=Math.floor(mtime/1e3),+Math.abs(tempDouble)>=1?tempDouble>0?+Math.floor(tempDouble/4294967296)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+56>>2]=tempI64[0],HEAP32[buf+60>>2]=tempI64[1];HEAPU32[buf+64>>2]=mtime%1e3*1e3;tempI64=[Math.floor(ctime/1e3)>>>0,(tempDouble=Math.floor(ctime/1e3),+Math.abs(tempDouble)>=1?tempDouble>0?+Math.floor(tempDouble/4294967296)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+72>>2]=tempI64[0],HEAP32[buf+76>>2]=tempI64[1];HEAPU32[buf+80>>2]=ctime%1e3*1e3;tempI64=[stat.ino>>>0,(tempDouble=stat.ino,+Math.abs(tempDouble)>=1?tempDouble>0?+Math.floor(tempDouble/4294967296)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+88>>2]=tempI64[0],HEAP32[buf+92>>2]=tempI64[1];return 0},doMsync(addr,stream,len,flags,offset){if(!FS.isFile(stream.node.mode)){throw new FS.ErrnoError(43)}if(flags&2){return 0}var buffer=HEAPU8.slice(addr,addr+len);FS.msync(stream,buffer,offset,len,flags)},getStreamFromFD(fd){var stream=FS.getStreamChecked(fd);return stream},varargs:undefined,getStr(ptr){var ret=UTF8ToString(ptr);return ret}};function ___syscall_dup(fd){try{var old=SYSCALLS.getStreamFromFD(fd);return FS.dupStream(old).fd}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}function ___syscall_faccessat(dirfd,path,amode,flags){try{path=SYSCALLS.getStr(path);path=SYSCALLS.calculateAt(dirfd,path);if(amode&~7){return-28}var lookup=FS.lookupPath(path,{follow:true});var node=lookup.node;if(!node){return-44}var perms="";if(amode&4)perms+="r";if(amode&2)perms+="w";if(amode&1)perms+="x";if(perms&&FS.nodePermissions(node,perms)){return-2}return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}function syscallGetVarargI(){var ret=HEAP32[+SYSCALLS.varargs>>2];SYSCALLS.varargs+=4;return ret}var syscallGetVarargP=syscallGetVarargI;function ___syscall_fcntl64(fd,cmd,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(fd);switch(cmd){case 0:{var arg=syscallGetVarargI();if(arg<0){return-28}while(FS.streams[arg]){arg++}var newStream;newStream=FS.dupStream(stream,arg);return newStream.fd}case 1:case 2:return 0;case 3:return stream.flags;case 4:{var arg=syscallGetVarargI();stream.flags|=arg;return 0}case 12:{var arg=syscallGetVarargP();var offset=0;HEAP16[arg+offset>>1]=2;return 0}case 13:case 14:return 0}return-28}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}function ___syscall_fstat64(fd,buf){try{var stream=SYSCALLS.getStreamFromFD(fd);return SYSCALLS.doStat(FS.stat,stream.path,buf)}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}function ___syscall_ioctl(fd,op,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(fd);switch(op){case 21509:{if(!stream.tty)return-59;return 0}case 21505:{if(!stream.tty)return-59;if(stream.tty.ops.ioctl_tcgets){var termios=stream.tty.ops.ioctl_tcgets(stream);var argp=syscallGetVarargP();HEAP32[argp>>2]=termios.c_iflag||0;HEAP32[argp+4>>2]=termios.c_oflag||0;HEAP32[argp+8>>2]=termios.c_cflag||0;HEAP32[argp+12>>2]=termios.c_lflag||0;for(var i=0;i<32;i++){HEAP8[argp+i+17]=termios.c_cc[i]||0}return 0}return 0}case 21510:case 21511:case 21512:{if(!stream.tty)return-59;return 0}case 21506:case 21507:case 21508:{if(!stream.tty)return-59;if(stream.tty.ops.ioctl_tcsets){var argp=syscallGetVarargP();var c_iflag=HEAP32[argp>>2];var c_oflag=HEAP32[argp+4>>2];var c_cflag=HEAP32[argp+8>>2];var c_lflag=HEAP32[argp+12>>2];var c_cc=[];for(var i=0;i<32;i++){c_cc.push(HEAP8[argp+i+17])}return stream.tty.ops.ioctl_tcsets(stream.tty,op,{c_iflag:c_iflag,c_oflag:c_oflag,c_cflag:c_cflag,c_lflag:c_lflag,c_cc:c_cc})}return 0}case 21519:{if(!stream.tty)return-59;var argp=syscallGetVarargP();HEAP32[argp>>2]=0;return 0}case 21520:{if(!stream.tty)return-59;return-28}case 21531:{var argp=syscallGetVarargP();return FS.ioctl(stream,op,argp)}case 21523:{if(!stream.tty)return-59;if(stream.tty.ops.ioctl_tiocgwinsz){var winsize=stream.tty.ops.ioctl_tiocgwinsz(stream.tty);var argp=syscallGetVarargP();HEAP16[argp>>1]=winsize[0];HEAP16[argp+2>>1]=winsize[1]}return 0}case 21524:{if(!stream.tty)return-59;return 0}case 21515:{if(!stream.tty)return-59;return 0}default:return-28}}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}function ___syscall_lstat64(path,buf){try{path=SYSCALLS.getStr(path);return SYSCALLS.doStat(FS.lstat,path,buf)}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}function ___syscall_newfstatat(dirfd,path,buf,flags){try{path=SYSCALLS.getStr(path);var nofollow=flags&256;var allowEmpty=flags&4096;flags=flags&~6400;path=SYSCALLS.calculateAt(dirfd,path,allowEmpty);return SYSCALLS.doStat(nofollow?FS.lstat:FS.stat,path,buf)}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}function ___syscall_openat(dirfd,path,flags,varargs){SYSCALLS.varargs=varargs;try{path=SYSCALLS.getStr(path);path=SYSCALLS.calculateAt(dirfd,path);var mode=varargs?syscallGetVarargI():0;return FS.open(path,flags,mode).fd}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}function ___syscall_stat64(path,buf){try{path=SYSCALLS.getStr(path);return SYSCALLS.doStat(FS.stat,path,buf)}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}var __abort_js=()=>{abort("")};var __embind_register_bigint=(primitiveType,name,size,minRange,maxRange)=>{};var embind_init_charCodes=()=>{var codes=new Array(256);for(var i=0;i<256;++i){codes[i]=String.fromCharCode(i)}embind_charCodes=codes};var embind_charCodes;var readLatin1String=ptr=>{var ret="";var c=ptr;while(HEAPU8[c]){ret+=embind_charCodes[HEAPU8[c++]]}return ret};var awaitingDependencies={};var registeredTypes={};var typeDependencies={};var BindingError;var throwBindingError=message=>{throw new BindingError(message)};var InternalError;function sharedRegisterType(rawType,registeredInstance,options={}){var name=registeredInstance.name;if(!rawType){throwBindingError(`type "${name}" must have a positive integer typeid pointer`)}if(registeredTypes.hasOwnProperty(rawType)){if(options.ignoreDuplicateRegistrations){return}else{throwBindingError(`Cannot register type '${name}' twice`)}}registeredTypes[rawType]=registeredInstance;delete typeDependencies[rawType];if(awaitingDependencies.hasOwnProperty(rawType)){var callbacks=awaitingDependencies[rawType];delete awaitingDependencies[rawType];callbacks.forEach(cb=>cb())}}function registerType(rawType,registeredInstance,options={}){if(!("argPackAdvance"in registeredInstance)){throw new TypeError("registerType registeredInstance requires argPackAdvance")}return sharedRegisterType(rawType,registeredInstance,options)}var GenericWireTypeSize=8;var __embind_register_bool=(rawType,name,trueValue,falseValue)=>{name=readLatin1String(name);registerType(rawType,{name:name,fromWireType:function(wt){return!!wt},toWireType:function(destructors,o){return o?trueValue:falseValue},argPackAdvance:GenericWireTypeSize,readValueFromPointer:function(pointer){return this["fromWireType"](HEAPU8[pointer])},destructorFunction:null})};var emval_freelist=[];var emval_handles=[];var __emval_decref=handle=>{if(handle>9&&0===--emval_handles[handle+1]){emval_handles[handle]=undefined;emval_freelist.push(handle)}};var count_emval_handles=()=>emval_handles.length/2-5-emval_freelist.length;var init_emval=()=>{emval_handles.push(0,1,undefined,1,null,1,true,1,false,1);Module["count_emval_handles"]=count_emval_handles};var Emval={toValue:handle=>{if(!handle){throwBindingError("Cannot use deleted val. handle = "+handle)}return emval_handles[handle]},toHandle:value=>{switch(value){case undefined:return 2;case null:return 4;case true:return 6;case false:return 8;default:{const handle=emval_freelist.pop()||emval_handles.length;emval_handles[handle]=value;emval_handles[handle+1]=1;return handle}}}};function readPointer(pointer){return this["fromWireType"](HEAPU32[pointer>>2])}var EmValType={name:"emscripten::val",fromWireType:handle=>{var rv=Emval.toValue(handle);__emval_decref(handle);return rv},toWireType:(destructors,value)=>Emval.toHandle(value),argPackAdvance:GenericWireTypeSize,readValueFromPointer:readPointer,destructorFunction:null};var __embind_register_emval=rawType=>registerType(rawType,EmValType);var floatReadValueFromPointer=(name,width)=>{switch(width){case 4:return function(pointer){return this["fromWireType"](HEAPF32[pointer>>2])};case 8:return function(pointer){return this["fromWireType"](HEAPF64[pointer>>3])};default:throw new TypeError(`invalid float width (${width}): ${name}`)}};var __embind_register_float=(rawType,name,size)=>{name=readLatin1String(name);registerType(rawType,{name:name,fromWireType:value=>value,toWireType:(destructors,value)=>value,argPackAdvance:GenericWireTypeSize,readValueFromPointer:floatReadValueFromPointer(name,size),destructorFunction:null})};var integerReadValueFromPointer=(name,width,signed)=>{switch(width){case 1:return signed?pointer=>HEAP8[pointer]:pointer=>HEAPU8[pointer];case 2:return signed?pointer=>HEAP16[pointer>>1]:pointer=>HEAPU16[pointer>>1];case 4:return signed?pointer=>HEAP32[pointer>>2]:pointer=>HEAPU32[pointer>>2];default:throw new TypeError(`invalid integer width (${width}): ${name}`)}};var __embind_register_integer=(primitiveType,name,size,minRange,maxRange)=>{name=readLatin1String(name);if(maxRange===-1){maxRange=4294967295}var fromWireType=value=>value;if(minRange===0){var bitshift=32-8*size;fromWireType=value=>value<>>bitshift}var isUnsignedType=name.includes("unsigned");var checkAssertions=(value,toTypeName)=>{};var toWireType;if(isUnsignedType){toWireType=function(destructors,value){checkAssertions(value,this.name);return value>>>0}}else{toWireType=function(destructors,value){checkAssertions(value,this.name);return value}}registerType(primitiveType,{name:name,fromWireType:fromWireType,toWireType:toWireType,argPackAdvance:GenericWireTypeSize,readValueFromPointer:integerReadValueFromPointer(name,size,minRange!==0),destructorFunction:null})};var __embind_register_memory_view=(rawType,dataTypeIndex,name)=>{var typeMapping=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array];var TA=typeMapping[dataTypeIndex];function decodeMemoryView(handle){var size=HEAPU32[handle>>2];var data=HEAPU32[handle+4>>2];return new TA(HEAP8.buffer,data,size)}name=readLatin1String(name);registerType(rawType,{name:name,fromWireType:decodeMemoryView,argPackAdvance:GenericWireTypeSize,readValueFromPointer:decodeMemoryView},{ignoreDuplicateRegistrations:true})};var stringToUTF8=(str,outPtr,maxBytesToWrite)=>stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite);var __embind_register_std_string=(rawType,name)=>{name=readLatin1String(name);var stdStringIsUTF8=name==="std::string";registerType(rawType,{name:name,fromWireType(value){var length=HEAPU32[value>>2];var payload=value+4;var str;if(stdStringIsUTF8){var decodeStartPtr=payload;for(var i=0;i<=length;++i){var currentBytePtr=payload+i;if(i==length||HEAPU8[currentBytePtr]==0){var maxRead=currentBytePtr-decodeStartPtr;var stringSegment=UTF8ToString(decodeStartPtr,maxRead);if(str===undefined){str=stringSegment}else{str+=String.fromCharCode(0);str+=stringSegment}decodeStartPtr=currentBytePtr+1}}}else{var a=new Array(length);for(var i=0;i>2]=length;if(stdStringIsUTF8&&valueIsOfTypeString){stringToUTF8(value,ptr,length+1)}else{if(valueIsOfTypeString){for(var i=0;i255){_free(ptr);throwBindingError("String has UTF-16 code units that do not fit in 8 bits")}HEAPU8[ptr+i]=charCode}}else{for(var i=0;i{var endPtr=ptr;var idx=endPtr>>1;var maxIdx=idx+maxBytesToRead/2;while(!(idx>=maxIdx)&&HEAPU16[idx])++idx;endPtr=idx<<1;return UTF16Decoder.decode(HEAPU8.subarray(ptr,endPtr))};var stringToUTF16=(str,outPtr,maxBytesToWrite)=>{maxBytesToWrite??=2147483647;if(maxBytesToWrite<2)return 0;maxBytesToWrite-=2;var startPtr=outPtr;var numCharsToWrite=maxBytesToWrite>1]=codeUnit;outPtr+=2}HEAP16[outPtr>>1]=0;return outPtr-startPtr};var lengthBytesUTF16=str=>str.length*2;var UTF32ToString=(ptr,maxBytesToRead)=>{var i=0;var str="";while(!(i>=maxBytesToRead/4)){var utf32=HEAP32[ptr+i*4>>2];if(utf32==0)break;++i;if(utf32>=65536){var ch=utf32-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}else{str+=String.fromCharCode(utf32)}}return str};var stringToUTF32=(str,outPtr,maxBytesToWrite)=>{maxBytesToWrite??=2147483647;if(maxBytesToWrite<4)return 0;var startPtr=outPtr;var endPtr=startPtr+maxBytesToWrite-4;for(var i=0;i=55296&&codeUnit<=57343){var trailSurrogate=str.charCodeAt(++i);codeUnit=65536+((codeUnit&1023)<<10)|trailSurrogate&1023}HEAP32[outPtr>>2]=codeUnit;outPtr+=4;if(outPtr+4>endPtr)break}HEAP32[outPtr>>2]=0;return outPtr-startPtr};var lengthBytesUTF32=str=>{var len=0;for(var i=0;i=55296&&codeUnit<=57343)++i;len+=4}return len};var __embind_register_std_wstring=(rawType,charSize,name)=>{name=readLatin1String(name);var decodeString,encodeString,readCharAt,lengthBytesUTF;if(charSize===2){decodeString=UTF16ToString;encodeString=stringToUTF16;lengthBytesUTF=lengthBytesUTF16;readCharAt=pointer=>HEAPU16[pointer>>1]}else if(charSize===4){decodeString=UTF32ToString;encodeString=stringToUTF32;lengthBytesUTF=lengthBytesUTF32;readCharAt=pointer=>HEAPU32[pointer>>2]}registerType(rawType,{name:name,fromWireType:value=>{var length=HEAPU32[value>>2];var str;var decodeStartPtr=value+4;for(var i=0;i<=length;++i){var currentBytePtr=value+4+i*charSize;if(i==length||readCharAt(currentBytePtr)==0){var maxReadBytes=currentBytePtr-decodeStartPtr;var stringSegment=decodeString(decodeStartPtr,maxReadBytes);if(str===undefined){str=stringSegment}else{str+=String.fromCharCode(0);str+=stringSegment}decodeStartPtr=currentBytePtr+charSize}}_free(value);return str},toWireType:(destructors,value)=>{if(!(typeof value=="string")){throwBindingError(`Cannot pass non-string to C++ string type ${name}`)}var length=lengthBytesUTF(value);var ptr=_malloc(4+length+charSize);HEAPU32[ptr>>2]=length/charSize;encodeString(value,ptr+4,length+charSize);if(destructors!==null){destructors.push(_free,ptr)}return ptr},argPackAdvance:GenericWireTypeSize,readValueFromPointer:readPointer,destructorFunction(ptr){_free(ptr)}})};var __embind_register_void=(rawType,name)=>{name=readLatin1String(name);registerType(rawType,{isVoid:true,name:name,argPackAdvance:0,fromWireType:()=>undefined,toWireType:(destructors,o)=>undefined})};var nowIsMonotonic=1;var __emscripten_get_now_is_monotonic=()=>nowIsMonotonic;var __emscripten_memcpy_js=(dest,src,num)=>HEAPU8.copyWithin(dest,src,src+num);var getTypeName=type=>{var ptr=___getTypeName(type);var rv=readLatin1String(ptr);_free(ptr);return rv};var requireRegisteredType=(rawType,humanName)=>{var impl=registeredTypes[rawType];if(undefined===impl){throwBindingError(`${humanName} has unknown type ${getTypeName(rawType)}`)}return impl};var emval_returnValue=(returnType,destructorsRef,handle)=>{var destructors=[];var result=returnType["toWireType"](destructors,handle);if(destructors.length){HEAPU32[destructorsRef>>2]=Emval.toHandle(destructors)}return result};var __emval_as=(handle,returnType,destructorsRef)=>{handle=Emval.toValue(handle);returnType=requireRegisteredType(returnType,"emval::as");return emval_returnValue(returnType,destructorsRef,handle)};var emval_symbols={};var getStringOrSymbol=address=>{var symbol=emval_symbols[address];if(symbol===undefined){return readLatin1String(address)}return symbol};var emval_get_global=()=>{if(typeof globalThis=="object"){return globalThis}function testGlobal(obj){obj["$$$embind_global$$$"]=obj;var success=typeof $$$embind_global$$$=="object"&&obj["$$$embind_global$$$"]==obj;if(!success){delete obj["$$$embind_global$$$"]}return success}if(typeof $$$embind_global$$$=="object"){return $$$embind_global$$$}if(typeof global=="object"&&testGlobal(global)){$$$embind_global$$$=global}else if(typeof self=="object"&&testGlobal(self)){$$$embind_global$$$=self}if(typeof $$$embind_global$$$=="object"){return $$$embind_global$$$}throw Error("unable to get global object.")};var __emval_get_global=name=>{if(name===0){return Emval.toHandle(emval_get_global())}else{name=getStringOrSymbol(name);return Emval.toHandle(emval_get_global()[name])}};var __emval_get_property=(handle,key)=>{handle=Emval.toValue(handle);key=Emval.toValue(key);return Emval.toHandle(handle[key])};var __emval_incref=handle=>{if(handle>9){emval_handles[handle+1]+=1}};var __emval_instanceof=(object,constructor)=>{object=Emval.toValue(object);constructor=Emval.toValue(constructor);return object instanceof constructor};var __emval_new_cstring=v=>Emval.toHandle(getStringOrSymbol(v));var runDestructors=destructors=>{while(destructors.length){var ptr=destructors.pop();var del=destructors.pop();del(ptr)}};var __emval_run_destructors=handle=>{var destructors=Emval.toValue(handle);runDestructors(destructors);__emval_decref(handle)};var __emval_set_property=(handle,key,value)=>{handle=Emval.toValue(handle);key=Emval.toValue(key);value=Emval.toValue(value);handle[key]=value};var __emval_take_value=(type,arg)=>{type=requireRegisteredType(type,"_emval_take_value");var v=type["readValueFromPointer"](arg);return Emval.toHandle(v)};var __emval_typeof=handle=>{handle=Emval.toValue(handle);return Emval.toHandle(typeof handle)};var convertI32PairToI53Checked=(lo,hi)=>hi+2097152>>>0<4194305-!!lo?(lo>>>0)+hi*4294967296:NaN;function __gmtime_js(time_low,time_high,tmPtr){var time=convertI32PairToI53Checked(time_low,time_high);var date=new Date(time*1e3);HEAP32[tmPtr>>2]=date.getUTCSeconds();HEAP32[tmPtr+4>>2]=date.getUTCMinutes();HEAP32[tmPtr+8>>2]=date.getUTCHours();HEAP32[tmPtr+12>>2]=date.getUTCDate();HEAP32[tmPtr+16>>2]=date.getUTCMonth();HEAP32[tmPtr+20>>2]=date.getUTCFullYear()-1900;HEAP32[tmPtr+24>>2]=date.getUTCDay();var start=Date.UTC(date.getUTCFullYear(),0,1,0,0,0,0);var yday=(date.getTime()-start)/(1e3*60*60*24)|0;HEAP32[tmPtr+28>>2]=yday}var isLeapYear=year=>year%4===0&&(year%100!==0||year%400===0);var MONTH_DAYS_LEAP_CUMULATIVE=[0,31,60,91,121,152,182,213,244,274,305,335];var MONTH_DAYS_REGULAR_CUMULATIVE=[0,31,59,90,120,151,181,212,243,273,304,334];var ydayFromDate=date=>{var leap=isLeapYear(date.getFullYear());var monthDaysCumulative=leap?MONTH_DAYS_LEAP_CUMULATIVE:MONTH_DAYS_REGULAR_CUMULATIVE;var yday=monthDaysCumulative[date.getMonth()]+date.getDate()-1;return yday};function __localtime_js(time_low,time_high,tmPtr){var time=convertI32PairToI53Checked(time_low,time_high);var date=new Date(time*1e3);HEAP32[tmPtr>>2]=date.getSeconds();HEAP32[tmPtr+4>>2]=date.getMinutes();HEAP32[tmPtr+8>>2]=date.getHours();HEAP32[tmPtr+12>>2]=date.getDate();HEAP32[tmPtr+16>>2]=date.getMonth();HEAP32[tmPtr+20>>2]=date.getFullYear()-1900;HEAP32[tmPtr+24>>2]=date.getDay();var yday=ydayFromDate(date)|0;HEAP32[tmPtr+28>>2]=yday;HEAP32[tmPtr+36>>2]=-(date.getTimezoneOffset()*60);var start=new Date(date.getFullYear(),0,1);var summerOffset=new Date(date.getFullYear(),6,1).getTimezoneOffset();var winterOffset=start.getTimezoneOffset();var dst=(summerOffset!=winterOffset&&date.getTimezoneOffset()==Math.min(winterOffset,summerOffset))|0;HEAP32[tmPtr+32>>2]=dst}var setTempRet0=val=>__emscripten_tempret_set(val);var __mktime_js=function(tmPtr){var ret=(()=>{var date=new Date(HEAP32[tmPtr+20>>2]+1900,HEAP32[tmPtr+16>>2],HEAP32[tmPtr+12>>2],HEAP32[tmPtr+8>>2],HEAP32[tmPtr+4>>2],HEAP32[tmPtr>>2],0);var dst=HEAP32[tmPtr+32>>2];var guessedOffset=date.getTimezoneOffset();var start=new Date(date.getFullYear(),0,1);var summerOffset=new Date(date.getFullYear(),6,1).getTimezoneOffset();var winterOffset=start.getTimezoneOffset();var dstOffset=Math.min(winterOffset,summerOffset);if(dst<0){HEAP32[tmPtr+32>>2]=Number(summerOffset!=winterOffset&&dstOffset==guessedOffset)}else if(dst>0!=(dstOffset==guessedOffset)){var nonDstOffset=Math.max(winterOffset,summerOffset);var trueOffset=dst>0?dstOffset:nonDstOffset;date.setTime(date.getTime()+(trueOffset-guessedOffset)*6e4)}HEAP32[tmPtr+24>>2]=date.getDay();var yday=ydayFromDate(date)|0;HEAP32[tmPtr+28>>2]=yday;HEAP32[tmPtr>>2]=date.getSeconds();HEAP32[tmPtr+4>>2]=date.getMinutes();HEAP32[tmPtr+8>>2]=date.getHours();HEAP32[tmPtr+12>>2]=date.getDate();HEAP32[tmPtr+16>>2]=date.getMonth();HEAP32[tmPtr+20>>2]=date.getYear();var timeMs=date.getTime();if(isNaN(timeMs)){return-1}return timeMs/1e3})();return setTempRet0((tempDouble=ret,+Math.abs(tempDouble)>=1?tempDouble>0?+Math.floor(tempDouble/4294967296)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)),ret>>>0};function __mmap_js(len,prot,flags,fd,offset_low,offset_high,allocated,addr){var offset=convertI32PairToI53Checked(offset_low,offset_high);try{if(isNaN(offset))return 61;var stream=SYSCALLS.getStreamFromFD(fd);var res=FS.mmap(stream,len,offset,prot,flags);var ptr=res.ptr;HEAP32[allocated>>2]=res.allocated;HEAPU32[addr>>2]=ptr;return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}function __munmap_js(addr,len,prot,flags,fd,offset_low,offset_high){var offset=convertI32PairToI53Checked(offset_low,offset_high);try{var stream=SYSCALLS.getStreamFromFD(fd);if(prot&2){SYSCALLS.doMsync(addr,stream,len,flags,offset)}}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}var __tzset_js=(timezone,daylight,std_name,dst_name)=>{var currentYear=(new Date).getFullYear();var winter=new Date(currentYear,0,1);var summer=new Date(currentYear,6,1);var winterOffset=winter.getTimezoneOffset();var summerOffset=summer.getTimezoneOffset();var stdTimezoneOffset=Math.max(winterOffset,summerOffset);HEAPU32[timezone>>2]=stdTimezoneOffset*60;HEAP32[daylight>>2]=Number(winterOffset!=summerOffset);var extractZone=date=>date.toLocaleTimeString(undefined,{hour12:false,timeZoneName:"short"}).split(" ")[1];var winterName=extractZone(winter);var summerName=extractZone(summer);if(summerOffset{readEmAsmArgsArray.length=0;var ch;while(ch=HEAPU8[sigPtr++]){var wide=ch!=105;wide&=ch!=112;buf+=wide&&buf%8?4:0;readEmAsmArgsArray.push(ch==112?HEAPU32[buf>>2]:ch==105?HEAP32[buf>>2]:HEAPF64[buf>>3]);buf+=wide?8:4}return readEmAsmArgsArray};var runEmAsmFunction=(code,sigPtr,argbuf)=>{var args=readEmAsmArgs(sigPtr,argbuf);return ASM_CONSTS[code](...args)};var _emscripten_asm_const_int=(code,sigPtr,argbuf)=>runEmAsmFunction(code,sigPtr,argbuf);var _emscripten_date_now=()=>Date.now();var _emscripten_errn=(str,len)=>err(UTF8ToString(str,len));var getHeapMax=()=>2147483648;var _emscripten_get_heap_max=()=>getHeapMax();var _emscripten_has_asyncify=()=>0;var _emscripten_outn=(str,len)=>out(UTF8ToString(str,len));var _emscripten_pc_get_function=pc=>{abort("Cannot use emscripten_pc_get_function without -sUSE_OFFSET_CONVERTER");return 0};var growMemory=size=>{var b=wasmMemory.buffer;var pages=(size-b.byteLength+65535)/65536;try{wasmMemory.grow(pages);updateMemoryViews();return 1}catch(e){}};var _emscripten_resize_heap=requestedSize=>{var oldSize=HEAPU8.length;requestedSize>>>=0;var maxHeapSize=getHeapMax();if(requestedSize>maxHeapSize){return false}var alignUp=(x,multiple)=>x+(multiple-x%multiple)%multiple;for(var cutDown=1;cutDown<=4;cutDown*=2){var overGrownHeapSize=oldSize*(1+.2/cutDown);overGrownHeapSize=Math.min(overGrownHeapSize,requestedSize+100663296);var newSize=Math.min(maxHeapSize,alignUp(Math.max(requestedSize,overGrownHeapSize),65536));var replacement=growMemory(newSize);if(replacement){return true}}return false};var convertFrameToPC=frame=>{abort("Cannot use convertFrameToPC (needed by __builtin_return_address) without -sUSE_OFFSET_CONVERTER");return 0};var UNWIND_CACHE={};var saveInUnwindCache=callstack=>{callstack.forEach(frame=>{var pc=convertFrameToPC(frame);if(pc){UNWIND_CACHE[pc]=frame}})};function jsStackTrace(){return(new Error).stack.toString()}function _emscripten_stack_snapshot(){var callstack=jsStackTrace().split("\n");if(callstack[0]=="Error"){callstack.shift()}saveInUnwindCache(callstack);UNWIND_CACHE.last_addr=convertFrameToPC(callstack[3]);UNWIND_CACHE.last_stack=callstack;return UNWIND_CACHE.last_addr}var _emscripten_stack_unwind_buffer=(addr,buffer,count)=>{var stack;if(UNWIND_CACHE.last_addr==addr){stack=UNWIND_CACHE.last_stack}else{stack=jsStackTrace().split("\n");if(stack[0]=="Error"){stack.shift()}saveInUnwindCache(stack)}var offset=3;while(stack[offset]&&convertFrameToPC(stack[offset])!=addr){++offset}for(var i=0;i>2]=convertFrameToPC(stack[i+offset])}return i};var webgl_enable_ANGLE_instanced_arrays=ctx=>{var ext=ctx.getExtension("ANGLE_instanced_arrays");if(ext){ctx["vertexAttribDivisor"]=(index,divisor)=>ext["vertexAttribDivisorANGLE"](index,divisor);ctx["drawArraysInstanced"]=(mode,first,count,primcount)=>ext["drawArraysInstancedANGLE"](mode,first,count,primcount);ctx["drawElementsInstanced"]=(mode,count,type,indices,primcount)=>ext["drawElementsInstancedANGLE"](mode,count,type,indices,primcount);return 1}};var webgl_enable_OES_vertex_array_object=ctx=>{var ext=ctx.getExtension("OES_vertex_array_object");if(ext){ctx["createVertexArray"]=()=>ext["createVertexArrayOES"]();ctx["deleteVertexArray"]=vao=>ext["deleteVertexArrayOES"](vao);ctx["bindVertexArray"]=vao=>ext["bindVertexArrayOES"](vao);ctx["isVertexArray"]=vao=>ext["isVertexArrayOES"](vao);return 1}};var webgl_enable_WEBGL_draw_buffers=ctx=>{var ext=ctx.getExtension("WEBGL_draw_buffers");if(ext){ctx["drawBuffers"]=(n,bufs)=>ext["drawBuffersWEBGL"](n,bufs);return 1}};var webgl_enable_WEBGL_draw_instanced_base_vertex_base_instance=ctx=>!!(ctx.dibvbi=ctx.getExtension("WEBGL_draw_instanced_base_vertex_base_instance"));var webgl_enable_WEBGL_multi_draw_instanced_base_vertex_base_instance=ctx=>!!(ctx.mdibvbi=ctx.getExtension("WEBGL_multi_draw_instanced_base_vertex_base_instance"));var webgl_enable_WEBGL_multi_draw=ctx=>!!(ctx.multiDrawWebgl=ctx.getExtension("WEBGL_multi_draw"));var getEmscriptenSupportedExtensions=ctx=>{var supportedExtensions=["ANGLE_instanced_arrays","EXT_blend_minmax","EXT_disjoint_timer_query","EXT_frag_depth","EXT_shader_texture_lod","EXT_sRGB","OES_element_index_uint","OES_fbo_render_mipmap","OES_standard_derivatives","OES_texture_float","OES_texture_half_float","OES_texture_half_float_linear","OES_vertex_array_object","WEBGL_color_buffer_float","WEBGL_depth_texture","WEBGL_draw_buffers","EXT_color_buffer_float","EXT_conservative_depth","EXT_disjoint_timer_query_webgl2","EXT_texture_norm16","NV_shader_noperspective_interpolation","WEBGL_clip_cull_distance","EXT_color_buffer_half_float","EXT_depth_clamp","EXT_float_blend","EXT_texture_compression_bptc","EXT_texture_compression_rgtc","EXT_texture_filter_anisotropic","KHR_parallel_shader_compile","OES_texture_float_linear","WEBGL_blend_func_extended","WEBGL_compressed_texture_astc","WEBGL_compressed_texture_etc","WEBGL_compressed_texture_etc1","WEBGL_compressed_texture_s3tc","WEBGL_compressed_texture_s3tc_srgb","WEBGL_debug_renderer_info","WEBGL_debug_shaders","WEBGL_lose_context","WEBGL_multi_draw"];return(ctx.getSupportedExtensions()||[]).filter(ext=>supportedExtensions.includes(ext))};var GL={counter:1,buffers:[],mappedBuffers:{},programs:[],framebuffers:[],renderbuffers:[],textures:[],shaders:[],vaos:[],contexts:[],offscreenCanvases:{},queries:[],samplers:[],transformFeedbacks:[],syncs:[],byteSizeByTypeRoot:5120,byteSizeByType:[1,1,2,2,4,4,4,2,3,4,8],stringCache:{},stringiCache:{},unpackAlignment:4,unpackRowLength:0,recordError:errorCode=>{if(!GL.lastError){GL.lastError=errorCode}},getNewId:table=>{var ret=GL.counter++;for(var i=table.length;i{for(var i=0;i>2]=id}},MAX_TEMP_BUFFER_SIZE:2097152,numTempVertexBuffersPerSize:64,log2ceilLookup:i=>32-Math.clz32(i===0?0:i-1),generateTempBuffers:(quads,context)=>{var largestIndex=GL.log2ceilLookup(GL.MAX_TEMP_BUFFER_SIZE);context.tempVertexBufferCounters1=[];context.tempVertexBufferCounters2=[];context.tempVertexBufferCounters1.length=context.tempVertexBufferCounters2.length=largestIndex+1;context.tempVertexBuffers1=[];context.tempVertexBuffers2=[];context.tempVertexBuffers1.length=context.tempVertexBuffers2.length=largestIndex+1;context.tempIndexBuffers=[];context.tempIndexBuffers.length=largestIndex+1;for(var i=0;i<=largestIndex;++i){context.tempIndexBuffers[i]=null;context.tempVertexBufferCounters1[i]=context.tempVertexBufferCounters2[i]=0;var ringbufferLength=GL.numTempVertexBuffersPerSize;context.tempVertexBuffers1[i]=[];context.tempVertexBuffers2[i]=[];var ringbuffer1=context.tempVertexBuffers1[i];var ringbuffer2=context.tempVertexBuffers2[i];ringbuffer1.length=ringbuffer2.length=ringbufferLength;for(var j=0;j>1;var quadIndexes=new Uint16Array(numIndexes);var i=0,v=0;while(1){quadIndexes[i++]=v;if(i>=numIndexes)break;quadIndexes[i++]=v+1;if(i>=numIndexes)break;quadIndexes[i++]=v+2;if(i>=numIndexes)break;quadIndexes[i++]=v;if(i>=numIndexes)break;quadIndexes[i++]=v+2;if(i>=numIndexes)break;quadIndexes[i++]=v+3;if(i>=numIndexes)break;v+=4}context.GLctx.bufferData(34963,quadIndexes,35044);context.GLctx.bindBuffer(34963,null)}},getTempVertexBuffer:sizeBytes=>{var idx=GL.log2ceilLookup(sizeBytes);var ringbuffer=GL.currentContext.tempVertexBuffers1[idx];var nextFreeBufferIndex=GL.currentContext.tempVertexBufferCounters1[idx];GL.currentContext.tempVertexBufferCounters1[idx]=GL.currentContext.tempVertexBufferCounters1[idx]+1&GL.numTempVertexBuffersPerSize-1;var vbo=ringbuffer[nextFreeBufferIndex];if(vbo){return vbo}var prevVBO=GLctx.getParameter(34964);ringbuffer[nextFreeBufferIndex]=GLctx.createBuffer();GLctx.bindBuffer(34962,ringbuffer[nextFreeBufferIndex]);GLctx.bufferData(34962,1<{var idx=GL.log2ceilLookup(sizeBytes);var ibo=GL.currentContext.tempIndexBuffers[idx];if(ibo){return ibo}var prevIBO=GLctx.getParameter(34965);GL.currentContext.tempIndexBuffers[idx]=GLctx.createBuffer();GLctx.bindBuffer(34963,GL.currentContext.tempIndexBuffers[idx]);GLctx.bufferData(34963,1<{if(!GL.currentContext){return}var vb=GL.currentContext.tempVertexBuffers1;GL.currentContext.tempVertexBuffers1=GL.currentContext.tempVertexBuffers2;GL.currentContext.tempVertexBuffers2=vb;vb=GL.currentContext.tempVertexBufferCounters1;GL.currentContext.tempVertexBufferCounters1=GL.currentContext.tempVertexBufferCounters2;GL.currentContext.tempVertexBufferCounters2=vb;var largestIndex=GL.log2ceilLookup(GL.MAX_TEMP_BUFFER_SIZE);for(var i=0;i<=largestIndex;++i){GL.currentContext.tempVertexBufferCounters1[i]=0}},getSource:(shader,count,string,length)=>{var source="";for(var i=0;i>2]:undefined;source+=UTF8ToString(HEAPU32[string+i*4>>2],len)}return source},calcBufLength:(size,type,stride,count)=>{if(stride>0){return count*stride}var typeSize=GL.byteSizeByType[type-GL.byteSizeByTypeRoot];return size*typeSize*count},usedTempBuffers:[],preDrawHandleClientVertexAttribBindings:count=>{GL.resetBufferBinding=false;for(var i=0;i{if(GL.resetBufferBinding){GLctx.bindBuffer(34962,GL.buffers[GLctx.currentArrayBufferBinding])}},createContext:(canvas,webGLContextAttributes)=>{if(!canvas.getContextSafariWebGL2Fixed){canvas.getContextSafariWebGL2Fixed=canvas.getContext;function fixedGetContext(ver,attrs){var gl=canvas.getContextSafariWebGL2Fixed(ver,attrs);return ver=="webgl"==gl instanceof WebGLRenderingContext?gl:null}canvas.getContext=fixedGetContext}var ctx=webGLContextAttributes.majorVersion>1?canvas.getContext("webgl2",webGLContextAttributes):canvas.getContext("webgl",webGLContextAttributes);if(!ctx)return 0;var handle=GL.registerContext(ctx,webGLContextAttributes);return handle},registerContext:(ctx,webGLContextAttributes)=>{var handle=GL.getNewId(GL.contexts);var context={handle:handle,attributes:webGLContextAttributes,version:webGLContextAttributes.majorVersion,GLctx:ctx};if(ctx.canvas)ctx.canvas.GLctxObject=context;GL.contexts[handle]=context;if(typeof webGLContextAttributes.enableExtensionsByDefault=="undefined"||webGLContextAttributes.enableExtensionsByDefault){GL.initExtensions(context)}context.maxVertexAttribs=context.GLctx.getParameter(34921);context.clientBuffers=[];for(var i=0;i{GL.currentContext=GL.contexts[contextHandle];Module.ctx=GLctx=GL.currentContext?.GLctx;return!(contextHandle&&!GLctx)},getContext:contextHandle=>GL.contexts[contextHandle],deleteContext:contextHandle=>{if(GL.currentContext===GL.contexts[contextHandle]){GL.currentContext=null}if(typeof JSEvents=="object"){JSEvents.removeAllHandlersOnTarget(GL.contexts[contextHandle].GLctx.canvas)}if(GL.contexts[contextHandle]&&GL.contexts[contextHandle].GLctx.canvas){GL.contexts[contextHandle].GLctx.canvas.GLctxObject=undefined}GL.contexts[contextHandle]=null},initExtensions:context=>{context||=GL.currentContext;if(context.initExtensionsDone)return;context.initExtensionsDone=true;var GLctx=context.GLctx;webgl_enable_ANGLE_instanced_arrays(GLctx);webgl_enable_OES_vertex_array_object(GLctx);webgl_enable_WEBGL_draw_buffers(GLctx);webgl_enable_WEBGL_draw_instanced_base_vertex_base_instance(GLctx);webgl_enable_WEBGL_multi_draw_instanced_base_vertex_base_instance(GLctx);if(context.version>=2){GLctx.disjointTimerQueryExt=GLctx.getExtension("EXT_disjoint_timer_query_webgl2")}if(context.version<2||!GLctx.disjointTimerQueryExt){GLctx.disjointTimerQueryExt=GLctx.getExtension("EXT_disjoint_timer_query")}webgl_enable_WEBGL_multi_draw(GLctx);getEmscriptenSupportedExtensions(GLctx).forEach(ext=>{if(!ext.includes("lose_context")&&!ext.includes("debug")){GLctx.getExtension(ext)}})}};var JSEvents={removeAllEventListeners(){while(JSEvents.eventHandlers.length){JSEvents._removeHandler(JSEvents.eventHandlers.length-1)}JSEvents.deferredCalls=[]},inEventHandler:0,deferredCalls:[],deferCall(targetFunction,precedence,argsList){function arraysHaveEqualContent(arrA,arrB){if(arrA.length!=arrB.length)return false;for(var i in arrA){if(arrA[i]!=arrB[i])return false}return true}for(var call of JSEvents.deferredCalls){if(call.targetFunction==targetFunction&&arraysHaveEqualContent(call.argsList,argsList)){return}}JSEvents.deferredCalls.push({targetFunction:targetFunction,precedence:precedence,argsList:argsList});JSEvents.deferredCalls.sort((x,y)=>x.precedencecall.targetFunction!=targetFunction)},canPerformEventHandlerRequests(){if(navigator.userActivation){return navigator.userActivation.isActive}return JSEvents.inEventHandler&&JSEvents.currentEventHandler.allowsDeferredCalls},runDeferredCalls(){if(!JSEvents.canPerformEventHandlerRequests()){return}var deferredCalls=JSEvents.deferredCalls;JSEvents.deferredCalls=[];for(var call of deferredCalls){call.targetFunction(...call.argsList)}},eventHandlers:[],removeAllHandlersOnTarget:(target,eventTypeString)=>{for(var i=0;i{try{if(!target)return window;if(typeof target=="number")target=specialHTMLTargets[target]||UTF8ToString(target);if(target==="#window")return window;else if(target==="#document")return document;else if(target==="#screen")return screen;else if(target==="#canvas")return Module["canvas"];return typeof target=="string"?document.getElementById(target):target}catch(e){return null}};var findCanvasEventTarget=target=>{if(typeof target=="number")target=UTF8ToString(target);if(!target||target==="#canvas"){if(typeof GL!="undefined"&&GL.offscreenCanvases["canvas"])return GL.offscreenCanvases["canvas"];return Module["canvas"]}if(typeof GL!="undefined"&&GL.offscreenCanvases[target])return GL.offscreenCanvases[target];return findEventTarget(target)};var _emscripten_webgl_do_create_context=(target,attributes)=>{var attr32=attributes>>2;var powerPreference=HEAP32[attr32+(8>>2)];var contextAttributes={alpha:!!HEAP8[attributes+0],depth:!!HEAP8[attributes+1],stencil:!!HEAP8[attributes+2],antialias:!!HEAP8[attributes+3],premultipliedAlpha:!!HEAP8[attributes+4],preserveDrawingBuffer:!!HEAP8[attributes+5],powerPreference:webglPowerPreferences[powerPreference],failIfMajorPerformanceCaveat:!!HEAP8[attributes+12],majorVersion:HEAP32[attr32+(16>>2)],minorVersion:HEAP32[attr32+(20>>2)],enableExtensionsByDefault:HEAP8[attributes+24],explicitSwapControl:HEAP8[attributes+25],proxyContextToMainThread:HEAP32[attr32+(28>>2)],renderViaOffscreenBackBuffer:HEAP8[attributes+32]};var canvas=findCanvasEventTarget(target);if(!canvas){return 0}if(contextAttributes.explicitSwapControl){return 0}var contextHandle=GL.createContext(canvas,contextAttributes);return contextHandle};var _emscripten_webgl_create_context=_emscripten_webgl_do_create_context;var _emscripten_webgl_destroy_context=contextHandle=>{if(GL.currentContext==contextHandle)GL.currentContext=0;GL.deleteContext(contextHandle)};var _emscripten_webgl_get_context_attributes=(c,a)=>{if(!a)return-5;c=GL.contexts[c];if(!c)return-3;var t=c.GLctx;if(!t)return-3;t=t.getContextAttributes();HEAP8[a]=t.alpha;HEAP8[a+1]=t.depth;HEAP8[a+2]=t.stencil;HEAP8[a+3]=t.antialias;HEAP8[a+4]=t.premultipliedAlpha;HEAP8[a+5]=t.preserveDrawingBuffer;var power=t["powerPreference"]&&webglPowerPreferences.indexOf(t["powerPreference"]);HEAP32[a+8>>2]=power;HEAP8[a+12]=t.failIfMajorPerformanceCaveat;HEAP32[a+16>>2]=c.version;HEAP32[a+20>>2]=0;HEAP8[a+24]=c.attributes.enableExtensionsByDefault;return 0};var _emscripten_webgl_do_get_current_context=()=>GL.currentContext?GL.currentContext.handle:0;var _emscripten_webgl_get_current_context=_emscripten_webgl_do_get_current_context;var _emscripten_webgl_make_context_current=contextHandle=>{var success=GL.makeContextCurrent(contextHandle);return success?0:-5};var stackAlloc=sz=>__emscripten_stack_alloc(sz);var stringToUTF8OnStack=str=>{var size=lengthBytesUTF8(str)+1;var ret=stackAlloc(size);stringToUTF8(str,ret,size);return ret};var wasmTableMirror=[];var wasmTable;var getWasmTableEntry=funcPtr=>{var func=wasmTableMirror[funcPtr];if(!func){if(funcPtr>=wasmTableMirror.length)wasmTableMirror.length=funcPtr+1;wasmTableMirror[funcPtr]=func=wasmTable.get(funcPtr)}return func};var WebGPU={errorCallback:(callback,type,message,userdata)=>{var sp=stackSave();var messagePtr=stringToUTF8OnStack(message);getWasmTableEntry(callback)(type,messagePtr,userdata);stackRestore(sp)},initManagers:()=>{if(WebGPU.mgrDevice)return;function Manager(){this.objects={};this.nextId=1;this.create=function(object,wrapper={}){var id=this.nextId++;wrapper.refcount=1;wrapper.object=object;this.objects[id]=wrapper;return id};this.get=function(id){if(!id)return undefined;var o=this.objects[id];return o.object};this.reference=function(id){var o=this.objects[id];o.refcount++};this.release=function(id){var o=this.objects[id];o.refcount--;if(o.refcount<=0){delete this.objects[id]}}}WebGPU.mgrSurface=WebGPU.mgrSurface||new Manager;WebGPU.mgrSwapChain=WebGPU.mgrSwapChain||new Manager;WebGPU.mgrAdapter=WebGPU.mgrAdapter||new Manager;WebGPU.mgrDevice=WebGPU.mgrDevice||new Manager;WebGPU.mgrQueue=WebGPU.mgrQueue||new Manager;WebGPU.mgrCommandBuffer=WebGPU.mgrCommandBuffer||new Manager;WebGPU.mgrCommandEncoder=WebGPU.mgrCommandEncoder||new Manager;WebGPU.mgrRenderPassEncoder=WebGPU.mgrRenderPassEncoder||new Manager;WebGPU.mgrComputePassEncoder=WebGPU.mgrComputePassEncoder||new Manager;WebGPU.mgrBindGroup=WebGPU.mgrBindGroup||new Manager;WebGPU.mgrBuffer=WebGPU.mgrBuffer||new Manager;WebGPU.mgrSampler=WebGPU.mgrSampler||new Manager;WebGPU.mgrTexture=WebGPU.mgrTexture||new Manager;WebGPU.mgrTextureView=WebGPU.mgrTextureView||new Manager;WebGPU.mgrQuerySet=WebGPU.mgrQuerySet||new Manager;WebGPU.mgrBindGroupLayout=WebGPU.mgrBindGroupLayout||new Manager;WebGPU.mgrPipelineLayout=WebGPU.mgrPipelineLayout||new Manager;WebGPU.mgrRenderPipeline=WebGPU.mgrRenderPipeline||new Manager;WebGPU.mgrComputePipeline=WebGPU.mgrComputePipeline||new Manager;WebGPU.mgrShaderModule=WebGPU.mgrShaderModule||new Manager;WebGPU.mgrRenderBundleEncoder=WebGPU.mgrRenderBundleEncoder||new Manager;WebGPU.mgrRenderBundle=WebGPU.mgrRenderBundle||new Manager},makeColor:ptr=>({r:HEAPF64[ptr>>3],g:HEAPF64[ptr+8>>3],b:HEAPF64[ptr+16>>3],a:HEAPF64[ptr+24>>3]}),makeExtent3D:ptr=>({width:HEAPU32[ptr>>2],height:HEAPU32[ptr+4>>2],depthOrArrayLayers:HEAPU32[ptr+8>>2]}),makeOrigin3D:ptr=>({x:HEAPU32[ptr>>2],y:HEAPU32[ptr+4>>2],z:HEAPU32[ptr+8>>2]}),makeImageCopyTexture:ptr=>({texture:WebGPU.mgrTexture.get(HEAPU32[ptr+4>>2]),mipLevel:HEAPU32[ptr+8>>2],origin:WebGPU.makeOrigin3D(ptr+12),aspect:WebGPU.TextureAspect[HEAPU32[ptr+24>>2]]}),makeTextureDataLayout:ptr=>{var bytesPerRow=HEAPU32[ptr+16>>2];var rowsPerImage=HEAPU32[ptr+20>>2];return{offset:HEAPU32[ptr+4+8>>2]*4294967296+HEAPU32[ptr+8>>2],bytesPerRow:bytesPerRow===4294967295?undefined:bytesPerRow,rowsPerImage:rowsPerImage===4294967295?undefined:rowsPerImage}},makeImageCopyBuffer:ptr=>{var layoutPtr=ptr+8;var bufferCopyView=WebGPU.makeTextureDataLayout(layoutPtr);bufferCopyView["buffer"]=WebGPU.mgrBuffer.get(HEAPU32[ptr+32>>2]);return bufferCopyView},makePipelineConstants:(constantCount,constantsPtr)=>{if(!constantCount)return;var constants={};for(var i=0;i>2]);constants[key]=HEAPF64[entryPtr+8>>3]}return constants},makePipelineLayout:layoutPtr=>{if(!layoutPtr)return"auto";return WebGPU.mgrPipelineLayout.get(layoutPtr)},makeProgrammableStageDescriptor:ptr=>{if(!ptr)return undefined;var desc={module:WebGPU.mgrShaderModule.get(HEAPU32[ptr+4>>2]),constants:WebGPU.makePipelineConstants(HEAPU32[ptr+12>>2],HEAPU32[ptr+16>>2])};var entryPointPtr=HEAPU32[ptr+8>>2];if(entryPointPtr)desc["entryPoint"]=UTF8ToString(entryPointPtr);return desc},fillLimitStruct:(limits,supportedLimitsOutPtr)=>{var limitsOutPtr=supportedLimitsOutPtr+8;function setLimitValueU32(name,limitOffset){var limitValue=limits[name];HEAP32[limitsOutPtr+limitOffset>>2]=limitValue}function setLimitValueU64(name,limitOffset){var limitValue=limits[name];tempI64=[limitValue>>>0,(tempDouble=limitValue,+Math.abs(tempDouble)>=1?tempDouble>0?+Math.floor(tempDouble/4294967296)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[limitsOutPtr+limitOffset>>2]=tempI64[0],HEAP32[limitsOutPtr+(limitOffset+4)>>2]=tempI64[1]}setLimitValueU32("maxTextureDimension1D",0);setLimitValueU32("maxTextureDimension2D",4);setLimitValueU32("maxTextureDimension3D",8);setLimitValueU32("maxTextureArrayLayers",12);setLimitValueU32("maxBindGroups",16);setLimitValueU32("maxBindGroupsPlusVertexBuffers",20);setLimitValueU32("maxBindingsPerBindGroup",24);setLimitValueU32("maxDynamicUniformBuffersPerPipelineLayout",28);setLimitValueU32("maxDynamicStorageBuffersPerPipelineLayout",32);setLimitValueU32("maxSampledTexturesPerShaderStage",36);setLimitValueU32("maxSamplersPerShaderStage",40);setLimitValueU32("maxStorageBuffersPerShaderStage",44);setLimitValueU32("maxStorageTexturesPerShaderStage",48);setLimitValueU32("maxUniformBuffersPerShaderStage",52);setLimitValueU32("minUniformBufferOffsetAlignment",72);setLimitValueU32("minStorageBufferOffsetAlignment",76);setLimitValueU64("maxUniformBufferBindingSize",56);setLimitValueU64("maxStorageBufferBindingSize",64);setLimitValueU32("maxVertexBuffers",80);setLimitValueU32("maxBufferSize",88);setLimitValueU32("maxVertexAttributes",96);setLimitValueU32("maxVertexBufferArrayStride",100);setLimitValueU32("maxInterStageShaderComponents",104);setLimitValueU32("maxInterStageShaderVariables",108);setLimitValueU32("maxColorAttachments",112);setLimitValueU32("maxColorAttachmentBytesPerSample",116);setLimitValueU32("maxComputeWorkgroupStorageSize",120);setLimitValueU32("maxComputeInvocationsPerWorkgroup",124);setLimitValueU32("maxComputeWorkgroupSizeX",128);setLimitValueU32("maxComputeWorkgroupSizeY",132);setLimitValueU32("maxComputeWorkgroupSizeZ",136);setLimitValueU32("maxComputeWorkgroupsPerDimension",140)},Int_BufferMapState:{unmapped:0,pending:1,mapped:2},Int_CompilationMessageType:{error:0,warning:1,info:2},Int_DeviceLostReason:{undefined:1,unknown:1,destroyed:2},Int_PreferredFormat:{rgba8unorm:18,bgra8unorm:23},WGSLFeatureName:[,"readonly_and_readwrite_storage_textures","packed_4x8_integer_dot_product","unrestricted_pointer_parameters","pointer_composite_access"],AddressMode:[,"clamp-to-edge","repeat","mirror-repeat"],BlendFactor:[,"zero","one","src","one-minus-src","src-alpha","one-minus-src-alpha","dst","one-minus-dst","dst-alpha","one-minus-dst-alpha","src-alpha-saturated","constant","one-minus-constant"],BlendOperation:[,"add","subtract","reverse-subtract","min","max"],BufferBindingType:[,"uniform","storage","read-only-storage"],BufferMapState:{1:"unmapped",2:"pending",3:"mapped"},CompareFunction:[,"never","less","equal","less-equal","greater","not-equal","greater-equal","always"],CompilationInfoRequestStatus:["success","error","device-lost","unknown"],CullMode:[,"none","front","back"],ErrorFilter:{1:"validation",2:"out-of-memory",3:"internal"},FeatureName:[,"depth-clip-control","depth32float-stencil8","timestamp-query","texture-compression-bc","texture-compression-etc2","texture-compression-astc","indirect-first-instance","shader-f16","rg11b10ufloat-renderable","bgra8unorm-storage","float32-filterable"],FilterMode:[,"nearest","linear"],FrontFace:[,"ccw","cw"],IndexFormat:[,"uint16","uint32"],LoadOp:[,"clear","load"],MipmapFilterMode:[,"nearest","linear"],PowerPreference:[,"low-power","high-performance"],PrimitiveTopology:[,"point-list","line-list","line-strip","triangle-list","triangle-strip"],QueryType:{1:"occlusion",2:"timestamp"},SamplerBindingType:[,"filtering","non-filtering","comparison"],StencilOperation:[,"keep","zero","replace","invert","increment-clamp","decrement-clamp","increment-wrap","decrement-wrap"],StorageTextureAccess:[,"write-only","read-only","read-write"],StoreOp:[,"store","discard"],TextureAspect:[,"all","stencil-only","depth-only"],TextureDimension:[,"1d","2d","3d"],TextureFormat:[,"r8unorm","r8snorm","r8uint","r8sint","r16uint","r16sint","r16float","rg8unorm","rg8snorm","rg8uint","rg8sint","r32float","r32uint","r32sint","rg16uint","rg16sint","rg16float","rgba8unorm","rgba8unorm-srgb","rgba8snorm","rgba8uint","rgba8sint","bgra8unorm","bgra8unorm-srgb","rgb10a2uint","rgb10a2unorm","rg11b10ufloat","rgb9e5ufloat","rg32float","rg32uint","rg32sint","rgba16uint","rgba16sint","rgba16float","rgba32float","rgba32uint","rgba32sint","stencil8","depth16unorm","depth24plus","depth24plus-stencil8","depth32float","depth32float-stencil8","bc1-rgba-unorm","bc1-rgba-unorm-srgb","bc2-rgba-unorm","bc2-rgba-unorm-srgb","bc3-rgba-unorm","bc3-rgba-unorm-srgb","bc4-r-unorm","bc4-r-snorm","bc5-rg-unorm","bc5-rg-snorm","bc6h-rgb-ufloat","bc6h-rgb-float","bc7-rgba-unorm","bc7-rgba-unorm-srgb","etc2-rgb8unorm","etc2-rgb8unorm-srgb","etc2-rgb8a1unorm","etc2-rgb8a1unorm-srgb","etc2-rgba8unorm","etc2-rgba8unorm-srgb","eac-r11unorm","eac-r11snorm","eac-rg11unorm","eac-rg11snorm","astc-4x4-unorm","astc-4x4-unorm-srgb","astc-5x4-unorm","astc-5x4-unorm-srgb","astc-5x5-unorm","astc-5x5-unorm-srgb","astc-6x5-unorm","astc-6x5-unorm-srgb","astc-6x6-unorm","astc-6x6-unorm-srgb","astc-8x5-unorm","astc-8x5-unorm-srgb","astc-8x6-unorm","astc-8x6-unorm-srgb","astc-8x8-unorm","astc-8x8-unorm-srgb","astc-10x5-unorm","astc-10x5-unorm-srgb","astc-10x6-unorm","astc-10x6-unorm-srgb","astc-10x8-unorm","astc-10x8-unorm-srgb","astc-10x10-unorm","astc-10x10-unorm-srgb","astc-12x10-unorm","astc-12x10-unorm-srgb","astc-12x12-unorm","astc-12x12-unorm-srgb"],TextureSampleType:[,"float","unfilterable-float","depth","sint","uint"],TextureViewDimension:[,"1d","2d","2d-array","cube","cube-array","3d"],VertexFormat:[,"uint8x2","uint8x4","sint8x2","sint8x4","unorm8x2","unorm8x4","snorm8x2","snorm8x4","uint16x2","uint16x4","sint16x2","sint16x4","unorm16x2","unorm16x4","snorm16x2","snorm16x4","float16x2","float16x4","float32","float32x2","float32x3","float32x4","uint32","uint32x2","uint32x3","uint32x4","sint32","sint32x2","sint32x3","sint32x4","unorm10-10-10-2"],VertexStepMode:[,"vertex-buffer-not-used","vertex","instance"],FeatureNameString2Enum:{undefined:"0","depth-clip-control":"1","depth32float-stencil8":"2","timestamp-query":"3","texture-compression-bc":"4","texture-compression-etc2":"5","texture-compression-astc":"6","indirect-first-instance":"7","shader-f16":"8","rg11b10ufloat-renderable":"9","bgra8unorm-storage":"10","float32-filterable":"11"}};var JsValStore={values:{},next_id:1,add(js_val){var id;do{id=JsValStore.next_id++;if(JsValStore.next_id>2147483647)JsValStore.next_id=1}while(id in JsValStore.values);JsValStore.values[id]=js_val;return id},remove(id){delete JsValStore.values[id]},get(id){return JsValStore.values[id]}};var _emscripten_webgpu_export_bind_group_layout=handle=>JsValStore.add(WebGPU.mgrBindGroupLayout.get(handle));var _emscripten_webgpu_export_device=handle=>JsValStore.add(WebGPU.mgrDevice.get(handle));var _emscripten_webgpu_export_sampler=handle=>JsValStore.add(WebGPU.mgrSampler.get(handle));var _emscripten_webgpu_export_texture=handle=>JsValStore.add(WebGPU.mgrTexture.get(handle));var _emscripten_webgpu_get_device=()=>{if(WebGPU.preinitializedDeviceId===undefined){var device=Module["preinitializedWebGPUDevice"];var deviceWrapper={queueId:WebGPU.mgrQueue.create(device["queue"])};WebGPU.preinitializedDeviceId=WebGPU.mgrDevice.create(device,deviceWrapper)}WebGPU.mgrDevice.reference(WebGPU.preinitializedDeviceId);return WebGPU.preinitializedDeviceId};var _emscripten_webgpu_import_bind_group=handle=>WebGPU.mgrBindGroup.create(JsValStore.get(handle));var _emscripten_webgpu_import_texture=handle=>WebGPU.mgrTexture.create(JsValStore.get(handle));var _emscripten_webgpu_release_js_handle=id=>JsValStore.remove(id);var ENV={};var getExecutableName=()=>thisProgram||"./this.program";var getEnvStrings=()=>{if(!getEnvStrings.strings){var lang=(typeof navigator=="object"&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8";var env={USER:"web_user",LOGNAME:"web_user",PATH:"/",PWD:"/",HOME:"/home/web_user",LANG:lang,_:getExecutableName()};for(var x in ENV){if(ENV[x]===undefined)delete env[x];else env[x]=ENV[x]}var strings=[];for(var x in env){strings.push(`${x}=${env[x]}`)}getEnvStrings.strings=strings}return getEnvStrings.strings};var stringToAscii=(str,buffer)=>{for(var i=0;i{var bufSize=0;getEnvStrings().forEach((string,i)=>{var ptr=environ_buf+bufSize;HEAPU32[__environ+i*4>>2]=ptr;stringToAscii(string,ptr);bufSize+=string.length+1});return 0};var _environ_sizes_get=(penviron_count,penviron_buf_size)=>{var strings=getEnvStrings();HEAPU32[penviron_count>>2]=strings.length;var bufSize=0;strings.forEach(string=>bufSize+=string.length+1);HEAPU32[penviron_buf_size>>2]=bufSize;return 0};function _fd_close(fd){try{var stream=SYSCALLS.getStreamFromFD(fd);FS.close(stream);return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return e.errno}}var doReadv=(stream,iov,iovcnt,offset)=>{var ret=0;for(var i=0;i>2];var len=HEAPU32[iov+4>>2];iov+=8;var curr=FS.read(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr;if(curr>2]=num;return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return e.errno}}function _fd_seek(fd,offset_low,offset_high,whence,newOffset){var offset=convertI32PairToI53Checked(offset_low,offset_high);try{if(isNaN(offset))return 61;var stream=SYSCALLS.getStreamFromFD(fd);FS.llseek(stream,offset,whence);tempI64=[stream.position>>>0,(tempDouble=stream.position,+Math.abs(tempDouble)>=1?tempDouble>0?+Math.floor(tempDouble/4294967296)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[newOffset>>2]=tempI64[0],HEAP32[newOffset+4>>2]=tempI64[1];if(stream.getdents&&offset===0&&whence===0)stream.getdents=null;return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return e.errno}}var doWritev=(stream,iov,iovcnt,offset)=>{var ret=0;for(var i=0;i>2];var len=HEAPU32[iov+4>>2];iov+=8;var curr=FS.write(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr;if(typeof offset!="undefined"){offset+=curr}}return ret};function _fd_write(fd,iov,iovcnt,pnum){try{var stream=SYSCALLS.getStreamFromFD(fd);var num=doWritev(stream,iov,iovcnt);HEAPU32[pnum>>2]=num;return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return e.errno}}var _getentropy=(buffer,size)=>{randomFill(HEAPU8.subarray(buffer,buffer+size));return 0};var _glActiveTexture=x0=>GLctx.activeTexture(x0);var _glAttachShader=(program,shader)=>{GLctx.attachShader(GL.programs[program],GL.shaders[shader])};var _glBindAttribLocation=(program,index,name)=>{GLctx.bindAttribLocation(GL.programs[program],index,UTF8ToString(name))};var _glBindBuffer=(target,buffer)=>{if(target==34962){GLctx.currentArrayBufferBinding=buffer}else if(target==34963){GLctx.currentElementArrayBufferBinding=buffer}if(target==35051){GLctx.currentPixelPackBufferBinding=buffer}else if(target==35052){GLctx.currentPixelUnpackBufferBinding=buffer}GLctx.bindBuffer(target,GL.buffers[buffer])};var _glBindBufferBase=(target,index,buffer)=>{GLctx.bindBufferBase(target,index,GL.buffers[buffer])};var _glBindFramebuffer=(target,framebuffer)=>{GLctx.bindFramebuffer(target,GL.framebuffers[framebuffer])};var _glBindTexture=(target,texture)=>{GLctx.bindTexture(target,GL.textures[texture])};var _glBindVertexArray=vao=>{GLctx.bindVertexArray(GL.vaos[vao]);var ibo=GLctx.getParameter(34965);GLctx.currentElementArrayBufferBinding=ibo?ibo.name|0:0};var _glBlendEquation=x0=>GLctx.blendEquation(x0);var _glBlendFunc=(x0,x1)=>GLctx.blendFunc(x0,x1);var _glBufferData=(target,size,data,usage)=>{if(GL.currentContext.version>=2){if(data&&size){GLctx.bufferData(target,HEAPU8,usage,data,size)}else{GLctx.bufferData(target,size,usage)}return}GLctx.bufferData(target,data?HEAPU8.subarray(data,data+size):size,usage)};var _glClear=x0=>GLctx.clear(x0);var _glClearColor=(x0,x1,x2,x3)=>GLctx.clearColor(x0,x1,x2,x3);var convertI32PairToI53=(lo,hi)=>(lo>>>0)+hi*4294967296;var _glClientWaitSync=(sync,flags,timeout_low,timeout_high)=>{var timeout=convertI32PairToI53(timeout_low,timeout_high);return GLctx.clientWaitSync(GL.syncs[sync],flags,timeout)};var _glCompileShader=shader=>{GLctx.compileShader(GL.shaders[shader])};var _glCreateProgram=()=>{var id=GL.getNewId(GL.programs);var program=GLctx.createProgram();program.name=id;program.maxUniformLength=program.maxAttributeLength=program.maxUniformBlockNameLength=0;program.uniformIdCounter=1;GL.programs[id]=program;return id};var _glCreateShader=shaderType=>{var id=GL.getNewId(GL.shaders);GL.shaders[id]=GLctx.createShader(shaderType);return id};var _glDeleteBuffers=(n,buffers)=>{for(var i=0;i>2];var buffer=GL.buffers[id];if(!buffer)continue;GLctx.deleteBuffer(buffer);buffer.name=0;GL.buffers[id]=null;if(id==GLctx.currentArrayBufferBinding)GLctx.currentArrayBufferBinding=0;if(id==GLctx.currentElementArrayBufferBinding)GLctx.currentElementArrayBufferBinding=0;if(id==GLctx.currentPixelPackBufferBinding)GLctx.currentPixelPackBufferBinding=0;if(id==GLctx.currentPixelUnpackBufferBinding)GLctx.currentPixelUnpackBufferBinding=0}};var _glDeleteFramebuffers=(n,framebuffers)=>{for(var i=0;i>2];var framebuffer=GL.framebuffers[id];if(!framebuffer)continue;GLctx.deleteFramebuffer(framebuffer);framebuffer.name=0;GL.framebuffers[id]=null}};var _glDeleteProgram=id=>{if(!id)return;var program=GL.programs[id];if(!program){GL.recordError(1281);return}GLctx.deleteProgram(program);program.name=0;GL.programs[id]=null};var _glDeleteShader=id=>{if(!id)return;var shader=GL.shaders[id];if(!shader){GL.recordError(1281);return}GLctx.deleteShader(shader);GL.shaders[id]=null};var _glDeleteSync=id=>{if(!id)return;var sync=GL.syncs[id];if(!sync){GL.recordError(1281);return}GLctx.deleteSync(sync);sync.name=0;GL.syncs[id]=null};var _glDeleteTextures=(n,textures)=>{for(var i=0;i>2];var texture=GL.textures[id];if(!texture)continue;GLctx.deleteTexture(texture);texture.name=0;GL.textures[id]=null}};var _glDeleteVertexArrays=(n,vaos)=>{for(var i=0;i>2];GLctx.deleteVertexArray(GL.vaos[id]);GL.vaos[id]=null}};var _glDetachShader=(program,shader)=>{GLctx.detachShader(GL.programs[program],GL.shaders[shader])};var _glDisable=x0=>GLctx.disable(x0);var _glDisableVertexAttribArray=index=>{var cb=GL.currentContext.clientBuffers[index];cb.enabled=false;GLctx.disableVertexAttribArray(index)};var _glDrawArrays=(mode,first,count)=>{GL.preDrawHandleClientVertexAttribBindings(first+count);GLctx.drawArrays(mode,first,count);GL.postDrawHandleClientVertexAttribBindings()};var tempFixedLengthArray=[];var _glDrawBuffers=(n,bufs)=>{var bufArray=tempFixedLengthArray[n];for(var i=0;i>2]}GLctx.drawBuffers(bufArray)};var _glEnable=x0=>GLctx.enable(x0);var _glEnableVertexAttribArray=index=>{var cb=GL.currentContext.clientBuffers[index];cb.enabled=true;GLctx.enableVertexAttribArray(index)};var _glFenceSync=(condition,flags)=>{var sync=GLctx.fenceSync(condition,flags);if(sync){var id=GL.getNewId(GL.syncs);sync.name=id;GL.syncs[id]=sync;return id}return 0};var _glFinish=()=>GLctx.finish();var _glFlush=()=>GLctx.flush();var _glFramebufferTexture2D=(target,attachment,textarget,texture,level)=>{GLctx.framebufferTexture2D(target,attachment,textarget,GL.textures[texture],level)};var _glFramebufferTextureLayer=(target,attachment,texture,level,layer)=>{GLctx.framebufferTextureLayer(target,attachment,GL.textures[texture],level,layer)};var _glGenBuffers=(n,buffers)=>{GL.genObject(n,buffers,"createBuffer",GL.buffers)};var _glGenFramebuffers=(n,ids)=>{GL.genObject(n,ids,"createFramebuffer",GL.framebuffers)};var _glGenTextures=(n,textures)=>{GL.genObject(n,textures,"createTexture",GL.textures)};var _glGenVertexArrays=(n,arrays)=>{GL.genObject(n,arrays,"createVertexArray",GL.vaos)};var _glGetAttribLocation=(program,name)=>GLctx.getAttribLocation(GL.programs[program],UTF8ToString(name));var _glGetError=()=>{var error=GLctx.getError()||GL.lastError;GL.lastError=0;return error};var writeI53ToI64=(ptr,num)=>{HEAPU32[ptr>>2]=num;var lower=HEAPU32[ptr>>2];HEAPU32[ptr+4>>2]=(num-lower)/4294967296};var webglGetExtensions=function $webglGetExtensions(){var exts=getEmscriptenSupportedExtensions(GLctx);exts=exts.concat(exts.map(e=>"GL_"+e));return exts};var emscriptenWebGLGet=(name_,p,type)=>{if(!p){GL.recordError(1281);return}var ret=undefined;switch(name_){case 36346:ret=1;break;case 36344:if(type!=0&&type!=1){GL.recordError(1280)}return;case 34814:case 36345:ret=0;break;case 34466:var formats=GLctx.getParameter(34467);ret=formats?formats.length:0;break;case 33309:if(GL.currentContext.version<2){GL.recordError(1282);return}ret=webglGetExtensions().length;break;case 33307:case 33308:if(GL.currentContext.version<2){GL.recordError(1280);return}ret=name_==33307?3:0;break}if(ret===undefined){var result=GLctx.getParameter(name_);switch(typeof result){case"number":ret=result;break;case"boolean":ret=result?1:0;break;case"string":GL.recordError(1280);return;case"object":if(result===null){switch(name_){case 34964:case 35725:case 34965:case 36006:case 36007:case 32873:case 34229:case 36662:case 36663:case 35053:case 35055:case 36010:case 35097:case 35869:case 32874:case 36389:case 35983:case 35368:case 34068:{ret=0;break}default:{GL.recordError(1280);return}}}else if(result instanceof Float32Array||result instanceof Uint32Array||result instanceof Int32Array||result instanceof Array){for(var i=0;i>2]=result[i];break;case 2:HEAPF32[p+i*4>>2]=result[i];break;case 4:HEAP8[p+i]=result[i]?1:0;break}}return}else{try{ret=result.name|0}catch(e){GL.recordError(1280);err(`GL_INVALID_ENUM in glGet${type}v: Unknown object returned from WebGL getParameter(${name_})! (error: ${e})`);return}}break;default:GL.recordError(1280);err(`GL_INVALID_ENUM in glGet${type}v: Native code calling glGet${type}v(${name_}) and it returns ${result} of type ${typeof result}!`);return}}switch(type){case 1:writeI53ToI64(p,ret);break;case 0:HEAP32[p>>2]=ret;break;case 2:HEAPF32[p>>2]=ret;break;case 4:HEAP8[p]=ret?1:0;break}};var _glGetIntegerv=(name_,p)=>emscriptenWebGLGet(name_,p,0);var _glGetProgramiv=(program,pname,p)=>{if(!p){GL.recordError(1281);return}if(program>=GL.counter){GL.recordError(1281);return}program=GL.programs[program];if(pname==35716){var log=GLctx.getProgramInfoLog(program);if(log===null)log="(unknown error)";HEAP32[p>>2]=log.length+1}else if(pname==35719){if(!program.maxUniformLength){for(var i=0;i>2]=program.maxUniformLength}else if(pname==35722){if(!program.maxAttributeLength){for(var i=0;i>2]=program.maxAttributeLength}else if(pname==35381){if(!program.maxUniformBlockNameLength){for(var i=0;i>2]=program.maxUniformBlockNameLength}else{HEAP32[p>>2]=GLctx.getProgramParameter(program,pname)}};var _glGetShaderInfoLog=(shader,maxLength,length,infoLog)=>{var log=GLctx.getShaderInfoLog(GL.shaders[shader]);if(log===null)log="(unknown error)";var numBytesWrittenExclNull=maxLength>0&&infoLog?stringToUTF8(log,infoLog,maxLength):0;if(length)HEAP32[length>>2]=numBytesWrittenExclNull};var _glGetShaderiv=(shader,pname,p)=>{if(!p){GL.recordError(1281);return}if(pname==35716){var log=GLctx.getShaderInfoLog(GL.shaders[shader]);if(log===null)log="(unknown error)";var logLength=log?log.length+1:0;HEAP32[p>>2]=logLength}else if(pname==35720){var source=GLctx.getShaderSource(GL.shaders[shader]);var sourceLength=source?source.length+1:0;HEAP32[p>>2]=sourceLength}else{HEAP32[p>>2]=GLctx.getShaderParameter(GL.shaders[shader],pname)}};var stringToNewUTF8=str=>{var size=lengthBytesUTF8(str)+1;var ret=_malloc(size);if(ret)stringToUTF8(str,ret,size);return ret};var _glGetString=name_=>{var ret=GL.stringCache[name_];if(!ret){switch(name_){case 7939:ret=stringToNewUTF8(webglGetExtensions().join(" "));break;case 7936:case 7937:case 37445:case 37446:var s=GLctx.getParameter(name_);if(!s){GL.recordError(1280)}ret=s?stringToNewUTF8(s):0;break;case 7938:var glVersion=GLctx.getParameter(7938);if(GL.currentContext.version>=2)glVersion=`OpenGL ES 3.0 (${glVersion})`;else{glVersion=`OpenGL ES 2.0 (${glVersion})`}ret=stringToNewUTF8(glVersion);break;case 35724:var glslVersion=GLctx.getParameter(35724);var ver_re=/^WebGL GLSL ES ([0-9]\.[0-9][0-9]?)(?:$| .*)/;var ver_num=glslVersion.match(ver_re);if(ver_num!==null){if(ver_num[1].length==3)ver_num[1]=ver_num[1]+"0";glslVersion=`OpenGL ES GLSL ES ${ver_num[1]} (${glslVersion})`}ret=stringToNewUTF8(glslVersion);break;default:GL.recordError(1280)}GL.stringCache[name_]=ret}return ret};var _glGetUniformBlockIndex=(program,uniformBlockName)=>GLctx.getUniformBlockIndex(GL.programs[program],UTF8ToString(uniformBlockName));var jstoi_q=str=>parseInt(str);var webglGetLeftBracePos=name=>name.slice(-1)=="]"&&name.lastIndexOf("[");var webglPrepareUniformLocationsBeforeFirstUse=program=>{var uniformLocsById=program.uniformLocsById,uniformSizeAndIdsByName=program.uniformSizeAndIdsByName,i,j;if(!uniformLocsById){program.uniformLocsById=uniformLocsById={};program.uniformArrayNamesById={};for(i=0;i0?nm.slice(0,lb):nm;var id=program.uniformIdCounter;program.uniformIdCounter+=sz;uniformSizeAndIdsByName[arrayName]=[sz,id];for(j=0;j{name=UTF8ToString(name);if(program=GL.programs[program]){webglPrepareUniformLocationsBeforeFirstUse(program);var uniformLocsById=program.uniformLocsById;var arrayIndex=0;var uniformBaseName=name;var leftBrace=webglGetLeftBracePos(name);if(leftBrace>0){arrayIndex=jstoi_q(name.slice(leftBrace+1))>>>0;uniformBaseName=name.slice(0,leftBrace)}var sizeAndId=program.uniformSizeAndIdsByName[uniformBaseName];if(sizeAndId&&arrayIndex{program=GL.programs[program];GLctx.linkProgram(program);program.uniformLocsById=0;program.uniformSizeAndIdsByName={}};var _glPixelStorei=(pname,param)=>{if(pname==3317){GL.unpackAlignment=param}else if(pname==3314){GL.unpackRowLength=param}GLctx.pixelStorei(pname,param)};var computeUnpackAlignedImageSize=(width,height,sizePerPixel)=>{function roundedToNextMultipleOf(x,y){return x+y-1&-y}var plainRowSize=(GL.unpackRowLength||width)*sizePerPixel;var alignedRowSize=roundedToNextMultipleOf(plainRowSize,GL.unpackAlignment);return height*alignedRowSize};var colorChannelsInGlTextureFormat=format=>{var colorChannels={5:3,6:4,8:2,29502:3,29504:4,26917:2,26918:2,29846:3,29847:4};return colorChannels[format-6402]||1};var heapObjectForWebGLType=type=>{type-=5120;if(type==0)return HEAP8;if(type==1)return HEAPU8;if(type==2)return HEAP16;if(type==4)return HEAP32;if(type==6)return HEAPF32;if(type==5||type==28922||type==28520||type==30779||type==30782)return HEAPU32;return HEAPU16};var toTypedArrayIndex=(pointer,heap)=>pointer>>>31-Math.clz32(heap.BYTES_PER_ELEMENT);var emscriptenWebGLGetTexPixelData=(type,format,width,height,pixels,internalFormat)=>{var heap=heapObjectForWebGLType(type);var sizePerPixel=colorChannelsInGlTextureFormat(format)*heap.BYTES_PER_ELEMENT;var bytes=computeUnpackAlignedImageSize(width,height,sizePerPixel);return heap.subarray(toTypedArrayIndex(pixels,heap),toTypedArrayIndex(pixels+bytes,heap))};var _glReadPixels=(x,y,width,height,format,type,pixels)=>{if(GL.currentContext.version>=2){if(GLctx.currentPixelPackBufferBinding){GLctx.readPixels(x,y,width,height,format,type,pixels);return}var heap=heapObjectForWebGLType(type);var target=toTypedArrayIndex(pixels,heap);GLctx.readPixels(x,y,width,height,format,type,heap,target);return}var pixelData=emscriptenWebGLGetTexPixelData(type,format,width,height,pixels,format);if(!pixelData){GL.recordError(1280);return}GLctx.readPixels(x,y,width,height,format,type,pixelData)};var _glShaderSource=(shader,count,string,length)=>{var source=GL.getSource(shader,count,string,length);GLctx.shaderSource(GL.shaders[shader],source)};var _glTexImage2D=(target,level,internalFormat,width,height,border,format,type,pixels)=>{if(GL.currentContext.version>=2){if(GLctx.currentPixelUnpackBufferBinding){GLctx.texImage2D(target,level,internalFormat,width,height,border,format,type,pixels);return}if(pixels){var heap=heapObjectForWebGLType(type);var index=toTypedArrayIndex(pixels,heap);GLctx.texImage2D(target,level,internalFormat,width,height,border,format,type,heap,index);return}}var pixelData=pixels?emscriptenWebGLGetTexPixelData(type,format,width,height,pixels,internalFormat):null;GLctx.texImage2D(target,level,internalFormat,width,height,border,format,type,pixelData)};var _glTexParameterf=(x0,x1,x2)=>GLctx.texParameterf(x0,x1,x2);var _glTexParameterfv=(target,pname,params)=>{var param=HEAPF32[params>>2];GLctx.texParameterf(target,pname,param)};var _glTexParameteri=(x0,x1,x2)=>GLctx.texParameteri(x0,x1,x2);var _glTexStorage2D=(x0,x1,x2,x3,x4)=>GLctx.texStorage2D(x0,x1,x2,x3,x4);var _glTexStorage3D=(x0,x1,x2,x3,x4,x5)=>GLctx.texStorage3D(x0,x1,x2,x3,x4,x5);var _glTexSubImage2D=(target,level,xoffset,yoffset,width,height,format,type,pixels)=>{if(GL.currentContext.version>=2){if(GLctx.currentPixelUnpackBufferBinding){GLctx.texSubImage2D(target,level,xoffset,yoffset,width,height,format,type,pixels);return}if(pixels){var heap=heapObjectForWebGLType(type);GLctx.texSubImage2D(target,level,xoffset,yoffset,width,height,format,type,heap,toTypedArrayIndex(pixels,heap));return}}var pixelData=pixels?emscriptenWebGLGetTexPixelData(type,format,width,height,pixels,0):null;GLctx.texSubImage2D(target,level,xoffset,yoffset,width,height,format,type,pixelData)};var _glTexSubImage3D=(target,level,xoffset,yoffset,zoffset,width,height,depth,format,type,pixels)=>{if(GLctx.currentPixelUnpackBufferBinding){GLctx.texSubImage3D(target,level,xoffset,yoffset,zoffset,width,height,depth,format,type,pixels)}else if(pixels){var heap=heapObjectForWebGLType(type);GLctx.texSubImage3D(target,level,xoffset,yoffset,zoffset,width,height,depth,format,type,heap,toTypedArrayIndex(pixels,heap))}else{GLctx.texSubImage3D(target,level,xoffset,yoffset,zoffset,width,height,depth,format,type,null)}};var webglGetUniformLocation=location=>{var p=GLctx.currentProgram;if(p){var webglLoc=p.uniformLocsById[location];if(typeof webglLoc=="number"){p.uniformLocsById[location]=webglLoc=GLctx.getUniformLocation(p,p.uniformArrayNamesById[location]+(webglLoc>0?`[${webglLoc}]`:""))}return webglLoc}else{GL.recordError(1282)}};var _glUniform1f=(location,v0)=>{GLctx.uniform1f(webglGetUniformLocation(location),v0)};var _glUniform1i=(location,v0)=>{GLctx.uniform1i(webglGetUniformLocation(location),v0)};var _glUniform2f=(location,v0,v1)=>{GLctx.uniform2f(webglGetUniformLocation(location),v0,v1)};var miniTempWebGLFloatBuffers=[];var _glUniform2fv=(location,count,value)=>{if(GL.currentContext.version>=2){count&&GLctx.uniform2fv(webglGetUniformLocation(location),HEAPF32,value>>2,count*2);return}if(count<=144){var view=miniTempWebGLFloatBuffers[2*count];for(var i=0;i<2*count;i+=2){view[i]=HEAPF32[value+4*i>>2];view[i+1]=HEAPF32[value+(4*i+4)>>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*8>>2)}GLctx.uniform2fv(webglGetUniformLocation(location),view)};var _glUniform3f=(location,v0,v1,v2)=>{GLctx.uniform3f(webglGetUniformLocation(location),v0,v1,v2)};var _glUniform4fv=(location,count,value)=>{if(GL.currentContext.version>=2){count&&GLctx.uniform4fv(webglGetUniformLocation(location),HEAPF32,value>>2,count*4);return}if(count<=72){var view=miniTempWebGLFloatBuffers[4*count];var heap=HEAPF32;value=value>>2;for(var i=0;i<4*count;i+=4){var dst=value+i;view[i]=heap[dst];view[i+1]=heap[dst+1];view[i+2]=heap[dst+2];view[i+3]=heap[dst+3]}}else{var view=HEAPF32.subarray(value>>2,value+count*16>>2)}GLctx.uniform4fv(webglGetUniformLocation(location),view)};var miniTempWebGLIntBuffers=[];var _glUniform4iv=(location,count,value)=>{if(GL.currentContext.version>=2){count&&GLctx.uniform4iv(webglGetUniformLocation(location),HEAP32,value>>2,count*4);return}if(count<=72){var view=miniTempWebGLIntBuffers[4*count];for(var i=0;i<4*count;i+=4){view[i]=HEAP32[value+4*i>>2];view[i+1]=HEAP32[value+(4*i+4)>>2];view[i+2]=HEAP32[value+(4*i+8)>>2];view[i+3]=HEAP32[value+(4*i+12)>>2]}}else{var view=HEAP32.subarray(value>>2,value+count*16>>2)}GLctx.uniform4iv(webglGetUniformLocation(location),view)};var _glUniformBlockBinding=(program,uniformBlockIndex,uniformBlockBinding)=>{program=GL.programs[program];GLctx.uniformBlockBinding(program,uniformBlockIndex,uniformBlockBinding)};var _glUniformMatrix4fv=(location,count,transpose,value)=>{if(GL.currentContext.version>=2){count&&GLctx.uniformMatrix4fv(webglGetUniformLocation(location),!!transpose,HEAPF32,value>>2,count*16);return}if(count<=18){var view=miniTempWebGLFloatBuffers[16*count];var heap=HEAPF32;value=value>>2;for(var i=0;i<16*count;i+=16){var dst=value+i;view[i]=heap[dst];view[i+1]=heap[dst+1];view[i+2]=heap[dst+2];view[i+3]=heap[dst+3];view[i+4]=heap[dst+4];view[i+5]=heap[dst+5];view[i+6]=heap[dst+6];view[i+7]=heap[dst+7];view[i+8]=heap[dst+8];view[i+9]=heap[dst+9];view[i+10]=heap[dst+10];view[i+11]=heap[dst+11];view[i+12]=heap[dst+12];view[i+13]=heap[dst+13];view[i+14]=heap[dst+14];view[i+15]=heap[dst+15]}}else{var view=HEAPF32.subarray(value>>2,value+count*64>>2)}GLctx.uniformMatrix4fv(webglGetUniformLocation(location),!!transpose,view)};var _glUseProgram=program=>{program=GL.programs[program];GLctx.useProgram(program);GLctx.currentProgram=program};var _glVertexAttribPointer=(index,size,type,normalized,stride,ptr)=>{var cb=GL.currentContext.clientBuffers[index];if(!GLctx.currentArrayBufferBinding){cb.size=size;cb.type=type;cb.normalized=normalized;cb.stride=stride;cb.ptr=ptr;cb.clientside=true;cb.vertexAttribPointerAdaptor=function(index,size,type,normalized,stride,ptr){this.vertexAttribPointer(index,size,type,normalized,stride,ptr)};return}cb.clientside=false;GLctx.vertexAttribPointer(index,size,type,!!normalized,stride,ptr)};var _glViewport=(x0,x1,x2,x3)=>GLctx.viewport(x0,x1,x2,x3);function _mediapipe_find_canvas_event_target(canvasSelector){let target=findCanvasEventTarget(canvasSelector);if(Module&&!target){target=Module.canvasWebGpu}return Emval.toHandle(target)}function _mediapipe_webgl_tex_image_drawable(drawableHandle){const drawable=Emval.toValue(drawableHandle);GLctx.texImage2D(GLctx.TEXTURE_2D,0,GLctx.RGBA,GLctx.RGBA,GLctx.UNSIGNED_BYTE,drawable)}var _wgpuBindGroupLayoutRelease=id=>WebGPU.mgrBindGroupLayout.release(id);var _wgpuBindGroupRelease=id=>WebGPU.mgrBindGroup.release(id);var _wgpuBufferDestroy=bufferId=>{var bufferWrapper=WebGPU.mgrBuffer.objects[bufferId];if(bufferWrapper.onUnmap){for(var i=0;i{var bufferWrapper=WebGPU.mgrBuffer.objects[bufferId];if(size===0)warnOnce("getMappedRange size=0 no longer means WGPU_WHOLE_MAP_SIZE");if(size==-1)size=undefined;if(bufferWrapper.mapMode!==2){return 0}var mapped;try{mapped=bufferWrapper.object.getMappedRange(offset,size)}catch(ex){return 0}var data=_memalign(16,mapped.byteLength);HEAPU8.fill(0,data,mapped.byteLength);bufferWrapper.onUnmap.push(()=>{new Uint8Array(mapped).set(HEAPU8.subarray(data,data+mapped.byteLength));_free(data)});return data};var _wgpuBufferReference=id=>WebGPU.mgrBuffer.reference(id);var _wgpuBufferRelease=id=>WebGPU.mgrBuffer.release(id);var _wgpuBufferUnmap=bufferId=>{var bufferWrapper=WebGPU.mgrBuffer.objects[bufferId];if(!bufferWrapper.onUnmap){return}for(var i=0;iWebGPU.mgrCommandBuffer.release(id);var _wgpuCommandEncoderBeginComputePass=(encoderId,descriptor)=>{var desc;function makeComputePassTimestampWrites(twPtr){if(twPtr===0)return undefined;return{querySet:WebGPU.mgrQuerySet.get(HEAPU32[twPtr>>2]),beginningOfPassWriteIndex:HEAPU32[twPtr+4>>2],endOfPassWriteIndex:HEAPU32[twPtr+8>>2]}}if(descriptor){desc={label:undefined,timestampWrites:makeComputePassTimestampWrites(HEAPU32[descriptor+8>>2])};var labelPtr=HEAPU32[descriptor+4>>2];if(labelPtr)desc["label"]=UTF8ToString(labelPtr)}var commandEncoder=WebGPU.mgrCommandEncoder.get(encoderId);return WebGPU.mgrComputePassEncoder.create(commandEncoder.beginComputePass(desc))};var _wgpuCommandEncoderBeginRenderPass=(encoderId,descriptor)=>{function makeColorAttachment(caPtr){var viewPtr=HEAPU32[caPtr+4>>2];if(viewPtr===0){return undefined}var depthSlice=HEAP32[caPtr+8>>2];if(depthSlice==-1)depthSlice=undefined;var loadOpInt=HEAPU32[caPtr+16>>2];var storeOpInt=HEAPU32[caPtr+20>>2];var clearValue=WebGPU.makeColor(caPtr+24);return{view:WebGPU.mgrTextureView.get(viewPtr),depthSlice:depthSlice,resolveTarget:WebGPU.mgrTextureView.get(HEAPU32[caPtr+12>>2]),clearValue:clearValue,loadOp:WebGPU.LoadOp[loadOpInt],storeOp:WebGPU.StoreOp[storeOpInt]}}function makeColorAttachments(count,caPtr){var attachments=[];for(var i=0;i>2]),depthClearValue:HEAPF32[dsaPtr+12>>2],depthLoadOp:WebGPU.LoadOp[HEAPU32[dsaPtr+4>>2]],depthStoreOp:WebGPU.StoreOp[HEAPU32[dsaPtr+8>>2]],depthReadOnly:!!HEAPU32[dsaPtr+16>>2],stencilClearValue:HEAPU32[dsaPtr+28>>2],stencilLoadOp:WebGPU.LoadOp[HEAPU32[dsaPtr+20>>2]],stencilStoreOp:WebGPU.StoreOp[HEAPU32[dsaPtr+24>>2]],stencilReadOnly:!!HEAPU32[dsaPtr+32>>2]}}function makeRenderPassTimestampWrites(twPtr){if(twPtr===0)return undefined;return{querySet:WebGPU.mgrQuerySet.get(HEAPU32[twPtr>>2]),beginningOfPassWriteIndex:HEAPU32[twPtr+4>>2],endOfPassWriteIndex:HEAPU32[twPtr+8>>2]}}function makeRenderPassDescriptor(descriptor){var nextInChainPtr=HEAPU32[descriptor>>2];var maxDrawCount=undefined;if(nextInChainPtr!==0){var sType=HEAPU32[nextInChainPtr+4>>2];var renderPassDescriptorMaxDrawCount=nextInChainPtr;maxDrawCount=HEAPU32[renderPassDescriptorMaxDrawCount+4+8>>2]*4294967296+HEAPU32[renderPassDescriptorMaxDrawCount+8>>2]}var desc={label:undefined,colorAttachments:makeColorAttachments(HEAPU32[descriptor+8>>2],HEAPU32[descriptor+12>>2]),depthStencilAttachment:makeDepthStencilAttachment(HEAPU32[descriptor+16>>2]),occlusionQuerySet:WebGPU.mgrQuerySet.get(HEAPU32[descriptor+20>>2]),timestampWrites:makeRenderPassTimestampWrites(HEAPU32[descriptor+24>>2]),maxDrawCount:maxDrawCount};var labelPtr=HEAPU32[descriptor+4>>2];if(labelPtr)desc["label"]=UTF8ToString(labelPtr);return desc}var desc=makeRenderPassDescriptor(descriptor);var commandEncoder=WebGPU.mgrCommandEncoder.get(encoderId);return WebGPU.mgrRenderPassEncoder.create(commandEncoder.beginRenderPass(desc))};var _wgpuCommandEncoderCopyBufferToTexture=(encoderId,srcPtr,dstPtr,copySizePtr)=>{var commandEncoder=WebGPU.mgrCommandEncoder.get(encoderId);var copySize=WebGPU.makeExtent3D(copySizePtr);commandEncoder.copyBufferToTexture(WebGPU.makeImageCopyBuffer(srcPtr),WebGPU.makeImageCopyTexture(dstPtr),copySize)};var _wgpuCommandEncoderCopyTextureToBuffer=(encoderId,srcPtr,dstPtr,copySizePtr)=>{var commandEncoder=WebGPU.mgrCommandEncoder.get(encoderId);var copySize=WebGPU.makeExtent3D(copySizePtr);commandEncoder.copyTextureToBuffer(WebGPU.makeImageCopyTexture(srcPtr),WebGPU.makeImageCopyBuffer(dstPtr),copySize)};var _wgpuCommandEncoderCopyTextureToTexture=(encoderId,srcPtr,dstPtr,copySizePtr)=>{var commandEncoder=WebGPU.mgrCommandEncoder.get(encoderId);var copySize=WebGPU.makeExtent3D(copySizePtr);commandEncoder.copyTextureToTexture(WebGPU.makeImageCopyTexture(srcPtr),WebGPU.makeImageCopyTexture(dstPtr),copySize)};var _wgpuCommandEncoderFinish=(encoderId,descriptor)=>{var commandEncoder=WebGPU.mgrCommandEncoder.get(encoderId);return WebGPU.mgrCommandBuffer.create(commandEncoder.finish())};var _wgpuCommandEncoderRelease=id=>WebGPU.mgrCommandEncoder.release(id);var _wgpuComputePassEncoderDispatchWorkgroups=(passId,x,y,z)=>{var pass=WebGPU.mgrComputePassEncoder.get(passId);pass.dispatchWorkgroups(x,y,z)};var _wgpuComputePassEncoderEnd=passId=>{var pass=WebGPU.mgrComputePassEncoder.get(passId);pass.end()};var _wgpuComputePassEncoderRelease=id=>WebGPU.mgrComputePassEncoder.release(id);var _wgpuComputePassEncoderSetBindGroup=(passId,groupIndex,groupId,dynamicOffsetCount,dynamicOffsetsPtr)=>{var pass=WebGPU.mgrComputePassEncoder.get(passId);var group=WebGPU.mgrBindGroup.get(groupId);if(dynamicOffsetCount==0){pass.setBindGroup(groupIndex,group)}else{var offsets=[];for(var i=0;i>2])}pass.setBindGroup(groupIndex,group,offsets)}};var _wgpuComputePassEncoderSetPipeline=(passId,pipelineId)=>{var pass=WebGPU.mgrComputePassEncoder.get(passId);var pipeline=WebGPU.mgrComputePipeline.get(pipelineId);pass.setPipeline(pipeline)};var _wgpuComputePipelineGetBindGroupLayout=(pipelineId,groupIndex)=>{var pipeline=WebGPU.mgrComputePipeline.get(pipelineId);return WebGPU.mgrBindGroupLayout.create(pipeline.getBindGroupLayout(groupIndex))};var _wgpuComputePipelineRelease=id=>WebGPU.mgrComputePipeline.release(id);var readI53FromI64=ptr=>HEAPU32[ptr>>2]+HEAP32[ptr+4>>2]*4294967296;var _wgpuDeviceCreateBindGroup=(deviceId,descriptor)=>{function makeEntry(entryPtr){var bufferId=HEAPU32[entryPtr+8>>2];var samplerId=HEAPU32[entryPtr+32>>2];var textureViewId=HEAPU32[entryPtr+36>>2];var binding=HEAPU32[entryPtr+4>>2];if(bufferId){var size=readI53FromI64(entryPtr+24);if(size==-1)size=undefined;return{binding:binding,resource:{buffer:WebGPU.mgrBuffer.get(bufferId),offset:HEAPU32[entryPtr+4+16>>2]*4294967296+HEAPU32[entryPtr+16>>2],size:size}}}else if(samplerId){return{binding:binding,resource:WebGPU.mgrSampler.get(samplerId)}}else{return{binding:binding,resource:WebGPU.mgrTextureView.get(textureViewId)}}}function makeEntries(count,entriesPtrs){var entries=[];for(var i=0;i>2]),entries:makeEntries(HEAPU32[descriptor+12>>2],HEAPU32[descriptor+16>>2])};var labelPtr=HEAPU32[descriptor+4>>2];if(labelPtr)desc["label"]=UTF8ToString(labelPtr);var device=WebGPU.mgrDevice.get(deviceId);return WebGPU.mgrBindGroup.create(device.createBindGroup(desc))};var _wgpuDeviceCreateBuffer=(deviceId,descriptor)=>{var mappedAtCreation=!!HEAPU32[descriptor+24>>2];var desc={label:undefined,usage:HEAPU32[descriptor+8>>2],size:HEAPU32[descriptor+4+16>>2]*4294967296+HEAPU32[descriptor+16>>2],mappedAtCreation:mappedAtCreation};var labelPtr=HEAPU32[descriptor+4>>2];if(labelPtr)desc["label"]=UTF8ToString(labelPtr);var device=WebGPU.mgrDevice.get(deviceId);var bufferWrapper={};var id=WebGPU.mgrBuffer.create(device.createBuffer(desc),bufferWrapper);if(mappedAtCreation){bufferWrapper.mapMode=2;bufferWrapper.onUnmap=[]}return id};var _wgpuDeviceCreateCommandEncoder=(deviceId,descriptor)=>{var desc;if(descriptor){desc={label:undefined};var labelPtr=HEAPU32[descriptor+4>>2];if(labelPtr)desc["label"]=UTF8ToString(labelPtr)}var device=WebGPU.mgrDevice.get(deviceId);return WebGPU.mgrCommandEncoder.create(device.createCommandEncoder(desc))};var generateComputePipelineDesc=descriptor=>{var desc={label:undefined,layout:WebGPU.makePipelineLayout(HEAPU32[descriptor+8>>2]),compute:WebGPU.makeProgrammableStageDescriptor(descriptor+12)};var labelPtr=HEAPU32[descriptor+4>>2];if(labelPtr)desc["label"]=UTF8ToString(labelPtr);return desc};var _wgpuDeviceCreateComputePipeline=(deviceId,descriptor)=>{var desc=generateComputePipelineDesc(descriptor);var device=WebGPU.mgrDevice.get(deviceId);return WebGPU.mgrComputePipeline.create(device.createComputePipeline(desc))};var generateRenderPipelineDesc=descriptor=>{function makePrimitiveState(rsPtr){if(!rsPtr)return undefined;var nextInChainPtr=HEAPU32[rsPtr>>2];var sType=nextInChainPtr?HEAPU32[nextInChainPtr+4>>2]:0;return{topology:WebGPU.PrimitiveTopology[HEAPU32[rsPtr+4>>2]],stripIndexFormat:WebGPU.IndexFormat[HEAPU32[rsPtr+8>>2]],frontFace:WebGPU.FrontFace[HEAPU32[rsPtr+12>>2]],cullMode:WebGPU.CullMode[HEAPU32[rsPtr+16>>2]],unclippedDepth:sType===7&&!!HEAPU32[nextInChainPtr+8>>2]}}function makeBlendComponent(bdPtr){if(!bdPtr)return undefined;return{operation:WebGPU.BlendOperation[HEAPU32[bdPtr>>2]],srcFactor:WebGPU.BlendFactor[HEAPU32[bdPtr+4>>2]],dstFactor:WebGPU.BlendFactor[HEAPU32[bdPtr+8>>2]]}}function makeBlendState(bsPtr){if(!bsPtr)return undefined;return{alpha:makeBlendComponent(bsPtr+12),color:makeBlendComponent(bsPtr+0)}}function makeColorState(csPtr){var formatInt=HEAPU32[csPtr+4>>2];return formatInt===0?undefined:{format:WebGPU.TextureFormat[formatInt],blend:makeBlendState(HEAPU32[csPtr+8>>2]),writeMask:HEAPU32[csPtr+12>>2]}}function makeColorStates(count,csArrayPtr){var states=[];for(var i=0;i>2]],failOp:WebGPU.StencilOperation[HEAPU32[ssfPtr+4>>2]],depthFailOp:WebGPU.StencilOperation[HEAPU32[ssfPtr+8>>2]],passOp:WebGPU.StencilOperation[HEAPU32[ssfPtr+12>>2]]}}function makeDepthStencilState(dssPtr){if(!dssPtr)return undefined;return{format:WebGPU.TextureFormat[HEAPU32[dssPtr+4>>2]],depthWriteEnabled:!!HEAPU32[dssPtr+8>>2],depthCompare:WebGPU.CompareFunction[HEAPU32[dssPtr+12>>2]],stencilFront:makeStencilStateFace(dssPtr+16),stencilBack:makeStencilStateFace(dssPtr+32),stencilReadMask:HEAPU32[dssPtr+48>>2],stencilWriteMask:HEAPU32[dssPtr+52>>2],depthBias:HEAP32[dssPtr+56>>2],depthBiasSlopeScale:HEAPF32[dssPtr+60>>2],depthBiasClamp:HEAPF32[dssPtr+64>>2]}}function makeVertexAttribute(vaPtr){return{format:WebGPU.VertexFormat[HEAPU32[vaPtr>>2]],offset:HEAPU32[vaPtr+4+8>>2]*4294967296+HEAPU32[vaPtr+8>>2],shaderLocation:HEAPU32[vaPtr+16>>2]}}function makeVertexAttributes(count,vaArrayPtr){var vas=[];for(var i=0;i>2];return stepModeInt===1?null:{arrayStride:HEAPU32[vbPtr+4>>2]*4294967296+HEAPU32[vbPtr>>2],stepMode:WebGPU.VertexStepMode[stepModeInt],attributes:makeVertexAttributes(HEAPU32[vbPtr+12>>2],HEAPU32[vbPtr+16>>2])}}function makeVertexBuffers(count,vbArrayPtr){if(!count)return undefined;var vbs=[];for(var i=0;i>2]),constants:WebGPU.makePipelineConstants(HEAPU32[viPtr+12>>2],HEAPU32[viPtr+16>>2]),buffers:makeVertexBuffers(HEAPU32[viPtr+20>>2],HEAPU32[viPtr+24>>2])};var entryPointPtr=HEAPU32[viPtr+8>>2];if(entryPointPtr)desc["entryPoint"]=UTF8ToString(entryPointPtr);return desc}function makeMultisampleState(msPtr){if(!msPtr)return undefined;return{count:HEAPU32[msPtr+4>>2],mask:HEAPU32[msPtr+8>>2],alphaToCoverageEnabled:!!HEAPU32[msPtr+12>>2]}}function makeFragmentState(fsPtr){if(!fsPtr)return undefined;var desc={module:WebGPU.mgrShaderModule.get(HEAPU32[fsPtr+4>>2]),constants:WebGPU.makePipelineConstants(HEAPU32[fsPtr+12>>2],HEAPU32[fsPtr+16>>2]),targets:makeColorStates(HEAPU32[fsPtr+20>>2],HEAPU32[fsPtr+24>>2])};var entryPointPtr=HEAPU32[fsPtr+8>>2];if(entryPointPtr)desc["entryPoint"]=UTF8ToString(entryPointPtr);return desc}var desc={label:undefined,layout:WebGPU.makePipelineLayout(HEAPU32[descriptor+8>>2]),vertex:makeVertexState(descriptor+12),primitive:makePrimitiveState(descriptor+40),depthStencil:makeDepthStencilState(HEAPU32[descriptor+60>>2]),multisample:makeMultisampleState(descriptor+64),fragment:makeFragmentState(HEAPU32[descriptor+80>>2])};var labelPtr=HEAPU32[descriptor+4>>2];if(labelPtr)desc["label"]=UTF8ToString(labelPtr);return desc};var _wgpuDeviceCreateRenderPipeline=(deviceId,descriptor)=>{var desc=generateRenderPipelineDesc(descriptor);var device=WebGPU.mgrDevice.get(deviceId);return WebGPU.mgrRenderPipeline.create(device.createRenderPipeline(desc))};var _wgpuDeviceCreateSampler=(deviceId,descriptor)=>{var desc;if(descriptor){desc={label:undefined,addressModeU:WebGPU.AddressMode[HEAPU32[descriptor+8>>2]],addressModeV:WebGPU.AddressMode[HEAPU32[descriptor+12>>2]],addressModeW:WebGPU.AddressMode[HEAPU32[descriptor+16>>2]],magFilter:WebGPU.FilterMode[HEAPU32[descriptor+20>>2]],minFilter:WebGPU.FilterMode[HEAPU32[descriptor+24>>2]],mipmapFilter:WebGPU.MipmapFilterMode[HEAPU32[descriptor+28>>2]],lodMinClamp:HEAPF32[descriptor+32>>2],lodMaxClamp:HEAPF32[descriptor+36>>2],compare:WebGPU.CompareFunction[HEAPU32[descriptor+40>>2]]};var labelPtr=HEAPU32[descriptor+4>>2];if(labelPtr)desc["label"]=UTF8ToString(labelPtr)}var device=WebGPU.mgrDevice.get(deviceId);return WebGPU.mgrSampler.create(device.createSampler(desc))};var _wgpuDeviceCreateShaderModule=(deviceId,descriptor)=>{var nextInChainPtr=HEAPU32[descriptor>>2];var sType=HEAPU32[nextInChainPtr+4>>2];var desc={label:undefined,code:""};var labelPtr=HEAPU32[descriptor+4>>2];if(labelPtr)desc["label"]=UTF8ToString(labelPtr);switch(sType){case 5:{var count=HEAPU32[nextInChainPtr+8>>2];var start=HEAPU32[nextInChainPtr+12>>2];var offset=start>>2;desc["code"]=HEAPU32.subarray(offset,offset+count);break}case 6:{var sourcePtr=HEAPU32[nextInChainPtr+8>>2];if(sourcePtr){desc["code"]=UTF8ToString(sourcePtr)}break}}var device=WebGPU.mgrDevice.get(deviceId);return WebGPU.mgrShaderModule.create(device.createShaderModule(desc))};var _wgpuDeviceCreateTexture=(deviceId,descriptor)=>{var desc={label:undefined,size:WebGPU.makeExtent3D(descriptor+16),mipLevelCount:HEAPU32[descriptor+32>>2],sampleCount:HEAPU32[descriptor+36>>2],dimension:WebGPU.TextureDimension[HEAPU32[descriptor+12>>2]],format:WebGPU.TextureFormat[HEAPU32[descriptor+28>>2]],usage:HEAPU32[descriptor+8>>2]};var labelPtr=HEAPU32[descriptor+4>>2];if(labelPtr)desc["label"]=UTF8ToString(labelPtr);var viewFormatCount=HEAPU32[descriptor+40>>2];if(viewFormatCount){var viewFormatsPtr=HEAPU32[descriptor+44>>2];desc["viewFormats"]=Array.from(HEAP32.subarray(viewFormatsPtr>>2,viewFormatsPtr+viewFormatCount*4>>2),function(format){return WebGPU.TextureFormat[format]})}var device=WebGPU.mgrDevice.get(deviceId);return WebGPU.mgrTexture.create(device.createTexture(desc))};var _wgpuDeviceGetQueue=deviceId=>{var queueId=WebGPU.mgrDevice.objects[deviceId].queueId;WebGPU.mgrQueue.reference(queueId);return queueId};var _wgpuDeviceReference=id=>WebGPU.mgrDevice.reference(id);var _wgpuDeviceRelease=id=>WebGPU.mgrDevice.release(id);var _wgpuPipelineLayoutRelease=id=>WebGPU.mgrPipelineLayout.release(id);var _wgpuQuerySetRelease=id=>WebGPU.mgrQuerySet.release(id);var _wgpuQueueRelease=id=>WebGPU.mgrQueue.release(id);var _wgpuQueueSubmit=(queueId,commandCount,commands)=>{var queue=WebGPU.mgrQueue.get(queueId);var cmds=Array.from(HEAP32.subarray(commands>>2,commands+commandCount*4>>2),id=>WebGPU.mgrCommandBuffer.get(id));queue.submit(cmds)};function _wgpuQueueWriteBuffer(queueId,bufferId,bufferOffset_low,bufferOffset_high,data,size){var bufferOffset=convertI32PairToI53Checked(bufferOffset_low,bufferOffset_high);var queue=WebGPU.mgrQueue.get(queueId);var buffer=WebGPU.mgrBuffer.get(bufferId);var subarray=HEAPU8.subarray(data,data+size);queue.writeBuffer(buffer,bufferOffset,subarray,0,size)}var _wgpuRenderPassEncoderDraw=(passId,vertexCount,instanceCount,firstVertex,firstInstance)=>{var pass=WebGPU.mgrRenderPassEncoder.get(passId);pass.draw(vertexCount,instanceCount,firstVertex,firstInstance)};var _wgpuRenderPassEncoderEnd=encoderId=>{var encoder=WebGPU.mgrRenderPassEncoder.get(encoderId);encoder.end()};var _wgpuRenderPassEncoderRelease=id=>WebGPU.mgrRenderPassEncoder.release(id);var _wgpuRenderPassEncoderSetBindGroup=(passId,groupIndex,groupId,dynamicOffsetCount,dynamicOffsetsPtr)=>{var pass=WebGPU.mgrRenderPassEncoder.get(passId);var group=WebGPU.mgrBindGroup.get(groupId);if(dynamicOffsetCount==0){pass.setBindGroup(groupIndex,group)}else{var offsets=[];for(var i=0;i>2])}pass.setBindGroup(groupIndex,group,offsets)}};var _wgpuRenderPassEncoderSetPipeline=(passId,pipelineId)=>{var pass=WebGPU.mgrRenderPassEncoder.get(passId);var pipeline=WebGPU.mgrRenderPipeline.get(pipelineId);pass.setPipeline(pipeline)};var _wgpuRenderPipelineGetBindGroupLayout=(pipelineId,groupIndex)=>{var pipeline=WebGPU.mgrRenderPipeline.get(pipelineId);return WebGPU.mgrBindGroupLayout.create(pipeline.getBindGroupLayout(groupIndex))};var _wgpuRenderPipelineRelease=id=>WebGPU.mgrRenderPipeline.release(id);var _wgpuSamplerReference=id=>WebGPU.mgrSampler.reference(id);var _wgpuSamplerRelease=id=>WebGPU.mgrSampler.release(id);var _wgpuShaderModuleReference=id=>WebGPU.mgrShaderModule.reference(id);var _wgpuShaderModuleRelease=id=>WebGPU.mgrShaderModule.release(id);var _wgpuTextureCreateView=(textureId,descriptor)=>{var desc;if(descriptor){var mipLevelCount=HEAPU32[descriptor+20>>2];var arrayLayerCount=HEAPU32[descriptor+28>>2];desc={format:WebGPU.TextureFormat[HEAPU32[descriptor+8>>2]],dimension:WebGPU.TextureViewDimension[HEAPU32[descriptor+12>>2]],baseMipLevel:HEAPU32[descriptor+16>>2],mipLevelCount:mipLevelCount===4294967295?undefined:mipLevelCount,baseArrayLayer:HEAPU32[descriptor+24>>2],arrayLayerCount:arrayLayerCount===4294967295?undefined:arrayLayerCount,aspect:WebGPU.TextureAspect[HEAPU32[descriptor+32>>2]]};var labelPtr=HEAPU32[descriptor+4>>2];if(labelPtr)desc["label"]=UTF8ToString(labelPtr)}var texture=WebGPU.mgrTexture.get(textureId);return WebGPU.mgrTextureView.create(texture.createView(desc))};var _wgpuTextureDestroy=textureId=>WebGPU.mgrTexture.get(textureId).destroy();var _wgpuTextureGetFormat=textureId=>{var texture=WebGPU.mgrTexture.get(textureId);return WebGPU.TextureFormat.indexOf(texture.format)};var _wgpuTextureReference=id=>WebGPU.mgrTexture.reference(id);var _wgpuTextureRelease=id=>WebGPU.mgrTexture.release(id);var _wgpuTextureViewReference=id=>WebGPU.mgrTextureView.reference(id);var _wgpuTextureViewRelease=id=>WebGPU.mgrTextureView.release(id);var getCFunc=ident=>{var func=Module["_"+ident];return func};var writeArrayToMemory=(array,buffer)=>{HEAP8.set(array,buffer)};var ccall=(ident,returnType,argTypes,args,opts)=>{var toC={string:str=>{var ret=0;if(str!==null&&str!==undefined&&str!==0){ret=stringToUTF8OnStack(str)}return ret},array:arr=>{var ret=stackAlloc(arr.length);writeArrayToMemory(arr,ret);return ret}};function convertReturnValue(ret){if(returnType==="string"){return UTF8ToString(ret)}if(returnType==="boolean")return Boolean(ret);return ret}var func=getCFunc(ident);var cArgs=[];var stack=0;if(args){for(var i=0;iFS.unlink(path);var FS_createLazyFile=FS.createLazyFile;var FS_createDevice=FS.createDevice;Module["requestFullscreen"]=Browser.requestFullscreen;Module["requestAnimationFrame"]=Browser.requestAnimationFrame;Module["setCanvasSize"]=Browser.setCanvasSize;Module["pauseMainLoop"]=Browser.mainLoop.pause;Module["resumeMainLoop"]=Browser.mainLoop.resume;Module["getUserMedia"]=Browser.getUserMedia;Module["createContext"]=Browser.createContext;var preloadedImages={};var preloadedAudios={};FS.createPreloadedFile=FS_createPreloadedFile;FS.staticInit();Module["FS_createPath"]=FS.createPath;Module["FS_createDataFile"]=FS.createDataFile;Module["FS_createPreloadedFile"]=FS.createPreloadedFile;Module["FS_unlink"]=FS.unlink;Module["FS_createLazyFile"]=FS.createLazyFile;Module["FS_createDevice"]=FS.createDevice;embind_init_charCodes();BindingError=Module["BindingError"]=class BindingError extends Error{constructor(message){super(message);this.name="BindingError"}};InternalError=Module["InternalError"]=class InternalError extends Error{constructor(message){super(message);this.name="InternalError"}};init_emval();var GLctx;WebGPU.initManagers();for(var i=0;i<32;++i)tempFixedLengthArray.push(new Array(i));var miniTempWebGLFloatBuffersStorage=new Float32Array(288);for(var i=0;i<=288;++i){miniTempWebGLFloatBuffers[i]=miniTempWebGLFloatBuffersStorage.subarray(0,i)}var miniTempWebGLIntBuffersStorage=new Int32Array(288);for(var i=0;i<=288;++i){miniTempWebGLIntBuffers[i]=miniTempWebGLIntBuffersStorage.subarray(0,i)}var wasmImports={vd:GetAdapterArchitecture,ud:GetAdapterDescription,td:GetAdapterDeviceName,sd:GetAdapterVendor,rd:HaveOffsetConverter,qd:JsOnEmptyPacketListener,pd:JsOnFloat32ArrayImageListener,od:JsOnFloat32ArrayImageVectorListener,Ma:JsOnSimpleListenerBinaryArray,nd:JsOnSimpleListenerBool,md:JsOnSimpleListenerDouble,ld:JsOnSimpleListenerFloat,kd:JsOnSimpleListenerInt,jd:JsOnSimpleListenerString,id:JsOnSimpleListenerUint,hd:JsOnUint8ArrayImageListener,gd:JsOnUint8ArrayImageVectorListener,G:JsOnVectorFinishedListener,fd:JsOnVectorListenerBool,ed:JsOnVectorListenerDouble,dd:JsOnVectorListenerFloat,cd:JsOnVectorListenerInt,bd:JsOnVectorListenerProto,ad:JsOnVectorListenerString,$c:JsOnVectorListenerUint,_c:JsOnWebGLTextureListener,Zc:JsOnWebGLTextureVectorListener,la:JsWrapErrorListener,La:JsWrapImageConverter,p:JsWrapSimpleListeners,Ka:UseBottomLeftGpuOrigin,Pb:__asyncjs__mediapipe_map_buffer_jspi,o:___cxa_throw,Yc:___syscall_dup,Xc:___syscall_faccessat,Ja:___syscall_fcntl64,Wc:___syscall_fstat64,Vc:___syscall_ioctl,Uc:___syscall_lstat64,Tc:___syscall_newfstatat,Ia:___syscall_openat,Sc:___syscall_stat64,Nc:__abort_js,Zb:__embind_register_bigint,Mc:__embind_register_bool,Lc:__embind_register_emval,Ha:__embind_register_float,E:__embind_register_integer,n:__embind_register_memory_view,Ga:__embind_register_std_string,ia:__embind_register_std_wstring,Kc:__embind_register_void,Jc:__emscripten_get_now_is_monotonic,Ic:__emscripten_memcpy_js,ha:__emval_as,m:__emval_decref,ga:__emval_get_global,Fa:__emval_get_property,Ea:__emval_incref,fa:__emval_instanceof,ba:__emval_new_cstring,ea:__emval_run_destructors,Da:__emval_set_property,aa:__emval_take_value,Hc:__emval_typeof,Yb:__gmtime_js,Xb:__localtime_js,Wb:__mktime_js,Vb:__mmap_js,Ub:__munmap_js,Gc:__tzset_js,Fc:custom_emscripten_dbgn,D:_emscripten_asm_const_int,Ec:_emscripten_date_now,da:_emscripten_errn,Dc:_emscripten_get_heap_max,t:_emscripten_get_now,Cc:_emscripten_has_asyncify,Bc:_emscripten_outn,Ac:_emscripten_pc_get_function,zc:_emscripten_resize_heap,yc:_emscripten_stack_snapshot,xc:_emscripten_stack_unwind_buffer,wc:_emscripten_webgl_create_context,vc:_emscripten_webgl_destroy_context,uc:_emscripten_webgl_get_context_attributes,Ca:_emscripten_webgl_get_current_context,tc:_emscripten_webgl_make_context_current,sc:_emscripten_webgpu_export_bind_group_layout,Ba:_emscripten_webgpu_export_device,rc:_emscripten_webgpu_export_sampler,qc:_emscripten_webgpu_export_texture,L:_emscripten_webgpu_get_device,pc:_emscripten_webgpu_import_bind_group,oc:_emscripten_webgpu_import_texture,S:_emscripten_webgpu_release_js_handle,Rc:_environ_get,Qc:_environ_sizes_get,Aa:_exit,ka:_fd_close,Pc:_fd_read,_b:_fd_seek,ja:_fd_write,nc:_getentropy,b:_glActiveTexture,$:_glAttachShader,mc:_glBindAttribLocation,d:_glBindBuffer,lc:_glBindBufferBase,u:_glBindFramebuffer,a:_glBindTexture,r:_glBindVertexArray,za:_glBlendEquation,kc:_glBlendFunc,k:_glBufferData,w:_glClear,_:_glClearColor,O:_glClientWaitSync,ya:_glCompileShader,xa:_glCreateProgram,wa:_glCreateShader,A:_glDeleteBuffers,K:_glDeleteFramebuffers,h:_glDeleteProgram,Z:_glDeleteShader,Y:_glDeleteSync,y:_glDeleteTextures,J:_glDeleteVertexArrays,va:_glDetachShader,I:_glDisable,q:_glDisableVertexAttribArray,l:_glDrawArrays,R:_glDrawBuffers,jc:_glEnable,j:_glEnableVertexAttribArray,ua:_glFenceSync,X:_glFinish,z:_glFlush,x:_glFramebufferTexture2D,ta:_glFramebufferTextureLayer,v:_glGenBuffers,N:_glGenFramebuffers,C:_glGenTextures,H:_glGenVertexArrays,sa:_glGetAttribLocation,W:_glGetError,s:_glGetIntegerv,ic:_glGetProgramiv,hc:_glGetShaderInfoLog,gc:_glGetShaderiv,F:_glGetString,fc:_glGetUniformBlockIndex,f:_glGetUniformLocation,ra:_glLinkProgram,V:_glPixelStorei,ca:_glReadPixels,qa:_glShaderSource,B:_glTexImage2D,U:_glTexParameterf,pa:_glTexParameterfv,c:_glTexParameteri,T:_glTexStorage2D,ec:_glTexStorage3D,Q:_glTexSubImage2D,dc:_glTexSubImage3D,P:_glUniform1f,e:_glUniform1i,cc:_glUniform2f,bc:_glUniform2fv,oa:_glUniform3f,na:_glUniform4fv,ac:_glUniform4iv,$b:_glUniformBlockBinding,ma:_glUniformMatrix4fv,g:_glUseProgram,i:_glVertexAttribPointer,M:_glViewport,Sb:mediapipe_create_utility_canvas2d,Rb:_mediapipe_find_canvas_event_target,Qb:mediapipe_import_external_texture,Ob:_mediapipe_webgl_tex_image_drawable,Oc:_proc_exit,Nb:_wgpuBindGroupLayoutRelease,Mb:_wgpuBindGroupRelease,Lb:_wgpuBufferDestroy,Kb:_wgpuBufferGetMappedRange,Jb:_wgpuBufferReference,Ib:_wgpuBufferRelease,Hb:_wgpuBufferUnmap,Gb:_wgpuCommandBufferRelease,Fb:_wgpuCommandEncoderBeginComputePass,Eb:_wgpuCommandEncoderBeginRenderPass,Db:_wgpuCommandEncoderCopyBufferToTexture,Cb:_wgpuCommandEncoderCopyTextureToBuffer,Bb:_wgpuCommandEncoderCopyTextureToTexture,Ab:_wgpuCommandEncoderFinish,zb:_wgpuCommandEncoderRelease,yb:_wgpuComputePassEncoderDispatchWorkgroups,xb:_wgpuComputePassEncoderEnd,wb:_wgpuComputePassEncoderRelease,vb:_wgpuComputePassEncoderSetBindGroup,ub:_wgpuComputePassEncoderSetPipeline,tb:_wgpuComputePipelineGetBindGroupLayout,sb:_wgpuComputePipelineRelease,rb:_wgpuDeviceCreateBindGroup,qb:_wgpuDeviceCreateBuffer,pb:_wgpuDeviceCreateCommandEncoder,ob:_wgpuDeviceCreateComputePipeline,nb:_wgpuDeviceCreateRenderPipeline,mb:_wgpuDeviceCreateSampler,lb:_wgpuDeviceCreateShaderModule,kb:_wgpuDeviceCreateTexture,jb:_wgpuDeviceGetQueue,ib:_wgpuDeviceReference,hb:_wgpuDeviceRelease,gb:_wgpuPipelineLayoutRelease,fb:_wgpuQuerySetRelease,eb:_wgpuQueueRelease,db:_wgpuQueueSubmit,Tb:_wgpuQueueWriteBuffer,cb:_wgpuRenderPassEncoderDraw,bb:_wgpuRenderPassEncoderEnd,ab:_wgpuRenderPassEncoderRelease,$a:_wgpuRenderPassEncoderSetBindGroup,_a:_wgpuRenderPassEncoderSetPipeline,Za:_wgpuRenderPipelineGetBindGroupLayout,Ya:_wgpuRenderPipelineRelease,Xa:_wgpuSamplerReference,Wa:_wgpuSamplerRelease,Va:_wgpuShaderModuleReference,Ua:_wgpuShaderModuleRelease,Ta:_wgpuTextureCreateView,Sa:_wgpuTextureDestroy,Ra:_wgpuTextureGetFormat,Qa:_wgpuTextureReference,Pa:_wgpuTextureRelease,Oa:_wgpuTextureViewReference,Na:_wgpuTextureViewRelease};var wasmExports=createWasm();var ___wasm_call_ctors=()=>(___wasm_call_ctors=wasmExports["xd"])();var _free=Module["_free"]=a0=>(_free=Module["_free"]=wasmExports["zd"])(a0);var _malloc=Module["_malloc"]=a0=>(_malloc=Module["_malloc"]=wasmExports["Ad"])(a0);var _addBoundTextureAsImageToStream=Module["_addBoundTextureAsImageToStream"]=(a0,a1,a2,a3)=>(_addBoundTextureAsImageToStream=Module["_addBoundTextureAsImageToStream"]=wasmExports["Bd"])(a0,a1,a2,a3);var _attachImageListener=Module["_attachImageListener"]=(a0,a1)=>(_attachImageListener=Module["_attachImageListener"]=wasmExports["Cd"])(a0,a1);var _attachImageVectorListener=Module["_attachImageVectorListener"]=(a0,a1)=>(_attachImageVectorListener=Module["_attachImageVectorListener"]=wasmExports["Dd"])(a0,a1);var _registerModelResourcesGraphService=Module["_registerModelResourcesGraphService"]=()=>(_registerModelResourcesGraphService=Module["_registerModelResourcesGraphService"]=wasmExports["Ed"])();var _bindTextureToStream=Module["_bindTextureToStream"]=a0=>(_bindTextureToStream=Module["_bindTextureToStream"]=wasmExports["Fd"])(a0);var _addBoundTextureToStream=Module["_addBoundTextureToStream"]=(a0,a1,a2,a3)=>(_addBoundTextureToStream=Module["_addBoundTextureToStream"]=wasmExports["Gd"])(a0,a1,a2,a3);var _addDoubleToInputStream=Module["_addDoubleToInputStream"]=(a0,a1,a2)=>(_addDoubleToInputStream=Module["_addDoubleToInputStream"]=wasmExports["Hd"])(a0,a1,a2);var _addFloatToInputStream=Module["_addFloatToInputStream"]=(a0,a1,a2)=>(_addFloatToInputStream=Module["_addFloatToInputStream"]=wasmExports["Id"])(a0,a1,a2);var _addBoolToInputStream=Module["_addBoolToInputStream"]=(a0,a1,a2)=>(_addBoolToInputStream=Module["_addBoolToInputStream"]=wasmExports["Jd"])(a0,a1,a2);var _addIntToInputStream=Module["_addIntToInputStream"]=(a0,a1,a2)=>(_addIntToInputStream=Module["_addIntToInputStream"]=wasmExports["Kd"])(a0,a1,a2);var _addUintToInputStream=Module["_addUintToInputStream"]=(a0,a1,a2)=>(_addUintToInputStream=Module["_addUintToInputStream"]=wasmExports["Ld"])(a0,a1,a2);var _addStringToInputStream=Module["_addStringToInputStream"]=(a0,a1,a2)=>(_addStringToInputStream=Module["_addStringToInputStream"]=wasmExports["Md"])(a0,a1,a2);var _addRawDataSpanToInputStream=Module["_addRawDataSpanToInputStream"]=(a0,a1,a2,a3)=>(_addRawDataSpanToInputStream=Module["_addRawDataSpanToInputStream"]=wasmExports["Nd"])(a0,a1,a2,a3);var _allocateBoolVector=Module["_allocateBoolVector"]=a0=>(_allocateBoolVector=Module["_allocateBoolVector"]=wasmExports["Od"])(a0);var _allocateFloatVector=Module["_allocateFloatVector"]=a0=>(_allocateFloatVector=Module["_allocateFloatVector"]=wasmExports["Pd"])(a0);var _allocateDoubleVector=Module["_allocateDoubleVector"]=a0=>(_allocateDoubleVector=Module["_allocateDoubleVector"]=wasmExports["Qd"])(a0);var _allocateIntVector=Module["_allocateIntVector"]=a0=>(_allocateIntVector=Module["_allocateIntVector"]=wasmExports["Rd"])(a0);var _allocateUintVector=Module["_allocateUintVector"]=a0=>(_allocateUintVector=Module["_allocateUintVector"]=wasmExports["Sd"])(a0);var _allocateStringVector=Module["_allocateStringVector"]=a0=>(_allocateStringVector=Module["_allocateStringVector"]=wasmExports["Td"])(a0);var _addBoolVectorEntry=Module["_addBoolVectorEntry"]=(a0,a1)=>(_addBoolVectorEntry=Module["_addBoolVectorEntry"]=wasmExports["Ud"])(a0,a1);var _addFloatVectorEntry=Module["_addFloatVectorEntry"]=(a0,a1)=>(_addFloatVectorEntry=Module["_addFloatVectorEntry"]=wasmExports["Vd"])(a0,a1);var _addDoubleVectorEntry=Module["_addDoubleVectorEntry"]=(a0,a1)=>(_addDoubleVectorEntry=Module["_addDoubleVectorEntry"]=wasmExports["Wd"])(a0,a1);var _addIntVectorEntry=Module["_addIntVectorEntry"]=(a0,a1)=>(_addIntVectorEntry=Module["_addIntVectorEntry"]=wasmExports["Xd"])(a0,a1);var _addUintVectorEntry=Module["_addUintVectorEntry"]=(a0,a1)=>(_addUintVectorEntry=Module["_addUintVectorEntry"]=wasmExports["Yd"])(a0,a1);var _addStringVectorEntry=Module["_addStringVectorEntry"]=(a0,a1)=>(_addStringVectorEntry=Module["_addStringVectorEntry"]=wasmExports["Zd"])(a0,a1);var _addBoolVectorToInputStream=Module["_addBoolVectorToInputStream"]=(a0,a1,a2)=>(_addBoolVectorToInputStream=Module["_addBoolVectorToInputStream"]=wasmExports["_d"])(a0,a1,a2);var _addFloatVectorToInputStream=Module["_addFloatVectorToInputStream"]=(a0,a1,a2)=>(_addFloatVectorToInputStream=Module["_addFloatVectorToInputStream"]=wasmExports["$d"])(a0,a1,a2);var _addDoubleVectorToInputStream=Module["_addDoubleVectorToInputStream"]=(a0,a1,a2)=>(_addDoubleVectorToInputStream=Module["_addDoubleVectorToInputStream"]=wasmExports["ae"])(a0,a1,a2);var _addIntVectorToInputStream=Module["_addIntVectorToInputStream"]=(a0,a1,a2)=>(_addIntVectorToInputStream=Module["_addIntVectorToInputStream"]=wasmExports["be"])(a0,a1,a2);var _addUintVectorToInputStream=Module["_addUintVectorToInputStream"]=(a0,a1,a2)=>(_addUintVectorToInputStream=Module["_addUintVectorToInputStream"]=wasmExports["ce"])(a0,a1,a2);var _addStringVectorToInputStream=Module["_addStringVectorToInputStream"]=(a0,a1,a2)=>(_addStringVectorToInputStream=Module["_addStringVectorToInputStream"]=wasmExports["de"])(a0,a1,a2);var _addFlatHashMapToInputStream=Module["_addFlatHashMapToInputStream"]=(a0,a1,a2,a3,a4)=>(_addFlatHashMapToInputStream=Module["_addFlatHashMapToInputStream"]=wasmExports["ee"])(a0,a1,a2,a3,a4);var _addProtoToInputStream=Module["_addProtoToInputStream"]=(a0,a1,a2,a3,a4)=>(_addProtoToInputStream=Module["_addProtoToInputStream"]=wasmExports["fe"])(a0,a1,a2,a3,a4);var _addEmptyPacketToInputStream=Module["_addEmptyPacketToInputStream"]=(a0,a1)=>(_addEmptyPacketToInputStream=Module["_addEmptyPacketToInputStream"]=wasmExports["ge"])(a0,a1);var _addBoolToInputSidePacket=Module["_addBoolToInputSidePacket"]=(a0,a1)=>(_addBoolToInputSidePacket=Module["_addBoolToInputSidePacket"]=wasmExports["he"])(a0,a1);var _addDoubleToInputSidePacket=Module["_addDoubleToInputSidePacket"]=(a0,a1)=>(_addDoubleToInputSidePacket=Module["_addDoubleToInputSidePacket"]=wasmExports["ie"])(a0,a1);var _addFloatToInputSidePacket=Module["_addFloatToInputSidePacket"]=(a0,a1)=>(_addFloatToInputSidePacket=Module["_addFloatToInputSidePacket"]=wasmExports["je"])(a0,a1);var _addIntToInputSidePacket=Module["_addIntToInputSidePacket"]=(a0,a1)=>(_addIntToInputSidePacket=Module["_addIntToInputSidePacket"]=wasmExports["ke"])(a0,a1);var _addUintToInputSidePacket=Module["_addUintToInputSidePacket"]=(a0,a1)=>(_addUintToInputSidePacket=Module["_addUintToInputSidePacket"]=wasmExports["le"])(a0,a1);var _addStringToInputSidePacket=Module["_addStringToInputSidePacket"]=(a0,a1)=>(_addStringToInputSidePacket=Module["_addStringToInputSidePacket"]=wasmExports["me"])(a0,a1);var _addRawDataSpanToInputSidePacket=Module["_addRawDataSpanToInputSidePacket"]=(a0,a1,a2)=>(_addRawDataSpanToInputSidePacket=Module["_addRawDataSpanToInputSidePacket"]=wasmExports["ne"])(a0,a1,a2);var _addProtoToInputSidePacket=Module["_addProtoToInputSidePacket"]=(a0,a1,a2,a3)=>(_addProtoToInputSidePacket=Module["_addProtoToInputSidePacket"]=wasmExports["oe"])(a0,a1,a2,a3);var _addBoolVectorToInputSidePacket=Module["_addBoolVectorToInputSidePacket"]=(a0,a1)=>(_addBoolVectorToInputSidePacket=Module["_addBoolVectorToInputSidePacket"]=wasmExports["pe"])(a0,a1);var _addDoubleVectorToInputSidePacket=Module["_addDoubleVectorToInputSidePacket"]=(a0,a1)=>(_addDoubleVectorToInputSidePacket=Module["_addDoubleVectorToInputSidePacket"]=wasmExports["qe"])(a0,a1);var _addFloatVectorToInputSidePacket=Module["_addFloatVectorToInputSidePacket"]=(a0,a1)=>(_addFloatVectorToInputSidePacket=Module["_addFloatVectorToInputSidePacket"]=wasmExports["re"])(a0,a1);var _addIntVectorToInputSidePacket=Module["_addIntVectorToInputSidePacket"]=(a0,a1)=>(_addIntVectorToInputSidePacket=Module["_addIntVectorToInputSidePacket"]=wasmExports["se"])(a0,a1);var _addUintVectorToInputSidePacket=Module["_addUintVectorToInputSidePacket"]=(a0,a1)=>(_addUintVectorToInputSidePacket=Module["_addUintVectorToInputSidePacket"]=wasmExports["te"])(a0,a1);var _addStringVectorToInputSidePacket=Module["_addStringVectorToInputSidePacket"]=(a0,a1)=>(_addStringVectorToInputSidePacket=Module["_addStringVectorToInputSidePacket"]=wasmExports["ue"])(a0,a1);var _attachBoolListener=Module["_attachBoolListener"]=a0=>(_attachBoolListener=Module["_attachBoolListener"]=wasmExports["ve"])(a0);var _attachBoolVectorListener=Module["_attachBoolVectorListener"]=a0=>(_attachBoolVectorListener=Module["_attachBoolVectorListener"]=wasmExports["we"])(a0);var _attachDoubleListener=Module["_attachDoubleListener"]=a0=>(_attachDoubleListener=Module["_attachDoubleListener"]=wasmExports["xe"])(a0);var _attachDoubleVectorListener=Module["_attachDoubleVectorListener"]=a0=>(_attachDoubleVectorListener=Module["_attachDoubleVectorListener"]=wasmExports["ye"])(a0);var _attachFloatListener=Module["_attachFloatListener"]=a0=>(_attachFloatListener=Module["_attachFloatListener"]=wasmExports["ze"])(a0);var _attachFloatVectorListener=Module["_attachFloatVectorListener"]=a0=>(_attachFloatVectorListener=Module["_attachFloatVectorListener"]=wasmExports["Ae"])(a0);var _attachIntListener=Module["_attachIntListener"]=a0=>(_attachIntListener=Module["_attachIntListener"]=wasmExports["Be"])(a0);var _attachIntVectorListener=Module["_attachIntVectorListener"]=a0=>(_attachIntVectorListener=Module["_attachIntVectorListener"]=wasmExports["Ce"])(a0);var _attachUintListener=Module["_attachUintListener"]=a0=>(_attachUintListener=Module["_attachUintListener"]=wasmExports["De"])(a0);var _attachUintVectorListener=Module["_attachUintVectorListener"]=a0=>(_attachUintVectorListener=Module["_attachUintVectorListener"]=wasmExports["Ee"])(a0);var _attachStringListener=Module["_attachStringListener"]=a0=>(_attachStringListener=Module["_attachStringListener"]=wasmExports["Fe"])(a0);var _attachStringVectorListener=Module["_attachStringVectorListener"]=a0=>(_attachStringVectorListener=Module["_attachStringVectorListener"]=wasmExports["Ge"])(a0);var _attachProtoListener=Module["_attachProtoListener"]=(a0,a1)=>(_attachProtoListener=Module["_attachProtoListener"]=wasmExports["He"])(a0,a1);var _attachProtoVectorListener=Module["_attachProtoVectorListener"]=(a0,a1)=>(_attachProtoVectorListener=Module["_attachProtoVectorListener"]=wasmExports["Ie"])(a0,a1);var _getGraphConfig=Module["_getGraphConfig"]=(a0,a1)=>(_getGraphConfig=Module["_getGraphConfig"]=wasmExports["Je"])(a0,a1);var _clearSubgraphs=Module["_clearSubgraphs"]=()=>(_clearSubgraphs=Module["_clearSubgraphs"]=wasmExports["Ke"])();var _pushBinarySubgraph=Module["_pushBinarySubgraph"]=(a0,a1)=>(_pushBinarySubgraph=Module["_pushBinarySubgraph"]=wasmExports["Le"])(a0,a1);var _pushTextSubgraph=Module["_pushTextSubgraph"]=(a0,a1)=>(_pushTextSubgraph=Module["_pushTextSubgraph"]=wasmExports["Me"])(a0,a1);var _changeBinaryGraph=Module["_changeBinaryGraph"]=(a0,a1)=>(_changeBinaryGraph=Module["_changeBinaryGraph"]=wasmExports["Ne"])(a0,a1);var _changeTextGraph=Module["_changeTextGraph"]=(a0,a1)=>(_changeTextGraph=Module["_changeTextGraph"]=wasmExports["Oe"])(a0,a1);var _processGl=Module["_processGl"]=a0=>(_processGl=Module["_processGl"]=wasmExports["Pe"])(a0);var _process=Module["_process"]=a0=>(_process=Module["_process"]=wasmExports["Qe"])(a0);var _bindTextureToCanvas=Module["_bindTextureToCanvas"]=()=>(_bindTextureToCanvas=Module["_bindTextureToCanvas"]=wasmExports["Re"])();var _requestShaderRefreshOnGraphChange=Module["_requestShaderRefreshOnGraphChange"]=()=>(_requestShaderRefreshOnGraphChange=Module["_requestShaderRefreshOnGraphChange"]=wasmExports["Se"])();var _waitUntilIdle=Module["_waitUntilIdle"]=()=>(_waitUntilIdle=Module["_waitUntilIdle"]=wasmExports["Te"])();var _closeGraph=Module["_closeGraph"]=()=>(_closeGraph=Module["_closeGraph"]=wasmExports["Ue"])();var _setAutoRenderToScreen=Module["_setAutoRenderToScreen"]=a0=>(_setAutoRenderToScreen=Module["_setAutoRenderToScreen"]=wasmExports["Ve"])(a0);var ___getTypeName=a0=>(___getTypeName=wasmExports["We"])(a0);var _emscripten_builtin_memalign=(a0,a1)=>(_emscripten_builtin_memalign=wasmExports["Xe"])(a0,a1);var _memalign=(a0,a1)=>(_memalign=wasmExports["Ye"])(a0,a1);var __emscripten_tempret_set=a0=>(__emscripten_tempret_set=wasmExports["Ze"])(a0);var __emscripten_stack_restore=a0=>(__emscripten_stack_restore=wasmExports["_e"])(a0);var __emscripten_stack_alloc=a0=>(__emscripten_stack_alloc=wasmExports["$e"])(a0);var _emscripten_stack_get_current=()=>(_emscripten_stack_get_current=wasmExports["af"])();var ___cxa_is_pointer_type=a0=>(___cxa_is_pointer_type=wasmExports["bf"])(a0);var _kVersionStampBuildChangelistStr=Module["_kVersionStampBuildChangelistStr"]=1024;var _kVersionStampCitcSnapshotStr=Module["_kVersionStampCitcSnapshotStr"]=1056;var _kVersionStampCitcWorkspaceIdStr=Module["_kVersionStampCitcWorkspaceIdStr"]=1088;var _kVersionStampSourceUriStr=Module["_kVersionStampSourceUriStr"]=1600;var _kVersionStampBuildClientStr=Module["_kVersionStampBuildClientStr"]=2112;var _kVersionStampBuildClientMintStatusStr=Module["_kVersionStampBuildClientMintStatusStr"]=2624;var _kVersionStampBuildCompilerStr=Module["_kVersionStampBuildCompilerStr"]=2656;var _kVersionStampBuildDateTimePstStr=Module["_kVersionStampBuildDateTimePstStr"]=3168;var _kVersionStampBuildDepotPathStr=Module["_kVersionStampBuildDepotPathStr"]=3200;var _kVersionStampBuildIdStr=Module["_kVersionStampBuildIdStr"]=3712;var _kVersionStampBuildInfoStr=Module["_kVersionStampBuildInfoStr"]=4224;var _kVersionStampBuildLabelStr=Module["_kVersionStampBuildLabelStr"]=4736;var _kVersionStampBuildTargetStr=Module["_kVersionStampBuildTargetStr"]=5248;var _kVersionStampBuildTimestampStr=Module["_kVersionStampBuildTimestampStr"]=5760;var _kVersionStampBuildToolStr=Module["_kVersionStampBuildToolStr"]=5792;var _kVersionStampG3BuildTargetStr=Module["_kVersionStampG3BuildTargetStr"]=6304;var _kVersionStampVerifiableStr=Module["_kVersionStampVerifiableStr"]=6816;var _kVersionStampBuildFdoTypeStr=Module["_kVersionStampBuildFdoTypeStr"]=6848;var _kVersionStampBuildBaselineChangelistStr=Module["_kVersionStampBuildBaselineChangelistStr"]=6880;var _kVersionStampBuildLtoTypeStr=Module["_kVersionStampBuildLtoTypeStr"]=6912;var _kVersionStampBuildPropellerTypeStr=Module["_kVersionStampBuildPropellerTypeStr"]=6944;var _kVersionStampBuildPghoTypeStr=Module["_kVersionStampBuildPghoTypeStr"]=6976;var _kVersionStampBuildUsernameStr=Module["_kVersionStampBuildUsernameStr"]=7008;var _kVersionStampBuildHostnameStr=Module["_kVersionStampBuildHostnameStr"]=7520;var _kVersionStampBuildDirectoryStr=Module["_kVersionStampBuildDirectoryStr"]=8032;var _kVersionStampBuildChangelistInt=Module["_kVersionStampBuildChangelistInt"]=8544;var _kVersionStampCitcSnapshotInt=Module["_kVersionStampCitcSnapshotInt"]=8552;var _kVersionStampBuildClientMintStatusInt=Module["_kVersionStampBuildClientMintStatusInt"]=8556;var _kVersionStampBuildTimestampInt=Module["_kVersionStampBuildTimestampInt"]=8560;var _kVersionStampVerifiableInt=Module["_kVersionStampVerifiableInt"]=8568;var _kVersionStampBuildCoverageEnabledInt=Module["_kVersionStampBuildCoverageEnabledInt"]=8572;var _kVersionStampBuildBaselineChangelistInt=Module["_kVersionStampBuildBaselineChangelistInt"]=8576;var _kVersionStampPrecookedTimestampStr=Module["_kVersionStampPrecookedTimestampStr"]=8592;var _kVersionStampPrecookedClientInfoStr=Module["_kVersionStampPrecookedClientInfoStr"]=9104;Module["addRunDependency"]=addRunDependency;Module["removeRunDependency"]=removeRunDependency;Module["ccall"]=ccall;Module["stringToNewUTF8"]=stringToNewUTF8;Module["FS_createPreloadedFile"]=FS_createPreloadedFile;Module["FS_unlink"]=FS_unlink;Module["FS_createPath"]=FS_createPath;Module["FS_createDevice"]=FS_createDevice;Module["FS_createDataFile"]=FS_createDataFile;Module["FS_createLazyFile"]=FS_createLazyFile;var calledRun;dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function run(){if(runDependencies>0){return}preRun();if(runDependencies>0){return}function doRun(){if(calledRun)return;calledRun=true;Module["calledRun"]=true;if(ABORT)return;initRuntime();readyPromiseResolve(Module);Module["onRuntimeInitialized"]?.();postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(function(){setTimeout(function(){Module["setStatus"]("")},1);doRun()},1)}else{doRun()}}if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}run();moduleRtn=readyPromise; +// include: shell.js +// include: minimum_runtime_check.js +// end include: minimum_runtime_check.js +// The Module object: Our interface to the outside world. We import +// and export values on it. There are various ways Module can be used: +// 1. Not defined. We create it here +// 2. A function parameter, function(moduleArg) => Promise +// 3. pre-run appended it, var Module = {}; ..generated code.. +// 4. External script tag defines var Module. +// We need to check if Module already exists (e.g. case 3 above). +// Substitution will be replaced with actual code on later stage of the build, +// this way Closure Compiler will not mangle it (e.g. case 4. above). +// Note that if you want to run closure, and also to use Module +// after the generated code, you will need to define var Module = {}; +// before the code. Then that object will be used in the code, and you +// can continue to use Module afterwards as well. +var Module = moduleArg; +// Determine the runtime environment we are in. You can customize this by +// setting the ENVIRONMENT setting at compile time (see settings.js). +// Attempt to auto-detect the environment +var ENVIRONMENT_IS_WEB = !!globalThis.window; - return moduleRtn; +var ENVIRONMENT_IS_WORKER = !!globalThis.WorkerGlobalScope; + +// N.b. Electron.js environment is simultaneously a NODE-environment, but +// also a web environment. +var ENVIRONMENT_IS_NODE = globalThis.process?.versions?.node && globalThis.process?.type != "renderer"; + +// --pre-jses are emitted after the Module integration code, so that they can +// refer to Module (if they choose; they can also define Module) +var arguments_ = []; + +var thisProgram = "./this.program"; + +var quit_ = (status, toThrow) => { + throw toThrow; +}; + +if (typeof __filename != "undefined") { + // Node + _scriptName = __filename; +} else if (ENVIRONMENT_IS_WORKER) { + _scriptName = self.location.href; } -); + +// `/` should be present at the end if `scriptDirectory` is not empty +var scriptDirectory = ""; + +function locateFile(path) { + if (Module["locateFile"]) { + return Module["locateFile"](path, scriptDirectory); + } + return scriptDirectory + path; +} + +// Hooks that are implemented differently in different runtime environments. +var readAsync, readBinary; + +if (ENVIRONMENT_IS_NODE) { + // These modules will usually be used on Node.js. Load them eagerly to avoid + // the complexity of lazy-loading. + var fs = require("node:fs"); + scriptDirectory = __dirname + "/"; + // include: node_shell_read.js + readBinary = filename => { + // We need to re-wrap `file://` strings to URLs. + filename = isFileURI(filename) ? new URL(filename) : filename; + var ret = fs.readFileSync(filename); + return ret; + }; + readAsync = async (filename, binary = true) => { + // See the comment in the `readBinary` function. + filename = isFileURI(filename) ? new URL(filename) : filename; + var ret = fs.readFileSync(filename, binary ? undefined : "utf8"); + return ret; + }; + // end include: node_shell_read.js + if (process.argv.length > 1) { + thisProgram = process.argv[1].replace(/\\/g, "/"); + } + arguments_ = process.argv.slice(2); + quit_ = (status, toThrow) => { + process.exitCode = status; + throw toThrow; + }; +} else // Note that this includes Node.js workers when relevant (pthreads is enabled). +// Node.js workers are detected as a combination of ENVIRONMENT_IS_WORKER and +// ENVIRONMENT_IS_NODE. +if (ENVIRONMENT_IS_WEB || ENVIRONMENT_IS_WORKER) { + try { + scriptDirectory = new URL(".", _scriptName).href; + } catch {} + { + // include: web_or_worker_shell_read.js + if (ENVIRONMENT_IS_WORKER) { + readBinary = url => { + var xhr = new XMLHttpRequest; + xhr.open("GET", url, false); + xhr.responseType = "arraybuffer"; + xhr.send(null); + return new Uint8Array(/** @type{!ArrayBuffer} */ (xhr.response)); + }; + } + readAsync = async url => { + // Fetch has some additional restrictions over XHR, like it can't be used on a file:// url. + // See https://github.com/github/fetch/pull/92#issuecomment-140665932 + // Cordova or Electron apps are typically loaded from a file:// url. + // So use XHR on webview if URL is a file URL. + if (isFileURI(url)) { + return new Promise((resolve, reject) => { + var xhr = new XMLHttpRequest; + xhr.open("GET", url, true); + xhr.responseType = "arraybuffer"; + xhr.onload = () => { + if (xhr.status == 200 || (xhr.status == 0 && xhr.response)) { + // file URLs can return 0 + resolve(xhr.response); + return; + } + reject(xhr.status); + }; + xhr.onerror = reject; + xhr.send(null); + }); + } + var response = await fetch(url, { + credentials: "same-origin" + }); + if (response.ok) { + return response.arrayBuffer(); + } + throw new Error(response.status + " : " + response.url); + }; + } +} else {} + +var out = console.log.bind(console); + +var err = console.error.bind(console); + +// end include: shell.js +// include: preamble.js +// === Preamble library stuff === +// Documentation for the public APIs defined in this file must be updated in: +// site/source/docs/api_reference/preamble.js.rst +// A prebuilt local version of the documentation is available at: +// site/build/text/docs/api_reference/preamble.js.txt +// You can also build docs locally as HTML or other formats in site/ +// An online HTML version (which may be of a different version of Emscripten) +// is up at http://kripken.github.io/emscripten-site/docs/api_reference/preamble.js.html +var wasmBinary; + +// Wasm globals +//======================================== +// Runtime essentials +//======================================== +// whether we are quitting the application. no code should run after this. +// set in exit() and abort() +var ABORT = false; + +// set by exit() and abort(). Passed to 'onExit' handler. +// NOTE: This is also used as the process return code in shell environments +// but only when noExitRuntime is false. +var EXITSTATUS; + +// In STRICT mode, we only define assert() when ASSERTIONS is set. i.e. we +// don't define it at all in release modes. This matches the behaviour of +// MINIMAL_RUNTIME. +// TODO(sbc): Make this the default even without STRICT enabled. +/** @type {function(*, string=)} */ function assert(condition, text) { + if (!condition) { + // This build was created without ASSERTIONS defined. `assert()` should not + // ever be called in this configuration but in case there are callers in + // the wild leave this simple abort() implementation here for now. + abort(text); + } +} + +/** + * Indicates whether filename is delivered via file protocol (as opposed to http/https) + * @noinline + */ var isFileURI = filename => filename.startsWith("file://"); + +// include: runtime_common.js +// include: runtime_stack_check.js +// end include: runtime_stack_check.js +// include: runtime_exceptions.js +// end include: runtime_exceptions.js +// include: runtime_debug.js +// end include: runtime_debug.js +var readyPromiseResolve, readyPromiseReject; + +// Memory management +var /** @type {!Int8Array} */ HEAP8, /** @type {!Uint8Array} */ HEAPU8, /** @type {!Int16Array} */ HEAP16, /** @type {!Uint16Array} */ HEAPU16, /** @type {!Int32Array} */ HEAP32, /** @type {!Uint32Array} */ HEAPU32, /** @type {!Float32Array} */ HEAPF32, /** @type {!Float64Array} */ HEAPF64; + +var runtimeInitialized = false; + +function updateMemoryViews() { + var b = wasmMemory.buffer; + HEAP8 = new Int8Array(b); + HEAP16 = new Int16Array(b); + Module["HEAPU8"] = HEAPU8 = new Uint8Array(b); + HEAPU16 = new Uint16Array(b); + HEAP32 = new Int32Array(b); + Module["HEAPU32"] = HEAPU32 = new Uint32Array(b); + Module["HEAPF32"] = HEAPF32 = new Float32Array(b); + Module["HEAPF64"] = HEAPF64 = new Float64Array(b); +} + +// include: memoryprofiler.js +// end include: memoryprofiler.js +// end include: runtime_common.js +function preRun() { + if (Module["preRun"]) { + if (typeof Module["preRun"] == "function") Module["preRun"] = [ Module["preRun"] ]; + while (Module["preRun"].length) { + addOnPreRun(Module["preRun"].shift()); + } + } + // Begin ATPRERUNS hooks + callRuntimeCallbacks(onPreRuns); +} + +function initRuntime() { + runtimeInitialized = true; + // Begin ATINITS hooks + if (!Module["noFSInit"] && !FS.initialized) FS.init(); + TTY.init(); + // End ATINITS hooks + wasmExports["id"](); + // Begin ATPOSTCTORS hooks + FS.ignorePermissions = false; +} + +function postRun() { + // PThreads reuse the runtime from the main thread. + if (Module["postRun"]) { + if (typeof Module["postRun"] == "function") Module["postRun"] = [ Module["postRun"] ]; + while (Module["postRun"].length) { + addOnPostRun(Module["postRun"].shift()); + } + } + // Begin ATPOSTRUNS hooks + callRuntimeCallbacks(onPostRuns); +} + +/** @param {string|number=} what */ function abort(what) { + Module["onAbort"]?.(what); + what = "Aborted(" + what + ")"; + // TODO(sbc): Should we remove printing and leave it up to whoever + // catches the exception? + err(what); + ABORT = true; + what += ". Build with -sASSERTIONS for more info."; + // Use a wasm runtime error, because a JS error might be seen as a foreign + // exception, which means we'd run destructors on it. We need the error to + // simply make the program stop. + // FIXME This approach does not work in Wasm EH because it currently does not assume + // all RuntimeErrors are from traps; it decides whether a RuntimeError is from + // a trap or not based on a hidden field within the object. So at the moment + // we don't have a way of throwing a wasm trap from JS. TODO Make a JS API that + // allows this in the wasm spec. + // Suppress closure compiler warning here. Closure compiler's builtin extern + // definition for WebAssembly.RuntimeError claims it takes no arguments even + // though it can. + // TODO(https://github.com/google/closure-compiler/pull/3913): Remove if/when upstream closure gets fixed. + /** @suppress {checkTypes} */ var e = new WebAssembly.RuntimeError(what); + readyPromiseReject?.(e); + // Throw the error whether or not MODULARIZE is set because abort is used + // in code paths apart from instantiation where an exception is expected + // to be thrown when abort is called. + throw e; +} + +var wasmBinaryFile; + +function findWasmBinary() { + return locateFile("vision_wasm_nosimd_internal.wasm"); +} + +function getBinarySync(file) { + if (file == wasmBinaryFile && wasmBinary) { + return new Uint8Array(wasmBinary); + } + if (readBinary) { + return readBinary(file); + } + // Throwing a plain string here, even though it not normally advisable since + // this gets turning into an `abort` in instantiateArrayBuffer. + throw "both async and sync fetching of the wasm failed"; +} + +async function getWasmBinary(binaryFile) { + // If we don't have the binary yet, load it asynchronously using readAsync. + if (!wasmBinary) { + // Fetch the binary using readAsync + try { + var response = await readAsync(binaryFile); + return new Uint8Array(response); + } catch {} + } + // Otherwise, getBinarySync should be able to get it synchronously + return getBinarySync(binaryFile); +} + +async function instantiateArrayBuffer(binaryFile, imports) { + try { + var binary = await getWasmBinary(binaryFile); + var instance = await WebAssembly.instantiate(binary, imports); + return instance; + } catch (reason) { + err(`failed to asynchronously prepare wasm: ${reason}`); + abort(reason); + } +} + +async function instantiateAsync(binary, binaryFile, imports) { + if (!binary && !isFileURI(binaryFile) && !ENVIRONMENT_IS_NODE) { + try { + var response = fetch(binaryFile, { + credentials: "same-origin" + }); + var instantiationResult = await WebAssembly.instantiateStreaming(response, imports); + return instantiationResult; + } catch (reason) { + // We expect the most common failure cause to be a bad MIME type for the binary, + // in which case falling back to ArrayBuffer instantiation should work. + err(`wasm streaming compile failed: ${reason}`); + err("falling back to ArrayBuffer instantiation"); + } + } + return instantiateArrayBuffer(binaryFile, imports); +} + +function getWasmImports() { + // prepare imports + var imports = { + "a": wasmImports + }; + return imports; +} + +// Create the wasm instance. +// Receives the wasm imports, returns the exports. +async function createWasm() { + // Load the wasm module and create an instance of using native support in the JS engine. + // handle a generated wasm instance, receiving its exports and + // performing other necessary setup + /** @param {WebAssembly.Module=} module*/ function receiveInstance(instance, module) { + wasmExports = instance.exports; + assignWasmExports(wasmExports); + updateMemoryViews(); + return wasmExports; + } + // Prefer streaming instantiation if available. + function receiveInstantiationResult(result) { + // 'result' is a ResultObject object which has both the module and instance. + // receiveInstance() will swap in the exports (to Module.asm) so they can be called + // TODO: Due to Closure regression https://github.com/google/closure-compiler/issues/3193, the above line no longer optimizes out down to the following line. + // When the regression is fixed, can restore the above PTHREADS-enabled path. + return receiveInstance(result["instance"]); + } + var info = getWasmImports(); + // User shell pages can write their own Module.instantiateWasm = function(imports, successCallback) callback + // to manually instantiate the Wasm module themselves. This allows pages to + // run the instantiation parallel to any other async startup actions they are + // performing. + // Also pthreads and wasm workers initialize the wasm instance through this + // path. + if (Module["instantiateWasm"]) { + return new Promise((resolve, reject) => { + Module["instantiateWasm"](info, (inst, mod) => { + resolve(receiveInstance(inst, mod)); + }); + }); + } + wasmBinaryFile ??= findWasmBinary(); + var result = await instantiateAsync(wasmBinary, wasmBinaryFile, info); + var exports = receiveInstantiationResult(result); + return exports; +} + +// Globals used by JS i64 conversions (see makeSetValue) +var tempDouble; + +var tempI64; + +// end include: preamble.js +// Begin JS library code +var handleException = e => { + // Certain exception types we do not treat as errors since they are used for + // internal control flow. + // 1. ExitStatus, which is thrown by exit() + // 2. "unwind", which is thrown by emscripten_unwind_to_js_event_loop() and others + // that wish to return to JS event loop. + if (e instanceof ExitStatus || e == "unwind") { + return EXITSTATUS; + } + quit_(1, e); +}; + +class ExitStatus { + name="ExitStatus"; + constructor(status) { + this.message = `Program terminated with exit(${status})`; + this.status = status; + } +} + +var runtimeKeepaliveCounter = 0; + +var keepRuntimeAlive = () => noExitRuntime || runtimeKeepaliveCounter > 0; + +var _proc_exit = code => { + EXITSTATUS = code; + if (!keepRuntimeAlive()) { + Module["onExit"]?.(code); + ABORT = true; + } + quit_(code, new ExitStatus(code)); +}; + +/** @param {boolean|number=} implicit */ var exitJS = (status, implicit) => { + EXITSTATUS = status; + _proc_exit(status); +}; + +var _exit = exitJS; + +var maybeExit = () => { + if (!keepRuntimeAlive()) { + try { + _exit(EXITSTATUS); + } catch (e) { + handleException(e); + } + } +}; + +var callUserCallback = func => { + if (ABORT) { + return; + } + try { + return func(); + } catch (e) { + handleException(e); + } finally { + maybeExit(); + } +}; + +function getFullscreenElement() { + return document.fullscreenElement || document.mozFullScreenElement || document.webkitFullscreenElement || document.webkitCurrentFullScreenElement || document.msFullscreenElement; +} + +/** @param {number=} timeout */ var safeSetTimeout = (func, timeout) => setTimeout(() => { + callUserCallback(func); +}, timeout); + +var warnOnce = text => { + warnOnce.shown ||= {}; + if (!warnOnce.shown[text]) { + warnOnce.shown[text] = 1; + if (ENVIRONMENT_IS_NODE) text = "warning: " + text; + err(text); + } +}; + +var preloadPlugins = []; + +var Browser = { + useWebGL: false, + isFullscreen: false, + pointerLock: false, + moduleContextCreatedCallbacks: [], + workers: [], + preloadedImages: {}, + preloadedAudios: {}, + getCanvas: () => Module["canvas"], + init() { + if (Browser.initted) return; + Browser.initted = true; + // Support for plugins that can process preloaded files. You can add more of these to + // your app by creating and appending to preloadPlugins. + // Each plugin is asked if it can handle a file based on the file's name. If it can, + // it is given the file's raw data. When it is done, it calls a callback with the file's + // (possibly modified) data. For example, a plugin might decompress a file, or it + // might create some side data structure for use later (like an Image element, etc.). + var imagePlugin = {}; + imagePlugin["canHandle"] = name => !Module["noImageDecoding"] && /\.(jpg|jpeg|png|bmp|webp)$/i.test(name); + imagePlugin["handle"] = async (byteArray, name) => { + var b = new Blob([ byteArray ], { + type: Browser.getMimetype(name) + }); + if (b.size !== byteArray.length) { + // Safari bug #118630 + // Safari's Blob can only take an ArrayBuffer + b = new Blob([ (new Uint8Array(byteArray)).buffer ], { + type: Browser.getMimetype(name) + }); + } + var url = URL.createObjectURL(b); + return new Promise((resolve, reject) => { + var img = new Image; + img.onload = () => { + var canvas = /** @type {!HTMLCanvasElement} */ (document.createElement("canvas")); + canvas.width = img.width; + canvas.height = img.height; + var ctx = canvas.getContext("2d"); + ctx.drawImage(img, 0, 0); + Browser.preloadedImages[name] = canvas; + URL.revokeObjectURL(url); + resolve(byteArray); + }; + img.onerror = event => { + err(`Image ${url} could not be decoded`); + reject(); + }; + img.src = url; + }); + }; + preloadPlugins.push(imagePlugin); + var audioPlugin = {}; + audioPlugin["canHandle"] = name => !Module["noAudioDecoding"] && name.slice(-4) in { + ".ogg": 1, + ".wav": 1, + ".mp3": 1 + }; + audioPlugin["handle"] = async (byteArray, name) => new Promise((resolve, reject) => { + var done = false; + function finish(audio) { + if (done) return; + done = true; + Browser.preloadedAudios[name] = audio; + resolve(byteArray); + } + var b = new Blob([ byteArray ], { + type: Browser.getMimetype(name) + }); + var url = URL.createObjectURL(b); + // XXX we never revoke this! + var audio = new Audio; + audio.addEventListener("canplaythrough", () => finish(audio), false); + // use addEventListener due to chromium bug 124926 + audio.onerror = event => { + if (done) return; + err(`warning: browser could not fully decode audio ${name}, trying slower base64 approach`); + function encode64(data) { + var BASE = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"; + var PAD = "="; + var ret = ""; + var leftchar = 0; + var leftbits = 0; + for (var i = 0; i < data.length; i++) { + leftchar = (leftchar << 8) | data[i]; + leftbits += 8; + while (leftbits >= 6) { + var curr = (leftchar >> (leftbits - 6)) & 63; + leftbits -= 6; + ret += BASE[curr]; + } + } + if (leftbits == 2) { + ret += BASE[(leftchar & 3) << 4]; + ret += PAD + PAD; + } else if (leftbits == 4) { + ret += BASE[(leftchar & 15) << 2]; + ret += PAD; + } + return ret; + } + audio.src = "data:audio/x-" + name.slice(-3) + ";base64," + encode64(byteArray); + finish(audio); + }; + audio.src = url; + // workaround for chrome bug 124926 - we do not always get oncanplaythrough or onerror + safeSetTimeout(() => { + finish(audio); + }, 1e4); + }); + preloadPlugins.push(audioPlugin); + // Canvas event setup + function pointerLockChange() { + var canvas = Browser.getCanvas(); + Browser.pointerLock = document.pointerLockElement === canvas; + } + var canvas = Browser.getCanvas(); + if (canvas) { + // forced aspect ratio can be enabled by defining 'forcedAspectRatio' on Module + // Module['forcedAspectRatio'] = 4 / 3; + document.addEventListener("pointerlockchange", pointerLockChange, false); + if (Module["elementPointerLock"]) { + canvas.addEventListener("click", ev => { + if (!Browser.pointerLock && Browser.getCanvas().requestPointerLock) { + Browser.getCanvas().requestPointerLock(); + ev.preventDefault(); + } + }, false); + } + } + }, + createContext(/** @type {HTMLCanvasElement} */ canvas, useWebGL, setInModule, webGLContextAttributes) { + if (useWebGL && Module["ctx"] && canvas == Browser.getCanvas()) return Module["ctx"]; + // no need to recreate GL context if it's already been created for this canvas. + var ctx; + var contextHandle; + if (useWebGL) { + // For GLES2/desktop GL compatibility, adjust a few defaults to be different to WebGL defaults, so that they align better with the desktop defaults. + var contextAttributes = { + antialias: false, + alpha: false, + majorVersion: (typeof WebGL2RenderingContext != "undefined") ? 2 : 1 + }; + if (webGLContextAttributes) { + for (var attribute in webGLContextAttributes) { + contextAttributes[attribute] = webGLContextAttributes[attribute]; + } + } + // This check of existence of GL is here to satisfy Closure compiler, which yells if variable GL is referenced below but GL object is not + // actually compiled in because application is not doing any GL operations. TODO: Ideally if GL is not being used, this function + // Browser.createContext() should not even be emitted. + if (typeof GL != "undefined") { + contextHandle = GL.createContext(canvas, contextAttributes); + if (contextHandle) { + ctx = GL.getContext(contextHandle).GLctx; + } + } + } else { + ctx = canvas.getContext("2d"); + } + if (!ctx) return null; + if (setInModule) { + Module["ctx"] = ctx; + if (useWebGL) GL.makeContextCurrent(contextHandle); + Browser.useWebGL = useWebGL; + Browser.moduleContextCreatedCallbacks.forEach(callback => callback()); + Browser.init(); + } + return ctx; + }, + fullscreenHandlersInstalled: false, + lockPointer: undefined, + resizeCanvas: undefined, + requestFullscreen(lockPointer, resizeCanvas) { + Browser.lockPointer = lockPointer; + Browser.resizeCanvas = resizeCanvas; + if (typeof Browser.lockPointer == "undefined") Browser.lockPointer = true; + if (typeof Browser.resizeCanvas == "undefined") Browser.resizeCanvas = false; + var canvas = Browser.getCanvas(); + function fullscreenChange() { + Browser.isFullscreen = false; + var canvasContainer = canvas.parentNode; + if (getFullscreenElement() === canvasContainer) { + canvas.exitFullscreen = Browser.exitFullscreen; + if (Browser.lockPointer) canvas.requestPointerLock(); + Browser.isFullscreen = true; + if (Browser.resizeCanvas) { + Browser.setFullscreenCanvasSize(); + } else { + Browser.updateCanvasDimensions(canvas); + } + } else { + // remove the full screen specific parent of the canvas again to restore the HTML structure from before going full screen + canvasContainer.parentNode.insertBefore(canvas, canvasContainer); + canvasContainer.parentNode.removeChild(canvasContainer); + if (Browser.resizeCanvas) { + Browser.setWindowedCanvasSize(); + } else { + Browser.updateCanvasDimensions(canvas); + } + } + Module["onFullScreen"]?.(Browser.isFullscreen); + Module["onFullscreen"]?.(Browser.isFullscreen); + } + if (!Browser.fullscreenHandlersInstalled) { + Browser.fullscreenHandlersInstalled = true; + document.addEventListener("fullscreenchange", fullscreenChange, false); + document.addEventListener("mozfullscreenchange", fullscreenChange, false); + document.addEventListener("webkitfullscreenchange", fullscreenChange, false); + document.addEventListener("MSFullscreenChange", fullscreenChange, false); + } + // create a new parent to ensure the canvas has no siblings. this allows browsers to optimize full screen performance when its parent is the full screen root + var canvasContainer = document.createElement("div"); + canvas.parentNode.insertBefore(canvasContainer, canvas); + canvasContainer.appendChild(canvas); + // use parent of canvas as full screen root to allow aspect ratio correction (Firefox stretches the root to screen size) + canvasContainer.requestFullscreen = canvasContainer["requestFullscreen"] || canvasContainer["mozRequestFullScreen"] || canvasContainer["msRequestFullscreen"] || (canvasContainer["webkitRequestFullscreen"] ? () => canvasContainer["webkitRequestFullscreen"](Element["ALLOW_KEYBOARD_INPUT"]) : null) || (canvasContainer["webkitRequestFullScreen"] ? () => canvasContainer["webkitRequestFullScreen"](Element["ALLOW_KEYBOARD_INPUT"]) : null); + canvasContainer.requestFullscreen(); + }, + exitFullscreen() { + // This is workaround for chrome. Trying to exit from fullscreen + // not in fullscreen state will cause "TypeError: Document not active" + // in chrome. See https://github.com/emscripten-core/emscripten/pull/8236 + if (!Browser.isFullscreen) { + return false; + } + var CFS = document["exitFullscreen"] || document["cancelFullScreen"] || document["mozCancelFullScreen"] || document["msExitFullscreen"] || document["webkitCancelFullScreen"] || (() => {}); + CFS.apply(document, []); + return true; + }, + safeSetTimeout(func, timeout) { + // Legacy function, this is used by the SDL2 port so we need to keep it + // around at least until that is updated. + // See https://github.com/libsdl-org/SDL/pull/6304 + return safeSetTimeout(func, timeout); + }, + getMimetype(name) { + return { + "jpg": "image/jpeg", + "jpeg": "image/jpeg", + "png": "image/png", + "bmp": "image/bmp", + "ogg": "audio/ogg", + "wav": "audio/wav", + "mp3": "audio/mpeg" + }[name.slice(name.lastIndexOf(".") + 1)]; + }, + getUserMedia(func) { + window.getUserMedia ||= navigator["getUserMedia"] || navigator["mozGetUserMedia"]; + window.getUserMedia(func); + }, + getMovementX(event) { + return event["movementX"] || event["mozMovementX"] || event["webkitMovementX"] || 0; + }, + getMovementY(event) { + return event["movementY"] || event["mozMovementY"] || event["webkitMovementY"] || 0; + }, + getMouseWheelDelta(event) { + var delta = 0; + switch (event.type) { + case "DOMMouseScroll": + // 3 lines make up a step + delta = event.detail / 3; + break; + + case "mousewheel": + // 120 units make up a step + delta = event.wheelDelta / 120; + break; + + case "wheel": + delta = event.deltaY; + switch (event.deltaMode) { + case 0: + // DOM_DELTA_PIXEL: 100 pixels make up a step + delta /= 100; + break; + + case 1: + // DOM_DELTA_LINE: 3 lines make up a step + delta /= 3; + break; + + case 2: + // DOM_DELTA_PAGE: A page makes up 80 steps + delta *= 80; + break; + + default: + abort("unrecognized mouse wheel delta mode: " + event.deltaMode); + } + break; + + default: + abort("unrecognized mouse wheel event: " + event.type); + } + return delta; + }, + mouseX: 0, + mouseY: 0, + mouseMovementX: 0, + mouseMovementY: 0, + touches: {}, + lastTouches: {}, + calculateMouseCoords(pageX, pageY) { + // Calculate the movement based on the changes + // in the coordinates. + var canvas = Browser.getCanvas(); + var rect = canvas.getBoundingClientRect(); + // Neither .scrollX or .pageXOffset are defined in a spec, but + // we prefer .scrollX because it is currently in a spec draft. + // (see: http://www.w3.org/TR/2013/WD-cssom-view-20131217/) + var scrollX = ((typeof window.scrollX != "undefined") ? window.scrollX : window.pageXOffset); + var scrollY = ((typeof window.scrollY != "undefined") ? window.scrollY : window.pageYOffset); + var adjustedX = pageX - (scrollX + rect.left); + var adjustedY = pageY - (scrollY + rect.top); + // the canvas might be CSS-scaled compared to its backbuffer; + // SDL-using content will want mouse coordinates in terms + // of backbuffer units. + adjustedX = adjustedX * (canvas.width / rect.width); + adjustedY = adjustedY * (canvas.height / rect.height); + return { + x: adjustedX, + y: adjustedY + }; + }, + setMouseCoords(pageX, pageY) { + const {x, y} = Browser.calculateMouseCoords(pageX, pageY); + Browser.mouseMovementX = x - Browser.mouseX; + Browser.mouseMovementY = y - Browser.mouseY; + Browser.mouseX = x; + Browser.mouseY = y; + }, + calculateMouseEvent(event) { + // event should be mousemove, mousedown or mouseup + if (Browser.pointerLock) { + // When the pointer is locked, calculate the coordinates + // based on the movement of the mouse. + // Workaround for Firefox bug 764498 + if (event.type != "mousemove" && ("mozMovementX" in event)) { + Browser.mouseMovementX = Browser.mouseMovementY = 0; + } else { + Browser.mouseMovementX = Browser.getMovementX(event); + Browser.mouseMovementY = Browser.getMovementY(event); + } + // add the mouse delta to the current absolute mouse position + Browser.mouseX += Browser.mouseMovementX; + Browser.mouseY += Browser.mouseMovementY; + } else { + if (event.type === "touchstart" || event.type === "touchend" || event.type === "touchmove") { + var touch = event.touch; + if (touch === undefined) { + return; + } + var coords = Browser.calculateMouseCoords(touch.pageX, touch.pageY); + if (event.type === "touchstart") { + Browser.lastTouches[touch.identifier] = coords; + Browser.touches[touch.identifier] = coords; + } else if (event.type === "touchend" || event.type === "touchmove") { + var last = Browser.touches[touch.identifier]; + last ||= coords; + Browser.lastTouches[touch.identifier] = last; + Browser.touches[touch.identifier] = coords; + } + return; + } + Browser.setMouseCoords(event.pageX, event.pageY); + } + }, + resizeListeners: [], + updateResizeListeners() { + var canvas = Browser.getCanvas(); + Browser.resizeListeners.forEach(listener => listener(canvas.width, canvas.height)); + }, + setCanvasSize(width, height, noUpdates) { + var canvas = Browser.getCanvas(); + Browser.updateCanvasDimensions(canvas, width, height); + if (!noUpdates) Browser.updateResizeListeners(); + }, + windowedWidth: 0, + windowedHeight: 0, + setFullscreenCanvasSize() { + // check if SDL is available + if (typeof SDL != "undefined") { + var flags = HEAPU32[((SDL.screen) >> 2)]; + flags = flags | 8388608; + // set SDL_FULLSCREEN flag + HEAP32[((SDL.screen) >> 2)] = flags; + } + Browser.updateCanvasDimensions(Browser.getCanvas()); + Browser.updateResizeListeners(); + }, + setWindowedCanvasSize() { + // check if SDL is available + if (typeof SDL != "undefined") { + var flags = HEAPU32[((SDL.screen) >> 2)]; + flags = flags & ~8388608; + // clear SDL_FULLSCREEN flag + HEAP32[((SDL.screen) >> 2)] = flags; + } + Browser.updateCanvasDimensions(Browser.getCanvas()); + Browser.updateResizeListeners(); + }, + updateCanvasDimensions(canvas, wNative, hNative) { + if (wNative && hNative) { + canvas.widthNative = wNative; + canvas.heightNative = hNative; + } else { + wNative = canvas.widthNative; + hNative = canvas.heightNative; + } + var w = wNative; + var h = hNative; + if (Module["forcedAspectRatio"] > 0) { + if (w / h < Module["forcedAspectRatio"]) { + w = Math.round(h * Module["forcedAspectRatio"]); + } else { + h = Math.round(w / Module["forcedAspectRatio"]); + } + } + if ((getFullscreenElement() === canvas.parentNode) && (typeof screen != "undefined")) { + var factor = Math.min(screen.width / w, screen.height / h); + w = Math.round(w * factor); + h = Math.round(h * factor); + } + if (Browser.resizeCanvas) { + if (canvas.width != w) canvas.width = w; + if (canvas.height != h) canvas.height = h; + if (typeof canvas.style != "undefined") { + canvas.style.removeProperty("width"); + canvas.style.removeProperty("height"); + } + } else { + if (canvas.width != wNative) canvas.width = wNative; + if (canvas.height != hNative) canvas.height = hNative; + if (typeof canvas.style != "undefined") { + if (w != wNative || h != hNative) { + canvas.style.setProperty("width", w + "px", "important"); + canvas.style.setProperty("height", h + "px", "important"); + } else { + canvas.style.removeProperty("width"); + canvas.style.removeProperty("height"); + } + } + } + } +}; + +var callRuntimeCallbacks = callbacks => { + while (callbacks.length > 0) { + // Pass the module as the first argument. + callbacks.shift()(Module); + } +}; + +var onPostRuns = []; + +var addOnPostRun = cb => onPostRuns.push(cb); + +var onPreRuns = []; + +var addOnPreRun = cb => onPreRuns.push(cb); + +var noExitRuntime = true; + +var stackRestore = val => __emscripten_stack_restore(val); + +var stackSave = () => _emscripten_stack_get_current(); + +class ExceptionInfo { + // excPtr - Thrown object pointer to wrap. Metadata pointer is calculated from it. + constructor(excPtr) { + this.excPtr = excPtr; + this.ptr = excPtr - 24; + } + set_type(type) { + HEAPU32[(((this.ptr) + (4)) >> 2)] = type; + } + get_type() { + return HEAPU32[(((this.ptr) + (4)) >> 2)]; + } + set_destructor(destructor) { + HEAPU32[(((this.ptr) + (8)) >> 2)] = destructor; + } + get_destructor() { + return HEAPU32[(((this.ptr) + (8)) >> 2)]; + } + set_caught(caught) { + caught = caught ? 1 : 0; + HEAP8[(this.ptr) + (12)] = caught; + } + get_caught() { + return HEAP8[(this.ptr) + (12)] != 0; + } + set_rethrown(rethrown) { + rethrown = rethrown ? 1 : 0; + HEAP8[(this.ptr) + (13)] = rethrown; + } + get_rethrown() { + return HEAP8[(this.ptr) + (13)] != 0; + } + // Initialize native structure fields. Should be called once after allocated. + init(type, destructor) { + this.set_adjusted_ptr(0); + this.set_type(type); + this.set_destructor(destructor); + } + set_adjusted_ptr(adjustedPtr) { + HEAPU32[(((this.ptr) + (16)) >> 2)] = adjustedPtr; + } + get_adjusted_ptr() { + return HEAPU32[(((this.ptr) + (16)) >> 2)]; + } +} + +var exceptionLast = 0; + +var uncaughtExceptionCount = 0; + +var ___cxa_throw = (ptr, type, destructor) => { + var info = new ExceptionInfo(ptr); + // Initialize ExceptionInfo content after it was allocated in __cxa_allocate_exception. + info.init(type, destructor); + exceptionLast = ptr; + uncaughtExceptionCount++; + throw exceptionLast; +}; + +var PATH = { + isAbs: path => path.charAt(0) === "/", + splitPath: filename => { + var splitPathRe = /^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/; + return splitPathRe.exec(filename).slice(1); + }, + normalizeArray: (parts, allowAboveRoot) => { + // if the path tries to go above the root, `up` ends up > 0 + var up = 0; + for (var i = parts.length - 1; i >= 0; i--) { + var last = parts[i]; + if (last === ".") { + parts.splice(i, 1); + } else if (last === "..") { + parts.splice(i, 1); + up++; + } else if (up) { + parts.splice(i, 1); + up--; + } + } + // if the path is allowed to go above the root, restore leading ..s + if (allowAboveRoot) { + for (;up; up--) { + parts.unshift(".."); + } + } + return parts; + }, + normalize: path => { + var isAbsolute = PATH.isAbs(path), trailingSlash = path.slice(-1) === "/"; + // Normalize the path + path = PATH.normalizeArray(path.split("/").filter(p => !!p), !isAbsolute).join("/"); + if (!path && !isAbsolute) { + path = "."; + } + if (path && trailingSlash) { + path += "/"; + } + return (isAbsolute ? "/" : "") + path; + }, + dirname: path => { + var result = PATH.splitPath(path), root = result[0], dir = result[1]; + if (!root && !dir) { + // No dirname whatsoever + return "."; + } + if (dir) { + // It has a dirname, strip trailing slash + dir = dir.slice(0, -1); + } + return root + dir; + }, + basename: path => path && path.match(/([^\/]+|\/)\/*$/)[1], + join: (...paths) => PATH.normalize(paths.join("/")), + join2: (l, r) => PATH.normalize(l + "/" + r) +}; + +var initRandomFill = () => { + // This block is not needed on v19+ since crypto.getRandomValues is builtin + if (ENVIRONMENT_IS_NODE) { + var nodeCrypto = require("node:crypto"); + return view => nodeCrypto.randomFillSync(view); + } + return view => crypto.getRandomValues(view); +}; + +var randomFill = view => { + // Lazily init on the first invocation. + (randomFill = initRandomFill())(view); +}; + +var PATH_FS = { + resolve: (...args) => { + var resolvedPath = "", resolvedAbsolute = false; + for (var i = args.length - 1; i >= -1 && !resolvedAbsolute; i--) { + var path = (i >= 0) ? args[i] : FS.cwd(); + // Skip empty and invalid entries + if (typeof path != "string") { + throw new TypeError("Arguments to path.resolve must be strings"); + } else if (!path) { + return ""; + } + resolvedPath = path + "/" + resolvedPath; + resolvedAbsolute = PATH.isAbs(path); + } + // At this point the path should be resolved to a full absolute path, but + // handle relative paths to be safe (might happen when process.cwd() fails) + resolvedPath = PATH.normalizeArray(resolvedPath.split("/").filter(p => !!p), !resolvedAbsolute).join("/"); + return ((resolvedAbsolute ? "/" : "") + resolvedPath) || "."; + }, + relative: (from, to) => { + from = PATH_FS.resolve(from).slice(1); + to = PATH_FS.resolve(to).slice(1); + function trim(arr) { + var start = 0; + for (;start < arr.length; start++) { + if (arr[start] !== "") break; + } + var end = arr.length - 1; + for (;end >= 0; end--) { + if (arr[end] !== "") break; + } + if (start > end) return []; + return arr.slice(start, end - start + 1); + } + var fromParts = trim(from.split("/")); + var toParts = trim(to.split("/")); + var length = Math.min(fromParts.length, toParts.length); + var samePartsLength = length; + for (var i = 0; i < length; i++) { + if (fromParts[i] !== toParts[i]) { + samePartsLength = i; + break; + } + } + var outputParts = []; + for (var i = samePartsLength; i < fromParts.length; i++) { + outputParts.push(".."); + } + outputParts = outputParts.concat(toParts.slice(samePartsLength)); + return outputParts.join("/"); + } +}; + +var UTF8Decoder = new TextDecoder; + +var findStringEnd = (heapOrArray, idx, maxBytesToRead, ignoreNul) => { + var maxIdx = idx + maxBytesToRead; + if (ignoreNul) return maxIdx; + // TextDecoder needs to know the byte length in advance, it doesn't stop on + // null terminator by itself. + // As a tiny code save trick, compare idx against maxIdx using a negation, + // so that maxBytesToRead=undefined/NaN means Infinity. + while (heapOrArray[idx] && !(idx >= maxIdx)) ++idx; + return idx; +}; + +/** + * Given a pointer 'idx' to a null-terminated UTF8-encoded string in the given + * array that contains uint8 values, returns a copy of that string as a + * Javascript String object. + * heapOrArray is either a regular array, or a JavaScript typed array view. + * @param {number=} idx + * @param {number=} maxBytesToRead + * @param {boolean=} ignoreNul - If true, the function will not stop on a NUL character. + * @return {string} + */ var UTF8ArrayToString = (heapOrArray, idx = 0, maxBytesToRead, ignoreNul) => { + var endPtr = findStringEnd(heapOrArray, idx, maxBytesToRead, ignoreNul); + return UTF8Decoder.decode(heapOrArray.buffer ? heapOrArray.subarray(idx, endPtr) : new Uint8Array(heapOrArray.slice(idx, endPtr))); +}; + +var FS_stdin_getChar_buffer = []; + +var lengthBytesUTF8 = str => { + var len = 0; + for (var i = 0; i < str.length; ++i) { + // Gotcha: charCodeAt returns a 16-bit word that is a UTF-16 encoded code + // unit, not a Unicode code point of the character! So decode + // UTF16->UTF32->UTF8. + // See http://unicode.org/faq/utf_bom.html#utf16-3 + var c = str.charCodeAt(i); + // possibly a lead surrogate + if (c <= 127) { + len++; + } else if (c <= 2047) { + len += 2; + } else if (c >= 55296 && c <= 57343) { + len += 4; + ++i; + } else { + len += 3; + } + } + return len; +}; + +var stringToUTF8Array = (str, heap, outIdx, maxBytesToWrite) => { + // Parameter maxBytesToWrite is not optional. Negative values, 0, null, + // undefined and false each don't write out any bytes. + if (!(maxBytesToWrite > 0)) return 0; + var startIdx = outIdx; + var endIdx = outIdx + maxBytesToWrite - 1; + // -1 for string null terminator. + for (var i = 0; i < str.length; ++i) { + // For UTF8 byte structure, see http://en.wikipedia.org/wiki/UTF-8#Description + // and https://www.ietf.org/rfc/rfc2279.txt + // and https://tools.ietf.org/html/rfc3629 + var u = str.codePointAt(i); + if (u <= 127) { + if (outIdx >= endIdx) break; + heap[outIdx++] = u; + } else if (u <= 2047) { + if (outIdx + 1 >= endIdx) break; + heap[outIdx++] = 192 | (u >> 6); + heap[outIdx++] = 128 | (u & 63); + } else if (u <= 65535) { + if (outIdx + 2 >= endIdx) break; + heap[outIdx++] = 224 | (u >> 12); + heap[outIdx++] = 128 | ((u >> 6) & 63); + heap[outIdx++] = 128 | (u & 63); + } else { + if (outIdx + 3 >= endIdx) break; + heap[outIdx++] = 240 | (u >> 18); + heap[outIdx++] = 128 | ((u >> 12) & 63); + heap[outIdx++] = 128 | ((u >> 6) & 63); + heap[outIdx++] = 128 | (u & 63); + // Gotcha: if codePoint is over 0xFFFF, it is represented as a surrogate pair in UTF-16. + // We need to manually skip over the second code unit for correct iteration. + i++; + } + } + // Null-terminate the pointer to the buffer. + heap[outIdx] = 0; + return outIdx - startIdx; +}; + +/** @type {function(string, boolean=, number=)} */ var intArrayFromString = (stringy, dontAddNull, length) => { + var len = length > 0 ? length : lengthBytesUTF8(stringy) + 1; + var u8array = new Array(len); + var numBytesWritten = stringToUTF8Array(stringy, u8array, 0, u8array.length); + if (dontAddNull) u8array.length = numBytesWritten; + return u8array; +}; + +var FS_stdin_getChar = () => { + if (!FS_stdin_getChar_buffer.length) { + var result = null; + if (ENVIRONMENT_IS_NODE) { + // we will read data by chunks of BUFSIZE + var BUFSIZE = 256; + var buf = Buffer.alloc(BUFSIZE); + var bytesRead = 0; + // For some reason we must suppress a closure warning here, even though + // fd definitely exists on process.stdin, and is even the proper way to + // get the fd of stdin, + // https://github.com/nodejs/help/issues/2136#issuecomment-523649904 + // This started to happen after moving this logic out of library_tty.js, + // so it is related to the surrounding code in some unclear manner. + /** @suppress {missingProperties} */ var fd = process.stdin.fd; + try { + bytesRead = fs.readSync(fd, buf, 0, BUFSIZE); + } catch (e) { + // Cross-platform differences: on Windows, reading EOF throws an + // exception, but on other OSes, reading EOF returns 0. Uniformize + // behavior by treating the EOF exception to return 0. + if (e.toString().includes("EOF")) bytesRead = 0; else throw e; + } + if (bytesRead > 0) { + result = buf.slice(0, bytesRead).toString("utf-8"); + } + } else if (globalThis.window?.prompt) { + // Browser. + result = window.prompt("Input: "); + // returns null on cancel + if (result !== null) { + result += "\n"; + } + } else {} + if (!result) { + return null; + } + FS_stdin_getChar_buffer = intArrayFromString(result, true); + } + return FS_stdin_getChar_buffer.shift(); +}; + +var TTY = { + ttys: [], + init() {}, + shutdown() {}, + register(dev, ops) { + TTY.ttys[dev] = { + input: [], + output: [], + ops + }; + FS.registerDevice(dev, TTY.stream_ops); + }, + stream_ops: { + open(stream) { + var tty = TTY.ttys[stream.node.rdev]; + if (!tty) { + throw new FS.ErrnoError(43); + } + stream.tty = tty; + stream.seekable = false; + }, + close(stream) { + // flush any pending line data + stream.tty.ops.fsync(stream.tty); + }, + fsync(stream) { + stream.tty.ops.fsync(stream.tty); + }, + read(stream, buffer, offset, length, pos) { + if (!stream.tty || !stream.tty.ops.get_char) { + throw new FS.ErrnoError(60); + } + var bytesRead = 0; + for (var i = 0; i < length; i++) { + var result; + try { + result = stream.tty.ops.get_char(stream.tty); + } catch (e) { + throw new FS.ErrnoError(29); + } + if (result === undefined && bytesRead === 0) { + throw new FS.ErrnoError(6); + } + if (result === null || result === undefined) break; + bytesRead++; + buffer[offset + i] = result; + } + if (bytesRead) { + stream.node.atime = Date.now(); + } + return bytesRead; + }, + write(stream, buffer, offset, length, pos) { + if (!stream.tty || !stream.tty.ops.put_char) { + throw new FS.ErrnoError(60); + } + try { + for (var i = 0; i < length; i++) { + stream.tty.ops.put_char(stream.tty, buffer[offset + i]); + } + } catch (e) { + throw new FS.ErrnoError(29); + } + if (length) { + stream.node.mtime = stream.node.ctime = Date.now(); + } + return i; + } + }, + default_tty_ops: { + get_char(tty) { + return FS_stdin_getChar(); + }, + put_char(tty, val) { + if (val === null || val === 10) { + out(UTF8ArrayToString(tty.output)); + tty.output = []; + } else { + if (val != 0) tty.output.push(val); + } + }, + fsync(tty) { + if (tty.output?.length > 0) { + out(UTF8ArrayToString(tty.output)); + tty.output = []; + } + }, + ioctl_tcgets(tty) { + // typical setting + return { + c_iflag: 25856, + c_oflag: 5, + c_cflag: 191, + c_lflag: 35387, + c_cc: [ 3, 28, 127, 21, 4, 0, 1, 0, 17, 19, 26, 0, 18, 15, 23, 22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ] + }; + }, + ioctl_tcsets(tty, optional_actions, data) { + // currently just ignore + return 0; + }, + ioctl_tiocgwinsz(tty) { + return [ 24, 80 ]; + } + }, + default_tty1_ops: { + put_char(tty, val) { + if (val === null || val === 10) { + err(UTF8ArrayToString(tty.output)); + tty.output = []; + } else { + if (val != 0) tty.output.push(val); + } + }, + fsync(tty) { + if (tty.output?.length > 0) { + err(UTF8ArrayToString(tty.output)); + tty.output = []; + } + } + } +}; + +var zeroMemory = (ptr, size) => HEAPU8.fill(0, ptr, ptr + size); + +var alignMemory = (size, alignment) => Math.ceil(size / alignment) * alignment; + +var mmapAlloc = size => { + size = alignMemory(size, 65536); + var ptr = _emscripten_builtin_memalign(65536, size); + if (ptr) zeroMemory(ptr, size); + return ptr; +}; + +var MEMFS = { + ops_table: null, + mount(mount) { + return MEMFS.createNode(null, "/", 16895, 0); + }, + createNode(parent, name, mode, dev) { + if (FS.isBlkdev(mode) || FS.isFIFO(mode)) { + // not supported + throw new FS.ErrnoError(63); + } + MEMFS.ops_table ||= { + dir: { + node: { + getattr: MEMFS.node_ops.getattr, + setattr: MEMFS.node_ops.setattr, + lookup: MEMFS.node_ops.lookup, + mknod: MEMFS.node_ops.mknod, + rename: MEMFS.node_ops.rename, + unlink: MEMFS.node_ops.unlink, + rmdir: MEMFS.node_ops.rmdir, + readdir: MEMFS.node_ops.readdir, + symlink: MEMFS.node_ops.symlink + }, + stream: { + llseek: MEMFS.stream_ops.llseek + } + }, + file: { + node: { + getattr: MEMFS.node_ops.getattr, + setattr: MEMFS.node_ops.setattr + }, + stream: { + llseek: MEMFS.stream_ops.llseek, + read: MEMFS.stream_ops.read, + write: MEMFS.stream_ops.write, + mmap: MEMFS.stream_ops.mmap, + msync: MEMFS.stream_ops.msync + } + }, + link: { + node: { + getattr: MEMFS.node_ops.getattr, + setattr: MEMFS.node_ops.setattr, + readlink: MEMFS.node_ops.readlink + }, + stream: {} + }, + chrdev: { + node: { + getattr: MEMFS.node_ops.getattr, + setattr: MEMFS.node_ops.setattr + }, + stream: FS.chrdev_stream_ops + } + }; + var node = FS.createNode(parent, name, mode, dev); + if (FS.isDir(node.mode)) { + node.node_ops = MEMFS.ops_table.dir.node; + node.stream_ops = MEMFS.ops_table.dir.stream; + node.contents = {}; + } else if (FS.isFile(node.mode)) { + node.node_ops = MEMFS.ops_table.file.node; + node.stream_ops = MEMFS.ops_table.file.stream; + node.usedBytes = 0; + // The actual number of bytes used in the typed array, as opposed to contents.length which gives the whole capacity. + // When the byte data of the file is populated, this will point to either a typed array, or a normal JS array. Typed arrays are preferred + // for performance, and used by default. However, typed arrays are not resizable like normal JS arrays are, so there is a small disk size + // penalty involved for appending file writes that continuously grow a file similar to std::vector capacity vs used -scheme. + node.contents = null; + } else if (FS.isLink(node.mode)) { + node.node_ops = MEMFS.ops_table.link.node; + node.stream_ops = MEMFS.ops_table.link.stream; + } else if (FS.isChrdev(node.mode)) { + node.node_ops = MEMFS.ops_table.chrdev.node; + node.stream_ops = MEMFS.ops_table.chrdev.stream; + } + node.atime = node.mtime = node.ctime = Date.now(); + // add the new node to the parent + if (parent) { + parent.contents[name] = node; + parent.atime = parent.mtime = parent.ctime = node.atime; + } + return node; + }, + getFileDataAsTypedArray(node) { + if (!node.contents) return new Uint8Array(0); + if (node.contents.subarray) return node.contents.subarray(0, node.usedBytes); + // Make sure to not return excess unused bytes. + return new Uint8Array(node.contents); + }, + expandFileStorage(node, newCapacity) { + var prevCapacity = node.contents ? node.contents.length : 0; + if (prevCapacity >= newCapacity) return; + // No need to expand, the storage was already large enough. + // Don't expand strictly to the given requested limit if it's only a very small increase, but instead geometrically grow capacity. + // For small filesizes (<1MB), perform size*2 geometric increase, but for large sizes, do a much more conservative size*1.125 increase to + // avoid overshooting the allocation cap by a very large margin. + var CAPACITY_DOUBLING_MAX = 1024 * 1024; + newCapacity = Math.max(newCapacity, (prevCapacity * (prevCapacity < CAPACITY_DOUBLING_MAX ? 2 : 1.125)) >>> 0); + if (prevCapacity != 0) newCapacity = Math.max(newCapacity, 256); + // At minimum allocate 256b for each file when expanding. + var oldContents = node.contents; + node.contents = new Uint8Array(newCapacity); + // Allocate new storage. + if (node.usedBytes > 0) node.contents.set(oldContents.subarray(0, node.usedBytes), 0); + }, + resizeFileStorage(node, newSize) { + if (node.usedBytes == newSize) return; + if (newSize == 0) { + node.contents = null; + // Fully decommit when requesting a resize to zero. + node.usedBytes = 0; + } else { + var oldContents = node.contents; + node.contents = new Uint8Array(newSize); + // Allocate new storage. + if (oldContents) { + node.contents.set(oldContents.subarray(0, Math.min(newSize, node.usedBytes))); + } + node.usedBytes = newSize; + } + }, + node_ops: { + getattr(node) { + var attr = {}; + // device numbers reuse inode numbers. + attr.dev = FS.isChrdev(node.mode) ? node.id : 1; + attr.ino = node.id; + attr.mode = node.mode; + attr.nlink = 1; + attr.uid = 0; + attr.gid = 0; + attr.rdev = node.rdev; + if (FS.isDir(node.mode)) { + attr.size = 4096; + } else if (FS.isFile(node.mode)) { + attr.size = node.usedBytes; + } else if (FS.isLink(node.mode)) { + attr.size = node.link.length; + } else { + attr.size = 0; + } + attr.atime = new Date(node.atime); + attr.mtime = new Date(node.mtime); + attr.ctime = new Date(node.ctime); + // NOTE: In our implementation, st_blocks = Math.ceil(st_size/st_blksize), + // but this is not required by the standard. + attr.blksize = 4096; + attr.blocks = Math.ceil(attr.size / attr.blksize); + return attr; + }, + setattr(node, attr) { + for (const key of [ "mode", "atime", "mtime", "ctime" ]) { + if (attr[key] != null) { + node[key] = attr[key]; + } + } + if (attr.size !== undefined) { + MEMFS.resizeFileStorage(node, attr.size); + } + }, + lookup(parent, name) { + // This error may happen quite a bit. To avoid overhead we reuse it (and + // suffer a lack of stack info). + if (!MEMFS.doesNotExistError) { + MEMFS.doesNotExistError = new FS.ErrnoError(44); + /** @suppress {checkTypes} */ MEMFS.doesNotExistError.stack = ""; + } + throw MEMFS.doesNotExistError; + }, + mknod(parent, name, mode, dev) { + return MEMFS.createNode(parent, name, mode, dev); + }, + rename(old_node, new_dir, new_name) { + var new_node; + try { + new_node = FS.lookupNode(new_dir, new_name); + } catch (e) {} + if (new_node) { + if (FS.isDir(old_node.mode)) { + // if we're overwriting a directory at new_name, make sure it's empty. + for (var i in new_node.contents) { + throw new FS.ErrnoError(55); + } + } + FS.hashRemoveNode(new_node); + } + // do the internal rewiring + delete old_node.parent.contents[old_node.name]; + new_dir.contents[new_name] = old_node; + old_node.name = new_name; + new_dir.ctime = new_dir.mtime = old_node.parent.ctime = old_node.parent.mtime = Date.now(); + }, + unlink(parent, name) { + delete parent.contents[name]; + parent.ctime = parent.mtime = Date.now(); + }, + rmdir(parent, name) { + var node = FS.lookupNode(parent, name); + for (var i in node.contents) { + throw new FS.ErrnoError(55); + } + delete parent.contents[name]; + parent.ctime = parent.mtime = Date.now(); + }, + readdir(node) { + return [ ".", "..", ...Object.keys(node.contents) ]; + }, + symlink(parent, newname, oldpath) { + var node = MEMFS.createNode(parent, newname, 511 | 40960, 0); + node.link = oldpath; + return node; + }, + readlink(node) { + if (!FS.isLink(node.mode)) { + throw new FS.ErrnoError(28); + } + return node.link; + } + }, + stream_ops: { + read(stream, buffer, offset, length, position) { + var contents = stream.node.contents; + if (position >= stream.node.usedBytes) return 0; + var size = Math.min(stream.node.usedBytes - position, length); + if (size > 8 && contents.subarray) { + // non-trivial, and typed array + buffer.set(contents.subarray(position, position + size), offset); + } else { + for (var i = 0; i < size; i++) buffer[offset + i] = contents[position + i]; + } + return size; + }, + write(stream, buffer, offset, length, position, canOwn) { + // If the buffer is located in main memory (HEAP), and if + // memory can grow, we can't hold on to references of the + // memory buffer, as they may get invalidated. That means we + // need to copy its contents. + if (buffer.buffer === HEAP8.buffer) { + canOwn = false; + } + if (!length) return 0; + var node = stream.node; + node.mtime = node.ctime = Date.now(); + if (buffer.subarray && (!node.contents || node.contents.subarray)) { + // This write is from a typed array to a typed array? + if (canOwn) { + node.contents = buffer.subarray(offset, offset + length); + node.usedBytes = length; + return length; + } else if (node.usedBytes === 0 && position === 0) { + // If this is a simple first write to an empty file, do a fast set since we don't need to care about old data. + node.contents = buffer.slice(offset, offset + length); + node.usedBytes = length; + return length; + } else if (position + length <= node.usedBytes) { + // Writing to an already allocated and used subrange of the file? + node.contents.set(buffer.subarray(offset, offset + length), position); + return length; + } + } + // Appending to an existing file and we need to reallocate, or source data did not come as a typed array. + MEMFS.expandFileStorage(node, position + length); + if (node.contents.subarray && buffer.subarray) { + // Use typed array write which is available. + node.contents.set(buffer.subarray(offset, offset + length), position); + } else { + for (var i = 0; i < length; i++) { + node.contents[position + i] = buffer[offset + i]; + } + } + node.usedBytes = Math.max(node.usedBytes, position + length); + return length; + }, + llseek(stream, offset, whence) { + var position = offset; + if (whence === 1) { + position += stream.position; + } else if (whence === 2) { + if (FS.isFile(stream.node.mode)) { + position += stream.node.usedBytes; + } + } + if (position < 0) { + throw new FS.ErrnoError(28); + } + return position; + }, + mmap(stream, length, position, prot, flags) { + if (!FS.isFile(stream.node.mode)) { + throw new FS.ErrnoError(43); + } + var ptr; + var allocated; + var contents = stream.node.contents; + // Only make a new copy when MAP_PRIVATE is specified. + if (!(flags & 2) && contents && contents.buffer === HEAP8.buffer) { + // We can't emulate MAP_SHARED when the file is not backed by the + // buffer we're mapping to (e.g. the HEAP buffer). + allocated = false; + ptr = contents.byteOffset; + } else { + allocated = true; + ptr = mmapAlloc(length); + if (!ptr) { + throw new FS.ErrnoError(48); + } + if (contents) { + // Try to avoid unnecessary slices. + if (position > 0 || position + length < contents.length) { + if (contents.subarray) { + contents = contents.subarray(position, position + length); + } else { + contents = Array.prototype.slice.call(contents, position, position + length); + } + } + HEAP8.set(contents, ptr); + } + } + return { + ptr, + allocated + }; + }, + msync(stream, buffer, offset, length, mmapFlags) { + MEMFS.stream_ops.write(stream, buffer, 0, length, offset, false); + // should we check if bytesWritten and length are the same? + return 0; + } + } +}; + +var FS_modeStringToFlags = str => { + var flagModes = { + "r": 0, + "r+": 2, + "w": 512 | 64 | 1, + "w+": 512 | 64 | 2, + "a": 1024 | 64 | 1, + "a+": 1024 | 64 | 2 + }; + var flags = flagModes[str]; + if (typeof flags == "undefined") { + throw new Error(`Unknown file open mode: ${str}`); + } + return flags; +}; + +var FS_getMode = (canRead, canWrite) => { + var mode = 0; + if (canRead) mode |= 292 | 73; + if (canWrite) mode |= 146; + return mode; +}; + +var asyncLoad = async url => { + var arrayBuffer = await readAsync(url); + return new Uint8Array(arrayBuffer); +}; + +var FS_createDataFile = (...args) => FS.createDataFile(...args); + +var getUniqueRunDependency = id => id; + +var runDependencies = 0; + +var dependenciesFulfilled = null; + +var removeRunDependency = id => { + runDependencies--; + Module["monitorRunDependencies"]?.(runDependencies); + if (runDependencies == 0) { + if (dependenciesFulfilled) { + var callback = dependenciesFulfilled; + dependenciesFulfilled = null; + callback(); + } + } +}; + +var addRunDependency = id => { + runDependencies++; + Module["monitorRunDependencies"]?.(runDependencies); +}; + +var FS_handledByPreloadPlugin = async (byteArray, fullname) => { + // Ensure plugins are ready. + if (typeof Browser != "undefined") Browser.init(); + for (var plugin of preloadPlugins) { + if (plugin["canHandle"](fullname)) { + return plugin["handle"](byteArray, fullname); + } + } + // If no plugin handled this file then return the original/unmodified + // byteArray. + return byteArray; +}; + +var FS_preloadFile = async (parent, name, url, canRead, canWrite, dontCreateFile, canOwn, preFinish) => { + // TODO we should allow people to just pass in a complete filename instead + // of parent and name being that we just join them anyways + var fullname = name ? PATH_FS.resolve(PATH.join2(parent, name)) : parent; + var dep = getUniqueRunDependency(`cp ${fullname}`); + // might have several active requests for the same fullname + addRunDependency(dep); + try { + var byteArray = url; + if (typeof url == "string") { + byteArray = await asyncLoad(url); + } + byteArray = await FS_handledByPreloadPlugin(byteArray, fullname); + preFinish?.(); + if (!dontCreateFile) { + FS_createDataFile(parent, name, byteArray, canRead, canWrite, canOwn); + } + } finally { + removeRunDependency(dep); + } +}; + +var FS_createPreloadedFile = (parent, name, url, canRead, canWrite, onload, onerror, dontCreateFile, canOwn, preFinish) => { + FS_preloadFile(parent, name, url, canRead, canWrite, dontCreateFile, canOwn, preFinish).then(onload).catch(onerror); +}; + +var FS = { + root: null, + mounts: [], + devices: {}, + streams: [], + nextInode: 1, + nameTable: null, + currentPath: "/", + initialized: false, + ignorePermissions: true, + filesystems: null, + syncFSRequests: 0, + ErrnoError: class { + name="ErrnoError"; + // We set the `name` property to be able to identify `FS.ErrnoError` + // - the `name` is a standard ECMA-262 property of error objects. Kind of good to have it anyway. + // - when using PROXYFS, an error can come from an underlying FS + // as different FS objects have their own FS.ErrnoError each, + // the test `err instanceof FS.ErrnoError` won't detect an error coming from another filesystem, causing bugs. + // we'll use the reliable test `err.name == "ErrnoError"` instead + constructor(errno) { + this.errno = errno; + } + }, + FSStream: class { + shared={}; + get object() { + return this.node; + } + set object(val) { + this.node = val; + } + get isRead() { + return (this.flags & 2097155) !== 1; + } + get isWrite() { + return (this.flags & 2097155) !== 0; + } + get isAppend() { + return (this.flags & 1024); + } + get flags() { + return this.shared.flags; + } + set flags(val) { + this.shared.flags = val; + } + get position() { + return this.shared.position; + } + set position(val) { + this.shared.position = val; + } + }, + FSNode: class { + node_ops={}; + stream_ops={}; + readMode=292 | 73; + writeMode=146; + mounted=null; + constructor(parent, name, mode, rdev) { + if (!parent) { + parent = this; + } + this.parent = parent; + this.mount = parent.mount; + this.id = FS.nextInode++; + this.name = name; + this.mode = mode; + this.rdev = rdev; + this.atime = this.mtime = this.ctime = Date.now(); + } + get read() { + return (this.mode & this.readMode) === this.readMode; + } + set read(val) { + val ? this.mode |= this.readMode : this.mode &= ~this.readMode; + } + get write() { + return (this.mode & this.writeMode) === this.writeMode; + } + set write(val) { + val ? this.mode |= this.writeMode : this.mode &= ~this.writeMode; + } + get isFolder() { + return FS.isDir(this.mode); + } + get isDevice() { + return FS.isChrdev(this.mode); + } + }, + lookupPath(path, opts = {}) { + if (!path) { + throw new FS.ErrnoError(44); + } + opts.follow_mount ??= true; + if (!PATH.isAbs(path)) { + path = FS.cwd() + "/" + path; + } + // limit max consecutive symlinks to 40 (SYMLOOP_MAX). + linkloop: for (var nlinks = 0; nlinks < 40; nlinks++) { + // split the absolute path + var parts = path.split("/").filter(p => !!p); + // start at the root + var current = FS.root; + var current_path = "/"; + for (var i = 0; i < parts.length; i++) { + var islast = (i === parts.length - 1); + if (islast && opts.parent) { + // stop resolving + break; + } + if (parts[i] === ".") { + continue; + } + if (parts[i] === "..") { + current_path = PATH.dirname(current_path); + if (FS.isRoot(current)) { + path = current_path + "/" + parts.slice(i + 1).join("/"); + // We're making progress here, don't let many consecutive ..'s + // lead to ELOOP + nlinks--; + continue linkloop; + } else { + current = current.parent; + } + continue; + } + current_path = PATH.join2(current_path, parts[i]); + try { + current = FS.lookupNode(current, parts[i]); + } catch (e) { + // if noent_okay is true, suppress a ENOENT in the last component + // and return an object with an undefined node. This is needed for + // resolving symlinks in the path when creating a file. + if ((e?.errno === 44) && islast && opts.noent_okay) { + return { + path: current_path + }; + } + throw e; + } + // jump to the mount's root node if this is a mountpoint + if (FS.isMountpoint(current) && (!islast || opts.follow_mount)) { + current = current.mounted.root; + } + // by default, lookupPath will not follow a symlink if it is the final path component. + // setting opts.follow = true will override this behavior. + if (FS.isLink(current.mode) && (!islast || opts.follow)) { + if (!current.node_ops.readlink) { + throw new FS.ErrnoError(52); + } + var link = current.node_ops.readlink(current); + if (!PATH.isAbs(link)) { + link = PATH.dirname(current_path) + "/" + link; + } + path = link + "/" + parts.slice(i + 1).join("/"); + continue linkloop; + } + } + return { + path: current_path, + node: current + }; + } + throw new FS.ErrnoError(32); + }, + getPath(node) { + var path; + while (true) { + if (FS.isRoot(node)) { + var mount = node.mount.mountpoint; + if (!path) return mount; + return mount[mount.length - 1] !== "/" ? `${mount}/${path}` : mount + path; + } + path = path ? `${node.name}/${path}` : node.name; + node = node.parent; + } + }, + hashName(parentid, name) { + var hash = 0; + for (var i = 0; i < name.length; i++) { + hash = ((hash << 5) - hash + name.charCodeAt(i)) | 0; + } + return ((parentid + hash) >>> 0) % FS.nameTable.length; + }, + hashAddNode(node) { + var hash = FS.hashName(node.parent.id, node.name); + node.name_next = FS.nameTable[hash]; + FS.nameTable[hash] = node; + }, + hashRemoveNode(node) { + var hash = FS.hashName(node.parent.id, node.name); + if (FS.nameTable[hash] === node) { + FS.nameTable[hash] = node.name_next; + } else { + var current = FS.nameTable[hash]; + while (current) { + if (current.name_next === node) { + current.name_next = node.name_next; + break; + } + current = current.name_next; + } + } + }, + lookupNode(parent, name) { + var errCode = FS.mayLookup(parent); + if (errCode) { + throw new FS.ErrnoError(errCode); + } + var hash = FS.hashName(parent.id, name); + for (var node = FS.nameTable[hash]; node; node = node.name_next) { + var nodeName = node.name; + if (node.parent.id === parent.id && nodeName === name) { + return node; + } + } + // if we failed to find it in the cache, call into the VFS + return FS.lookup(parent, name); + }, + createNode(parent, name, mode, rdev) { + var node = new FS.FSNode(parent, name, mode, rdev); + FS.hashAddNode(node); + return node; + }, + destroyNode(node) { + FS.hashRemoveNode(node); + }, + isRoot(node) { + return node === node.parent; + }, + isMountpoint(node) { + return !!node.mounted; + }, + isFile(mode) { + return (mode & 61440) === 32768; + }, + isDir(mode) { + return (mode & 61440) === 16384; + }, + isLink(mode) { + return (mode & 61440) === 40960; + }, + isChrdev(mode) { + return (mode & 61440) === 8192; + }, + isBlkdev(mode) { + return (mode & 61440) === 24576; + }, + isFIFO(mode) { + return (mode & 61440) === 4096; + }, + isSocket(mode) { + return (mode & 49152) === 49152; + }, + flagsToPermissionString(flag) { + var perms = [ "r", "w", "rw" ][flag & 3]; + if ((flag & 512)) { + perms += "w"; + } + return perms; + }, + nodePermissions(node, perms) { + if (FS.ignorePermissions) { + return 0; + } + // return 0 if any user, group or owner bits are set. + if (perms.includes("r") && !(node.mode & 292)) { + return 2; + } + if (perms.includes("w") && !(node.mode & 146)) { + return 2; + } + if (perms.includes("x") && !(node.mode & 73)) { + return 2; + } + return 0; + }, + mayLookup(dir) { + if (!FS.isDir(dir.mode)) return 54; + var errCode = FS.nodePermissions(dir, "x"); + if (errCode) return errCode; + if (!dir.node_ops.lookup) return 2; + return 0; + }, + mayCreate(dir, name) { + if (!FS.isDir(dir.mode)) { + return 54; + } + try { + var node = FS.lookupNode(dir, name); + return 20; + } catch (e) {} + return FS.nodePermissions(dir, "wx"); + }, + mayDelete(dir, name, isdir) { + var node; + try { + node = FS.lookupNode(dir, name); + } catch (e) { + return e.errno; + } + var errCode = FS.nodePermissions(dir, "wx"); + if (errCode) { + return errCode; + } + if (isdir) { + if (!FS.isDir(node.mode)) { + return 54; + } + if (FS.isRoot(node) || FS.getPath(node) === FS.cwd()) { + return 10; + } + } else if (FS.isDir(node.mode)) { + return 31; + } + return 0; + }, + mayOpen(node, flags) { + if (!node) { + return 44; + } + if (FS.isLink(node.mode)) { + return 32; + } + var mode = FS.flagsToPermissionString(flags); + if (FS.isDir(node.mode)) { + // opening for write + // TODO: check for O_SEARCH? (== search for dir only) + if (mode !== "r" || (flags & (512 | 64))) { + return 31; + } + } + return FS.nodePermissions(node, mode); + }, + checkOpExists(op, err) { + if (!op) { + throw new FS.ErrnoError(err); + } + return op; + }, + MAX_OPEN_FDS: 4096, + nextfd() { + for (var fd = 0; fd <= FS.MAX_OPEN_FDS; fd++) { + if (!FS.streams[fd]) { + return fd; + } + } + throw new FS.ErrnoError(33); + }, + getStreamChecked(fd) { + var stream = FS.getStream(fd); + if (!stream) { + throw new FS.ErrnoError(8); + } + return stream; + }, + getStream: fd => FS.streams[fd], + createStream(stream, fd = -1) { + // clone it, so we can return an instance of FSStream + stream = Object.assign(new FS.FSStream, stream); + if (fd == -1) { + fd = FS.nextfd(); + } + stream.fd = fd; + FS.streams[fd] = stream; + return stream; + }, + closeStream(fd) { + FS.streams[fd] = null; + }, + dupStream(origStream, fd = -1) { + var stream = FS.createStream(origStream, fd); + stream.stream_ops?.dup?.(stream); + return stream; + }, + doSetAttr(stream, node, attr) { + var setattr = stream?.stream_ops.setattr; + var arg = setattr ? stream : node; + setattr ??= node.node_ops.setattr; + FS.checkOpExists(setattr, 63); + setattr(arg, attr); + }, + chrdev_stream_ops: { + open(stream) { + var device = FS.getDevice(stream.node.rdev); + // override node's stream ops with the device's + stream.stream_ops = device.stream_ops; + // forward the open call + stream.stream_ops.open?.(stream); + }, + llseek() { + throw new FS.ErrnoError(70); + } + }, + major: dev => ((dev) >> 8), + minor: dev => ((dev) & 255), + makedev: (ma, mi) => ((ma) << 8 | (mi)), + registerDevice(dev, ops) { + FS.devices[dev] = { + stream_ops: ops + }; + }, + getDevice: dev => FS.devices[dev], + getMounts(mount) { + var mounts = []; + var check = [ mount ]; + while (check.length) { + var m = check.pop(); + mounts.push(m); + check.push(...m.mounts); + } + return mounts; + }, + syncfs(populate, callback) { + if (typeof populate == "function") { + callback = populate; + populate = false; + } + FS.syncFSRequests++; + if (FS.syncFSRequests > 1) { + err(`warning: ${FS.syncFSRequests} FS.syncfs operations in flight at once, probably just doing extra work`); + } + var mounts = FS.getMounts(FS.root.mount); + var completed = 0; + function doCallback(errCode) { + FS.syncFSRequests--; + return callback(errCode); + } + function done(errCode) { + if (errCode) { + if (!done.errored) { + done.errored = true; + return doCallback(errCode); + } + return; + } + if (++completed >= mounts.length) { + doCallback(null); + } + } + // sync all mounts + for (var mount of mounts) { + if (mount.type.syncfs) { + mount.type.syncfs(mount, populate, done); + } else { + done(null); + } + } + }, + mount(type, opts, mountpoint) { + var root = mountpoint === "/"; + var pseudo = !mountpoint; + var node; + if (root && FS.root) { + throw new FS.ErrnoError(10); + } else if (!root && !pseudo) { + var lookup = FS.lookupPath(mountpoint, { + follow_mount: false + }); + mountpoint = lookup.path; + // use the absolute path + node = lookup.node; + if (FS.isMountpoint(node)) { + throw new FS.ErrnoError(10); + } + if (!FS.isDir(node.mode)) { + throw new FS.ErrnoError(54); + } + } + var mount = { + type, + opts, + mountpoint, + mounts: [] + }; + // create a root node for the fs + var mountRoot = type.mount(mount); + mountRoot.mount = mount; + mount.root = mountRoot; + if (root) { + FS.root = mountRoot; + } else if (node) { + // set as a mountpoint + node.mounted = mount; + // add the new mount to the current mount's children + if (node.mount) { + node.mount.mounts.push(mount); + } + } + return mountRoot; + }, + unmount(mountpoint) { + var lookup = FS.lookupPath(mountpoint, { + follow_mount: false + }); + if (!FS.isMountpoint(lookup.node)) { + throw new FS.ErrnoError(28); + } + // destroy the nodes for this mount, and all its child mounts + var node = lookup.node; + var mount = node.mounted; + var mounts = FS.getMounts(mount); + for (var [hash, current] of Object.entries(FS.nameTable)) { + while (current) { + var next = current.name_next; + if (mounts.includes(current.mount)) { + FS.destroyNode(current); + } + current = next; + } + } + // no longer a mountpoint + node.mounted = null; + // remove this mount from the child mounts + var idx = node.mount.mounts.indexOf(mount); + node.mount.mounts.splice(idx, 1); + }, + lookup(parent, name) { + return parent.node_ops.lookup(parent, name); + }, + mknod(path, mode, dev) { + var lookup = FS.lookupPath(path, { + parent: true + }); + var parent = lookup.node; + var name = PATH.basename(path); + if (!name) { + throw new FS.ErrnoError(28); + } + if (name === "." || name === "..") { + throw new FS.ErrnoError(20); + } + var errCode = FS.mayCreate(parent, name); + if (errCode) { + throw new FS.ErrnoError(errCode); + } + if (!parent.node_ops.mknod) { + throw new FS.ErrnoError(63); + } + return parent.node_ops.mknod(parent, name, mode, dev); + }, + statfs(path) { + return FS.statfsNode(FS.lookupPath(path, { + follow: true + }).node); + }, + statfsStream(stream) { + // We keep a separate statfsStream function because noderawfs overrides + // it. In noderawfs, stream.node is sometimes null. Instead, we need to + // look at stream.path. + return FS.statfsNode(stream.node); + }, + statfsNode(node) { + // NOTE: None of the defaults here are true. We're just returning safe and + // sane values. Currently nodefs and rawfs replace these defaults, + // other file systems leave them alone. + var rtn = { + bsize: 4096, + frsize: 4096, + blocks: 1e6, + bfree: 5e5, + bavail: 5e5, + files: FS.nextInode, + ffree: FS.nextInode - 1, + fsid: 42, + flags: 2, + namelen: 255 + }; + if (node.node_ops.statfs) { + Object.assign(rtn, node.node_ops.statfs(node.mount.opts.root)); + } + return rtn; + }, + create(path, mode = 438) { + mode &= 4095; + mode |= 32768; + return FS.mknod(path, mode, 0); + }, + mkdir(path, mode = 511) { + mode &= 511 | 512; + mode |= 16384; + return FS.mknod(path, mode, 0); + }, + mkdirTree(path, mode) { + var dirs = path.split("/"); + var d = ""; + for (var dir of dirs) { + if (!dir) continue; + if (d || PATH.isAbs(path)) d += "/"; + d += dir; + try { + FS.mkdir(d, mode); + } catch (e) { + if (e.errno != 20) throw e; + } + } + }, + mkdev(path, mode, dev) { + if (typeof dev == "undefined") { + dev = mode; + mode = 438; + } + mode |= 8192; + return FS.mknod(path, mode, dev); + }, + symlink(oldpath, newpath) { + if (!PATH_FS.resolve(oldpath)) { + throw new FS.ErrnoError(44); + } + var lookup = FS.lookupPath(newpath, { + parent: true + }); + var parent = lookup.node; + if (!parent) { + throw new FS.ErrnoError(44); + } + var newname = PATH.basename(newpath); + var errCode = FS.mayCreate(parent, newname); + if (errCode) { + throw new FS.ErrnoError(errCode); + } + if (!parent.node_ops.symlink) { + throw new FS.ErrnoError(63); + } + return parent.node_ops.symlink(parent, newname, oldpath); + }, + rename(old_path, new_path) { + var old_dirname = PATH.dirname(old_path); + var new_dirname = PATH.dirname(new_path); + var old_name = PATH.basename(old_path); + var new_name = PATH.basename(new_path); + // parents must exist + var lookup, old_dir, new_dir; + // let the errors from non existent directories percolate up + lookup = FS.lookupPath(old_path, { + parent: true + }); + old_dir = lookup.node; + lookup = FS.lookupPath(new_path, { + parent: true + }); + new_dir = lookup.node; + if (!old_dir || !new_dir) throw new FS.ErrnoError(44); + // need to be part of the same mount + if (old_dir.mount !== new_dir.mount) { + throw new FS.ErrnoError(75); + } + // source must exist + var old_node = FS.lookupNode(old_dir, old_name); + // old path should not be an ancestor of the new path + var relative = PATH_FS.relative(old_path, new_dirname); + if (relative.charAt(0) !== ".") { + throw new FS.ErrnoError(28); + } + // new path should not be an ancestor of the old path + relative = PATH_FS.relative(new_path, old_dirname); + if (relative.charAt(0) !== ".") { + throw new FS.ErrnoError(55); + } + // see if the new path already exists + var new_node; + try { + new_node = FS.lookupNode(new_dir, new_name); + } catch (e) {} + // early out if nothing needs to change + if (old_node === new_node) { + return; + } + // we'll need to delete the old entry + var isdir = FS.isDir(old_node.mode); + var errCode = FS.mayDelete(old_dir, old_name, isdir); + if (errCode) { + throw new FS.ErrnoError(errCode); + } + // need delete permissions if we'll be overwriting. + // need create permissions if new doesn't already exist. + errCode = new_node ? FS.mayDelete(new_dir, new_name, isdir) : FS.mayCreate(new_dir, new_name); + if (errCode) { + throw new FS.ErrnoError(errCode); + } + if (!old_dir.node_ops.rename) { + throw new FS.ErrnoError(63); + } + if (FS.isMountpoint(old_node) || (new_node && FS.isMountpoint(new_node))) { + throw new FS.ErrnoError(10); + } + // if we are going to change the parent, check write permissions + if (new_dir !== old_dir) { + errCode = FS.nodePermissions(old_dir, "w"); + if (errCode) { + throw new FS.ErrnoError(errCode); + } + } + // remove the node from the lookup hash + FS.hashRemoveNode(old_node); + // do the underlying fs rename + try { + old_dir.node_ops.rename(old_node, new_dir, new_name); + // update old node (we do this here to avoid each backend + // needing to) + old_node.parent = new_dir; + } catch (e) { + throw e; + } finally { + // add the node back to the hash (in case node_ops.rename + // changed its name) + FS.hashAddNode(old_node); + } + }, + rmdir(path) { + var lookup = FS.lookupPath(path, { + parent: true + }); + var parent = lookup.node; + var name = PATH.basename(path); + var node = FS.lookupNode(parent, name); + var errCode = FS.mayDelete(parent, name, true); + if (errCode) { + throw new FS.ErrnoError(errCode); + } + if (!parent.node_ops.rmdir) { + throw new FS.ErrnoError(63); + } + if (FS.isMountpoint(node)) { + throw new FS.ErrnoError(10); + } + parent.node_ops.rmdir(parent, name); + FS.destroyNode(node); + }, + readdir(path) { + var lookup = FS.lookupPath(path, { + follow: true + }); + var node = lookup.node; + var readdir = FS.checkOpExists(node.node_ops.readdir, 54); + return readdir(node); + }, + unlink(path) { + var lookup = FS.lookupPath(path, { + parent: true + }); + var parent = lookup.node; + if (!parent) { + throw new FS.ErrnoError(44); + } + var name = PATH.basename(path); + var node = FS.lookupNode(parent, name); + var errCode = FS.mayDelete(parent, name, false); + if (errCode) { + // According to POSIX, we should map EISDIR to EPERM, but + // we instead do what Linux does (and we must, as we use + // the musl linux libc). + throw new FS.ErrnoError(errCode); + } + if (!parent.node_ops.unlink) { + throw new FS.ErrnoError(63); + } + if (FS.isMountpoint(node)) { + throw new FS.ErrnoError(10); + } + parent.node_ops.unlink(parent, name); + FS.destroyNode(node); + }, + readlink(path) { + var lookup = FS.lookupPath(path); + var link = lookup.node; + if (!link) { + throw new FS.ErrnoError(44); + } + if (!link.node_ops.readlink) { + throw new FS.ErrnoError(28); + } + return link.node_ops.readlink(link); + }, + stat(path, dontFollow) { + var lookup = FS.lookupPath(path, { + follow: !dontFollow + }); + var node = lookup.node; + var getattr = FS.checkOpExists(node.node_ops.getattr, 63); + return getattr(node); + }, + fstat(fd) { + var stream = FS.getStreamChecked(fd); + var node = stream.node; + var getattr = stream.stream_ops.getattr; + var arg = getattr ? stream : node; + getattr ??= node.node_ops.getattr; + FS.checkOpExists(getattr, 63); + return getattr(arg); + }, + lstat(path) { + return FS.stat(path, true); + }, + doChmod(stream, node, mode, dontFollow) { + FS.doSetAttr(stream, node, { + mode: (mode & 4095) | (node.mode & ~4095), + ctime: Date.now(), + dontFollow + }); + }, + chmod(path, mode, dontFollow) { + var node; + if (typeof path == "string") { + var lookup = FS.lookupPath(path, { + follow: !dontFollow + }); + node = lookup.node; + } else { + node = path; + } + FS.doChmod(null, node, mode, dontFollow); + }, + lchmod(path, mode) { + FS.chmod(path, mode, true); + }, + fchmod(fd, mode) { + var stream = FS.getStreamChecked(fd); + FS.doChmod(stream, stream.node, mode, false); + }, + doChown(stream, node, dontFollow) { + FS.doSetAttr(stream, node, { + timestamp: Date.now(), + dontFollow + }); + }, + chown(path, uid, gid, dontFollow) { + var node; + if (typeof path == "string") { + var lookup = FS.lookupPath(path, { + follow: !dontFollow + }); + node = lookup.node; + } else { + node = path; + } + FS.doChown(null, node, dontFollow); + }, + lchown(path, uid, gid) { + FS.chown(path, uid, gid, true); + }, + fchown(fd, uid, gid) { + var stream = FS.getStreamChecked(fd); + FS.doChown(stream, stream.node, false); + }, + doTruncate(stream, node, len) { + if (FS.isDir(node.mode)) { + throw new FS.ErrnoError(31); + } + if (!FS.isFile(node.mode)) { + throw new FS.ErrnoError(28); + } + var errCode = FS.nodePermissions(node, "w"); + if (errCode) { + throw new FS.ErrnoError(errCode); + } + FS.doSetAttr(stream, node, { + size: len, + timestamp: Date.now() + }); + }, + truncate(path, len) { + if (len < 0) { + throw new FS.ErrnoError(28); + } + var node; + if (typeof path == "string") { + var lookup = FS.lookupPath(path, { + follow: true + }); + node = lookup.node; + } else { + node = path; + } + FS.doTruncate(null, node, len); + }, + ftruncate(fd, len) { + var stream = FS.getStreamChecked(fd); + if (len < 0 || (stream.flags & 2097155) === 0) { + throw new FS.ErrnoError(28); + } + FS.doTruncate(stream, stream.node, len); + }, + utime(path, atime, mtime) { + var lookup = FS.lookupPath(path, { + follow: true + }); + var node = lookup.node; + var setattr = FS.checkOpExists(node.node_ops.setattr, 63); + setattr(node, { + atime, + mtime + }); + }, + open(path, flags, mode = 438) { + if (path === "") { + throw new FS.ErrnoError(44); + } + flags = typeof flags == "string" ? FS_modeStringToFlags(flags) : flags; + if ((flags & 64)) { + mode = (mode & 4095) | 32768; + } else { + mode = 0; + } + var node; + var isDirPath; + if (typeof path == "object") { + node = path; + } else { + isDirPath = path.endsWith("/"); + // noent_okay makes it so that if the final component of the path + // doesn't exist, lookupPath returns `node: undefined`. `path` will be + // updated to point to the target of all symlinks. + var lookup = FS.lookupPath(path, { + follow: !(flags & 131072), + noent_okay: true + }); + node = lookup.node; + path = lookup.path; + } + // perhaps we need to create the node + var created = false; + if ((flags & 64)) { + if (node) { + // if O_CREAT and O_EXCL are set, error out if the node already exists + if ((flags & 128)) { + throw new FS.ErrnoError(20); + } + } else if (isDirPath) { + throw new FS.ErrnoError(31); + } else { + // node doesn't exist, try to create it + // Ignore the permission bits here to ensure we can `open` this new + // file below. We use chmod below to apply the permissions once the + // file is open. + node = FS.mknod(path, mode | 511, 0); + created = true; + } + } + if (!node) { + throw new FS.ErrnoError(44); + } + // can't truncate a device + if (FS.isChrdev(node.mode)) { + flags &= ~512; + } + // if asked only for a directory, then this must be one + if ((flags & 65536) && !FS.isDir(node.mode)) { + throw new FS.ErrnoError(54); + } + // check permissions, if this is not a file we just created now (it is ok to + // create and write to a file with read-only permissions; it is read-only + // for later use) + if (!created) { + var errCode = FS.mayOpen(node, flags); + if (errCode) { + throw new FS.ErrnoError(errCode); + } + } + // do truncation if necessary + if ((flags & 512) && !created) { + FS.truncate(node, 0); + } + // we've already handled these, don't pass down to the underlying vfs + flags &= ~(128 | 512 | 131072); + // register the stream with the filesystem + var stream = FS.createStream({ + node, + path: FS.getPath(node), + // we want the absolute path to the node + flags, + seekable: true, + position: 0, + stream_ops: node.stream_ops, + // used by the file family libc calls (fopen, fwrite, ferror, etc.) + ungotten: [], + error: false + }); + // call the new stream's open function + if (stream.stream_ops.open) { + stream.stream_ops.open(stream); + } + if (created) { + FS.chmod(node, mode & 511); + } + return stream; + }, + close(stream) { + if (FS.isClosed(stream)) { + throw new FS.ErrnoError(8); + } + if (stream.getdents) stream.getdents = null; + // free readdir state + try { + if (stream.stream_ops.close) { + stream.stream_ops.close(stream); + } + } catch (e) { + throw e; + } finally { + FS.closeStream(stream.fd); + } + stream.fd = null; + }, + isClosed(stream) { + return stream.fd === null; + }, + llseek(stream, offset, whence) { + if (FS.isClosed(stream)) { + throw new FS.ErrnoError(8); + } + if (!stream.seekable || !stream.stream_ops.llseek) { + throw new FS.ErrnoError(70); + } + if (whence != 0 && whence != 1 && whence != 2) { + throw new FS.ErrnoError(28); + } + stream.position = stream.stream_ops.llseek(stream, offset, whence); + stream.ungotten = []; + return stream.position; + }, + read(stream, buffer, offset, length, position) { + if (length < 0 || position < 0) { + throw new FS.ErrnoError(28); + } + if (FS.isClosed(stream)) { + throw new FS.ErrnoError(8); + } + if ((stream.flags & 2097155) === 1) { + throw new FS.ErrnoError(8); + } + if (FS.isDir(stream.node.mode)) { + throw new FS.ErrnoError(31); + } + if (!stream.stream_ops.read) { + throw new FS.ErrnoError(28); + } + var seeking = typeof position != "undefined"; + if (!seeking) { + position = stream.position; + } else if (!stream.seekable) { + throw new FS.ErrnoError(70); + } + var bytesRead = stream.stream_ops.read(stream, buffer, offset, length, position); + if (!seeking) stream.position += bytesRead; + return bytesRead; + }, + write(stream, buffer, offset, length, position, canOwn) { + if (length < 0 || position < 0) { + throw new FS.ErrnoError(28); + } + if (FS.isClosed(stream)) { + throw new FS.ErrnoError(8); + } + if ((stream.flags & 2097155) === 0) { + throw new FS.ErrnoError(8); + } + if (FS.isDir(stream.node.mode)) { + throw new FS.ErrnoError(31); + } + if (!stream.stream_ops.write) { + throw new FS.ErrnoError(28); + } + if (stream.seekable && stream.flags & 1024) { + // seek to the end before writing in append mode + FS.llseek(stream, 0, 2); + } + var seeking = typeof position != "undefined"; + if (!seeking) { + position = stream.position; + } else if (!stream.seekable) { + throw new FS.ErrnoError(70); + } + var bytesWritten = stream.stream_ops.write(stream, buffer, offset, length, position, canOwn); + if (!seeking) stream.position += bytesWritten; + return bytesWritten; + }, + mmap(stream, length, position, prot, flags) { + // User requests writing to file (prot & PROT_WRITE != 0). + // Checking if we have permissions to write to the file unless + // MAP_PRIVATE flag is set. According to POSIX spec it is possible + // to write to file opened in read-only mode with MAP_PRIVATE flag, + // as all modifications will be visible only in the memory of + // the current process. + if ((prot & 2) !== 0 && (flags & 2) === 0 && (stream.flags & 2097155) !== 2) { + throw new FS.ErrnoError(2); + } + if ((stream.flags & 2097155) === 1) { + throw new FS.ErrnoError(2); + } + if (!stream.stream_ops.mmap) { + throw new FS.ErrnoError(43); + } + if (!length) { + throw new FS.ErrnoError(28); + } + return stream.stream_ops.mmap(stream, length, position, prot, flags); + }, + msync(stream, buffer, offset, length, mmapFlags) { + if (!stream.stream_ops.msync) { + return 0; + } + return stream.stream_ops.msync(stream, buffer, offset, length, mmapFlags); + }, + ioctl(stream, cmd, arg) { + if (!stream.stream_ops.ioctl) { + throw new FS.ErrnoError(59); + } + return stream.stream_ops.ioctl(stream, cmd, arg); + }, + readFile(path, opts = {}) { + opts.flags = opts.flags || 0; + opts.encoding = opts.encoding || "binary"; + if (opts.encoding !== "utf8" && opts.encoding !== "binary") { + abort(`Invalid encoding type "${opts.encoding}"`); + } + var stream = FS.open(path, opts.flags); + var stat = FS.stat(path); + var length = stat.size; + var buf = new Uint8Array(length); + FS.read(stream, buf, 0, length, 0); + if (opts.encoding === "utf8") { + buf = UTF8ArrayToString(buf); + } + FS.close(stream); + return buf; + }, + writeFile(path, data, opts = {}) { + opts.flags = opts.flags || 577; + var stream = FS.open(path, opts.flags, opts.mode); + if (typeof data == "string") { + data = new Uint8Array(intArrayFromString(data, true)); + } + if (ArrayBuffer.isView(data)) { + FS.write(stream, data, 0, data.byteLength, undefined, opts.canOwn); + } else { + abort("Unsupported data type"); + } + FS.close(stream); + }, + cwd: () => FS.currentPath, + chdir(path) { + var lookup = FS.lookupPath(path, { + follow: true + }); + if (lookup.node === null) { + throw new FS.ErrnoError(44); + } + if (!FS.isDir(lookup.node.mode)) { + throw new FS.ErrnoError(54); + } + var errCode = FS.nodePermissions(lookup.node, "x"); + if (errCode) { + throw new FS.ErrnoError(errCode); + } + FS.currentPath = lookup.path; + }, + createDefaultDirectories() { + FS.mkdir("/tmp"); + FS.mkdir("/home"); + FS.mkdir("/home/web_user"); + }, + createDefaultDevices() { + // create /dev + FS.mkdir("/dev"); + // setup /dev/null + FS.registerDevice(FS.makedev(1, 3), { + read: () => 0, + write: (stream, buffer, offset, length, pos) => length, + llseek: () => 0 + }); + FS.mkdev("/dev/null", FS.makedev(1, 3)); + // setup /dev/tty and /dev/tty1 + // stderr needs to print output using err() rather than out() + // so we register a second tty just for it. + TTY.register(FS.makedev(5, 0), TTY.default_tty_ops); + TTY.register(FS.makedev(6, 0), TTY.default_tty1_ops); + FS.mkdev("/dev/tty", FS.makedev(5, 0)); + FS.mkdev("/dev/tty1", FS.makedev(6, 0)); + // setup /dev/[u]random + // use a buffer to avoid overhead of individual crypto calls per byte + var randomBuffer = new Uint8Array(1024), randomLeft = 0; + var randomByte = () => { + if (randomLeft === 0) { + randomFill(randomBuffer); + randomLeft = randomBuffer.byteLength; + } + return randomBuffer[--randomLeft]; + }; + FS.createDevice("/dev", "random", randomByte); + FS.createDevice("/dev", "urandom", randomByte); + // we're not going to emulate the actual shm device, + // just create the tmp dirs that reside in it commonly + FS.mkdir("/dev/shm"); + FS.mkdir("/dev/shm/tmp"); + }, + createSpecialDirectories() { + // create /proc/self/fd which allows /proc/self/fd/6 => readlink gives the + // name of the stream for fd 6 (see test_unistd_ttyname) + FS.mkdir("/proc"); + var proc_self = FS.mkdir("/proc/self"); + FS.mkdir("/proc/self/fd"); + FS.mount({ + mount() { + var node = FS.createNode(proc_self, "fd", 16895, 73); + node.stream_ops = { + llseek: MEMFS.stream_ops.llseek + }; + node.node_ops = { + lookup(parent, name) { + var fd = +name; + var stream = FS.getStreamChecked(fd); + var ret = { + parent: null, + mount: { + mountpoint: "fake" + }, + node_ops: { + readlink: () => stream.path + }, + id: fd + 1 + }; + ret.parent = ret; + // make it look like a simple root node + return ret; + }, + readdir() { + return Array.from(FS.streams.entries()).filter(([k, v]) => v).map(([k, v]) => k.toString()); + } + }; + return node; + } + }, {}, "/proc/self/fd"); + }, + createStandardStreams(input, output, error) { + // TODO deprecate the old functionality of a single + // input / output callback and that utilizes FS.createDevice + // and instead require a unique set of stream ops + // by default, we symlink the standard streams to the + // default tty devices. however, if the standard streams + // have been overwritten we create a unique device for + // them instead. + if (input) { + FS.createDevice("/dev", "stdin", input); + } else { + FS.symlink("/dev/tty", "/dev/stdin"); + } + if (output) { + FS.createDevice("/dev", "stdout", null, output); + } else { + FS.symlink("/dev/tty", "/dev/stdout"); + } + if (error) { + FS.createDevice("/dev", "stderr", null, error); + } else { + FS.symlink("/dev/tty1", "/dev/stderr"); + } + // open default streams for the stdin, stdout and stderr devices + var stdin = FS.open("/dev/stdin", 0); + var stdout = FS.open("/dev/stdout", 1); + var stderr = FS.open("/dev/stderr", 1); + }, + staticInit() { + FS.nameTable = new Array(4096); + FS.mount(MEMFS, {}, "/"); + FS.createDefaultDirectories(); + FS.createDefaultDevices(); + FS.createSpecialDirectories(); + FS.filesystems = { + "MEMFS": MEMFS + }; + }, + init(input, output, error) { + FS.initialized = true; + // Allow Module.stdin etc. to provide defaults, if none explicitly passed to us here + input ??= Module["stdin"]; + output ??= Module["stdout"]; + error ??= Module["stderr"]; + FS.createStandardStreams(input, output, error); + }, + quit() { + FS.initialized = false; + // force-flush all streams, so we get musl std streams printed out + // close all of our streams + for (var stream of FS.streams) { + if (stream) { + FS.close(stream); + } + } + }, + findObject(path, dontResolveLastLink) { + var ret = FS.analyzePath(path, dontResolveLastLink); + if (!ret.exists) { + return null; + } + return ret.object; + }, + analyzePath(path, dontResolveLastLink) { + // operate from within the context of the symlink's target + try { + var lookup = FS.lookupPath(path, { + follow: !dontResolveLastLink + }); + path = lookup.path; + } catch (e) {} + var ret = { + isRoot: false, + exists: false, + error: 0, + name: null, + path: null, + object: null, + parentExists: false, + parentPath: null, + parentObject: null + }; + try { + var lookup = FS.lookupPath(path, { + parent: true + }); + ret.parentExists = true; + ret.parentPath = lookup.path; + ret.parentObject = lookup.node; + ret.name = PATH.basename(path); + lookup = FS.lookupPath(path, { + follow: !dontResolveLastLink + }); + ret.exists = true; + ret.path = lookup.path; + ret.object = lookup.node; + ret.name = lookup.node.name; + ret.isRoot = lookup.path === "/"; + } catch (e) { + ret.error = e.errno; + } + return ret; + }, + createPath(parent, path, canRead, canWrite) { + parent = typeof parent == "string" ? parent : FS.getPath(parent); + var parts = path.split("/").reverse(); + while (parts.length) { + var part = parts.pop(); + if (!part) continue; + var current = PATH.join2(parent, part); + try { + FS.mkdir(current); + } catch (e) { + if (e.errno != 20) throw e; + } + parent = current; + } + return current; + }, + createFile(parent, name, properties, canRead, canWrite) { + var path = PATH.join2(typeof parent == "string" ? parent : FS.getPath(parent), name); + var mode = FS_getMode(canRead, canWrite); + return FS.create(path, mode); + }, + createDataFile(parent, name, data, canRead, canWrite, canOwn) { + var path = name; + if (parent) { + parent = typeof parent == "string" ? parent : FS.getPath(parent); + path = name ? PATH.join2(parent, name) : parent; + } + var mode = FS_getMode(canRead, canWrite); + var node = FS.create(path, mode); + if (data) { + if (typeof data == "string") { + var arr = new Array(data.length); + for (var i = 0, len = data.length; i < len; ++i) arr[i] = data.charCodeAt(i); + data = arr; + } + // make sure we can write to the file + FS.chmod(node, mode | 146); + var stream = FS.open(node, 577); + FS.write(stream, data, 0, data.length, 0, canOwn); + FS.close(stream); + FS.chmod(node, mode); + } + }, + createDevice(parent, name, input, output) { + var path = PATH.join2(typeof parent == "string" ? parent : FS.getPath(parent), name); + var mode = FS_getMode(!!input, !!output); + FS.createDevice.major ??= 64; + var dev = FS.makedev(FS.createDevice.major++, 0); + // Create a fake device that a set of stream ops to emulate + // the old behavior. + FS.registerDevice(dev, { + open(stream) { + stream.seekable = false; + }, + close(stream) { + // flush any pending line data + if (output?.buffer?.length) { + output(10); + } + }, + read(stream, buffer, offset, length, pos) { + var bytesRead = 0; + for (var i = 0; i < length; i++) { + var result; + try { + result = input(); + } catch (e) { + throw new FS.ErrnoError(29); + } + if (result === undefined && bytesRead === 0) { + throw new FS.ErrnoError(6); + } + if (result === null || result === undefined) break; + bytesRead++; + buffer[offset + i] = result; + } + if (bytesRead) { + stream.node.atime = Date.now(); + } + return bytesRead; + }, + write(stream, buffer, offset, length, pos) { + for (var i = 0; i < length; i++) { + try { + output(buffer[offset + i]); + } catch (e) { + throw new FS.ErrnoError(29); + } + } + if (length) { + stream.node.mtime = stream.node.ctime = Date.now(); + } + return i; + } + }); + return FS.mkdev(path, mode, dev); + }, + forceLoadFile(obj) { + if (obj.isDevice || obj.isFolder || obj.link || obj.contents) return true; + if (globalThis.XMLHttpRequest) { + abort("Lazy loading should have been performed (contents set) in createLazyFile, but it was not. Lazy loading only works in web workers. Use --embed-file or --preload-file in emcc on the main thread."); + } else { + // Command-line. + try { + obj.contents = readBinary(obj.url); + } catch (e) { + throw new FS.ErrnoError(29); + } + } + }, + createLazyFile(parent, name, url, canRead, canWrite) { + // Lazy chunked Uint8Array (implements get and length from Uint8Array). + // Actual getting is abstracted away for eventual reuse. + class LazyUint8Array { + lengthKnown=false; + chunks=[]; + // Loaded chunks. Index is the chunk number + get(idx) { + if (idx > this.length - 1 || idx < 0) { + return undefined; + } + var chunkOffset = idx % this.chunkSize; + var chunkNum = (idx / this.chunkSize) | 0; + return this.getter(chunkNum)[chunkOffset]; + } + setDataGetter(getter) { + this.getter = getter; + } + cacheLength() { + // Find length + var xhr = new XMLHttpRequest; + xhr.open("HEAD", url, false); + xhr.send(null); + if (!(xhr.status >= 200 && xhr.status < 300 || xhr.status === 304)) abort("Couldn't load " + url + ". Status: " + xhr.status); + var datalength = Number(xhr.getResponseHeader("Content-length")); + var header; + var hasByteServing = (header = xhr.getResponseHeader("Accept-Ranges")) && header === "bytes"; + var usesGzip = (header = xhr.getResponseHeader("Content-Encoding")) && header === "gzip"; + var chunkSize = 1024 * 1024; + // Chunk size in bytes + if (!hasByteServing) chunkSize = datalength; + // Function to get a range from the remote URL. + var doXHR = (from, to) => { + if (from > to) abort("invalid range (" + from + ", " + to + ") or no bytes requested!"); + if (to > datalength - 1) abort("only " + datalength + " bytes available! programmer error!"); + // TODO: Use mozResponseArrayBuffer, responseStream, etc. if available. + var xhr = new XMLHttpRequest; + xhr.open("GET", url, false); + if (datalength !== chunkSize) xhr.setRequestHeader("Range", "bytes=" + from + "-" + to); + // Some hints to the browser that we want binary data. + xhr.responseType = "arraybuffer"; + if (xhr.overrideMimeType) { + xhr.overrideMimeType("text/plain; charset=x-user-defined"); + } + xhr.send(null); + if (!(xhr.status >= 200 && xhr.status < 300 || xhr.status === 304)) abort("Couldn't load " + url + ". Status: " + xhr.status); + if (xhr.response !== undefined) { + return new Uint8Array(/** @type{Array} */ (xhr.response || [])); + } + return intArrayFromString(xhr.responseText || "", true); + }; + var lazyArray = this; + lazyArray.setDataGetter(chunkNum => { + var start = chunkNum * chunkSize; + var end = (chunkNum + 1) * chunkSize - 1; + // including this byte + end = Math.min(end, datalength - 1); + // if datalength-1 is selected, this is the last block + if (typeof lazyArray.chunks[chunkNum] == "undefined") { + lazyArray.chunks[chunkNum] = doXHR(start, end); + } + if (typeof lazyArray.chunks[chunkNum] == "undefined") abort("doXHR failed!"); + return lazyArray.chunks[chunkNum]; + }); + if (usesGzip || !datalength) { + // if the server uses gzip or doesn't supply the length, we have to download the whole file to get the (uncompressed) length + chunkSize = datalength = 1; + // this will force getter(0)/doXHR do download the whole file + datalength = this.getter(0).length; + chunkSize = datalength; + out("LazyFiles on gzip forces download of the whole file when length is accessed"); + } + this._length = datalength; + this._chunkSize = chunkSize; + this.lengthKnown = true; + } + get length() { + if (!this.lengthKnown) { + this.cacheLength(); + } + return this._length; + } + get chunkSize() { + if (!this.lengthKnown) { + this.cacheLength(); + } + return this._chunkSize; + } + } + if (globalThis.XMLHttpRequest) { + if (!ENVIRONMENT_IS_WORKER) abort("Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc"); + var lazyArray = new LazyUint8Array; + var properties = { + isDevice: false, + contents: lazyArray + }; + } else { + var properties = { + isDevice: false, + url + }; + } + var node = FS.createFile(parent, name, properties, canRead, canWrite); + // This is a total hack, but I want to get this lazy file code out of the + // core of MEMFS. If we want to keep this lazy file concept I feel it should + // be its own thin LAZYFS proxying calls to MEMFS. + if (properties.contents) { + node.contents = properties.contents; + } else if (properties.url) { + node.contents = null; + node.url = properties.url; + } + // Add a function that defers querying the file size until it is asked the first time. + Object.defineProperties(node, { + usedBytes: { + get: function() { + return this.contents.length; + } + } + }); + // override each stream op with one that tries to force load the lazy file first + var stream_ops = {}; + for (const [key, fn] of Object.entries(node.stream_ops)) { + stream_ops[key] = (...args) => { + FS.forceLoadFile(node); + return fn(...args); + }; + } + function writeChunks(stream, buffer, offset, length, position) { + var contents = stream.node.contents; + if (position >= contents.length) return 0; + var size = Math.min(contents.length - position, length); + if (contents.slice) { + // normal array + for (var i = 0; i < size; i++) { + buffer[offset + i] = contents[position + i]; + } + } else { + for (var i = 0; i < size; i++) { + // LazyUint8Array from sync binary XHR + buffer[offset + i] = contents.get(position + i); + } + } + return size; + } + // use a custom read function + stream_ops.read = (stream, buffer, offset, length, position) => { + FS.forceLoadFile(node); + return writeChunks(stream, buffer, offset, length, position); + }; + // use a custom mmap function + stream_ops.mmap = (stream, length, position, prot, flags) => { + FS.forceLoadFile(node); + var ptr = mmapAlloc(length); + if (!ptr) { + throw new FS.ErrnoError(48); + } + writeChunks(stream, HEAP8, ptr, length, position); + return { + ptr, + allocated: true + }; + }; + node.stream_ops = stream_ops; + return node; + } +}; + +/** + * Given a pointer 'ptr' to a null-terminated UTF8-encoded string in the + * emscripten HEAP, returns a copy of that string as a Javascript String object. + * + * @param {number} ptr + * @param {number=} maxBytesToRead - An optional length that specifies the + * maximum number of bytes to read. You can omit this parameter to scan the + * string until the first 0 byte. If maxBytesToRead is passed, and the string + * at [ptr, ptr+maxBytesToReadr[ contains a null byte in the middle, then the + * string will cut short at that byte index. + * @param {boolean=} ignoreNul - If true, the function will not stop on a NUL character. + * @return {string} + */ var UTF8ToString = (ptr, maxBytesToRead, ignoreNul) => { + if (!ptr) return ""; + var end = findStringEnd(HEAPU8, ptr, maxBytesToRead, ignoreNul); + return UTF8Decoder.decode(HEAPU8.subarray(ptr, end)); +}; + +var SYSCALLS = { + calculateAt(dirfd, path, allowEmpty) { + if (PATH.isAbs(path)) { + return path; + } + // relative path + var dir; + if (dirfd === -100) { + dir = FS.cwd(); + } else { + var dirstream = SYSCALLS.getStreamFromFD(dirfd); + dir = dirstream.path; + } + if (path.length == 0) { + if (!allowEmpty) { + throw new FS.ErrnoError(44); + } + return dir; + } + return dir + "/" + path; + }, + writeStat(buf, stat) { + HEAPU32[((buf) >> 2)] = stat.dev; + HEAPU32[(((buf) + (4)) >> 2)] = stat.mode; + HEAPU32[(((buf) + (8)) >> 2)] = stat.nlink; + HEAPU32[(((buf) + (12)) >> 2)] = stat.uid; + HEAPU32[(((buf) + (16)) >> 2)] = stat.gid; + HEAPU32[(((buf) + (20)) >> 2)] = stat.rdev; + (tempI64 = [ stat.size >>> 0, (tempDouble = stat.size, (+(Math.abs(tempDouble))) >= 1 ? (tempDouble > 0 ? (+(Math.floor((tempDouble) / 4294967296))) >>> 0 : (~~((+(Math.ceil((tempDouble - +(((~~(tempDouble))) >>> 0)) / 4294967296))))) >>> 0) : 0) ], + HEAP32[(((buf) + (24)) >> 2)] = tempI64[0], HEAP32[(((buf) + (28)) >> 2)] = tempI64[1]); + HEAP32[(((buf) + (32)) >> 2)] = 4096; + HEAP32[(((buf) + (36)) >> 2)] = stat.blocks; + var atime = stat.atime.getTime(); + var mtime = stat.mtime.getTime(); + var ctime = stat.ctime.getTime(); + (tempI64 = [ Math.floor(atime / 1e3) >>> 0, (tempDouble = Math.floor(atime / 1e3), + (+(Math.abs(tempDouble))) >= 1 ? (tempDouble > 0 ? (+(Math.floor((tempDouble) / 4294967296))) >>> 0 : (~~((+(Math.ceil((tempDouble - +(((~~(tempDouble))) >>> 0)) / 4294967296))))) >>> 0) : 0) ], + HEAP32[(((buf) + (40)) >> 2)] = tempI64[0], HEAP32[(((buf) + (44)) >> 2)] = tempI64[1]); + HEAPU32[(((buf) + (48)) >> 2)] = (atime % 1e3) * 1e3 * 1e3; + (tempI64 = [ Math.floor(mtime / 1e3) >>> 0, (tempDouble = Math.floor(mtime / 1e3), + (+(Math.abs(tempDouble))) >= 1 ? (tempDouble > 0 ? (+(Math.floor((tempDouble) / 4294967296))) >>> 0 : (~~((+(Math.ceil((tempDouble - +(((~~(tempDouble))) >>> 0)) / 4294967296))))) >>> 0) : 0) ], + HEAP32[(((buf) + (56)) >> 2)] = tempI64[0], HEAP32[(((buf) + (60)) >> 2)] = tempI64[1]); + HEAPU32[(((buf) + (64)) >> 2)] = (mtime % 1e3) * 1e3 * 1e3; + (tempI64 = [ Math.floor(ctime / 1e3) >>> 0, (tempDouble = Math.floor(ctime / 1e3), + (+(Math.abs(tempDouble))) >= 1 ? (tempDouble > 0 ? (+(Math.floor((tempDouble) / 4294967296))) >>> 0 : (~~((+(Math.ceil((tempDouble - +(((~~(tempDouble))) >>> 0)) / 4294967296))))) >>> 0) : 0) ], + HEAP32[(((buf) + (72)) >> 2)] = tempI64[0], HEAP32[(((buf) + (76)) >> 2)] = tempI64[1]); + HEAPU32[(((buf) + (80)) >> 2)] = (ctime % 1e3) * 1e3 * 1e3; + (tempI64 = [ stat.ino >>> 0, (tempDouble = stat.ino, (+(Math.abs(tempDouble))) >= 1 ? (tempDouble > 0 ? (+(Math.floor((tempDouble) / 4294967296))) >>> 0 : (~~((+(Math.ceil((tempDouble - +(((~~(tempDouble))) >>> 0)) / 4294967296))))) >>> 0) : 0) ], + HEAP32[(((buf) + (88)) >> 2)] = tempI64[0], HEAP32[(((buf) + (92)) >> 2)] = tempI64[1]); + return 0; + }, + writeStatFs(buf, stats) { + HEAPU32[(((buf) + (4)) >> 2)] = stats.bsize; + HEAPU32[(((buf) + (60)) >> 2)] = stats.bsize; + (tempI64 = [ stats.blocks >>> 0, (tempDouble = stats.blocks, (+(Math.abs(tempDouble))) >= 1 ? (tempDouble > 0 ? (+(Math.floor((tempDouble) / 4294967296))) >>> 0 : (~~((+(Math.ceil((tempDouble - +(((~~(tempDouble))) >>> 0)) / 4294967296))))) >>> 0) : 0) ], + HEAP32[(((buf) + (8)) >> 2)] = tempI64[0], HEAP32[(((buf) + (12)) >> 2)] = tempI64[1]); + (tempI64 = [ stats.bfree >>> 0, (tempDouble = stats.bfree, (+(Math.abs(tempDouble))) >= 1 ? (tempDouble > 0 ? (+(Math.floor((tempDouble) / 4294967296))) >>> 0 : (~~((+(Math.ceil((tempDouble - +(((~~(tempDouble))) >>> 0)) / 4294967296))))) >>> 0) : 0) ], + HEAP32[(((buf) + (16)) >> 2)] = tempI64[0], HEAP32[(((buf) + (20)) >> 2)] = tempI64[1]); + (tempI64 = [ stats.bavail >>> 0, (tempDouble = stats.bavail, (+(Math.abs(tempDouble))) >= 1 ? (tempDouble > 0 ? (+(Math.floor((tempDouble) / 4294967296))) >>> 0 : (~~((+(Math.ceil((tempDouble - +(((~~(tempDouble))) >>> 0)) / 4294967296))))) >>> 0) : 0) ], + HEAP32[(((buf) + (24)) >> 2)] = tempI64[0], HEAP32[(((buf) + (28)) >> 2)] = tempI64[1]); + (tempI64 = [ stats.files >>> 0, (tempDouble = stats.files, (+(Math.abs(tempDouble))) >= 1 ? (tempDouble > 0 ? (+(Math.floor((tempDouble) / 4294967296))) >>> 0 : (~~((+(Math.ceil((tempDouble - +(((~~(tempDouble))) >>> 0)) / 4294967296))))) >>> 0) : 0) ], + HEAP32[(((buf) + (32)) >> 2)] = tempI64[0], HEAP32[(((buf) + (36)) >> 2)] = tempI64[1]); + (tempI64 = [ stats.ffree >>> 0, (tempDouble = stats.ffree, (+(Math.abs(tempDouble))) >= 1 ? (tempDouble > 0 ? (+(Math.floor((tempDouble) / 4294967296))) >>> 0 : (~~((+(Math.ceil((tempDouble - +(((~~(tempDouble))) >>> 0)) / 4294967296))))) >>> 0) : 0) ], + HEAP32[(((buf) + (40)) >> 2)] = tempI64[0], HEAP32[(((buf) + (44)) >> 2)] = tempI64[1]); + HEAPU32[(((buf) + (48)) >> 2)] = stats.fsid; + HEAPU32[(((buf) + (64)) >> 2)] = stats.flags; + // ST_NOSUID + HEAPU32[(((buf) + (56)) >> 2)] = stats.namelen; + }, + doMsync(addr, stream, len, flags, offset) { + if (!FS.isFile(stream.node.mode)) { + throw new FS.ErrnoError(43); + } + if (flags & 2) { + // MAP_PRIVATE calls need not to be synced back to underlying fs + return 0; + } + var buffer = HEAPU8.slice(addr, addr + len); + FS.msync(stream, buffer, offset, len, flags); + }, + getStreamFromFD(fd) { + var stream = FS.getStreamChecked(fd); + return stream; + }, + varargs: undefined, + getStr(ptr) { + var ret = UTF8ToString(ptr); + return ret; + } +}; + +function ___syscall_dup(fd) { + try { + var old = SYSCALLS.getStreamFromFD(fd); + return FS.dupStream(old).fd; + } catch (e) { + if (typeof FS == "undefined" || !(e.name === "ErrnoError")) throw e; + return -e.errno; + } +} + +function ___syscall_faccessat(dirfd, path, amode, flags) { + try { + path = SYSCALLS.getStr(path); + path = SYSCALLS.calculateAt(dirfd, path); + if (amode & ~7) { + // need a valid mode + return -28; + } + var lookup = FS.lookupPath(path, { + follow: true + }); + var node = lookup.node; + if (!node) { + return -44; + } + var perms = ""; + if (amode & 4) perms += "r"; + if (amode & 2) perms += "w"; + if (amode & 1) perms += "x"; + if (perms && FS.nodePermissions(node, perms)) { + return -2; + } + return 0; + } catch (e) { + if (typeof FS == "undefined" || !(e.name === "ErrnoError")) throw e; + return -e.errno; + } +} + +var syscallGetVarargI = () => { + // the `+` prepended here is necessary to convince the JSCompiler that varargs is indeed a number. + var ret = HEAP32[((+SYSCALLS.varargs) >> 2)]; + SYSCALLS.varargs += 4; + return ret; +}; + +var syscallGetVarargP = syscallGetVarargI; + +function ___syscall_fcntl64(fd, cmd, varargs) { + SYSCALLS.varargs = varargs; + try { + var stream = SYSCALLS.getStreamFromFD(fd); + switch (cmd) { + case 0: + { + var arg = syscallGetVarargI(); + if (arg < 0) { + return -28; + } + while (FS.streams[arg]) { + arg++; + } + var newStream; + newStream = FS.dupStream(stream, arg); + return newStream.fd; + } + + case 1: + case 2: + return 0; + + // FD_CLOEXEC makes no sense for a single process. + case 3: + return stream.flags; + + case 4: + { + var arg = syscallGetVarargI(); + stream.flags |= arg; + return 0; + } + + case 12: + { + var arg = syscallGetVarargP(); + var offset = 0; + // We're always unlocked. + HEAP16[(((arg) + (offset)) >> 1)] = 2; + return 0; + } + + case 13: + case 14: + // Pretend that the locking is successful. These are process-level locks, + // and Emscripten programs are a single process. If we supported linking a + // filesystem between programs, we'd need to do more here. + // See https://github.com/emscripten-core/emscripten/issues/23697 + return 0; + } + return -28; + } catch (e) { + if (typeof FS == "undefined" || !(e.name === "ErrnoError")) throw e; + return -e.errno; + } +} + +function ___syscall_fstat64(fd, buf) { + try { + return SYSCALLS.writeStat(buf, FS.fstat(fd)); + } catch (e) { + if (typeof FS == "undefined" || !(e.name === "ErrnoError")) throw e; + return -e.errno; + } +} + +var convertI32PairToI53Checked = (lo, hi) => ((hi + 2097152) >>> 0 < 4194305 - !!lo) ? (lo >>> 0) + hi * 4294967296 : NaN; + +function ___syscall_ftruncate64(fd, length_low, length_high) { + var length = convertI32PairToI53Checked(length_low, length_high); + try { + if (isNaN(length)) return -61; + FS.ftruncate(fd, length); + return 0; + } catch (e) { + if (typeof FS == "undefined" || !(e.name === "ErrnoError")) throw e; + return -e.errno; + } +} + +function ___syscall_ioctl(fd, op, varargs) { + SYSCALLS.varargs = varargs; + try { + var stream = SYSCALLS.getStreamFromFD(fd); + switch (op) { + case 21509: + { + if (!stream.tty) return -59; + return 0; + } + + case 21505: + { + if (!stream.tty) return -59; + if (stream.tty.ops.ioctl_tcgets) { + var termios = stream.tty.ops.ioctl_tcgets(stream); + var argp = syscallGetVarargP(); + HEAP32[((argp) >> 2)] = termios.c_iflag || 0; + HEAP32[(((argp) + (4)) >> 2)] = termios.c_oflag || 0; + HEAP32[(((argp) + (8)) >> 2)] = termios.c_cflag || 0; + HEAP32[(((argp) + (12)) >> 2)] = termios.c_lflag || 0; + for (var i = 0; i < 32; i++) { + HEAP8[(argp + i) + (17)] = termios.c_cc[i] || 0; + } + return 0; + } + return 0; + } + + case 21510: + case 21511: + case 21512: + { + if (!stream.tty) return -59; + return 0; + } + + case 21506: + case 21507: + case 21508: + { + if (!stream.tty) return -59; + if (stream.tty.ops.ioctl_tcsets) { + var argp = syscallGetVarargP(); + var c_iflag = HEAP32[((argp) >> 2)]; + var c_oflag = HEAP32[(((argp) + (4)) >> 2)]; + var c_cflag = HEAP32[(((argp) + (8)) >> 2)]; + var c_lflag = HEAP32[(((argp) + (12)) >> 2)]; + var c_cc = []; + for (var i = 0; i < 32; i++) { + c_cc.push(HEAP8[(argp + i) + (17)]); + } + return stream.tty.ops.ioctl_tcsets(stream.tty, op, { + c_iflag, + c_oflag, + c_cflag, + c_lflag, + c_cc + }); + } + return 0; + } + + case 21519: + { + if (!stream.tty) return -59; + var argp = syscallGetVarargP(); + HEAP32[((argp) >> 2)] = 0; + return 0; + } + + case 21520: + { + if (!stream.tty) return -59; + return -28; + } + + case 21537: + case 21531: + { + var argp = syscallGetVarargP(); + return FS.ioctl(stream, op, argp); + } + + case 21523: + { + // TODO: in theory we should write to the winsize struct that gets + // passed in, but for now musl doesn't read anything on it + if (!stream.tty) return -59; + if (stream.tty.ops.ioctl_tiocgwinsz) { + var winsize = stream.tty.ops.ioctl_tiocgwinsz(stream.tty); + var argp = syscallGetVarargP(); + HEAP16[((argp) >> 1)] = winsize[0]; + HEAP16[(((argp) + (2)) >> 1)] = winsize[1]; + } + return 0; + } + + case 21524: + { + // TODO: technically, this ioctl call should change the window size. + // but, since emscripten doesn't have any concept of a terminal window + // yet, we'll just silently throw it away as we do TIOCGWINSZ + if (!stream.tty) return -59; + return 0; + } + + case 21515: + { + if (!stream.tty) return -59; + return 0; + } + + default: + return -28; + } + } catch (e) { + if (typeof FS == "undefined" || !(e.name === "ErrnoError")) throw e; + return -e.errno; + } +} + +function ___syscall_lstat64(path, buf) { + try { + path = SYSCALLS.getStr(path); + return SYSCALLS.writeStat(buf, FS.lstat(path)); + } catch (e) { + if (typeof FS == "undefined" || !(e.name === "ErrnoError")) throw e; + return -e.errno; + } +} + +function ___syscall_newfstatat(dirfd, path, buf, flags) { + try { + path = SYSCALLS.getStr(path); + var nofollow = flags & 256; + var allowEmpty = flags & 4096; + flags = flags & (~6400); + path = SYSCALLS.calculateAt(dirfd, path, allowEmpty); + return SYSCALLS.writeStat(buf, nofollow ? FS.lstat(path) : FS.stat(path)); + } catch (e) { + if (typeof FS == "undefined" || !(e.name === "ErrnoError")) throw e; + return -e.errno; + } +} + +function ___syscall_openat(dirfd, path, flags, varargs) { + SYSCALLS.varargs = varargs; + try { + path = SYSCALLS.getStr(path); + path = SYSCALLS.calculateAt(dirfd, path); + var mode = varargs ? syscallGetVarargI() : 0; + return FS.open(path, flags, mode).fd; + } catch (e) { + if (typeof FS == "undefined" || !(e.name === "ErrnoError")) throw e; + return -e.errno; + } +} + +function ___syscall_stat64(path, buf) { + try { + path = SYSCALLS.getStr(path); + return SYSCALLS.writeStat(buf, FS.stat(path)); + } catch (e) { + if (typeof FS == "undefined" || !(e.name === "ErrnoError")) throw e; + return -e.errno; + } +} + +var __abort_js = () => abort(""); + +var __embind_register_bigint = (primitiveType, name, size, minRange, maxRange) => {}; + +var AsciiToString = ptr => { + var str = ""; + while (1) { + var ch = HEAPU8[ptr++]; + if (!ch) return str; + str += String.fromCharCode(ch); + } +}; + +var awaitingDependencies = {}; + +var registeredTypes = {}; + +var typeDependencies = {}; + +var BindingError = class BindingError extends Error { + constructor(message) { + super(message); + this.name = "BindingError"; + } +}; + +var throwBindingError = message => { + throw new BindingError(message); +}; + +/** @param {Object=} options */ function sharedRegisterType(rawType, registeredInstance, options = {}) { + var name = registeredInstance.name; + if (!rawType) { + throwBindingError(`type "${name}" must have a positive integer typeid pointer`); + } + if (registeredTypes.hasOwnProperty(rawType)) { + if (options.ignoreDuplicateRegistrations) { + return; + } else { + throwBindingError(`Cannot register type '${name}' twice`); + } + } + registeredTypes[rawType] = registeredInstance; + delete typeDependencies[rawType]; + if (awaitingDependencies.hasOwnProperty(rawType)) { + var callbacks = awaitingDependencies[rawType]; + delete awaitingDependencies[rawType]; + callbacks.forEach(cb => cb()); + } +} + +/** @param {Object=} options */ function registerType(rawType, registeredInstance, options = {}) { + return sharedRegisterType(rawType, registeredInstance, options); +} + +/** @suppress {globalThis} */ var __embind_register_bool = (rawType, name, trueValue, falseValue) => { + name = AsciiToString(name); + registerType(rawType, { + name, + fromWireType: function(wt) { + // ambiguous emscripten ABI: sometimes return values are + // true or false, and sometimes integers (0 or 1) + return !!wt; + }, + toWireType: function(destructors, o) { + return o ? trueValue : falseValue; + }, + readValueFromPointer: function(pointer) { + return this.fromWireType(HEAPU8[pointer]); + }, + destructorFunction: null + }); +}; + +var emval_freelist = []; + +var emval_handles = [ 0, 1, , 1, null, 1, true, 1, false, 1 ]; + +var __emval_decref = handle => { + if (handle > 9 && 0 === --emval_handles[handle + 1]) { + emval_handles[handle] = undefined; + emval_freelist.push(handle); + } +}; + +var Emval = { + toValue: handle => { + if (!handle) { + throwBindingError(`Cannot use deleted val. handle = ${handle}`); + } + return emval_handles[handle]; + }, + toHandle: value => { + switch (value) { + case undefined: + return 2; + + case null: + return 4; + + case true: + return 6; + + case false: + return 8; + + default: + { + const handle = emval_freelist.pop() || emval_handles.length; + emval_handles[handle] = value; + emval_handles[handle + 1] = 1; + return handle; + } + } + } +}; + +/** @suppress {globalThis} */ function readPointer(pointer) { + return this.fromWireType(HEAPU32[((pointer) >> 2)]); +} + +var EmValType = { + name: "emscripten::val", + fromWireType: handle => { + var rv = Emval.toValue(handle); + __emval_decref(handle); + return rv; + }, + toWireType: (destructors, value) => Emval.toHandle(value), + readValueFromPointer: readPointer, + destructorFunction: null +}; + +var __embind_register_emval = rawType => registerType(rawType, EmValType); + +var floatReadValueFromPointer = (name, width) => { + switch (width) { + case 4: + return function(pointer) { + return this.fromWireType(HEAPF32[((pointer) >> 2)]); + }; + + case 8: + return function(pointer) { + return this.fromWireType(HEAPF64[((pointer) >> 3)]); + }; + + default: + throw new TypeError(`invalid float width (${width}): ${name}`); + } +}; + +var __embind_register_float = (rawType, name, size) => { + name = AsciiToString(name); + registerType(rawType, { + name, + fromWireType: value => value, + toWireType: (destructors, value) => value, + readValueFromPointer: floatReadValueFromPointer(name, size), + destructorFunction: null + }); +}; + +var integerReadValueFromPointer = (name, width, signed) => { + // integers are quite common, so generate very specialized functions + switch (width) { + case 1: + return signed ? pointer => HEAP8[pointer] : pointer => HEAPU8[pointer]; + + case 2: + return signed ? pointer => HEAP16[((pointer) >> 1)] : pointer => HEAPU16[((pointer) >> 1)]; + + case 4: + return signed ? pointer => HEAP32[((pointer) >> 2)] : pointer => HEAPU32[((pointer) >> 2)]; + + default: + throw new TypeError(`invalid integer width (${width}): ${name}`); + } +}; + +/** @suppress {globalThis} */ var __embind_register_integer = (primitiveType, name, size, minRange, maxRange) => { + name = AsciiToString(name); + const isUnsignedType = minRange === 0; + let fromWireType = value => value; + if (isUnsignedType) { + var bitshift = 32 - 8 * size; + fromWireType = value => (value << bitshift) >>> bitshift; + maxRange = fromWireType(maxRange); + } + registerType(primitiveType, { + name, + fromWireType, + toWireType: (destructors, value) => value, + readValueFromPointer: integerReadValueFromPointer(name, size, minRange !== 0), + destructorFunction: null + }); +}; + +var __embind_register_memory_view = (rawType, dataTypeIndex, name) => { + var typeMapping = [ Int8Array, Uint8Array, Int16Array, Uint16Array, Int32Array, Uint32Array, Float32Array, Float64Array ]; + var TA = typeMapping[dataTypeIndex]; + function decodeMemoryView(handle) { + var size = HEAPU32[((handle) >> 2)]; + var data = HEAPU32[(((handle) + (4)) >> 2)]; + return new TA(HEAP8.buffer, data, size); + } + name = AsciiToString(name); + registerType(rawType, { + name, + fromWireType: decodeMemoryView, + readValueFromPointer: decodeMemoryView + }, { + ignoreDuplicateRegistrations: true + }); +}; + +var stringToUTF8 = (str, outPtr, maxBytesToWrite) => stringToUTF8Array(str, HEAPU8, outPtr, maxBytesToWrite); + +var __embind_register_std_string = (rawType, name) => { + name = AsciiToString(name); + var stdStringIsUTF8 = true; + registerType(rawType, { + name, + // For some method names we use string keys here since they are part of + // the public/external API and/or used by the runtime-generated code. + fromWireType(value) { + var length = HEAPU32[((value) >> 2)]; + var payload = value + 4; + var str; + if (stdStringIsUTF8) { + str = UTF8ToString(payload, length, true); + } else { + str = ""; + for (var i = 0; i < length; ++i) { + str += String.fromCharCode(HEAPU8[payload + i]); + } + } + _free(value); + return str; + }, + toWireType(destructors, value) { + if (value instanceof ArrayBuffer) { + value = new Uint8Array(value); + } + var length; + var valueIsOfTypeString = (typeof value == "string"); + // We accept `string` or array views with single byte elements + if (!(valueIsOfTypeString || (ArrayBuffer.isView(value) && value.BYTES_PER_ELEMENT == 1))) { + throwBindingError("Cannot pass non-string to std::string"); + } + if (stdStringIsUTF8 && valueIsOfTypeString) { + length = lengthBytesUTF8(value); + } else { + length = value.length; + } + // assumes POINTER_SIZE alignment + var base = _malloc(4 + length + 1); + var ptr = base + 4; + HEAPU32[((base) >> 2)] = length; + if (valueIsOfTypeString) { + if (stdStringIsUTF8) { + stringToUTF8(value, ptr, length + 1); + } else { + for (var i = 0; i < length; ++i) { + var charCode = value.charCodeAt(i); + if (charCode > 255) { + _free(base); + throwBindingError("String has UTF-16 code units that do not fit in 8 bits"); + } + HEAPU8[ptr + i] = charCode; + } + } + } else { + HEAPU8.set(value, ptr); + } + if (destructors !== null) { + destructors.push(_free, base); + } + return base; + }, + readValueFromPointer: readPointer, + destructorFunction(ptr) { + _free(ptr); + } + }); +}; + +var UTF16Decoder = new TextDecoder("utf-16le"); + +var UTF16ToString = (ptr, maxBytesToRead, ignoreNul) => { + var idx = ((ptr) >> 1); + var endIdx = findStringEnd(HEAPU16, idx, maxBytesToRead / 2, ignoreNul); + return UTF16Decoder.decode(HEAPU16.subarray(idx, endIdx)); +}; + +var stringToUTF16 = (str, outPtr, maxBytesToWrite) => { + // Backwards compatibility: if max bytes is not specified, assume unsafe unbounded write is allowed. + maxBytesToWrite ??= 2147483647; + if (maxBytesToWrite < 2) return 0; + maxBytesToWrite -= 2; + // Null terminator. + var startPtr = outPtr; + var numCharsToWrite = (maxBytesToWrite < str.length * 2) ? (maxBytesToWrite / 2) : str.length; + for (var i = 0; i < numCharsToWrite; ++i) { + // charCodeAt returns a UTF-16 encoded code unit, so it can be directly written to the HEAP. + var codeUnit = str.charCodeAt(i); + // possibly a lead surrogate + HEAP16[((outPtr) >> 1)] = codeUnit; + outPtr += 2; + } + // Null-terminate the pointer to the HEAP. + HEAP16[((outPtr) >> 1)] = 0; + return outPtr - startPtr; +}; + +var lengthBytesUTF16 = str => str.length * 2; + +var UTF32ToString = (ptr, maxBytesToRead, ignoreNul) => { + var str = ""; + var startIdx = ((ptr) >> 2); + // If maxBytesToRead is not passed explicitly, it will be undefined, and this + // will always evaluate to true. This saves on code size. + for (var i = 0; !(i >= maxBytesToRead / 4); i++) { + var utf32 = HEAPU32[startIdx + i]; + if (!utf32 && !ignoreNul) break; + str += String.fromCodePoint(utf32); + } + return str; +}; + +var stringToUTF32 = (str, outPtr, maxBytesToWrite) => { + // Backwards compatibility: if max bytes is not specified, assume unsafe unbounded write is allowed. + maxBytesToWrite ??= 2147483647; + if (maxBytesToWrite < 4) return 0; + var startPtr = outPtr; + var endPtr = startPtr + maxBytesToWrite - 4; + for (var i = 0; i < str.length; ++i) { + var codePoint = str.codePointAt(i); + // Gotcha: if codePoint is over 0xFFFF, it is represented as a surrogate pair in UTF-16. + // We need to manually skip over the second code unit for correct iteration. + if (codePoint > 65535) { + i++; + } + HEAP32[((outPtr) >> 2)] = codePoint; + outPtr += 4; + if (outPtr + 4 > endPtr) break; + } + // Null-terminate the pointer to the HEAP. + HEAP32[((outPtr) >> 2)] = 0; + return outPtr - startPtr; +}; + +var lengthBytesUTF32 = str => { + var len = 0; + for (var i = 0; i < str.length; ++i) { + var codePoint = str.codePointAt(i); + // Gotcha: if codePoint is over 0xFFFF, it is represented as a surrogate pair in UTF-16. + // We need to manually skip over the second code unit for correct iteration. + if (codePoint > 65535) { + i++; + } + len += 4; + } + return len; +}; + +var __embind_register_std_wstring = (rawType, charSize, name) => { + name = AsciiToString(name); + var decodeString, encodeString, lengthBytesUTF; + if (charSize === 2) { + decodeString = UTF16ToString; + encodeString = stringToUTF16; + lengthBytesUTF = lengthBytesUTF16; + } else { + decodeString = UTF32ToString; + encodeString = stringToUTF32; + lengthBytesUTF = lengthBytesUTF32; + } + registerType(rawType, { + name, + fromWireType: value => { + // Code mostly taken from _embind_register_std_string fromWireType + var length = HEAPU32[((value) >> 2)]; + var str = decodeString(value + 4, length * charSize, true); + _free(value); + return str; + }, + toWireType: (destructors, value) => { + if (!(typeof value == "string")) { + throwBindingError(`Cannot pass non-string to C++ string type ${name}`); + } + // assumes POINTER_SIZE alignment + var length = lengthBytesUTF(value); + var ptr = _malloc(4 + length + charSize); + HEAPU32[((ptr) >> 2)] = length / charSize; + encodeString(value, ptr + 4, length + charSize); + if (destructors !== null) { + destructors.push(_free, ptr); + } + return ptr; + }, + readValueFromPointer: readPointer, + destructorFunction(ptr) { + _free(ptr); + } + }); +}; + +var __embind_register_void = (rawType, name) => { + name = AsciiToString(name); + registerType(rawType, { + isVoid: true, + // void return values can be optimized out sometimes + name, + fromWireType: () => undefined, + // TODO: assert if anything else is given? + toWireType: (destructors, o) => undefined + }); +}; + +var emval_methodCallers = []; + +var emval_addMethodCaller = caller => { + var id = emval_methodCallers.length; + emval_methodCallers.push(caller); + return id; +}; + +var getTypeName = type => { + var ptr = ___getTypeName(type); + var rv = AsciiToString(ptr); + _free(ptr); + return rv; +}; + +var requireRegisteredType = (rawType, humanName) => { + var impl = registeredTypes[rawType]; + if (undefined === impl) { + throwBindingError(`${humanName} has unknown type ${getTypeName(rawType)}`); + } + return impl; +}; + +var emval_lookupTypes = (argCount, argTypes) => { + var a = new Array(argCount); + for (var i = 0; i < argCount; ++i) { + a[i] = requireRegisteredType(HEAPU32[(((argTypes) + (i * 4)) >> 2)], `parameter ${i}`); + } + return a; +}; + +var createNamedFunction = (name, func) => Object.defineProperty(func, "name", { + value: name +}); + +var emval_returnValue = (toReturnWire, destructorsRef, handle) => { + var destructors = []; + var result = toReturnWire(destructors, handle); + if (destructors.length) { + // void, primitives and any other types w/o destructors don't need to allocate a handle + HEAPU32[((destructorsRef) >> 2)] = Emval.toHandle(destructors); + } + return result; +}; + +var emval_symbols = {}; + +var getStringOrSymbol = address => { + var symbol = emval_symbols[address]; + if (symbol === undefined) { + return AsciiToString(address); + } + return symbol; +}; + +var __emval_create_invoker = (argCount, argTypesPtr, kind) => { + var GenericWireTypeSize = 8; + var [retType, ...argTypes] = emval_lookupTypes(argCount, argTypesPtr); + var toReturnWire = retType.toWireType.bind(retType); + var argFromPtr = argTypes.map(type => type.readValueFromPointer.bind(type)); + argCount--; + // remove the extracted return type + var argN = new Array(argCount); + var invokerFunction = (handle, methodName, destructorsRef, args) => { + var offset = 0; + for (var i = 0; i < argCount; ++i) { + argN[i] = argFromPtr[i](args + offset); + offset += GenericWireTypeSize; + } + var rv; + switch (kind) { + case 0: + rv = Emval.toValue(handle).apply(null, argN); + break; + + case 2: + rv = Reflect.construct(Emval.toValue(handle), argN); + break; + + case 3: + // no-op, just return the argument + rv = argN[0]; + break; + + case 1: + rv = Emval.toValue(handle)[getStringOrSymbol(methodName)](...argN); + break; + } + return emval_returnValue(toReturnWire, destructorsRef, rv); + }; + var functionName = `methodCaller<(${argTypes.map(t => t.name)}) => ${retType.name}>`; + return emval_addMethodCaller(createNamedFunction(functionName, invokerFunction)); +}; + +var __emval_get_global = name => { + if (!name) { + return Emval.toHandle(globalThis); + } + name = getStringOrSymbol(name); + return Emval.toHandle(globalThis[name]); +}; + +var __emval_get_property = (handle, key) => { + handle = Emval.toValue(handle); + key = Emval.toValue(key); + return Emval.toHandle(handle[key]); +}; + +var __emval_incref = handle => { + if (handle > 9) { + emval_handles[handle + 1] += 1; + } +}; + +var __emval_instanceof = (object, constructor) => { + object = Emval.toValue(object); + constructor = Emval.toValue(constructor); + return object instanceof constructor; +}; + +var __emval_invoke = (caller, handle, methodName, destructorsRef, args) => emval_methodCallers[caller](handle, methodName, destructorsRef, args); + +var __emval_new_cstring = v => Emval.toHandle(getStringOrSymbol(v)); + +var runDestructors = destructors => { + while (destructors.length) { + var ptr = destructors.pop(); + var del = destructors.pop(); + del(ptr); + } +}; + +var __emval_run_destructors = handle => { + var destructors = Emval.toValue(handle); + runDestructors(destructors); + __emval_decref(handle); +}; + +var __emval_set_property = (handle, key, value) => { + handle = Emval.toValue(handle); + key = Emval.toValue(key); + value = Emval.toValue(value); + handle[key] = value; +}; + +var __emval_typeof = handle => { + handle = Emval.toValue(handle); + return Emval.toHandle(typeof handle); +}; + +function __gmtime_js(time_low, time_high, tmPtr) { + var time = convertI32PairToI53Checked(time_low, time_high); + var date = new Date(time * 1e3); + HEAP32[((tmPtr) >> 2)] = date.getUTCSeconds(); + HEAP32[(((tmPtr) + (4)) >> 2)] = date.getUTCMinutes(); + HEAP32[(((tmPtr) + (8)) >> 2)] = date.getUTCHours(); + HEAP32[(((tmPtr) + (12)) >> 2)] = date.getUTCDate(); + HEAP32[(((tmPtr) + (16)) >> 2)] = date.getUTCMonth(); + HEAP32[(((tmPtr) + (20)) >> 2)] = date.getUTCFullYear() - 1900; + HEAP32[(((tmPtr) + (24)) >> 2)] = date.getUTCDay(); + var start = Date.UTC(date.getUTCFullYear(), 0, 1, 0, 0, 0, 0); + var yday = ((date.getTime() - start) / (1e3 * 60 * 60 * 24)) | 0; + HEAP32[(((tmPtr) + (28)) >> 2)] = yday; +} + +var isLeapYear = year => year % 4 === 0 && (year % 100 !== 0 || year % 400 === 0); + +var MONTH_DAYS_LEAP_CUMULATIVE = [ 0, 31, 60, 91, 121, 152, 182, 213, 244, 274, 305, 335 ]; + +var MONTH_DAYS_REGULAR_CUMULATIVE = [ 0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334 ]; + +var ydayFromDate = date => { + var leap = isLeapYear(date.getFullYear()); + var monthDaysCumulative = (leap ? MONTH_DAYS_LEAP_CUMULATIVE : MONTH_DAYS_REGULAR_CUMULATIVE); + var yday = monthDaysCumulative[date.getMonth()] + date.getDate() - 1; + // -1 since it's days since Jan 1 + return yday; +}; + +function __localtime_js(time_low, time_high, tmPtr) { + var time = convertI32PairToI53Checked(time_low, time_high); + var date = new Date(time * 1e3); + HEAP32[((tmPtr) >> 2)] = date.getSeconds(); + HEAP32[(((tmPtr) + (4)) >> 2)] = date.getMinutes(); + HEAP32[(((tmPtr) + (8)) >> 2)] = date.getHours(); + HEAP32[(((tmPtr) + (12)) >> 2)] = date.getDate(); + HEAP32[(((tmPtr) + (16)) >> 2)] = date.getMonth(); + HEAP32[(((tmPtr) + (20)) >> 2)] = date.getFullYear() - 1900; + HEAP32[(((tmPtr) + (24)) >> 2)] = date.getDay(); + var yday = ydayFromDate(date) | 0; + HEAP32[(((tmPtr) + (28)) >> 2)] = yday; + HEAP32[(((tmPtr) + (36)) >> 2)] = -(date.getTimezoneOffset() * 60); + // Attention: DST is in December in South, and some regions don't have DST at all. + var start = new Date(date.getFullYear(), 0, 1); + var summerOffset = new Date(date.getFullYear(), 6, 1).getTimezoneOffset(); + var winterOffset = start.getTimezoneOffset(); + var dst = (summerOffset != winterOffset && date.getTimezoneOffset() == Math.min(winterOffset, summerOffset)) | 0; + HEAP32[(((tmPtr) + (32)) >> 2)] = dst; +} + +var setTempRet0 = val => __emscripten_tempret_set(val); + +var __mktime_js = function(tmPtr) { + var ret = (() => { + var date = new Date(HEAP32[(((tmPtr) + (20)) >> 2)] + 1900, HEAP32[(((tmPtr) + (16)) >> 2)], HEAP32[(((tmPtr) + (12)) >> 2)], HEAP32[(((tmPtr) + (8)) >> 2)], HEAP32[(((tmPtr) + (4)) >> 2)], HEAP32[((tmPtr) >> 2)], 0); + // There's an ambiguous hour when the time goes back; the tm_isdst field is + // used to disambiguate it. Date() basically guesses, so we fix it up if it + // guessed wrong, or fill in tm_isdst with the guess if it's -1. + var dst = HEAP32[(((tmPtr) + (32)) >> 2)]; + var guessedOffset = date.getTimezoneOffset(); + var start = new Date(date.getFullYear(), 0, 1); + var summerOffset = new Date(date.getFullYear(), 6, 1).getTimezoneOffset(); + var winterOffset = start.getTimezoneOffset(); + var dstOffset = Math.min(winterOffset, summerOffset); + // DST is in December in South + if (dst < 0) { + // Attention: some regions don't have DST at all. + HEAP32[(((tmPtr) + (32)) >> 2)] = Number(summerOffset != winterOffset && dstOffset == guessedOffset); + } else if ((dst > 0) != (dstOffset == guessedOffset)) { + var nonDstOffset = Math.max(winterOffset, summerOffset); + var trueOffset = dst > 0 ? dstOffset : nonDstOffset; + // Don't try setMinutes(date.getMinutes() + ...) -- it's messed up. + date.setTime(date.getTime() + (trueOffset - guessedOffset) * 6e4); + } + HEAP32[(((tmPtr) + (24)) >> 2)] = date.getDay(); + var yday = ydayFromDate(date) | 0; + HEAP32[(((tmPtr) + (28)) >> 2)] = yday; + // To match expected behavior, update fields from date + HEAP32[((tmPtr) >> 2)] = date.getSeconds(); + HEAP32[(((tmPtr) + (4)) >> 2)] = date.getMinutes(); + HEAP32[(((tmPtr) + (8)) >> 2)] = date.getHours(); + HEAP32[(((tmPtr) + (12)) >> 2)] = date.getDate(); + HEAP32[(((tmPtr) + (16)) >> 2)] = date.getMonth(); + HEAP32[(((tmPtr) + (20)) >> 2)] = date.getYear(); + var timeMs = date.getTime(); + if (isNaN(timeMs)) { + return -1; + } + // Return time in microseconds + return timeMs / 1e3; + })(); + return (setTempRet0((tempDouble = ret, (+(Math.abs(tempDouble))) >= 1 ? (tempDouble > 0 ? (+(Math.floor((tempDouble) / 4294967296))) >>> 0 : (~~((+(Math.ceil((tempDouble - +(((~~(tempDouble))) >>> 0)) / 4294967296))))) >>> 0) : 0)), + ret >>> 0); +}; + +function __mmap_js(len, prot, flags, fd, offset_low, offset_high, allocated, addr) { + var offset = convertI32PairToI53Checked(offset_low, offset_high); + try { + var stream = SYSCALLS.getStreamFromFD(fd); + var res = FS.mmap(stream, len, offset, prot, flags); + var ptr = res.ptr; + HEAP32[((allocated) >> 2)] = res.allocated; + HEAPU32[((addr) >> 2)] = ptr; + return 0; + } catch (e) { + if (typeof FS == "undefined" || !(e.name === "ErrnoError")) throw e; + return -e.errno; + } +} + +function __munmap_js(addr, len, prot, flags, fd, offset_low, offset_high) { + var offset = convertI32PairToI53Checked(offset_low, offset_high); + try { + var stream = SYSCALLS.getStreamFromFD(fd); + if (prot & 2) { + SYSCALLS.doMsync(addr, stream, len, flags, offset); + } + } catch (e) { + if (typeof FS == "undefined" || !(e.name === "ErrnoError")) throw e; + return -e.errno; + } +} + +var __tzset_js = (timezone, daylight, std_name, dst_name) => { + // TODO: Use (malleable) environment variables instead of system settings. + var currentYear = (new Date).getFullYear(); + var winter = new Date(currentYear, 0, 1); + var summer = new Date(currentYear, 6, 1); + var winterOffset = winter.getTimezoneOffset(); + var summerOffset = summer.getTimezoneOffset(); + // Local standard timezone offset. Local standard time is not adjusted for + // daylight savings. This code uses the fact that getTimezoneOffset returns + // a greater value during Standard Time versus Daylight Saving Time (DST). + // Thus it determines the expected output during Standard Time, and it + // compares whether the output of the given date the same (Standard) or less + // (DST). + var stdTimezoneOffset = Math.max(winterOffset, summerOffset); + // timezone is specified as seconds west of UTC ("The external variable + // `timezone` shall be set to the difference, in seconds, between + // Coordinated Universal Time (UTC) and local standard time."), the same + // as returned by stdTimezoneOffset. + // See http://pubs.opengroup.org/onlinepubs/009695399/functions/tzset.html + HEAPU32[((timezone) >> 2)] = stdTimezoneOffset * 60; + HEAP32[((daylight) >> 2)] = Number(winterOffset != summerOffset); + var extractZone = timezoneOffset => { + // Why inverse sign? + // Read here https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/getTimezoneOffset + var sign = timezoneOffset >= 0 ? "-" : "+"; + var absOffset = Math.abs(timezoneOffset); + var hours = String(Math.floor(absOffset / 60)).padStart(2, "0"); + var minutes = String(absOffset % 60).padStart(2, "0"); + return `UTC${sign}${hours}${minutes}`; + }; + var winterName = extractZone(winterOffset); + var summerName = extractZone(summerOffset); + if (summerOffset < winterOffset) { + // Northern hemisphere + stringToUTF8(winterName, std_name, 17); + stringToUTF8(summerName, dst_name, 17); + } else { + stringToUTF8(winterName, dst_name, 17); + stringToUTF8(summerName, std_name, 17); + } +}; + +var _emscripten_get_now = () => performance.now(); + +var _emscripten_date_now = () => Date.now(); + +var nowIsMonotonic = 1; + +var checkWasiClock = clock_id => clock_id >= 0 && clock_id <= 3; + +function _clock_time_get(clk_id, ignored_precision_low, ignored_precision_high, ptime) { + var ignored_precision = convertI32PairToI53Checked(ignored_precision_low, ignored_precision_high); + if (!checkWasiClock(clk_id)) { + return 28; + } + var now; + // all wasi clocks but realtime are monotonic + if (clk_id === 0) { + now = _emscripten_date_now(); + } else if (nowIsMonotonic) { + now = _emscripten_get_now(); + } else { + return 52; + } + // "now" is in ms, and wasi times are in ns. + var nsec = Math.round(now * 1e3 * 1e3); + (tempI64 = [ nsec >>> 0, (tempDouble = nsec, (+(Math.abs(tempDouble))) >= 1 ? (tempDouble > 0 ? (+(Math.floor((tempDouble) / 4294967296))) >>> 0 : (~~((+(Math.ceil((tempDouble - +(((~~(tempDouble))) >>> 0)) / 4294967296))))) >>> 0) : 0) ], + HEAP32[((ptime) >> 2)] = tempI64[0], HEAP32[(((ptime) + (4)) >> 2)] = tempI64[1]); + return 0; +} + +var readEmAsmArgsArray = []; + +var readEmAsmArgs = (sigPtr, buf) => { + readEmAsmArgsArray.length = 0; + var ch; + // Most arguments are i32s, so shift the buffer pointer so it is a plain + // index into HEAP32. + while (ch = HEAPU8[sigPtr++]) { + // Floats are always passed as doubles, so all types except for 'i' + // are 8 bytes and require alignment. + var wide = (ch != 105); + wide &= (ch != 112); + buf += wide && (buf % 8) ? 4 : 0; + readEmAsmArgsArray.push(// Special case for pointers under wasm64 or CAN_ADDRESS_2GB mode. + ch == 112 ? HEAPU32[((buf) >> 2)] : ch == 105 ? HEAP32[((buf) >> 2)] : HEAPF64[((buf) >> 3)]); + buf += wide ? 8 : 4; + } + return readEmAsmArgsArray; +}; + +var runEmAsmFunction = (code, sigPtr, argbuf) => { + var args = readEmAsmArgs(sigPtr, argbuf); + return ASM_CONSTS[code](...args); +}; + +var _emscripten_asm_const_int = (code, sigPtr, argbuf) => runEmAsmFunction(code, sigPtr, argbuf); + +var _emscripten_asm_const_ptr = (code, sigPtr, argbuf) => runEmAsmFunction(code, sigPtr, argbuf); + +var _emscripten_errn = (str, len) => err(UTF8ToString(str, len)); + +var getHeapMax = () => // Stay one Wasm page short of 4GB: while e.g. Chrome is able to allocate +// full 4GB Wasm memories, the size will wrap back to 0 bytes in Wasm side +// for any code that deals with heap sizes, which would require special +// casing all heap size related code to treat 0 specially. +2147483648; + +var _emscripten_get_heap_max = () => getHeapMax(); + +var _emscripten_has_asyncify = () => 0; + +var _emscripten_outn = (str, len) => out(UTF8ToString(str, len)); + +var UNWIND_CACHE = {}; + +var stringToNewUTF8 = str => { + var size = lengthBytesUTF8(str) + 1; + var ret = _malloc(size); + if (ret) stringToUTF8(str, ret, size); + return ret; +}; + +/** @returns {number} */ var convertFrameToPC = frame => { + var match; + if (match = /\bwasm-function\[\d+\]:(0x[0-9a-f]+)/.exec(frame)) { + // Wasm engines give the binary offset directly, so we use that as return address + return +match[1]; + } else if (match = /:(\d+):\d+(?:\)|$)/.exec(frame)) { + // If we are in js, we can use the js line number as the "return address". + // This should work for wasm2js. We tag the high bit to distinguish this + // from wasm addresses. + return 2147483648 | +match[1]; + } + // return 0 if we can't find any + return 0; +}; + +var saveInUnwindCache = callstack => { + for (var line of callstack) { + var pc = convertFrameToPC(line); + if (pc) { + UNWIND_CACHE[pc] = line; + } + } +}; + +var jsStackTrace = () => (new Error).stack.toString(); + +var _emscripten_stack_snapshot = () => { + var callstack = jsStackTrace().split("\n"); + if (callstack[0] == "Error") { + callstack.shift(); + } + saveInUnwindCache(callstack); + // Caches the stack snapshot so that emscripten_stack_unwind_buffer() can + // unwind from this spot. + UNWIND_CACHE.last_addr = convertFrameToPC(callstack[3]); + UNWIND_CACHE.last_stack = callstack; + return UNWIND_CACHE.last_addr; +}; + +var _emscripten_pc_get_function = pc => { + var frame = UNWIND_CACHE[pc]; + if (!frame) return 0; + var name; + var match; + // First try to match foo.wasm.sym files explcitly. e.g. + // at test_return_address.wasm.main (wasm://wasm/test_return_address.wasm-0012cc2a:wasm-function[26]:0x9f3 + // Then match JS symbols which don't include that module name: + // at invokeEntryPoint (.../test_return_address.js:1500:42) + // Finally match firefox format: + // Object._main@http://server.com:4324:12' + if (match = /^\s+at .*\.wasm\.(.*) \(.*\)$/.exec(frame)) { + name = match[1]; + } else if (match = /^\s+at (.*) \(.*\)$/.exec(frame)) { + name = match[1]; + } else if (match = /^(.+?)@/.exec(frame)) { + name = match[1]; + } else { + return 0; + } + _free(_emscripten_pc_get_function.ret ?? 0); + _emscripten_pc_get_function.ret = stringToNewUTF8(name); + return _emscripten_pc_get_function.ret; +}; + +var growMemory = size => { + var oldHeapSize = wasmMemory.buffer.byteLength; + var pages = ((size - oldHeapSize + 65535) / 65536) | 0; + try { + // round size grow request up to wasm page size (fixed 64KB per spec) + wasmMemory.grow(pages); + // .grow() takes a delta compared to the previous size + updateMemoryViews(); + return 1; + } catch (e) {} +}; + +var _emscripten_resize_heap = requestedSize => { + var oldSize = HEAPU8.length; + // With CAN_ADDRESS_2GB or MEMORY64, pointers are already unsigned. + requestedSize >>>= 0; + // With multithreaded builds, races can happen (another thread might increase the size + // in between), so return a failure, and let the caller retry. + // Memory resize rules: + // 1. Always increase heap size to at least the requested size, rounded up + // to next page multiple. + // 2a. If MEMORY_GROWTH_LINEAR_STEP == -1, excessively resize the heap + // geometrically: increase the heap size according to + // MEMORY_GROWTH_GEOMETRIC_STEP factor (default +20%), At most + // overreserve by MEMORY_GROWTH_GEOMETRIC_CAP bytes (default 96MB). + // 2b. If MEMORY_GROWTH_LINEAR_STEP != -1, excessively resize the heap + // linearly: increase the heap size by at least + // MEMORY_GROWTH_LINEAR_STEP bytes. + // 3. Max size for the heap is capped at 2048MB-WASM_PAGE_SIZE, or by + // MAXIMUM_MEMORY, or by ASAN limit, depending on which is smallest + // 4. If we were unable to allocate as much memory, it may be due to + // over-eager decision to excessively reserve due to (3) above. + // Hence if an allocation fails, cut down on the amount of excess + // growth, in an attempt to succeed to perform a smaller allocation. + // A limit is set for how much we can grow. We should not exceed that + // (the wasm binary specifies it, so if we tried, we'd fail anyhow). + var maxHeapSize = getHeapMax(); + if (requestedSize > maxHeapSize) { + return false; + } + // Loop through potential heap size increases. If we attempt a too eager + // reservation that fails, cut down on the attempted size and reserve a + // smaller bump instead. (max 3 times, chosen somewhat arbitrarily) + for (var cutDown = 1; cutDown <= 4; cutDown *= 2) { + var overGrownHeapSize = oldSize * (1 + .2 / cutDown); + // ensure geometric growth + // but limit overreserving (default to capping at +96MB overgrowth at most) + overGrownHeapSize = Math.min(overGrownHeapSize, requestedSize + 100663296); + var newSize = Math.min(maxHeapSize, alignMemory(Math.max(requestedSize, overGrownHeapSize), 65536)); + var replacement = growMemory(newSize); + if (replacement) { + return true; + } + } + return false; +}; + +var _emscripten_stack_unwind_buffer = (addr, buffer, count) => { + var stack; + if (UNWIND_CACHE.last_addr == addr) { + stack = UNWIND_CACHE.last_stack; + } else { + stack = jsStackTrace().split("\n"); + if (stack[0] == "Error") { + stack.shift(); + } + saveInUnwindCache(stack); + } + var offset = 3; + while (stack[offset] && convertFrameToPC(stack[offset]) != addr) { + ++offset; + } + for (var i = 0; i < count && stack[i + offset]; ++i) { + HEAP32[(((buffer) + (i * 4)) >> 2)] = convertFrameToPC(stack[i + offset]); + } + return i; +}; + +var GLctx; + +var webgl_enable_ANGLE_instanced_arrays = ctx => { + // Extension available in WebGL 1 from Firefox 26 and Google Chrome 30 onwards. Core feature in WebGL 2. + var ext = ctx.getExtension("ANGLE_instanced_arrays"); + // Because this extension is a core function in WebGL 2, assign the extension entry points in place of + // where the core functions will reside in WebGL 2. This way the calling code can call these without + // having to dynamically branch depending if running against WebGL 1 or WebGL 2. + if (ext) { + ctx["vertexAttribDivisor"] = (index, divisor) => ext["vertexAttribDivisorANGLE"](index, divisor); + ctx["drawArraysInstanced"] = (mode, first, count, primcount) => ext["drawArraysInstancedANGLE"](mode, first, count, primcount); + ctx["drawElementsInstanced"] = (mode, count, type, indices, primcount) => ext["drawElementsInstancedANGLE"](mode, count, type, indices, primcount); + return 1; + } +}; + +var webgl_enable_OES_vertex_array_object = ctx => { + // Extension available in WebGL 1 from Firefox 25 and WebKit 536.28/desktop Safari 6.0.3 onwards. Core feature in WebGL 2. + var ext = ctx.getExtension("OES_vertex_array_object"); + if (ext) { + ctx["createVertexArray"] = () => ext["createVertexArrayOES"](); + ctx["deleteVertexArray"] = vao => ext["deleteVertexArrayOES"](vao); + ctx["bindVertexArray"] = vao => ext["bindVertexArrayOES"](vao); + ctx["isVertexArray"] = vao => ext["isVertexArrayOES"](vao); + return 1; + } +}; + +var webgl_enable_WEBGL_draw_buffers = ctx => { + // Extension available in WebGL 1 from Firefox 28 onwards. Core feature in WebGL 2. + var ext = ctx.getExtension("WEBGL_draw_buffers"); + if (ext) { + ctx["drawBuffers"] = (n, bufs) => ext["drawBuffersWEBGL"](n, bufs); + return 1; + } +}; + +var webgl_enable_WEBGL_draw_instanced_base_vertex_base_instance = ctx => // Closure is expected to be allowed to minify the '.dibvbi' property, so not accessing it quoted. +!!(ctx.dibvbi = ctx.getExtension("WEBGL_draw_instanced_base_vertex_base_instance")); + +var webgl_enable_WEBGL_multi_draw_instanced_base_vertex_base_instance = ctx => !!(ctx.mdibvbi = ctx.getExtension("WEBGL_multi_draw_instanced_base_vertex_base_instance")); + +var webgl_enable_EXT_polygon_offset_clamp = ctx => !!(ctx.extPolygonOffsetClamp = ctx.getExtension("EXT_polygon_offset_clamp")); + +var webgl_enable_EXT_clip_control = ctx => !!(ctx.extClipControl = ctx.getExtension("EXT_clip_control")); + +var webgl_enable_WEBGL_polygon_mode = ctx => !!(ctx.webglPolygonMode = ctx.getExtension("WEBGL_polygon_mode")); + +var webgl_enable_WEBGL_multi_draw = ctx => // Closure is expected to be allowed to minify the '.multiDrawWebgl' property, so not accessing it quoted. +!!(ctx.multiDrawWebgl = ctx.getExtension("WEBGL_multi_draw")); + +var getEmscriptenSupportedExtensions = ctx => { + // Restrict the list of advertised extensions to those that we actually + // support. + var supportedExtensions = [ // WebGL 1 extensions + "ANGLE_instanced_arrays", "EXT_blend_minmax", "EXT_disjoint_timer_query", "EXT_frag_depth", "EXT_shader_texture_lod", "EXT_sRGB", "OES_element_index_uint", "OES_fbo_render_mipmap", "OES_standard_derivatives", "OES_texture_float", "OES_texture_half_float", "OES_texture_half_float_linear", "OES_vertex_array_object", "WEBGL_color_buffer_float", "WEBGL_depth_texture", "WEBGL_draw_buffers", // WebGL 2 extensions + "EXT_color_buffer_float", "EXT_conservative_depth", "EXT_disjoint_timer_query_webgl2", "EXT_texture_norm16", "NV_shader_noperspective_interpolation", "WEBGL_clip_cull_distance", // WebGL 1 and WebGL 2 extensions + "EXT_clip_control", "EXT_color_buffer_half_float", "EXT_depth_clamp", "EXT_float_blend", "EXT_polygon_offset_clamp", "EXT_texture_compression_bptc", "EXT_texture_compression_rgtc", "EXT_texture_filter_anisotropic", "KHR_parallel_shader_compile", "OES_texture_float_linear", "WEBGL_blend_func_extended", "WEBGL_compressed_texture_astc", "WEBGL_compressed_texture_etc", "WEBGL_compressed_texture_etc1", "WEBGL_compressed_texture_s3tc", "WEBGL_compressed_texture_s3tc_srgb", "WEBGL_debug_renderer_info", "WEBGL_debug_shaders", "WEBGL_lose_context", "WEBGL_multi_draw", "WEBGL_polygon_mode" ]; + // .getSupportedExtensions() can return null if context is lost, so coerce to empty array. + return (ctx.getSupportedExtensions() || []).filter(ext => supportedExtensions.includes(ext)); +}; + +var registerPreMainLoop = f => { + // Does nothing unless $MainLoop is included/used. + typeof MainLoop != "undefined" && MainLoop.preMainLoop.push(f); +}; + +var GL = { + counter: 1, + buffers: [], + mappedBuffers: {}, + programs: [], + framebuffers: [], + renderbuffers: [], + textures: [], + shaders: [], + vaos: [], + contexts: [], + offscreenCanvases: {}, + queries: [], + samplers: [], + transformFeedbacks: [], + syncs: [], + byteSizeByTypeRoot: 5120, + byteSizeByType: [ 1, 1, 2, 2, 4, 4, 4, 2, 3, 4, 8 ], + stringCache: {}, + stringiCache: {}, + unpackAlignment: 4, + unpackRowLength: 0, + recordError: errorCode => { + if (!GL.lastError) { + GL.lastError = errorCode; + } + }, + getNewId: table => { + var ret = GL.counter++; + for (var i = table.length; i < ret; i++) { + table[i] = null; + } + // Skip over any non-null elements that might have been created by + // glBindBuffer. + while (table[ret]) { + ret = GL.counter++; + } + return ret; + }, + genObject: (n, buffers, createFunction, objectTable) => { + for (var i = 0; i < n; i++) { + var buffer = GLctx[createFunction](); + var id = buffer && GL.getNewId(objectTable); + if (buffer) { + buffer.name = id; + objectTable[id] = buffer; + } else { + GL.recordError(1282); + } + HEAP32[(((buffers) + (i * 4)) >> 2)] = id; + } + }, + MAX_TEMP_BUFFER_SIZE: 2097152, + numTempVertexBuffersPerSize: 64, + log2ceilLookup: i => 32 - Math.clz32(i === 0 ? 0 : i - 1), + generateTempBuffers: (quads, context) => { + var largestIndex = GL.log2ceilLookup(GL.MAX_TEMP_BUFFER_SIZE); + context.tempVertexBufferCounters1 = []; + context.tempVertexBufferCounters2 = []; + context.tempVertexBufferCounters1.length = context.tempVertexBufferCounters2.length = largestIndex + 1; + context.tempVertexBuffers1 = []; + context.tempVertexBuffers2 = []; + context.tempVertexBuffers1.length = context.tempVertexBuffers2.length = largestIndex + 1; + context.tempIndexBuffers = []; + context.tempIndexBuffers.length = largestIndex + 1; + for (var i = 0; i <= largestIndex; ++i) { + context.tempIndexBuffers[i] = null; + // Created on-demand + context.tempVertexBufferCounters1[i] = context.tempVertexBufferCounters2[i] = 0; + var ringbufferLength = GL.numTempVertexBuffersPerSize; + context.tempVertexBuffers1[i] = []; + context.tempVertexBuffers2[i] = []; + var ringbuffer1 = context.tempVertexBuffers1[i]; + var ringbuffer2 = context.tempVertexBuffers2[i]; + ringbuffer1.length = ringbuffer2.length = ringbufferLength; + for (var j = 0; j < ringbufferLength; ++j) { + ringbuffer1[j] = ringbuffer2[j] = null; + } + } + if (quads) { + // GL_QUAD indexes can be precalculated + context.tempQuadIndexBuffer = GLctx.createBuffer(); + context.GLctx.bindBuffer(34963, context.tempQuadIndexBuffer); + var numIndexes = GL.MAX_TEMP_BUFFER_SIZE >> 1; + var quadIndexes = new Uint16Array(numIndexes); + var i = 0, v = 0; + while (1) { + quadIndexes[i++] = v; + if (i >= numIndexes) break; + quadIndexes[i++] = v + 1; + if (i >= numIndexes) break; + quadIndexes[i++] = v + 2; + if (i >= numIndexes) break; + quadIndexes[i++] = v; + if (i >= numIndexes) break; + quadIndexes[i++] = v + 2; + if (i >= numIndexes) break; + quadIndexes[i++] = v + 3; + if (i >= numIndexes) break; + v += 4; + } + context.GLctx.bufferData(34963, quadIndexes, 35044); + context.GLctx.bindBuffer(34963, null); + } + }, + getTempVertexBuffer: sizeBytes => { + var idx = GL.log2ceilLookup(sizeBytes); + var ringbuffer = GL.currentContext.tempVertexBuffers1[idx]; + var nextFreeBufferIndex = GL.currentContext.tempVertexBufferCounters1[idx]; + GL.currentContext.tempVertexBufferCounters1[idx] = (GL.currentContext.tempVertexBufferCounters1[idx] + 1) & (GL.numTempVertexBuffersPerSize - 1); + var vbo = ringbuffer[nextFreeBufferIndex]; + if (vbo) { + return vbo; + } + var prevVBO = GLctx.getParameter(34964); + ringbuffer[nextFreeBufferIndex] = GLctx.createBuffer(); + GLctx.bindBuffer(34962, ringbuffer[nextFreeBufferIndex]); + GLctx.bufferData(34962, 1 << idx, 35048); + GLctx.bindBuffer(34962, prevVBO); + return ringbuffer[nextFreeBufferIndex]; + }, + getTempIndexBuffer: sizeBytes => { + var idx = GL.log2ceilLookup(sizeBytes); + var ibo = GL.currentContext.tempIndexBuffers[idx]; + if (ibo) { + return ibo; + } + var prevIBO = GLctx.getParameter(34965); + GL.currentContext.tempIndexBuffers[idx] = GLctx.createBuffer(); + GLctx.bindBuffer(34963, GL.currentContext.tempIndexBuffers[idx]); + GLctx.bufferData(34963, 1 << idx, 35048); + GLctx.bindBuffer(34963, prevIBO); + return GL.currentContext.tempIndexBuffers[idx]; + }, + newRenderingFrameStarted: () => { + if (!GL.currentContext) { + return; + } + var vb = GL.currentContext.tempVertexBuffers1; + GL.currentContext.tempVertexBuffers1 = GL.currentContext.tempVertexBuffers2; + GL.currentContext.tempVertexBuffers2 = vb; + vb = GL.currentContext.tempVertexBufferCounters1; + GL.currentContext.tempVertexBufferCounters1 = GL.currentContext.tempVertexBufferCounters2; + GL.currentContext.tempVertexBufferCounters2 = vb; + var largestIndex = GL.log2ceilLookup(GL.MAX_TEMP_BUFFER_SIZE); + for (var i = 0; i <= largestIndex; ++i) { + GL.currentContext.tempVertexBufferCounters1[i] = 0; + } + }, + getSource: (shader, count, string, length) => { + var source = ""; + for (var i = 0; i < count; ++i) { + var len = length ? HEAPU32[(((length) + (i * 4)) >> 2)] : undefined; + source += UTF8ToString(HEAPU32[(((string) + (i * 4)) >> 2)], len); + } + return source; + }, + calcBufLength: (size, type, stride, count) => { + if (stride > 0) { + return count * stride; + } + var typeSize = GL.byteSizeByType[type - GL.byteSizeByTypeRoot]; + return size * typeSize * count; + }, + usedTempBuffers: [], + preDrawHandleClientVertexAttribBindings: count => { + GL.resetBufferBinding = false; + // TODO: initial pass to detect ranges we need to upload, might not need + // an upload per attrib + for (var i = 0; i < GL.currentContext.maxVertexAttribs; ++i) { + var cb = GL.currentContext.clientBuffers[i]; + if (!cb.clientside || !cb.enabled) continue; + GL.resetBufferBinding = true; + var size = GL.calcBufLength(cb.size, cb.type, cb.stride, count); + var buf = GL.getTempVertexBuffer(size); + GLctx.bindBuffer(34962, buf); + GLctx.bufferSubData(34962, 0, HEAPU8.subarray(cb.ptr, cb.ptr + size)); + cb.vertexAttribPointerAdaptor.call(GLctx, i, cb.size, cb.type, cb.normalized, cb.stride, 0); + } + }, + postDrawHandleClientVertexAttribBindings: () => { + if (GL.resetBufferBinding) { + GLctx.bindBuffer(34962, GL.buffers[GLctx.currentArrayBufferBinding]); + } + }, + createContext: (/** @type {HTMLCanvasElement} */ canvas, webGLContextAttributes) => { + // BUG: Workaround Safari WebGL issue: After successfully acquiring WebGL + // context on a canvas, calling .getContext() will always return that + // context independent of which 'webgl' or 'webgl2' + // context version was passed. See: + // https://webkit.org/b/222758 + // and: + // https://github.com/emscripten-core/emscripten/issues/13295. + // TODO: Once the bug is fixed and shipped in Safari, adjust the Safari + // version field in above check. + if (!canvas.getContextSafariWebGL2Fixed) { + canvas.getContextSafariWebGL2Fixed = canvas.getContext; + /** @type {function(this:HTMLCanvasElement, string, (Object|null)=): (Object|null)} */ function fixedGetContext(ver, attrs) { + var gl = canvas.getContextSafariWebGL2Fixed(ver, attrs); + return ((ver == "webgl") == (gl instanceof WebGLRenderingContext)) ? gl : null; + } + canvas.getContext = fixedGetContext; + } + var ctx = (webGLContextAttributes.majorVersion > 1) ? canvas.getContext("webgl2", webGLContextAttributes) : canvas.getContext("webgl", webGLContextAttributes); + if (!ctx) return 0; + var handle = GL.registerContext(ctx, webGLContextAttributes); + return handle; + }, + registerContext: (ctx, webGLContextAttributes) => { + // without pthreads a context is just an integer ID + var handle = GL.getNewId(GL.contexts); + var context = { + handle, + attributes: webGLContextAttributes, + version: webGLContextAttributes.majorVersion, + GLctx: ctx + }; + // Store the created context object so that we can access the context + // given a canvas without having to pass the parameters again. + if (ctx.canvas) ctx.canvas.GLctxObject = context; + GL.contexts[handle] = context; + if (typeof webGLContextAttributes.enableExtensionsByDefault == "undefined" || webGLContextAttributes.enableExtensionsByDefault) { + GL.initExtensions(context); + } + context.maxVertexAttribs = context.GLctx.getParameter(34921); + context.clientBuffers = []; + for (var i = 0; i < context.maxVertexAttribs; i++) { + context.clientBuffers[i] = { + enabled: false, + clientside: false, + size: 0, + type: 0, + normalized: 0, + stride: 0, + ptr: 0, + vertexAttribPointerAdaptor: null + }; + } + GL.generateTempBuffers(false, context); + return handle; + }, + makeContextCurrent: contextHandle => { + // Active Emscripten GL layer context object. + GL.currentContext = GL.contexts[contextHandle]; + // Active WebGL context object. + Module["ctx"] = GLctx = GL.currentContext?.GLctx; + return !(contextHandle && !GLctx); + }, + getContext: contextHandle => GL.contexts[contextHandle], + deleteContext: contextHandle => { + if (GL.currentContext === GL.contexts[contextHandle]) { + GL.currentContext = null; + } + if (typeof JSEvents == "object") { + // Release all JS event handlers on the DOM element that the GL context is + // associated with since the context is now deleted. + JSEvents.removeAllHandlersOnTarget(GL.contexts[contextHandle].GLctx.canvas); + } + // Make sure the canvas object no longer refers to the context object so + // there are no GC surprises. + if (GL.contexts[contextHandle]?.GLctx.canvas) { + GL.contexts[contextHandle].GLctx.canvas.GLctxObject = undefined; + } + GL.contexts[contextHandle] = null; + }, + initExtensions: context => { + // If this function is called without a specific context object, init the + // extensions of the currently active context. + context ||= GL.currentContext; + if (context.initExtensionsDone) return; + context.initExtensionsDone = true; + var GLctx = context.GLctx; + // Detect the presence of a few extensions manually, since the GL interop + // layer itself will need to know if they exist. + // Extensions that are available in both WebGL 1 and WebGL 2 + webgl_enable_WEBGL_multi_draw(GLctx); + webgl_enable_EXT_polygon_offset_clamp(GLctx); + webgl_enable_EXT_clip_control(GLctx); + webgl_enable_WEBGL_polygon_mode(GLctx); + // Extensions that are only available in WebGL 1 (the calls will be no-ops + // if called on a WebGL 2 context active) + webgl_enable_ANGLE_instanced_arrays(GLctx); + webgl_enable_OES_vertex_array_object(GLctx); + webgl_enable_WEBGL_draw_buffers(GLctx); + // Extensions that are available from WebGL >= 2 (no-op if called on a WebGL 1 context active) + webgl_enable_WEBGL_draw_instanced_base_vertex_base_instance(GLctx); + webgl_enable_WEBGL_multi_draw_instanced_base_vertex_base_instance(GLctx); + // On WebGL 2, EXT_disjoint_timer_query is replaced with an alternative + // that's based on core APIs, and exposes only the queryCounterEXT() + // entrypoint. + if (context.version >= 2) { + GLctx.disjointTimerQueryExt = GLctx.getExtension("EXT_disjoint_timer_query_webgl2"); + } + // However, Firefox exposes the WebGL 1 version on WebGL 2 as well and + // thus we look for the WebGL 1 version again if the WebGL 2 version + // isn't present. https://bugzil.la/1328882 + if (context.version < 2 || !GLctx.disjointTimerQueryExt) { + GLctx.disjointTimerQueryExt = GLctx.getExtension("EXT_disjoint_timer_query"); + } + for (var ext of getEmscriptenSupportedExtensions(GLctx)) { + // WEBGL_lose_context, WEBGL_debug_renderer_info and WEBGL_debug_shaders + // are not enabled by default. + if (!ext.includes("lose_context") && !ext.includes("debug")) { + // Call .getExtension() to enable that extension permanently. + GLctx.getExtension(ext); + } + } + } +}; + +var webglPowerPreferences = [ "default", "low-power", "high-performance" ]; + +/** @type {Object} */ var specialHTMLTargets = [ 0, globalThis.document ?? 0, globalThis.window ?? 0 ]; + +var findEventTarget = target => { + // The sensible "default" target varies between events, but use window as the default + // since DOM events mostly can default to that. Specific callback registrations + // override their own defaults. + if (!target) return window; + if (typeof target == "number") target = specialHTMLTargets[target] || UTF8ToString(target); + if (target === "#window") return window; else if (target === "#document") return document; else if (target === "#screen") return screen; else if (target === "#canvas") return Module["canvas"]; else if (typeof target == "string") return globalThis.document?.getElementById(target); + return target; +}; + +var findCanvasEventTarget = target => { + if (typeof target == "number") target = UTF8ToString(target); + if (!target || target === "#canvas") { + if (typeof GL != "undefined" && GL.offscreenCanvases["canvas"]) return GL.offscreenCanvases["canvas"]; + // TODO: Remove this line, target '#canvas' should refer only to Module['canvas'], not to GL.offscreenCanvases['canvas'] - but need stricter tests to be able to remove this line. + return Module["canvas"]; + } + if (typeof GL != "undefined" && GL.offscreenCanvases[target]) return GL.offscreenCanvases[target]; + return findEventTarget(target); +}; + +var _emscripten_webgl_do_create_context = (target, attributes) => { + var attr32 = ((attributes) >> 2); + var powerPreference = HEAP32[attr32 + (8 >> 2)]; + var contextAttributes = { + "alpha": !!HEAP8[attributes + 0], + "depth": !!HEAP8[attributes + 1], + "stencil": !!HEAP8[attributes + 2], + "antialias": !!HEAP8[attributes + 3], + "premultipliedAlpha": !!HEAP8[attributes + 4], + "preserveDrawingBuffer": !!HEAP8[attributes + 5], + "powerPreference": webglPowerPreferences[powerPreference], + "failIfMajorPerformanceCaveat": !!HEAP8[attributes + 12], + // The following are not predefined WebGL context attributes in the WebGL specification, so the property names can be minified by Closure. + majorVersion: HEAP32[attr32 + (16 >> 2)], + minorVersion: HEAP32[attr32 + (20 >> 2)], + enableExtensionsByDefault: HEAP8[attributes + 24], + explicitSwapControl: HEAP8[attributes + 25], + proxyContextToMainThread: HEAP32[attr32 + (28 >> 2)], + renderViaOffscreenBackBuffer: HEAP8[attributes + 32] + }; + var canvas = findCanvasEventTarget(target); + if (!canvas) { + return 0; + } + if (contextAttributes.explicitSwapControl) { + return 0; + } + var contextHandle = GL.createContext(canvas, contextAttributes); + return contextHandle; +}; + +var _emscripten_webgl_create_context = _emscripten_webgl_do_create_context; + +var _emscripten_webgl_destroy_context = contextHandle => { + if (GL.currentContext == contextHandle) GL.currentContext = 0; + GL.deleteContext(contextHandle); +}; + +var _emscripten_webgl_get_context_attributes = (c, a) => { + if (!a) return -5; + c = GL.contexts[c]; + if (!c) return -3; + var t = c.GLctx?.getContextAttributes(); + if (!t) return -3; + HEAP8[a] = t.alpha; + HEAP8[(a) + (1)] = t.depth; + HEAP8[(a) + (2)] = t.stencil; + HEAP8[(a) + (3)] = t.antialias; + HEAP8[(a) + (4)] = t.premultipliedAlpha; + HEAP8[(a) + (5)] = t.preserveDrawingBuffer; + var power = t["powerPreference"] && webglPowerPreferences.indexOf(t["powerPreference"]); + HEAP32[(((a) + (8)) >> 2)] = power; + HEAP8[(a) + (12)] = t.failIfMajorPerformanceCaveat; + HEAP32[(((a) + (16)) >> 2)] = c.version; + HEAP32[(((a) + (20)) >> 2)] = 0; + HEAP8[(a) + (24)] = c.attributes.enableExtensionsByDefault; + return 0; +}; + +var _emscripten_webgl_do_get_current_context = () => GL.currentContext ? GL.currentContext.handle : 0; + +var _emscripten_webgl_get_current_context = _emscripten_webgl_do_get_current_context; + +var _emscripten_webgl_make_context_current = contextHandle => { + var success = GL.makeContextCurrent(contextHandle); + return success ? 0 : -5; +}; + +var stackAlloc = sz => __emscripten_stack_alloc(sz); + +var stringToUTF8OnStack = str => { + var size = lengthBytesUTF8(str) + 1; + var ret = stackAlloc(size); + stringToUTF8(str, ret, size); + return ret; +}; + +var writeI53ToI64 = (ptr, num) => { + HEAPU32[((ptr) >> 2)] = num; + var lower = HEAPU32[((ptr) >> 2)]; + HEAPU32[(((ptr) + (4)) >> 2)] = (num - lower) / 4294967296; +}; + +var readI53FromI64 = ptr => HEAPU32[((ptr) >> 2)] + HEAP32[(((ptr) + (4)) >> 2)] * 4294967296; + +var wasmTableMirror = []; + +var getWasmTableEntry = funcPtr => { + var func = wasmTableMirror[funcPtr]; + if (!func) { + /** @suppress {checkTypes} */ wasmTableMirror[funcPtr] = func = wasmTable.get(funcPtr); + } + return func; +}; + +var WebGPU = { + Internals: { + jsObjects: [], + jsObjectInsert: (ptr, jsObject) => { + ptr >>>= 0; + WebGPU.Internals.jsObjects[ptr] = jsObject; + }, + bufferOnUnmaps: [], + futures: [], + futureInsert: (futureId, promise) => {} + }, + getJsObject: ptr => { + if (!ptr) return undefined; + ptr >>>= 0; + return WebGPU.Internals.jsObjects[ptr]; + }, + importJsAdapter: (obj, parentPtr = 0) => { + var ptr = _emwgpuCreateAdapter(parentPtr); + WebGPU.Internals.jsObjects[ptr] = obj; + return ptr; + }, + importJsBindGroup: (obj, parentPtr = 0) => { + var ptr = _emwgpuCreateBindGroup(parentPtr); + WebGPU.Internals.jsObjects[ptr] = obj; + return ptr; + }, + importJsBindGroupLayout: (obj, parentPtr = 0) => { + var ptr = _emwgpuCreateBindGroupLayout(parentPtr); + WebGPU.Internals.jsObjects[ptr] = obj; + return ptr; + }, + importJsBuffer: (buffer, parentPtr = 0) => { + // At the moment, we do not allow importing pending buffers. + assert(buffer.mapState === "unmapped"); + var bufferPtr = _emwgpuImportBuffer(parentPtr); + WebGPU.Internals.jsObjectInsert(bufferPtr, buffer); + return bufferPtr; + }, + importJsCommandBuffer: (obj, parentPtr = 0) => { + var ptr = _emwgpuCreateCommandBuffer(parentPtr); + WebGPU.Internals.jsObjects[ptr] = obj; + return ptr; + }, + importJsCommandEncoder: (obj, parentPtr = 0) => { + var ptr = _emwgpuCreateCommandEncoder(parentPtr); + WebGPU.Internals.jsObjects[ptr] = obj; + return ptr; + }, + importJsComputePassEncoder: (obj, parentPtr = 0) => { + var ptr = _emwgpuCreateComputePassEncoder(parentPtr); + WebGPU.Internals.jsObjects[ptr] = obj; + return ptr; + }, + importJsComputePipeline: (obj, parentPtr = 0) => { + var ptr = _emwgpuCreateComputePipeline(parentPtr); + WebGPU.Internals.jsObjects[ptr] = obj; + return ptr; + }, + importJsDevice: (device, parentPtr = 0) => { + var queuePtr = _emwgpuCreateQueue(parentPtr); + var devicePtr = _emwgpuCreateDevice(parentPtr, queuePtr); + WebGPU.Internals.jsObjectInsert(queuePtr, device.queue); + WebGPU.Internals.jsObjectInsert(devicePtr, device); + return devicePtr; + }, + importJsExternalTexture: (obj, parentPtr = 0) => { + var ptr = _emwgpuCreateExternalTexture(parentPtr); + WebGPU.Internals.jsObjects[ptr] = obj; + return ptr; + }, + importJsPipelineLayout: (obj, parentPtr = 0) => { + var ptr = _emwgpuCreatePipelineLayout(parentPtr); + WebGPU.Internals.jsObjects[ptr] = obj; + return ptr; + }, + importJsQuerySet: (obj, parentPtr = 0) => { + var ptr = _emwgpuCreateQuerySet(parentPtr); + WebGPU.Internals.jsObjects[ptr] = obj; + return ptr; + }, + importJsQueue: (obj, parentPtr = 0) => { + var ptr = _emwgpuCreateQueue(parentPtr); + WebGPU.Internals.jsObjects[ptr] = obj; + return ptr; + }, + importJsRenderBundle: (obj, parentPtr = 0) => { + var ptr = _emwgpuCreateRenderBundle(parentPtr); + WebGPU.Internals.jsObjects[ptr] = obj; + return ptr; + }, + importJsRenderBundleEncoder: (obj, parentPtr = 0) => { + var ptr = _emwgpuCreateRenderBundleEncoder(parentPtr); + WebGPU.Internals.jsObjects[ptr] = obj; + return ptr; + }, + importJsRenderPassEncoder: (obj, parentPtr = 0) => { + var ptr = _emwgpuCreateRenderPassEncoder(parentPtr); + WebGPU.Internals.jsObjects[ptr] = obj; + return ptr; + }, + importJsRenderPipeline: (obj, parentPtr = 0) => { + var ptr = _emwgpuCreateRenderPipeline(parentPtr); + WebGPU.Internals.jsObjects[ptr] = obj; + return ptr; + }, + importJsSampler: (obj, parentPtr = 0) => { + var ptr = _emwgpuCreateSampler(parentPtr); + WebGPU.Internals.jsObjects[ptr] = obj; + return ptr; + }, + importJsShaderModule: (obj, parentPtr = 0) => { + var ptr = _emwgpuCreateShaderModule(parentPtr); + WebGPU.Internals.jsObjects[ptr] = obj; + return ptr; + }, + importJsSurface: (obj, parentPtr = 0) => { + var ptr = _emwgpuCreateSurface(parentPtr); + WebGPU.Internals.jsObjects[ptr] = obj; + return ptr; + }, + importJsTexture: (obj, parentPtr = 0) => { + var ptr = _emwgpuCreateTexture(parentPtr); + WebGPU.Internals.jsObjects[ptr] = obj; + return ptr; + }, + importJsTextureView: (obj, parentPtr = 0) => { + var ptr = _emwgpuCreateTextureView(parentPtr); + WebGPU.Internals.jsObjects[ptr] = obj; + return ptr; + }, + errorCallback: (callback, type, message, userdata) => { + var sp = stackSave(); + var messagePtr = stringToUTF8OnStack(message); + getWasmTableEntry(callback)(type, messagePtr, userdata); + stackRestore(sp); + }, + iterateExtensions: (root, handlers) => { + for (var ptr = HEAPU32[((root) >> 2)]; ptr; ptr = HEAPU32[((ptr) >> 2)]) { + var sType = HEAP32[(((ptr) + (4)) >> 2)]; + // This will crash if there's no handler indicating either a bogus + // sType, or one we haven't implemented yet. + var handler = handlers[sType](ptr); + } + }, + setStringView: (ptr, data, length) => { + HEAPU32[((ptr) >> 2)] = data; + HEAPU32[(((ptr) + (4)) >> 2)] = length; + }, + makeStringFromStringView: stringViewPtr => { + var ptr = HEAPU32[((stringViewPtr) >> 2)]; + var length = HEAPU32[(((stringViewPtr) + (4)) >> 2)]; + // UTF8ToString stops at the first null terminator character in the + // string regardless of the length. + return UTF8ToString(ptr, length); + }, + makeStringFromOptionalStringView: stringViewPtr => { + var ptr = HEAPU32[((stringViewPtr) >> 2)]; + var length = HEAPU32[(((stringViewPtr) + (4)) >> 2)]; + // If we don't have a valid string pointer, just return undefined when + // optional. + if (!ptr) { + if (length === 0) { + return ""; + } + return undefined; + } + // UTF8ToString stops at the first null terminator character in the + // string regardless of the length. + return UTF8ToString(ptr, length); + }, + makeColor: ptr => ({ + "r": HEAPF64[((ptr) >> 3)], + "g": HEAPF64[(((ptr) + (8)) >> 3)], + "b": HEAPF64[(((ptr) + (16)) >> 3)], + "a": HEAPF64[(((ptr) + (24)) >> 3)] + }), + makeExtent3D: ptr => ({ + "width": HEAPU32[((ptr) >> 2)], + "height": HEAPU32[(((ptr) + (4)) >> 2)], + "depthOrArrayLayers": HEAPU32[(((ptr) + (8)) >> 2)] + }), + makeOrigin3D: ptr => ({ + "x": HEAPU32[((ptr) >> 2)], + "y": HEAPU32[(((ptr) + (4)) >> 2)], + "z": HEAPU32[(((ptr) + (8)) >> 2)] + }), + makeTexelCopyTextureInfo: ptr => ({ + "texture": WebGPU.getJsObject(HEAPU32[((ptr) >> 2)]), + "mipLevel": HEAPU32[(((ptr) + (4)) >> 2)], + "origin": WebGPU.makeOrigin3D(ptr + 8), + "aspect": WebGPU.TextureAspect[HEAP32[(((ptr) + (20)) >> 2)]] + }), + makeTexelCopyBufferLayout: ptr => { + var bytesPerRow = HEAPU32[(((ptr) + (8)) >> 2)]; + var rowsPerImage = HEAPU32[(((ptr) + (12)) >> 2)]; + return { + "offset": readI53FromI64(ptr), + "bytesPerRow": bytesPerRow === 4294967295 ? undefined : bytesPerRow, + "rowsPerImage": rowsPerImage === 4294967295 ? undefined : rowsPerImage + }; + }, + makeTexelCopyBufferInfo: ptr => { + var layoutPtr = ptr + 0; + var bufferCopyView = WebGPU.makeTexelCopyBufferLayout(layoutPtr); + bufferCopyView["buffer"] = WebGPU.getJsObject(HEAPU32[(((ptr) + (16)) >> 2)]); + return bufferCopyView; + }, + makePassTimestampWrites: ptr => { + if (ptr === 0) return undefined; + return { + "querySet": WebGPU.getJsObject(HEAPU32[(((ptr) + (4)) >> 2)]), + "beginningOfPassWriteIndex": HEAPU32[(((ptr) + (8)) >> 2)], + "endOfPassWriteIndex": HEAPU32[(((ptr) + (12)) >> 2)] + }; + }, + makePipelineConstants: (constantCount, constantsPtr) => { + if (!constantCount) return; + var constants = {}; + for (var i = 0; i < constantCount; ++i) { + var entryPtr = constantsPtr + 24 * i; + var key = WebGPU.makeStringFromStringView(entryPtr + 4); + constants[key] = HEAPF64[(((entryPtr) + (16)) >> 3)]; + } + return constants; + }, + makePipelineLayout: layoutPtr => { + if (!layoutPtr) return "auto"; + return WebGPU.getJsObject(layoutPtr); + }, + makeComputeState: ptr => { + if (!ptr) return undefined; + var desc = { + "module": WebGPU.getJsObject(HEAPU32[(((ptr) + (4)) >> 2)]), + "constants": WebGPU.makePipelineConstants(HEAPU32[(((ptr) + (16)) >> 2)], HEAPU32[(((ptr) + (20)) >> 2)]), + "entryPoint": WebGPU.makeStringFromOptionalStringView(ptr + 8) + }; + return desc; + }, + makeComputePipelineDesc: descriptor => { + var desc = { + "label": WebGPU.makeStringFromOptionalStringView(descriptor + 4), + "layout": WebGPU.makePipelineLayout(HEAPU32[(((descriptor) + (12)) >> 2)]), + "compute": WebGPU.makeComputeState(descriptor + 16) + }; + return desc; + }, + makeRenderPipelineDesc: descriptor => { + function makePrimitiveState(psPtr) { + if (!psPtr) return undefined; + return { + "topology": WebGPU.PrimitiveTopology[HEAP32[(((psPtr) + (4)) >> 2)]], + "stripIndexFormat": WebGPU.IndexFormat[HEAP32[(((psPtr) + (8)) >> 2)]], + "frontFace": WebGPU.FrontFace[HEAP32[(((psPtr) + (12)) >> 2)]], + "cullMode": WebGPU.CullMode[HEAP32[(((psPtr) + (16)) >> 2)]], + "unclippedDepth": !!(HEAPU32[(((psPtr) + (20)) >> 2)]) + }; + } + function makeBlendComponent(bdPtr) { + if (!bdPtr) return undefined; + return { + "operation": WebGPU.BlendOperation[HEAP32[((bdPtr) >> 2)]], + "srcFactor": WebGPU.BlendFactor[HEAP32[(((bdPtr) + (4)) >> 2)]], + "dstFactor": WebGPU.BlendFactor[HEAP32[(((bdPtr) + (8)) >> 2)]] + }; + } + function makeBlendState(bsPtr) { + if (!bsPtr) return undefined; + return { + "alpha": makeBlendComponent(bsPtr + 12), + "color": makeBlendComponent(bsPtr + 0) + }; + } + function makeColorState(csPtr) { + var format = WebGPU.TextureFormat[HEAP32[(((csPtr) + (4)) >> 2)]]; + return format ? { + "format": format, + "blend": makeBlendState(HEAPU32[(((csPtr) + (8)) >> 2)]), + "writeMask": HEAPU32[(((csPtr) + (16)) >> 2)] + } : undefined; + } + function makeColorStates(count, csArrayPtr) { + var states = []; + for (var i = 0; i < count; ++i) { + states.push(makeColorState(csArrayPtr + 24 * i)); + } + return states; + } + function makeStencilStateFace(ssfPtr) { + return { + "compare": WebGPU.CompareFunction[HEAP32[((ssfPtr) >> 2)]], + "failOp": WebGPU.StencilOperation[HEAP32[(((ssfPtr) + (4)) >> 2)]], + "depthFailOp": WebGPU.StencilOperation[HEAP32[(((ssfPtr) + (8)) >> 2)]], + "passOp": WebGPU.StencilOperation[HEAP32[(((ssfPtr) + (12)) >> 2)]] + }; + } + function makeDepthStencilState(dssPtr) { + if (!dssPtr) return undefined; + return { + "format": WebGPU.TextureFormat[HEAP32[(((dssPtr) + (4)) >> 2)]], + "depthWriteEnabled": !!(HEAPU32[(((dssPtr) + (8)) >> 2)]), + "depthCompare": WebGPU.CompareFunction[HEAP32[(((dssPtr) + (12)) >> 2)]], + "stencilFront": makeStencilStateFace(dssPtr + 16), + "stencilBack": makeStencilStateFace(dssPtr + 32), + "stencilReadMask": HEAPU32[(((dssPtr) + (48)) >> 2)], + "stencilWriteMask": HEAPU32[(((dssPtr) + (52)) >> 2)], + "depthBias": HEAP32[(((dssPtr) + (56)) >> 2)], + "depthBiasSlopeScale": HEAPF32[(((dssPtr) + (60)) >> 2)], + "depthBiasClamp": HEAPF32[(((dssPtr) + (64)) >> 2)] + }; + } + function makeVertexAttribute(vaPtr) { + return { + "format": WebGPU.VertexFormat[HEAP32[(((vaPtr) + (4)) >> 2)]], + "offset": readI53FromI64((vaPtr) + (8)), + "shaderLocation": HEAPU32[(((vaPtr) + (16)) >> 2)] + }; + } + function makeVertexAttributes(count, vaArrayPtr) { + var vas = []; + for (var i = 0; i < count; ++i) { + vas.push(makeVertexAttribute(vaArrayPtr + i * 24)); + } + return vas; + } + function makeVertexBuffer(vbPtr) { + if (!vbPtr) return undefined; + var stepMode = WebGPU.VertexStepMode[HEAP32[(((vbPtr) + (4)) >> 2)]]; + var attributeCount = HEAPU32[(((vbPtr) + (16)) >> 2)]; + if (!stepMode && !attributeCount) { + return null; + } + return { + "arrayStride": readI53FromI64((vbPtr) + (8)), + "stepMode": stepMode, + "attributes": makeVertexAttributes(attributeCount, HEAPU32[(((vbPtr) + (20)) >> 2)]) + }; + } + function makeVertexBuffers(count, vbArrayPtr) { + if (!count) return undefined; + var vbs = []; + for (var i = 0; i < count; ++i) { + vbs.push(makeVertexBuffer(vbArrayPtr + i * 24)); + } + return vbs; + } + function makeVertexState(viPtr) { + if (!viPtr) return undefined; + var desc = { + "module": WebGPU.getJsObject(HEAPU32[(((viPtr) + (4)) >> 2)]), + "constants": WebGPU.makePipelineConstants(HEAPU32[(((viPtr) + (16)) >> 2)], HEAPU32[(((viPtr) + (20)) >> 2)]), + "buffers": makeVertexBuffers(HEAPU32[(((viPtr) + (24)) >> 2)], HEAPU32[(((viPtr) + (28)) >> 2)]), + "entryPoint": WebGPU.makeStringFromOptionalStringView(viPtr + 8) + }; + return desc; + } + function makeMultisampleState(msPtr) { + if (!msPtr) return undefined; + return { + "count": HEAPU32[(((msPtr) + (4)) >> 2)], + "mask": HEAPU32[(((msPtr) + (8)) >> 2)], + "alphaToCoverageEnabled": !!(HEAPU32[(((msPtr) + (12)) >> 2)]) + }; + } + function makeFragmentState(fsPtr) { + if (!fsPtr) return undefined; + var desc = { + "module": WebGPU.getJsObject(HEAPU32[(((fsPtr) + (4)) >> 2)]), + "constants": WebGPU.makePipelineConstants(HEAPU32[(((fsPtr) + (16)) >> 2)], HEAPU32[(((fsPtr) + (20)) >> 2)]), + "targets": makeColorStates(HEAPU32[(((fsPtr) + (24)) >> 2)], HEAPU32[(((fsPtr) + (28)) >> 2)]), + "entryPoint": WebGPU.makeStringFromOptionalStringView(fsPtr + 8) + }; + return desc; + } + var desc = { + "label": WebGPU.makeStringFromOptionalStringView(descriptor + 4), + "layout": WebGPU.makePipelineLayout(HEAPU32[(((descriptor) + (12)) >> 2)]), + "vertex": makeVertexState(descriptor + 16), + "primitive": makePrimitiveState(descriptor + 48), + "depthStencil": makeDepthStencilState(HEAPU32[(((descriptor) + (72)) >> 2)]), + "multisample": makeMultisampleState(descriptor + 76), + "fragment": makeFragmentState(HEAPU32[(((descriptor) + (92)) >> 2)]) + }; + return desc; + }, + fillLimitStruct: (limits, limitsOutPtr) => { + var nextInChainPtr = HEAPU32[((limitsOutPtr) >> 2)]; + function setLimitValueU32(name, basePtr, limitOffset, fallbackValue = 0) { + var limitValue = limits[name] ?? fallbackValue; + HEAPU32[(((basePtr) + (limitOffset)) >> 2)] = limitValue; + } + function setLimitValueU64(name, basePtr, limitOffset, fallbackValue = 0) { + var limitValue = limits[name] ?? fallbackValue; + // Limits are integer-valued JS `Number`s, so they fit in 'i53'. + writeI53ToI64((basePtr) + (limitOffset), limitValue); + } + setLimitValueU32("maxTextureDimension1D", limitsOutPtr, 4); + setLimitValueU32("maxTextureDimension2D", limitsOutPtr, 8); + setLimitValueU32("maxTextureDimension3D", limitsOutPtr, 12); + setLimitValueU32("maxTextureArrayLayers", limitsOutPtr, 16); + setLimitValueU32("maxBindGroups", limitsOutPtr, 20); + setLimitValueU32("maxBindGroupsPlusVertexBuffers", limitsOutPtr, 24); + setLimitValueU32("maxBindingsPerBindGroup", limitsOutPtr, 28); + setLimitValueU32("maxDynamicUniformBuffersPerPipelineLayout", limitsOutPtr, 32); + setLimitValueU32("maxDynamicStorageBuffersPerPipelineLayout", limitsOutPtr, 36); + setLimitValueU32("maxSampledTexturesPerShaderStage", limitsOutPtr, 40); + setLimitValueU32("maxSamplersPerShaderStage", limitsOutPtr, 44); + setLimitValueU32("maxStorageBuffersPerShaderStage", limitsOutPtr, 48); + setLimitValueU32("maxStorageTexturesPerShaderStage", limitsOutPtr, 52); + setLimitValueU32("maxUniformBuffersPerShaderStage", limitsOutPtr, 56); + setLimitValueU32("minUniformBufferOffsetAlignment", limitsOutPtr, 80); + setLimitValueU32("minStorageBufferOffsetAlignment", limitsOutPtr, 84); + setLimitValueU64("maxUniformBufferBindingSize", limitsOutPtr, 64); + setLimitValueU64("maxStorageBufferBindingSize", limitsOutPtr, 72); + setLimitValueU32("maxVertexBuffers", limitsOutPtr, 88); + setLimitValueU64("maxBufferSize", limitsOutPtr, 96); + setLimitValueU32("maxVertexAttributes", limitsOutPtr, 104); + setLimitValueU32("maxVertexBufferArrayStride", limitsOutPtr, 108); + setLimitValueU32("maxInterStageShaderVariables", limitsOutPtr, 112); + setLimitValueU32("maxColorAttachments", limitsOutPtr, 116); + setLimitValueU32("maxColorAttachmentBytesPerSample", limitsOutPtr, 120); + setLimitValueU32("maxComputeWorkgroupStorageSize", limitsOutPtr, 124); + setLimitValueU32("maxComputeInvocationsPerWorkgroup", limitsOutPtr, 128); + setLimitValueU32("maxComputeWorkgroupSizeX", limitsOutPtr, 132); + setLimitValueU32("maxComputeWorkgroupSizeY", limitsOutPtr, 136); + setLimitValueU32("maxComputeWorkgroupSizeZ", limitsOutPtr, 140); + setLimitValueU32("maxComputeWorkgroupsPerDimension", limitsOutPtr, 144); + // Note this limit is new and won't be present in all browsers for a while. Fall back to 0. + setLimitValueU32("maxImmediateSize", limitsOutPtr, 148); + if (nextInChainPtr !== 0) { + var sType = HEAP32[(((nextInChainPtr) + (4)) >> 2)]; + var compatibilityModeLimitsPtr = nextInChainPtr; + // Note these limits are new and won't be present in all browsers for a while. Fall back to exposing the PerShaderStage limit. + setLimitValueU32("maxStorageBuffersInVertexStage", compatibilityModeLimitsPtr, 8, limits.maxStorageBuffersPerShaderStage); + setLimitValueU32("maxStorageBuffersInFragmentStage", compatibilityModeLimitsPtr, 16, limits.maxStorageBuffersPerShaderStage); + setLimitValueU32("maxStorageTexturesInVertexStage", compatibilityModeLimitsPtr, 12, limits.maxStorageTexturesPerShaderStage); + setLimitValueU32("maxStorageTexturesInFragmentStage", compatibilityModeLimitsPtr, 20, limits.maxStorageTexturesPerShaderStage); + } + }, + fillAdapterInfoStruct: (info, infoStruct) => { + // Populate subgroup limits. + HEAPU32[(((infoStruct) + (52)) >> 2)] = info.subgroupMinSize; + HEAPU32[(((infoStruct) + (56)) >> 2)] = info.subgroupMaxSize; + // Append all the strings together to condense into a single malloc. + var strs = info.vendor + info.architecture + info.device + info.description; + var strPtr = stringToNewUTF8(strs); + var vendorLen = lengthBytesUTF8(info.vendor); + WebGPU.setStringView(infoStruct + 4, strPtr, vendorLen); + strPtr += vendorLen; + var architectureLen = lengthBytesUTF8(info.architecture); + WebGPU.setStringView(infoStruct + 12, strPtr, architectureLen); + strPtr += architectureLen; + var deviceLen = lengthBytesUTF8(info.device); + WebGPU.setStringView(infoStruct + 20, strPtr, deviceLen); + strPtr += deviceLen; + var descriptionLen = lengthBytesUTF8(info.description); + WebGPU.setStringView(infoStruct + 28, strPtr, descriptionLen); + strPtr += descriptionLen; + HEAP32[(((infoStruct) + (36)) >> 2)] = 2; + var adapterType = info.isFallbackAdapter ? 3 : 4; + HEAP32[(((infoStruct) + (40)) >> 2)] = adapterType; + HEAPU32[(((infoStruct) + (44)) >> 2)] = 0; + HEAPU32[(((infoStruct) + (48)) >> 2)] = 0; + }, + AddressMode: [ , "clamp-to-edge", "repeat", "mirror-repeat" ], + BlendFactor: [ , "zero", "one", "src", "one-minus-src", "src-alpha", "one-minus-src-alpha", "dst", "one-minus-dst", "dst-alpha", "one-minus-dst-alpha", "src-alpha-saturated", "constant", "one-minus-constant", "src1", "one-minus-src1", "src1-alpha", "one-minus-src1-alpha" ], + BlendOperation: [ , "add", "subtract", "reverse-subtract", "min", "max" ], + BufferBindingType: [ , , "uniform", "storage", "read-only-storage" ], + BufferMapState: [ , "unmapped", "pending", "mapped" ], + CompareFunction: [ , "never", "less", "equal", "less-equal", "greater", "not-equal", "greater-equal", "always" ], + CompilationInfoRequestStatus: [ , "success", "callback-cancelled" ], + ComponentSwizzle: [ , "0", "1", "r", "g", "b", "a" ], + CompositeAlphaMode: [ , "opaque", "premultiplied", "unpremultiplied", "inherit" ], + CullMode: [ , "none", "front", "back" ], + ErrorFilter: [ , "validation", "out-of-memory", "internal" ], + FeatureLevel: [ , "compatibility", "core" ], + FeatureName: { + 1: "core-features-and-limits", + 2: "depth-clip-control", + 3: "depth32float-stencil8", + 4: "texture-compression-bc", + 5: "texture-compression-bc-sliced-3d", + 6: "texture-compression-etc2", + 7: "texture-compression-astc", + 8: "texture-compression-astc-sliced-3d", + 9: "timestamp-query", + 10: "indirect-first-instance", + 11: "shader-f16", + 12: "rg11b10ufloat-renderable", + 13: "bgra8unorm-storage", + 14: "float32-filterable", + 15: "float32-blendable", + 16: "clip-distances", + 17: "dual-source-blending", + 18: "subgroups", + 19: "texture-formats-tier1", + 20: "texture-formats-tier2", + 21: "primitive-index", + 22: "texture-component-swizzle", + 327692: "chromium-experimental-unorm16-texture-formats", + 327729: "chromium-experimental-multi-draw-indirect" + }, + FilterMode: [ , "nearest", "linear" ], + FrontFace: [ , "ccw", "cw" ], + IndexFormat: [ , "uint16", "uint32" ], + InstanceFeatureName: [ , "timed-wait-any", "shader-source-spirv", "multiple-devices-per-adapter" ], + LoadOp: [ , "load", "clear" ], + MipmapFilterMode: [ , "nearest", "linear" ], + OptionalBool: [ "false", "true" ], + PowerPreference: [ , "low-power", "high-performance" ], + PredefinedColorSpace: [ , "srgb", "display-p3" ], + PrimitiveTopology: [ , "point-list", "line-list", "line-strip", "triangle-list", "triangle-strip" ], + QueryType: [ , "occlusion", "timestamp" ], + SamplerBindingType: [ , , "filtering", "non-filtering", "comparison" ], + Status: [ , "success", "error" ], + StencilOperation: [ , "keep", "zero", "replace", "invert", "increment-clamp", "decrement-clamp", "increment-wrap", "decrement-wrap" ], + StorageTextureAccess: [ , , "write-only", "read-only", "read-write" ], + StoreOp: [ , "store", "discard" ], + SurfaceGetCurrentTextureStatus: [ , "success-optimal", "success-suboptimal", "timeout", "outdated", "lost", "error" ], + TextureAspect: [ , "all", "stencil-only", "depth-only" ], + TextureDimension: [ , "1d", "2d", "3d" ], + TextureFormat: [ , "r8unorm", "r8snorm", "r8uint", "r8sint", "r16unorm", "r16snorm", "r16uint", "r16sint", "r16float", "rg8unorm", "rg8snorm", "rg8uint", "rg8sint", "r32float", "r32uint", "r32sint", "rg16unorm", "rg16snorm", "rg16uint", "rg16sint", "rg16float", "rgba8unorm", "rgba8unorm-srgb", "rgba8snorm", "rgba8uint", "rgba8sint", "bgra8unorm", "bgra8unorm-srgb", "rgb10a2uint", "rgb10a2unorm", "rg11b10ufloat", "rgb9e5ufloat", "rg32float", "rg32uint", "rg32sint", "rgba16unorm", "rgba16snorm", "rgba16uint", "rgba16sint", "rgba16float", "rgba32float", "rgba32uint", "rgba32sint", "stencil8", "depth16unorm", "depth24plus", "depth24plus-stencil8", "depth32float", "depth32float-stencil8", "bc1-rgba-unorm", "bc1-rgba-unorm-srgb", "bc2-rgba-unorm", "bc2-rgba-unorm-srgb", "bc3-rgba-unorm", "bc3-rgba-unorm-srgb", "bc4-r-unorm", "bc4-r-snorm", "bc5-rg-unorm", "bc5-rg-snorm", "bc6h-rgb-ufloat", "bc6h-rgb-float", "bc7-rgba-unorm", "bc7-rgba-unorm-srgb", "etc2-rgb8unorm", "etc2-rgb8unorm-srgb", "etc2-rgb8a1unorm", "etc2-rgb8a1unorm-srgb", "etc2-rgba8unorm", "etc2-rgba8unorm-srgb", "eac-r11unorm", "eac-r11snorm", "eac-rg11unorm", "eac-rg11snorm", "astc-4x4-unorm", "astc-4x4-unorm-srgb", "astc-5x4-unorm", "astc-5x4-unorm-srgb", "astc-5x5-unorm", "astc-5x5-unorm-srgb", "astc-6x5-unorm", "astc-6x5-unorm-srgb", "astc-6x6-unorm", "astc-6x6-unorm-srgb", "astc-8x5-unorm", "astc-8x5-unorm-srgb", "astc-8x6-unorm", "astc-8x6-unorm-srgb", "astc-8x8-unorm", "astc-8x8-unorm-srgb", "astc-10x5-unorm", "astc-10x5-unorm-srgb", "astc-10x6-unorm", "astc-10x6-unorm-srgb", "astc-10x8-unorm", "astc-10x8-unorm-srgb", "astc-10x10-unorm", "astc-10x10-unorm-srgb", "astc-12x10-unorm", "astc-12x10-unorm-srgb", "astc-12x12-unorm", "astc-12x12-unorm-srgb" ], + TextureSampleType: [ , , "float", "unfilterable-float", "depth", "sint", "uint" ], + TextureViewDimension: [ , "1d", "2d", "2d-array", "cube", "cube-array", "3d" ], + ToneMappingMode: [ , "standard", "extended" ], + VertexFormat: [ , "uint8", "uint8x2", "uint8x4", "sint8", "sint8x2", "sint8x4", "unorm8", "unorm8x2", "unorm8x4", "snorm8", "snorm8x2", "snorm8x4", "uint16", "uint16x2", "uint16x4", "sint16", "sint16x2", "sint16x4", "unorm16", "unorm16x2", "unorm16x4", "snorm16", "snorm16x2", "snorm16x4", "float16", "float16x2", "float16x4", "float32", "float32x2", "float32x3", "float32x4", "uint32", "uint32x2", "uint32x3", "uint32x4", "sint32", "sint32x2", "sint32x3", "sint32x4", "unorm10-10-10-2", "unorm8x4-bgra" ], + VertexStepMode: [ , "vertex", "instance" ], + WGSLLanguageFeatureName: [ , "readonly_and_readwrite_storage_textures", "packed_4x8_integer_dot_product", "unrestricted_pointer_parameters", "pointer_composite_access", "uniform_buffer_standard_layout", "subgroup_id", "texture_and_sampler_let", "subgroup_uniformity", "texture_formats_tier1" ] +}; + +var _emscripten_webgpu_get_device = () => { + if (WebGPU.preinitializedDeviceId === undefined) { + WebGPU.preinitializedDeviceId = WebGPU.importJsDevice(Module["preinitializedWebGPUDevice"]); + // Some users depend on this keeping the device alive, so we add an + // additional reference when we first initialize it. + _wgpuDeviceAddRef(WebGPU.preinitializedDeviceId); + } + _wgpuDeviceAddRef(WebGPU.preinitializedDeviceId); + return WebGPU.preinitializedDeviceId; +}; + +var _emwgpuBufferDestroy = bufferPtr => { + var buffer = WebGPU.getJsObject(bufferPtr); + var onUnmap = WebGPU.Internals.bufferOnUnmaps[bufferPtr]; + if (onUnmap) { + for (var i = 0; i < onUnmap.length; ++i) { + onUnmap[i](); + } + delete WebGPU.Internals.bufferOnUnmaps[bufferPtr]; + } + buffer.destroy(); +}; + +var _emwgpuBufferGetMappedRange = (bufferPtr, offset, size) => { + var buffer = WebGPU.getJsObject(bufferPtr); + if (size == -1) size = undefined; + var mapped; + try { + mapped = buffer.getMappedRange(offset, size); + } catch (ex) { + return 0; + } + var data = _memalign(16, mapped.byteLength); + HEAPU8.fill(0, data, mapped.byteLength); + WebGPU.Internals.bufferOnUnmaps[bufferPtr].push(() => { + new Uint8Array(mapped).set(HEAPU8.subarray(data, data + mapped.byteLength)); + _free(data); + }); + return data; +}; + +var _emwgpuBufferUnmap = bufferPtr => { + var buffer = WebGPU.getJsObject(bufferPtr); + var onUnmap = WebGPU.Internals.bufferOnUnmaps[bufferPtr]; + if (!onUnmap) { + // Already unmapped + return; + } + for (var i = 0; i < onUnmap.length; ++i) { + onUnmap[i](); + } + delete WebGPU.Internals.bufferOnUnmaps[bufferPtr]; + buffer.unmap(); +}; + +var _emwgpuDelete = ptr => { + delete WebGPU.Internals.jsObjects[ptr]; +}; + +var _emwgpuDeviceCreateBuffer = (devicePtr, descriptor, bufferPtr) => { + var mappedAtCreation = !!(HEAPU32[(((descriptor) + (32)) >> 2)]); + var desc = { + "label": WebGPU.makeStringFromOptionalStringView(descriptor + 4), + "usage": HEAPU32[(((descriptor) + (16)) >> 2)], + "size": readI53FromI64((descriptor) + (24)), + "mappedAtCreation": mappedAtCreation + }; + var device = WebGPU.getJsObject(devicePtr); + var buffer; + try { + buffer = device.createBuffer(desc); + } catch (ex) { + // The only exception should be RangeError if mapping at creation ran out of memory. + return false; + } + WebGPU.Internals.jsObjectInsert(bufferPtr, buffer); + if (mappedAtCreation) { + WebGPU.Internals.bufferOnUnmaps[bufferPtr] = []; + } + return true; +}; + +var _emwgpuDeviceCreateComputePipelineAsync = function(devicePtr, futureId_low, futureId_high, descriptor, pipelinePtr) { + var futureId = convertI32PairToI53Checked(futureId_low, futureId_high); + var desc = WebGPU.makeComputePipelineDesc(descriptor); + var device = WebGPU.getJsObject(devicePtr); + // createComputePipelineAsync + WebGPU.Internals.futureInsert(futureId, device.createComputePipelineAsync(desc).then(pipeline => { + // createComputePipelineAsync fulfilled + callUserCallback(() => { + WebGPU.Internals.jsObjectInsert(pipelinePtr, pipeline); + _emwgpuOnCreateComputePipelineCompleted(futureId, 1, pipelinePtr, 0); + }); + }, pipelineError => { + // createComputePipelineAsync rejected + callUserCallback(() => { + var sp = stackSave(); + var messagePtr = stringToUTF8OnStack(pipelineError.message); + var status = pipelineError.reason === "validation" ? 3 : pipelineError.reason === "internal" ? 4 : 0; + _emwgpuOnCreateComputePipelineCompleted(futureId, status, pipelinePtr, messagePtr); + stackRestore(sp); + }); + })); +}; + +var _emwgpuDeviceCreateRenderPipelineAsync = function(devicePtr, futureId_low, futureId_high, descriptor, pipelinePtr) { + var futureId = convertI32PairToI53Checked(futureId_low, futureId_high); + var desc = WebGPU.makeRenderPipelineDesc(descriptor); + var device = WebGPU.getJsObject(devicePtr); + // createRenderPipelineAsync + WebGPU.Internals.futureInsert(futureId, device.createRenderPipelineAsync(desc).then(pipeline => { + // createRenderPipelineAsync fulfilled + callUserCallback(() => { + WebGPU.Internals.jsObjectInsert(pipelinePtr, pipeline); + _emwgpuOnCreateRenderPipelineCompleted(futureId, 1, pipelinePtr, 0); + }); + }, pipelineError => { + // createRenderPipelineAsync rejected + callUserCallback(() => { + var sp = stackSave(); + var messagePtr = stringToUTF8OnStack(pipelineError.message); + var status = pipelineError.reason === "validation" ? 3 : pipelineError.reason === "internal" ? 4 : 0; + _emwgpuOnCreateRenderPipelineCompleted(futureId, status, pipelinePtr, messagePtr); + stackRestore(sp); + }); + })); +}; + +var _emwgpuDeviceCreateShaderModule = (devicePtr, descriptor, shaderModulePtr) => { + var nextInChainPtr = HEAPU32[((descriptor) >> 2)]; + var sType = HEAP32[(((nextInChainPtr) + (4)) >> 2)]; + var desc = { + "label": WebGPU.makeStringFromOptionalStringView(descriptor + 4), + "code": "" + }; + switch (sType) { + case 2: + { + desc["code"] = WebGPU.makeStringFromStringView(nextInChainPtr + 8); + break; + } + } + var device = WebGPU.getJsObject(devicePtr); + WebGPU.Internals.jsObjectInsert(shaderModulePtr, device.createShaderModule(desc)); +}; + +var _emwgpuDeviceDestroy = devicePtr => { + const device = WebGPU.getJsObject(devicePtr); + // Remove the onuncapturederror handler which holds a pointer to the WGPUDevice. + device.onuncapturederror = null; + device.destroy(); +}; + +var _emwgpuWaitAny = (futurePtr, futureCount, timeoutMSPtr) => { + abort("TODO: Implement asyncify-free WaitAny for timeout=0"); +}; + +var ENV = {}; + +var getExecutableName = () => thisProgram || "./this.program"; + +var getEnvStrings = () => { + if (!getEnvStrings.strings) { + // Default values. + // Browser language detection #8751 + var lang = (globalThis.navigator?.language ?? "C").replace("-", "_") + ".UTF-8"; + var env = { + "USER": "web_user", + "LOGNAME": "web_user", + "PATH": "/", + "PWD": "/", + "HOME": "/home/web_user", + "LANG": lang, + "_": getExecutableName() + }; + // Apply the user-provided values, if any. + for (var x in ENV) { + // x is a key in ENV; if ENV[x] is undefined, that means it was + // explicitly set to be so. We allow user code to do that to + // force variables with default values to remain unset. + if (ENV[x] === undefined) delete env[x]; else env[x] = ENV[x]; + } + var strings = []; + for (var x in env) { + strings.push(`${x}=${env[x]}`); + } + getEnvStrings.strings = strings; + } + return getEnvStrings.strings; +}; + +var _environ_get = (__environ, environ_buf) => { + var bufSize = 0; + var envp = 0; + for (var string of getEnvStrings()) { + var ptr = environ_buf + bufSize; + HEAPU32[(((__environ) + (envp)) >> 2)] = ptr; + bufSize += stringToUTF8(string, ptr, Infinity) + 1; + envp += 4; + } + return 0; +}; + +var _environ_sizes_get = (penviron_count, penviron_buf_size) => { + var strings = getEnvStrings(); + HEAPU32[((penviron_count) >> 2)] = strings.length; + var bufSize = 0; + for (var string of strings) { + bufSize += lengthBytesUTF8(string) + 1; + } + HEAPU32[((penviron_buf_size) >> 2)] = bufSize; + return 0; +}; + +function _fd_close(fd) { + try { + var stream = SYSCALLS.getStreamFromFD(fd); + FS.close(stream); + return 0; + } catch (e) { + if (typeof FS == "undefined" || !(e.name === "ErrnoError")) throw e; + return e.errno; + } +} + +/** @param {number=} offset */ var doReadv = (stream, iov, iovcnt, offset) => { + var ret = 0; + for (var i = 0; i < iovcnt; i++) { + var ptr = HEAPU32[((iov) >> 2)]; + var len = HEAPU32[(((iov) + (4)) >> 2)]; + iov += 8; + var curr = FS.read(stream, HEAP8, ptr, len, offset); + if (curr < 0) return -1; + ret += curr; + if (curr < len) break; + // nothing more to read + if (typeof offset != "undefined") { + offset += curr; + } + } + return ret; +}; + +function _fd_read(fd, iov, iovcnt, pnum) { + try { + var stream = SYSCALLS.getStreamFromFD(fd); + var num = doReadv(stream, iov, iovcnt); + HEAPU32[((pnum) >> 2)] = num; + return 0; + } catch (e) { + if (typeof FS == "undefined" || !(e.name === "ErrnoError")) throw e; + return e.errno; + } +} + +function _fd_seek(fd, offset_low, offset_high, whence, newOffset) { + var offset = convertI32PairToI53Checked(offset_low, offset_high); + try { + if (isNaN(offset)) return 61; + var stream = SYSCALLS.getStreamFromFD(fd); + FS.llseek(stream, offset, whence); + (tempI64 = [ stream.position >>> 0, (tempDouble = stream.position, (+(Math.abs(tempDouble))) >= 1 ? (tempDouble > 0 ? (+(Math.floor((tempDouble) / 4294967296))) >>> 0 : (~~((+(Math.ceil((tempDouble - +(((~~(tempDouble))) >>> 0)) / 4294967296))))) >>> 0) : 0) ], + HEAP32[((newOffset) >> 2)] = tempI64[0], HEAP32[(((newOffset) + (4)) >> 2)] = tempI64[1]); + if (stream.getdents && offset === 0 && whence === 0) stream.getdents = null; + // reset readdir state + return 0; + } catch (e) { + if (typeof FS == "undefined" || !(e.name === "ErrnoError")) throw e; + return e.errno; + } +} + +/** @param {number=} offset */ var doWritev = (stream, iov, iovcnt, offset) => { + var ret = 0; + for (var i = 0; i < iovcnt; i++) { + var ptr = HEAPU32[((iov) >> 2)]; + var len = HEAPU32[(((iov) + (4)) >> 2)]; + iov += 8; + var curr = FS.write(stream, HEAP8, ptr, len, offset); + if (curr < 0) return -1; + ret += curr; + if (curr < len) { + // No more space to write. + break; + } + if (typeof offset != "undefined") { + offset += curr; + } + } + return ret; +}; + +function _fd_write(fd, iov, iovcnt, pnum) { + try { + var stream = SYSCALLS.getStreamFromFD(fd); + var num = doWritev(stream, iov, iovcnt); + HEAPU32[((pnum) >> 2)] = num; + return 0; + } catch (e) { + if (typeof FS == "undefined" || !(e.name === "ErrnoError")) throw e; + return e.errno; + } +} + +var _emscripten_glActiveTexture = x0 => GLctx.activeTexture(x0); + +var _glActiveTexture = _emscripten_glActiveTexture; + +var _emscripten_glAttachShader = (program, shader) => { + GLctx.attachShader(GL.programs[program], GL.shaders[shader]); +}; + +var _glAttachShader = _emscripten_glAttachShader; + +var _emscripten_glBindAttribLocation = (program, index, name) => { + GLctx.bindAttribLocation(GL.programs[program], index, UTF8ToString(name)); +}; + +var _glBindAttribLocation = _emscripten_glBindAttribLocation; + +var _emscripten_glBindBuffer = (target, buffer) => { + // Calling glBindBuffer with an unknown buffer will implicitly create a + // new one. Here we bypass `GL.counter` and directly using the ID passed + // in. + if (buffer && !GL.buffers[buffer]) { + var b = GLctx.createBuffer(); + b.name = buffer; + GL.buffers[buffer] = b; + } + if (target == 34962) { + GLctx.currentArrayBufferBinding = buffer; + } else if (target == 34963) { + GLctx.currentElementArrayBufferBinding = buffer; + } + if (target == 35051) { + // In WebGL 2 glReadPixels entry point, we need to use a different WebGL 2 + // API function call when a buffer is bound to + // GL_PIXEL_PACK_BUFFER_BINDING point, so must keep track whether that + // binding point is non-null to know what is the proper API function to + // call. + GLctx.currentPixelPackBufferBinding = buffer; + } else if (target == 35052) { + // In WebGL 2 gl(Compressed)Tex(Sub)Image[23]D entry points, we need to + // use a different WebGL 2 API function call when a buffer is bound to + // GL_PIXEL_UNPACK_BUFFER_BINDING point, so must keep track whether that + // binding point is non-null to know what is the proper API function to + // call. + GLctx.currentPixelUnpackBufferBinding = buffer; + } + GLctx.bindBuffer(target, GL.buffers[buffer]); +}; + +var _glBindBuffer = _emscripten_glBindBuffer; + +var _emscripten_glBindBufferBase = (target, index, buffer) => { + GLctx.bindBufferBase(target, index, GL.buffers[buffer]); +}; + +var _glBindBufferBase = _emscripten_glBindBufferBase; + +var _emscripten_glBindFramebuffer = (target, framebuffer) => { + GLctx.bindFramebuffer(target, GL.framebuffers[framebuffer]); +}; + +var _glBindFramebuffer = _emscripten_glBindFramebuffer; + +var _emscripten_glBindTexture = (target, texture) => { + GLctx.bindTexture(target, GL.textures[texture]); +}; + +var _glBindTexture = _emscripten_glBindTexture; + +var _emscripten_glBindVertexArray = vao => { + GLctx.bindVertexArray(GL.vaos[vao]); + var ibo = GLctx.getParameter(34965); + GLctx.currentElementArrayBufferBinding = ibo ? (ibo.name | 0) : 0; +}; + +var _glBindVertexArray = _emscripten_glBindVertexArray; + +var _emscripten_glBlendEquation = x0 => GLctx.blendEquation(x0); + +var _glBlendEquation = _emscripten_glBlendEquation; + +var _emscripten_glBlendFunc = (x0, x1) => GLctx.blendFunc(x0, x1); + +var _glBlendFunc = _emscripten_glBlendFunc; + +var _emscripten_glBufferData = (target, size, data, usage) => { + if (GL.currentContext.version >= 2) { + // If size is zero, WebGL would interpret uploading the whole input + // arraybuffer (starting from given offset), which would not make sense in + // WebAssembly, so avoid uploading if size is zero. However we must still + // call bufferData to establish a backing storage of zero bytes. + if (data && size) { + GLctx.bufferData(target, HEAPU8, usage, data, size); + } else { + GLctx.bufferData(target, size, usage); + } + return; + } + // N.b. here first form specifies a heap subarray, second form an integer + // size, so the ?: code here is polymorphic. It is advised to avoid + // randomly mixing both uses in calling code, to avoid any potential JS + // engine JIT issues. + GLctx.bufferData(target, data ? HEAPU8.subarray(data, data + size) : size, usage); +}; + +var _glBufferData = _emscripten_glBufferData; + +var _emscripten_glClear = x0 => GLctx.clear(x0); + +var _glClear = _emscripten_glClear; + +var _emscripten_glClearColor = (x0, x1, x2, x3) => GLctx.clearColor(x0, x1, x2, x3); + +var _glClearColor = _emscripten_glClearColor; + +var convertI32PairToI53 = (lo, hi) => (lo >>> 0) + hi * 4294967296; + +var _emscripten_glClientWaitSync = (sync, flags, timeout_low, timeout_high) => { + // WebGL2 vs GLES3 differences: in GLES3, the timeout parameter is a uint64, where 0xFFFFFFFFFFFFFFFFULL means GL_TIMEOUT_IGNORED. + // In JS, there's no 64-bit value types, so instead timeout is taken to be signed, and GL_TIMEOUT_IGNORED is given value -1. + // Inherently the value accepted in the timeout is lossy, and can't take in arbitrary u64 bit pattern (but most likely doesn't matter) + // See https://www.khronos.org/registry/webgl/specs/latest/2.0/#5.15 + var timeout = convertI32PairToI53(timeout_low, timeout_high); + return GLctx.clientWaitSync(GL.syncs[sync], flags, timeout); +}; + +var _glClientWaitSync = _emscripten_glClientWaitSync; + +var _emscripten_glColorMask = (red, green, blue, alpha) => { + GLctx.colorMask(!!red, !!green, !!blue, !!alpha); +}; + +var _glColorMask = _emscripten_glColorMask; + +var _emscripten_glCompileShader = shader => { + GLctx.compileShader(GL.shaders[shader]); +}; + +var _glCompileShader = _emscripten_glCompileShader; + +var _emscripten_glCreateProgram = () => { + var id = GL.getNewId(GL.programs); + var program = GLctx.createProgram(); + // Store additional information needed for each shader program: + program.name = id; + // Lazy cache results of + // glGetProgramiv(GL_ACTIVE_UNIFORM_MAX_LENGTH/GL_ACTIVE_ATTRIBUTE_MAX_LENGTH/GL_ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH) + program.maxUniformLength = program.maxAttributeLength = program.maxUniformBlockNameLength = 0; + program.uniformIdCounter = 1; + GL.programs[id] = program; + return id; +}; + +var _glCreateProgram = _emscripten_glCreateProgram; + +var _emscripten_glCreateShader = shaderType => { + var id = GL.getNewId(GL.shaders); + GL.shaders[id] = GLctx.createShader(shaderType); + return id; +}; + +var _glCreateShader = _emscripten_glCreateShader; + +var _emscripten_glDeleteBuffers = (n, buffers) => { + for (var i = 0; i < n; i++) { + var id = HEAP32[(((buffers) + (i * 4)) >> 2)]; + var buffer = GL.buffers[id]; + // From spec: "glDeleteBuffers silently ignores 0's and names that do not + // correspond to existing buffer objects." + if (!buffer) continue; + GLctx.deleteBuffer(buffer); + buffer.name = 0; + GL.buffers[id] = null; + if (id == GLctx.currentArrayBufferBinding) GLctx.currentArrayBufferBinding = 0; + if (id == GLctx.currentElementArrayBufferBinding) GLctx.currentElementArrayBufferBinding = 0; + if (id == GLctx.currentPixelPackBufferBinding) GLctx.currentPixelPackBufferBinding = 0; + if (id == GLctx.currentPixelUnpackBufferBinding) GLctx.currentPixelUnpackBufferBinding = 0; + } +}; + +var _glDeleteBuffers = _emscripten_glDeleteBuffers; + +var _emscripten_glDeleteFramebuffers = (n, framebuffers) => { + for (var i = 0; i < n; ++i) { + var id = HEAP32[(((framebuffers) + (i * 4)) >> 2)]; + var framebuffer = GL.framebuffers[id]; + if (!framebuffer) continue; + // GL spec: "glDeleteFramebuffers silently ignores 0s and names that do not correspond to existing framebuffer objects". + GLctx.deleteFramebuffer(framebuffer); + framebuffer.name = 0; + GL.framebuffers[id] = null; + } +}; + +var _glDeleteFramebuffers = _emscripten_glDeleteFramebuffers; + +var _emscripten_glDeleteProgram = id => { + if (!id) return; + var program = GL.programs[id]; + if (!program) { + // glDeleteProgram actually signals an error when deleting a nonexisting + // object, unlike some other GL delete functions. + GL.recordError(1281); + return; + } + GLctx.deleteProgram(program); + program.name = 0; + GL.programs[id] = null; +}; + +var _glDeleteProgram = _emscripten_glDeleteProgram; + +var _emscripten_glDeleteShader = id => { + if (!id) return; + var shader = GL.shaders[id]; + if (!shader) { + // glDeleteShader actually signals an error when deleting a nonexisting + // object, unlike some other GL delete functions. + GL.recordError(1281); + return; + } + GLctx.deleteShader(shader); + GL.shaders[id] = null; +}; + +var _glDeleteShader = _emscripten_glDeleteShader; + +var _emscripten_glDeleteSync = id => { + if (!id) return; + var sync = GL.syncs[id]; + if (!sync) { + // glDeleteSync signals an error when deleting a nonexisting object, unlike some other GL delete functions. + GL.recordError(1281); + return; + } + GLctx.deleteSync(sync); + sync.name = 0; + GL.syncs[id] = null; +}; + +var _glDeleteSync = _emscripten_glDeleteSync; + +var _emscripten_glDeleteTextures = (n, textures) => { + for (var i = 0; i < n; i++) { + var id = HEAP32[(((textures) + (i * 4)) >> 2)]; + var texture = GL.textures[id]; + // GL spec: "glDeleteTextures silently ignores 0s and names that do not + // correspond to existing textures". + if (!texture) continue; + GLctx.deleteTexture(texture); + texture.name = 0; + GL.textures[id] = null; + } +}; + +var _glDeleteTextures = _emscripten_glDeleteTextures; + +var _emscripten_glDeleteVertexArrays = (n, vaos) => { + for (var i = 0; i < n; i++) { + var id = HEAP32[(((vaos) + (i * 4)) >> 2)]; + GLctx.deleteVertexArray(GL.vaos[id]); + GL.vaos[id] = null; + } +}; + +var _glDeleteVertexArrays = _emscripten_glDeleteVertexArrays; + +var _emscripten_glDetachShader = (program, shader) => { + GLctx.detachShader(GL.programs[program], GL.shaders[shader]); +}; + +var _glDetachShader = _emscripten_glDetachShader; + +var _emscripten_glDisable = x0 => GLctx.disable(x0); + +var _glDisable = _emscripten_glDisable; + +var _emscripten_glDisableVertexAttribArray = index => { + var cb = GL.currentContext.clientBuffers[index]; + cb.enabled = false; + GLctx.disableVertexAttribArray(index); +}; + +var _glDisableVertexAttribArray = _emscripten_glDisableVertexAttribArray; + +var _emscripten_glDrawArrays = (mode, first, count) => { + // bind any client-side buffers + GL.preDrawHandleClientVertexAttribBindings(first + count); + GLctx.drawArrays(mode, first, count); + GL.postDrawHandleClientVertexAttribBindings(); +}; + +var _glDrawArrays = _emscripten_glDrawArrays; + +var tempFixedLengthArray = []; + +var _emscripten_glDrawBuffers = (n, bufs) => { + var bufArray = tempFixedLengthArray[n]; + for (var i = 0; i < n; i++) { + bufArray[i] = HEAP32[(((bufs) + (i * 4)) >> 2)]; + } + GLctx.drawBuffers(bufArray); +}; + +var _glDrawBuffers = _emscripten_glDrawBuffers; + +var _emscripten_glEnable = x0 => GLctx.enable(x0); + +var _glEnable = _emscripten_glEnable; + +var _emscripten_glEnableVertexAttribArray = index => { + var cb = GL.currentContext.clientBuffers[index]; + cb.enabled = true; + GLctx.enableVertexAttribArray(index); +}; + +var _glEnableVertexAttribArray = _emscripten_glEnableVertexAttribArray; + +var _emscripten_glFenceSync = (condition, flags) => { + var sync = GLctx.fenceSync(condition, flags); + if (sync) { + var id = GL.getNewId(GL.syncs); + sync.name = id; + GL.syncs[id] = sync; + return id; + } + return 0; +}; + +var _glFenceSync = _emscripten_glFenceSync; + +var _emscripten_glFinish = () => GLctx.finish(); + +var _glFinish = _emscripten_glFinish; + +var _emscripten_glFlush = () => GLctx.flush(); + +var _glFlush = _emscripten_glFlush; + +var _emscripten_glFramebufferTexture2D = (target, attachment, textarget, texture, level) => { + GLctx.framebufferTexture2D(target, attachment, textarget, GL.textures[texture], level); +}; + +var _glFramebufferTexture2D = _emscripten_glFramebufferTexture2D; + +var _emscripten_glFramebufferTextureLayer = (target, attachment, texture, level, layer) => { + GLctx.framebufferTextureLayer(target, attachment, GL.textures[texture], level, layer); +}; + +var _glFramebufferTextureLayer = _emscripten_glFramebufferTextureLayer; + +var _emscripten_glGenBuffers = (n, buffers) => { + GL.genObject(n, buffers, "createBuffer", GL.buffers); +}; + +var _glGenBuffers = _emscripten_glGenBuffers; + +var _emscripten_glGenFramebuffers = (n, ids) => { + GL.genObject(n, ids, "createFramebuffer", GL.framebuffers); +}; + +var _glGenFramebuffers = _emscripten_glGenFramebuffers; + +var _emscripten_glGenTextures = (n, textures) => { + GL.genObject(n, textures, "createTexture", GL.textures); +}; + +var _glGenTextures = _emscripten_glGenTextures; + +var _emscripten_glGenVertexArrays = (n, arrays) => { + GL.genObject(n, arrays, "createVertexArray", GL.vaos); +}; + +var _glGenVertexArrays = _emscripten_glGenVertexArrays; + +var _emscripten_glGetAttribLocation = (program, name) => GLctx.getAttribLocation(GL.programs[program], UTF8ToString(name)); + +var _glGetAttribLocation = _emscripten_glGetAttribLocation; + +var _emscripten_glGetError = () => { + var error = GLctx.getError() || GL.lastError; + GL.lastError = 0; + return error; +}; + +var _glGetError = _emscripten_glGetError; + +var webglGetExtensions = () => { + var exts = getEmscriptenSupportedExtensions(GLctx); + exts = exts.concat(exts.map(e => "GL_" + e)); + return exts; +}; + +var emscriptenWebGLGet = (name_, p, type) => { + // Guard against user passing a null pointer. + // Note that GLES2 spec does not say anything about how passing a null + // pointer should be treated. Testing on desktop core GL 3, the application + // crashes on glGetIntegerv to a null pointer, but better to report an error + // instead of doing anything random. + if (!p) { + GL.recordError(1281); + return; + } + var ret = undefined; + switch (name_) { + // Handle a few trivial GLES values + case 36346: + // GL_SHADER_COMPILER + ret = 1; + break; + + case 36344: + // GL_SHADER_BINARY_FORMATS + if (type != 0 && type != 1) { + GL.recordError(1280); + } + // Do not write anything to the out pointer, since no binary formats are + // supported. + return; + + case 34814: + // GL_NUM_PROGRAM_BINARY_FORMATS + case 36345: + // GL_NUM_SHADER_BINARY_FORMATS + ret = 0; + break; + + case 34466: + // GL_NUM_COMPRESSED_TEXTURE_FORMATS + // WebGL doesn't have GL_NUM_COMPRESSED_TEXTURE_FORMATS (it's obsolete + // since GL_COMPRESSED_TEXTURE_FORMATS returns a JS array that can be + // queried for length), so implement it ourselves to allow C++ GLES2 + // code to get the length. + var formats = GLctx.getParameter(34467); + ret = formats ? formats.length : 0; + break; + + case 33309: + // GL_NUM_EXTENSIONS + if (GL.currentContext.version < 2) { + // Calling GLES3/WebGL2 function with a GLES2/WebGL1 context + GL.recordError(1282); + return; + } + ret = webglGetExtensions().length; + break; + + case 33307: + // GL_MAJOR_VERSION + case 33308: + // GL_MINOR_VERSION + if (GL.currentContext.version < 2) { + GL.recordError(1280); + // GL_INVALID_ENUM + return; + } + ret = name_ == 33307 ? 3 : 0; + // return version 3.0 + break; + } + if (ret === undefined) { + var result = GLctx.getParameter(name_); + switch (typeof result) { + case "number": + ret = result; + break; + + case "boolean": + ret = result ? 1 : 0; + break; + + case "string": + GL.recordError(1280); + // GL_INVALID_ENUM + return; + + case "object": + if (result === null) { + // null is a valid result for some (e.g., which buffer is bound - + // perhaps nothing is bound), but otherwise can mean an invalid + // name_, which we need to report as an error + switch (name_) { + case 34964: + // ARRAY_BUFFER_BINDING + case 35725: + // CURRENT_PROGRAM + case 34965: + // ELEMENT_ARRAY_BUFFER_BINDING + case 36006: + // FRAMEBUFFER_BINDING or DRAW_FRAMEBUFFER_BINDING + case 36007: + // RENDERBUFFER_BINDING + case 32873: + // TEXTURE_BINDING_2D + case 34229: + // WebGL 2 GL_VERTEX_ARRAY_BINDING, or WebGL 1 extension OES_vertex_array_object GL_VERTEX_ARRAY_BINDING_OES + case 36662: + // COPY_READ_BUFFER_BINDING or COPY_READ_BUFFER + case 36663: + // COPY_WRITE_BUFFER_BINDING or COPY_WRITE_BUFFER + case 35053: + // PIXEL_PACK_BUFFER_BINDING + case 35055: + // PIXEL_UNPACK_BUFFER_BINDING + case 36010: + // READ_FRAMEBUFFER_BINDING + case 35097: + // SAMPLER_BINDING + case 35869: + // TEXTURE_BINDING_2D_ARRAY + case 32874: + // TEXTURE_BINDING_3D + case 36389: + // TRANSFORM_FEEDBACK_BINDING + case 35983: + // TRANSFORM_FEEDBACK_BUFFER_BINDING + case 35368: + // UNIFORM_BUFFER_BINDING + case 34068: + { + // TEXTURE_BINDING_CUBE_MAP + ret = 0; + break; + } + + default: + { + GL.recordError(1280); + // GL_INVALID_ENUM + return; + } + } + } else if (result instanceof Float32Array || result instanceof Uint32Array || result instanceof Int32Array || result instanceof Array) { + for (var i = 0; i < result.length; ++i) { + switch (type) { + case 0: + HEAP32[(((p) + (i * 4)) >> 2)] = result[i]; + break; + + case 2: + HEAPF32[(((p) + (i * 4)) >> 2)] = result[i]; + break; + + case 4: + HEAP8[(p) + (i)] = result[i] ? 1 : 0; + break; + } + } + return; + } else { + try { + ret = result.name | 0; + } catch (e) { + GL.recordError(1280); + // GL_INVALID_ENUM + err(`GL_INVALID_ENUM in glGet${type}v: Unknown object returned from WebGL getParameter(${name_})! (error: ${e})`); + return; + } + } + break; + + default: + GL.recordError(1280); + // GL_INVALID_ENUM + err(`GL_INVALID_ENUM in glGet${type}v: Native code calling glGet${type}v(${name_}) and it returns ${result} of type ${typeof (result)}!`); + return; + } + } + switch (type) { + case 1: + writeI53ToI64(p, ret); + break; + + case 0: + HEAP32[((p) >> 2)] = ret; + break; + + case 2: + HEAPF32[((p) >> 2)] = ret; + break; + + case 4: + HEAP8[p] = ret ? 1 : 0; + break; + } +}; + +var _emscripten_glGetFloatv = (name_, p) => emscriptenWebGLGet(name_, p, 2); + +var _glGetFloatv = _emscripten_glGetFloatv; + +var _emscripten_glGetIntegerv = (name_, p) => emscriptenWebGLGet(name_, p, 0); + +var _glGetIntegerv = _emscripten_glGetIntegerv; + +var _emscripten_glGetProgramiv = (program, pname, p) => { + if (!p) { + // GLES2 specification does not specify how to behave if p is a null + // pointer. Since calling this function does not make sense if p == null, + // issue a GL error to notify user about it. + GL.recordError(1281); + return; + } + if (program >= GL.counter) { + GL.recordError(1281); + return; + } + program = GL.programs[program]; + if (pname == 35716) { + // GL_INFO_LOG_LENGTH + var log = GLctx.getProgramInfoLog(program); + if (log === null) log = "(unknown error)"; + HEAP32[((p) >> 2)] = log.length + 1; + } else if (pname == 35719) { + if (!program.maxUniformLength) { + var numActiveUniforms = GLctx.getProgramParameter(program, 35718); + for (var i = 0; i < numActiveUniforms; ++i) { + program.maxUniformLength = Math.max(program.maxUniformLength, GLctx.getActiveUniform(program, i).name.length + 1); + } + } + HEAP32[((p) >> 2)] = program.maxUniformLength; + } else if (pname == 35722) { + if (!program.maxAttributeLength) { + var numActiveAttributes = GLctx.getProgramParameter(program, 35721); + for (var i = 0; i < numActiveAttributes; ++i) { + program.maxAttributeLength = Math.max(program.maxAttributeLength, GLctx.getActiveAttrib(program, i).name.length + 1); + } + } + HEAP32[((p) >> 2)] = program.maxAttributeLength; + } else if (pname == 35381) { + if (!program.maxUniformBlockNameLength) { + var numActiveUniformBlocks = GLctx.getProgramParameter(program, 35382); + for (var i = 0; i < numActiveUniformBlocks; ++i) { + program.maxUniformBlockNameLength = Math.max(program.maxUniformBlockNameLength, GLctx.getActiveUniformBlockName(program, i).length + 1); + } + } + HEAP32[((p) >> 2)] = program.maxUniformBlockNameLength; + } else { + HEAP32[((p) >> 2)] = GLctx.getProgramParameter(program, pname); + } +}; + +var _glGetProgramiv = _emscripten_glGetProgramiv; + +var _emscripten_glGetShaderInfoLog = (shader, maxLength, length, infoLog) => { + var log = GLctx.getShaderInfoLog(GL.shaders[shader]); + if (log === null) log = "(unknown error)"; + var numBytesWrittenExclNull = (maxLength > 0 && infoLog) ? stringToUTF8(log, infoLog, maxLength) : 0; + if (length) HEAP32[((length) >> 2)] = numBytesWrittenExclNull; +}; + +var _glGetShaderInfoLog = _emscripten_glGetShaderInfoLog; + +var _emscripten_glGetShaderiv = (shader, pname, p) => { + if (!p) { + // GLES2 specification does not specify how to behave if p is a null + // pointer. Since calling this function does not make sense if p == null, + // issue a GL error to notify user about it. + GL.recordError(1281); + return; + } + if (pname == 35716) { + // GL_INFO_LOG_LENGTH + var log = GLctx.getShaderInfoLog(GL.shaders[shader]); + if (log === null) log = "(unknown error)"; + // The GLES2 specification says that if the shader has an empty info log, + // a value of 0 is returned. Otherwise the log has a null char appended. + // (An empty string is falsey, so we can just check that instead of + // looking at log.length.) + var logLength = log ? log.length + 1 : 0; + HEAP32[((p) >> 2)] = logLength; + } else if (pname == 35720) { + // GL_SHADER_SOURCE_LENGTH + var source = GLctx.getShaderSource(GL.shaders[shader]); + // source may be a null, or the empty string, both of which are falsey + // values that we report a 0 length for. + var sourceLength = source ? source.length + 1 : 0; + HEAP32[((p) >> 2)] = sourceLength; + } else { + HEAP32[((p) >> 2)] = GLctx.getShaderParameter(GL.shaders[shader], pname); + } +}; + +var _glGetShaderiv = _emscripten_glGetShaderiv; + +var _emscripten_glGetString = name_ => { + var ret = GL.stringCache[name_]; + if (!ret) { + switch (name_) { + case 7939: + ret = stringToNewUTF8(webglGetExtensions().join(" ")); + break; + + case 7936: + case 7937: + case 37445: + case 37446: + var s = GLctx.getParameter(name_); + if (!s) { + GL.recordError(1280); + } + ret = s ? stringToNewUTF8(s) : 0; + break; + + case 7938: + var webGLVersion = GLctx.getParameter(7938); + // return GLES version string corresponding to the version of the WebGL context + var glVersion = `OpenGL ES 2.0 (${webGLVersion})`; + if (GL.currentContext.version >= 2) glVersion = `OpenGL ES 3.0 (${webGLVersion})`; + ret = stringToNewUTF8(glVersion); + break; + + case 35724: + var glslVersion = GLctx.getParameter(35724); + // extract the version number 'N.M' from the string 'WebGL GLSL ES N.M ...' + var ver_re = /^WebGL GLSL ES ([0-9]\.[0-9][0-9]?)(?:$| .*)/; + var ver_num = glslVersion.match(ver_re); + if (ver_num !== null) { + if (ver_num[1].length == 3) ver_num[1] = ver_num[1] + "0"; + // ensure minor version has 2 digits + glslVersion = `OpenGL ES GLSL ES ${ver_num[1]} (${glslVersion})`; + } + ret = stringToNewUTF8(glslVersion); + break; + + default: + GL.recordError(1280); + } + GL.stringCache[name_] = ret; + } + return ret; +}; + +var _glGetString = _emscripten_glGetString; + +var _emscripten_glGetUniformBlockIndex = (program, uniformBlockName) => GLctx.getUniformBlockIndex(GL.programs[program], UTF8ToString(uniformBlockName)); + +var _glGetUniformBlockIndex = _emscripten_glGetUniformBlockIndex; + +/** @suppress {checkTypes} */ var jstoi_q = str => parseInt(str); + +/** @noinline */ var webglGetLeftBracePos = name => name.slice(-1) == "]" && name.lastIndexOf("["); + +var webglPrepareUniformLocationsBeforeFirstUse = program => { + var uniformLocsById = program.uniformLocsById, // Maps GLuint -> WebGLUniformLocation + uniformSizeAndIdsByName = program.uniformSizeAndIdsByName, // Maps name -> [uniform array length, GLuint] + i, j; + // On the first time invocation of glGetUniformLocation on this shader program: + // initialize cache data structures and discover which uniforms are arrays. + if (!uniformLocsById) { + // maps GLint integer locations to WebGLUniformLocations + program.uniformLocsById = uniformLocsById = {}; + // maps integer locations back to uniform name strings, so that we can lazily fetch uniform array locations + program.uniformArrayNamesById = {}; + var numActiveUniforms = GLctx.getProgramParameter(program, 35718); + for (i = 0; i < numActiveUniforms; ++i) { + var u = GLctx.getActiveUniform(program, i); + var nm = u.name; + var sz = u.size; + var lb = webglGetLeftBracePos(nm); + var arrayName = lb > 0 ? nm.slice(0, lb) : nm; + // Assign a new location. + var id = program.uniformIdCounter; + program.uniformIdCounter += sz; + // Eagerly get the location of the uniformArray[0] base element. + // The remaining indices >0 will be left for lazy evaluation to + // improve performance. Those may never be needed to fetch, if the + // application fills arrays always in full starting from the first + // element of the array. + uniformSizeAndIdsByName[arrayName] = [ sz, id ]; + // Store placeholder integers in place that highlight that these + // >0 index locations are array indices pending population. + for (j = 0; j < sz; ++j) { + uniformLocsById[id] = j; + program.uniformArrayNamesById[id++] = arrayName; + } + } + } +}; + +var _emscripten_glGetUniformLocation = (program, name) => { + name = UTF8ToString(name); + if (program = GL.programs[program]) { + webglPrepareUniformLocationsBeforeFirstUse(program); + var uniformLocsById = program.uniformLocsById; + // Maps GLuint -> WebGLUniformLocation + var arrayIndex = 0; + var uniformBaseName = name; + // Invariant: when populating integer IDs for uniform locations, we must + // maintain the precondition that arrays reside in contiguous addresses, + // i.e. for a 'vec4 colors[10];', colors[4] must be at location + // colors[0]+4. However, user might call glGetUniformLocation(program, + // "colors") for an array, so we cannot discover based on the user input + // arguments whether the uniform we are dealing with is an array. The only + // way to discover which uniforms are arrays is to enumerate over all the + // active uniforms in the program. + var leftBrace = webglGetLeftBracePos(name); + // If user passed an array accessor "[index]", parse the array index off the accessor. + if (leftBrace > 0) { + arrayIndex = jstoi_q(name.slice(leftBrace + 1)) >>> 0; + // "index]", coerce parseInt(']') with >>>0 to treat "foo[]" as "foo[0]" and foo[-1] as unsigned out-of-bounds. + uniformBaseName = name.slice(0, leftBrace); + } + // Have we cached the location of this uniform before? + // A pair [array length, GLint of the uniform location] + var sizeAndId = program.uniformSizeAndIdsByName[uniformBaseName]; + // If a uniform with this name exists, and if its index is within the + // array limits (if it's even an array), query the WebGLlocation, or + // return an existing cached location. + if (sizeAndId && arrayIndex < sizeAndId[0]) { + arrayIndex += sizeAndId[1]; + // Add the base location of the uniform to the array index offset. + if ((uniformLocsById[arrayIndex] = uniformLocsById[arrayIndex] || GLctx.getUniformLocation(program, name))) { + return arrayIndex; + } + } + } else { + // N.b. we are currently unable to distinguish between GL program IDs that + // never existed vs GL program IDs that have been deleted, so report + // GL_INVALID_VALUE in both cases. + GL.recordError(1281); + } + return -1; +}; + +var _glGetUniformLocation = _emscripten_glGetUniformLocation; + +var _emscripten_glLineWidth = x0 => GLctx.lineWidth(x0); + +var _glLineWidth = _emscripten_glLineWidth; + +var _emscripten_glLinkProgram = program => { + program = GL.programs[program]; + GLctx.linkProgram(program); + // Invalidate earlier computed uniform->ID mappings, those have now become stale + program.uniformLocsById = 0; + // Mark as null-like so that glGetUniformLocation() knows to populate this again. + program.uniformSizeAndIdsByName = {}; +}; + +var _glLinkProgram = _emscripten_glLinkProgram; + +var _emscripten_glPixelStorei = (pname, param) => { + if (pname == 3317) { + GL.unpackAlignment = param; + } else if (pname == 3314) { + GL.unpackRowLength = param; + } + GLctx.pixelStorei(pname, param); +}; + +var _glPixelStorei = _emscripten_glPixelStorei; + +var computeUnpackAlignedImageSize = (width, height, sizePerPixel) => { + function roundedToNextMultipleOf(x, y) { + return (x + y - 1) & -y; + } + var plainRowSize = (GL.unpackRowLength || width) * sizePerPixel; + var alignedRowSize = roundedToNextMultipleOf(plainRowSize, GL.unpackAlignment); + return height * alignedRowSize; +}; + +var colorChannelsInGlTextureFormat = format => { + // Micro-optimizations for size: map format to size by subtracting smallest + // enum value (0x1902) from all values first. Also omit the most common + // size value (1) from the list, which is assumed by formats not on the + // list. + var colorChannels = { + // 0x1902 /* GL_DEPTH_COMPONENT */ - 0x1902: 1, + // 0x1906 /* GL_ALPHA */ - 0x1902: 1, + 5: 3, + 6: 4, + // 0x1909 /* GL_LUMINANCE */ - 0x1902: 1, + 8: 2, + 29502: 3, + 29504: 4, + // 0x1903 /* GL_RED */ - 0x1902: 1, + 26917: 2, + 26918: 2, + // 0x8D94 /* GL_RED_INTEGER */ - 0x1902: 1, + 29846: 3, + 29847: 4 + }; + return colorChannels[format - 6402] || 1; +}; + +var heapObjectForWebGLType = type => { + // Micro-optimization for size: Subtract lowest GL enum number (0x1400/* GL_BYTE */) from type to compare + // smaller values for the heap, for shorter generated code size. + // Also the type HEAPU16 is not tested for explicitly, but any unrecognized type will return out HEAPU16. + // (since most types are HEAPU16) + type -= 5120; + if (type == 0) return HEAP8; + if (type == 1) return HEAPU8; + if (type == 2) return HEAP16; + if (type == 4) return HEAP32; + if (type == 6) return HEAPF32; + if (type == 5 || type == 28922 || type == 28520 || type == 30779 || type == 30782) return HEAPU32; + return HEAPU16; +}; + +var toTypedArrayIndex = (pointer, heap) => pointer >>> (31 - Math.clz32(heap.BYTES_PER_ELEMENT)); + +var emscriptenWebGLGetTexPixelData = (type, format, width, height, pixels, internalFormat) => { + var heap = heapObjectForWebGLType(type); + var sizePerPixel = colorChannelsInGlTextureFormat(format) * heap.BYTES_PER_ELEMENT; + var bytes = computeUnpackAlignedImageSize(width, height, sizePerPixel); + return heap.subarray(toTypedArrayIndex(pixels, heap), toTypedArrayIndex(pixels + bytes, heap)); +}; + +var _emscripten_glReadPixels = (x, y, width, height, format, type, pixels) => { + if (GL.currentContext.version >= 2) { + if (GLctx.currentPixelPackBufferBinding) { + GLctx.readPixels(x, y, width, height, format, type, pixels); + return; + } + var heap = heapObjectForWebGLType(type); + var target = toTypedArrayIndex(pixels, heap); + GLctx.readPixels(x, y, width, height, format, type, heap, target); + return; + } + var pixelData = emscriptenWebGLGetTexPixelData(type, format, width, height, pixels, format); + if (!pixelData) { + GL.recordError(1280); + return; + } + GLctx.readPixels(x, y, width, height, format, type, pixelData); +}; + +var _glReadPixels = _emscripten_glReadPixels; + +var _emscripten_glShaderSource = (shader, count, string, length) => { + var source = GL.getSource(shader, count, string, length); + GLctx.shaderSource(GL.shaders[shader], source); +}; + +var _glShaderSource = _emscripten_glShaderSource; + +var _emscripten_glTexImage2D = (target, level, internalFormat, width, height, border, format, type, pixels) => { + if (GL.currentContext.version >= 2) { + if (GLctx.currentPixelUnpackBufferBinding) { + GLctx.texImage2D(target, level, internalFormat, width, height, border, format, type, pixels); + return; + } + if (pixels) { + var heap = heapObjectForWebGLType(type); + var index = toTypedArrayIndex(pixels, heap); + GLctx.texImage2D(target, level, internalFormat, width, height, border, format, type, heap, index); + return; + } + } + var pixelData = pixels ? emscriptenWebGLGetTexPixelData(type, format, width, height, pixels, internalFormat) : null; + GLctx.texImage2D(target, level, internalFormat, width, height, border, format, type, pixelData); +}; + +var _glTexImage2D = _emscripten_glTexImage2D; + +var _emscripten_glTexParameterf = (x0, x1, x2) => GLctx.texParameterf(x0, x1, x2); + +var _glTexParameterf = _emscripten_glTexParameterf; + +var _emscripten_glTexParameterfv = (target, pname, params) => { + var param = HEAPF32[((params) >> 2)]; + GLctx.texParameterf(target, pname, param); +}; + +var _glTexParameterfv = _emscripten_glTexParameterfv; + +var _emscripten_glTexParameteri = (x0, x1, x2) => GLctx.texParameteri(x0, x1, x2); + +var _glTexParameteri = _emscripten_glTexParameteri; + +var _emscripten_glTexStorage2D = (x0, x1, x2, x3, x4) => GLctx.texStorage2D(x0, x1, x2, x3, x4); + +var _glTexStorage2D = _emscripten_glTexStorage2D; + +var _emscripten_glTexStorage3D = (x0, x1, x2, x3, x4, x5) => GLctx.texStorage3D(x0, x1, x2, x3, x4, x5); + +var _glTexStorage3D = _emscripten_glTexStorage3D; + +var _emscripten_glTexSubImage2D = (target, level, xoffset, yoffset, width, height, format, type, pixels) => { + if (GL.currentContext.version >= 2) { + if (GLctx.currentPixelUnpackBufferBinding) { + GLctx.texSubImage2D(target, level, xoffset, yoffset, width, height, format, type, pixels); + return; + } + if (pixels) { + var heap = heapObjectForWebGLType(type); + GLctx.texSubImage2D(target, level, xoffset, yoffset, width, height, format, type, heap, toTypedArrayIndex(pixels, heap)); + return; + } + } + var pixelData = pixels ? emscriptenWebGLGetTexPixelData(type, format, width, height, pixels, 0) : null; + GLctx.texSubImage2D(target, level, xoffset, yoffset, width, height, format, type, pixelData); +}; + +var _glTexSubImage2D = _emscripten_glTexSubImage2D; + +var _emscripten_glTexSubImage3D = (target, level, xoffset, yoffset, zoffset, width, height, depth, format, type, pixels) => { + if (GLctx.currentPixelUnpackBufferBinding) { + GLctx.texSubImage3D(target, level, xoffset, yoffset, zoffset, width, height, depth, format, type, pixels); + } else if (pixels) { + var heap = heapObjectForWebGLType(type); + GLctx.texSubImage3D(target, level, xoffset, yoffset, zoffset, width, height, depth, format, type, heap, toTypedArrayIndex(pixels, heap)); + } else { + GLctx.texSubImage3D(target, level, xoffset, yoffset, zoffset, width, height, depth, format, type, null); + } +}; + +var _glTexSubImage3D = _emscripten_glTexSubImage3D; + +var webglGetUniformLocation = location => { + var p = GLctx.currentProgram; + if (p) { + var webglLoc = p.uniformLocsById[location]; + // p.uniformLocsById[location] stores either an integer, or a + // WebGLUniformLocation. + // If an integer, we have not yet bound the location, so do it now. The + // integer value specifies the array index we should bind to. + if (typeof webglLoc == "number") { + p.uniformLocsById[location] = webglLoc = GLctx.getUniformLocation(p, p.uniformArrayNamesById[location] + (webglLoc > 0 ? `[${webglLoc}]` : "")); + } + // Else an already cached WebGLUniformLocation, return it. + return webglLoc; + } else { + GL.recordError(1282); + } +}; + +var _emscripten_glUniform1f = (location, v0) => { + GLctx.uniform1f(webglGetUniformLocation(location), v0); +}; + +var _glUniform1f = _emscripten_glUniform1f; + +var miniTempWebGLFloatBuffers = []; + +var _emscripten_glUniform1fv = (location, count, value) => { + if (GL.currentContext.version >= 2) { + count && GLctx.uniform1fv(webglGetUniformLocation(location), HEAPF32, ((value) >> 2), count); + return; + } + if (count <= 288) { + // avoid allocation when uploading few enough uniforms + var view = miniTempWebGLFloatBuffers[count]; + for (var i = 0; i < count; ++i) { + view[i] = HEAPF32[(((value) + (4 * i)) >> 2)]; + } + } else { + var view = HEAPF32.subarray((((value) >> 2)), ((value + count * 4) >> 2)); + } + GLctx.uniform1fv(webglGetUniformLocation(location), view); +}; + +var _glUniform1fv = _emscripten_glUniform1fv; + +var _emscripten_glUniform1i = (location, v0) => { + GLctx.uniform1i(webglGetUniformLocation(location), v0); +}; + +var _glUniform1i = _emscripten_glUniform1i; + +var _emscripten_glUniform2f = (location, v0, v1) => { + GLctx.uniform2f(webglGetUniformLocation(location), v0, v1); +}; + +var _glUniform2f = _emscripten_glUniform2f; + +var _emscripten_glUniform2fv = (location, count, value) => { + if (GL.currentContext.version >= 2) { + count && GLctx.uniform2fv(webglGetUniformLocation(location), HEAPF32, ((value) >> 2), count * 2); + return; + } + if (count <= 144) { + // avoid allocation when uploading few enough uniforms + count *= 2; + var view = miniTempWebGLFloatBuffers[count]; + for (var i = 0; i < count; i += 2) { + view[i] = HEAPF32[(((value) + (4 * i)) >> 2)]; + view[i + 1] = HEAPF32[(((value) + (4 * i + 4)) >> 2)]; + } + } else { + var view = HEAPF32.subarray((((value) >> 2)), ((value + count * 8) >> 2)); + } + GLctx.uniform2fv(webglGetUniformLocation(location), view); +}; + +var _glUniform2fv = _emscripten_glUniform2fv; + +var _emscripten_glUniform3f = (location, v0, v1, v2) => { + GLctx.uniform3f(webglGetUniformLocation(location), v0, v1, v2); +}; + +var _glUniform3f = _emscripten_glUniform3f; + +var _emscripten_glUniform4f = (location, v0, v1, v2, v3) => { + GLctx.uniform4f(webglGetUniformLocation(location), v0, v1, v2, v3); +}; + +var _glUniform4f = _emscripten_glUniform4f; + +var _emscripten_glUniform4fv = (location, count, value) => { + if (GL.currentContext.version >= 2) { + count && GLctx.uniform4fv(webglGetUniformLocation(location), HEAPF32, ((value) >> 2), count * 4); + return; + } + if (count <= 72) { + // avoid allocation when uploading few enough uniforms + var view = miniTempWebGLFloatBuffers[4 * count]; + // hoist the heap out of the loop for size and for pthreads+growth. + var heap = HEAPF32; + value = ((value) >> 2); + count *= 4; + for (var i = 0; i < count; i += 4) { + var dst = value + i; + view[i] = heap[dst]; + view[i + 1] = heap[dst + 1]; + view[i + 2] = heap[dst + 2]; + view[i + 3] = heap[dst + 3]; + } + } else { + var view = HEAPF32.subarray((((value) >> 2)), ((value + count * 16) >> 2)); + } + GLctx.uniform4fv(webglGetUniformLocation(location), view); +}; + +var _glUniform4fv = _emscripten_glUniform4fv; + +var miniTempWebGLIntBuffers = []; + +var _emscripten_glUniform4iv = (location, count, value) => { + if (GL.currentContext.version >= 2) { + count && GLctx.uniform4iv(webglGetUniformLocation(location), HEAP32, ((value) >> 2), count * 4); + return; + } + if (count <= 72) { + // avoid allocation when uploading few enough uniforms + count *= 4; + var view = miniTempWebGLIntBuffers[count]; + for (var i = 0; i < count; i += 4) { + view[i] = HEAP32[(((value) + (4 * i)) >> 2)]; + view[i + 1] = HEAP32[(((value) + (4 * i + 4)) >> 2)]; + view[i + 2] = HEAP32[(((value) + (4 * i + 8)) >> 2)]; + view[i + 3] = HEAP32[(((value) + (4 * i + 12)) >> 2)]; + } + } else { + var view = HEAP32.subarray((((value) >> 2)), ((value + count * 16) >> 2)); + } + GLctx.uniform4iv(webglGetUniformLocation(location), view); +}; + +var _glUniform4iv = _emscripten_glUniform4iv; + +var _emscripten_glUniformBlockBinding = (program, uniformBlockIndex, uniformBlockBinding) => { + program = GL.programs[program]; + GLctx.uniformBlockBinding(program, uniformBlockIndex, uniformBlockBinding); +}; + +var _glUniformBlockBinding = _emscripten_glUniformBlockBinding; + +var _emscripten_glUniformMatrix2fv = (location, count, transpose, value) => { + if (GL.currentContext.version >= 2) { + count && GLctx.uniformMatrix2fv(webglGetUniformLocation(location), !!transpose, HEAPF32, ((value) >> 2), count * 4); + return; + } + if (count <= 72) { + // avoid allocation when uploading few enough uniforms + count *= 4; + var view = miniTempWebGLFloatBuffers[count]; + for (var i = 0; i < count; i += 4) { + view[i] = HEAPF32[(((value) + (4 * i)) >> 2)]; + view[i + 1] = HEAPF32[(((value) + (4 * i + 4)) >> 2)]; + view[i + 2] = HEAPF32[(((value) + (4 * i + 8)) >> 2)]; + view[i + 3] = HEAPF32[(((value) + (4 * i + 12)) >> 2)]; + } + } else { + var view = HEAPF32.subarray((((value) >> 2)), ((value + count * 16) >> 2)); + } + GLctx.uniformMatrix2fv(webglGetUniformLocation(location), !!transpose, view); +}; + +var _glUniformMatrix2fv = _emscripten_glUniformMatrix2fv; + +var _emscripten_glUniformMatrix3fv = (location, count, transpose, value) => { + if (GL.currentContext.version >= 2) { + count && GLctx.uniformMatrix3fv(webglGetUniformLocation(location), !!transpose, HEAPF32, ((value) >> 2), count * 9); + return; + } + if (count <= 32) { + // avoid allocation when uploading few enough uniforms + count *= 9; + var view = miniTempWebGLFloatBuffers[count]; + for (var i = 0; i < count; i += 9) { + view[i] = HEAPF32[(((value) + (4 * i)) >> 2)]; + view[i + 1] = HEAPF32[(((value) + (4 * i + 4)) >> 2)]; + view[i + 2] = HEAPF32[(((value) + (4 * i + 8)) >> 2)]; + view[i + 3] = HEAPF32[(((value) + (4 * i + 12)) >> 2)]; + view[i + 4] = HEAPF32[(((value) + (4 * i + 16)) >> 2)]; + view[i + 5] = HEAPF32[(((value) + (4 * i + 20)) >> 2)]; + view[i + 6] = HEAPF32[(((value) + (4 * i + 24)) >> 2)]; + view[i + 7] = HEAPF32[(((value) + (4 * i + 28)) >> 2)]; + view[i + 8] = HEAPF32[(((value) + (4 * i + 32)) >> 2)]; + } + } else { + var view = HEAPF32.subarray((((value) >> 2)), ((value + count * 36) >> 2)); + } + GLctx.uniformMatrix3fv(webglGetUniformLocation(location), !!transpose, view); +}; + +var _glUniformMatrix3fv = _emscripten_glUniformMatrix3fv; + +var _emscripten_glUniformMatrix4fv = (location, count, transpose, value) => { + if (GL.currentContext.version >= 2) { + count && GLctx.uniformMatrix4fv(webglGetUniformLocation(location), !!transpose, HEAPF32, ((value) >> 2), count * 16); + return; + } + if (count <= 18) { + // avoid allocation when uploading few enough uniforms + var view = miniTempWebGLFloatBuffers[16 * count]; + // hoist the heap out of the loop for size and for pthreads+growth. + var heap = HEAPF32; + value = ((value) >> 2); + count *= 16; + for (var i = 0; i < count; i += 16) { + var dst = value + i; + view[i] = heap[dst]; + view[i + 1] = heap[dst + 1]; + view[i + 2] = heap[dst + 2]; + view[i + 3] = heap[dst + 3]; + view[i + 4] = heap[dst + 4]; + view[i + 5] = heap[dst + 5]; + view[i + 6] = heap[dst + 6]; + view[i + 7] = heap[dst + 7]; + view[i + 8] = heap[dst + 8]; + view[i + 9] = heap[dst + 9]; + view[i + 10] = heap[dst + 10]; + view[i + 11] = heap[dst + 11]; + view[i + 12] = heap[dst + 12]; + view[i + 13] = heap[dst + 13]; + view[i + 14] = heap[dst + 14]; + view[i + 15] = heap[dst + 15]; + } + } else { + var view = HEAPF32.subarray((((value) >> 2)), ((value + count * 64) >> 2)); + } + GLctx.uniformMatrix4fv(webglGetUniformLocation(location), !!transpose, view); +}; + +var _glUniformMatrix4fv = _emscripten_glUniformMatrix4fv; + +var _emscripten_glUseProgram = program => { + program = GL.programs[program]; + GLctx.useProgram(program); + // Record the currently active program so that we can access the uniform + // mapping table of that program. + GLctx.currentProgram = program; +}; + +var _glUseProgram = _emscripten_glUseProgram; + +var _emscripten_glVertexAttribPointer = (index, size, type, normalized, stride, ptr) => { + var cb = GL.currentContext.clientBuffers[index]; + if (!GLctx.currentArrayBufferBinding) { + cb.size = size; + cb.type = type; + cb.normalized = normalized; + cb.stride = stride; + cb.ptr = ptr; + cb.clientside = true; + cb.vertexAttribPointerAdaptor = function(index, size, type, normalized, stride, ptr) { + this.vertexAttribPointer(index, size, type, normalized, stride, ptr); + }; + return; + } + cb.clientside = false; + GLctx.vertexAttribPointer(index, size, type, !!normalized, stride, ptr); +}; + +var _glVertexAttribPointer = _emscripten_glVertexAttribPointer; + +var _emscripten_glViewport = (x0, x1, x2, x3) => GLctx.viewport(x0, x1, x2, x3); + +var _glViewport = _emscripten_glViewport; + +function _mediapipe_find_canvas_event_target(canvasSelector) { + let target = findCanvasEventTarget(canvasSelector); + // WebGPU-on-worker uses this function to try to grab the canvas, but + // doesn't have a DOM element to find. So as a quick patch, if the default + // behavior is unsuccessful here then we try a webgpu canvas property + // which is set by the user directly on the Module, much like how our old + // pipeline used the Module.canvas property. See b/265271517 for details. + if (Module && !target) { + target = Module.canvasWebGpu; + } + return Emval.toHandle(target); +} + +function _mediapipe_webgl_tex_image_drawable(drawableHandle) { + const drawable = Emval.toValue(drawableHandle); + GLctx.texImage2D(GLctx.TEXTURE_2D, 0, GLctx.RGBA, GLctx.RGBA, GLctx.UNSIGNED_BYTE, drawable); +} + +function _random_get(buffer, size) { + try { + randomFill(HEAPU8.subarray(buffer, buffer + size)); + return 0; + } catch (e) { + if (typeof FS == "undefined" || !(e.name === "ErrnoError")) throw e; + return e.errno; + } +} + +var _wgpuCommandEncoderBeginComputePass = (encoderPtr, descriptor) => { + var desc; + if (descriptor) { + desc = { + "label": WebGPU.makeStringFromOptionalStringView(descriptor + 4), + "timestampWrites": WebGPU.makePassTimestampWrites(HEAPU32[(((descriptor) + (12)) >> 2)]) + }; + } + var commandEncoder = WebGPU.getJsObject(encoderPtr); + var ptr = _emwgpuCreateComputePassEncoder(0); + WebGPU.Internals.jsObjectInsert(ptr, commandEncoder.beginComputePass(desc)); + return ptr; +}; + +var _wgpuCommandEncoderBeginRenderPass = (encoderPtr, descriptor) => { + function makeColorAttachment(caPtr) { + var viewPtr = HEAPU32[(((caPtr) + (4)) >> 2)]; + if (viewPtr === 0) { + // Null `view` means no attachment in this slot. + return undefined; + } + var depthSlice = HEAPU32[(((caPtr) + (8)) >> 2)]; + if (depthSlice == 4294967295) depthSlice = undefined; + return { + "view": WebGPU.getJsObject(viewPtr), + "depthSlice": depthSlice, + "resolveTarget": WebGPU.getJsObject(HEAPU32[(((caPtr) + (12)) >> 2)]), + "clearValue": WebGPU.makeColor(caPtr + 24), + "loadOp": WebGPU.LoadOp[HEAP32[(((caPtr) + (16)) >> 2)]], + "storeOp": WebGPU.StoreOp[HEAP32[(((caPtr) + (20)) >> 2)]] + }; + } + function makeColorAttachments(count, caPtr) { + var attachments = []; + for (var i = 0; i < count; ++i) { + attachments.push(makeColorAttachment(caPtr + 56 * i)); + } + return attachments; + } + function makeDepthStencilAttachment(dsaPtr) { + if (dsaPtr === 0) return undefined; + return { + "view": WebGPU.getJsObject(HEAPU32[(((dsaPtr) + (4)) >> 2)]), + "depthClearValue": HEAPF32[(((dsaPtr) + (16)) >> 2)], + "depthLoadOp": WebGPU.LoadOp[HEAP32[(((dsaPtr) + (8)) >> 2)]], + "depthStoreOp": WebGPU.StoreOp[HEAP32[(((dsaPtr) + (12)) >> 2)]], + "depthReadOnly": !!(HEAPU32[(((dsaPtr) + (20)) >> 2)]), + "stencilClearValue": HEAPU32[(((dsaPtr) + (32)) >> 2)], + "stencilLoadOp": WebGPU.LoadOp[HEAP32[(((dsaPtr) + (24)) >> 2)]], + "stencilStoreOp": WebGPU.StoreOp[HEAP32[(((dsaPtr) + (28)) >> 2)]], + "stencilReadOnly": !!(HEAPU32[(((dsaPtr) + (36)) >> 2)]) + }; + } + function makeRenderPassDescriptor(descriptor) { + var nextInChainPtr = HEAPU32[((descriptor) >> 2)]; + var maxDrawCount = undefined; + if (nextInChainPtr !== 0) { + var sType = HEAP32[(((nextInChainPtr) + (4)) >> 2)]; + var renderPassMaxDrawCount = nextInChainPtr; + // Note: The user could have passed a really huge value here, which is technically valid in + // C but will not be allowed by WebGPU in JS because of [EnforceRange]. We intentionally + // ignore that case because it's not useful - apps can just pick a smaller maxDrawCount. + maxDrawCount = readI53FromI64((renderPassMaxDrawCount) + (8)); + } + var desc = { + "label": WebGPU.makeStringFromOptionalStringView(descriptor + 4), + "colorAttachments": makeColorAttachments(HEAPU32[(((descriptor) + (12)) >> 2)], HEAPU32[(((descriptor) + (16)) >> 2)]), + "depthStencilAttachment": makeDepthStencilAttachment(HEAPU32[(((descriptor) + (20)) >> 2)]), + "occlusionQuerySet": WebGPU.getJsObject(HEAPU32[(((descriptor) + (24)) >> 2)]), + "timestampWrites": WebGPU.makePassTimestampWrites(HEAPU32[(((descriptor) + (28)) >> 2)]), + "maxDrawCount": maxDrawCount + }; + return desc; + } + var desc = makeRenderPassDescriptor(descriptor); + var commandEncoder = WebGPU.getJsObject(encoderPtr); + var ptr = _emwgpuCreateRenderPassEncoder(0); + WebGPU.Internals.jsObjectInsert(ptr, commandEncoder.beginRenderPass(desc)); + return ptr; +}; + +var _wgpuCommandEncoderCopyBufferToTexture = (encoderPtr, srcPtr, dstPtr, copySizePtr) => { + var commandEncoder = WebGPU.getJsObject(encoderPtr); + var copySize = WebGPU.makeExtent3D(copySizePtr); + commandEncoder.copyBufferToTexture(WebGPU.makeTexelCopyBufferInfo(srcPtr), WebGPU.makeTexelCopyTextureInfo(dstPtr), copySize); +}; + +var _wgpuCommandEncoderCopyTextureToBuffer = (encoderPtr, srcPtr, dstPtr, copySizePtr) => { + var commandEncoder = WebGPU.getJsObject(encoderPtr); + var copySize = WebGPU.makeExtent3D(copySizePtr); + commandEncoder.copyTextureToBuffer(WebGPU.makeTexelCopyTextureInfo(srcPtr), WebGPU.makeTexelCopyBufferInfo(dstPtr), copySize); +}; + +var _wgpuCommandEncoderCopyTextureToTexture = (encoderPtr, srcPtr, dstPtr, copySizePtr) => { + var commandEncoder = WebGPU.getJsObject(encoderPtr); + var copySize = WebGPU.makeExtent3D(copySizePtr); + commandEncoder.copyTextureToTexture(WebGPU.makeTexelCopyTextureInfo(srcPtr), WebGPU.makeTexelCopyTextureInfo(dstPtr), copySize); +}; + +var _wgpuCommandEncoderFinish = (encoderPtr, descriptor) => { + // TODO: Use the descriptor. + var commandEncoder = WebGPU.getJsObject(encoderPtr); + var ptr = _emwgpuCreateCommandBuffer(0); + WebGPU.Internals.jsObjectInsert(ptr, commandEncoder.finish()); + return ptr; +}; + +var _wgpuComputePassEncoderDispatchWorkgroups = (passPtr, x, y, z) => { + var pass = WebGPU.getJsObject(passPtr); + pass.dispatchWorkgroups(x, y, z); +}; + +var _wgpuComputePassEncoderEnd = passPtr => { + var pass = WebGPU.getJsObject(passPtr); + pass.end(); +}; + +var _wgpuComputePassEncoderSetBindGroup = (passPtr, groupIndex, groupPtr, dynamicOffsetCount, dynamicOffsetsPtr) => { + var pass = WebGPU.getJsObject(passPtr); + var group = WebGPU.getJsObject(groupPtr); + if (dynamicOffsetCount == 0) { + pass.setBindGroup(groupIndex, group); + } else { + pass.setBindGroup(groupIndex, group, HEAPU32, ((dynamicOffsetsPtr) >> 2), dynamicOffsetCount); + } +}; + +var _wgpuComputePassEncoderSetPipeline = (passPtr, pipelinePtr) => { + var pass = WebGPU.getJsObject(passPtr); + var pipeline = WebGPU.getJsObject(pipelinePtr); + pass.setPipeline(pipeline); +}; + +var _wgpuComputePipelineGetBindGroupLayout = (pipelinePtr, groupIndex) => { + var pipeline = WebGPU.getJsObject(pipelinePtr); + var ptr = _emwgpuCreateBindGroupLayout(0); + WebGPU.Internals.jsObjectInsert(ptr, pipeline.getBindGroupLayout(groupIndex)); + return ptr; +}; + +var _wgpuDeviceCreateBindGroup = (devicePtr, descriptor) => { + function makeEntry(entryPtr) { + var bufferPtr = HEAPU32[(((entryPtr) + (8)) >> 2)]; + var samplerPtr = HEAPU32[(((entryPtr) + (32)) >> 2)]; + var textureViewPtr = HEAPU32[(((entryPtr) + (36)) >> 2)]; + var externalTexturePtr = 0; + WebGPU.iterateExtensions(entryPtr, { + 14: ptr => { + externalTexturePtr = HEAPU32[(((ptr) + (8)) >> 2)]; + } + }); + var resource; + if (bufferPtr) { + // Note the sentinel UINT64_MAX will be read as -1. + var size = readI53FromI64((entryPtr) + (24)); + if (size == -1) size = undefined; + resource = { + "buffer": WebGPU.getJsObject(bufferPtr), + "offset": readI53FromI64((entryPtr) + (16)), + "size": size + }; + } else { + resource = WebGPU.getJsObject(samplerPtr || textureViewPtr || externalTexturePtr); + } + return { + "binding": HEAPU32[(((entryPtr) + (4)) >> 2)], + "resource": resource + }; + } + function makeEntries(count, entriesPtrs) { + var entries = []; + for (var i = 0; i < count; ++i) { + entries.push(makeEntry(entriesPtrs + 40 * i)); + } + return entries; + } + var desc = { + "label": WebGPU.makeStringFromOptionalStringView(descriptor + 4), + "layout": WebGPU.getJsObject(HEAPU32[(((descriptor) + (12)) >> 2)]), + "entries": makeEntries(HEAPU32[(((descriptor) + (16)) >> 2)], HEAPU32[(((descriptor) + (20)) >> 2)]) + }; + var device = WebGPU.getJsObject(devicePtr); + var ptr = _emwgpuCreateBindGroup(0); + WebGPU.Internals.jsObjectInsert(ptr, device.createBindGroup(desc)); + return ptr; +}; + +var _wgpuDeviceCreateBindGroupLayout = (devicePtr, descriptor) => { + function makeBufferEntry(substructPtr) { + var typeInt = HEAPU32[(((substructPtr) + (4)) >> 2)]; + if (!typeInt) return undefined; + return { + "type": WebGPU.BufferBindingType[typeInt], + "hasDynamicOffset": !!(HEAPU32[(((substructPtr) + (8)) >> 2)]), + "minBindingSize": readI53FromI64((substructPtr) + (16)) + }; + } + function makeSamplerEntry(substructPtr) { + var typeInt = HEAPU32[(((substructPtr) + (4)) >> 2)]; + if (!typeInt) return undefined; + return { + "type": WebGPU.SamplerBindingType[typeInt] + }; + } + function makeTextureEntry(substructPtr) { + var sampleTypeInt = HEAPU32[(((substructPtr) + (4)) >> 2)]; + if (!sampleTypeInt) return undefined; + return { + "sampleType": WebGPU.TextureSampleType[sampleTypeInt], + "viewDimension": WebGPU.TextureViewDimension[HEAP32[(((substructPtr) + (8)) >> 2)]], + "multisampled": !!(HEAPU32[(((substructPtr) + (12)) >> 2)]) + }; + } + function makeStorageTextureEntry(substructPtr) { + var accessInt = HEAPU32[(((substructPtr) + (4)) >> 2)]; + if (!accessInt) return undefined; + return { + "access": WebGPU.StorageTextureAccess[accessInt], + "format": WebGPU.TextureFormat[HEAP32[(((substructPtr) + (8)) >> 2)]], + "viewDimension": WebGPU.TextureViewDimension[HEAP32[(((substructPtr) + (12)) >> 2)]] + }; + } + function makeEntry(entryPtr) { + var entry = { + "binding": HEAPU32[(((entryPtr) + (4)) >> 2)], + "visibility": HEAPU32[(((entryPtr) + (8)) >> 2)], + "buffer": makeBufferEntry(entryPtr + 24), + "sampler": makeSamplerEntry(entryPtr + 48), + "texture": makeTextureEntry(entryPtr + 56), + "storageTexture": makeStorageTextureEntry(entryPtr + 72) + }; + WebGPU.iterateExtensions(entryPtr, { + 13: ptr => { + entry["externalTexture"] = {}; + } + }); + return entry; + } + function makeEntries(count, entriesPtrs) { + var entries = []; + for (var i = 0; i < count; ++i) { + entries.push(makeEntry(entriesPtrs + 88 * i)); + } + return entries; + } + var desc = { + "label": WebGPU.makeStringFromOptionalStringView(descriptor + 4), + "entries": makeEntries(HEAPU32[(((descriptor) + (12)) >> 2)], HEAPU32[(((descriptor) + (16)) >> 2)]) + }; + var device = WebGPU.getJsObject(devicePtr); + var ptr = _emwgpuCreateBindGroupLayout(0); + WebGPU.Internals.jsObjectInsert(ptr, device.createBindGroupLayout(desc)); + return ptr; +}; + +var _wgpuDeviceCreateCommandEncoder = (devicePtr, descriptor) => { + var desc; + if (descriptor) { + desc = { + "label": WebGPU.makeStringFromOptionalStringView(descriptor + 4) + }; + } + var device = WebGPU.getJsObject(devicePtr); + var ptr = _emwgpuCreateCommandEncoder(0); + WebGPU.Internals.jsObjectInsert(ptr, device.createCommandEncoder(desc)); + return ptr; +}; + +var _wgpuDeviceCreateComputePipeline = (devicePtr, descriptor) => { + var desc = WebGPU.makeComputePipelineDesc(descriptor); + var device = WebGPU.getJsObject(devicePtr); + var ptr = _emwgpuCreateComputePipeline(0); + WebGPU.Internals.jsObjectInsert(ptr, device.createComputePipeline(desc)); + return ptr; +}; + +var _wgpuDeviceCreatePipelineLayout = (devicePtr, descriptor) => { + var bglCount = HEAPU32[(((descriptor) + (12)) >> 2)]; + var bglPtr = HEAPU32[(((descriptor) + (16)) >> 2)]; + var bgls = []; + for (var i = 0; i < bglCount; ++i) { + bgls.push(WebGPU.getJsObject(HEAPU32[(((bglPtr) + (4 * i)) >> 2)])); + } + var desc = { + "label": WebGPU.makeStringFromOptionalStringView(descriptor + 4), + "bindGroupLayouts": bgls + }; + var device = WebGPU.getJsObject(devicePtr); + var ptr = _emwgpuCreatePipelineLayout(0); + WebGPU.Internals.jsObjectInsert(ptr, device.createPipelineLayout(desc)); + return ptr; +}; + +var _wgpuDeviceCreateRenderPipeline = (devicePtr, descriptor) => { + var desc = WebGPU.makeRenderPipelineDesc(descriptor); + var device = WebGPU.getJsObject(devicePtr); + var ptr = _emwgpuCreateRenderPipeline(0); + WebGPU.Internals.jsObjectInsert(ptr, device.createRenderPipeline(desc)); + return ptr; +}; + +var _wgpuDeviceCreateSampler = (devicePtr, descriptor) => { + var desc; + if (descriptor) { + desc = { + "label": WebGPU.makeStringFromOptionalStringView(descriptor + 4), + "addressModeU": WebGPU.AddressMode[HEAP32[(((descriptor) + (12)) >> 2)]], + "addressModeV": WebGPU.AddressMode[HEAP32[(((descriptor) + (16)) >> 2)]], + "addressModeW": WebGPU.AddressMode[HEAP32[(((descriptor) + (20)) >> 2)]], + "magFilter": WebGPU.FilterMode[HEAP32[(((descriptor) + (24)) >> 2)]], + "minFilter": WebGPU.FilterMode[HEAP32[(((descriptor) + (28)) >> 2)]], + "mipmapFilter": WebGPU.MipmapFilterMode[HEAP32[(((descriptor) + (32)) >> 2)]], + "lodMinClamp": HEAPF32[(((descriptor) + (36)) >> 2)], + "lodMaxClamp": HEAPF32[(((descriptor) + (40)) >> 2)], + "compare": WebGPU.CompareFunction[HEAP32[(((descriptor) + (44)) >> 2)]], + "maxAnisotropy": HEAPU16[(((descriptor) + (48)) >> 1)] + }; + } + var device = WebGPU.getJsObject(devicePtr); + var ptr = _emwgpuCreateSampler(0); + WebGPU.Internals.jsObjectInsert(ptr, device.createSampler(desc)); + return ptr; +}; + +var _wgpuDeviceCreateTexture = (devicePtr, descriptor) => { + var nextInChainPtr = HEAPU32[((descriptor) >> 2)]; + var textureBindingViewDimension; + if (nextInChainPtr !== 0) { + var sType = HEAP32[(((nextInChainPtr) + (4)) >> 2)]; + var textureBindingViewDimensionDescriptor = nextInChainPtr; + textureBindingViewDimension = WebGPU.TextureViewDimension[HEAP32[(((textureBindingViewDimensionDescriptor) + (8)) >> 2)]]; + } + var desc = { + "label": WebGPU.makeStringFromOptionalStringView(descriptor + 4), + "size": WebGPU.makeExtent3D(descriptor + 28), + "mipLevelCount": HEAPU32[(((descriptor) + (44)) >> 2)], + "sampleCount": HEAPU32[(((descriptor) + (48)) >> 2)], + "dimension": WebGPU.TextureDimension[HEAP32[(((descriptor) + (24)) >> 2)]], + "format": WebGPU.TextureFormat[HEAP32[(((descriptor) + (40)) >> 2)]], + "usage": HEAPU32[(((descriptor) + (16)) >> 2)], + "textureBindingViewDimension": textureBindingViewDimension + }; + var viewFormatCount = HEAPU32[(((descriptor) + (52)) >> 2)]; + if (viewFormatCount) { + var viewFormatsPtr = HEAPU32[(((descriptor) + (56)) >> 2)]; + // viewFormatsPtr pointer to an array of TextureFormat which is an enum of size uint32_t + desc["viewFormats"] = Array.from(HEAP32.subarray((((viewFormatsPtr) >> 2)), ((viewFormatsPtr + viewFormatCount * 4) >> 2)), format => WebGPU.TextureFormat[format]); + } + var device = WebGPU.getJsObject(devicePtr); + var ptr = _emwgpuCreateTexture(0); + WebGPU.Internals.jsObjectInsert(ptr, device.createTexture(desc)); + return ptr; +}; + +var _wgpuQueueSubmit = (queuePtr, commandCount, commands) => { + var queue = WebGPU.getJsObject(queuePtr); + var cmds = Array.from(HEAP32.subarray((((commands) >> 2)), ((commands + commandCount * 4) >> 2)), id => WebGPU.getJsObject(id)); + queue.submit(cmds); +}; + +function _wgpuQueueWriteBuffer(queuePtr, bufferPtr, bufferOffset_low, bufferOffset_high, data, size) { + var bufferOffset = convertI32PairToI53Checked(bufferOffset_low, bufferOffset_high); + var queue = WebGPU.getJsObject(queuePtr); + var buffer = WebGPU.getJsObject(bufferPtr); + // There is a size limitation for ArrayBufferView. Work around by passing in a subarray + // instead of the whole heap. crbug.com/1201109 + var subarray = HEAPU8.subarray(data, data + size); + queue.writeBuffer(buffer, bufferOffset, subarray, 0, size); +} + +var _wgpuQueueWriteTexture = (queuePtr, destinationPtr, data, dataSize, dataLayoutPtr, writeSizePtr) => { + var queue = WebGPU.getJsObject(queuePtr); + var destination = WebGPU.makeTexelCopyTextureInfo(destinationPtr); + var dataLayout = WebGPU.makeTexelCopyBufferLayout(dataLayoutPtr); + var writeSize = WebGPU.makeExtent3D(writeSizePtr); + // This subarray isn't strictly necessary, but helps work around an issue + // where Chromium makes a copy of the entire heap. crbug.com/1134457 + var subarray = HEAPU8.subarray(data, data + dataSize); + queue.writeTexture(destination, subarray, dataLayout, writeSize); +}; + +var _wgpuRenderPassEncoderDraw = (passPtr, vertexCount, instanceCount, firstVertex, firstInstance) => { + firstVertex >>>= 0; + firstInstance >>>= 0; + var pass = WebGPU.getJsObject(passPtr); + pass.draw(vertexCount, instanceCount, firstVertex, firstInstance); +}; + +var _wgpuRenderPassEncoderEnd = encoderPtr => { + var encoder = WebGPU.getJsObject(encoderPtr); + encoder.end(); +}; + +var _wgpuRenderPassEncoderSetBindGroup = (passPtr, groupIndex, groupPtr, dynamicOffsetCount, dynamicOffsetsPtr) => { + var pass = WebGPU.getJsObject(passPtr); + var group = WebGPU.getJsObject(groupPtr); + if (dynamicOffsetCount == 0) { + pass.setBindGroup(groupIndex, group); + } else { + pass.setBindGroup(groupIndex, group, HEAPU32, ((dynamicOffsetsPtr) >> 2), dynamicOffsetCount); + } +}; + +var _wgpuRenderPassEncoderSetPipeline = (passPtr, pipelinePtr) => { + var pass = WebGPU.getJsObject(passPtr); + var pipeline = WebGPU.getJsObject(pipelinePtr); + pass.setPipeline(pipeline); +}; + +var _wgpuRenderPipelineGetBindGroupLayout = (pipelinePtr, groupIndex) => { + var pipeline = WebGPU.getJsObject(pipelinePtr); + var ptr = _emwgpuCreateBindGroupLayout(0); + WebGPU.Internals.jsObjectInsert(ptr, pipeline.getBindGroupLayout(groupIndex)); + return ptr; +}; + +var _wgpuTextureCreateView = (texturePtr, descriptor) => { + var desc; + if (descriptor) { + var swizzle; + var nextInChainPtr = HEAPU32[((descriptor) >> 2)]; + if (nextInChainPtr !== 0) { + var sType = HEAP32[(((nextInChainPtr) + (4)) >> 2)]; + var swizzleDescriptor = nextInChainPtr; + var swizzlePtr = swizzleDescriptor + 8; + var r = WebGPU.ComponentSwizzle[HEAP32[((swizzlePtr) >> 2)]] || "r"; + var g = WebGPU.ComponentSwizzle[HEAP32[(((swizzlePtr) + (4)) >> 2)]] || "g"; + var b = WebGPU.ComponentSwizzle[HEAP32[(((swizzlePtr) + (8)) >> 2)]] || "b"; + var a = WebGPU.ComponentSwizzle[HEAP32[(((swizzlePtr) + (12)) >> 2)]] || "a"; + swizzle = `${r}${g}${b}${a}`; + } + var mipLevelCount = HEAPU32[(((descriptor) + (24)) >> 2)]; + var arrayLayerCount = HEAPU32[(((descriptor) + (32)) >> 2)]; + desc = { + "label": WebGPU.makeStringFromOptionalStringView(descriptor + 4), + "format": WebGPU.TextureFormat[HEAP32[(((descriptor) + (12)) >> 2)]], + "dimension": WebGPU.TextureViewDimension[HEAP32[(((descriptor) + (16)) >> 2)]], + "baseMipLevel": HEAPU32[(((descriptor) + (20)) >> 2)], + "mipLevelCount": mipLevelCount === 4294967295 ? undefined : mipLevelCount, + "baseArrayLayer": HEAPU32[(((descriptor) + (28)) >> 2)], + "arrayLayerCount": arrayLayerCount === 4294967295 ? undefined : arrayLayerCount, + "aspect": WebGPU.TextureAspect[HEAP32[(((descriptor) + (36)) >> 2)]], + "usage": HEAPU32[(((descriptor) + (40)) >> 2)], + "swizzle": swizzle + }; + } + var texture = WebGPU.getJsObject(texturePtr); + var ptr = _emwgpuCreateTextureView(0); + WebGPU.Internals.jsObjectInsert(ptr, texture.createView(desc)); + return ptr; +}; + +var _wgpuTextureDestroy = texturePtr => { + WebGPU.getJsObject(texturePtr).destroy(); +}; + +var _wgpuTextureGetFormat = texturePtr => { + var texture = WebGPU.getJsObject(texturePtr); + // Should return the enum integer instead of string. + return WebGPU.TextureFormat.indexOf(texture.format); +}; + +var getCFunc = ident => { + var func = Module["_" + ident]; + // closure exported function + return func; +}; + +var writeArrayToMemory = (array, buffer) => { + HEAP8.set(array, buffer); +}; + +/** + * @param {string|null=} returnType + * @param {Array=} argTypes + * @param {Array=} args + * @param {Object=} opts + */ var ccall = (ident, returnType, argTypes, args, opts) => { + // For fast lookup of conversion functions + var toC = { + "string": str => { + var ret = 0; + if (str !== null && str !== undefined && str !== 0) { + // null string + ret = stringToUTF8OnStack(str); + } + return ret; + }, + "array": arr => { + var ret = stackAlloc(arr.length); + writeArrayToMemory(arr, ret); + return ret; + } + }; + function convertReturnValue(ret) { + if (returnType === "string") { + return UTF8ToString(ret); + } + if (returnType === "boolean") return Boolean(ret); + return ret; + } + var func = getCFunc(ident); + var cArgs = []; + var stack = 0; + if (args) { + for (var i = 0; i < args.length; i++) { + var converter = toC[argTypes[i]]; + if (converter) { + if (stack === 0) stack = stackSave(); + cArgs[i] = converter(args[i]); + } else { + cArgs[i] = args[i]; + } + } + } + var ret = func(...cArgs); + function onDone(ret) { + if (stack !== 0) stackRestore(stack); + return convertReturnValue(ret); + } + ret = onDone(ret); + return ret; +}; + +var FS_createPath = (...args) => FS.createPath(...args); + +var FS_unlink = (...args) => FS.unlink(...args); + +var FS_createLazyFile = (...args) => FS.createLazyFile(...args); + +var FS_createDevice = (...args) => FS.createDevice(...args); + +FS.createPreloadedFile = FS_createPreloadedFile; + +FS.preloadFile = FS_preloadFile; + +FS.staticInit(); + +// Signal GL rendering layer that processing of a new frame is about to +// start. This helps it optimize VBO double-buffering and reduce GPU stalls. +registerPreMainLoop(() => GL.newRenderingFrameStarted()); + +for (let i = 0; i < 32; ++i) tempFixedLengthArray.push(new Array(i)); + +var miniTempWebGLFloatBuffersStorage = new Float32Array(288); + +// Create GL_POOL_TEMP_BUFFERS_SIZE+1 temporary buffers, for uploads of size 0 through GL_POOL_TEMP_BUFFERS_SIZE inclusive +for (/**@suppress{duplicate}*/ var i = 0; i <= 288; ++i) { + miniTempWebGLFloatBuffers[i] = miniTempWebGLFloatBuffersStorage.subarray(0, i); +} + +var miniTempWebGLIntBuffersStorage = new Int32Array(288); + +// Create GL_POOL_TEMP_BUFFERS_SIZE+1 temporary buffers, for uploads of size 0 through GL_POOL_TEMP_BUFFERS_SIZE inclusive +for (/**@suppress{duplicate}*/ var i = 0; i <= 288; ++i) { + miniTempWebGLIntBuffers[i] = miniTempWebGLIntBuffersStorage.subarray(0, i); +} + +// End JS library code +// include: postlibrary.js +// This file is included after the automatically-generated JS library code +// but before the wasm module is created. +{ + // Begin ATMODULES hooks + if (Module["preloadPlugins"]) preloadPlugins = Module["preloadPlugins"]; + if (Module["noExitRuntime"]) noExitRuntime = Module["noExitRuntime"]; + if (Module["print"]) out = Module["print"]; + if (Module["printErr"]) err = Module["printErr"]; + if (Module["wasmBinary"]) wasmBinary = Module["wasmBinary"]; + // End ATMODULES hooks + if (Module["arguments"]) arguments_ = Module["arguments"]; + if (Module["thisProgram"]) thisProgram = Module["thisProgram"]; + if (Module["preInit"]) { + if (typeof Module["preInit"] == "function") Module["preInit"] = [ Module["preInit"] ]; + while (Module["preInit"].length > 0) { + Module["preInit"].shift()(); + } + } +} + +// Begin runtime exports +Module["addRunDependency"] = addRunDependency; + +Module["removeRunDependency"] = removeRunDependency; + +Module["ccall"] = ccall; + +Module["stringToNewUTF8"] = stringToNewUTF8; + +Module["FS_preloadFile"] = FS_preloadFile; + +Module["FS_unlink"] = FS_unlink; + +Module["FS_createPath"] = FS_createPath; + +Module["FS_createDevice"] = FS_createDevice; + +Module["FS_createDataFile"] = FS_createDataFile; + +Module["FS_createLazyFile"] = FS_createLazyFile; + +// End runtime exports +// Begin JS library exports +// End JS library exports +// end include: postlibrary.js +var ASM_CONSTS = { + 1482517: $0 => { + const canvas = Emval.toValue($0); + const context = canvas.getContext("webgpu"); + return WebGPU.importJsTexture(context.getCurrentTexture()); + }, + 1482660: ($0, $1, $2, $3, $4) => { + const drawable = Emval.toValue($0); + const device = WebGPU.getJsObject($1); + const texture = WebGPU.getJsObject($2); + const width = $3; + const height = $4; + device.queue.copyExternalImageToTexture({ + source: drawable + }, { + texture + }, [ width, height ]); + }, + 1482919: ($0, $1, $2, $3) => { + const sourceExtTex = Emval.toValue($0); + const device = WebGPU.getJsObject($1); + const sampler = WebGPU.getJsObject($2); + const bgLayout = WebGPU.getJsObject($3); + const bindGroup = device.createBindGroup({ + layout: bgLayout, + entries: [ { + binding: 0, + resource: sampler + }, { + binding: 1, + resource: sourceExtTex + } ] + }); + return WebGPU.importJsBindGroup(bindGroup); + }, + 1483289: ($0, $1) => { + const input = Emval.toValue($0); + const output = Emval.toValue($1); + const ctx = output.getContext("2d"); + ctx.drawImage(input, 0, 0, output.width, output.height); + }, + 1483454: ($0, $1) => { + const inputArray = Emval.toValue($0); + const output = Emval.toValue($1); + const ctx = output.getContext("2d"); + const image_data = new ImageData(inputArray, output.width, output.height); + ctx.putImageData(image_data, 0, 0); + }, + 1483678: ($0, $1) => { + const input = Emval.toValue($0); + const outputArray = Emval.toValue($1); + const ctx = input.getContext("2d"); + const data = ctx.getImageData(0, 0, input.width, input.height); + outputArray.set(data.data); + }, + 1483882: () => (typeof HTMLCanvasElement !== "undefined"), + 1483937: () => !!Module["preinitializedWebGPUDevice"], + 1483988: () => { + specialHTMLTargets["#canvas"] = Module.canvas; + } +}; + +function BeginGlQueryTiming(calc_name, num_repetitions) { + const gl = Module.canvas.getContext("webgl2"); + const query = gl.createQuery(); + Module.WEBGL_SHADER_CALC_METRICS = Module.WEBGL_SHADER_CALC_METRICS || {}; + Module.WEBGL_SHADER_CALC_METRICS[UTF8ToString(calc_name)] = { + query, + repetitions: num_repetitions + }; + Module.WEBGL_QUERY_TIMER_EXT = Module.WEBGL_QUERY_TIMER_EXT || gl.getExtension("EXT_disjoint_timer_query_webgl2"); + gl.beginQuery(Module.WEBGL_QUERY_TIMER_EXT.TIME_ELAPSED_EXT, query); +} + +function EndGlQueryTiming(calc_name) { + const gl = Module.canvas.getContext("webgl2"); + gl.endQuery(Module.WEBGL_QUERY_TIMER_EXT.TIME_ELAPSED_EXT, Module.WEBGL_SHADER_CALC_METRICS[UTF8ToString(calc_name)].query); +} + +function JsWrapImageConverter() { + if (!Module._imageConverter) { + Module._imageConverter = (binaryPtr, binarySize, width, height, numChannels, makeDeepCopy, outputType) => { + const imageData = new outputType(makeDeepCopy ? Module.HEAPU8.slice(binaryPtr, binaryPtr + binarySize).buffer : Module.HEAPU8.buffer, binaryPtr, width * height * numChannels); + return { + data: imageData, + width, + height + }; + }; + } +} + +function JsOnUint8ArrayImageListener(output_stream_name, binary_ptr, binary_size, width, height, num_channels, make_deep_copy, timestamp_ms) { + const image = Module._imageConverter(binary_ptr, binary_size, width, height, num_channels, make_deep_copy, Uint8Array); + Module._wrapSimpleListenerOutput(output_stream_name, image, timestamp_ms); +} + +function JsOnFloat32ArrayImageListener(output_stream_name, binary_ptr, binary_size, width, height, num_channels, make_deep_copy, timestamp_ms) { + const image = Module._imageConverter(binary_ptr, binary_size, width, height, num_channels, make_deep_copy, Float32Array); + Module._wrapSimpleListenerOutput(output_stream_name, image, timestamp_ms); +} + +function JsOnWebGLTextureListener(output_stream_name, name, width, height, timestamp_ms) { + Module._wrapSimpleListenerOutput(output_stream_name, { + data: GL.textures[name], + width, + height + }, timestamp_ms); +} + +function JsOnUint8ArrayImageVectorListener(output_stream_name, binary_ptr, binary_size, width, height, num_channels, make_deep_copy, timestamp_ms) { + const image = Module._imageConverter(binary_ptr, binary_size, width, height, num_channels, make_deep_copy, Uint8Array); + Module._wrapSimpleListenerOutput(output_stream_name, image, false, timestamp_ms); +} + +function JsOnFloat32ArrayImageVectorListener(output_stream_name, binary_ptr, binary_size, width, height, num_channels, make_deep_copy, timestamp_ms) { + const image = Module._imageConverter(binary_ptr, binary_size, width, height, num_channels, make_deep_copy, Float32Array); + Module._wrapSimpleListenerOutput(output_stream_name, image, false, timestamp_ms); +} + +function JsOnWebGLTextureVectorListener(output_stream_name, name, width, height, timestamp_ms) { + Module._wrapSimpleListenerOutput(output_stream_name, { + data: GL.textures[name], + width, + height + }, false, timestamp_ms); +} + +function JsOnEmptyPacketListener(output_stream_name, timestamp) { + Module._wrapEmptyPacketListenerOutput(output_stream_name, timestamp); +} + +function JsOnVectorFinishedListener(output_stream_name, timestamp) { + Module._wrapSimpleListenerOutput(output_stream_name, undefined, true, timestamp); +} + +function JsOnSimpleListenerBool(output_stream_name, out_data, timestamp) { + Module._wrapSimpleListenerOutput(output_stream_name, out_data, timestamp); +} + +function JsOnVectorListenerBool(output_stream_name, out_data, timestamp) { + Module._wrapSimpleListenerOutput(output_stream_name, out_data, false, timestamp); +} + +function JsOnSimpleListenerInt(output_stream_name, out_data, timestamp) { + Module._wrapSimpleListenerOutput(output_stream_name, out_data, timestamp); +} + +function JsOnVectorListenerInt(output_stream_name, out_data, timestamp) { + Module._wrapSimpleListenerOutput(output_stream_name, out_data, false, timestamp); +} + +function JsOnSimpleListenerUint(output_stream_name, out_data, timestamp) { + Module._wrapSimpleListenerOutput(output_stream_name, out_data, timestamp); +} + +function JsOnVectorListenerUint(output_stream_name, out_data, timestamp) { + Module._wrapSimpleListenerOutput(output_stream_name, out_data, false, timestamp); +} + +function JsOnSimpleListenerDouble(output_stream_name, out_data, timestamp) { + Module._wrapSimpleListenerOutput(output_stream_name, out_data, timestamp); +} + +function JsOnVectorListenerDouble(output_stream_name, out_data, timestamp) { + Module._wrapSimpleListenerOutput(output_stream_name, out_data, false, timestamp); +} + +function JsOnSimpleListenerFloat(output_stream_name, out_data, timestamp) { + Module._wrapSimpleListenerOutput(output_stream_name, out_data, timestamp); +} + +function JsOnVectorListenerFloat(output_stream_name, out_data, timestamp) { + Module._wrapSimpleListenerOutput(output_stream_name, out_data, false, timestamp); +} + +function JsOnSimpleListenerString(output_stream_name, out_data, timestamp) { + Module._wrapSimpleListenerOutput(output_stream_name, UTF8ToString(out_data), timestamp); +} + +function JsOnVectorListenerString(output_stream_name, out_data, timestamp) { + Module._wrapSimpleListenerOutput(output_stream_name, UTF8ToString(out_data), false, timestamp); +} + +function JsOnVectorListenerProto(output_stream_name, proto_ptr, proto_size, make_deep_copy, timestamp) { + const newProtoArray = make_deep_copy ? Module.HEAPU8.slice(proto_ptr, proto_ptr + proto_size) : new Uint8Array(Module.HEAPU8.buffer, proto_ptr, proto_size); + Module._wrapSimpleListenerOutput(output_stream_name, newProtoArray, false, timestamp); +} + +function JsWrapSimpleListeners() { + if (!Module._wrapSimpleListenerOutput) { + Module._wrapSimpleListenerOutput = (outputStreamName, ...args) => { + if (Module.simpleListeners) { + const streamName = UTF8ToString(outputStreamName); + if (Module.simpleListeners[streamName]) { + Module.simpleListeners[streamName](...args); + } + } + }; + } + if (!Module._wrapEmptyPacketListenerOutput) { + Module._wrapEmptyPacketListenerOutput = (outputStreamName, timestamp) => { + if (Module.emptyPacketListeners) { + const streamName = UTF8ToString(outputStreamName); + if (Module.emptyPacketListeners[streamName]) { + Module.emptyPacketListeners[streamName](timestamp); + } + } + }; + } +} + +function JsOnSimpleListenerBinaryArray(output_stream_name, binary_ptr, binary_size, make_deep_copy, timestamp) { + const newProtoArray = make_deep_copy ? Module.HEAPU8.slice(binary_ptr, binary_ptr + binary_size) : new Uint8Array(Module.HEAPU8.buffer, binary_ptr, binary_size); + Module._wrapSimpleListenerOutput(output_stream_name, newProtoArray, timestamp); +} + +function mediapipe_import_external_texture(device_handle, source_handle) { + const device = WebGPU.getJsObject(device_handle); + const source = Emval.toValue(source_handle); + const externalTexture = device.importExternalTexture({ + source + }); + return Emval.toHandle(externalTexture); +} + +function mediapipe_create_utility_canvas2d() { + let canvas; + if (typeof HTMLCanvasElement !== "undefined") { + canvas = document.createElement("canvas"); + canvas.style.display = "none"; + } else { + canvas = new OffscreenCanvas(0, 0); + } + return Emval.toHandle(canvas); +} + +function GetAdapterArchitecture() { + const device = Module["preinitializedWebGPUDevice"]; + const architecture = device.adapterInfo ? device.adapterInfo.architecture : "Unknown"; + return stringToNewUTF8(architecture); +} + +function GetAdapterDescription() { + const device = Module["preinitializedWebGPUDevice"]; + const description = device.adapterInfo ? device.adapterInfo.description : "Unknown"; + return stringToNewUTF8(description); +} + +function GetAdapterDeviceName() { + const device = Module["preinitializedWebGPUDevice"]; + const deviceName = device.adapterInfo ? device.adapterInfo.device : "Unknown"; + return stringToNewUTF8(deviceName); +} + +function GetAdapterVendor() { + const device = Module["preinitializedWebGPUDevice"]; + const vendor = device.adapterInfo ? device.adapterInfo.vendor : "Unknown"; + return stringToNewUTF8(vendor); +} + +function __asyncjs__mediapipe_map_buffer_jspi(buffer_handle, data) { + return Asyncify.handleAsync(async () => { + const buffer = WebGPU.getJsObject(buffer_handle); + if ("mapSync" in buffer) { + buffer.mapSync(GPUMapMode.READ); + } else { + await buffer.mapAsync(GPUMapMode.READ); + } + const mapped = buffer.getMappedRange(); + HEAPU8.set(new Uint8Array(mapped), data); + buffer.unmap(); + }); +} + +function JsWrapErrorListener(code, message) { + if (Module.errorListener) { + const stringMessage = UTF8ToString(message); + Module.errorListener(code, stringMessage); + } +} + +function UseBottomLeftGpuOrigin() { + return (Module && Module.gpuOriginForWebTexturesIsBottomLeft); +} + +function custom_emscripten_dbgn(str, len) { + if (typeof (dbg) !== "undefined") { + dbg(UTF8ToString(str, len)); + } else { + if (typeof (custom_dbg) === "undefined") { + function custom_dbg(text) { + console.warn.apply(console, arguments); + } + } + custom_dbg(UTF8ToString(str, len)); + } +} + +// Imports from the Wasm binary. +var _free, _malloc, _wgpuDeviceAddRef, _addBoundTextureAsImageToStream, _attachImageListener, _attachImageVectorListener, _registerModelResourcesGraphService, _bindTextureToStream, _addBoundTextureToStream, _addDoubleToInputStream, _addFloatToInputStream, _addBoolToInputStream, _addIntToInputStream, _addUintToInputStream, _addStringToInputStream, _addRawDataSpanToInputStream, _allocateBoolVector, _allocateFloatVector, _allocateDoubleVector, _allocateIntVector, _allocateUintVector, _allocateStringVector, _addBoolVectorEntry, _addFloatVectorEntry, _addDoubleVectorEntry, _addIntVectorEntry, _addUintVectorEntry, _addStringVectorEntry, _addBoolVectorToInputStream, _addFloatVectorToInputStream, _addDoubleVectorToInputStream, _addIntVectorToInputStream, _addUintVectorToInputStream, _addStringVectorToInputStream, _addFlatHashMapToInputStream, _addProtoToInputStream, _addEmptyPacketToInputStream, _addBoolToInputSidePacket, _addDoubleToInputSidePacket, _addFloatToInputSidePacket, _addIntToInputSidePacket, _addUintToInputSidePacket, _addStringToInputSidePacket, _addRawDataSpanToInputSidePacket, _addProtoToInputSidePacket, _addBoolVectorToInputSidePacket, _addDoubleVectorToInputSidePacket, _addFloatVectorToInputSidePacket, _addIntVectorToInputSidePacket, _addUintVectorToInputSidePacket, _addStringVectorToInputSidePacket, _attachBoolListener, _attachBoolVectorListener, _attachDoubleListener, _attachDoubleVectorListener, _attachFloatListener, _attachFloatVectorListener, _attachIntListener, _attachIntVectorListener, _attachUintListener, _attachUintVectorListener, _attachStringListener, _attachStringVectorListener, _attachProtoListener, _attachProtoVectorListener, _getGraphConfig, ___getTypeName, _emwgpuCreateBindGroup, _emwgpuCreateBindGroupLayout, _emwgpuCreateCommandBuffer, _emwgpuCreateCommandEncoder, _emwgpuCreateComputePassEncoder, _emwgpuCreateComputePipeline, _emwgpuCreateExternalTexture, _emwgpuCreatePipelineLayout, _emwgpuCreateQuerySet, _emwgpuCreateRenderBundle, _emwgpuCreateRenderBundleEncoder, _emwgpuCreateRenderPassEncoder, _emwgpuCreateRenderPipeline, _emwgpuCreateSampler, _emwgpuCreateSurface, _emwgpuCreateTexture, _emwgpuCreateTextureView, _emwgpuCreateAdapter, _emwgpuImportBuffer, _emwgpuCreateDevice, _emwgpuCreateQueue, _emwgpuCreateShaderModule, _emwgpuOnCreateComputePipelineCompleted, _emwgpuOnCreateRenderPipelineCompleted, _clearSubgraphs, _pushBinarySubgraph, _pushTextSubgraph, _changeBinaryGraph, _changeTextGraph, _processGl, _process, _bindTextureToCanvas, _requestShaderRefreshOnGraphChange, _waitUntilIdle, _closeGraph, _setAutoRenderToScreen, _emscripten_builtin_memalign, _memalign, __emscripten_tempret_set, __emscripten_stack_restore, __emscripten_stack_alloc, _emscripten_stack_get_current, dynCall_ji, dynCall_jii, dynCall_iiiijij, dynCall_viiji, dynCall_viji, dynCall_iiiji, dynCall_jjj, dynCall_iiiijj, dynCall_viijj, dynCall_viiijjj, dynCall_vij, dynCall_viijii, dynCall_viiiji, dynCall_vijjj, dynCall_vj, dynCall_viij, dynCall_jiji, dynCall_iiiiij, dynCall_iiiiijj, dynCall_iiiiiijj, memory, _kVersionStampBuildChangelistStr, _kVersionStampCitcSnapshotStr, _kVersionStampCitcWorkspaceIdStr, _kVersionStampSourceUriStr, _kVersionStampBuildClientStr, _kVersionStampBuildClientMintStatusStr, _kVersionStampBuildCompilerStr, _kVersionStampBuildDateTimePstStr, _kVersionStampBuildDepotPathStr, _kVersionStampBuildIdStr, _kVersionStampBuildInfoStr, _kVersionStampBuildLabelStr, _kVersionStampBuildTargetStr, _kVersionStampBuildTimestampStr, _kVersionStampBuildToolStr, _kVersionStampG3BuildTargetStr, _kVersionStampVerifiableStr, _kVersionStampBuildFdoTypeStr, _kVersionStampBuildBaselineChangelistStr, _kVersionStampBuildLtoTypeStr, _kVersionStampBuildPropellerTypeStr, _kVersionStampBuildPghoTypeStr, _kVersionStampBuildUsernameStr, _kVersionStampBuildHostnameStr, _kVersionStampBuildDirectoryStr, _kVersionStampBuildChangelistInt, _kVersionStampCitcSnapshotInt, _kVersionStampBuildClientMintStatusInt, _kVersionStampBuildTimestampInt, _kVersionStampVerifiableInt, _kVersionStampBuildCoverageEnabledInt, _kVersionStampBuildBaselineChangelistInt, _kVersionStampPrecookedTimestampStr, _kVersionStampPrecookedClientInfoStr, __indirect_function_table, wasmMemory, wasmTable; + +function assignWasmExports(wasmExports) { + _free = Module["_free"] = wasmExports["Sd"]; + _malloc = Module["_malloc"] = wasmExports["Td"]; + _wgpuDeviceAddRef = wasmExports["Ud"]; + _addBoundTextureAsImageToStream = Module["_addBoundTextureAsImageToStream"] = wasmExports["Vd"]; + _attachImageListener = Module["_attachImageListener"] = wasmExports["Wd"]; + _attachImageVectorListener = Module["_attachImageVectorListener"] = wasmExports["Xd"]; + _registerModelResourcesGraphService = Module["_registerModelResourcesGraphService"] = wasmExports["Yd"]; + _bindTextureToStream = Module["_bindTextureToStream"] = wasmExports["Zd"]; + _addBoundTextureToStream = Module["_addBoundTextureToStream"] = wasmExports["_d"]; + _addDoubleToInputStream = Module["_addDoubleToInputStream"] = wasmExports["$d"]; + _addFloatToInputStream = Module["_addFloatToInputStream"] = wasmExports["ae"]; + _addBoolToInputStream = Module["_addBoolToInputStream"] = wasmExports["be"]; + _addIntToInputStream = Module["_addIntToInputStream"] = wasmExports["ce"]; + _addUintToInputStream = Module["_addUintToInputStream"] = wasmExports["de"]; + _addStringToInputStream = Module["_addStringToInputStream"] = wasmExports["ee"]; + _addRawDataSpanToInputStream = Module["_addRawDataSpanToInputStream"] = wasmExports["fe"]; + _allocateBoolVector = Module["_allocateBoolVector"] = wasmExports["ge"]; + _allocateFloatVector = Module["_allocateFloatVector"] = wasmExports["he"]; + _allocateDoubleVector = Module["_allocateDoubleVector"] = wasmExports["ie"]; + _allocateIntVector = Module["_allocateIntVector"] = wasmExports["je"]; + _allocateUintVector = Module["_allocateUintVector"] = wasmExports["ke"]; + _allocateStringVector = Module["_allocateStringVector"] = wasmExports["le"]; + _addBoolVectorEntry = Module["_addBoolVectorEntry"] = wasmExports["me"]; + _addFloatVectorEntry = Module["_addFloatVectorEntry"] = wasmExports["ne"]; + _addDoubleVectorEntry = Module["_addDoubleVectorEntry"] = wasmExports["oe"]; + _addIntVectorEntry = Module["_addIntVectorEntry"] = wasmExports["pe"]; + _addUintVectorEntry = Module["_addUintVectorEntry"] = wasmExports["qe"]; + _addStringVectorEntry = Module["_addStringVectorEntry"] = wasmExports["re"]; + _addBoolVectorToInputStream = Module["_addBoolVectorToInputStream"] = wasmExports["se"]; + _addFloatVectorToInputStream = Module["_addFloatVectorToInputStream"] = wasmExports["te"]; + _addDoubleVectorToInputStream = Module["_addDoubleVectorToInputStream"] = wasmExports["ue"]; + _addIntVectorToInputStream = Module["_addIntVectorToInputStream"] = wasmExports["ve"]; + _addUintVectorToInputStream = Module["_addUintVectorToInputStream"] = wasmExports["we"]; + _addStringVectorToInputStream = Module["_addStringVectorToInputStream"] = wasmExports["xe"]; + _addFlatHashMapToInputStream = Module["_addFlatHashMapToInputStream"] = wasmExports["ye"]; + _addProtoToInputStream = Module["_addProtoToInputStream"] = wasmExports["ze"]; + _addEmptyPacketToInputStream = Module["_addEmptyPacketToInputStream"] = wasmExports["Ae"]; + _addBoolToInputSidePacket = Module["_addBoolToInputSidePacket"] = wasmExports["Be"]; + _addDoubleToInputSidePacket = Module["_addDoubleToInputSidePacket"] = wasmExports["Ce"]; + _addFloatToInputSidePacket = Module["_addFloatToInputSidePacket"] = wasmExports["De"]; + _addIntToInputSidePacket = Module["_addIntToInputSidePacket"] = wasmExports["Ee"]; + _addUintToInputSidePacket = Module["_addUintToInputSidePacket"] = wasmExports["Fe"]; + _addStringToInputSidePacket = Module["_addStringToInputSidePacket"] = wasmExports["Ge"]; + _addRawDataSpanToInputSidePacket = Module["_addRawDataSpanToInputSidePacket"] = wasmExports["He"]; + _addProtoToInputSidePacket = Module["_addProtoToInputSidePacket"] = wasmExports["Ie"]; + _addBoolVectorToInputSidePacket = Module["_addBoolVectorToInputSidePacket"] = wasmExports["Je"]; + _addDoubleVectorToInputSidePacket = Module["_addDoubleVectorToInputSidePacket"] = wasmExports["Ke"]; + _addFloatVectorToInputSidePacket = Module["_addFloatVectorToInputSidePacket"] = wasmExports["Le"]; + _addIntVectorToInputSidePacket = Module["_addIntVectorToInputSidePacket"] = wasmExports["Me"]; + _addUintVectorToInputSidePacket = Module["_addUintVectorToInputSidePacket"] = wasmExports["Ne"]; + _addStringVectorToInputSidePacket = Module["_addStringVectorToInputSidePacket"] = wasmExports["Oe"]; + _attachBoolListener = Module["_attachBoolListener"] = wasmExports["Pe"]; + _attachBoolVectorListener = Module["_attachBoolVectorListener"] = wasmExports["Qe"]; + _attachDoubleListener = Module["_attachDoubleListener"] = wasmExports["Re"]; + _attachDoubleVectorListener = Module["_attachDoubleVectorListener"] = wasmExports["Se"]; + _attachFloatListener = Module["_attachFloatListener"] = wasmExports["Te"]; + _attachFloatVectorListener = Module["_attachFloatVectorListener"] = wasmExports["Ue"]; + _attachIntListener = Module["_attachIntListener"] = wasmExports["Ve"]; + _attachIntVectorListener = Module["_attachIntVectorListener"] = wasmExports["We"]; + _attachUintListener = Module["_attachUintListener"] = wasmExports["Xe"]; + _attachUintVectorListener = Module["_attachUintVectorListener"] = wasmExports["Ye"]; + _attachStringListener = Module["_attachStringListener"] = wasmExports["Ze"]; + _attachStringVectorListener = Module["_attachStringVectorListener"] = wasmExports["_e"]; + _attachProtoListener = Module["_attachProtoListener"] = wasmExports["$e"]; + _attachProtoVectorListener = Module["_attachProtoVectorListener"] = wasmExports["af"]; + _getGraphConfig = Module["_getGraphConfig"] = wasmExports["bf"]; + ___getTypeName = wasmExports["cf"]; + _emwgpuCreateBindGroup = wasmExports["df"]; + _emwgpuCreateBindGroupLayout = wasmExports["ef"]; + _emwgpuCreateCommandBuffer = wasmExports["ff"]; + _emwgpuCreateCommandEncoder = wasmExports["gf"]; + _emwgpuCreateComputePassEncoder = wasmExports["hf"]; + _emwgpuCreateComputePipeline = wasmExports["jf"]; + _emwgpuCreateExternalTexture = wasmExports["kf"]; + _emwgpuCreatePipelineLayout = wasmExports["lf"]; + _emwgpuCreateQuerySet = wasmExports["mf"]; + _emwgpuCreateRenderBundle = wasmExports["nf"]; + _emwgpuCreateRenderBundleEncoder = wasmExports["of"]; + _emwgpuCreateRenderPassEncoder = wasmExports["pf"]; + _emwgpuCreateRenderPipeline = wasmExports["qf"]; + _emwgpuCreateSampler = wasmExports["rf"]; + _emwgpuCreateSurface = wasmExports["sf"]; + _emwgpuCreateTexture = wasmExports["tf"]; + _emwgpuCreateTextureView = wasmExports["uf"]; + _emwgpuCreateAdapter = wasmExports["vf"]; + _emwgpuImportBuffer = wasmExports["wf"]; + _emwgpuCreateDevice = wasmExports["xf"]; + _emwgpuCreateQueue = wasmExports["yf"]; + _emwgpuCreateShaderModule = wasmExports["zf"]; + _emwgpuOnCreateComputePipelineCompleted = wasmExports["Af"]; + _emwgpuOnCreateRenderPipelineCompleted = wasmExports["Bf"]; + _clearSubgraphs = Module["_clearSubgraphs"] = wasmExports["Cf"]; + _pushBinarySubgraph = Module["_pushBinarySubgraph"] = wasmExports["Df"]; + _pushTextSubgraph = Module["_pushTextSubgraph"] = wasmExports["Ef"]; + _changeBinaryGraph = Module["_changeBinaryGraph"] = wasmExports["Ff"]; + _changeTextGraph = Module["_changeTextGraph"] = wasmExports["Gf"]; + _processGl = Module["_processGl"] = wasmExports["Hf"]; + _process = Module["_process"] = wasmExports["If"]; + _bindTextureToCanvas = Module["_bindTextureToCanvas"] = wasmExports["Jf"]; + _requestShaderRefreshOnGraphChange = Module["_requestShaderRefreshOnGraphChange"] = wasmExports["Kf"]; + _waitUntilIdle = Module["_waitUntilIdle"] = wasmExports["Lf"]; + _closeGraph = Module["_closeGraph"] = wasmExports["Mf"]; + _setAutoRenderToScreen = Module["_setAutoRenderToScreen"] = wasmExports["Nf"]; + _emscripten_builtin_memalign = wasmExports["Of"]; + _memalign = wasmExports["Pf"]; + __emscripten_tempret_set = wasmExports["Qf"]; + __emscripten_stack_restore = wasmExports["Rf"]; + __emscripten_stack_alloc = wasmExports["Sf"]; + _emscripten_stack_get_current = wasmExports["Tf"]; + dynCall_ji = wasmExports["dynCall_ji"]; + dynCall_jii = wasmExports["dynCall_jii"]; + dynCall_iiiijij = wasmExports["dynCall_iiiijij"]; + dynCall_viiji = wasmExports["dynCall_viiji"]; + dynCall_viji = wasmExports["dynCall_viji"]; + dynCall_iiiji = wasmExports["dynCall_iiiji"]; + dynCall_jjj = wasmExports["dynCall_jjj"]; + dynCall_iiiijj = wasmExports["dynCall_iiiijj"]; + dynCall_viijj = wasmExports["dynCall_viijj"]; + dynCall_viiijjj = wasmExports["dynCall_viiijjj"]; + dynCall_vij = wasmExports["dynCall_vij"]; + dynCall_viijii = wasmExports["dynCall_viijii"]; + dynCall_viiiji = wasmExports["dynCall_viiiji"]; + dynCall_vijjj = wasmExports["dynCall_vijjj"]; + dynCall_vj = wasmExports["dynCall_vj"]; + dynCall_viij = wasmExports["dynCall_viij"]; + dynCall_jiji = wasmExports["dynCall_jiji"]; + dynCall_iiiiij = wasmExports["dynCall_iiiiij"]; + dynCall_iiiiijj = wasmExports["dynCall_iiiiijj"]; + dynCall_iiiiiijj = wasmExports["dynCall_iiiiiijj"]; + memory = wasmMemory = wasmExports["hd"]; + _kVersionStampBuildChangelistStr = Module["_kVersionStampBuildChangelistStr"] = wasmExports["jd"].value; + _kVersionStampCitcSnapshotStr = Module["_kVersionStampCitcSnapshotStr"] = wasmExports["kd"].value; + _kVersionStampCitcWorkspaceIdStr = Module["_kVersionStampCitcWorkspaceIdStr"] = wasmExports["ld"].value; + _kVersionStampSourceUriStr = Module["_kVersionStampSourceUriStr"] = wasmExports["md"].value; + _kVersionStampBuildClientStr = Module["_kVersionStampBuildClientStr"] = wasmExports["nd"].value; + _kVersionStampBuildClientMintStatusStr = Module["_kVersionStampBuildClientMintStatusStr"] = wasmExports["od"].value; + _kVersionStampBuildCompilerStr = Module["_kVersionStampBuildCompilerStr"] = wasmExports["pd"].value; + _kVersionStampBuildDateTimePstStr = Module["_kVersionStampBuildDateTimePstStr"] = wasmExports["qd"].value; + _kVersionStampBuildDepotPathStr = Module["_kVersionStampBuildDepotPathStr"] = wasmExports["rd"].value; + _kVersionStampBuildIdStr = Module["_kVersionStampBuildIdStr"] = wasmExports["sd"].value; + _kVersionStampBuildInfoStr = Module["_kVersionStampBuildInfoStr"] = wasmExports["td"].value; + _kVersionStampBuildLabelStr = Module["_kVersionStampBuildLabelStr"] = wasmExports["ud"].value; + _kVersionStampBuildTargetStr = Module["_kVersionStampBuildTargetStr"] = wasmExports["vd"].value; + _kVersionStampBuildTimestampStr = Module["_kVersionStampBuildTimestampStr"] = wasmExports["wd"].value; + _kVersionStampBuildToolStr = Module["_kVersionStampBuildToolStr"] = wasmExports["xd"].value; + _kVersionStampG3BuildTargetStr = Module["_kVersionStampG3BuildTargetStr"] = wasmExports["yd"].value; + _kVersionStampVerifiableStr = Module["_kVersionStampVerifiableStr"] = wasmExports["zd"].value; + _kVersionStampBuildFdoTypeStr = Module["_kVersionStampBuildFdoTypeStr"] = wasmExports["Ad"].value; + _kVersionStampBuildBaselineChangelistStr = Module["_kVersionStampBuildBaselineChangelistStr"] = wasmExports["Bd"].value; + _kVersionStampBuildLtoTypeStr = Module["_kVersionStampBuildLtoTypeStr"] = wasmExports["Cd"].value; + _kVersionStampBuildPropellerTypeStr = Module["_kVersionStampBuildPropellerTypeStr"] = wasmExports["Dd"].value; + _kVersionStampBuildPghoTypeStr = Module["_kVersionStampBuildPghoTypeStr"] = wasmExports["Ed"].value; + _kVersionStampBuildUsernameStr = Module["_kVersionStampBuildUsernameStr"] = wasmExports["Fd"].value; + _kVersionStampBuildHostnameStr = Module["_kVersionStampBuildHostnameStr"] = wasmExports["Gd"].value; + _kVersionStampBuildDirectoryStr = Module["_kVersionStampBuildDirectoryStr"] = wasmExports["Hd"].value; + _kVersionStampBuildChangelistInt = Module["_kVersionStampBuildChangelistInt"] = wasmExports["Id"].value; + _kVersionStampCitcSnapshotInt = Module["_kVersionStampCitcSnapshotInt"] = wasmExports["Jd"].value; + _kVersionStampBuildClientMintStatusInt = Module["_kVersionStampBuildClientMintStatusInt"] = wasmExports["Kd"].value; + _kVersionStampBuildTimestampInt = Module["_kVersionStampBuildTimestampInt"] = wasmExports["Ld"].value; + _kVersionStampVerifiableInt = Module["_kVersionStampVerifiableInt"] = wasmExports["Md"].value; + _kVersionStampBuildCoverageEnabledInt = Module["_kVersionStampBuildCoverageEnabledInt"] = wasmExports["Nd"].value; + _kVersionStampBuildBaselineChangelistInt = Module["_kVersionStampBuildBaselineChangelistInt"] = wasmExports["Od"].value; + _kVersionStampPrecookedTimestampStr = Module["_kVersionStampPrecookedTimestampStr"] = wasmExports["Pd"].value; + _kVersionStampPrecookedClientInfoStr = Module["_kVersionStampPrecookedClientInfoStr"] = wasmExports["Qd"].value; + __indirect_function_table = wasmTable = wasmExports["Rd"]; +} + +var wasmImports = { + /** @export */ gd: BeginGlQueryTiming, + /** @export */ fd: EndGlQueryTiming, + /** @export */ ed: GetAdapterArchitecture, + /** @export */ dd: GetAdapterDescription, + /** @export */ cd: GetAdapterDeviceName, + /** @export */ bd: GetAdapterVendor, + /** @export */ ad: JsOnEmptyPacketListener, + /** @export */ $c: JsOnFloat32ArrayImageListener, + /** @export */ _c: JsOnFloat32ArrayImageVectorListener, + /** @export */ ob: JsOnSimpleListenerBinaryArray, + /** @export */ Zc: JsOnSimpleListenerBool, + /** @export */ Yc: JsOnSimpleListenerDouble, + /** @export */ Xc: JsOnSimpleListenerFloat, + /** @export */ Wc: JsOnSimpleListenerInt, + /** @export */ Vc: JsOnSimpleListenerString, + /** @export */ Uc: JsOnSimpleListenerUint, + /** @export */ Tc: JsOnUint8ArrayImageListener, + /** @export */ Sc: JsOnUint8ArrayImageVectorListener, + /** @export */ O: JsOnVectorFinishedListener, + /** @export */ Rc: JsOnVectorListenerBool, + /** @export */ Qc: JsOnVectorListenerDouble, + /** @export */ Pc: JsOnVectorListenerFloat, + /** @export */ Oc: JsOnVectorListenerInt, + /** @export */ Nc: JsOnVectorListenerProto, + /** @export */ Mc: JsOnVectorListenerString, + /** @export */ Lc: JsOnVectorListenerUint, + /** @export */ Kc: JsOnWebGLTextureListener, + /** @export */ Jc: JsOnWebGLTextureVectorListener, + /** @export */ Oa: JsWrapErrorListener, + /** @export */ nb: JsWrapImageConverter, + /** @export */ u: JsWrapSimpleListeners, + /** @export */ mb: UseBottomLeftGpuOrigin, + /** @export */ xb: __asyncjs__mediapipe_map_buffer_jspi, + /** @export */ r: ___cxa_throw, + /** @export */ Ic: ___syscall_dup, + /** @export */ Hc: ___syscall_faccessat, + /** @export */ lb: ___syscall_fcntl64, + /** @export */ Gc: ___syscall_fstat64, + /** @export */ Lb: ___syscall_ftruncate64, + /** @export */ Fc: ___syscall_ioctl, + /** @export */ Ec: ___syscall_lstat64, + /** @export */ Dc: ___syscall_newfstatat, + /** @export */ kb: ___syscall_openat, + /** @export */ Cc: ___syscall_stat64, + /** @export */ xc: __abort_js, + /** @export */ Ib: __embind_register_bigint, + /** @export */ wc: __embind_register_bool, + /** @export */ vc: __embind_register_emval, + /** @export */ ib: __embind_register_float, + /** @export */ I: __embind_register_integer, + /** @export */ q: __embind_register_memory_view, + /** @export */ uc: __embind_register_std_string, + /** @export */ La: __embind_register_std_wstring, + /** @export */ tc: __embind_register_void, + /** @export */ $: __emval_create_invoker, + /** @export */ p: __emval_decref, + /** @export */ Ka: __emval_get_global, + /** @export */ hb: __emval_get_property, + /** @export */ ja: __emval_incref, + /** @export */ Ja: __emval_instanceof, + /** @export */ _: __emval_invoke, + /** @export */ ua: __emval_new_cstring, + /** @export */ Z: __emval_run_destructors, + /** @export */ gb: __emval_set_property, + /** @export */ sc: __emval_typeof, + /** @export */ Hb: __gmtime_js, + /** @export */ Gb: __localtime_js, + /** @export */ Fb: __mktime_js, + /** @export */ Eb: __mmap_js, + /** @export */ Db: __munmap_js, + /** @export */ rc: __tzset_js, + /** @export */ Kb: _clock_time_get, + /** @export */ qc: custom_emscripten_dbgn, + /** @export */ Y: _emscripten_asm_const_int, + /** @export */ fb: _emscripten_asm_const_ptr, + /** @export */ Ia: _emscripten_errn, + /** @export */ pc: _emscripten_get_heap_max, + /** @export */ y: _emscripten_get_now, + /** @export */ ia: _emscripten_has_asyncify, + /** @export */ oc: _emscripten_outn, + /** @export */ nc: _emscripten_pc_get_function, + /** @export */ mc: _emscripten_resize_heap, + /** @export */ eb: _emscripten_stack_snapshot, + /** @export */ lc: _emscripten_stack_unwind_buffer, + /** @export */ kc: _emscripten_webgl_create_context, + /** @export */ jc: _emscripten_webgl_destroy_context, + /** @export */ ic: _emscripten_webgl_get_context_attributes, + /** @export */ ha: _emscripten_webgl_get_current_context, + /** @export */ hc: _emscripten_webgl_make_context_current, + /** @export */ Q: _emscripten_webgpu_get_device, + /** @export */ gc: _emwgpuBufferDestroy, + /** @export */ fc: _emwgpuBufferGetMappedRange, + /** @export */ ec: _emwgpuBufferUnmap, + /** @export */ x: _emwgpuDelete, + /** @export */ dc: _emwgpuDeviceCreateBuffer, + /** @export */ Cb: _emwgpuDeviceCreateComputePipelineAsync, + /** @export */ Bb: _emwgpuDeviceCreateRenderPipelineAsync, + /** @export */ cc: _emwgpuDeviceCreateShaderModule, + /** @export */ bc: _emwgpuDeviceDestroy, + /** @export */ ac: _emwgpuWaitAny, + /** @export */ Bc: _environ_get, + /** @export */ Ac: _environ_sizes_get, + /** @export */ db: _exit, + /** @export */ Na: _fd_close, + /** @export */ jb: _fd_read, + /** @export */ Jb: _fd_seek, + /** @export */ Ma: _fd_write, + /** @export */ b: _glActiveTexture, + /** @export */ ta: _glAttachShader, + /** @export */ $b: _glBindAttribLocation, + /** @export */ c: _glBindBuffer, + /** @export */ cb: _glBindBufferBase, + /** @export */ t: _glBindFramebuffer, + /** @export */ a: _glBindTexture, + /** @export */ m: _glBindVertexArray, + /** @export */ bb: _glBlendEquation, + /** @export */ _b: _glBlendFunc, + /** @export */ j: _glBufferData, + /** @export */ H: _glClear, + /** @export */ X: _glClearColor, + /** @export */ da: _glClientWaitSync, + /** @export */ ga: _glColorMask, + /** @export */ ab: _glCompileShader, + /** @export */ $a: _glCreateProgram, + /** @export */ _a: _glCreateShader, + /** @export */ o: _glDeleteBuffers, + /** @export */ P: _glDeleteFramebuffers, + /** @export */ h: _glDeleteProgram, + /** @export */ sa: _glDeleteShader, + /** @export */ ra: _glDeleteSync, + /** @export */ D: _glDeleteTextures, + /** @export */ A: _glDeleteVertexArrays, + /** @export */ Za: _glDetachShader, + /** @export */ G: _glDisable, + /** @export */ n: _glDisableVertexAttribArray, + /** @export */ i: _glDrawArrays, + /** @export */ fa: _glDrawBuffers, + /** @export */ Zb: _glEnable, + /** @export */ l: _glEnableVertexAttribArray, + /** @export */ Ya: _glFenceSync, + /** @export */ qa: _glFinish, + /** @export */ v: _glFlush, + /** @export */ C: _glFramebufferTexture2D, + /** @export */ Xa: _glFramebufferTextureLayer, + /** @export */ s: _glGenBuffers, + /** @export */ W: _glGenFramebuffers, + /** @export */ F: _glGenTextures, + /** @export */ B: _glGenVertexArrays, + /** @export */ Wa: _glGetAttribLocation, + /** @export */ ea: _glGetError, + /** @export */ Yb: _glGetFloatv, + /** @export */ w: _glGetIntegerv, + /** @export */ Xb: _glGetProgramiv, + /** @export */ Wb: _glGetShaderInfoLog, + /** @export */ Vb: _glGetShaderiv, + /** @export */ N: _glGetString, + /** @export */ Ub: _glGetUniformBlockIndex, + /** @export */ d: _glGetUniformLocation, + /** @export */ Tb: _glLineWidth, + /** @export */ Va: _glLinkProgram, + /** @export */ pa: _glPixelStorei, + /** @export */ oa: _glReadPixels, + /** @export */ Ua: _glShaderSource, + /** @export */ E: _glTexImage2D, + /** @export */ na: _glTexParameterf, + /** @export */ Ta: _glTexParameterfv, + /** @export */ f: _glTexParameteri, + /** @export */ ma: _glTexStorage2D, + /** @export */ Sb: _glTexStorage3D, + /** @export */ V: _glTexSubImage2D, + /** @export */ Rb: _glTexSubImage3D, + /** @export */ M: _glUniform1f, + /** @export */ la: _glUniform1fv, + /** @export */ e: _glUniform1i, + /** @export */ U: _glUniform2f, + /** @export */ Qb: _glUniform2fv, + /** @export */ Ha: _glUniform3f, + /** @export */ Sa: _glUniform4f, + /** @export */ T: _glUniform4fv, + /** @export */ Pb: _glUniform4iv, + /** @export */ Ob: _glUniformBlockBinding, + /** @export */ Nb: _glUniformMatrix2fv, + /** @export */ Mb: _glUniformMatrix3fv, + /** @export */ Ga: _glUniformMatrix4fv, + /** @export */ g: _glUseProgram, + /** @export */ k: _glVertexAttribPointer, + /** @export */ S: _glViewport, + /** @export */ Ab: mediapipe_create_utility_canvas2d, + /** @export */ zb: _mediapipe_find_canvas_event_target, + /** @export */ yb: mediapipe_import_external_texture, + /** @export */ wb: _mediapipe_webgl_tex_image_drawable, + /** @export */ zc: _proc_exit, + /** @export */ yc: _random_get, + /** @export */ Fa: _wgpuCommandEncoderBeginComputePass, + /** @export */ Ea: _wgpuCommandEncoderBeginRenderPass, + /** @export */ vb: _wgpuCommandEncoderCopyBufferToTexture, + /** @export */ ub: _wgpuCommandEncoderCopyTextureToBuffer, + /** @export */ tb: _wgpuCommandEncoderCopyTextureToTexture, + /** @export */ L: _wgpuCommandEncoderFinish, + /** @export */ Da: _wgpuComputePassEncoderDispatchWorkgroups, + /** @export */ Ca: _wgpuComputePassEncoderEnd, + /** @export */ Ba: _wgpuComputePassEncoderSetBindGroup, + /** @export */ Aa: _wgpuComputePassEncoderSetPipeline, + /** @export */ za: _wgpuComputePipelineGetBindGroupLayout, + /** @export */ ca: _wgpuDeviceCreateBindGroup, + /** @export */ sb: _wgpuDeviceCreateBindGroupLayout, + /** @export */ K: _wgpuDeviceCreateCommandEncoder, + /** @export */ rb: _wgpuDeviceCreateComputePipeline, + /** @export */ qb: _wgpuDeviceCreatePipelineLayout, + /** @export */ Ra: _wgpuDeviceCreateRenderPipeline, + /** @export */ R: _wgpuDeviceCreateSampler, + /** @export */ ba: _wgpuDeviceCreateTexture, + /** @export */ J: _wgpuQueueSubmit, + /** @export */ ka: _wgpuQueueWriteBuffer, + /** @export */ pb: _wgpuQueueWriteTexture, + /** @export */ ya: _wgpuRenderPassEncoderDraw, + /** @export */ xa: _wgpuRenderPassEncoderEnd, + /** @export */ wa: _wgpuRenderPassEncoderSetBindGroup, + /** @export */ va: _wgpuRenderPassEncoderSetPipeline, + /** @export */ Qa: _wgpuRenderPipelineGetBindGroupLayout, + /** @export */ z: _wgpuTextureCreateView, + /** @export */ Pa: _wgpuTextureDestroy, + /** @export */ aa: _wgpuTextureGetFormat +}; + +// include: postamble.js +// === Auto-generated postamble setup entry stuff === +function run() { + if (runDependencies > 0) { + dependenciesFulfilled = run; + return; + } + preRun(); + // a preRun added a dependency, run will be called later + if (runDependencies > 0) { + dependenciesFulfilled = run; + return; + } + function doRun() { + // run may have just been called through dependencies being fulfilled just in this very frame, + // or while the async setStatus time below was happening + Module["calledRun"] = true; + if (ABORT) return; + initRuntime(); + readyPromiseResolve?.(Module); + Module["onRuntimeInitialized"]?.(); + postRun(); + } + if (Module["setStatus"]) { + Module["setStatus"]("Running..."); + setTimeout(() => { + setTimeout(() => Module["setStatus"](""), 1); + doRun(); + }, 1); + } else { + doRun(); + } +} + +var wasmExports; + +// In modularize mode the generated code is within a factory function so we +// can use await here (since it's not top-level-await). +wasmExports = await (createWasm()); + +run(); + +// end include: postamble.js +// include: postamble_modularize.js +// In MODULARIZE mode we wrap the generated code in a factory function +// and return either the Module itself, or a promise of the module. +// We assign to the `moduleRtn` global here and configure closure to see +// this as an extern so it won't get minified. +if (runtimeInitialized) { + moduleRtn = Module; +} else { + // Set up the promise that indicates the Module is initialized + moduleRtn = new Promise((resolve, reject) => { + readyPromiseResolve = resolve; + readyPromiseReject = reject; + }); +} + + + return moduleRtn; + }; })(); -if (typeof exports === 'object' && typeof module === 'object') + +// Export using a UMD style export, or ES6 exports if selected +if (typeof exports === 'object' && typeof module === 'object') { module.exports = ModuleFactory; -else if (typeof define === 'function' && define['amd']) + // This default export looks redundant, but it allows TS to import this + // commonjs style module. + module.exports.default = ModuleFactory; +} else if (typeof define === 'function' && define['amd']) define([], () => ModuleFactory); + diff --git a/app/node_modules/@mediapipe/tasks-vision/wasm/vision_wasm_nosimd_internal.wasm b/app/node_modules/@mediapipe/tasks-vision/wasm/vision_wasm_nosimd_internal.wasm index af168466..8f95f5c3 100644 Binary files a/app/node_modules/@mediapipe/tasks-vision/wasm/vision_wasm_nosimd_internal.wasm and b/app/node_modules/@mediapipe/tasks-vision/wasm/vision_wasm_nosimd_internal.wasm differ diff --git a/app/src/components/modules/Settings.tsx b/app/src/components/modules/Settings.tsx index fa748e00..ea3c92da 100644 --- a/app/src/components/modules/Settings.tsx +++ b/app/src/components/modules/Settings.tsx @@ -618,7 +618,7 @@ function AboutSection() {

Velocity WebOS

Real Estate Operating System

- Version 2.1.0 + Version 2.2.0 CRM {token ? 'Authenticated session active' : 'No active session'}
diff --git a/app/src/store/useStore.ts b/app/src/store/useStore.ts index 2b8b7248..74d1f75f 100644 --- a/app/src/store/useStore.ts +++ b/app/src/store/useStore.ts @@ -189,7 +189,7 @@ export const useStore = create()( isConnected: false, serverStatus: 'syncing', lastSync: new Date(), - version: '2.1.0', + version: '2.2.0 CRM', }, updateStatus: (status) => set((state) => ({ status: { ...state.status, ...status }, diff --git a/delivery_log.md b/delivery_log.md deleted file mode 100644 index e537f0cf..00000000 --- a/delivery_log.md +++ /dev/null @@ -1,81 +0,0 @@ -# Delivery Log - -## Multi-Surface Platform and Oracle Expansion - -### Completed in this pass - -- Confirmed backend route families are registered in `backend/main.py`: - - `routes_mobile_edge.py` - - `routes_inventory.py` - - `routes_admin_surface.py` -- Confirmed Oracle extension artifacts already exist in the workspace: - - `backend/oracle/schema_extension_v2.sql` - - `backend/oracle/oracle_template_seed_db.json` -- Completed iPad residual navigation and feature views: - - Added `CommunicationsView.swift` - - Added `CalendarView.swift` - - Wired both into `ContentView.swift` -- Added Android tablet scaffold under `android-tablet/` - - Compose app shell - - Navigation graph - - Dashboard, Inventory, Oracle, Sentinel, and Settings feature stubs -- Added iPhone edge app scaffold under `iOS/velocity-edge-phone/` - - SwiftUI app entry - - Alerts, Lead Summary, Communications, Notes, Transcriptions, Settings -- Added Android phone edge scaffold under `android-edge-phone/` - - Compose app shell - - Alerts, Lead Summary, Communications, Notes, Transcriptions, Settings -- Added WebOS admin panel surface at `app/src/app/admin/page.tsx` -- Added `docs/KIMI_SYNTHETIC_DATA_DOWNSTREAM_PLAN.md` -- Hardened live auth/session behavior across WebOS: - - JWT roles are normalized to uppercase in `backend/auth/dependencies.py` - - WebOS session restore now re-validates the real backend token on reload in `app/src/App.tsx` - - Top-bar identity now renders the authenticated backend user instead of hard-coded operator text -- Removed misleading mock fallback behavior from active WebOS surfaces: - - `app/src/store/useStore.ts` now starts with empty/live-only state instead of fabricated leads, visitors, metrics, and units - - `app/src/hooks/useCrmBootstrap.ts` now hydrates CRM plus inventory state from backend data and clears state on failure instead of silently preserving fake data - - `app/src/lib/oracleQueryClient.ts` now throws when `VITE_ORACLE_QUERY_URL` is missing instead of generating mock Oracle answers -- Rebuilt the investor-facing WebOS dashboard around live backend data: - - `app/src/components/modules/Dashboard.tsx` now renders CRM lead counts, real conversation volume, inventory preview, velocity trends, sync state, and mobile-edge alerts - - Removed the previous fabricated AI chat, top performer, and static KPI content from the dashboard surface -- Extended the live inventory contract and frontend mapping: - - `backend/api/routes_inventory.py` now includes `price_bands` and `unit_mix` in property summary payloads - - `app/src/lib/velocityPlatformClient.ts` and `app/src/lib/platformMappers.ts` now map inventory properties into live Inventory module cards -- Reduced fabricated marketing behavior in Catalyst: - - `app/src/store/useMarketingStore.ts` now initializes empty instead of seeded mock campaigns/assets/insights/events - - `app/src/components/modules/Catalyst.tsx` no longer auto-generates fake optimization feed events - - `app/src/components/modules/CatalystMarketingTab.tsx` no longer exposes a synthetic lead seeding path from the production shell - - `app/src/components/modules/GroundTruthPicker.tsx` now requires real operator-provided assets instead of showing built-in sample media -- Oracle v1 client auth is now aligned with the main platform session: - - `app/src/oracle/lib/oracleApiClient.ts` will reuse the live Velocity token if a dedicated `oracle_jwt` is not present -- Completed final WebOS production pass: - - `app/src/app/admin/page.tsx` now stages real bounded admin actions through `POST /api/admin-surface/actions` - - `app/src/components/modules/Settings.tsx` now reflects truthful session/config state instead of fake device pairing and hard-coded profile data - - Removed inactive demo-only WebOS files such as `app/src/lib/oracleQueryClient.ts`, `app/src/oracle/lib/oracleDemoData.ts`, and `app/src/components/oracle/mockLeads.ts` -- Confirmed the iPad residual views are now live-backend readers rather than local static arrays: - - `iOS/velocity/velocity/Features/Communications/CommunicationsView.swift` - - `iOS/velocity/velocity/Features/Calendar/CalendarView.swift` - - `iOS/velocity/velocity/Core/Networking/VelocityAPIClient.swift` - - `iOS/velocity/velocity/Core/Config/AppConfig.swift` - -### MVP limits still in place - -- Android projects are scaffolds only; they are not yet wired to shared API clients, auth, or install registration. -- The iPhone edge scaffold is source-first and does not yet include a dedicated `.xcodeproj` target. -- The WebOS admin page is mounted into the live Vite shell and can now stage bounded actions against the backend audit trail; auto-execution remains intentionally out of scope. -- The iPad Communications and Calendar views read live backend data, but the broader iPad app still contains other legacy mock-backed modules outside this residual slice. -- The active WebOS runtime path has been hardened away from mock/demo behavior, but deeper non-WebOS workstream items remain out of scope for this pass, especially legacy iPad modules and simulator-only inventory/AR helpers on iOS. -- Oracle template seed metadata needs correction: `_meta.total_seed_examples` does not match the actual seed example count in `backend/oracle/oracle_template_seed_db.json`. -- Sprint-1 documentation artifacts called for in the delivery pack are still missing as committed repo outputs, including the residual audit artifact and contract/package documentation. - -### Verification steps run - -- Python syntax compilation for backend route files -- JSON validation for Oracle seed DB -- SQL parse sanity check on extension migration -- `npx tsc --noEmit` for the WebOS app after live-auth and no-mock hardening changes -- `python3 -m py_compile` for backend auth and route modules after role/session hardening - -### Recommended next implementation step - - WebOS is now the strongest completed surface. The next implementation step should move fully to iOS and Android completion while preserving the live backend/auth patterns established here.