{"version":3,"file":"shared-lib.BUPunInc.mjs","names":["e","e.default","useState","useMemo","useState","useRef","useRef","useState","useState","useRef","useCallback","copy","set","add","subtract","multiply","scale","normalize","dot","Vec3Func.length","Vec3Func.distance","Vec3Func.squaredLength","Vec3Func.squaredDistance","Vec3Func.dot","Vec3Func.exactEquals","Vec3Func.angle","tempVec3","ID","ID","ID","copy","set","normalize","dot","identity","multiply","invert","copy","vec4.copy","set","vec4.set","vec4.dot","vec4.normalize","QuatFunc.dot","copy","set","identity","invert","multiply","translate","scale","rotate","vec3.length","fromQuat","Mat4Func.getMaxScaleOnAxis","Mat4Func.determinant","ID","useRef","useState","useCallback","useRef","useMemo","__FramerMetadata__","React.forwardRef","useRef","React.useId","React.useMemo","metadataProvider","React.useContext","__FramerMetadata__","__FramerMetadata__"],"sources":["https:/ga.jspm.io/npm:react-dom@18.2.0/server.browser.js","https:/framerusercontent.com/modules/yiDyco0u2VIMCjawUp4K/SbAiryFn9g8ffjbuHQHj/GLUtils.js","https:/framer.com/m/GLUtils-cYf4.js","https:/framerusercontent.com/modules/MpdGPgep8CrmVuG8IclI/3flka5fkGcFUNVW00KRS/OGLUtils.js","https:/framer.com/m/OGLUtils-LEvG.js","https:/framerusercontent.com/modules/iz4j9aR1Hz2B8RkMogH4/AGDgcLdj5rKsWYMCweUZ/UseVariantValue.js","https:/framer.com/m/UseVariantValue-mxjI.js","https:/framerusercontent.com/modules/3Dc1qksRQy0igUBXLpC8/O0d7Tn7RulZ8jPX1N6S2/UseAnimatedValue.js","https:/framer.com/m/UseAnimatedValue-6Bkx.js","https:/framerusercontent.com/modules/DGJpj5NFNaYVLbwIQLV3/ITjnQ5HfCGlk0h6nR2c1/UseMedia.js","https:/framer.com/m/UseMedia-AW14.js","https:/unpkg.com/ogl@1.0.11/src/math/functions/Vec3Func.js","https:/unpkg.com/ogl@1.0.11/src/math/Vec3.js","https:/unpkg.com/ogl@1.0.11/src/core/Geometry.js","https:/unpkg.com/ogl@1.0.11/src/core/Program.js","https:/unpkg.com/ogl@1.0.11/src/core/Renderer.js","https:/unpkg.com/ogl@1.0.11/src/math/functions/Vec4Func.js","https:/unpkg.com/ogl@1.0.11/src/math/functions/QuatFunc.js","https:/unpkg.com/ogl@1.0.11/src/math/Quat.js","https:/unpkg.com/ogl@1.0.11/src/math/functions/Mat4Func.js","https:/unpkg.com/ogl@1.0.11/src/math/Mat4.js","https:/unpkg.com/ogl@1.0.11/src/math/functions/EulerFunc.js","https:/unpkg.com/ogl@1.0.11/src/math/Euler.js","https:/unpkg.com/ogl@1.0.11/src/core/Transform.js","https:/unpkg.com/ogl@1.0.11/src/core/Camera.js","https:/unpkg.com/ogl@1.0.11/src/math/functions/Mat3Func.js","https:/unpkg.com/ogl@1.0.11/src/math/Mat3.js","https:/unpkg.com/ogl@1.0.11/src/core/Mesh.js","https:/unpkg.com/ogl@1.0.11/src/core/Texture.js","https:/unpkg.com/ogl@1.0.11/src/extras/Plane.js","https:/unpkg.com/ogl@1.0.11/src/extras/Orbit.js","https:/unpkg.com/ogl@1.0.11/src/extras/Curve.js","https:/unpkg.com/ogl@1.0.11/src/extras/TextureLoader.js","https:/unpkg.com/ogl","https:/framerusercontent.com/modules/Qdd3eGacdk0a7XalD9lO/LmjERPAe2BydyHLwJYQM/UseOGLScene.js","https:/framer.com/m/UseOGLScene-gg2G.js","https:/framerusercontent.com/modules/IWgT8yiaQB1ANE0NMqwg/8ayv1Nd0kqvJztnJf2dA/UseSetup.js","https:/framerusercontent.com/modules/UVQxuNxfb4duWQiQLK64/Z99waoqfxP0ras9Gnxc2/Shaders.js","https:/framerusercontent.com/modules/A3vJuy2yziwT5fff6nNt/M7oXh8bQkCNBrUIDFAsE/OGL.js","https:/framerusercontent.com/modules/ZTYxvWWzwxxfmK6WP2oy/mJaMxajssSkfURwz07Wa/Glass.js","https:/framerusercontent.com/modules/t7MsQjIVuAu7tqWsarAP/gAEhQxOhpKbSAWiuJBjA/augiA20Il.js","https:/framerusercontent.com/modules/pY6yJ3LdrHrQnrmS9ZpV/ibRRfUzwQju4btUCdKjU/augiA20Il.js","https:/framerusercontent.com/modules/4qkMMuVBIRuFRQYVM67r/qH1mV97ZBJ4eYn2F4cRr/snippets.js","https:/framerusercontent.com/modules/7cPhjQw0EGNBHRZlzbhH/4hSO1fMoujYmMhk8FjXZ/NotFoundPage.js","https:/framer.com/m/framer/SitesNotFoundPage.js@1.4.0"],"sourcesContent":["import*as e from\"react\";var n=\"default\"in e?e.default:e;var a={};var o=n;function l$2(e){for(var n=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+e,a=1;a<arguments.length;a++)n+=\"&args[]=\"+encodeURIComponent(arguments[a]);return\"Minified React error #\"+e+\"; visit \"+n+\" for the full message or use the non-minified dev environment for full errors and additional helpful warnings.\"}var l=Object.prototype.hasOwnProperty,i=/^[:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD][:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\-.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040]*$/,s={},c={};function ja$1(e){if(l.call(c,e))return!0;if(l.call(s,e))return!1;if(i.test(e))return c[e]=!0;s[e]=!0;return!1}function r(e,n,a,o,l,i,s){this.acceptsBooleans=2===n||3===n||4===n;this.attributeName=o;this.attributeNamespace=l;this.mustUseProperty=a;this.propertyName=e;this.type=n;this.sanitizeURL=i;this.removeEmptyString=s}var d={};\"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style\".split(\" \").forEach((function(e){d[e]=new r(e,0,!1,e,null,!1,!1)}));[[\"acceptCharset\",\"accept-charset\"],[\"className\",\"class\"],[\"htmlFor\",\"for\"],[\"httpEquiv\",\"http-equiv\"]].forEach((function(e){var n=e[0];d[n]=new r(n,1,!1,e[1],null,!1,!1)}));[\"contentEditable\",\"draggable\",\"spellCheck\",\"value\"].forEach((function(e){d[e]=new r(e,2,!1,e.toLowerCase(),null,!1,!1)}));[\"autoReverse\",\"externalResourcesRequired\",\"focusable\",\"preserveAlpha\"].forEach((function(e){d[e]=new r(e,2,!1,e,null,!1,!1)}));\"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope\".split(\" \").forEach((function(e){d[e]=new r(e,3,!1,e.toLowerCase(),null,!1,!1)}));[\"checked\",\"multiple\",\"muted\",\"selected\"].forEach((function(e){d[e]=new r(e,3,!0,e,null,!1,!1)}));[\"capture\",\"download\"].forEach((function(e){d[e]=new r(e,4,!1,e,null,!1,!1)}));[\"cols\",\"rows\",\"size\",\"span\"].forEach((function(e){d[e]=new r(e,6,!1,e,null,!1,!1)}));[\"rowSpan\",\"start\"].forEach((function(e){d[e]=new r(e,5,!1,e.toLowerCase(),null,!1,!1)}));var f=/[\\-:]([a-z])/g;function la$1(e){return e[1].toUpperCase()}\"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height\".split(\" \").forEach((function(e){var n=e.replace(f,la$1);d[n]=new r(n,1,!1,e,null,!1,!1)}));\"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type\".split(\" \").forEach((function(e){var n=e.replace(f,la$1);d[n]=new r(n,1,!1,e,\"http://www.w3.org/1999/xlink\",!1,!1)}));[\"xml:base\",\"xml:lang\",\"xml:space\"].forEach((function(e){var n=e.replace(f,la$1);d[n]=new r(n,1,!1,e,\"http://www.w3.org/XML/1998/namespace\",!1,!1)}));[\"tabIndex\",\"crossOrigin\"].forEach((function(e){d[e]=new r(e,1,!1,e.toLowerCase(),null,!1,!1)}));d.xlinkHref=new r(\"xlinkHref\",1,!1,\"xlink:href\",\"http://www.w3.org/1999/xlink\",!0,!1);[\"src\",\"href\",\"action\",\"formAction\"].forEach((function(e){d[e]=new r(e,1,!1,e.toLowerCase(),null,!0,!0)}));var h={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},g=[\"Webkit\",\"ms\",\"Moz\",\"O\"];Object.keys(h).forEach((function(e){g.forEach((function(n){n=n+e.charAt(0).toUpperCase()+e.substring(1);h[n]=h[e]}))}));var b=/[\"'&<>]/;function v(e){if(\"boolean\"===typeof e||\"number\"===typeof e)return\"\"+e;e=\"\"+e;var n=b.exec(e);if(n){var a,o=\"\",l=0;for(a=n.index;a<e.length;a++){switch(e.charCodeAt(a)){case 34:n=\"&quot;\";break;case 38:n=\"&amp;\";break;case 39:n=\"&#x27;\";break;case 60:n=\"&lt;\";break;case 62:n=\"&gt;\";break;default:continue}l!==a&&(o+=e.substring(l,a));l=a+1;o+=n}e=l!==a?o+e.substring(l,a):o}return e}var m=/([A-Z])/g,S=/^ms-/,x=Array.isArray;function w$1(e,n){return{insertionMode:e,selectedValue:n}}function ra$1(e,n,a){switch(n){case\"select\":return w$1(1,null!=a.value?a.value:a.defaultValue);case\"svg\":return w$1(2,null);case\"math\":return w$1(3,null);case\"foreignObject\":return w$1(1,null);case\"table\":return w$1(4,null);case\"thead\":case\"tbody\":case\"tfoot\":return w$1(5,null);case\"colgroup\":return w$1(7,null);case\"tr\":return w$1(6,null)}return 4<=e.insertionMode||0===e.insertionMode?w$1(1,null):e}var $=new Map;function ta$1(e,n,a){if(\"object\"!==typeof a)throw Error(l$2(62));n=!0;for(var o in a)if(l.call(a,o)){var i=a[o];if(null!=i&&\"boolean\"!==typeof i&&\"\"!==i){if(0===o.indexOf(\"--\")){var s=v(o);i=v((\"\"+i).trim())}else{s=o;var c=$.get(s);void 0!==c||(c=v(s.replace(m,\"-$1\").toLowerCase().replace(S,\"-ms-\")),$.set(s,c)),s=c;i=\"number\"===typeof i?0===i||l.call(h,o)?\"\"+i:i+\"px\":v((\"\"+i).trim())}n?(n=!1,e.push(' style=\"',s,\":\",i)):e.push(\";\",s,\":\",i)}}n||e.push('\"')}function x$1(e,n,a,o){switch(a){case\"style\":ta$1(e,n,o);return;case\"defaultValue\":case\"defaultChecked\":case\"innerHTML\":case\"suppressContentEditableWarning\":case\"suppressHydrationWarning\":return}if(!(2<a.length)||\"o\"!==a[0]&&\"O\"!==a[0]||\"n\"!==a[1]&&\"N\"!==a[1])if(n=d.hasOwnProperty(a)?d[a]:null,null!==n){switch(typeof o){case\"function\":case\"symbol\":return;case\"boolean\":if(!n.acceptsBooleans)return}a=n.attributeName;switch(n.type){case 3:o&&e.push(\" \",a,'=\"\"');break;case 4:!0===o?e.push(\" \",a,'=\"\"'):!1!==o&&e.push(\" \",a,'=\"',v(o),'\"');break;case 5:isNaN(o)||e.push(\" \",a,'=\"',v(o),'\"');break;case 6:!isNaN(o)&&1<=o&&e.push(\" \",a,'=\"',v(o),'\"');break;default:n.sanitizeURL&&(o=\"\"+o),e.push(\" \",a,'=\"',v(o),'\"')}}else if(ja$1(a)){switch(typeof o){case\"function\":case\"symbol\":return;case\"boolean\":if(n=a.toLowerCase().slice(0,5),\"data-\"!==n&&\"aria-\"!==n)return}e.push(\" \",a,'=\"',v(o),'\"')}}function y$1(e,n,a){if(null!=n){if(null!=a)throw Error(l$2(60));if(\"object\"!==typeof n||!(\"__html\"in n))throw Error(l$2(61));n=n.__html;null!==n&&void 0!==n&&e.push(\"\"+n)}}function ua$1(e){var n=\"\";o.Children.forEach(e,(function(e){null!=e&&(n+=e)}));return n}function va$1(e,n,a,o){e.push(A(a));var i,s=a=null;for(i in n)if(l.call(n,i)){var c=n[i];if(null!=c)switch(i){case\"children\":a=c;break;case\"dangerouslySetInnerHTML\":s=c;break;default:x$1(e,o,i,c)}}e.push(\">\");y$1(e,s,a);return\"string\"===typeof a?(e.push(v(a)),null):a}var E=/^[a-zA-Z][a-zA-Z:_\\.\\-\\d]*$/,T=new Map;function A(e){var n=T.get(e);if(void 0===n){if(!E.test(e))throw Error(l$2(65,e));n=\"<\"+e;T.set(e,n)}return n}function ya$1(e,n,a,o,i){switch(n){case\"select\":e.push(A(\"select\"));var s=null,c=null;for(g in a)if(l.call(a,g)){var d=a[g];if(null!=d)switch(g){case\"children\":s=d;break;case\"dangerouslySetInnerHTML\":c=d;break;case\"defaultValue\":case\"value\":break;default:x$1(e,o,g,d)}}e.push(\">\");y$1(e,c,s);return s;case\"option\":c=i.selectedValue;e.push(A(\"option\"));var f=d=null,h=null;var g=null;for(s in a)if(l.call(a,s)){var b=a[s];if(null!=b)switch(s){case\"children\":d=b;break;case\"selected\":h=b;break;case\"dangerouslySetInnerHTML\":g=b;break;case\"value\":f=b;default:x$1(e,o,s,b)}}if(null!=c)if(a=null!==f?\"\"+f:ua$1(d),x(c)){for(o=0;o<c.length;o++)if(\"\"+c[o]===a){e.push(' selected=\"\"');break}}else\"\"+c===a&&e.push(' selected=\"\"');else h&&e.push(' selected=\"\"');e.push(\">\");y$1(e,g,d);return d;case\"textarea\":e.push(A(\"textarea\"));g=c=s=null;for(d in a)if(l.call(a,d)&&(f=a[d],null!=f))switch(d){case\"children\":g=f;break;case\"value\":s=f;break;case\"defaultValue\":c=f;break;case\"dangerouslySetInnerHTML\":throw Error(l$2(91));default:x$1(e,o,d,f)}null===s&&null!==c&&(s=c);e.push(\">\");if(null!=g){if(null!=s)throw Error(l$2(92));if(x(g)&&1<g.length)throw Error(l$2(93));s=\"\"+g}\"string\"===typeof s&&\"\\n\"===s[0]&&e.push(\"\\n\");null!==s&&e.push(v(\"\"+s));return null;case\"input\":e.push(A(\"input\"));f=g=d=s=null;for(c in a)if(l.call(a,c)&&(h=a[c],null!=h))switch(c){case\"children\":case\"dangerouslySetInnerHTML\":throw Error(l$2(399,\"input\"));case\"defaultChecked\":f=h;break;case\"defaultValue\":d=h;break;case\"checked\":g=h;break;case\"value\":s=h;break;default:x$1(e,o,c,h)}null!==g?x$1(e,o,\"checked\",g):null!==f&&x$1(e,o,\"checked\",f);null!==s?x$1(e,o,\"value\",s):null!==d&&x$1(e,o,\"value\",d);e.push(\"/>\");return null;case\"menuitem\":e.push(A(\"menuitem\"));for(var m in a)if(l.call(a,m)&&(s=a[m],null!=s))switch(m){case\"children\":case\"dangerouslySetInnerHTML\":throw Error(l$2(400));default:x$1(e,o,m,s)}e.push(\">\");return null;case\"title\":e.push(A(\"title\"));s=null;for(b in a)if(l.call(a,b)&&(c=a[b],null!=c))switch(b){case\"children\":s=c;break;case\"dangerouslySetInnerHTML\":throw Error(l$2(434));default:x$1(e,o,b,c)}e.push(\">\");return s;case\"listing\":case\"pre\":e.push(A(n));c=s=null;for(f in a)if(l.call(a,f)&&(d=a[f],null!=d))switch(f){case\"children\":s=d;break;case\"dangerouslySetInnerHTML\":c=d;break;default:x$1(e,o,f,d)}e.push(\">\");if(null!=c){if(null!=s)throw Error(l$2(60));if(\"object\"!==typeof c||!(\"__html\"in c))throw Error(l$2(61));a=c.__html;null!==a&&void 0!==a&&(\"string\"===typeof a&&0<a.length&&\"\\n\"===a[0]?e.push(\"\\n\",a):e.push(\"\"+a))}\"string\"===typeof s&&\"\\n\"===s[0]&&e.push(\"\\n\");return s;case\"area\":case\"base\":case\"br\":case\"col\":case\"embed\":case\"hr\":case\"img\":case\"keygen\":case\"link\":case\"meta\":case\"param\":case\"source\":case\"track\":case\"wbr\":e.push(A(n));for(var S in a)if(l.call(a,S)&&(s=a[S],null!=s))switch(S){case\"children\":case\"dangerouslySetInnerHTML\":throw Error(l$2(399,n));default:x$1(e,o,S,s)}e.push(\"/>\");return null;case\"annotation-xml\":case\"color-profile\":case\"font-face\":case\"font-face-src\":case\"font-face-uri\":case\"font-face-format\":case\"font-face-name\":case\"missing-glyph\":return va$1(e,a,n,o);case\"html\":return 0===i.insertionMode&&e.push(\"<!DOCTYPE html>\"),va$1(e,a,n,o);default:if(-1===n.indexOf(\"-\")&&\"string\"!==typeof a.is)return va$1(e,a,n,o);e.push(A(n));c=s=null;for(h in a)if(l.call(a,h)&&(d=a[h],null!=d))switch(h){case\"children\":s=d;break;case\"dangerouslySetInnerHTML\":c=d;break;case\"style\":ta$1(e,o,d);break;case\"suppressContentEditableWarning\":case\"suppressHydrationWarning\":break;default:ja$1(h)&&\"function\"!==typeof d&&\"symbol\"!==typeof d&&e.push(\" \",h,'=\"',v(d),'\"')}e.push(\">\");y$1(e,c,s);return s}}function za$1(e,n,a){e.push('\\x3c!--$?--\\x3e<template id=\"');if(null===a)throw Error(l$2(395));e.push(a);return e.push('\"></template>')}function Aa$1(e,n,a,o){switch(a.insertionMode){case 0:case 1:return e.push('<div hidden id=\"'),e.push(n.segmentPrefix),n=o.toString(16),e.push(n),e.push('\">');case 2:return e.push('<svg aria-hidden=\"true\" style=\"display:none\" id=\"'),e.push(n.segmentPrefix),n=o.toString(16),e.push(n),e.push('\">');case 3:return e.push('<math aria-hidden=\"true\" style=\"display:none\" id=\"'),e.push(n.segmentPrefix),n=o.toString(16),e.push(n),e.push('\">');case 4:return e.push('<table hidden id=\"'),e.push(n.segmentPrefix),n=o.toString(16),e.push(n),e.push('\">');case 5:return e.push('<table hidden><tbody id=\"'),e.push(n.segmentPrefix),n=o.toString(16),e.push(n),e.push('\">');case 6:return e.push('<table hidden><tr id=\"'),e.push(n.segmentPrefix),n=o.toString(16),e.push(n),e.push('\">');case 7:return e.push('<table hidden><colgroup id=\"'),e.push(n.segmentPrefix),n=o.toString(16),e.push(n),e.push('\">');default:throw Error(l$2(397))}}function Ba$1(e,n){switch(n.insertionMode){case 0:case 1:return e.push(\"</div>\");case 2:return e.push(\"</svg>\");case 3:return e.push(\"</math>\");case 4:return e.push(\"</table>\");case 5:return e.push(\"</tbody></table>\");case 6:return e.push(\"</tr></table>\");case 7:return e.push(\"</colgroup></table>\");default:throw Error(l$2(397))}}var R=/[<\\u2028\\u2029]/g;function Da$1(e){return JSON.stringify(e).replace(R,(function(e){switch(e){case\"<\":return\"\\\\u003c\";case\"\\u2028\":return\"\\\\u2028\";case\"\\u2029\":return\"\\\\u2029\";default:throw Error(\"escapeJSStringsForInstructionScripts encountered a match it does not know how to replace. this means the match regex and the replacement characters are no longer in sync. This is a bug in React\")}}))}function Ea$1(e,n){n=void 0===n?\"\":n;return{bootstrapChunks:[],startInlineScript:\"<script>\",placeholderPrefix:n+\"P:\",segmentPrefix:n+\"S:\",boundaryPrefix:n+\"B:\",idPrefix:n,nextSuspenseID:0,sentCompleteSegmentFunction:!1,sentCompleteBoundaryFunction:!1,sentClientRenderFunction:!1,generateStaticMarkup:e}}function Fa$1(e,n,a,o){if(a.generateStaticMarkup)return e.push(v(n)),!1;\"\"===n?e=o:(o&&e.push(\"\\x3c!-- --\\x3e\"),e.push(v(n)),e=!0);return e}var _=Object.assign,I=Symbol.for(\"react.element\"),B=Symbol.for(\"react.portal\"),N=Symbol.for(\"react.fragment\"),z=Symbol.for(\"react.strict_mode\"),V=Symbol.for(\"react.profiler\"),j=Symbol.for(\"react.provider\"),O=Symbol.for(\"react.context\"),H=Symbol.for(\"react.forward_ref\"),U=Symbol.for(\"react.suspense\"),K=Symbol.for(\"react.suspense_list\"),ee=Symbol.for(\"react.memo\"),te=Symbol.for(\"react.lazy\"),ne=Symbol.for(\"react.scope\"),re=Symbol.for(\"react.debug_trace_mode\"),ae=Symbol.for(\"react.legacy_hidden\"),oe=Symbol.for(\"react.default_value\"),le=Symbol.iterator;function Xa$1(e){if(null==e)return null;if(\"function\"===typeof e)return e.displayName||e.name||null;if(\"string\"===typeof e)return e;switch(e){case N:return\"Fragment\";case B:return\"Portal\";case V:return\"Profiler\";case z:return\"StrictMode\";case U:return\"Suspense\";case K:return\"SuspenseList\"}if(\"object\"===typeof e)switch(e.$$typeof){case O:return(e.displayName||\"Context\")+\".Consumer\";case j:return(e._context.displayName||\"Context\")+\".Provider\";case H:var n=e.render;e=e.displayName;e||(e=n.displayName||n.name||\"\",e=\"\"!==e?\"ForwardRef(\"+e+\")\":\"ForwardRef\");return e;case ee:return n=e.displayName||null,null!==n?n:Xa$1(e.type)||\"Memo\";case te:n=e._payload;e=e._init;try{return Xa$1(e(n))}catch(e){}}return null}var ue={};function Za$1(e,n){e=e.contextTypes;if(!e)return ue;var a,o={};for(a in e)o[a]=n[a];return o}var ie=null;function F(e,n){if(e!==n){e.context._currentValue2=e.parentValue;e=e.parent;var a=n.parent;if(null===e){if(null!==a)throw Error(l$2(401))}else{if(null===a)throw Error(l$2(401));F(e,a)}n.context._currentValue2=n.value}}function $a$1(e){e.context._currentValue2=e.parentValue;e=e.parent;null!==e&&$a$1(e)}function ab$1(e){var n=e.parent;null!==n&&ab$1(n);e.context._currentValue2=e.value}function bb$1(e,n){e.context._currentValue2=e.parentValue;e=e.parent;if(null===e)throw Error(l$2(402));e.depth===n.depth?F(e,n):bb$1(e,n)}function cb$1(e,n){var a=n.parent;if(null===a)throw Error(l$2(402));e.depth===a.depth?F(e,a):cb$1(e,a);n.context._currentValue2=n.value}function G(e){var n=ie;n!==e&&(null===n?ab$1(e):null===e?$a$1(n):n.depth===e.depth?F(n,e):n.depth>e.depth?bb$1(n,e):cb$1(n,e),ie=e)}var se={isMounted:function(){return!1},enqueueSetState:function(e,n){e=e._reactInternals;null!==e.queue&&e.queue.push(n)},enqueueReplaceState:function(e,n){e=e._reactInternals;e.replace=!0;e.queue=[n]},enqueueForceUpdate:function(){}};function eb$1(e,n,a,o){var l=void 0!==e.state?e.state:null;e.updater=se;e.props=a;e.state=l;var i={queue:[],replace:!1};e._reactInternals=i;var s=n.contextType;e.context=\"object\"===typeof s&&null!==s?s._currentValue2:o;s=n.getDerivedStateFromProps;\"function\"===typeof s&&(s=s(a,l),l=null===s||void 0===s?l:_({},l,s),e.state=l);if(\"function\"!==typeof n.getDerivedStateFromProps&&\"function\"!==typeof e.getSnapshotBeforeUpdate&&(\"function\"===typeof e.UNSAFE_componentWillMount||\"function\"===typeof e.componentWillMount))if(n=e.state,\"function\"===typeof e.componentWillMount&&e.componentWillMount(),\"function\"===typeof e.UNSAFE_componentWillMount&&e.UNSAFE_componentWillMount(),n!==e.state&&se.enqueueReplaceState(e,e.state,null),null!==i.queue&&0<i.queue.length)if(n=i.queue,s=i.replace,i.queue=null,i.replace=!1,s&&1===n.length)e.state=n[0];else{i=s?n[0]:e.state;l=!0;for(s=s?1:0;s<n.length;s++){var c=n[s];c=\"function\"===typeof c?c.call(e,i,a,o):c;null!=c&&(l?(l=!1,i=_({},i,c)):_(i,c))}e.state=i}else i.queue=null}var ce={id:1,overflow:\"\"};function gb$1(e,n,a){var o=e.id;e=e.overflow;var l=32-de(o)-1;o&=~(1<<l);a+=1;var i=32-de(n)+l;if(30<i){var s=l-l%5;i=(o&(1<<s)-1).toString(32);o>>=s;l-=s;return{id:1<<32-de(n)+l|a<<l|o,overflow:i+e}}return{id:1<<i|a<<l|o,overflow:e}}var de=Math.clz32?Math.clz32:hb$1,fe=Math.log,pe=Math.LN2;function hb$1(e){e>>>=0;return 0===e?32:31-(fe(e)/pe|0)|0}function kb$1(e,n){return e===n&&(0!==e||1/e===1/n)||e!==e&&n!==n}var he=\"function\"===typeof Object.is?Object.is:kb$1,ge=null,be=null,me=null,ye=null,ve=!1,ke=!1,we=0,Se=null,xe=0;function Q$1(){if(null===ge)throw Error(l$2(321));return ge}function pb$1(){if(0<xe)throw Error(l$2(312));return{memoizedState:null,queue:null,next:null}}function qb$1(){null===ye?null===me?(ve=!1,me=ye=pb$1()):(ve=!0,ye=me):null===ye.next?(ve=!1,ye=ye.next=pb$1()):(ve=!0,ye=ye.next);return ye}function rb$1(){be=ge=null;ke=!1;me=null;xe=0;ye=Se=null}function sb$1(e,n){return\"function\"===typeof n?n(e):n}function tb$1(e,n,a){ge=Q$1();ye=qb$1();if(ve){var o=ye.queue;n=o.dispatch;if(null!==Se&&(a=Se.get(o),void 0!==a)){Se.delete(o);o=ye.memoizedState;do{o=e(o,a.action),a=a.next}while(null!==a);ye.memoizedState=o;return[o,n]}return[ye.memoizedState,n]}e=e===sb$1?\"function\"===typeof n?n():n:void 0!==a?a(n):n;ye.memoizedState=e;e=ye.queue={last:null,dispatch:null};e=e.dispatch=ub$1.bind(null,ge,e);return[ye.memoizedState,e]}function vb$1(e,n){ge=Q$1();ye=qb$1();n=void 0===n?null:n;if(null!==ye){var a=ye.memoizedState;if(null!==a&&null!==n){var o=a[1];e:if(null===o)o=!1;else{for(var l=0;l<o.length&&l<n.length;l++)if(!he(n[l],o[l])){o=!1;break e}o=!0}if(o)return a[0]}}e=e();ye.memoizedState=[e,n];return e}function ub$1(e,n,a){if(25<=xe)throw Error(l$2(301));if(e===ge)if(ke=!0,e={action:a,next:null},null===Se&&(Se=new Map),a=Se.get(n),void 0===a)Se.set(n,e);else{for(n=a;null!==n.next;)n=n.next;n.next=e}}function wb$1(){throw Error(l$2(394))}function R$1(){}var $e={readContext:function(e){return e._currentValue2},useContext:function(e){Q$1();return e._currentValue2},useMemo:vb$1,useReducer:tb$1,useRef:function(e){ge=Q$1();ye=qb$1();var n=ye.memoizedState;return null===n?(e={current:e},ye.memoizedState=e):n},useState:function(e){return tb$1(sb$1,e)},useInsertionEffect:R$1,useLayoutEffect:function(){},useCallback:function(e,n){return vb$1((function(){return e}),n)},useImperativeHandle:R$1,useEffect:R$1,useDebugValue:R$1,useDeferredValue:function(e){Q$1();return e},useTransition:function(){Q$1();return[!1,wb$1]},useId:function(){var e=be.treeContext;var n=e.overflow;e=e.id;e=(e&~(1<<32-de(e)-1)).toString(32)+n;var a=Ce;if(null===a)throw Error(l$2(404));n=we++;e=\":\"+a.idPrefix+\"R\"+e;0<n&&(e+=\"H\"+n.toString(32));return e+\":\"},useMutableSource:function(e,n){Q$1();return n(e._source)},useSyncExternalStore:function(e,n,a){if(void 0===a)throw Error(l$2(407));return a()}},Ce=null,Ee=o.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentDispatcher;function zb$1(e){console.error(e);return null}function T$1(){}function Ab$1(e,n,a,o,l,i,s,c,d){var f=[],h=new Set;n={destination:null,responseState:n,progressiveChunkSize:void 0===o?12800:o,status:0,fatalError:null,nextSegmentId:0,allPendingTasks:0,pendingRootTasks:0,completedRootSegment:null,abortableTasks:h,pingedTasks:f,clientRenderedBoundaries:[],completedBoundaries:[],partialBoundaries:[],onError:void 0===l?zb$1:l,onAllReady:void 0===i?T$1:i,onShellReady:void 0===s?T$1:s,onShellError:void 0===c?T$1:c,onFatalError:void 0===d?T$1:d};a=U$1(n,0,null,a,!1,!1);a.parentFlushed=!0;e=Bb$1(n,e,null,a,h,ue,null,ce);f.push(e);return n}function Bb$1(e,n,a,o,l,i,s,c){e.allPendingTasks++;null===a?e.pendingRootTasks++:a.pendingTasks++;var d={node:n,ping:function(){var n=e.pingedTasks;n.push(d);1===n.length&&Cb$1(e)},blockedBoundary:a,blockedSegment:o,abortSet:l,legacyContext:i,context:s,treeContext:c};l.add(d);return d}function U$1(e,n,a,o,l,i){return{status:0,id:-1,index:n,parentFlushed:!1,chunks:[],children:[],formatContext:o,boundary:a,lastPushedText:l,textEmbedded:i}}function V$1(e,n){e=e.onError(n);if(null!=e&&\"string\"!==typeof e)throw Error('onError returned something with a type other than \"string\". onError should return a string and may return null or undefined but must not return anything else. It received something of type \"'+typeof e+'\" instead');return e}function W$1(e,n){var a=e.onShellError;a(n);a=e.onFatalError;a(n);null!==e.destination?(e.status=2,e.destination.destroy(n)):(e.status=1,e.fatalError=n)}function Db$1(e,n,a,o,l){ge={};be=n;we=0;for(e=a(o,l);ke;)ke=!1,we=0,xe+=1,ye=null,e=a(o,l);rb$1();return e}function Eb$1(e,n,a,o){var l=a.render(),i=o.childContextTypes;if(null!==i&&void 0!==i){var s=n.legacyContext;if(\"function\"!==typeof a.getChildContext)o=s;else{a=a.getChildContext();for(var c in a)if(!(c in i))throw Error(l$2(108,Xa$1(o)||\"Unknown\",c));o=_({},s,a)}n.legacyContext=o;X$1(e,n,l);n.legacyContext=s}else X$1(e,n,l)}function Fb(e,n){if(e&&e.defaultProps){n=_({},n);e=e.defaultProps;for(var a in e)void 0===n[a]&&(n[a]=e[a]);return n}return n}function Gb$1(e,n,a,o,l){if(\"function\"===typeof a)if(a.prototype&&a.prototype.isReactComponent){l=Za$1(a,n.legacyContext);var i=a.contextType;i=new a(o,\"object\"===typeof i&&null!==i?i._currentValue2:l);eb$1(i,a,o,l);Eb$1(e,n,i,a)}else{i=Za$1(a,n.legacyContext);l=Db$1(e,n,a,o,i);var s=0!==we;if(\"object\"===typeof l&&null!==l&&\"function\"===typeof l.render&&void 0===l.$$typeof)eb$1(l,a,o,i),Eb$1(e,n,l,a);else if(s){o=n.treeContext;n.treeContext=gb$1(o,1,0);try{X$1(e,n,l)}finally{n.treeContext=o}}else X$1(e,n,l)}else{if(\"string\"!==typeof a){switch(a){case ae:case re:case z:case V:case N:X$1(e,n,o.children);return;case K:X$1(e,n,o.children);return;case ne:throw Error(l$2(343));case U:e:{a=n.blockedBoundary;l=n.blockedSegment;i=o.fallback;o=o.children;s=new Set;var c={id:null,rootSegmentID:-1,parentFlushed:!1,pendingTasks:0,forceClientRender:!1,completedSegments:[],byteSize:0,fallbackAbortableTasks:s,errorDigest:null},d=U$1(e,l.chunks.length,c,l.formatContext,!1,!1);l.children.push(d);l.lastPushedText=!1;var f=U$1(e,0,null,l.formatContext,!1,!1);f.parentFlushed=!0;n.blockedBoundary=c;n.blockedSegment=f;try{if(Hb$1(e,n,o),e.responseState.generateStaticMarkup||f.lastPushedText&&f.textEmbedded&&f.chunks.push(\"\\x3c!-- --\\x3e\"),f.status=1,Y$1(c,f),0===c.pendingTasks)break e}catch(n){f.status=4,c.forceClientRender=!0,c.errorDigest=V$1(e,n)}finally{n.blockedBoundary=a,n.blockedSegment=l}n=Bb$1(e,i,a,d,s,n.legacyContext,n.context,n.treeContext);e.pingedTasks.push(n)}return}if(\"object\"===typeof a&&null!==a)switch(a.$$typeof){case H:o=Db$1(e,n,a.render,o,l);if(0!==we){a=n.treeContext;n.treeContext=gb$1(a,1,0);try{X$1(e,n,o)}finally{n.treeContext=a}}else X$1(e,n,o);return;case ee:a=a.type;o=Fb(a,o);Gb$1(e,n,a,o,l);return;case j:l=o.children;a=a._context;o=o.value;i=a._currentValue2;a._currentValue2=o;s=ie;ie=o={parent:s,depth:null===s?0:s.depth+1,context:a,parentValue:i,value:o};n.context=o;X$1(e,n,l);e=ie;if(null===e)throw Error(l$2(403));o=e.parentValue;e.context._currentValue2=o===oe?e.context._defaultValue:o;e=ie=e.parent;n.context=e;return;case O:o=o.children;o=o(a._currentValue2);X$1(e,n,o);return;case te:l=a._init;a=l(a._payload);o=Fb(a,o);Gb$1(e,n,a,o,void 0);return}throw Error(l$2(130,null==a?a:typeof a,\"\"))}l=n.blockedSegment;i=ya$1(l.chunks,a,o,e.responseState,l.formatContext);l.lastPushedText=!1;s=l.formatContext;l.formatContext=ra$1(s,a,o);Hb$1(e,n,i);l.formatContext=s;switch(a){case\"area\":case\"base\":case\"br\":case\"col\":case\"embed\":case\"hr\":case\"img\":case\"input\":case\"keygen\":case\"link\":case\"meta\":case\"param\":case\"source\":case\"track\":case\"wbr\":break;default:l.chunks.push(\"</\",a,\">\")}l.lastPushedText=!1}}function X$1(e,n,a){n.node=a;if(\"object\"===typeof a&&null!==a){switch(a.$$typeof){case I:Gb$1(e,n,a.type,a.props,a.ref);return;case B:throw Error(l$2(257));case te:var o=a._init;a=o(a._payload);X$1(e,n,a);return}if(x(a)){Ib$1(e,n,a);return}null===a||\"object\"!==typeof a?o=null:(o=le&&a[le]||a[\"@@iterator\"],o=\"function\"===typeof o?o:null);if(o&&(o=o.call(a))){a=o.next();if(!a.done){var l=[];do{l.push(a.value),a=o.next()}while(!a.done);Ib$1(e,n,l)}return}e=Object.prototype.toString.call(a);throw Error(l$2(31,\"[object Object]\"===e?\"object with keys {\"+Object.keys(a).join(\", \")+\"}\":e))}\"string\"===typeof a?(o=n.blockedSegment,o.lastPushedText=Fa$1(n.blockedSegment.chunks,a,e.responseState,o.lastPushedText)):\"number\"===typeof a&&(o=n.blockedSegment,o.lastPushedText=Fa$1(n.blockedSegment.chunks,\"\"+a,e.responseState,o.lastPushedText))}function Ib$1(e,n,a){for(var o=a.length,l=0;l<o;l++){var i=n.treeContext;n.treeContext=gb$1(i,o,l);try{Hb$1(e,n,a[l])}finally{n.treeContext=i}}}function Hb$1(e,n,a){var o=n.blockedSegment.formatContext,l=n.legacyContext,i=n.context;try{return X$1(e,n,a)}catch(d){if(rb$1(),\"object\"!==typeof d||null===d||\"function\"!==typeof d.then)throw n.blockedSegment.formatContext=o,n.legacyContext=l,n.context=i,G(i),d;a=d;var s=n.blockedSegment,c=U$1(e,s.chunks.length,null,s.formatContext,s.lastPushedText,!0);s.children.push(c);s.lastPushedText=!1;e=Bb$1(e,n.node,n.blockedBoundary,c,n.abortSet,n.legacyContext,n.context,n.treeContext).ping;a.then(e,e);n.blockedSegment.formatContext=o;n.legacyContext=l;n.context=i;G(i)}}function Jb$1(e){var n=e.blockedBoundary;e=e.blockedSegment;e.status=3;Kb$1(this,n,e)}function Lb$1(e,n,a){var o=e.blockedBoundary;e.blockedSegment.status=3;null===o?(n.allPendingTasks--,2!==n.status&&(n.status=2,null!==n.destination&&n.destination.push(null))):(o.pendingTasks--,o.forceClientRender||(o.forceClientRender=!0,e=void 0===a?Error(l$2(432)):a,o.errorDigest=n.onError(e),o.parentFlushed&&n.clientRenderedBoundaries.push(o)),o.fallbackAbortableTasks.forEach((function(e){return Lb$1(e,n,a)})),o.fallbackAbortableTasks.clear(),n.allPendingTasks--,0===n.allPendingTasks&&(o=n.onAllReady,o()))}function Y$1(e,n){if(0===n.chunks.length&&1===n.children.length&&null===n.children[0].boundary){var a=n.children[0];a.id=n.id;a.parentFlushed=!0;1===a.status&&Y$1(e,a)}else e.completedSegments.push(n)}function Kb$1(e,n,a){if(null===n){if(a.parentFlushed){if(null!==e.completedRootSegment)throw Error(l$2(389));e.completedRootSegment=a}e.pendingRootTasks--;0===e.pendingRootTasks&&(e.onShellError=T$1,n=e.onShellReady,n())}else n.pendingTasks--,n.forceClientRender||(0===n.pendingTasks?(a.parentFlushed&&1===a.status&&Y$1(n,a),n.parentFlushed&&e.completedBoundaries.push(n),n.fallbackAbortableTasks.forEach(Jb$1,e),n.fallbackAbortableTasks.clear()):a.parentFlushed&&1===a.status&&(Y$1(n,a),1===n.completedSegments.length&&n.parentFlushed&&e.partialBoundaries.push(n)));e.allPendingTasks--;0===e.allPendingTasks&&(e=e.onAllReady,e())}function Cb$1(e){if(2!==e.status){var n=ie,a=Ee.current;Ee.current=$e;var o=Ce;Ce=e.responseState;try{var l,i=e.pingedTasks;for(l=0;l<i.length;l++){var s=i[l];var c=e,d=s.blockedSegment;if(0===d.status){G(s.context);try{X$1(c,s,s.node),c.responseState.generateStaticMarkup||d.lastPushedText&&d.textEmbedded&&d.chunks.push(\"\\x3c!-- --\\x3e\"),s.abortSet.delete(s),d.status=1,Kb$1(c,s.blockedBoundary,d)}catch(e){if(rb$1(),\"object\"===typeof e&&null!==e&&\"function\"===typeof e.then){var f=s.ping;e.then(f,f)}else{s.abortSet.delete(s);d.status=4;var h=s.blockedBoundary,g=e,b=V$1(c,g);null===h?W$1(c,g):(h.pendingTasks--,h.forceClientRender||(h.forceClientRender=!0,h.errorDigest=b,h.parentFlushed&&c.clientRenderedBoundaries.push(h)));c.allPendingTasks--;if(0===c.allPendingTasks){var m=c.onAllReady;m()}}}}}i.splice(0,l);null!==e.destination&&Mb$1(e,e.destination)}catch(n){V$1(e,n),W$1(e,n)}finally{Ce=o,Ee.current=a,a===$e&&G(n)}}}function Z$1(e,n,a){a.parentFlushed=!0;switch(a.status){case 0:var o=a.id=e.nextSegmentId++;a.lastPushedText=!1;a.textEmbedded=!1;e=e.responseState;n.push('<template id=\"');n.push(e.placeholderPrefix);e=o.toString(16);n.push(e);return n.push('\"></template>');case 1:a.status=2;var l=!0;o=a.chunks;var i=0;a=a.children;for(var s=0;s<a.length;s++){for(l=a[s];i<l.index;i++)n.push(o[i]);l=Nb$1(e,n,l)}for(;i<o.length-1;i++)n.push(o[i]);i<o.length&&(l=n.push(o[i]));return l;default:throw Error(l$2(390))}}function Nb$1(e,n,a){var o=a.boundary;if(null===o)return Z$1(e,n,a);o.parentFlushed=!0;if(o.forceClientRender)return e.responseState.generateStaticMarkup||(o=o.errorDigest,n.push(\"\\x3c!--$!--\\x3e\"),n.push(\"<template\"),o&&(n.push(' data-dgst=\"'),o=v(o),n.push(o),n.push('\"')),n.push(\"></template>\")),Z$1(e,n,a),e=!!e.responseState.generateStaticMarkup||n.push(\"\\x3c!--/$--\\x3e\"),e;if(0<o.pendingTasks){o.rootSegmentID=e.nextSegmentId++;0<o.completedSegments.length&&e.partialBoundaries.push(o);var l=e.responseState;var i=l.nextSuspenseID++;l=l.boundaryPrefix+i.toString(16);o=o.id=l;za$1(n,e.responseState,o);Z$1(e,n,a);return n.push(\"\\x3c!--/$--\\x3e\")}if(o.byteSize>e.progressiveChunkSize)return o.rootSegmentID=e.nextSegmentId++,e.completedBoundaries.push(o),za$1(n,e.responseState,o.id),Z$1(e,n,a),n.push(\"\\x3c!--/$--\\x3e\");e.responseState.generateStaticMarkup||n.push(\"\\x3c!--$--\\x3e\");a=o.completedSegments;if(1!==a.length)throw Error(l$2(391));Nb$1(e,n,a[0]);e=!!e.responseState.generateStaticMarkup||n.push(\"\\x3c!--/$--\\x3e\");return e}function Ob$1(e,n,a){Aa$1(n,e.responseState,a.formatContext,a.id);Nb$1(e,n,a);return Ba$1(n,a.formatContext)}function Pb$1(e,n,a){for(var o=a.completedSegments,l=0;l<o.length;l++)Qb$1(e,n,a,o[l]);o.length=0;e=e.responseState;o=a.id;a=a.rootSegmentID;n.push(e.startInlineScript);e.sentCompleteBoundaryFunction?n.push('$RC(\"'):(e.sentCompleteBoundaryFunction=!0,n.push('function $RC(a,b){a=document.getElementById(a);b=document.getElementById(b);b.parentNode.removeChild(b);if(a){a=a.previousSibling;var f=a.parentNode,c=a.nextSibling,e=0;do{if(c&&8===c.nodeType){var d=c.data;if(\"/$\"===d)if(0===e)break;else e--;else\"$\"!==d&&\"$?\"!==d&&\"$!\"!==d||e++}d=c.nextSibling;f.removeChild(c);c=d}while(c);for(;b.firstChild;)f.insertBefore(b.firstChild,c);a.data=\"$\";a._reactRetry&&a._reactRetry()}};$RC(\"'));if(null===o)throw Error(l$2(395));a=a.toString(16);n.push(o);n.push('\",\"');n.push(e.segmentPrefix);n.push(a);return n.push('\")<\\/script>')}function Qb$1(e,n,a,o){if(2===o.status)return!0;var l=o.id;if(-1===l){if(-1===(o.id=a.rootSegmentID))throw Error(l$2(392));return Ob$1(e,n,o)}Ob$1(e,n,o);e=e.responseState;n.push(e.startInlineScript);e.sentCompleteSegmentFunction?n.push('$RS(\"'):(e.sentCompleteSegmentFunction=!0,n.push('function $RS(a,b){a=document.getElementById(a);b=document.getElementById(b);for(a.parentNode.removeChild(a);a.firstChild;)b.parentNode.insertBefore(a.firstChild,b);b.parentNode.removeChild(b)};$RS(\"'));n.push(e.segmentPrefix);l=l.toString(16);n.push(l);n.push('\",\"');n.push(e.placeholderPrefix);n.push(l);return n.push('\")<\\/script>')}function Mb$1(e,n){try{var a=e.completedRootSegment;if(null!==a&&0===e.pendingRootTasks){Nb$1(e,n,a);e.completedRootSegment=null;var o=e.responseState.bootstrapChunks;for(a=0;a<o.length-1;a++)n.push(o[a]);a<o.length&&n.push(o[a])}var l,i=e.clientRenderedBoundaries;for(l=0;l<i.length;l++){var s=i[l];o=n;var c=e.responseState,d=s.id,f=s.errorDigest,h=s.errorMessage,g=s.errorComponentStack;o.push(c.startInlineScript);c.sentClientRenderFunction?o.push('$RX(\"'):(c.sentClientRenderFunction=!0,o.push('function $RX(b,c,d,e){var a=document.getElementById(b);a&&(b=a.previousSibling,b.data=\"$!\",a=a.dataset,c&&(a.dgst=c),d&&(a.msg=d),e&&(a.stck=e),b._reactRetry&&b._reactRetry())};$RX(\"'));if(null===d)throw Error(l$2(395));o.push(d);o.push('\"');if(f||h||g){o.push(\",\");var b=Da$1(f||\"\");o.push(b)}if(h||g){o.push(\",\");var m=Da$1(h||\"\");o.push(m)}if(g){o.push(\",\");var S=Da$1(g);o.push(S)}if(!o.push(\")<\\/script>\")){e.destination=null;l++;i.splice(0,l);return}}i.splice(0,l);var x=e.completedBoundaries;for(l=0;l<x.length;l++)if(!Pb$1(e,n,x[l])){e.destination=null;l++;x.splice(0,l);return}x.splice(0,l);var $=e.partialBoundaries;for(l=0;l<$.length;l++){var E=$[l];e:{i=e;s=n;var T=E.completedSegments;for(c=0;c<T.length;c++)if(!Qb$1(i,s,E,T[c])){c++;T.splice(0,c);var R=!1;break e}T.splice(0,c);R=!0}if(!R){e.destination=null;l++;$.splice(0,l);return}}$.splice(0,l);var _=e.completedBoundaries;for(l=0;l<_.length;l++)if(!Pb$1(e,n,_[l])){e.destination=null;l++;_.splice(0,l);return}_.splice(0,l)}finally{0===e.allPendingTasks&&0===e.pingedTasks.length&&0===e.clientRenderedBoundaries.length&&0===e.completedBoundaries.length&&n.push(null)}}function Rb$1(e,n){try{var a=e.abortableTasks;a.forEach((function(a){return Lb$1(a,e,n)}));a.clear();null!==e.destination&&Mb$1(e,e.destination)}catch(n){V$1(e,n),W$1(e,n)}}function Sb$1(){}function Tb$1(e,n,a,o){var l=!1,i=null,s=\"\",c={push:function(e){null!==e&&(s+=e);return!0},destroy:function(e){l=!0;i=e}},d=!1;e=Ab$1(e,Ea$1(a,n?n.identifierPrefix:void 0),{insertionMode:1,selectedValue:null},Infinity,Sb$1,void 0,(function(){d=!0}),void 0,void 0);Cb$1(e);Rb$1(e,o);if(1===e.status)e.status=2,c.destroy(e.fatalError);else if(2!==e.status&&null===e.destination){e.destination=c;try{Mb$1(e,c)}catch(n){V$1(e,n),W$1(e,n)}}if(l)throw i;if(!d)throw Error(l$2(426));return s}a.renderToNodeStream=function(){throw Error(l$2(207))};a.renderToStaticMarkup=function(e,n){return Tb$1(e,n,!0,'The server used \"renderToStaticMarkup\" which does not support Suspense. If you intended to have the server wait for the suspended component please switch to \"renderToReadableStream\" which supports Suspense on the server')};a.renderToStaticNodeStream=function(){throw Error(l$2(208))};a.renderToString=function(e,n){return Tb$1(e,n,!1,'The server used \"renderToString\" which does not support Suspense. If you intended for this Suspense boundary to render the fallback content on the server consider throwing an Error somewhere within the Suspense boundary. If you intended to have the server wait for the suspended component please switch to \"renderToReadableStream\" which supports Suspense on the server')};a.version=\"18.2.0\";var Fe=\"default\"in e?e.default:e;var Te={};var Re=Fe;function k(e){for(var n=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+e,a=1;a<arguments.length;a++)n+=\"&args[]=\"+encodeURIComponent(arguments[a]);return\"Minified React error #\"+e+\"; visit \"+n+\" for the full message or use the non-minified dev environment for full errors and additional helpful warnings.\"}var Pe=null,_e=0;function p(e,n){if(0!==n.length)if(512<n.length)0<_e&&(e.enqueue(new Uint8Array(Pe.buffer,0,_e)),Pe=new Uint8Array(512),_e=0),e.enqueue(n);else{var a=Pe.length-_e;a<n.length&&(0===a?e.enqueue(Pe):(Pe.set(n.subarray(0,a),_e),e.enqueue(Pe),n=n.subarray(a)),Pe=new Uint8Array(512),_e=0);Pe.set(n,_e);_e+=n.length}}function t(e,n){p(e,n);return!0}function ba(e){Pe&&0<_e&&(e.enqueue(new Uint8Array(Pe.buffer,0,_e)),Pe=null,_e=0)}var Me=new TextEncoder;function u(e){return Me.encode(e)}function w(e){return Me.encode(e)}function da(e,n){\"function\"===typeof e.error?e.error(n):e.close()}var Ie=Object.prototype.hasOwnProperty,De=/^[:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD][:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\-.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040]*$/,Be={},Ne={};function ia(e){if(Ie.call(Ne,e))return!0;if(Ie.call(Be,e))return!1;if(De.test(e))return Ne[e]=!0;Be[e]=!0;return!1}function y(e,n,a,o,l,i,s){this.acceptsBooleans=2===n||3===n||4===n;this.attributeName=o;this.attributeNamespace=l;this.mustUseProperty=a;this.propertyName=e;this.type=n;this.sanitizeURL=i;this.removeEmptyString=s}var ze={};\"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style\".split(\" \").forEach((function(e){ze[e]=new y(e,0,!1,e,null,!1,!1)}));[[\"acceptCharset\",\"accept-charset\"],[\"className\",\"class\"],[\"htmlFor\",\"for\"],[\"httpEquiv\",\"http-equiv\"]].forEach((function(e){var n=e[0];ze[n]=new y(n,1,!1,e[1],null,!1,!1)}));[\"contentEditable\",\"draggable\",\"spellCheck\",\"value\"].forEach((function(e){ze[e]=new y(e,2,!1,e.toLowerCase(),null,!1,!1)}));[\"autoReverse\",\"externalResourcesRequired\",\"focusable\",\"preserveAlpha\"].forEach((function(e){ze[e]=new y(e,2,!1,e,null,!1,!1)}));\"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope\".split(\" \").forEach((function(e){ze[e]=new y(e,3,!1,e.toLowerCase(),null,!1,!1)}));[\"checked\",\"multiple\",\"muted\",\"selected\"].forEach((function(e){ze[e]=new y(e,3,!0,e,null,!1,!1)}));[\"capture\",\"download\"].forEach((function(e){ze[e]=new y(e,4,!1,e,null,!1,!1)}));[\"cols\",\"rows\",\"size\",\"span\"].forEach((function(e){ze[e]=new y(e,6,!1,e,null,!1,!1)}));[\"rowSpan\",\"start\"].forEach((function(e){ze[e]=new y(e,5,!1,e.toLowerCase(),null,!1,!1)}));var Ve=/[\\-:]([a-z])/g;function ka(e){return e[1].toUpperCase()}\"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height\".split(\" \").forEach((function(e){var n=e.replace(Ve,ka);ze[n]=new y(n,1,!1,e,null,!1,!1)}));\"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type\".split(\" \").forEach((function(e){var n=e.replace(Ve,ka);ze[n]=new y(n,1,!1,e,\"http://www.w3.org/1999/xlink\",!1,!1)}));[\"xml:base\",\"xml:lang\",\"xml:space\"].forEach((function(e){var n=e.replace(Ve,ka);ze[n]=new y(n,1,!1,e,\"http://www.w3.org/XML/1998/namespace\",!1,!1)}));[\"tabIndex\",\"crossOrigin\"].forEach((function(e){ze[e]=new y(e,1,!1,e.toLowerCase(),null,!1,!1)}));ze.xlinkHref=new y(\"xlinkHref\",1,!1,\"xlink:href\",\"http://www.w3.org/1999/xlink\",!0,!1);[\"src\",\"href\",\"action\",\"formAction\"].forEach((function(e){ze[e]=new y(e,1,!1,e.toLowerCase(),null,!0,!0)}));var Ae={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},Le=[\"Webkit\",\"ms\",\"Moz\",\"O\"];Object.keys(Ae).forEach((function(e){Le.forEach((function(n){n=n+e.charAt(0).toUpperCase()+e.substring(1);Ae[n]=Ae[e]}))}));var je=/[\"'&<>]/;function C(e){if(\"boolean\"===typeof e||\"number\"===typeof e)return\"\"+e;e=\"\"+e;var n=je.exec(e);if(n){var a,o=\"\",l=0;for(a=n.index;a<e.length;a++){switch(e.charCodeAt(a)){case 34:n=\"&quot;\";break;case 38:n=\"&amp;\";break;case 39:n=\"&#x27;\";break;case 60:n=\"&lt;\";break;case 62:n=\"&gt;\";break;default:continue}l!==a&&(o+=e.substring(l,a));l=a+1;o+=n}e=l!==a?o+e.substring(l,a):o}return e}var Oe=/([A-Z])/g,qe=/^ms-/,We=Array.isArray,He=w(\"<script>\"),Ue=w(\"<\\/script>\"),Ze=w('<script src=\"'),Xe=w('<script type=\"module\" src=\"'),Je=w('\" async=\"\"><\\/script>'),Ge=/(<\\/|<)(s)(cript)/gi;function ya(e,n,a,o){return n+(\"s\"===a?\"\\\\u0073\":\"\\\\u0053\")+o}function za(e,n,a,o,l){e=void 0===e?\"\":e;n=void 0===n?He:w('<script nonce=\"'+C(n)+'\">');var i=[];void 0!==a&&i.push(n,u((\"\"+a).replace(Ge,ya)),Ue);if(void 0!==o)for(a=0;a<o.length;a++)i.push(Ze,u(C(o[a])),Je);if(void 0!==l)for(o=0;o<l.length;o++)i.push(Xe,u(C(l[o])),Je);return{bootstrapChunks:i,startInlineScript:n,placeholderPrefix:w(e+\"P:\"),segmentPrefix:w(e+\"S:\"),boundaryPrefix:e+\"B:\",idPrefix:e,nextSuspenseID:0,sentCompleteSegmentFunction:!1,sentCompleteBoundaryFunction:!1,sentClientRenderFunction:!1}}function D(e,n){return{insertionMode:e,selectedValue:n}}function Aa(e){return D(\"http://www.w3.org/2000/svg\"===e?2:\"http://www.w3.org/1998/Math/MathML\"===e?3:0,null)}function Ba(e,n,a){switch(n){case\"select\":return D(1,null!=a.value?a.value:a.defaultValue);case\"svg\":return D(2,null);case\"math\":return D(3,null);case\"foreignObject\":return D(1,null);case\"table\":return D(4,null);case\"thead\":case\"tbody\":case\"tfoot\":return D(5,null);case\"colgroup\":return D(7,null);case\"tr\":return D(6,null)}return 4<=e.insertionMode||0===e.insertionMode?D(1,null):e}var Qe=w(\"\\x3c!-- --\\x3e\");function Da(e,n,a,o){if(\"\"===n)return o;o&&e.push(Qe);e.push(u(C(n)));return!0}var Ye=new Map,Ke=w(' style=\"'),et=w(\":\"),tt=w(\";\");function Ia(e,n,a){if(\"object\"!==typeof a)throw Error(k(62));n=!0;for(var o in a)if(Ie.call(a,o)){var l=a[o];if(null!=l&&\"boolean\"!==typeof l&&\"\"!==l){if(0===o.indexOf(\"--\")){var i=u(C(o));l=u(C((\"\"+l).trim()))}else{i=o;var s=Ye.get(i);void 0!==s||(s=w(C(i.replace(Oe,\"-$1\").toLowerCase().replace(qe,\"-ms-\"))),Ye.set(i,s)),i=s;l=\"number\"===typeof l?0===l||Ie.call(Ae,o)?u(\"\"+l):u(l+\"px\"):u(C((\"\"+l).trim()))}n?(n=!1,e.push(Ke,i,et,l)):e.push(tt,i,et,l)}}n||e.push(at)}var nt=w(\" \"),rt=w('=\"'),at=w('\"'),ot=w('=\"\"');function J(e,n,a,o){switch(a){case\"style\":Ia(e,n,o);return;case\"defaultValue\":case\"defaultChecked\":case\"innerHTML\":case\"suppressContentEditableWarning\":case\"suppressHydrationWarning\":return}if(!(2<a.length)||\"o\"!==a[0]&&\"O\"!==a[0]||\"n\"!==a[1]&&\"N\"!==a[1])if(n=ze.hasOwnProperty(a)?ze[a]:null,null!==n){switch(typeof o){case\"function\":case\"symbol\":return;case\"boolean\":if(!n.acceptsBooleans)return}a=u(n.attributeName);switch(n.type){case 3:o&&e.push(nt,a,ot);break;case 4:!0===o?e.push(nt,a,ot):!1!==o&&e.push(nt,a,rt,u(C(o)),at);break;case 5:isNaN(o)||e.push(nt,a,rt,u(C(o)),at);break;case 6:!isNaN(o)&&1<=o&&e.push(nt,a,rt,u(C(o)),at);break;default:n.sanitizeURL&&(o=\"\"+o),e.push(nt,a,rt,u(C(o)),at)}}else if(ia(a)){switch(typeof o){case\"function\":case\"symbol\":return;case\"boolean\":if(n=a.toLowerCase().slice(0,5),\"data-\"!==n&&\"aria-\"!==n)return}e.push(nt,u(a),rt,u(C(o)),at)}}var lt=w(\">\"),ut=w(\"/>\");function L(e,n,a){if(null!=n){if(null!=a)throw Error(k(60));if(\"object\"!==typeof n||!(\"__html\"in n))throw Error(k(61));n=n.__html;null!==n&&void 0!==n&&e.push(u(\"\"+n))}}function La(e){var n=\"\";Re.Children.forEach(e,(function(e){null!=e&&(n+=e)}));return n}var it=w(' selected=\"\"');function Na(e,n,a,o){e.push(M(a));var l,i=a=null;for(l in n)if(Ie.call(n,l)){var s=n[l];if(null!=s)switch(l){case\"children\":a=s;break;case\"dangerouslySetInnerHTML\":i=s;break;default:J(e,o,l,s)}}e.push(lt);L(e,i,a);return\"string\"===typeof a?(e.push(u(C(a))),null):a}var st=w(\"\\n\"),ct=/^[a-zA-Z][a-zA-Z:_\\.\\-\\d]*$/,dt=new Map;function M(e){var n=dt.get(e);if(void 0===n){if(!ct.test(e))throw Error(k(65,e));n=w(\"<\"+e);dt.set(e,n)}return n}var ft=w(\"<!DOCTYPE html>\");function Sa(e,n,a,o,l){switch(n){case\"select\":e.push(M(\"select\"));var i=null,s=null;for(h in a)if(Ie.call(a,h)){var c=a[h];if(null!=c)switch(h){case\"children\":i=c;break;case\"dangerouslySetInnerHTML\":s=c;break;case\"defaultValue\":case\"value\":break;default:J(e,o,h,c)}}e.push(lt);L(e,s,i);return i;case\"option\":s=l.selectedValue;e.push(M(\"option\"));var d=c=null,f=null;var h=null;for(i in a)if(Ie.call(a,i)){var g=a[i];if(null!=g)switch(i){case\"children\":c=g;break;case\"selected\":f=g;break;case\"dangerouslySetInnerHTML\":h=g;break;case\"value\":d=g;default:J(e,o,i,g)}}if(null!=s)if(a=null!==d?\"\"+d:La(c),We(s)){for(o=0;o<s.length;o++)if(\"\"+s[o]===a){e.push(it);break}}else\"\"+s===a&&e.push(it);else f&&e.push(it);e.push(lt);L(e,h,c);return c;case\"textarea\":e.push(M(\"textarea\"));h=s=i=null;for(c in a)if(Ie.call(a,c)&&(d=a[c],null!=d))switch(c){case\"children\":h=d;break;case\"value\":i=d;break;case\"defaultValue\":s=d;break;case\"dangerouslySetInnerHTML\":throw Error(k(91));default:J(e,o,c,d)}null===i&&null!==s&&(i=s);e.push(lt);if(null!=h){if(null!=i)throw Error(k(92));if(We(h)&&1<h.length)throw Error(k(93));i=\"\"+h}\"string\"===typeof i&&\"\\n\"===i[0]&&e.push(st);null!==i&&e.push(u(C(\"\"+i)));return null;case\"input\":e.push(M(\"input\"));d=h=c=i=null;for(s in a)if(Ie.call(a,s)&&(f=a[s],null!=f))switch(s){case\"children\":case\"dangerouslySetInnerHTML\":throw Error(k(399,\"input\"));case\"defaultChecked\":d=f;break;case\"defaultValue\":c=f;break;case\"checked\":h=f;break;case\"value\":i=f;break;default:J(e,o,s,f)}null!==h?J(e,o,\"checked\",h):null!==d&&J(e,o,\"checked\",d);null!==i?J(e,o,\"value\",i):null!==c&&J(e,o,\"value\",c);e.push(ut);return null;case\"menuitem\":e.push(M(\"menuitem\"));for(var b in a)if(Ie.call(a,b)&&(i=a[b],null!=i))switch(b){case\"children\":case\"dangerouslySetInnerHTML\":throw Error(k(400));default:J(e,o,b,i)}e.push(lt);return null;case\"title\":e.push(M(\"title\"));i=null;for(g in a)if(Ie.call(a,g)&&(s=a[g],null!=s))switch(g){case\"children\":i=s;break;case\"dangerouslySetInnerHTML\":throw Error(k(434));default:J(e,o,g,s)}e.push(lt);return i;case\"listing\":case\"pre\":e.push(M(n));s=i=null;for(d in a)if(Ie.call(a,d)&&(c=a[d],null!=c))switch(d){case\"children\":i=c;break;case\"dangerouslySetInnerHTML\":s=c;break;default:J(e,o,d,c)}e.push(lt);if(null!=s){if(null!=i)throw Error(k(60));if(\"object\"!==typeof s||!(\"__html\"in s))throw Error(k(61));a=s.__html;null!==a&&void 0!==a&&(\"string\"===typeof a&&0<a.length&&\"\\n\"===a[0]?e.push(st,u(a)):e.push(u(\"\"+a)))}\"string\"===typeof i&&\"\\n\"===i[0]&&e.push(st);return i;case\"area\":case\"base\":case\"br\":case\"col\":case\"embed\":case\"hr\":case\"img\":case\"keygen\":case\"link\":case\"meta\":case\"param\":case\"source\":case\"track\":case\"wbr\":e.push(M(n));for(var m in a)if(Ie.call(a,m)&&(i=a[m],null!=i))switch(m){case\"children\":case\"dangerouslySetInnerHTML\":throw Error(k(399,n));default:J(e,o,m,i)}e.push(ut);return null;case\"annotation-xml\":case\"color-profile\":case\"font-face\":case\"font-face-src\":case\"font-face-uri\":case\"font-face-format\":case\"font-face-name\":case\"missing-glyph\":return Na(e,a,n,o);case\"html\":return 0===l.insertionMode&&e.push(ft),Na(e,a,n,o);default:if(-1===n.indexOf(\"-\")&&\"string\"!==typeof a.is)return Na(e,a,n,o);e.push(M(n));s=i=null;for(f in a)if(Ie.call(a,f)&&(c=a[f],null!=c))switch(f){case\"children\":i=c;break;case\"dangerouslySetInnerHTML\":s=c;break;case\"style\":Ia(e,o,c);break;case\"suppressContentEditableWarning\":case\"suppressHydrationWarning\":break;default:ia(f)&&\"function\"!==typeof c&&\"symbol\"!==typeof c&&e.push(nt,u(f),rt,u(C(c)),at)}e.push(lt);L(e,s,i);return i}}var pt=w(\"</\"),ht=w(\">\"),gt=w('<template id=\"'),bt=w('\"></template>'),mt=w(\"\\x3c!--$--\\x3e\"),yt=w('\\x3c!--$?--\\x3e<template id=\"'),vt=w('\"></template>'),kt=w(\"\\x3c!--$!--\\x3e\"),wt=w(\"\\x3c!--/$--\\x3e\"),St=w(\"<template\"),xt=w('\"'),$t=w(' data-dgst=\"');w(' data-msg=\"');w(' data-stck=\"');var Ct=w(\"></template>\");function fb(e,n,a){p(e,yt);if(null===a)throw Error(k(395));p(e,a);return t(e,vt)}var Et=w('<div hidden id=\"'),Ft=w('\">'),Tt=w(\"</div>\"),Rt=w('<svg aria-hidden=\"true\" style=\"display:none\" id=\"'),Pt=w('\">'),_t=w(\"</svg>\"),Mt=w('<math aria-hidden=\"true\" style=\"display:none\" id=\"'),It=w('\">'),Dt=w(\"</math>\"),Bt=w('<table hidden id=\"'),Nt=w('\">'),zt=w(\"</table>\"),Vt=w('<table hidden><tbody id=\"'),At=w('\">'),Lt=w(\"</tbody></table>\"),jt=w('<table hidden><tr id=\"'),Ot=w('\">'),qt=w(\"</tr></table>\"),Wt=w('<table hidden><colgroup id=\"'),Ht=w('\">'),Ut=w(\"</colgroup></table>\");function Bb(e,n,a,o){switch(a.insertionMode){case 0:case 1:return p(e,Et),p(e,n.segmentPrefix),p(e,u(o.toString(16))),t(e,Ft);case 2:return p(e,Rt),p(e,n.segmentPrefix),p(e,u(o.toString(16))),t(e,Pt);case 3:return p(e,Mt),p(e,n.segmentPrefix),p(e,u(o.toString(16))),t(e,It);case 4:return p(e,Bt),p(e,n.segmentPrefix),p(e,u(o.toString(16))),t(e,Nt);case 5:return p(e,Vt),p(e,n.segmentPrefix),p(e,u(o.toString(16))),t(e,At);case 6:return p(e,jt),p(e,n.segmentPrefix),p(e,u(o.toString(16))),t(e,Ot);case 7:return p(e,Wt),p(e,n.segmentPrefix),p(e,u(o.toString(16))),t(e,Ht);default:throw Error(k(397))}}function Cb(e,n){switch(n.insertionMode){case 0:case 1:return t(e,Tt);case 2:return t(e,_t);case 3:return t(e,Dt);case 4:return t(e,zt);case 5:return t(e,Lt);case 6:return t(e,qt);case 7:return t(e,Ut);default:throw Error(k(397))}}var Zt=w('function $RS(a,b){a=document.getElementById(a);b=document.getElementById(b);for(a.parentNode.removeChild(a);a.firstChild;)b.parentNode.insertBefore(a.firstChild,b);b.parentNode.removeChild(b)};$RS(\"'),Xt=w('$RS(\"'),Jt=w('\",\"'),Gt=w('\")<\\/script>'),Qt=w('function $RC(a,b){a=document.getElementById(a);b=document.getElementById(b);b.parentNode.removeChild(b);if(a){a=a.previousSibling;var f=a.parentNode,c=a.nextSibling,e=0;do{if(c&&8===c.nodeType){var d=c.data;if(\"/$\"===d)if(0===e)break;else e--;else\"$\"!==d&&\"$?\"!==d&&\"$!\"!==d||e++}d=c.nextSibling;f.removeChild(c);c=d}while(c);for(;b.firstChild;)f.insertBefore(b.firstChild,c);a.data=\"$\";a._reactRetry&&a._reactRetry()}};$RC(\"'),Yt=w('$RC(\"'),Kt=w('\",\"'),en=w('\")<\\/script>'),tn=w('function $RX(b,c,d,e){var a=document.getElementById(b);a&&(b=a.previousSibling,b.data=\"$!\",a=a.dataset,c&&(a.dgst=c),d&&(a.msg=d),e&&(a.stck=e),b._reactRetry&&b._reactRetry())};$RX(\"'),nn=w('$RX(\"'),rn=w('\"'),an=w(\")<\\/script>\"),on=w(\",\"),ln=/[<\\u2028\\u2029]/g;function Sb(e){return JSON.stringify(e).replace(ln,(function(e){switch(e){case\"<\":return\"\\\\u003c\";case\"\\u2028\":return\"\\\\u2028\";case\"\\u2029\":return\"\\\\u2029\";default:throw Error(\"escapeJSStringsForInstructionScripts encountered a match it does not know how to replace. this means the match regex and the replacement characters are no longer in sync. This is a bug in React\")}}))}var un=Object.assign,sn=Symbol.for(\"react.element\"),cn=Symbol.for(\"react.portal\"),dn=Symbol.for(\"react.fragment\"),fn=Symbol.for(\"react.strict_mode\"),pn=Symbol.for(\"react.profiler\"),hn=Symbol.for(\"react.provider\"),gn=Symbol.for(\"react.context\"),bn=Symbol.for(\"react.forward_ref\"),mn=Symbol.for(\"react.suspense\"),yn=Symbol.for(\"react.suspense_list\"),vn=Symbol.for(\"react.memo\"),kn=Symbol.for(\"react.lazy\"),wn=Symbol.for(\"react.scope\"),Sn=Symbol.for(\"react.debug_trace_mode\"),xn=Symbol.for(\"react.legacy_hidden\"),$n=Symbol.for(\"react.default_value\"),Cn=Symbol.iterator;function jc(e){if(null==e)return null;if(\"function\"===typeof e)return e.displayName||e.name||null;if(\"string\"===typeof e)return e;switch(e){case dn:return\"Fragment\";case cn:return\"Portal\";case pn:return\"Profiler\";case fn:return\"StrictMode\";case mn:return\"Suspense\";case yn:return\"SuspenseList\"}if(\"object\"===typeof e)switch(e.$$typeof){case gn:return(e.displayName||\"Context\")+\".Consumer\";case hn:return(e._context.displayName||\"Context\")+\".Provider\";case bn:var n=e.render;e=e.displayName;e||(e=n.displayName||n.name||\"\",e=\"\"!==e?\"ForwardRef(\"+e+\")\":\"ForwardRef\");return e;case vn:return n=e.displayName||null,null!==n?n:jc(e.type)||\"Memo\";case kn:n=e._payload;e=e._init;try{return jc(e(n))}catch(e){}}return null}var En={};function lc(e,n){e=e.contextTypes;if(!e)return En;var a,o={};for(a in e)o[a]=n[a];return o}var Fn=null;function P(e,n){if(e!==n){e.context._currentValue=e.parentValue;e=e.parent;var a=n.parent;if(null===e){if(null!==a)throw Error(k(401))}else{if(null===a)throw Error(k(401));P(e,a)}n.context._currentValue=n.value}}function mc(e){e.context._currentValue=e.parentValue;e=e.parent;null!==e&&mc(e)}function nc(e){var n=e.parent;null!==n&&nc(n);e.context._currentValue=e.value}function oc(e,n){e.context._currentValue=e.parentValue;e=e.parent;if(null===e)throw Error(k(402));e.depth===n.depth?P(e,n):oc(e,n)}function pc(e,n){var a=n.parent;if(null===a)throw Error(k(402));e.depth===a.depth?P(e,a):pc(e,a);n.context._currentValue=n.value}function Q(e){var n=Fn;n!==e&&(null===n?nc(e):null===e?mc(n):n.depth===e.depth?P(n,e):n.depth>e.depth?oc(n,e):pc(n,e),Fn=e)}var Tn={isMounted:function(){return!1},enqueueSetState:function(e,n){e=e._reactInternals;null!==e.queue&&e.queue.push(n)},enqueueReplaceState:function(e,n){e=e._reactInternals;e.replace=!0;e.queue=[n]},enqueueForceUpdate:function(){}};function rc(e,n,a,o){var l=void 0!==e.state?e.state:null;e.updater=Tn;e.props=a;e.state=l;var i={queue:[],replace:!1};e._reactInternals=i;var s=n.contextType;e.context=\"object\"===typeof s&&null!==s?s._currentValue:o;s=n.getDerivedStateFromProps;\"function\"===typeof s&&(s=s(a,l),l=null===s||void 0===s?l:un({},l,s),e.state=l);if(\"function\"!==typeof n.getDerivedStateFromProps&&\"function\"!==typeof e.getSnapshotBeforeUpdate&&(\"function\"===typeof e.UNSAFE_componentWillMount||\"function\"===typeof e.componentWillMount))if(n=e.state,\"function\"===typeof e.componentWillMount&&e.componentWillMount(),\"function\"===typeof e.UNSAFE_componentWillMount&&e.UNSAFE_componentWillMount(),n!==e.state&&Tn.enqueueReplaceState(e,e.state,null),null!==i.queue&&0<i.queue.length)if(n=i.queue,s=i.replace,i.queue=null,i.replace=!1,s&&1===n.length)e.state=n[0];else{i=s?n[0]:e.state;l=!0;for(s=s?1:0;s<n.length;s++){var c=n[s];c=\"function\"===typeof c?c.call(e,i,a,o):c;null!=c&&(l?(l=!1,i=un({},i,c)):un(i,c))}e.state=i}else i.queue=null}var Rn={id:1,overflow:\"\"};function tc(e,n,a){var o=e.id;e=e.overflow;var l=32-Pn(o)-1;o&=~(1<<l);a+=1;var i=32-Pn(n)+l;if(30<i){var s=l-l%5;i=(o&(1<<s)-1).toString(32);o>>=s;l-=s;return{id:1<<32-Pn(n)+l|a<<l|o,overflow:i+e}}return{id:1<<i|a<<l|o,overflow:e}}var Pn=Math.clz32?Math.clz32:vc,_n=Math.log,Mn=Math.LN2;function vc(e){e>>>=0;return 0===e?32:31-(_n(e)/Mn|0)|0}function yc(e,n){return e===n&&(0!==e||1/e===1/n)||e!==e&&n!==n}var In=\"function\"===typeof Object.is?Object.is:yc,Dn=null,Bn=null,Nn=null,zn=null,Vn=!1,An=!1,Ln=0,jn=null,On=0;function W(){if(null===Dn)throw Error(k(321));return Dn}function Ec(){if(0<On)throw Error(k(312));return{memoizedState:null,queue:null,next:null}}function Fc(){null===zn?null===Nn?(Vn=!1,Nn=zn=Ec()):(Vn=!0,zn=Nn):null===zn.next?(Vn=!1,zn=zn.next=Ec()):(Vn=!0,zn=zn.next);return zn}function Gc(){Bn=Dn=null;An=!1;Nn=null;On=0;zn=jn=null}function Hc(e,n){return\"function\"===typeof n?n(e):n}function Ic(e,n,a){Dn=W();zn=Fc();if(Vn){var o=zn.queue;n=o.dispatch;if(null!==jn&&(a=jn.get(o),void 0!==a)){jn.delete(o);o=zn.memoizedState;do{o=e(o,a.action),a=a.next}while(null!==a);zn.memoizedState=o;return[o,n]}return[zn.memoizedState,n]}e=e===Hc?\"function\"===typeof n?n():n:void 0!==a?a(n):n;zn.memoizedState=e;e=zn.queue={last:null,dispatch:null};e=e.dispatch=Jc.bind(null,Dn,e);return[zn.memoizedState,e]}function Kc(e,n){Dn=W();zn=Fc();n=void 0===n?null:n;if(null!==zn){var a=zn.memoizedState;if(null!==a&&null!==n){var o=a[1];e:if(null===o)o=!1;else{for(var l=0;l<o.length&&l<n.length;l++)if(!In(n[l],o[l])){o=!1;break e}o=!0}if(o)return a[0]}}e=e();zn.memoizedState=[e,n];return e}function Jc(e,n,a){if(25<=On)throw Error(k(301));if(e===Dn)if(An=!0,e={action:a,next:null},null===jn&&(jn=new Map),a=jn.get(n),void 0===a)jn.set(n,e);else{for(n=a;null!==n.next;)n=n.next;n.next=e}}function Lc(){throw Error(k(394))}function Mc(){}var qn={readContext:function(e){return e._currentValue},useContext:function(e){W();return e._currentValue},useMemo:Kc,useReducer:Ic,useRef:function(e){Dn=W();zn=Fc();var n=zn.memoizedState;return null===n?(e={current:e},zn.memoizedState=e):n},useState:function(e){return Ic(Hc,e)},useInsertionEffect:Mc,useLayoutEffect:function(){},useCallback:function(e,n){return Kc((function(){return e}),n)},useImperativeHandle:Mc,useEffect:Mc,useDebugValue:Mc,useDeferredValue:function(e){W();return e},useTransition:function(){W();return[!1,Lc]},useId:function(){var e=Bn.treeContext;var n=e.overflow;e=e.id;e=(e&~(1<<32-Pn(e)-1)).toString(32)+n;var a=Wn;if(null===a)throw Error(k(404));n=Ln++;e=\":\"+a.idPrefix+\"R\"+e;0<n&&(e+=\"H\"+n.toString(32));return e+\":\"},useMutableSource:function(e,n){W();return n(e._source)},useSyncExternalStore:function(e,n,a){if(void 0===a)throw Error(k(407));return a()}},Wn=null,Hn=Re.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentDispatcher;function Qc(e){console.error(e);return null}function X(){}function Rc(e,n,a,o,l,i,s,c,d){var f=[],h=new Set;n={destination:null,responseState:n,progressiveChunkSize:void 0===o?12800:o,status:0,fatalError:null,nextSegmentId:0,allPendingTasks:0,pendingRootTasks:0,completedRootSegment:null,abortableTasks:h,pingedTasks:f,clientRenderedBoundaries:[],completedBoundaries:[],partialBoundaries:[],onError:void 0===l?Qc:l,onAllReady:void 0===i?X:i,onShellReady:void 0===s?X:s,onShellError:void 0===c?X:c,onFatalError:void 0===d?X:d};a=Sc(n,0,null,a,!1,!1);a.parentFlushed=!0;e=Tc(n,e,null,a,h,En,null,Rn);f.push(e);return n}function Tc(e,n,a,o,l,i,s,c){e.allPendingTasks++;null===a?e.pendingRootTasks++:a.pendingTasks++;var d={node:n,ping:function(){var n=e.pingedTasks;n.push(d);1===n.length&&Uc(e)},blockedBoundary:a,blockedSegment:o,abortSet:l,legacyContext:i,context:s,treeContext:c};l.add(d);return d}function Sc(e,n,a,o,l,i){return{status:0,id:-1,index:n,parentFlushed:!1,chunks:[],children:[],formatContext:o,boundary:a,lastPushedText:l,textEmbedded:i}}function Y(e,n){e=e.onError(n);if(null!=e&&\"string\"!==typeof e)throw Error('onError returned something with a type other than \"string\". onError should return a string and may return null or undefined but must not return anything else. It received something of type \"'+typeof e+'\" instead');return e}function Vc(e,n){var a=e.onShellError;a(n);a=e.onFatalError;a(n);null!==e.destination?(e.status=2,da(e.destination,n)):(e.status=1,e.fatalError=n)}function Wc(e,n,a,o,l){Dn={};Bn=n;Ln=0;for(e=a(o,l);An;)An=!1,Ln=0,On+=1,zn=null,e=a(o,l);Gc();return e}function Xc(e,n,a,o){var l=a.render(),i=o.childContextTypes;if(null!==i&&void 0!==i){var s=n.legacyContext;if(\"function\"!==typeof a.getChildContext)o=s;else{a=a.getChildContext();for(var c in a)if(!(c in i))throw Error(k(108,jc(o)||\"Unknown\",c));o=un({},s,a)}n.legacyContext=o;Z(e,n,l);n.legacyContext=s}else Z(e,n,l)}function Yc(e,n){if(e&&e.defaultProps){n=un({},n);e=e.defaultProps;for(var a in e)void 0===n[a]&&(n[a]=e[a]);return n}return n}function Zc(e,n,a,o,l){if(\"function\"===typeof a)if(a.prototype&&a.prototype.isReactComponent){l=lc(a,n.legacyContext);var i=a.contextType;i=new a(o,\"object\"===typeof i&&null!==i?i._currentValue:l);rc(i,a,o,l);Xc(e,n,i,a)}else{i=lc(a,n.legacyContext);l=Wc(e,n,a,o,i);var s=0!==Ln;if(\"object\"===typeof l&&null!==l&&\"function\"===typeof l.render&&void 0===l.$$typeof)rc(l,a,o,i),Xc(e,n,l,a);else if(s){o=n.treeContext;n.treeContext=tc(o,1,0);try{Z(e,n,l)}finally{n.treeContext=o}}else Z(e,n,l)}else{if(\"string\"!==typeof a){switch(a){case xn:case Sn:case fn:case pn:case dn:Z(e,n,o.children);return;case yn:Z(e,n,o.children);return;case wn:throw Error(k(343));case mn:e:{a=n.blockedBoundary;l=n.blockedSegment;i=o.fallback;o=o.children;s=new Set;var c={id:null,rootSegmentID:-1,parentFlushed:!1,pendingTasks:0,forceClientRender:!1,completedSegments:[],byteSize:0,fallbackAbortableTasks:s,errorDigest:null},d=Sc(e,l.chunks.length,c,l.formatContext,!1,!1);l.children.push(d);l.lastPushedText=!1;var f=Sc(e,0,null,l.formatContext,!1,!1);f.parentFlushed=!0;n.blockedBoundary=c;n.blockedSegment=f;try{if($c(e,n,o),f.lastPushedText&&f.textEmbedded&&f.chunks.push(Qe),f.status=1,ad(c,f),0===c.pendingTasks)break e}catch(n){f.status=4,c.forceClientRender=!0,c.errorDigest=Y(e,n)}finally{n.blockedBoundary=a,n.blockedSegment=l}n=Tc(e,i,a,d,s,n.legacyContext,n.context,n.treeContext);e.pingedTasks.push(n)}return}if(\"object\"===typeof a&&null!==a)switch(a.$$typeof){case bn:o=Wc(e,n,a.render,o,l);if(0!==Ln){a=n.treeContext;n.treeContext=tc(a,1,0);try{Z(e,n,o)}finally{n.treeContext=a}}else Z(e,n,o);return;case vn:a=a.type;o=Yc(a,o);Zc(e,n,a,o,l);return;case hn:l=o.children;a=a._context;o=o.value;i=a._currentValue;a._currentValue=o;s=Fn;Fn=o={parent:s,depth:null===s?0:s.depth+1,context:a,parentValue:i,value:o};n.context=o;Z(e,n,l);e=Fn;if(null===e)throw Error(k(403));o=e.parentValue;e.context._currentValue=o===$n?e.context._defaultValue:o;e=Fn=e.parent;n.context=e;return;case gn:o=o.children;o=o(a._currentValue);Z(e,n,o);return;case kn:l=a._init;a=l(a._payload);o=Yc(a,o);Zc(e,n,a,o,void 0);return}throw Error(k(130,null==a?a:typeof a,\"\"))}l=n.blockedSegment;i=Sa(l.chunks,a,o,e.responseState,l.formatContext);l.lastPushedText=!1;s=l.formatContext;l.formatContext=Ba(s,a,o);$c(e,n,i);l.formatContext=s;switch(a){case\"area\":case\"base\":case\"br\":case\"col\":case\"embed\":case\"hr\":case\"img\":case\"input\":case\"keygen\":case\"link\":case\"meta\":case\"param\":case\"source\":case\"track\":case\"wbr\":break;default:l.chunks.push(pt,u(a),ht)}l.lastPushedText=!1}}function Z(e,n,a){n.node=a;if(\"object\"===typeof a&&null!==a){switch(a.$$typeof){case sn:Zc(e,n,a.type,a.props,a.ref);return;case cn:throw Error(k(257));case kn:var o=a._init;a=o(a._payload);Z(e,n,a);return}if(We(a)){bd(e,n,a);return}null===a||\"object\"!==typeof a?o=null:(o=Cn&&a[Cn]||a[\"@@iterator\"],o=\"function\"===typeof o?o:null);if(o&&(o=o.call(a))){a=o.next();if(!a.done){var l=[];do{l.push(a.value),a=o.next()}while(!a.done);bd(e,n,l)}return}e=Object.prototype.toString.call(a);throw Error(k(31,\"[object Object]\"===e?\"object with keys {\"+Object.keys(a).join(\", \")+\"}\":e))}\"string\"===typeof a?(o=n.blockedSegment,o.lastPushedText=Da(n.blockedSegment.chunks,a,e.responseState,o.lastPushedText)):\"number\"===typeof a&&(o=n.blockedSegment,o.lastPushedText=Da(n.blockedSegment.chunks,\"\"+a,e.responseState,o.lastPushedText))}function bd(e,n,a){for(var o=a.length,l=0;l<o;l++){var i=n.treeContext;n.treeContext=tc(i,o,l);try{$c(e,n,a[l])}finally{n.treeContext=i}}}function $c(e,n,a){var o=n.blockedSegment.formatContext,l=n.legacyContext,i=n.context;try{return Z(e,n,a)}catch(d){if(Gc(),\"object\"!==typeof d||null===d||\"function\"!==typeof d.then)throw n.blockedSegment.formatContext=o,n.legacyContext=l,n.context=i,Q(i),d;a=d;var s=n.blockedSegment,c=Sc(e,s.chunks.length,null,s.formatContext,s.lastPushedText,!0);s.children.push(c);s.lastPushedText=!1;e=Tc(e,n.node,n.blockedBoundary,c,n.abortSet,n.legacyContext,n.context,n.treeContext).ping;a.then(e,e);n.blockedSegment.formatContext=o;n.legacyContext=l;n.context=i;Q(i)}}function cd(e){var n=e.blockedBoundary;e=e.blockedSegment;e.status=3;dd(this,n,e)}function ed(e,n,a){var o=e.blockedBoundary;e.blockedSegment.status=3;null===o?(n.allPendingTasks--,2!==n.status&&(n.status=2,null!==n.destination&&n.destination.close())):(o.pendingTasks--,o.forceClientRender||(o.forceClientRender=!0,e=void 0===a?Error(k(432)):a,o.errorDigest=n.onError(e),o.parentFlushed&&n.clientRenderedBoundaries.push(o)),o.fallbackAbortableTasks.forEach((function(e){return ed(e,n,a)})),o.fallbackAbortableTasks.clear(),n.allPendingTasks--,0===n.allPendingTasks&&(o=n.onAllReady,o()))}function ad(e,n){if(0===n.chunks.length&&1===n.children.length&&null===n.children[0].boundary){var a=n.children[0];a.id=n.id;a.parentFlushed=!0;1===a.status&&ad(e,a)}else e.completedSegments.push(n)}function dd(e,n,a){if(null===n){if(a.parentFlushed){if(null!==e.completedRootSegment)throw Error(k(389));e.completedRootSegment=a}e.pendingRootTasks--;0===e.pendingRootTasks&&(e.onShellError=X,n=e.onShellReady,n())}else n.pendingTasks--,n.forceClientRender||(0===n.pendingTasks?(a.parentFlushed&&1===a.status&&ad(n,a),n.parentFlushed&&e.completedBoundaries.push(n),n.fallbackAbortableTasks.forEach(cd,e),n.fallbackAbortableTasks.clear()):a.parentFlushed&&1===a.status&&(ad(n,a),1===n.completedSegments.length&&n.parentFlushed&&e.partialBoundaries.push(n)));e.allPendingTasks--;0===e.allPendingTasks&&(e=e.onAllReady,e())}function Uc(e){if(2!==e.status){var n=Fn,a=Hn.current;Hn.current=qn;var o=Wn;Wn=e.responseState;try{var l,i=e.pingedTasks;for(l=0;l<i.length;l++){var s=i[l];var c=e,d=s.blockedSegment;if(0===d.status){Q(s.context);try{Z(c,s,s.node),d.lastPushedText&&d.textEmbedded&&d.chunks.push(Qe),s.abortSet.delete(s),d.status=1,dd(c,s.blockedBoundary,d)}catch(e){if(Gc(),\"object\"===typeof e&&null!==e&&\"function\"===typeof e.then){var f=s.ping;e.then(f,f)}else{s.abortSet.delete(s);d.status=4;var h=s.blockedBoundary,g=e,b=Y(c,g);null===h?Vc(c,g):(h.pendingTasks--,h.forceClientRender||(h.forceClientRender=!0,h.errorDigest=b,h.parentFlushed&&c.clientRenderedBoundaries.push(h)));c.allPendingTasks--;if(0===c.allPendingTasks){var m=c.onAllReady;m()}}}}}i.splice(0,l);null!==e.destination&&fd(e,e.destination)}catch(n){Y(e,n),Vc(e,n)}finally{Wn=o,Hn.current=a,a===qn&&Q(n)}}}function gd(e,n,a){a.parentFlushed=!0;switch(a.status){case 0:var o=a.id=e.nextSegmentId++;a.lastPushedText=!1;a.textEmbedded=!1;e=e.responseState;p(n,gt);p(n,e.placeholderPrefix);e=u(o.toString(16));p(n,e);return t(n,bt);case 1:a.status=2;var l=!0;o=a.chunks;var i=0;a=a.children;for(var s=0;s<a.length;s++){for(l=a[s];i<l.index;i++)p(n,o[i]);l=hd(e,n,l)}for(;i<o.length-1;i++)p(n,o[i]);i<o.length&&(l=t(n,o[i]));return l;default:throw Error(k(390))}}function hd(e,n,a){var o=a.boundary;if(null===o)return gd(e,n,a);o.parentFlushed=!0;if(o.forceClientRender)o=o.errorDigest,t(n,kt),p(n,St),o&&(p(n,$t),p(n,u(C(o))),p(n,xt)),t(n,Ct),gd(e,n,a);else if(0<o.pendingTasks){o.rootSegmentID=e.nextSegmentId++;0<o.completedSegments.length&&e.partialBoundaries.push(o);var l=e.responseState;var i=l.nextSuspenseID++;l=w(l.boundaryPrefix+i.toString(16));o=o.id=l;fb(n,e.responseState,o);gd(e,n,a)}else if(o.byteSize>e.progressiveChunkSize)o.rootSegmentID=e.nextSegmentId++,e.completedBoundaries.push(o),fb(n,e.responseState,o.id),gd(e,n,a);else{t(n,mt);a=o.completedSegments;if(1!==a.length)throw Error(k(391));hd(e,n,a[0])}return t(n,wt)}function id(e,n,a){Bb(n,e.responseState,a.formatContext,a.id);hd(e,n,a);return Cb(n,a.formatContext)}function jd(e,n,a){for(var o=a.completedSegments,l=0;l<o.length;l++)kd(e,n,a,o[l]);o.length=0;e=e.responseState;o=a.id;a=a.rootSegmentID;p(n,e.startInlineScript);e.sentCompleteBoundaryFunction?p(n,Yt):(e.sentCompleteBoundaryFunction=!0,p(n,Qt));if(null===o)throw Error(k(395));a=u(a.toString(16));p(n,o);p(n,Kt);p(n,e.segmentPrefix);p(n,a);return t(n,en)}function kd(e,n,a,o){if(2===o.status)return!0;var l=o.id;if(-1===l){if(-1===(o.id=a.rootSegmentID))throw Error(k(392));return id(e,n,o)}id(e,n,o);e=e.responseState;p(n,e.startInlineScript);e.sentCompleteSegmentFunction?p(n,Xt):(e.sentCompleteSegmentFunction=!0,p(n,Zt));p(n,e.segmentPrefix);l=u(l.toString(16));p(n,l);p(n,Jt);p(n,e.placeholderPrefix);p(n,l);return t(n,Gt)}function fd(e,n){Pe=new Uint8Array(512);_e=0;try{var a=e.completedRootSegment;if(null!==a&&0===e.pendingRootTasks){hd(e,n,a);e.completedRootSegment=null;var o=e.responseState.bootstrapChunks;for(a=0;a<o.length-1;a++)p(n,o[a]);a<o.length&&t(n,o[a])}var l,i=e.clientRenderedBoundaries;for(l=0;l<i.length;l++){var s=i[l];o=n;var c=e.responseState,d=s.id,f=s.errorDigest,h=s.errorMessage,g=s.errorComponentStack;p(o,c.startInlineScript);c.sentClientRenderFunction?p(o,nn):(c.sentClientRenderFunction=!0,p(o,tn));if(null===d)throw Error(k(395));p(o,d);p(o,rn);(f||h||g)&&(p(o,on),p(o,u(Sb(f||\"\"))));(h||g)&&(p(o,on),p(o,u(Sb(h||\"\"))));g&&(p(o,on),p(o,u(Sb(g))));if(!t(o,an)){e.destination=null;l++;i.splice(0,l);return}}i.splice(0,l);var b=e.completedBoundaries;for(l=0;l<b.length;l++)if(!jd(e,n,b[l])){e.destination=null;l++;b.splice(0,l);return}b.splice(0,l);ba(n);Pe=new Uint8Array(512);_e=0;var m=e.partialBoundaries;for(l=0;l<m.length;l++){var S=m[l];e:{i=e;s=n;var x=S.completedSegments;for(c=0;c<x.length;c++)if(!kd(i,s,S,x[c])){c++;x.splice(0,c);var $=!1;break e}x.splice(0,c);$=!0}if(!$){e.destination=null;l++;m.splice(0,l);return}}m.splice(0,l);var E=e.completedBoundaries;for(l=0;l<E.length;l++)if(!jd(e,n,E[l])){e.destination=null;l++;E.splice(0,l);return}E.splice(0,l)}finally{ba(n),0===e.allPendingTasks&&0===e.pingedTasks.length&&0===e.clientRenderedBoundaries.length&&0===e.completedBoundaries.length&&n.close()}}function ld(e,n){try{var a=e.abortableTasks;a.forEach((function(a){return ed(a,e,n)}));a.clear();null!==e.destination&&fd(e,e.destination)}catch(n){Y(e,n),Vc(e,n)}}Te.renderToReadableStream=function(e,n){return new Promise((function(a,o){var l,i,s=new Promise((function(e,n){i=e;l=n})),c=Rc(e,za(n?n.identifierPrefix:void 0,n?n.nonce:void 0,n?n.bootstrapScriptContent:void 0,n?n.bootstrapScripts:void 0,n?n.bootstrapModules:void 0),Aa(n?n.namespaceURI:void 0),n?n.progressiveChunkSize:void 0,n?n.onError:void 0,i,(function(){var e=new ReadableStream({type:\"bytes\",pull:function(e){if(1===c.status)c.status=2,da(e,c.fatalError);else if(2!==c.status&&null===c.destination){c.destination=e;try{fd(c,e)}catch(e){Y(c,e),Vc(c,e)}}},cancel:function(){ld(c)}},{highWaterMark:0});e.allReady=s;a(e)}),(function(e){s.catch((function(){}));o(e)}),l);if(n&&n.signal){var d=n.signal,q=function(){ld(c,d.reason);d.removeEventListener(\"abort\",q)};d.addEventListener(\"abort\",q)}Uc(c)}))};Te.version=\"18.2.0\";var Un={};var Zn,Xn;Zn=a;Xn=Te;Un.version=Zn.version;Un.renderToString=Zn.renderToString;Un.renderToStaticMarkup=Zn.renderToStaticMarkup;Un.renderToNodeStream=Zn.renderToNodeStream;Un.renderToStaticNodeStream=Zn.renderToStaticNodeStream;Un.renderToReadableStream=Xn.renderToReadableStream;const Jn=Un.version,Gn=Un.renderToString,Qn=Un.renderToStaticMarkup,Yn=Un.renderToNodeStream,Kn=Un.renderToStaticNodeStream,er=Un.renderToReadableStream;export{Un as default,Yn as renderToNodeStream,er as renderToReadableStream,Qn as renderToStaticMarkup,Kn as renderToStaticNodeStream,Gn as renderToString,Jn as version};\n\n//# sourceMappingURL=server.browser.js.map","import{jsx as _jsx}from\"react/jsx-runtime\";import{ControlType,useIsStaticRenderer}from\"framer\";import{useEffect,useMemo,useState}from\"react\";export default function GLUtils(props){return /*#__PURE__*/_jsx(\"div\",{});}export const DEFAULT_IMAGE=\"https://framerusercontent.com/images/6MTlf3HAzQ2kjMqPur2sdbkznQ.png?scale-down-to=2048\";export const DEFAULT_IMAGE_FLOWER=\"https://framerusercontent.com/images/cz3ePY6OFcSC4EItQFuQxLrQbBA.jpg\";export const DEFAULT_IMAGE_FLOWER_DARK=\"https://framerusercontent.com/images/l4gFK0Yuorz9j7RwU2EbwWxpw.jpg\";export const DEFAULT_ALT=\"Default image\";export const DEFAULT_ALT_FLOWER=\"A wilted tulip with red and yellow petals.\";export const DEFAULT_ALT_FLOWER_DARK=\"A bright yellow sunflower against a dark background.\";export function degToRad(degrees){return degrees*(Math.PI/180);}export function colorToVec4(color){let actualColor=color;if(color.startsWith(\"var(\")){const varMatch=color.match(/var\\([^,]+,\\s*(.+)\\)$/);if(varMatch){actualColor=varMatch[1].trim();}else{console.warn(\"无法解析 CSS 变量:\",color);return[0,0,0,1];}}actualColor=actualColor.replace(/\\s/g,\"\");let r,g,b,a=1;// 处理 rgb() 和 rgba() 格式\nconst rgbaMatch=actualColor.match(/rgba?\\((\\d+),(\\d+),(\\d+)(?:,([0-9]*\\.?[0-9]+))?\\)/);if(rgbaMatch){r=parseInt(rgbaMatch[1]);g=parseInt(rgbaMatch[2]);b=parseInt(rgbaMatch[3]);if(rgbaMatch[4]!==undefined){a=parseFloat(rgbaMatch[4]);}return[r/255,g/255,b/255,a];}// 处理十六进制格式 (#RGB 或 #RRGGBB)\nconst hexMatch=actualColor.match(/^#([0-9a-fA-F]{3}|[0-9a-fA-F]{6})$/);if(hexMatch){const hex=hexMatch[1];if(hex.length===3){// 处理 #RGB 格式，扩展为 #RRGGBB\nr=parseInt(hex[0]+hex[0],16);g=parseInt(hex[1]+hex[1],16);b=parseInt(hex[2]+hex[2],16);}else{// 处理 #RRGGBB 格式\nr=parseInt(hex.substr(0,2),16);g=parseInt(hex.substr(2,2),16);b=parseInt(hex.substr(4,2),16);}return[r/255,g/255,b/255,a];}console.warn(\"无法解析颜色格式:\",color);return[0,0,0,1];}export function colorToVec3(color){let actualColor=color;if(color.startsWith(\"var(\")){const varMatch=color.match(/var\\([^,]+,\\s*(.+)\\)$/);if(varMatch){actualColor=varMatch[1].trim();}else{console.warn(\"无法解析 CSS 变量:\",color);return[0,0,0];}}actualColor=actualColor.replace(/\\s/g,\"\");let r,g,b;// 处理 rgb() 和 rgba() 格式\nconst rgbaMatch=actualColor.match(/rgba?\\((\\d+),(\\d+),(\\d+)(?:,([0-9]*\\.?[0-9]+))?\\)/);if(rgbaMatch){r=parseInt(rgbaMatch[1]);g=parseInt(rgbaMatch[2]);b=parseInt(rgbaMatch[3]);return[r/255,g/255,b/255];}// 处理十六进制格式 (#RGB 或 #RRGGBB)\nconst hexMatch=actualColor.match(/^#([0-9a-fA-F]{3}|[0-9a-fA-F]{6})$/);if(hexMatch){const hex=hexMatch[1];if(hex.length===3){// 处理 #RGB 格式，扩展为 #RRGGBB\nr=parseInt(hex[0]+hex[0],16);g=parseInt(hex[1]+hex[1],16);b=parseInt(hex[2]+hex[2],16);}else{// 处理 #RRGGBB 格式\nr=parseInt(hex.substr(0,2),16);g=parseInt(hex.substr(2,2),16);b=parseInt(hex.substr(4,2),16);}return[r/255,g/255,b/255];}console.warn(\"无法解析颜色格式:\",color);return[0,0,0];}export const useDarkMode=()=>{const[isDarkMode,setIsDarkMode]=useState(false);useEffect(()=>{const mediaQuery=window.matchMedia(\"(prefers-color-scheme: dark)\");setIsDarkMode(mediaQuery.matches);const handler=e=>setIsDarkMode(e.matches);mediaQuery.addListener(handler);return()=>mediaQuery.removeListener(handler);},[]);return isDarkMode;};export const CompatibleMedia=({mediaType,mediaSrc,imageAlt,fit,loop,style={},...props})=>{const isStaticRenderer=useIsStaticRenderer();const defaultStyle={width:\"100%\",height:\"100%\",objectFit:fit};if(mediaType===\"image\"){return /*#__PURE__*/_jsx(\"img\",{src:mediaSrc,alt:imageAlt,style:{...defaultStyle,...style},crossOrigin:\"anonymous\"});}else{return /*#__PURE__*/_jsx(\"video\",{src:mediaSrc,autoPlay:!isStaticRenderer,muted:true,playsInline:true,loop:loop,style:{...defaultStyle,...style},crossOrigin:\"anonymous\"});}};export const useMediaSource=(media,file,urlVideo,upVideo,defaultImage,darkImage,dark,placeholder=\"flower_dark\")=>{const isDarkMode=useDarkMode();const getPlaceholderValues=useMemo(()=>{const placeholderMap={reveals:{image:\"https://framerusercontent.com/images/6MTlf3HAzQ2kjMqPur2sdbkznQ.png?scale-down-to=2048\",alt:\"reveals original image.\"},flower_light:{image:\"https://framerusercontent.com/images/cz3ePY6OFcSC4EItQFuQxLrQbBA.jpg\",alt:\"A wilted tulip with red and yellow petals.\"},flower_dark:{image:\"https://framerusercontent.com/images/l4gFK0Yuorz9j7RwU2EbwWxpw.jpg\",alt:\"A bright yellow sunflower against a dark background.\"},arch_dark:{image:\"https://framerusercontent.com/images/kW9tNTLiYRYp7LGxfxbuywTR4I.jpg\",alt:\"A white sphere suspended among curved black metallic ribbons.\"},dice_dark:{image:\"https://framerusercontent.com/images/bXMH0vhJVBjFjMhCnvcVuK0KA0.jpg\",alt:\"A cluster of smooth, reflective metallic shapes on a dark background.\"},astronaut:{image:\"https://framerusercontent.com/images/K54OdkNAJ7dNPCQlcqviSKRrXAY.jpg?width=1920&height=1282\",alt:\"Close-up of an astronaut’s face inside a reflective helmet.\"},silhouetted:{image:\"https://framerusercontent.com/images/CeZXMYBfdBEchX3ub79dGEHlyCQ.jpg?width=1920&height=1280\",alt:\"Silhouetted figure walking behind frosted glass panels.\"},structure:{image:\"https://framerusercontent.com/images/Ud6oqYomUb6OGy9FMr1VmAPXIU.jpg?width=1920&height=1280\",alt:\"Abstract red metal structure against a clear sky.\"},dizzy:{image:\"https://framerusercontent.com/images/JJmc0OZsfY0HhNmbr8W4De17Pw.jpg?width=1920&height=1343\",alt:\"Blurred portrait of a person in motion with hands near the head.\"},hand:{image:\"https://framerusercontent.com/images/qAQg0suczEYw3OPZEmj7XxyW0.jpg?width=1920&height=1440\",alt:\"A hand reaching toward a glowing blue light.\"},porsche:{image:\"https://framerusercontent.com/images/9bPvA91sUvfr4lgE2gQ1MbfUMDs.jpg?width=1920&height=1280\",alt:\"A silver sports car in the rain, seen from the rear side.\"},wheat:{image:\"https://framerusercontent.com/images/jhGTXFJ0WKeCaZXfyfE5pSL1Pbc.jpg?width=1920&height=1280\",alt:\"Golden grass glistening in sunlight.\"}};return placeholderMap[placeholder]||placeholderMap.flower_dark;},[placeholder]);const imageSrc=useMemo(()=>{if(dark&&isDarkMode&&darkImage?.src){return darkImage.src;}return defaultImage?.src||getPlaceholderValues.image;},[isDarkMode,defaultImage,darkImage,dark,getPlaceholderValues.image]);const imageAlt=useMemo(()=>{if(media===\"image\"){if(dark&&isDarkMode&&darkImage?.alt){return darkImage.alt;}return defaultImage?.alt||getPlaceholderValues.alt;}else if(media===\"cms\"){if(dark&&isDarkMode&&darkImage?.alt){return darkImage.alt;}return defaultImage?.alt||getPlaceholderValues.alt;}},[isDarkMode,defaultImage,darkImage,dark,getPlaceholderValues.alt]);const mediaSrc=useMemo(()=>{if(media===\"image\"){return imageSrc;}return file===\"url\"?urlVideo:upVideo;},[media,file,imageSrc,urlVideo,upVideo,defaultImage,darkImage,dark]);const mediaType=useMemo(()=>{const mediaTypeMap={image:\"image\",cms:\"image\",video:\"video\"};return mediaTypeMap[media]||\"video\";},[media]);return{imageSrc,imageAlt,mediaSrc,mediaType};};export const propertyControls={media:{type:{type:ControlType.Enum,title:\"Media\",options:[\"image\",\"video\"],optionTitles:[\"Image\",\"Video\"],displaySegmentedControl:true,defaultValue:\"image\"},file:{type:ControlType.Enum,title:\"File\",options:[\"url\",\"upload\"],optionTitles:[\"URL\",\"Upload\"],displaySegmentedControl:true,defaultValue:\"url\",hidden(props){return props.type!==\"video\";}},defaultImage:{type:ControlType.ResponsiveImage,title:\"Image\",hidden(props){return props.type!==\"image\";}},// dark: {\n//     type: ControlType.Boolean,\n//     title: \"Dark Mode\",\n//     defaultValue: false,\n//     hidden(props) {\n//         return props.type !== \"image\"\n//     },\n// },\n// darkImage: {\n//     type: ControlType.ResponsiveImage,\n//     title: \"Dark Image\",\n//     hidden(props) {\n//         return props.dark\n//             ? props.type === \"image\"\n//                 ? false\n//                 : true\n//             : true\n//     },\n// },\nurlVideo:{type:ControlType.String,title:\"URL\",defaultValue:\"https://framerusercontent.com/assets/Jhocnrz23GM4PK1CT7mBiwAu5U.mp4\",// description: \"Use video will affect performance more.\",\nhidden(props){return props.file===\"url\"?props.type===\"video\"?false:true:true;}},upVideo:{type:ControlType.File,title:\"Upload\",allowedFileTypes:[\"mp4\",\"webm\"],description:\"Use video will affect performance more.\",hidden(props){return props.file===\"upload\"?props.type===\"video\"?false:true:true;}},loop:{type:ControlType.Boolean,title:\"Loop\",defaultValue:true,hidden(props){return props.type!==\"video\";}}},size:{fit:{type:ControlType.Enum,title:\"Fit\",options:[\"cover\",\"contain\"],optionTitles:[\"Cover\",\"Contain\"],defaultValue:\"cover\"}},animateControls:{type:{type:ControlType.Enum,title:\"Type\",options:[\"disable\",\"appear\",\"enter\",\"transform\",\"variant\"],optionTitles:[\"Disable\",\"Appear\",\"Enter\",\"Transform\",\"Variant\"],defaultValue:\"appear\"},replay:{type:ControlType.Boolean,title:\"Replay\",defaultValue:true,hidden(props){return props.type!==\"enter\";}},trigger:{type:ControlType.Enum,title:\"Trigger\",options:[\"layer\",\"section\"],optionTitles:[\"Layer in View\",\"Section in View\"],defaultValue:\"layer\",hidden(props){return props.type==\"appear\"||props.type==\"disable\"||props.type==\"variant\";}},section:{// @ts-ignore\ntype:ControlType.ScrollSectionRef,title:\"Section\",hidden(props){if((props.type===\"transform\"||props.type===\"enter\")&&props.trigger===\"section\"){return false;}return true;}},amount:{type:ControlType.Enum,title:\"Amount\",options:[1,.5,0],optionTitles:[\"Top\",\"Center\",\"Bottom\"],displaySegmentedControl:true,defaultValue:0,description:\"Play animation when how much of the media comes into view.\",hidden(props){return props.type!==\"enter\";}},viewport:{type:ControlType.Enum,title:\"Viewport\",options:[\"top\",\"center\",\"bottom\"],optionTitles:[\"Top\",\"Center\",\"Bottom\"],displaySegmentedControl:true,defaultValue:\"center\",description:\"Start transforming when how much of the media comes into view.\",hidden(props){return props.type!==\"transform\";}}},accessibility:{accessibility:{type:ControlType.Object,title:\"Accessibility\",buttonTitle:\"Aria Label\",icon:\"boolean\",// description: \"Learn more on [Reveals](https://reveals.cool).\",\ncontrols:{enableAria:{type:ControlType.Boolean,title:\"Aria Label\",defaultValue:false},compatibility:{type:ControlType.Boolean,title:\"Compatibility\",defaultValue:false,description:\"Disable effects and use regular *image/video* elements. e.g. use on Phone layout for better performance.\"},reduce:{type:ControlType.Enum,title:\"Reduce Motion\",displaySegmentedControl:true,segmentedControlDirection:\"horizontal\",options:[true,false],optionTitles:[\"Allow\",\"Block\"],defaultValue:false,description:\"Whether to allow Reduce Motion to control animation.\"},renderer:{type:ControlType.Enum,title:\"Renderer\",displaySegmentedControl:true,segmentedControlDirection:\"horizontal\",options:[\"auto\",\"always\"],optionTitles:[\"Auto\",\"Always\"],defaultValue:\"auto\",description:\"Control when the renderer will render.\"}}},ariaLabel:{type:ControlType.String,title:\"Aria Label\",defaultValue:\"\",hidden(props){return!props.accessibility.enableAria;}}},eventHandler:{onLoad:{type:ControlType.EventHandler,title:\"Load\"},onError:{type:ControlType.EventHandler,title:\"Error\"},onVideoEnd:{type:ControlType.EventHandler,title:\"Video End\"},onAnimationComplete:{type:ControlType.EventHandler,title:\"Animation Complete\"}}};\nexport const __FramerMetadata__ = {\"exports\":{\"DEFAULT_ALT_FLOWER_DARK\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"CompatibleMedia\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useDarkMode\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"DEFAULT_ALT_FLOWER\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"DEFAULT_IMAGE_FLOWER\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"colorToVec3\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"DEFAULT_IMAGE_FLOWER_DARK\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"propertyControls\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"default\":{\"type\":\"reactComponent\",\"name\":\"GLUtils\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"colorToVec4\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useMediaSource\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"DEFAULT_IMAGE\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"DEFAULT_ALT\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"degToRad\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./GLUtils.map","/*\n * GLUtils\n *\n * Learn More: https://www.framer.com/asset-urls\n */\n\nexport * from \"https://framerusercontent.com/modules/yiDyco0u2VIMCjawUp4K/SbAiryFn9g8ffjbuHQHj/GLUtils.js\"\nexport { default } from \"https://framerusercontent.com/modules/yiDyco0u2VIMCjawUp4K/SbAiryFn9g8ffjbuHQHj/GLUtils.js\"\n","import{jsx as _jsx}from\"react/jsx-runtime\";export default function OGLUtils(props){return /*#__PURE__*/_jsx(\"div\",{});}export const calculatePlaneSize=(mediaWidth,mediaHeight,containerWidth,containerHeight,fitMode)=>{const mediaAspect=mediaWidth/mediaHeight;const containerAspect=containerWidth/containerHeight;let planeWidth,planeHeight;if(fitMode===\"cover\"){if(mediaAspect>containerAspect){planeHeight=containerHeight;planeWidth=containerHeight*mediaAspect;}else{planeWidth=containerWidth;planeHeight=containerWidth/mediaAspect;}}else if(fitMode===\"contain\"){if(mediaAspect>containerAspect){planeWidth=containerWidth;planeHeight=containerWidth/mediaAspect;}else{planeHeight=containerHeight;planeWidth=containerHeight*mediaAspect;}}return{width:planeWidth,height:planeHeight};};export const defaultPostProcessVertexShader=`\n    attribute vec2 uv;\n    attribute vec3 position;\n\n    varying vec2 vUv;\n\n    void main() {\n        vUv = uv;\n        gl_Position = vec4(position, 1.0);\n    }\n`;export const defaultPostProcessFragmentShader=`\n    precision highp float;\n\n    uniform sampler2D uTexture;\n    uniform float uTime;\n    uniform vec2 uResolution;\n\n    varying vec2 vUv;\n\n    void main() {\n        vec4 color = texture2D(uTexture, vUv);\n        gl_FragColor = color;\n    }\n`;export const defaultVertexShader=`\n        attribute vec3 position;\n        attribute vec2 uv;\n        uniform mat4 modelViewMatrix;\n        uniform mat4 projectionMatrix;\n        varying vec2 vUv;\n        \n        void main() {\n            vUv = uv;\n            gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);\n        }\n    `;export const defaultFragmentShader=`\n        precision mediump float;\n        \n        uniform sampler2D uTexture;\n        varying vec2 vUv;\n        \n        void main() {\n            vec4 textureColor = texture2D(uTexture, vUv);\n            gl_FragColor = textureColor;\n        }\n    `;\nexport const __FramerMetadata__ = {\"exports\":{\"defaultVertexShader\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"default\":{\"type\":\"reactComponent\",\"name\":\"OGLUtils\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"defaultPostProcessVertexShader\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"defaultFragmentShader\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"defaultPostProcessFragmentShader\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"calculatePlaneSize\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./OGLUtils.map","/*\n * OGLUtils\n *\n * Learn More: https://www.framer.com/asset-urls\n */\n\nexport * from \"https://framerusercontent.com/modules/MpdGPgep8CrmVuG8IclI/3flka5fkGcFUNVW00KRS/OGLUtils.js\"\nexport { default } from \"https://framerusercontent.com/modules/MpdGPgep8CrmVuG8IclI/3flka5fkGcFUNVW00KRS/OGLUtils.js\"\n","import{jsx as _jsx}from\"react/jsx-runtime\";import{useEffect,useRef,useState}from\"react\";import{animate,MotionValue}from\"framer-motion\";export default function VariantValue(props){return /*#__PURE__*/_jsx(\"div\",{});}export const useVariantValues=(values,transition,enabled=true)=>{const[isAnimating,setIsAnimating]=useState(false);const motionValuesRef=useRef({});// 确保 motionValuesRef.current 拥有所有当前值的 MotionValue 实例\nfor(const key in values){if(!motionValuesRef.current[key]){motionValuesRef.current[key]=new MotionValue(values[key]);}}// Effect 用于处理值的更新（带或不带动画）\nuseEffect(()=>{// 如果禁用了动画，立即设置值并确保动画状态为 false\nif(!enabled){for(const key in values){const mv=motionValuesRef.current[key];const targetValue=values[key];if(mv&&mv.get()!==targetValue){// 直接设置值，不进行动画\nmv.set(targetValue);}}// 确保动画状态为 false\nif(isAnimating){setIsAnimating(false);}return;// 提前退出 effect\n}// --- 如果启用了动画，执行以下逻辑 ---\nconst allAnimations=[];let hasStartedAnimation=false;for(const key in values){const mv=motionValuesRef.current[key];const targetValue=values[key];if(mv&&mv.get()!==targetValue){hasStartedAnimation=true;const animationPromise=animate(mv,targetValue,transition);allAnimations.push(animationPromise);}}if(hasStartedAnimation){setIsAnimating(true);}// 等待所有动画完成\nPromise.all(allAnimations).then(()=>{if(hasStartedAnimation){setIsAnimating(false);}});// 清理函数\nreturn()=>{allAnimations.forEach(animationControl=>{animationControl.stop();});};// 将 enabled 添加到依赖数组\n},[JSON.stringify(values),transition,enabled]);return{variantValue:motionValuesRef.current,isVariantUpdating:isAnimating};};\nexport const __FramerMetadata__ = {\"exports\":{\"useVariantValues\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"default\":{\"type\":\"reactComponent\",\"name\":\"VariantValue\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./UseVariantValue.map","/*\n * UseVariantValue\n *\n * Learn More: https://www.framer.com/asset-urls\n */\n\nexport * from \"https://framerusercontent.com/modules/iz4j9aR1Hz2B8RkMogH4/AGDgcLdj5rKsWYMCweUZ/UseVariantValue.js\"\nexport { default } from \"https://framerusercontent.com/modules/iz4j9aR1Hz2B8RkMogH4/AGDgcLdj5rKsWYMCweUZ/UseVariantValue.js\"\n","import{jsx as _jsx}from\"react/jsx-runtime\";export default function AnimatedValue(props){return /*#__PURE__*/_jsx(\"div\",{});}import{useRef,useEffect,useState}from\"react\";import{useInView,useScroll}from\"framer-motion\";import{animate}from\"framer-motion\";export function useAnimatedValues(config,animateProp,transition,mountRef,enable=true){const values=useRef(Object.fromEntries(Object.entries(config).map(([key,{from}])=>[key,from])));const[isUpdating,setIsUpdating]=useState(false);const animationControlsRef=useRef(null);const targetRef=enable?animateProp.trigger===\"section\"&&animateProp.section?animateProp.section:mountRef:mountRef;const isInView=useInView(targetRef,{once:!animateProp.replay,amount:animateProp.amount});const{scrollYProgress}=useScroll({target:targetRef,layoutEffect:false,offset:animateProp.viewport===\"top\"?[\"start start\",\"end start\"]:animateProp.viewport===\"bottom\"?[\"start end\",\"start start\"]:[\"start center\",\"end center\"]});const[scrollProgress,setScrollProgress]=useState(0);// 只有在启用时才监听滚动进度变化\nuseEffect(()=>{if(enable&&animateProp.type===\"transform\"){const unsubscribe=scrollYProgress.onChange(latest=>{setScrollProgress(1-latest);});return unsubscribe;}},[scrollYProgress,animateProp.type,enable]);useEffect(()=>{// 清理之前的动画\nif(animationControlsRef.current){animationControlsRef.current.stop();animationControlsRef.current=null;}// 如果禁用，重置到初始值\nif(!enable){Object.entries(config).forEach(([key,{from}])=>{values.current[key]=from;});// 不需要手动设置 isUpdating，因为没有动画在运行\nreturn;}const targets={};const animatableTargets={};let shouldAnimate=false;let hasAnimatableValues=false;Object.entries(config).forEach(([key,{from,to}])=>{let targetValue;switch(animateProp.type){case\"appear\":targetValue=to;shouldAnimate=true;break;case\"enter\":targetValue=isInView?to:from;shouldAnimate=true;break;case\"transform\":targetValue=from+(to-from)*scrollProgress;shouldAnimate=true;break;default:values.current[key]=from;return;}targets[key]=targetValue;// 只有当值确实需要改变时才加入动画目标\nif(Math.abs(values.current[key]-targetValue)>.001){animatableTargets[key]=targetValue;hasAnimatableValues=true;}else{// 直接设置不需要动画的值\nvalues.current[key]=targetValue;}});// 如果不需要动画或没有可动画的值，直接返回\nif(!shouldAnimate||!hasAnimatableValues){return;}const controls=animate(values.current,animatableTargets,{...transition,restDelta:.001,restSpeed:.001,onComplete:()=>{setIsUpdating(false);animationControlsRef.current=null;},onUpdate:latest=>{if(!isUpdating){setIsUpdating(true);}}});animationControlsRef.current=controls;return()=>{if(controls){controls.stop();// setIsUpdating(false)\nanimationControlsRef.current=null;}};},[isInView,scrollProgress,animateProp.type,enable]);return{values:values.current,isUpdating};}export function useAnimatedProgress(animateProp,transition,mountRef,enable=true){const progressRef=useRef(1);const[progress,setProgress]=useState(1);const[isUpdatingProgress,setIsUpdatingProgress]=useState(false);const[scrollProgress,setScrollProgress]=useState(1);// 滚动动画 - 根据 enable 状态决定监听目标\nconst isInView=useInView(enable&&animateProp.trigger===\"section\"&&animateProp.section?animateProp.section:mountRef,{once:enable?!animateProp.replay:true,amount:enable?animateProp.amount:0});// 滚动进度 - 根据 enable 状态决定监听目标\nconst{scrollYProgress}=useScroll({target:enable&&animateProp.trigger===\"section\"&&animateProp.section?animateProp.section:mountRef,layoutEffect:false,offset:enable&&animateProp.viewport===\"top\"?[\"start start\",\"end start\"]:enable&&animateProp.viewport===\"bottom\"?[\"start end\",\"start start\"]:[\"start center\",\"end center\"]});// 监听滚动进度变化\nuseEffect(()=>{if(enable&&animateProp.type===\"transform\"){const unsubscribe=scrollYProgress.onChange(latest=>{setScrollProgress(1-latest);});return unsubscribe;}},[scrollYProgress,animateProp.type,enable]);// 动画控制逻辑\nuseEffect(()=>{// 如果禁用了 Hook，重置为默认状态\nif(!enable){progressRef.current=1;setProgress(1);setIsUpdatingProgress(false);return;}let targetValue=1;let shouldAnimate=false;switch(animateProp.type){case\"appear\":// 直接动画\ntargetValue=0;shouldAnimate=true;break;case\"enter\":// 滚动动画\ntargetValue=isInView?0:1;shouldAnimate=true;break;case\"transform\":// 滚动进度\ntargetValue=scrollProgress;shouldAnimate=true;break;default:progressRef.current=1;setProgress(1);setIsUpdatingProgress(false);return;}if(!shouldAnimate)return;setIsUpdatingProgress(true);const controls=animate(progressRef.current,targetValue,{...transition,restDelta:.001,restSpeed:.001,onUpdate:latest=>{progressRef.current=latest;setProgress(latest);},onComplete:()=>{setIsUpdatingProgress(false);}});return()=>{controls.stop();};},[enable,isInView,scrollProgress,animateProp.type,transition]);return{progress,isUpdatingProgress};}\nexport const __FramerMetadata__ = {\"exports\":{\"useAnimatedProgress\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"default\":{\"type\":\"reactComponent\",\"name\":\"AnimatedValue\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"useAnimatedValues\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./UseAnimatedValue.map","/*\n * UseAnimatedValue\n *\n * Learn More: https://www.framer.com/asset-urls\n */\n\nexport * from \"https://framerusercontent.com/modules/3Dc1qksRQy0igUBXLpC8/O0d7Tn7RulZ8jPX1N6S2/UseAnimatedValue.js\"\nexport { default } from \"https://framerusercontent.com/modules/3Dc1qksRQy0igUBXLpC8/O0d7Tn7RulZ8jPX1N6S2/UseAnimatedValue.js\"\n","import{jsx as _jsx}from\"react/jsx-runtime\";import{useRef,useEffect,useState,useCallback}from\"react\";export default function Media(props){return /*#__PURE__*/_jsx(\"div\",{});}const initialState={media:null,dimensions:{width:0,height:0},isLoaded:false,isError:false,isVideoPlaying:false,playVideo:null,pauseVideo:null};export function useMedia(src,mediaType=\"image\",loop=true,autoplay=true){const[mediaState,setMediaState]=useState(initialState);const currentMediaRef=useRef(null);const loadIdRef=useRef(0);const cleanupCurrentMedia=useCallback(()=>{const current=currentMediaRef.current;if(!current)return;if(current instanceof HTMLVideoElement){try{current.pause();}catch{}try{current.removeAttribute(\"src\");current.load();}catch{}}currentMediaRef.current=null;},[]);const loadMedia=useCallback((mediaSrc,type)=>{if(!mediaSrc){cleanupCurrentMedia();setMediaState(initialState);return()=>{};}const loadId=++loadIdRef.current;let disposed=false;const isCurrent=()=>!disposed&&loadIdRef.current===loadId&&currentMediaRef.current!==null;cleanupCurrentMedia();setMediaState(initialState);if(type===\"image\"){const img=new Image;img.crossOrigin=\"anonymous\";currentMediaRef.current=img;const handleLoad=()=>{if(!isCurrent()||currentMediaRef.current!==img)return;setMediaState({media:img,dimensions:{width:img.naturalWidth||img.width,height:img.naturalHeight||img.height},isLoaded:true,isError:false,isVideoPlaying:false,playVideo:null,pauseVideo:null});};const handleError=()=>{if(!isCurrent()||currentMediaRef.current!==img)return;setMediaState({media:null,dimensions:{width:0,height:0},isLoaded:false,isError:true,isVideoPlaying:false,playVideo:null,pauseVideo:null});};img.addEventListener(\"load\",handleLoad);img.addEventListener(\"error\",handleError);img.src=mediaSrc;return()=>{disposed=true;img.removeEventListener(\"load\",handleLoad);img.removeEventListener(\"error\",handleError);if(currentMediaRef.current===img){currentMediaRef.current=null;}};}const video=document.createElement(\"video\");currentMediaRef.current=video;video.crossOrigin=\"anonymous\";video.muted=true;video.loop=loop;video.autoplay=autoplay;video.playsInline=true;video.preload=\"auto\";// Safari / iPhone 更稳妥\nvideo.setAttribute(\"playsinline\",\"\");video.setAttribute(\"webkit-playsinline\",\"\");video.setAttribute(\"muted\",\"\");let firstFrameReady=false;const updateBaseVideoState=()=>{if(!isCurrent()||currentMediaRef.current!==video)return;setMediaState(prev=>({...prev,media:video,dimensions:{width:video.videoWidth||0,height:video.videoHeight||0},isError:false,playVideo:async()=>{try{await video.play();}catch(error){console.error(\"video.play() failed:\",error);throw error;}},pauseVideo:()=>{video.pause();}}));};const markFirstFrameReady=()=>{if(firstFrameReady||!isCurrent()||currentMediaRef.current!==video){return;}if(video.readyState<2)return;firstFrameReady=true;setMediaState(prev=>({...prev,media:video,dimensions:{width:video.videoWidth||0,height:video.videoHeight||0},isLoaded:true,isError:false,isVideoPlaying:!video.paused&&!video.ended,playVideo:async()=>{try{await video.play();}catch(error){console.error(\"video.play() failed:\",error);throw error;}},pauseVideo:()=>{video.pause();}}));};const handleLoadedMetadata=()=>{updateBaseVideoState();};const handleLoadedData=async()=>{markFirstFrameReady();if(!autoplay){try{if(video.currentTime!==0){video.currentTime=0;}}catch(error){console.warn(\"setting currentTime failed:\",error);}return;}try{await video.play();}catch(error){console.error(\"video autoplay failed:\",error);}};const handleCanPlay=()=>{markFirstFrameReady();};const handlePlaying=()=>{if(!isCurrent()||currentMediaRef.current!==video)return;setMediaState(prev=>({...prev,isVideoPlaying:true,isLoaded:prev.isLoaded||video.readyState>=2}));};const handlePause=()=>{if(!isCurrent()||currentMediaRef.current!==video)return;setMediaState(prev=>({...prev,isVideoPlaying:false}));};const handleEnded=()=>{if(!isCurrent()||currentMediaRef.current!==video)return;setMediaState(prev=>({...prev,isVideoPlaying:false}));};const handleError=()=>{if(!isCurrent()||currentMediaRef.current!==video)return;setMediaState({media:null,dimensions:{width:0,height:0},isLoaded:false,isError:true,isVideoPlaying:false,playVideo:null,pauseVideo:null});};video.addEventListener(\"loadedmetadata\",handleLoadedMetadata);video.addEventListener(\"loadeddata\",handleLoadedData);video.addEventListener(\"canplay\",handleCanPlay);video.addEventListener(\"playing\",handlePlaying);video.addEventListener(\"pause\",handlePause);video.addEventListener(\"ended\",handleEnded);video.addEventListener(\"error\",handleError);video.src=mediaSrc;video.load();return()=>{disposed=true;video.removeEventListener(\"loadedmetadata\",handleLoadedMetadata);video.removeEventListener(\"loadeddata\",handleLoadedData);video.removeEventListener(\"canplay\",handleCanPlay);video.removeEventListener(\"playing\",handlePlaying);video.removeEventListener(\"pause\",handlePause);video.removeEventListener(\"ended\",handleEnded);video.removeEventListener(\"error\",handleError);try{video.pause();}catch{}try{video.removeAttribute(\"src\");video.load();}catch{}if(currentMediaRef.current===video){currentMediaRef.current=null;}};},[autoplay,loop,cleanupCurrentMedia]);useEffect(()=>{if(!src){cleanupCurrentMedia();setMediaState(initialState);return;}const cleanup=loadMedia(src,mediaType);return()=>{if(cleanup)cleanup();};},[src,mediaType,loadMedia,cleanupCurrentMedia]);return mediaState;}\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"Media\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"useMedia\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./UseMedia.map","/*\n * UseMedia\n *\n * Learn More: https://www.framer.com/asset-urls\n */\n\nexport * from \"https://framerusercontent.com/modules/DGJpj5NFNaYVLbwIQLV3/ITjnQ5HfCGlk0h6nR2c1/UseMedia.js\"\nexport { default } from \"https://framerusercontent.com/modules/DGJpj5NFNaYVLbwIQLV3/ITjnQ5HfCGlk0h6nR2c1/UseMedia.js\"\n","const EPSILON = 0.000001;\n\n/**\n * Calculates the length of a vec3\n *\n * @param {vec3} a vector to calculate length of\n * @returns {Number} length of a\n */\nexport function length(a) {\n    let x = a[0];\n    let y = a[1];\n    let z = a[2];\n    return Math.sqrt(x * x + y * y + z * z);\n}\n\n/**\n * Copy the values from one vec3 to another\n *\n * @param {vec3} out the receiving vector\n * @param {vec3} a the source vector\n * @returns {vec3} out\n */\nexport function copy(out, a) {\n    out[0] = a[0];\n    out[1] = a[1];\n    out[2] = a[2];\n    return out;\n}\n\n/**\n * Set the components of a vec3 to the given values\n *\n * @param {vec3} out the receiving vector\n * @param {Number} x X component\n * @param {Number} y Y component\n * @param {Number} z Z component\n * @returns {vec3} out\n */\nexport function set(out, x, y, z) {\n    out[0] = x;\n    out[1] = y;\n    out[2] = z;\n    return out;\n}\n\n/**\n * Adds two vec3's\n *\n * @param {vec3} out the receiving vector\n * @param {vec3} a the first operand\n * @param {vec3} b the second operand\n * @returns {vec3} out\n */\nexport function add(out, a, b) {\n    out[0] = a[0] + b[0];\n    out[1] = a[1] + b[1];\n    out[2] = a[2] + b[2];\n    return out;\n}\n\n/**\n * Subtracts vector b from vector a\n *\n * @param {vec3} out the receiving vector\n * @param {vec3} a the first operand\n * @param {vec3} b the second operand\n * @returns {vec3} out\n */\nexport function subtract(out, a, b) {\n    out[0] = a[0] - b[0];\n    out[1] = a[1] - b[1];\n    out[2] = a[2] - b[2];\n    return out;\n}\n\n/**\n * Multiplies two vec3's\n *\n * @param {vec3} out the receiving vector\n * @param {vec3} a the first operand\n * @param {vec3} b the second operand\n * @returns {vec3} out\n */\nexport function multiply(out, a, b) {\n    out[0] = a[0] * b[0];\n    out[1] = a[1] * b[1];\n    out[2] = a[2] * b[2];\n    return out;\n}\n\n/**\n * Divides two vec3's\n *\n * @param {vec3} out the receiving vector\n * @param {vec3} a the first operand\n * @param {vec3} b the second operand\n * @returns {vec3} out\n */\nexport function divide(out, a, b) {\n    out[0] = a[0] / b[0];\n    out[1] = a[1] / b[1];\n    out[2] = a[2] / b[2];\n    return out;\n}\n\n/**\n * Scales a vec3 by a scalar number\n *\n * @param {vec3} out the receiving vector\n * @param {vec3} a the vector to scale\n * @param {Number} b amount to scale the vector by\n * @returns {vec3} out\n */\nexport function scale(out, a, b) {\n    out[0] = a[0] * b;\n    out[1] = a[1] * b;\n    out[2] = a[2] * b;\n    return out;\n}\n\n/**\n * Calculates the euclidian distance between two vec3's\n *\n * @param {vec3} a the first operand\n * @param {vec3} b the second operand\n * @returns {Number} distance between a and b\n */\nexport function distance(a, b) {\n    let x = b[0] - a[0];\n    let y = b[1] - a[1];\n    let z = b[2] - a[2];\n    return Math.sqrt(x * x + y * y + z * z);\n}\n\n/**\n * Calculates the squared euclidian distance between two vec3's\n *\n * @param {vec3} a the first operand\n * @param {vec3} b the second operand\n * @returns {Number} squared distance between a and b\n */\nexport function squaredDistance(a, b) {\n    let x = b[0] - a[0];\n    let y = b[1] - a[1];\n    let z = b[2] - a[2];\n    return x * x + y * y + z * z;\n}\n\n/**\n * Calculates the squared length of a vec3\n *\n * @param {vec3} a vector to calculate squared length of\n * @returns {Number} squared length of a\n */\nexport function squaredLength(a) {\n    let x = a[0];\n    let y = a[1];\n    let z = a[2];\n    return x * x + y * y + z * z;\n}\n\n/**\n * Negates the components of a vec3\n *\n * @param {vec3} out the receiving vector\n * @param {vec3} a vector to negate\n * @returns {vec3} out\n */\nexport function negate(out, a) {\n    out[0] = -a[0];\n    out[1] = -a[1];\n    out[2] = -a[2];\n    return out;\n}\n\n/**\n * Returns the inverse of the components of a vec3\n *\n * @param {vec3} out the receiving vector\n * @param {vec3} a vector to invert\n * @returns {vec3} out\n */\nexport function inverse(out, a) {\n    out[0] = 1.0 / a[0];\n    out[1] = 1.0 / a[1];\n    out[2] = 1.0 / a[2];\n    return out;\n}\n\n/**\n * Normalize a vec3\n *\n * @param {vec3} out the receiving vector\n * @param {vec3} a vector to normalize\n * @returns {vec3} out\n */\nexport function normalize(out, a) {\n    let x = a[0];\n    let y = a[1];\n    let z = a[2];\n    let len = x * x + y * y + z * z;\n    if (len > 0) {\n        //TODO: evaluate use of glm_invsqrt here?\n        len = 1 / Math.sqrt(len);\n    }\n    out[0] = a[0] * len;\n    out[1] = a[1] * len;\n    out[2] = a[2] * len;\n    return out;\n}\n\n/**\n * Calculates the dot product of two vec3's\n *\n * @param {vec3} a the first operand\n * @param {vec3} b the second operand\n * @returns {Number} dot product of a and b\n */\nexport function dot(a, b) {\n    return a[0] * b[0] + a[1] * b[1] + a[2] * b[2];\n}\n\n/**\n * Computes the cross product of two vec3's\n *\n * @param {vec3} out the receiving vector\n * @param {vec3} a the first operand\n * @param {vec3} b the second operand\n * @returns {vec3} out\n */\nexport function cross(out, a, b) {\n    let ax = a[0],\n        ay = a[1],\n        az = a[2];\n    let bx = b[0],\n        by = b[1],\n        bz = b[2];\n\n    out[0] = ay * bz - az * by;\n    out[1] = az * bx - ax * bz;\n    out[2] = ax * by - ay * bx;\n    return out;\n}\n\n/**\n * Performs a linear interpolation between two vec3's\n *\n * @param {vec3} out the receiving vector\n * @param {vec3} a the first operand\n * @param {vec3} b the second operand\n * @param {Number} t interpolation amount between the two inputs\n * @returns {vec3} out\n */\nexport function lerp(out, a, b, t) {\n    let ax = a[0];\n    let ay = a[1];\n    let az = a[2];\n    out[0] = ax + t * (b[0] - ax);\n    out[1] = ay + t * (b[1] - ay);\n    out[2] = az + t * (b[2] - az);\n    return out;\n}\n\n/**\n * Performs a frame rate independant, linear interpolation between two vec3's\n *\n * @param {vec3} out the receiving vector\n * @param {vec3} a the first operand\n * @param {vec3} b the second operand\n * @param {Number} decay decay constant for interpolation. useful range between 1 and 25, from slow to fast.\n * @param {Number} dt delta time\n * @returns {vec3} out\n */\nexport function smoothLerp(out, a, b, decay, dt) {\n    const exp = Math.exp(-decay * dt);\n    let ax = a[0];\n    let ay = a[1];\n    let az = a[2];\n\n    out[0] = b[0] + (ax - b[0]) * exp;\n    out[1] = b[1] + (ay - b[1]) * exp;\n    out[2] = b[2] + (az - b[2]) * exp;\n    return out;\n}\n\n/**\n * Transforms the vec3 with a mat4.\n * 4th vector component is implicitly '1'\n *\n * @param {vec3} out the receiving vector\n * @param {vec3} a the vector to transform\n * @param {mat4} m matrix to transform with\n * @returns {vec3} out\n */\nexport function transformMat4(out, a, m) {\n    let x = a[0],\n        y = a[1],\n        z = a[2];\n    let w = m[3] * x + m[7] * y + m[11] * z + m[15];\n    w = w || 1.0;\n    out[0] = (m[0] * x + m[4] * y + m[8] * z + m[12]) / w;\n    out[1] = (m[1] * x + m[5] * y + m[9] * z + m[13]) / w;\n    out[2] = (m[2] * x + m[6] * y + m[10] * z + m[14]) / w;\n    return out;\n}\n\n/**\n * Same as above but doesn't apply translation.\n * Useful for rays.\n */\nexport function scaleRotateMat4(out, a, m) {\n    let x = a[0],\n        y = a[1],\n        z = a[2];\n    let w = m[3] * x + m[7] * y + m[11] * z + m[15];\n    w = w || 1.0;\n    out[0] = (m[0] * x + m[4] * y + m[8] * z) / w;\n    out[1] = (m[1] * x + m[5] * y + m[9] * z) / w;\n    out[2] = (m[2] * x + m[6] * y + m[10] * z) / w;\n    return out;\n}\n\n/**\n * Transforms the vec3 with a mat3.\n *\n * @param {vec3} out the receiving vector\n * @param {vec3} a the vector to transform\n * @param {mat3} m the 3x3 matrix to transform with\n * @returns {vec3} out\n */\nexport function transformMat3(out, a, m) {\n    let x = a[0],\n        y = a[1],\n        z = a[2];\n    out[0] = x * m[0] + y * m[3] + z * m[6];\n    out[1] = x * m[1] + y * m[4] + z * m[7];\n    out[2] = x * m[2] + y * m[5] + z * m[8];\n    return out;\n}\n\n/**\n * Transforms the vec3 with a quat\n *\n * @param {vec3} out the receiving vector\n * @param {vec3} a the vector to transform\n * @param {quat} q quaternion to transform with\n * @returns {vec3} out\n */\nexport function transformQuat(out, a, q) {\n    // benchmarks: https://jsperf.com/quaternion-transform-vec3-implementations-fixed\n\n    let x = a[0],\n        y = a[1],\n        z = a[2];\n    let qx = q[0],\n        qy = q[1],\n        qz = q[2],\n        qw = q[3];\n\n    let uvx = qy * z - qz * y;\n    let uvy = qz * x - qx * z;\n    let uvz = qx * y - qy * x;\n\n    let uuvx = qy * uvz - qz * uvy;\n    let uuvy = qz * uvx - qx * uvz;\n    let uuvz = qx * uvy - qy * uvx;\n\n    let w2 = qw * 2;\n    uvx *= w2;\n    uvy *= w2;\n    uvz *= w2;\n\n    uuvx *= 2;\n    uuvy *= 2;\n    uuvz *= 2;\n\n    out[0] = x + uvx + uuvx;\n    out[1] = y + uvy + uuvy;\n    out[2] = z + uvz + uuvz;\n    return out;\n}\n\n/**\n * Get the angle between two 3D vectors\n * @param {vec3} a The first operand\n * @param {vec3} b The second operand\n * @returns {Number} The angle in radians\n */\nexport const angle = (function () {\n    const tempA = [0, 0, 0];\n    const tempB = [0, 0, 0];\n\n    return function (a, b) {\n        copy(tempA, a);\n        copy(tempB, b);\n\n        normalize(tempA, tempA);\n        normalize(tempB, tempB);\n\n        let cosine = dot(tempA, tempB);\n\n        if (cosine > 1.0) {\n            return 0;\n        } else if (cosine < -1.0) {\n            return Math.PI;\n        } else {\n            return Math.acos(cosine);\n        }\n    };\n})();\n\n/**\n * Returns whether or not the vectors have exactly the same elements in the same position (when compared with ===)\n *\n * @param {vec3} a The first vector.\n * @param {vec3} b The second vector.\n * @returns {Boolean} True if the vectors are equal, false otherwise.\n */\nexport function exactEquals(a, b) {\n    return a[0] === b[0] && a[1] === b[1] && a[2] === b[2];\n}\n","import * as Vec3Func from './functions/Vec3Func.js';\n\nexport class Vec3 extends Array {\n    constructor(x = 0, y = x, z = x) {\n        super(x, y, z);\n        return this;\n    }\n\n    get x() {\n        return this[0];\n    }\n\n    get y() {\n        return this[1];\n    }\n\n    get z() {\n        return this[2];\n    }\n\n    set x(v) {\n        this[0] = v;\n    }\n\n    set y(v) {\n        this[1] = v;\n    }\n\n    set z(v) {\n        this[2] = v;\n    }\n\n    set(x, y = x, z = x) {\n        if (x.length) return this.copy(x);\n        Vec3Func.set(this, x, y, z);\n        return this;\n    }\n\n    copy(v) {\n        Vec3Func.copy(this, v);\n        return this;\n    }\n\n    add(va, vb) {\n        if (vb) Vec3Func.add(this, va, vb);\n        else Vec3Func.add(this, this, va);\n        return this;\n    }\n\n    sub(va, vb) {\n        if (vb) Vec3Func.subtract(this, va, vb);\n        else Vec3Func.subtract(this, this, va);\n        return this;\n    }\n\n    multiply(v) {\n        if (v.length) Vec3Func.multiply(this, this, v);\n        else Vec3Func.scale(this, this, v);\n        return this;\n    }\n\n    divide(v) {\n        if (v.length) Vec3Func.divide(this, this, v);\n        else Vec3Func.scale(this, this, 1 / v);\n        return this;\n    }\n\n    inverse(v = this) {\n        Vec3Func.inverse(this, v);\n        return this;\n    }\n\n    // Can't use 'length' as Array.prototype uses it\n    len() {\n        return Vec3Func.length(this);\n    }\n\n    distance(v) {\n        if (v) return Vec3Func.distance(this, v);\n        else return Vec3Func.length(this);\n    }\n\n    squaredLen() {\n        return Vec3Func.squaredLength(this);\n    }\n\n    squaredDistance(v) {\n        if (v) return Vec3Func.squaredDistance(this, v);\n        else return Vec3Func.squaredLength(this);\n    }\n\n    negate(v = this) {\n        Vec3Func.negate(this, v);\n        return this;\n    }\n\n    cross(va, vb) {\n        if (vb) Vec3Func.cross(this, va, vb);\n        else Vec3Func.cross(this, this, va);\n        return this;\n    }\n\n    scale(v) {\n        Vec3Func.scale(this, this, v);\n        return this;\n    }\n\n    normalize() {\n        Vec3Func.normalize(this, this);\n        return this;\n    }\n\n    dot(v) {\n        return Vec3Func.dot(this, v);\n    }\n\n    equals(v) {\n        return Vec3Func.exactEquals(this, v);\n    }\n\n    applyMatrix3(mat3) {\n        Vec3Func.transformMat3(this, this, mat3);\n        return this;\n    }\n\n    applyMatrix4(mat4) {\n        Vec3Func.transformMat4(this, this, mat4);\n        return this;\n    }\n\n    scaleRotateMatrix4(mat4) {\n        Vec3Func.scaleRotateMat4(this, this, mat4);\n        return this;\n    }\n\n    applyQuaternion(q) {\n        Vec3Func.transformQuat(this, this, q);\n        return this;\n    }\n\n    angle(v) {\n        return Vec3Func.angle(this, v);\n    }\n\n    lerp(v, t) {\n        Vec3Func.lerp(this, this, v, t);\n        return this;\n    }\n\n    smoothLerp(v, decay, dt) {\n        Vec3Func.smoothLerp(this, this, v, decay, dt);\n        return this;\n    }\n\n    clone() {\n        return new Vec3(this[0], this[1], this[2]);\n    }\n\n    fromArray(a, o = 0) {\n        this[0] = a[o];\n        this[1] = a[o + 1];\n        this[2] = a[o + 2];\n        return this;\n    }\n\n    toArray(a = [], o = 0) {\n        a[o] = this[0];\n        a[o + 1] = this[1];\n        a[o + 2] = this[2];\n        return a;\n    }\n\n    transformDirection(mat4) {\n        const x = this[0];\n        const y = this[1];\n        const z = this[2];\n\n        this[0] = mat4[0] * x + mat4[4] * y + mat4[8] * z;\n        this[1] = mat4[1] * x + mat4[5] * y + mat4[9] * z;\n        this[2] = mat4[2] * x + mat4[6] * y + mat4[10] * z;\n\n        return this.normalize();\n    }\n}\n","// attribute params\n// {\n//     data - typed array eg UInt16Array for indices, Float32Array\n//     size - int default 1\n//     instanced - default null. Pass divisor amount\n//     type - gl enum default gl.UNSIGNED_SHORT for 'index', gl.FLOAT for others\n//     normalized - boolean default false\n\n//     buffer - gl buffer, if buffer exists, don't need to provide data - although needs position data for bounds calculation\n//     stride - default 0 - for when passing in buffer\n//     offset - default 0 - for when passing in buffer\n//     count - default null - for when passing in buffer\n//     min - array - for when passing in buffer\n//     max - array - for when passing in buffer\n// }\n\n// TODO: fit in transform feedback\n\nimport { Vec3 } from '../math/Vec3.js';\n\nconst tempVec3 = /* @__PURE__ */ new Vec3();\n\nlet ID = 1;\nlet ATTR_ID = 1;\n\n// To stop inifinite warnings\nlet isBoundsWarned = false;\n\nexport class Geometry {\n    constructor(gl, attributes = {}) {\n        if (!gl.canvas) console.error('gl not passed as first argument to Geometry');\n        this.gl = gl;\n        this.attributes = attributes;\n        this.id = ID++;\n\n        // Store one VAO per program attribute locations order\n        this.VAOs = {};\n\n        this.drawRange = { start: 0, count: 0 };\n        this.instancedCount = 0;\n\n        // Unbind current VAO so that new buffers don't get added to active mesh\n        this.gl.renderer.bindVertexArray(null);\n        this.gl.renderer.currentGeometry = null;\n\n        // Alias for state store to avoid redundant calls for global state\n        this.glState = this.gl.renderer.state;\n\n        // create the buffers\n        for (let key in attributes) {\n            this.addAttribute(key, attributes[key]);\n        }\n    }\n\n    addAttribute(key, attr) {\n        this.attributes[key] = attr;\n\n        // Set options\n        attr.id = ATTR_ID++; // TODO: currently unused, remove?\n        attr.size = attr.size || 1;\n        attr.type =\n            attr.type ||\n            (attr.data.constructor === Float32Array\n                ? this.gl.FLOAT\n                : attr.data.constructor === Uint16Array\n                ? this.gl.UNSIGNED_SHORT\n                : this.gl.UNSIGNED_INT); // Uint32Array\n        attr.target = key === 'index' ? this.gl.ELEMENT_ARRAY_BUFFER : this.gl.ARRAY_BUFFER;\n        attr.normalized = attr.normalized || false;\n        attr.stride = attr.stride || 0;\n        attr.offset = attr.offset || 0;\n        attr.count = attr.count || (attr.stride ? attr.data.byteLength / attr.stride : attr.data.length / attr.size);\n        attr.divisor = attr.instanced || 0;\n        attr.needsUpdate = false;\n        attr.usage = attr.usage || this.gl.STATIC_DRAW;\n\n        if (!attr.buffer) {\n            // Push data to buffer\n            this.updateAttribute(attr);\n        }\n\n        // Update geometry counts. If indexed, ignore regular attributes\n        if (attr.divisor) {\n            this.isInstanced = true;\n            if (this.instancedCount && this.instancedCount !== attr.count * attr.divisor) {\n                console.warn('geometry has multiple instanced buffers of different length');\n                return (this.instancedCount = Math.min(this.instancedCount, attr.count * attr.divisor));\n            }\n            this.instancedCount = attr.count * attr.divisor;\n        } else if (key === 'index') {\n            this.drawRange.count = attr.count;\n        } else if (!this.attributes.index) {\n            this.drawRange.count = Math.max(this.drawRange.count, attr.count);\n        }\n    }\n\n    updateAttribute(attr) {\n        const isNewBuffer = !attr.buffer;\n        if (isNewBuffer) attr.buffer = this.gl.createBuffer();\n        if (this.glState.boundBuffer !== attr.buffer) {\n            this.gl.bindBuffer(attr.target, attr.buffer);\n            this.glState.boundBuffer = attr.buffer;\n        }\n        if (isNewBuffer) {\n            this.gl.bufferData(attr.target, attr.data, attr.usage);\n        } else {\n            this.gl.bufferSubData(attr.target, 0, attr.data);\n        }\n        attr.needsUpdate = false;\n    }\n\n    setIndex(value) {\n        this.addAttribute('index', value);\n    }\n\n    setDrawRange(start, count) {\n        this.drawRange.start = start;\n        this.drawRange.count = count;\n    }\n\n    setInstancedCount(value) {\n        this.instancedCount = value;\n    }\n\n    createVAO(program) {\n        this.VAOs[program.attributeOrder] = this.gl.renderer.createVertexArray();\n        this.gl.renderer.bindVertexArray(this.VAOs[program.attributeOrder]);\n        this.bindAttributes(program);\n    }\n\n    bindAttributes(program) {\n        // Link all attributes to program using gl.vertexAttribPointer\n        program.attributeLocations.forEach((location, { name, type }) => {\n            // If geometry missing a required shader attribute\n            if (!this.attributes[name]) {\n                console.warn(`active attribute ${name} not being supplied`);\n                return;\n            }\n\n            const attr = this.attributes[name];\n\n            this.gl.bindBuffer(attr.target, attr.buffer);\n            this.glState.boundBuffer = attr.buffer;\n\n            // For matrix attributes, buffer needs to be defined per column\n            let numLoc = 1;\n            if (type === 35674) numLoc = 2; // mat2\n            if (type === 35675) numLoc = 3; // mat3\n            if (type === 35676) numLoc = 4; // mat4\n\n            const size = attr.size / numLoc;\n            const stride = numLoc === 1 ? 0 : numLoc * numLoc * 4;\n            const offset = numLoc === 1 ? 0 : numLoc * 4;\n\n            for (let i = 0; i < numLoc; i++) {\n                this.gl.vertexAttribPointer(location + i, size, attr.type, attr.normalized, attr.stride + stride, attr.offset + i * offset);\n                this.gl.enableVertexAttribArray(location + i);\n\n                // For instanced attributes, divisor needs to be set.\n                // For firefox, need to set back to 0 if non-instanced drawn after instanced. Else won't render\n                this.gl.renderer.vertexAttribDivisor(location + i, attr.divisor);\n            }\n        });\n\n        // Bind indices if geometry indexed\n        if (this.attributes.index) this.gl.bindBuffer(this.gl.ELEMENT_ARRAY_BUFFER, this.attributes.index.buffer);\n    }\n\n    draw({ program, mode = this.gl.TRIANGLES }) {\n        if (this.gl.renderer.currentGeometry !== `${this.id}_${program.attributeOrder}`) {\n            if (!this.VAOs[program.attributeOrder]) this.createVAO(program);\n            this.gl.renderer.bindVertexArray(this.VAOs[program.attributeOrder]);\n            this.gl.renderer.currentGeometry = `${this.id}_${program.attributeOrder}`;\n        }\n\n        // Check if any attributes need updating\n        program.attributeLocations.forEach((location, { name }) => {\n            const attr = this.attributes[name];\n            if (attr.needsUpdate) this.updateAttribute(attr);\n        });\n\n        // For drawElements, offset needs to be multiple of type size\n        let indexBytesPerElement = 2;\n        if (this.attributes.index?.type === this.gl.UNSIGNED_INT) indexBytesPerElement = 4;\n\n        if (this.isInstanced) {\n            if (this.attributes.index) {\n                this.gl.renderer.drawElementsInstanced(\n                    mode,\n                    this.drawRange.count,\n                    this.attributes.index.type,\n                    this.attributes.index.offset + this.drawRange.start * indexBytesPerElement,\n                    this.instancedCount\n                );\n            } else {\n                this.gl.renderer.drawArraysInstanced(mode, this.drawRange.start, this.drawRange.count, this.instancedCount);\n            }\n        } else {\n            if (this.attributes.index) {\n                this.gl.drawElements(\n                    mode,\n                    this.drawRange.count,\n                    this.attributes.index.type,\n                    this.attributes.index.offset + this.drawRange.start * indexBytesPerElement\n                );\n            } else {\n                this.gl.drawArrays(mode, this.drawRange.start, this.drawRange.count);\n            }\n        }\n    }\n\n    getPosition() {\n        // Use position buffer, or min/max if available\n        const attr = this.attributes.position;\n        // if (attr.min) return [...attr.min, ...attr.max];\n        if (attr.data) return attr;\n        if (isBoundsWarned) return;\n        console.warn('No position buffer data found to compute bounds');\n        return (isBoundsWarned = true);\n    }\n\n    computeBoundingBox(attr) {\n        if (!attr) attr = this.getPosition();\n        const array = attr.data;\n        // Data loaded shouldn't haave stride, only buffers\n        // const stride = attr.stride ? attr.stride / array.BYTES_PER_ELEMENT : attr.size;\n        const stride = attr.size;\n\n        if (!this.bounds) {\n            this.bounds = {\n                min: new Vec3(),\n                max: new Vec3(),\n                center: new Vec3(),\n                scale: new Vec3(),\n                radius: Infinity,\n            };\n        }\n\n        const min = this.bounds.min;\n        const max = this.bounds.max;\n        const center = this.bounds.center;\n        const scale = this.bounds.scale;\n\n        min.set(+Infinity);\n        max.set(-Infinity);\n\n        // TODO: check size of position (eg triangle with Vec2)\n        for (let i = 0, l = array.length; i < l; i += stride) {\n            const x = array[i];\n            const y = array[i + 1];\n            const z = array[i + 2];\n\n            min.x = Math.min(x, min.x);\n            min.y = Math.min(y, min.y);\n            min.z = Math.min(z, min.z);\n\n            max.x = Math.max(x, max.x);\n            max.y = Math.max(y, max.y);\n            max.z = Math.max(z, max.z);\n        }\n\n        scale.sub(max, min);\n        center.add(min, max).divide(2);\n    }\n\n    computeBoundingSphere(attr) {\n        if (!attr) attr = this.getPosition();\n        const array = attr.data;\n        // Data loaded shouldn't haave stride, only buffers\n        // const stride = attr.stride ? attr.stride / array.BYTES_PER_ELEMENT : attr.size;\n        const stride = attr.size;\n\n        if (!this.bounds) this.computeBoundingBox(attr);\n\n        let maxRadiusSq = 0;\n        for (let i = 0, l = array.length; i < l; i += stride) {\n            tempVec3.fromArray(array, i);\n            maxRadiusSq = Math.max(maxRadiusSq, this.bounds.center.squaredDistance(tempVec3));\n        }\n\n        this.bounds.radius = Math.sqrt(maxRadiusSq);\n    }\n\n    remove() {\n        for (let key in this.VAOs) {\n            this.gl.renderer.deleteVertexArray(this.VAOs[key]);\n            delete this.VAOs[key];\n        }\n        for (let key in this.attributes) {\n            this.gl.deleteBuffer(this.attributes[key].buffer);\n            delete this.attributes[key];\n        }\n    }\n}\n","// TODO: upload empty texture if null ? maybe not\n// TODO: upload identity matrix if null ?\n// TODO: sampler Cube\n\nlet ID = 1;\n\n// cache of typed arrays used to flatten uniform arrays\nconst arrayCacheF32 = {};\n\nexport class Program {\n    constructor(\n        gl,\n        {\n            vertex,\n            fragment,\n            uniforms = {},\n\n            transparent = false,\n            cullFace = gl.BACK,\n            frontFace = gl.CCW,\n            depthTest = true,\n            depthWrite = true,\n            depthFunc = gl.LEQUAL,\n        } = {}\n    ) {\n        if (!gl.canvas) console.error('gl not passed as first argument to Program');\n        this.gl = gl;\n        this.uniforms = uniforms;\n        this.id = ID++;\n\n        if (!vertex) console.warn('vertex shader not supplied');\n        if (!fragment) console.warn('fragment shader not supplied');\n\n        // Store program state\n        this.transparent = transparent;\n        this.cullFace = cullFace;\n        this.frontFace = frontFace;\n        this.depthTest = depthTest;\n        this.depthWrite = depthWrite;\n        this.depthFunc = depthFunc;\n        this.blendFunc = {};\n        this.blendEquation = {};\n        this.stencilFunc = {};\n        this.stencilOp = {}\n\n        // set default blendFunc if transparent flagged\n        if (this.transparent && !this.blendFunc.src) {\n            if (this.gl.renderer.premultipliedAlpha) this.setBlendFunc(this.gl.ONE, this.gl.ONE_MINUS_SRC_ALPHA);\n            else this.setBlendFunc(this.gl.SRC_ALPHA, this.gl.ONE_MINUS_SRC_ALPHA);\n        }\n\n        // Create empty shaders and attach to program\n        this.vertexShader = gl.createShader(gl.VERTEX_SHADER);\n        this.fragmentShader = gl.createShader(gl.FRAGMENT_SHADER);\n        this.program = gl.createProgram();\n        gl.attachShader(this.program, this.vertexShader);\n        gl.attachShader(this.program, this.fragmentShader);\n\n        // Compile shaders with source\n        this.setShaders({ vertex, fragment });\n    }\n\n    setShaders({ vertex, fragment }) {\n        if (vertex) {\n            // compile vertex shader and log errors\n            this.gl.shaderSource(this.vertexShader, vertex);\n            this.gl.compileShader(this.vertexShader);\n            if (this.gl.getShaderInfoLog(this.vertexShader) !== '') {\n                console.warn(`${this.gl.getShaderInfoLog(this.vertexShader)}\\nVertex Shader\\n${addLineNumbers(vertex)}`);\n            }\n        }\n\n        if (fragment) {\n            // compile fragment shader and log errors\n            this.gl.shaderSource(this.fragmentShader, fragment);\n            this.gl.compileShader(this.fragmentShader);\n            if (this.gl.getShaderInfoLog(this.fragmentShader) !== '') {\n                console.warn(`${this.gl.getShaderInfoLog(this.fragmentShader)}\\nFragment Shader\\n${addLineNumbers(fragment)}`);\n            }\n        }\n\n        // compile program and log errors\n        this.gl.linkProgram(this.program);\n        if (!this.gl.getProgramParameter(this.program, this.gl.LINK_STATUS)) {\n            return console.warn(this.gl.getProgramInfoLog(this.program));\n        }\n\n        // Get active uniform locations\n        this.uniformLocations = new Map();\n        let numUniforms = this.gl.getProgramParameter(this.program, this.gl.ACTIVE_UNIFORMS);\n        for (let uIndex = 0; uIndex < numUniforms; uIndex++) {\n            let uniform = this.gl.getActiveUniform(this.program, uIndex);\n            this.uniformLocations.set(uniform, this.gl.getUniformLocation(this.program, uniform.name));\n\n            // split uniforms' names to separate array and struct declarations\n            const split = uniform.name.match(/(\\w+)/g);\n\n            uniform.uniformName = split[0];\n            uniform.nameComponents = split.slice(1);\n        }\n\n        // Get active attribute locations\n        this.attributeLocations = new Map();\n        const locations = [];\n        const numAttribs = this.gl.getProgramParameter(this.program, this.gl.ACTIVE_ATTRIBUTES);\n        for (let aIndex = 0; aIndex < numAttribs; aIndex++) {\n            const attribute = this.gl.getActiveAttrib(this.program, aIndex);\n            const location = this.gl.getAttribLocation(this.program, attribute.name);\n            // Ignore special built-in inputs. eg gl_VertexID, gl_InstanceID\n            if (location === -1) continue;\n            locations[location] = attribute.name;\n            this.attributeLocations.set(attribute, location);\n        }\n        this.attributeOrder = locations.join('');\n    }\n\n    setBlendFunc(src, dst, srcAlpha, dstAlpha) {\n        this.blendFunc.src = src;\n        this.blendFunc.dst = dst;\n        this.blendFunc.srcAlpha = srcAlpha;\n        this.blendFunc.dstAlpha = dstAlpha;\n        if (src) this.transparent = true;\n    }\n\n    setBlendEquation(modeRGB, modeAlpha) {\n        this.blendEquation.modeRGB = modeRGB;\n        this.blendEquation.modeAlpha = modeAlpha;\n    }\n\n    setStencilFunc(func, ref, mask) {\n        this.stencilRef = ref;\n        this.stencilFunc.func = func;\n        this.stencilFunc.ref = ref;\n        this.stencilFunc.mask = mask;\n    }\n\n    setStencilOp(stencilFail, depthFail, depthPass) {\n        this.stencilOp.stencilFail = stencilFail;\n        this.stencilOp.depthFail = depthFail;\n        this.stencilOp.depthPass = depthPass;\n    }\n\n    applyState() {\n        if (this.depthTest) this.gl.renderer.enable(this.gl.DEPTH_TEST);\n        else this.gl.renderer.disable(this.gl.DEPTH_TEST);\n\n        if (this.cullFace) this.gl.renderer.enable(this.gl.CULL_FACE);\n        else this.gl.renderer.disable(this.gl.CULL_FACE);\n\n        if (this.blendFunc.src) this.gl.renderer.enable(this.gl.BLEND);\n        else this.gl.renderer.disable(this.gl.BLEND);\n\n        if (this.cullFace) this.gl.renderer.setCullFace(this.cullFace);\n        this.gl.renderer.setFrontFace(this.frontFace);\n        this.gl.renderer.setDepthMask(this.depthWrite);\n        this.gl.renderer.setDepthFunc(this.depthFunc);\n        if (this.blendFunc.src) this.gl.renderer.setBlendFunc(this.blendFunc.src, this.blendFunc.dst, this.blendFunc.srcAlpha, this.blendFunc.dstAlpha);\n        this.gl.renderer.setBlendEquation(this.blendEquation.modeRGB, this.blendEquation.modeAlpha);\n\n        if(this.stencilFunc.func || this.stencilOp.stencilFail) this.gl.renderer.enable(this.gl.STENCIL_TEST)\n            else this.gl.renderer.disable(this.gl.STENCIL_TEST)\n\n        this.gl.renderer.setStencilFunc(this.stencilFunc.func, this.stencilFunc.ref, this.stencilFunc.mask)\n        this.gl.renderer.setStencilOp(this.stencilOp.stencilFail, this.stencilOp.depthFail, this.stencilOp.depthPass)\n\n    }\n\n    use({ flipFaces = false } = {}) {\n        let textureUnit = -1;\n        const programActive = this.gl.renderer.state.currentProgram === this.id;\n\n        // Avoid gl call if program already in use\n        if (!programActive) {\n            this.gl.useProgram(this.program);\n            this.gl.renderer.state.currentProgram = this.id;\n        }\n\n        // Set only the active uniforms found in the shader\n        this.uniformLocations.forEach((location, activeUniform) => {\n            let uniform = this.uniforms[activeUniform.uniformName];\n\n            for (const component of activeUniform.nameComponents) {\n                if (!uniform) break;\n\n                if (component in uniform) {\n                    uniform = uniform[component];\n                } else if (Array.isArray(uniform.value)) {\n                    break;\n                } else {\n                    uniform = undefined;\n                    break;\n                }\n            }\n\n            if (!uniform) {\n                return warn(`Active uniform ${activeUniform.name} has not been supplied`);\n            }\n\n            if (uniform && uniform.value === undefined) {\n                return warn(`${activeUniform.name} uniform is missing a value parameter`);\n            }\n\n            if (uniform.value.texture) {\n                textureUnit = textureUnit + 1;\n\n                // Check if texture needs to be updated\n                uniform.value.update(textureUnit);\n                return setUniform(this.gl, activeUniform.type, location, textureUnit);\n            }\n\n            // For texture arrays, set uniform as an array of texture units instead of just one\n            if (uniform.value.length && uniform.value[0].texture) {\n                const textureUnits = [];\n                uniform.value.forEach((value) => {\n                    textureUnit = textureUnit + 1;\n                    value.update(textureUnit);\n                    textureUnits.push(textureUnit);\n                });\n\n                return setUniform(this.gl, activeUniform.type, location, textureUnits);\n            }\n\n            setUniform(this.gl, activeUniform.type, location, uniform.value);\n        });\n\n        this.applyState();\n        if (flipFaces) this.gl.renderer.setFrontFace(this.frontFace === this.gl.CCW ? this.gl.CW : this.gl.CCW);\n    }\n\n    remove() {\n        this.gl.deleteProgram(this.program);\n    }\n}\n\nfunction setUniform(gl, type, location, value) {\n    value = value.length ? flatten(value) : value;\n    const setValue = gl.renderer.state.uniformLocations.get(location);\n\n    // Avoid redundant uniform commands\n    if (value.length) {\n        if (setValue === undefined || setValue.length !== value.length) {\n            // clone array to store as cache\n            gl.renderer.state.uniformLocations.set(location, value.slice(0));\n        } else {\n            if (arraysEqual(setValue, value)) return;\n\n            // Update cached array values\n            setValue.set ? setValue.set(value) : setArray(setValue, value);\n            gl.renderer.state.uniformLocations.set(location, setValue);\n        }\n    } else {\n        if (setValue === value) return;\n        gl.renderer.state.uniformLocations.set(location, value);\n    }\n\n    switch (type) {\n        case 5126:\n            return value.length ? gl.uniform1fv(location, value) : gl.uniform1f(location, value); // FLOAT\n        case 35664:\n            return gl.uniform2fv(location, value); // FLOAT_VEC2\n        case 35665:\n            return gl.uniform3fv(location, value); // FLOAT_VEC3\n        case 35666:\n            return gl.uniform4fv(location, value); // FLOAT_VEC4\n        case 35670: // BOOL\n        case 5124: // INT\n        case 35678: // SAMPLER_2D\n        case 36306: // U_SAMPLER_2D\n        case 35680: // SAMPLER_CUBE\n        case 36289: // SAMPLER_2D_ARRAY\n            return value.length ? gl.uniform1iv(location, value) : gl.uniform1i(location, value); // SAMPLER_CUBE\n        case 35671: // BOOL_VEC2\n        case 35667:\n            return gl.uniform2iv(location, value); // INT_VEC2\n        case 35672: // BOOL_VEC3\n        case 35668:\n            return gl.uniform3iv(location, value); // INT_VEC3\n        case 35673: // BOOL_VEC4\n        case 35669:\n            return gl.uniform4iv(location, value); // INT_VEC4\n        case 35674:\n            return gl.uniformMatrix2fv(location, false, value); // FLOAT_MAT2\n        case 35675:\n            return gl.uniformMatrix3fv(location, false, value); // FLOAT_MAT3\n        case 35676:\n            return gl.uniformMatrix4fv(location, false, value); // FLOAT_MAT4\n    }\n}\n\nfunction addLineNumbers(string) {\n    let lines = string.split('\\n');\n    for (let i = 0; i < lines.length; i++) {\n        lines[i] = i + 1 + ': ' + lines[i];\n    }\n    return lines.join('\\n');\n}\n\nfunction flatten(a) {\n    const arrayLen = a.length;\n    const valueLen = a[0].length;\n    if (valueLen === undefined) return a;\n    const length = arrayLen * valueLen;\n    let value = arrayCacheF32[length];\n    if (!value) arrayCacheF32[length] = value = new Float32Array(length);\n    for (let i = 0; i < arrayLen; i++) value.set(a[i], i * valueLen);\n    return value;\n}\n\nfunction arraysEqual(a, b) {\n    if (a.length !== b.length) return false;\n    for (let i = 0, l = a.length; i < l; i++) {\n        if (a[i] !== b[i]) return false;\n    }\n    return true;\n}\n\nfunction setArray(a, b) {\n    for (let i = 0, l = a.length; i < l; i++) {\n        a[i] = b[i];\n    }\n}\n\nlet warnCount = 0;\nfunction warn(message) {\n    if (warnCount > 100) return;\n    console.warn(message);\n    warnCount++;\n    if (warnCount > 100) console.warn('More than 100 program warnings - stopping logs.');\n}\n","import { Vec3 } from '../math/Vec3.js';\n\n// TODO: Handle context loss https://www.khronos.org/webgl/wiki/HandlingContextLost\n\n// Not automatic - devs to use these methods manually\n// gl.colorMask( colorMask, colorMask, colorMask, colorMask );\n// gl.clearColor( r, g, b, a );\n// gl.stencilMask( stencilMask );\n// gl.stencilFunc( stencilFunc, stencilRef, stencilMask );\n// gl.stencilOp( stencilFail, stencilZFail, stencilZPass );\n// gl.clearStencil( stencil );\n\nconst tempVec3 = /* @__PURE__ */ new Vec3();\nlet ID = 1;\n\nexport class Renderer {\n    constructor({\n        canvas = document.createElement('canvas'),\n        width = 300,\n        height = 150,\n        dpr = 1,\n        alpha = false,\n        depth = true,\n        stencil = false,\n        antialias = false,\n        premultipliedAlpha = false,\n        preserveDrawingBuffer = false,\n        powerPreference = 'default',\n        autoClear = true,\n        webgl = 2,\n    } = {}) {\n        const attributes = { alpha, depth, stencil, antialias, premultipliedAlpha, preserveDrawingBuffer, powerPreference };\n        this.dpr = dpr;\n        this.alpha = alpha;\n        this.color = true;\n        this.depth = depth;\n        this.stencil = stencil;\n        this.premultipliedAlpha = premultipliedAlpha;\n        this.autoClear = autoClear;\n        this.id = ID++;\n\n        // Attempt WebGL2 unless forced to 1, if not supported fallback to WebGL1\n        if (webgl === 2) this.gl = canvas.getContext('webgl2', attributes);\n        this.isWebgl2 = !!this.gl;\n        if (!this.gl) this.gl = canvas.getContext('webgl', attributes);\n        if (!this.gl) console.error('unable to create webgl context');\n\n        // Attach renderer to gl so that all classes have access to internal state functions\n        this.gl.renderer = this;\n\n        // initialise size values\n        this.setSize(width, height);\n\n        // gl state stores to avoid redundant calls on methods used internally\n        this.state = {};\n        this.state.blendFunc = { src: this.gl.ONE, dst: this.gl.ZERO };\n        this.state.blendEquation = { modeRGB: this.gl.FUNC_ADD };\n        this.state.cullFace = false;\n        this.state.frontFace = this.gl.CCW;\n        this.state.depthMask = true;\n        this.state.depthFunc = this.gl.LEQUAL;\n        this.state.premultiplyAlpha = false;\n        this.state.flipY = false;\n        this.state.unpackAlignment = 4;\n        this.state.framebuffer = null;\n        this.state.viewport = { x: 0, y: 0, width: null, height: null };\n        this.state.textureUnits = [];\n        this.state.activeTextureUnit = 0;\n        this.state.boundBuffer = null;\n        this.state.uniformLocations = new Map();\n        this.state.currentProgram = null;\n\n        // store requested extensions\n        this.extensions = {};\n\n        // Initialise extra format types\n        if (this.isWebgl2) {\n            this.getExtension('EXT_color_buffer_float');\n            this.getExtension('OES_texture_float_linear');\n        } else {\n            this.getExtension('OES_texture_float');\n            this.getExtension('OES_texture_float_linear');\n            this.getExtension('OES_texture_half_float');\n            this.getExtension('OES_texture_half_float_linear');\n            this.getExtension('OES_element_index_uint');\n            this.getExtension('OES_standard_derivatives');\n            this.getExtension('EXT_sRGB');\n            this.getExtension('WEBGL_depth_texture');\n            this.getExtension('WEBGL_draw_buffers');\n        }\n        this.getExtension('WEBGL_compressed_texture_astc');\n        this.getExtension('EXT_texture_compression_bptc');\n        this.getExtension('WEBGL_compressed_texture_s3tc');\n        this.getExtension('WEBGL_compressed_texture_etc1');\n        this.getExtension('WEBGL_compressed_texture_pvrtc');\n        this.getExtension('WEBKIT_WEBGL_compressed_texture_pvrtc');\n\n        // Create method aliases using extension (WebGL1) or native if available (WebGL2)\n        this.vertexAttribDivisor = this.getExtension('ANGLE_instanced_arrays', 'vertexAttribDivisor', 'vertexAttribDivisorANGLE');\n        this.drawArraysInstanced = this.getExtension('ANGLE_instanced_arrays', 'drawArraysInstanced', 'drawArraysInstancedANGLE');\n        this.drawElementsInstanced = this.getExtension('ANGLE_instanced_arrays', 'drawElementsInstanced', 'drawElementsInstancedANGLE');\n        this.createVertexArray = this.getExtension('OES_vertex_array_object', 'createVertexArray', 'createVertexArrayOES');\n        this.bindVertexArray = this.getExtension('OES_vertex_array_object', 'bindVertexArray', 'bindVertexArrayOES');\n        this.deleteVertexArray = this.getExtension('OES_vertex_array_object', 'deleteVertexArray', 'deleteVertexArrayOES');\n        this.drawBuffers = this.getExtension('WEBGL_draw_buffers', 'drawBuffers', 'drawBuffersWEBGL');\n\n        // Store device parameters\n        this.parameters = {};\n        this.parameters.maxTextureUnits = this.gl.getParameter(this.gl.MAX_COMBINED_TEXTURE_IMAGE_UNITS);\n        this.parameters.maxAnisotropy = this.getExtension('EXT_texture_filter_anisotropic')\n            ? this.gl.getParameter(this.getExtension('EXT_texture_filter_anisotropic').MAX_TEXTURE_MAX_ANISOTROPY_EXT)\n            : 0;\n    }\n\n    setSize(width, height) {\n        this.width = width;\n        this.height = height;\n\n        this.gl.canvas.width = width * this.dpr;\n        this.gl.canvas.height = height * this.dpr;\n\n        if (!this.gl.canvas.style) return;\n        Object.assign(this.gl.canvas.style, {\n            width: width + 'px',\n            height: height + 'px',\n        });\n    }\n\n    setViewport(width, height, x = 0, y = 0) {\n        if (this.state.viewport.width === width && this.state.viewport.height === height) return;\n        this.state.viewport.width = width;\n        this.state.viewport.height = height;\n        this.state.viewport.x = x;\n        this.state.viewport.y = y;\n        this.gl.viewport(x, y, width, height);\n    }\n\n    setScissor(width, height, x = 0, y = 0) {\n        this.gl.scissor(x, y, width, height);\n    }\n\n    enable(id) {\n        if (this.state[id] === true) return;\n        this.gl.enable(id);\n        this.state[id] = true;\n    }\n\n    disable(id) {\n        if (this.state[id] === false) return;\n        this.gl.disable(id);\n        this.state[id] = false;\n    }\n\n    setBlendFunc(src, dst, srcAlpha, dstAlpha) {\n        if (\n            this.state.blendFunc.src === src &&\n            this.state.blendFunc.dst === dst &&\n            this.state.blendFunc.srcAlpha === srcAlpha &&\n            this.state.blendFunc.dstAlpha === dstAlpha\n        )\n            return;\n        this.state.blendFunc.src = src;\n        this.state.blendFunc.dst = dst;\n        this.state.blendFunc.srcAlpha = srcAlpha;\n        this.state.blendFunc.dstAlpha = dstAlpha;\n        if (srcAlpha !== undefined) this.gl.blendFuncSeparate(src, dst, srcAlpha, dstAlpha);\n        else this.gl.blendFunc(src, dst);\n    }\n\n    setBlendEquation(modeRGB, modeAlpha) {\n        modeRGB = modeRGB || this.gl.FUNC_ADD;\n        if (this.state.blendEquation.modeRGB === modeRGB && this.state.blendEquation.modeAlpha === modeAlpha) return;\n        this.state.blendEquation.modeRGB = modeRGB;\n        this.state.blendEquation.modeAlpha = modeAlpha;\n        if (modeAlpha !== undefined) this.gl.blendEquationSeparate(modeRGB, modeAlpha);\n        else this.gl.blendEquation(modeRGB);\n    }\n\n    setCullFace(value) {\n        if (this.state.cullFace === value) return;\n        this.state.cullFace = value;\n        this.gl.cullFace(value);\n    }\n\n    setFrontFace(value) {\n        if (this.state.frontFace === value) return;\n        this.state.frontFace = value;\n        this.gl.frontFace(value);\n    }\n\n    setDepthMask(value) {\n        if (this.state.depthMask === value) return;\n        this.state.depthMask = value;\n        this.gl.depthMask(value);\n    }\n\n    setDepthFunc(value) {\n        if (this.state.depthFunc === value) return;\n        this.state.depthFunc = value;\n        this.gl.depthFunc(value);\n    }\n\n    setStencilMask(value) {\n        if(this.state.stencilMask === value) return;\n        this.state.stencilMask = value;\n        this.gl.stencilMask(value)\n    }\n\n    setStencilFunc(func, ref, mask) {\n\n        if((this.state.stencilFunc === func) &&\n            (this.state.stencilRef === ref) &&\n            (this.state.stencilFuncMask === mask)\n        ) return;\n\n        this.state.stencilFunc = func || this.gl.ALWAYS;\n        this.state.stencilRef = ref || 0;\n        this.state.stencilFuncMask = mask || 0;\n\n        this.gl.stencilFunc(func || this.gl.ALWAYS, ref || 0, mask || 0);\n    }\n\n    setStencilOp(stencilFail, depthFail, depthPass) {\n\n        if(this.state.stencilFail === stencilFail &&\n            this.state.stencilDepthFail === depthFail &&\n            this.state.stencilDepthPass === depthPass\n        ) return;\n\n        this.state.stencilFail = stencilFail;\n        this.state.stencilDepthFail = depthFail;\n        this.state.stencilDepthPass = depthPass;\n        \n        this.gl.stencilOp(stencilFail, depthFail, depthPass);\n        \n    }\n\n    activeTexture(value) {\n        if (this.state.activeTextureUnit === value) return;\n        this.state.activeTextureUnit = value;\n        this.gl.activeTexture(this.gl.TEXTURE0 + value);\n    }\n\n    bindFramebuffer({ target = this.gl.FRAMEBUFFER, buffer = null } = {}) {\n        if (this.state.framebuffer === buffer) return;\n        this.state.framebuffer = buffer;\n        this.gl.bindFramebuffer(target, buffer);\n    }\n\n    getExtension(extension, webgl2Func, extFunc) {\n        // if webgl2 function supported, return func bound to gl context\n        if (webgl2Func && this.gl[webgl2Func]) return this.gl[webgl2Func].bind(this.gl);\n\n        // fetch extension once only\n        if (!this.extensions[extension]) {\n            this.extensions[extension] = this.gl.getExtension(extension);\n        }\n\n        // return extension if no function requested\n        if (!webgl2Func) return this.extensions[extension];\n\n        // Return null if extension not supported\n        if (!this.extensions[extension]) return null;\n\n        // return extension function, bound to extension\n        return this.extensions[extension][extFunc].bind(this.extensions[extension]);\n    }\n\n    sortOpaque(a, b) {\n        if (a.renderOrder !== b.renderOrder) {\n            return a.renderOrder - b.renderOrder;\n        } else if (a.program.id !== b.program.id) {\n            return a.program.id - b.program.id;\n        } else if (a.zDepth !== b.zDepth) {\n            return a.zDepth - b.zDepth;\n        } else {\n            return b.id - a.id;\n        }\n    }\n\n    sortTransparent(a, b) {\n        if (a.renderOrder !== b.renderOrder) {\n            return a.renderOrder - b.renderOrder;\n        }\n        if (a.zDepth !== b.zDepth) {\n            return b.zDepth - a.zDepth;\n        } else {\n            return b.id - a.id;\n        }\n    }\n\n    sortUI(a, b) {\n        if (a.renderOrder !== b.renderOrder) {\n            return a.renderOrder - b.renderOrder;\n        } else if (a.program.id !== b.program.id) {\n            return a.program.id - b.program.id;\n        } else {\n            return b.id - a.id;\n        }\n    }\n\n    getRenderList({ scene, camera, frustumCull, sort }) {\n        let renderList = [];\n\n        if (camera && frustumCull) camera.updateFrustum();\n\n        // Get visible\n        scene.traverse((node) => {\n            if (!node.visible) return true;\n            if (!node.draw) return;\n\n            if (frustumCull && node.frustumCulled && camera) {\n                if (!camera.frustumIntersectsMesh(node)) return;\n            }\n\n            renderList.push(node);\n        });\n\n        if (sort) {\n            const opaque = [];\n            const transparent = []; // depthTest true\n            const ui = []; // depthTest false\n\n            renderList.forEach((node) => {\n                // Split into the 3 render groups\n                if (!node.program.transparent) {\n                    opaque.push(node);\n                } else if (node.program.depthTest) {\n                    transparent.push(node);\n                } else {\n                    ui.push(node);\n                }\n\n                node.zDepth = 0;\n\n                // Only calculate z-depth if renderOrder unset and depthTest is true\n                if (node.renderOrder !== 0 || !node.program.depthTest || !camera) return;\n\n                // update z-depth\n                node.worldMatrix.getTranslation(tempVec3);\n                tempVec3.applyMatrix4(camera.projectionViewMatrix);\n                node.zDepth = tempVec3.z;\n            });\n\n            opaque.sort(this.sortOpaque);\n            transparent.sort(this.sortTransparent);\n            ui.sort(this.sortUI);\n\n            renderList = opaque.concat(transparent, ui);\n        }\n\n        return renderList;\n    }\n\n    render({ scene, camera, target = null, update = true, sort = true, frustumCull = true, clear }) {\n        if (target === null) {\n            // make sure no render target bound so draws to canvas\n            this.bindFramebuffer();\n            this.setViewport(this.width * this.dpr, this.height * this.dpr);\n        } else {\n            // bind supplied render target and update viewport\n            this.bindFramebuffer(target);\n            this.setViewport(target.width, target.height);\n        }\n\n        if (clear || (this.autoClear && clear !== false)) {\n            // Ensure depth buffer writing is enabled so it can be cleared\n            if (this.depth && (!target || target.depth)) {\n                this.enable(this.gl.DEPTH_TEST);\n                this.setDepthMask(true);\n            }\n\n            // Same for stencil\n            if(this.stencil || (!target || target.stencil)) {\n                this.enable(this.gl.STENCIL_TEST);\n                this.setStencilMask(0xff)\n            }\n\n            this.gl.clear(\n                (this.color ? this.gl.COLOR_BUFFER_BIT : 0) |\n                    (this.depth ? this.gl.DEPTH_BUFFER_BIT : 0) |\n                    (this.stencil ? this.gl.STENCIL_BUFFER_BIT : 0)\n            );\n        }\n\n        // updates all scene graph matrices\n        if (update) scene.updateMatrixWorld();\n\n        // Update camera separately, in case not in scene graph\n        if (camera) camera.updateMatrixWorld();\n\n        // Get render list - entails culling and sorting\n        const renderList = this.getRenderList({ scene, camera, frustumCull, sort });\n\n        renderList.forEach((node) => {\n            node.draw({ camera });\n        });\n    }\n}\n","const EPSILON = 0.000001;\n\n/**\n * Copy the values from one vec4 to another\n *\n * @param {vec4} out the receiving vector\n * @param {vec4} a the source vector\n * @returns {vec4} out\n */\nexport function copy(out, a) {\n    out[0] = a[0];\n    out[1] = a[1];\n    out[2] = a[2];\n    out[3] = a[3];\n    return out;\n}\n\n/**\n * Set the components of a vec4 to the given values\n *\n * @param {vec4} out the receiving vector\n * @param {Number} x X component\n * @param {Number} y Y component\n * @param {Number} z Z component\n * @param {Number} w W component\n * @returns {vec4} out\n */\nexport function set(out, x, y, z, w) {\n    out[0] = x;\n    out[1] = y;\n    out[2] = z;\n    out[3] = w;\n    return out;\n}\n\n/**\n * Adds two vec4's\n *\n * @param {vec4} out the receiving vector\n * @param {vec4} a the first operand\n * @param {vec4} b the second operand\n * @returns {vec4} out\n */\nexport function add(out, a, b) {\n    out[0] = a[0] + b[0];\n    out[1] = a[1] + b[1];\n    out[2] = a[2] + b[2];\n    out[3] = a[3] + b[3];\n    return out;\n}\n\n/**\n * Scales a vec4 by a scalar number\n *\n * @param {vec4} out the receiving vector\n * @param {vec4} a the vector to scale\n * @param {Number} b amount to scale the vector by\n * @returns {vec4} out\n */\nexport function scale(out, a, b) {\n    out[0] = a[0] * b;\n    out[1] = a[1] * b;\n    out[2] = a[2] * b;\n    out[3] = a[3] * b;\n    return out;\n}\n\n/**\n * Calculates the length of a vec4\n *\n * @param {vec4} a vector to calculate length of\n * @returns {Number} length of a\n */\nexport function length(a) {\n    let x = a[0];\n    let y = a[1];\n    let z = a[2];\n    let w = a[3];\n    return Math.sqrt(x * x + y * y + z * z + w * w);\n}\n\n/**\n * Normalize a vec4\n *\n * @param {vec4} out the receiving vector\n * @param {vec4} a vector to normalize\n * @returns {vec4} out\n */\nexport function normalize(out, a) {\n    let x = a[0];\n    let y = a[1];\n    let z = a[2];\n    let w = a[3];\n    let len = x * x + y * y + z * z + w * w;\n    if (len > 0) {\n        len = 1 / Math.sqrt(len);\n    }\n    out[0] = x * len;\n    out[1] = y * len;\n    out[2] = z * len;\n    out[3] = w * len;\n    return out;\n}\n\n/**\n * Calculates the dot product of two vec4's\n *\n * @param {vec4} a the first operand\n * @param {vec4} b the second operand\n * @returns {Number} dot product of a and b\n */\nexport function dot(a, b) {\n    return a[0] * b[0] + a[1] * b[1] + a[2] * b[2] + a[3] * b[3];\n}\n\n/**\n * Performs a linear interpolation between two vec4's\n *\n * @param {vec4} out the receiving vector\n * @param {vec4} a the first operand\n * @param {vec4} b the second operand\n * @param {Number} t interpolation amount between the two inputs\n * @returns {vec4} out\n */\nexport function lerp(out, a, b, t) {\n    let ax = a[0];\n    let ay = a[1];\n    let az = a[2];\n    let aw = a[3];\n    out[0] = ax + t * (b[0] - ax);\n    out[1] = ay + t * (b[1] - ay);\n    out[2] = az + t * (b[2] - az);\n    out[3] = aw + t * (b[3] - aw);\n    return out;\n}\n","import * as vec4 from './Vec4Func.js';\n\n/**\n * Set a quat to the identity quaternion\n *\n * @param {quat} out the receiving quaternion\n * @returns {quat} out\n */\nexport function identity(out) {\n    out[0] = 0;\n    out[1] = 0;\n    out[2] = 0;\n    out[3] = 1;\n    return out;\n}\n\n/**\n * Sets a quat from the given angle and rotation axis,\n * then returns it.\n *\n * @param {quat} out the receiving quaternion\n * @param {vec3} axis the axis around which to rotate\n * @param {Number} rad the angle in radians\n * @returns {quat} out\n **/\nexport function setAxisAngle(out, axis, rad) {\n    rad = rad * 0.5;\n    let s = Math.sin(rad);\n    out[0] = s * axis[0];\n    out[1] = s * axis[1];\n    out[2] = s * axis[2];\n    out[3] = Math.cos(rad);\n    return out;\n}\n\n/**\n * Multiplies two quats\n *\n * @param {quat} out the receiving quaternion\n * @param {quat} a the first operand\n * @param {quat} b the second operand\n * @returns {quat} out\n */\nexport function multiply(out, a, b) {\n    let ax = a[0],\n        ay = a[1],\n        az = a[2],\n        aw = a[3];\n    let bx = b[0],\n        by = b[1],\n        bz = b[2],\n        bw = b[3];\n\n    out[0] = ax * bw + aw * bx + ay * bz - az * by;\n    out[1] = ay * bw + aw * by + az * bx - ax * bz;\n    out[2] = az * bw + aw * bz + ax * by - ay * bx;\n    out[3] = aw * bw - ax * bx - ay * by - az * bz;\n    return out;\n}\n\n/**\n * Rotates a quaternion by the given angle about the X axis\n *\n * @param {quat} out quat receiving operation result\n * @param {quat} a quat to rotate\n * @param {number} rad angle (in radians) to rotate\n * @returns {quat} out\n */\nexport function rotateX(out, a, rad) {\n    rad *= 0.5;\n\n    let ax = a[0],\n        ay = a[1],\n        az = a[2],\n        aw = a[3];\n    let bx = Math.sin(rad),\n        bw = Math.cos(rad);\n\n    out[0] = ax * bw + aw * bx;\n    out[1] = ay * bw + az * bx;\n    out[2] = az * bw - ay * bx;\n    out[3] = aw * bw - ax * bx;\n    return out;\n}\n\n/**\n * Rotates a quaternion by the given angle about the Y axis\n *\n * @param {quat} out quat receiving operation result\n * @param {quat} a quat to rotate\n * @param {number} rad angle (in radians) to rotate\n * @returns {quat} out\n */\nexport function rotateY(out, a, rad) {\n    rad *= 0.5;\n\n    let ax = a[0],\n        ay = a[1],\n        az = a[2],\n        aw = a[3];\n    let by = Math.sin(rad),\n        bw = Math.cos(rad);\n\n    out[0] = ax * bw - az * by;\n    out[1] = ay * bw + aw * by;\n    out[2] = az * bw + ax * by;\n    out[3] = aw * bw - ay * by;\n    return out;\n}\n\n/**\n * Rotates a quaternion by the given angle about the Z axis\n *\n * @param {quat} out quat receiving operation result\n * @param {quat} a quat to rotate\n * @param {number} rad angle (in radians) to rotate\n * @returns {quat} out\n */\nexport function rotateZ(out, a, rad) {\n    rad *= 0.5;\n\n    let ax = a[0],\n        ay = a[1],\n        az = a[2],\n        aw = a[3];\n    let bz = Math.sin(rad),\n        bw = Math.cos(rad);\n\n    out[0] = ax * bw + ay * bz;\n    out[1] = ay * bw - ax * bz;\n    out[2] = az * bw + aw * bz;\n    out[3] = aw * bw - az * bz;\n    return out;\n}\n\n/**\n * Performs a spherical linear interpolation between two quat\n *\n * @param {quat} out the receiving quaternion\n * @param {quat} a the first operand\n * @param {quat} b the second operand\n * @param {Number} t interpolation amount between the two inputs\n * @returns {quat} out\n */\nexport function slerp(out, a, b, t) {\n    // benchmarks:\n    //    http://jsperf.com/quaternion-slerp-implementations\n    let ax = a[0],\n        ay = a[1],\n        az = a[2],\n        aw = a[3];\n    let bx = b[0],\n        by = b[1],\n        bz = b[2],\n        bw = b[3];\n\n    let omega, cosom, sinom, scale0, scale1;\n\n    // calc cosine\n    cosom = ax * bx + ay * by + az * bz + aw * bw;\n    // adjust signs (if necessary)\n    if (cosom < 0.0) {\n        cosom = -cosom;\n        bx = -bx;\n        by = -by;\n        bz = -bz;\n        bw = -bw;\n    }\n    // calculate coefficients\n    if (1.0 - cosom > 0.000001) {\n        // standard case (slerp)\n        omega = Math.acos(cosom);\n        sinom = Math.sin(omega);\n        scale0 = Math.sin((1.0 - t) * omega) / sinom;\n        scale1 = Math.sin(t * omega) / sinom;\n    } else {\n        // \"from\" and \"to\" quaternions are very close\n        //  ... so we can do a linear interpolation\n        scale0 = 1.0 - t;\n        scale1 = t;\n    }\n    // calculate final values\n    out[0] = scale0 * ax + scale1 * bx;\n    out[1] = scale0 * ay + scale1 * by;\n    out[2] = scale0 * az + scale1 * bz;\n    out[3] = scale0 * aw + scale1 * bw;\n\n    return out;\n}\n\n/**\n * Calculates the inverse of a quat\n *\n * @param {quat} out the receiving quaternion\n * @param {quat} a quat to calculate inverse of\n * @returns {quat} out\n */\nexport function invert(out, a) {\n    let a0 = a[0],\n        a1 = a[1],\n        a2 = a[2],\n        a3 = a[3];\n    let dot = a0 * a0 + a1 * a1 + a2 * a2 + a3 * a3;\n    let invDot = dot ? 1.0 / dot : 0;\n\n    // TODO: Would be faster to return [0,0,0,0] immediately if dot == 0\n\n    out[0] = -a0 * invDot;\n    out[1] = -a1 * invDot;\n    out[2] = -a2 * invDot;\n    out[3] = a3 * invDot;\n    return out;\n}\n\n/**\n * Calculates the conjugate of a quat\n * If the quaternion is normalized, this function is faster than quat.inverse and produces the same result.\n *\n * @param {quat} out the receiving quaternion\n * @param {quat} a quat to calculate conjugate of\n * @returns {quat} out\n */\nexport function conjugate(out, a) {\n    out[0] = -a[0];\n    out[1] = -a[1];\n    out[2] = -a[2];\n    out[3] = a[3];\n    return out;\n}\n\n/**\n * Creates a quaternion from the given 3x3 rotation matrix.\n *\n * NOTE: The resultant quaternion is not normalized, so you should be sure\n * to renormalize the quaternion yourself where necessary.\n *\n * @param {quat} out the receiving quaternion\n * @param {mat3} m rotation matrix\n * @returns {quat} out\n * @function\n */\nexport function fromMat3(out, m) {\n    // Algorithm in Ken Shoemake's article in 1987 SIGGRAPH course notes\n    // article \"Quaternion Calculus and Fast Animation\".\n    let fTrace = m[0] + m[4] + m[8];\n    let fRoot;\n\n    if (fTrace > 0.0) {\n        // |w| > 1/2, may as well choose w > 1/2\n        fRoot = Math.sqrt(fTrace + 1.0); // 2w\n        out[3] = 0.5 * fRoot;\n        fRoot = 0.5 / fRoot; // 1/(4w)\n        out[0] = (m[5] - m[7]) * fRoot;\n        out[1] = (m[6] - m[2]) * fRoot;\n        out[2] = (m[1] - m[3]) * fRoot;\n    } else {\n        // |w| <= 1/2\n        let i = 0;\n        if (m[4] > m[0]) i = 1;\n        if (m[8] > m[i * 3 + i]) i = 2;\n        let j = (i + 1) % 3;\n        let k = (i + 2) % 3;\n\n        fRoot = Math.sqrt(m[i * 3 + i] - m[j * 3 + j] - m[k * 3 + k] + 1.0);\n        out[i] = 0.5 * fRoot;\n        fRoot = 0.5 / fRoot;\n        out[3] = (m[j * 3 + k] - m[k * 3 + j]) * fRoot;\n        out[j] = (m[j * 3 + i] + m[i * 3 + j]) * fRoot;\n        out[k] = (m[k * 3 + i] + m[i * 3 + k]) * fRoot;\n    }\n\n    return out;\n}\n\n/**\n * Creates a quaternion from the given euler angle x, y, z.\n *\n * @param {quat} out the receiving quaternion\n * @param {vec3} euler Angles to rotate around each axis in degrees.\n * @param {String} order detailing order of operations. Default 'XYZ'.\n * @returns {quat} out\n * @function\n */\nexport function fromEuler(out, euler, order = 'YXZ') {\n    let sx = Math.sin(euler[0] * 0.5);\n    let cx = Math.cos(euler[0] * 0.5);\n    let sy = Math.sin(euler[1] * 0.5);\n    let cy = Math.cos(euler[1] * 0.5);\n    let sz = Math.sin(euler[2] * 0.5);\n    let cz = Math.cos(euler[2] * 0.5);\n\n    if (order === 'XYZ') {\n        out[0] = sx * cy * cz + cx * sy * sz;\n        out[1] = cx * sy * cz - sx * cy * sz;\n        out[2] = cx * cy * sz + sx * sy * cz;\n        out[3] = cx * cy * cz - sx * sy * sz;\n    } else if (order === 'YXZ') {\n        out[0] = sx * cy * cz + cx * sy * sz;\n        out[1] = cx * sy * cz - sx * cy * sz;\n        out[2] = cx * cy * sz - sx * sy * cz;\n        out[3] = cx * cy * cz + sx * sy * sz;\n    } else if (order === 'ZXY') {\n        out[0] = sx * cy * cz - cx * sy * sz;\n        out[1] = cx * sy * cz + sx * cy * sz;\n        out[2] = cx * cy * sz + sx * sy * cz;\n        out[3] = cx * cy * cz - sx * sy * sz;\n    } else if (order === 'ZYX') {\n        out[0] = sx * cy * cz - cx * sy * sz;\n        out[1] = cx * sy * cz + sx * cy * sz;\n        out[2] = cx * cy * sz - sx * sy * cz;\n        out[3] = cx * cy * cz + sx * sy * sz;\n    } else if (order === 'YZX') {\n        out[0] = sx * cy * cz + cx * sy * sz;\n        out[1] = cx * sy * cz + sx * cy * sz;\n        out[2] = cx * cy * sz - sx * sy * cz;\n        out[3] = cx * cy * cz - sx * sy * sz;\n    } else if (order === 'XZY') {\n        out[0] = sx * cy * cz - cx * sy * sz;\n        out[1] = cx * sy * cz - sx * cy * sz;\n        out[2] = cx * cy * sz + sx * sy * cz;\n        out[3] = cx * cy * cz + sx * sy * sz;\n    }\n\n    return out;\n}\n\n/**\n * Copy the values from one quat to another\n *\n * @param {quat} out the receiving quaternion\n * @param {quat} a the source quaternion\n * @returns {quat} out\n * @function\n */\nexport const copy = vec4.copy;\n\n/**\n * Set the components of a quat to the given values\n *\n * @param {quat} out the receiving quaternion\n * @param {Number} x X component\n * @param {Number} y Y component\n * @param {Number} z Z component\n * @param {Number} w W component\n * @returns {quat} out\n * @function\n */\nexport const set = vec4.set;\n\n/**\n * Adds two quat's\n *\n * @param {quat} out the receiving quaternion\n * @param {quat} a the first operand\n * @param {quat} b the second operand\n * @returns {quat} out\n * @function\n */\nexport const add = vec4.add;\n\n/**\n * Scales a quat by a scalar number\n *\n * @param {quat} out the receiving vector\n * @param {quat} a the vector to scale\n * @param {Number} b amount to scale the vector by\n * @returns {quat} out\n * @function\n */\nexport const scale = vec4.scale;\n\n/**\n * Calculates the dot product of two quat's\n *\n * @param {quat} a the first operand\n * @param {quat} b the second operand\n * @returns {Number} dot product of a and b\n * @function\n */\nexport const dot = vec4.dot;\n\n/**\n * Performs a linear interpolation between two quat's\n *\n * @param {quat} out the receiving quaternion\n * @param {quat} a the first operand\n * @param {quat} b the second operand\n * @param {Number} t interpolation amount between the two inputs\n * @returns {quat} out\n * @function\n */\nexport const lerp = vec4.lerp;\n\n/**\n * Calculates the length of a quat\n *\n * @param {quat} a vector to calculate length of\n * @returns {Number} length of a\n */\nexport const length = vec4.length;\n\n/**\n * Normalize a quat\n *\n * @param {quat} out the receiving quaternion\n * @param {quat} a quaternion to normalize\n * @returns {quat} out\n * @function\n */\nexport const normalize = vec4.normalize;\n","import * as QuatFunc from './functions/QuatFunc.js';\n\nexport class Quat extends Array {\n    constructor(x = 0, y = 0, z = 0, w = 1) {\n        super(x, y, z, w);\n        this.onChange = () => {};\n\n        // Keep reference to proxy target to avoid triggering onChange internally\n        this._target = this;\n\n        // Return a proxy to trigger onChange when array elements are edited directly\n        const triggerProps = ['0', '1', '2', '3'];\n        return new Proxy(this, {\n            set(target, property) {\n                const success = Reflect.set(...arguments);\n                if (success && triggerProps.includes(property)) target.onChange();\n                return success;\n            },\n        });\n    }\n\n    get x() {\n        return this[0];\n    }\n\n    get y() {\n        return this[1];\n    }\n\n    get z() {\n        return this[2];\n    }\n\n    get w() {\n        return this[3];\n    }\n\n    set x(v) {\n        this._target[0] = v;\n        this.onChange();\n    }\n\n    set y(v) {\n        this._target[1] = v;\n        this.onChange();\n    }\n\n    set z(v) {\n        this._target[2] = v;\n        this.onChange();\n    }\n\n    set w(v) {\n        this._target[3] = v;\n        this.onChange();\n    }\n\n    identity() {\n        QuatFunc.identity(this._target);\n        this.onChange();\n        return this;\n    }\n\n    set(x, y, z, w) {\n        if (x.length) return this.copy(x);\n        QuatFunc.set(this._target, x, y, z, w);\n        this.onChange();\n        return this;\n    }\n\n    rotateX(a) {\n        QuatFunc.rotateX(this._target, this._target, a);\n        this.onChange();\n        return this;\n    }\n\n    rotateY(a) {\n        QuatFunc.rotateY(this._target, this._target, a);\n        this.onChange();\n        return this;\n    }\n\n    rotateZ(a) {\n        QuatFunc.rotateZ(this._target, this._target, a);\n        this.onChange();\n        return this;\n    }\n\n    inverse(q = this._target) {\n        QuatFunc.invert(this._target, q);\n        this.onChange();\n        return this;\n    }\n\n    conjugate(q = this._target) {\n        QuatFunc.conjugate(this._target, q);\n        this.onChange();\n        return this;\n    }\n\n    copy(q) {\n        QuatFunc.copy(this._target, q);\n        this.onChange();\n        return this;\n    }\n\n    normalize(q = this._target) {\n        QuatFunc.normalize(this._target, q);\n        this.onChange();\n        return this;\n    }\n\n    multiply(qA, qB) {\n        if (qB) {\n            QuatFunc.multiply(this._target, qA, qB);\n        } else {\n            QuatFunc.multiply(this._target, this._target, qA);\n        }\n        this.onChange();\n        return this;\n    }\n\n    dot(v) {\n        return QuatFunc.dot(this._target, v);\n    }\n\n    fromMatrix3(matrix3) {\n        QuatFunc.fromMat3(this._target, matrix3);\n        this.onChange();\n        return this;\n    }\n\n    fromEuler(euler, isInternal) {\n        QuatFunc.fromEuler(this._target, euler, euler.order);\n        // Avoid infinite recursion\n        if (!isInternal) this.onChange();\n        return this;\n    }\n\n    fromAxisAngle(axis, a) {\n        QuatFunc.setAxisAngle(this._target, axis, a);\n        this.onChange();\n        return this;\n    }\n\n    slerp(q, t) {\n        QuatFunc.slerp(this._target, this._target, q, t);\n        this.onChange();\n        return this;\n    }\n\n    fromArray(a, o = 0) {\n        this._target[0] = a[o];\n        this._target[1] = a[o + 1];\n        this._target[2] = a[o + 2];\n        this._target[3] = a[o + 3];\n        this.onChange();\n        return this;\n    }\n\n    toArray(a = [], o = 0) {\n        a[o] = this[0];\n        a[o + 1] = this[1];\n        a[o + 2] = this[2];\n        a[o + 3] = this[3];\n        return a;\n    }\n}\n","import * as vec3 from './Vec3Func.js';\n\nconst EPSILON = 0.000001;\n\n/**\n * Copy the values from one mat4 to another\n *\n * @param {mat4} out the receiving matrix\n * @param {mat4} a the source matrix\n * @returns {mat4} out\n */\nexport function copy(out, a) {\n    out[0] = a[0];\n    out[1] = a[1];\n    out[2] = a[2];\n    out[3] = a[3];\n    out[4] = a[4];\n    out[5] = a[5];\n    out[6] = a[6];\n    out[7] = a[7];\n    out[8] = a[8];\n    out[9] = a[9];\n    out[10] = a[10];\n    out[11] = a[11];\n    out[12] = a[12];\n    out[13] = a[13];\n    out[14] = a[14];\n    out[15] = a[15];\n    return out;\n}\n\n/**\n * Set the components of a mat4 to the given values\n *\n * @param {mat4} out the receiving matrix\n * @returns {mat4} out\n */\nexport function set(out, m00, m01, m02, m03, m10, m11, m12, m13, m20, m21, m22, m23, m30, m31, m32, m33) {\n    out[0] = m00;\n    out[1] = m01;\n    out[2] = m02;\n    out[3] = m03;\n    out[4] = m10;\n    out[5] = m11;\n    out[6] = m12;\n    out[7] = m13;\n    out[8] = m20;\n    out[9] = m21;\n    out[10] = m22;\n    out[11] = m23;\n    out[12] = m30;\n    out[13] = m31;\n    out[14] = m32;\n    out[15] = m33;\n    return out;\n}\n\n/**\n * Set a mat4 to the identity matrix\n *\n * @param {mat4} out the receiving matrix\n * @returns {mat4} out\n */\nexport function identity(out) {\n    out[0] = 1;\n    out[1] = 0;\n    out[2] = 0;\n    out[3] = 0;\n    out[4] = 0;\n    out[5] = 1;\n    out[6] = 0;\n    out[7] = 0;\n    out[8] = 0;\n    out[9] = 0;\n    out[10] = 1;\n    out[11] = 0;\n    out[12] = 0;\n    out[13] = 0;\n    out[14] = 0;\n    out[15] = 1;\n    return out;\n}\n\n/**\n * Transpose the values of a mat4\n *\n * @param {mat4} out the receiving matrix\n * @param {mat4} a the source matrix\n * @returns {mat4} out\n */\nexport function transpose(out, a) {\n    // If we are transposing ourselves we can skip a few steps but have to cache some values\n    if (out === a) {\n        let a01 = a[1],\n            a02 = a[2],\n            a03 = a[3];\n        let a12 = a[6],\n            a13 = a[7];\n        let a23 = a[11];\n\n        out[1] = a[4];\n        out[2] = a[8];\n        out[3] = a[12];\n        out[4] = a01;\n        out[6] = a[9];\n        out[7] = a[13];\n        out[8] = a02;\n        out[9] = a12;\n        out[11] = a[14];\n        out[12] = a03;\n        out[13] = a13;\n        out[14] = a23;\n    } else {\n        out[0] = a[0];\n        out[1] = a[4];\n        out[2] = a[8];\n        out[3] = a[12];\n        out[4] = a[1];\n        out[5] = a[5];\n        out[6] = a[9];\n        out[7] = a[13];\n        out[8] = a[2];\n        out[9] = a[6];\n        out[10] = a[10];\n        out[11] = a[14];\n        out[12] = a[3];\n        out[13] = a[7];\n        out[14] = a[11];\n        out[15] = a[15];\n    }\n\n    return out;\n}\n\n/**\n * Inverts a mat4\n *\n * @param {mat4} out the receiving matrix\n * @param {mat4} a the source matrix\n * @returns {mat4} out\n */\nexport function invert(out, a) {\n    let a00 = a[0],\n        a01 = a[1],\n        a02 = a[2],\n        a03 = a[3];\n    let a10 = a[4],\n        a11 = a[5],\n        a12 = a[6],\n        a13 = a[7];\n    let a20 = a[8],\n        a21 = a[9],\n        a22 = a[10],\n        a23 = a[11];\n    let a30 = a[12],\n        a31 = a[13],\n        a32 = a[14],\n        a33 = a[15];\n\n    let b00 = a00 * a11 - a01 * a10;\n    let b01 = a00 * a12 - a02 * a10;\n    let b02 = a00 * a13 - a03 * a10;\n    let b03 = a01 * a12 - a02 * a11;\n    let b04 = a01 * a13 - a03 * a11;\n    let b05 = a02 * a13 - a03 * a12;\n    let b06 = a20 * a31 - a21 * a30;\n    let b07 = a20 * a32 - a22 * a30;\n    let b08 = a20 * a33 - a23 * a30;\n    let b09 = a21 * a32 - a22 * a31;\n    let b10 = a21 * a33 - a23 * a31;\n    let b11 = a22 * a33 - a23 * a32;\n\n    // Calculate the determinant\n    let det = b00 * b11 - b01 * b10 + b02 * b09 + b03 * b08 - b04 * b07 + b05 * b06;\n\n    if (!det) {\n        return null;\n    }\n    det = 1.0 / det;\n\n    out[0] = (a11 * b11 - a12 * b10 + a13 * b09) * det;\n    out[1] = (a02 * b10 - a01 * b11 - a03 * b09) * det;\n    out[2] = (a31 * b05 - a32 * b04 + a33 * b03) * det;\n    out[3] = (a22 * b04 - a21 * b05 - a23 * b03) * det;\n    out[4] = (a12 * b08 - a10 * b11 - a13 * b07) * det;\n    out[5] = (a00 * b11 - a02 * b08 + a03 * b07) * det;\n    out[6] = (a32 * b02 - a30 * b05 - a33 * b01) * det;\n    out[7] = (a20 * b05 - a22 * b02 + a23 * b01) * det;\n    out[8] = (a10 * b10 - a11 * b08 + a13 * b06) * det;\n    out[9] = (a01 * b08 - a00 * b10 - a03 * b06) * det;\n    out[10] = (a30 * b04 - a31 * b02 + a33 * b00) * det;\n    out[11] = (a21 * b02 - a20 * b04 - a23 * b00) * det;\n    out[12] = (a11 * b07 - a10 * b09 - a12 * b06) * det;\n    out[13] = (a00 * b09 - a01 * b07 + a02 * b06) * det;\n    out[14] = (a31 * b01 - a30 * b03 - a32 * b00) * det;\n    out[15] = (a20 * b03 - a21 * b01 + a22 * b00) * det;\n\n    return out;\n}\n\n/**\n * Calculates the determinant of a mat4\n *\n * @param {mat4} a the source matrix\n * @returns {Number} determinant of a\n */\nexport function determinant(a) {\n    let a00 = a[0],\n        a01 = a[1],\n        a02 = a[2],\n        a03 = a[3];\n    let a10 = a[4],\n        a11 = a[5],\n        a12 = a[6],\n        a13 = a[7];\n    let a20 = a[8],\n        a21 = a[9],\n        a22 = a[10],\n        a23 = a[11];\n    let a30 = a[12],\n        a31 = a[13],\n        a32 = a[14],\n        a33 = a[15];\n\n    let b00 = a00 * a11 - a01 * a10;\n    let b01 = a00 * a12 - a02 * a10;\n    let b02 = a00 * a13 - a03 * a10;\n    let b03 = a01 * a12 - a02 * a11;\n    let b04 = a01 * a13 - a03 * a11;\n    let b05 = a02 * a13 - a03 * a12;\n    let b06 = a20 * a31 - a21 * a30;\n    let b07 = a20 * a32 - a22 * a30;\n    let b08 = a20 * a33 - a23 * a30;\n    let b09 = a21 * a32 - a22 * a31;\n    let b10 = a21 * a33 - a23 * a31;\n    let b11 = a22 * a33 - a23 * a32;\n\n    // Calculate the determinant\n    return b00 * b11 - b01 * b10 + b02 * b09 + b03 * b08 - b04 * b07 + b05 * b06;\n}\n\n/**\n * Multiplies two mat4s\n *\n * @param {mat4} out the receiving matrix\n * @param {mat4} a the first operand\n * @param {mat4} b the second operand\n * @returns {mat4} out\n */\nexport function multiply(out, a, b) {\n    let a00 = a[0],\n        a01 = a[1],\n        a02 = a[2],\n        a03 = a[3];\n    let a10 = a[4],\n        a11 = a[5],\n        a12 = a[6],\n        a13 = a[7];\n    let a20 = a[8],\n        a21 = a[9],\n        a22 = a[10],\n        a23 = a[11];\n    let a30 = a[12],\n        a31 = a[13],\n        a32 = a[14],\n        a33 = a[15];\n\n    // Cache only the current line of the second matrix\n    let b0 = b[0],\n        b1 = b[1],\n        b2 = b[2],\n        b3 = b[3];\n    out[0] = b0 * a00 + b1 * a10 + b2 * a20 + b3 * a30;\n    out[1] = b0 * a01 + b1 * a11 + b2 * a21 + b3 * a31;\n    out[2] = b0 * a02 + b1 * a12 + b2 * a22 + b3 * a32;\n    out[3] = b0 * a03 + b1 * a13 + b2 * a23 + b3 * a33;\n\n    b0 = b[4];\n    b1 = b[5];\n    b2 = b[6];\n    b3 = b[7];\n    out[4] = b0 * a00 + b1 * a10 + b2 * a20 + b3 * a30;\n    out[5] = b0 * a01 + b1 * a11 + b2 * a21 + b3 * a31;\n    out[6] = b0 * a02 + b1 * a12 + b2 * a22 + b3 * a32;\n    out[7] = b0 * a03 + b1 * a13 + b2 * a23 + b3 * a33;\n\n    b0 = b[8];\n    b1 = b[9];\n    b2 = b[10];\n    b3 = b[11];\n    out[8] = b0 * a00 + b1 * a10 + b2 * a20 + b3 * a30;\n    out[9] = b0 * a01 + b1 * a11 + b2 * a21 + b3 * a31;\n    out[10] = b0 * a02 + b1 * a12 + b2 * a22 + b3 * a32;\n    out[11] = b0 * a03 + b1 * a13 + b2 * a23 + b3 * a33;\n\n    b0 = b[12];\n    b1 = b[13];\n    b2 = b[14];\n    b3 = b[15];\n    out[12] = b0 * a00 + b1 * a10 + b2 * a20 + b3 * a30;\n    out[13] = b0 * a01 + b1 * a11 + b2 * a21 + b3 * a31;\n    out[14] = b0 * a02 + b1 * a12 + b2 * a22 + b3 * a32;\n    out[15] = b0 * a03 + b1 * a13 + b2 * a23 + b3 * a33;\n    return out;\n}\n\n/**\n * Translate a mat4 by the given vector\n *\n * @param {mat4} out the receiving matrix\n * @param {mat4} a the matrix to translate\n * @param {vec3} v vector to translate by\n * @returns {mat4} out\n */\nexport function translate(out, a, v) {\n    let x = v[0],\n        y = v[1],\n        z = v[2];\n    let a00, a01, a02, a03;\n    let a10, a11, a12, a13;\n    let a20, a21, a22, a23;\n\n    if (a === out) {\n        out[12] = a[0] * x + a[4] * y + a[8] * z + a[12];\n        out[13] = a[1] * x + a[5] * y + a[9] * z + a[13];\n        out[14] = a[2] * x + a[6] * y + a[10] * z + a[14];\n        out[15] = a[3] * x + a[7] * y + a[11] * z + a[15];\n    } else {\n        a00 = a[0];\n        a01 = a[1];\n        a02 = a[2];\n        a03 = a[3];\n        a10 = a[4];\n        a11 = a[5];\n        a12 = a[6];\n        a13 = a[7];\n        a20 = a[8];\n        a21 = a[9];\n        a22 = a[10];\n        a23 = a[11];\n\n        out[0] = a00;\n        out[1] = a01;\n        out[2] = a02;\n        out[3] = a03;\n        out[4] = a10;\n        out[5] = a11;\n        out[6] = a12;\n        out[7] = a13;\n        out[8] = a20;\n        out[9] = a21;\n        out[10] = a22;\n        out[11] = a23;\n\n        out[12] = a00 * x + a10 * y + a20 * z + a[12];\n        out[13] = a01 * x + a11 * y + a21 * z + a[13];\n        out[14] = a02 * x + a12 * y + a22 * z + a[14];\n        out[15] = a03 * x + a13 * y + a23 * z + a[15];\n    }\n\n    return out;\n}\n\n/**\n * Scales the mat4 by the dimensions in the given vec3 not using vectorization\n *\n * @param {mat4} out the receiving matrix\n * @param {mat4} a the matrix to scale\n * @param {vec3} v the vec3 to scale the matrix by\n * @returns {mat4} out\n **/\nexport function scale(out, a, v) {\n    let x = v[0],\n        y = v[1],\n        z = v[2];\n\n    out[0] = a[0] * x;\n    out[1] = a[1] * x;\n    out[2] = a[2] * x;\n    out[3] = a[3] * x;\n    out[4] = a[4] * y;\n    out[5] = a[5] * y;\n    out[6] = a[6] * y;\n    out[7] = a[7] * y;\n    out[8] = a[8] * z;\n    out[9] = a[9] * z;\n    out[10] = a[10] * z;\n    out[11] = a[11] * z;\n    out[12] = a[12];\n    out[13] = a[13];\n    out[14] = a[14];\n    out[15] = a[15];\n    return out;\n}\n\n/**\n * Rotates a mat4 by the given angle around the given axis\n *\n * @param {mat4} out the receiving matrix\n * @param {mat4} a the matrix to rotate\n * @param {Number} rad the angle to rotate the matrix by\n * @param {vec3} axis the axis to rotate around\n * @returns {mat4} out\n */\nexport function rotate(out, a, rad, axis) {\n    let x = axis[0],\n        y = axis[1],\n        z = axis[2];\n    let len = Math.hypot(x, y, z);\n    let s, c, t;\n    let a00, a01, a02, a03;\n    let a10, a11, a12, a13;\n    let a20, a21, a22, a23;\n    let b00, b01, b02;\n    let b10, b11, b12;\n    let b20, b21, b22;\n\n    if (Math.abs(len) < EPSILON) {\n        return null;\n    }\n\n    len = 1 / len;\n    x *= len;\n    y *= len;\n    z *= len;\n\n    s = Math.sin(rad);\n    c = Math.cos(rad);\n    t = 1 - c;\n\n    a00 = a[0];\n    a01 = a[1];\n    a02 = a[2];\n    a03 = a[3];\n    a10 = a[4];\n    a11 = a[5];\n    a12 = a[6];\n    a13 = a[7];\n    a20 = a[8];\n    a21 = a[9];\n    a22 = a[10];\n    a23 = a[11];\n\n    // Construct the elements of the rotation matrix\n    b00 = x * x * t + c;\n    b01 = y * x * t + z * s;\n    b02 = z * x * t - y * s;\n    b10 = x * y * t - z * s;\n    b11 = y * y * t + c;\n    b12 = z * y * t + x * s;\n    b20 = x * z * t + y * s;\n    b21 = y * z * t - x * s;\n    b22 = z * z * t + c;\n\n    // Perform rotation-specific matrix multiplication\n    out[0] = a00 * b00 + a10 * b01 + a20 * b02;\n    out[1] = a01 * b00 + a11 * b01 + a21 * b02;\n    out[2] = a02 * b00 + a12 * b01 + a22 * b02;\n    out[3] = a03 * b00 + a13 * b01 + a23 * b02;\n    out[4] = a00 * b10 + a10 * b11 + a20 * b12;\n    out[5] = a01 * b10 + a11 * b11 + a21 * b12;\n    out[6] = a02 * b10 + a12 * b11 + a22 * b12;\n    out[7] = a03 * b10 + a13 * b11 + a23 * b12;\n    out[8] = a00 * b20 + a10 * b21 + a20 * b22;\n    out[9] = a01 * b20 + a11 * b21 + a21 * b22;\n    out[10] = a02 * b20 + a12 * b21 + a22 * b22;\n    out[11] = a03 * b20 + a13 * b21 + a23 * b22;\n\n    if (a !== out) {\n        // If the source and destination differ, copy the unchanged last row\n        out[12] = a[12];\n        out[13] = a[13];\n        out[14] = a[14];\n        out[15] = a[15];\n    }\n    return out;\n}\n\n/**\n * Returns the translation vector component of a transformation\n *  matrix. If a matrix is built with fromRotationTranslation,\n *  the returned vector will be the same as the translation vector\n *  originally supplied.\n * @param  {vec3} out Vector to receive translation component\n * @param  {mat4} mat Matrix to be decomposed (input)\n * @return {vec3} out\n */\nexport function getTranslation(out, mat) {\n    out[0] = mat[12];\n    out[1] = mat[13];\n    out[2] = mat[14];\n\n    return out;\n}\n\n/**\n * Returns the scaling factor component of a transformation\n *  matrix. If a matrix is built with fromRotationTranslationScale\n *  with a normalized Quaternion paramter, the returned vector will be\n *  the same as the scaling vector\n *  originally supplied.\n * @param  {vec3} out Vector to receive scaling factor component\n * @param  {mat4} mat Matrix to be decomposed (input)\n * @return {vec3} out\n */\nexport function getScaling(out, mat) {\n    let m11 = mat[0];\n    let m12 = mat[1];\n    let m13 = mat[2];\n    let m21 = mat[4];\n    let m22 = mat[5];\n    let m23 = mat[6];\n    let m31 = mat[8];\n    let m32 = mat[9];\n    let m33 = mat[10];\n\n    out[0] = Math.hypot(m11, m12, m13);\n    out[1] = Math.hypot(m21, m22, m23);\n    out[2] = Math.hypot(m31, m32, m33);\n\n    return out;\n}\n\nexport function getMaxScaleOnAxis(mat) {\n    let m11 = mat[0];\n    let m12 = mat[1];\n    let m13 = mat[2];\n    let m21 = mat[4];\n    let m22 = mat[5];\n    let m23 = mat[6];\n    let m31 = mat[8];\n    let m32 = mat[9];\n    let m33 = mat[10];\n\n    const x = m11 * m11 + m12 * m12 + m13 * m13;\n    const y = m21 * m21 + m22 * m22 + m23 * m23;\n    const z = m31 * m31 + m32 * m32 + m33 * m33;\n\n    return Math.sqrt(Math.max(x, y, z));\n}\n\n/**\n * Returns a quaternion representing the rotational component\n *  of a transformation matrix. If a matrix is built with\n *  fromRotationTranslation, the returned quaternion will be the\n *  same as the quaternion originally supplied.\n * @param {quat} out Quaternion to receive the rotation component\n * @param {mat4} mat Matrix to be decomposed (input)\n * @return {quat} out\n */\nexport const getRotation = (function () {\n    const temp = [1, 1, 1];\n\n    return function (out, mat) {\n        let scaling = temp;\n        getScaling(scaling, mat);\n\n        let is1 = 1 / scaling[0];\n        let is2 = 1 / scaling[1];\n        let is3 = 1 / scaling[2];\n\n        let sm11 = mat[0] * is1;\n        let sm12 = mat[1] * is2;\n        let sm13 = mat[2] * is3;\n        let sm21 = mat[4] * is1;\n        let sm22 = mat[5] * is2;\n        let sm23 = mat[6] * is3;\n        let sm31 = mat[8] * is1;\n        let sm32 = mat[9] * is2;\n        let sm33 = mat[10] * is3;\n\n        let trace = sm11 + sm22 + sm33;\n        let S = 0;\n\n        if (trace > 0) {\n            S = Math.sqrt(trace + 1.0) * 2;\n            out[3] = 0.25 * S;\n            out[0] = (sm23 - sm32) / S;\n            out[1] = (sm31 - sm13) / S;\n            out[2] = (sm12 - sm21) / S;\n        } else if (sm11 > sm22 && sm11 > sm33) {\n            S = Math.sqrt(1.0 + sm11 - sm22 - sm33) * 2;\n            out[3] = (sm23 - sm32) / S;\n            out[0] = 0.25 * S;\n            out[1] = (sm12 + sm21) / S;\n            out[2] = (sm31 + sm13) / S;\n        } else if (sm22 > sm33) {\n            S = Math.sqrt(1.0 + sm22 - sm11 - sm33) * 2;\n            out[3] = (sm31 - sm13) / S;\n            out[0] = (sm12 + sm21) / S;\n            out[1] = 0.25 * S;\n            out[2] = (sm23 + sm32) / S;\n        } else {\n            S = Math.sqrt(1.0 + sm33 - sm11 - sm22) * 2;\n            out[3] = (sm12 - sm21) / S;\n            out[0] = (sm31 + sm13) / S;\n            out[1] = (sm23 + sm32) / S;\n            out[2] = 0.25 * S;\n        }\n\n        return out;\n    };\n})();\n\n/**\n * From glTF-Transform\n * https://github.com/donmccurdy/glTF-Transform/blob/main/packages/core/src/utils/math-utils.ts\n *\n * Decompose a mat4 to TRS properties.\n *\n * Equivalent to the Matrix4 decompose() method in three.js, and intentionally not using the\n * gl-matrix version. See: https://github.com/toji/gl-matrix/issues/408\n *\n * @param {mat4} srcMat Matrix element, to be decomposed to TRS properties.\n * @param {quat4} dstRotation Rotation element, to be overwritten.\n * @param {vec3} dstTranslation Translation element, to be overwritten.\n * @param {vec3} dstScale Scale element, to be overwritten\n */\nexport function decompose(srcMat, dstRotation, dstTranslation, dstScale) {\n    let sx = vec3.length([srcMat[0], srcMat[1], srcMat[2]]);\n    const sy = vec3.length([srcMat[4], srcMat[5], srcMat[6]]);\n    const sz = vec3.length([srcMat[8], srcMat[9], srcMat[10]]);\n\n    // if determine is negative, we need to invert one scale\n    const det = determinant(srcMat);\n    if (det < 0) sx = -sx;\n\n    dstTranslation[0] = srcMat[12];\n    dstTranslation[1] = srcMat[13];\n    dstTranslation[2] = srcMat[14];\n\n    // scale the rotation part\n    const _m1 = srcMat.slice();\n\n    const invSX = 1 / sx;\n    const invSY = 1 / sy;\n    const invSZ = 1 / sz;\n\n    _m1[0] *= invSX;\n    _m1[1] *= invSX;\n    _m1[2] *= invSX;\n\n    _m1[4] *= invSY;\n    _m1[5] *= invSY;\n    _m1[6] *= invSY;\n\n    _m1[8] *= invSZ;\n    _m1[9] *= invSZ;\n    _m1[10] *= invSZ;\n\n    getRotation(dstRotation, _m1);\n\n    dstScale[0] = sx;\n    dstScale[1] = sy;\n    dstScale[2] = sz;\n}\n\n/**\n * From glTF-Transform\n * https://github.com/donmccurdy/glTF-Transform/blob/main/packages/core/src/utils/math-utils.ts\n *\n * Compose TRS properties to a mat4.\n *\n * Equivalent to the Matrix4 compose() method in three.js, and intentionally not using the\n * gl-matrix version. See: https://github.com/toji/gl-matrix/issues/408\n *\n * @param {mat4} dstMat Matrix element, to be modified and returned.\n * @param {quat4} srcRotation Rotation element of matrix.\n * @param {vec3} srcTranslation Translation element of matrix.\n * @param {vec3} srcScale Scale element of matrix.\n * @returns {mat4} dstMat, overwritten to mat4 equivalent of given TRS properties.\n */\nexport function compose(dstMat, srcRotation, srcTranslation, srcScale) {\n    const te = dstMat;\n\n    const x = srcRotation[0],\n        y = srcRotation[1],\n        z = srcRotation[2],\n        w = srcRotation[3];\n    const x2 = x + x,\n        y2 = y + y,\n        z2 = z + z;\n    const xx = x * x2,\n        xy = x * y2,\n        xz = x * z2;\n    const yy = y * y2,\n        yz = y * z2,\n        zz = z * z2;\n    const wx = w * x2,\n        wy = w * y2,\n        wz = w * z2;\n\n    const sx = srcScale[0],\n        sy = srcScale[1],\n        sz = srcScale[2];\n\n    te[0] = (1 - (yy + zz)) * sx;\n    te[1] = (xy + wz) * sx;\n    te[2] = (xz - wy) * sx;\n    te[3] = 0;\n\n    te[4] = (xy - wz) * sy;\n    te[5] = (1 - (xx + zz)) * sy;\n    te[6] = (yz + wx) * sy;\n    te[7] = 0;\n\n    te[8] = (xz + wy) * sz;\n    te[9] = (yz - wx) * sz;\n    te[10] = (1 - (xx + yy)) * sz;\n    te[11] = 0;\n\n    te[12] = srcTranslation[0];\n    te[13] = srcTranslation[1];\n    te[14] = srcTranslation[2];\n    te[15] = 1;\n\n    return te;\n}\n\n/**\n * Creates a matrix from a quaternion rotation, vector translation and vector scale\n * This is equivalent to (but much faster than):\n *\n *     mat4.identity(dest);\n *     mat4.translate(dest, vec);\n *     let quatMat = mat4.create();\n *     quat4.toMat4(quat, quatMat);\n *     mat4.multiply(dest, quatMat);\n *     mat4.scale(dest, scale)\n *\n * @param {mat4} out mat4 receiving operation result\n * @param {quat4} q Rotation quaternion\n * @param {vec3} v Translation vector\n * @param {vec3} s Scaling vector\n * @returns {mat4} out\n */\nexport function fromRotationTranslationScale(out, q, v, s) {\n    // Quaternion math\n    let x = q[0],\n        y = q[1],\n        z = q[2],\n        w = q[3];\n    let x2 = x + x;\n    let y2 = y + y;\n    let z2 = z + z;\n\n    let xx = x * x2;\n    let xy = x * y2;\n    let xz = x * z2;\n    let yy = y * y2;\n    let yz = y * z2;\n    let zz = z * z2;\n    let wx = w * x2;\n    let wy = w * y2;\n    let wz = w * z2;\n    let sx = s[0];\n    let sy = s[1];\n    let sz = s[2];\n\n    out[0] = (1 - (yy + zz)) * sx;\n    out[1] = (xy + wz) * sx;\n    out[2] = (xz - wy) * sx;\n    out[3] = 0;\n    out[4] = (xy - wz) * sy;\n    out[5] = (1 - (xx + zz)) * sy;\n    out[6] = (yz + wx) * sy;\n    out[7] = 0;\n    out[8] = (xz + wy) * sz;\n    out[9] = (yz - wx) * sz;\n    out[10] = (1 - (xx + yy)) * sz;\n    out[11] = 0;\n    out[12] = v[0];\n    out[13] = v[1];\n    out[14] = v[2];\n    out[15] = 1;\n\n    return out;\n}\n\n/**\n * Calculates a 4x4 matrix from the given quaternion\n *\n * @param {mat4} out mat4 receiving operation result\n * @param {quat} q Quaternion to create matrix from\n *\n * @returns {mat4} out\n */\nexport function fromQuat(out, q) {\n    let x = q[0],\n        y = q[1],\n        z = q[2],\n        w = q[3];\n    let x2 = x + x;\n    let y2 = y + y;\n    let z2 = z + z;\n\n    let xx = x * x2;\n    let yx = y * x2;\n    let yy = y * y2;\n    let zx = z * x2;\n    let zy = z * y2;\n    let zz = z * z2;\n    let wx = w * x2;\n    let wy = w * y2;\n    let wz = w * z2;\n\n    out[0] = 1 - yy - zz;\n    out[1] = yx + wz;\n    out[2] = zx - wy;\n    out[3] = 0;\n\n    out[4] = yx - wz;\n    out[5] = 1 - xx - zz;\n    out[6] = zy + wx;\n    out[7] = 0;\n\n    out[8] = zx + wy;\n    out[9] = zy - wx;\n    out[10] = 1 - xx - yy;\n    out[11] = 0;\n\n    out[12] = 0;\n    out[13] = 0;\n    out[14] = 0;\n    out[15] = 1;\n\n    return out;\n}\n\n/**\n * Generates a perspective projection matrix with the given bounds\n *\n * @param {mat4} out mat4 frustum matrix will be written into\n * @param {number} fovy Vertical field of view in radians\n * @param {number} aspect Aspect ratio. typically viewport width/height\n * @param {number} near Near bound of the frustum\n * @param {number} far Far bound of the frustum\n * @returns {mat4} out\n */\nexport function perspective(out, fovy, aspect, near, far) {\n    let f = 1.0 / Math.tan(fovy / 2);\n    let nf = 1 / (near - far);\n    out[0] = f / aspect;\n    out[1] = 0;\n    out[2] = 0;\n    out[3] = 0;\n    out[4] = 0;\n    out[5] = f;\n    out[6] = 0;\n    out[7] = 0;\n    out[8] = 0;\n    out[9] = 0;\n    out[10] = (far + near) * nf;\n    out[11] = -1;\n    out[12] = 0;\n    out[13] = 0;\n    out[14] = 2 * far * near * nf;\n    out[15] = 0;\n    return out;\n}\n\n/**\n * Generates a orthogonal projection matrix with the given bounds\n *\n * @param {mat4} out mat4 frustum matrix will be written into\n * @param {number} left Left bound of the frustum\n * @param {number} right Right bound of the frustum\n * @param {number} bottom Bottom bound of the frustum\n * @param {number} top Top bound of the frustum\n * @param {number} near Near bound of the frustum\n * @param {number} far Far bound of the frustum\n * @returns {mat4} out\n */\nexport function ortho(out, left, right, bottom, top, near, far) {\n    let lr = 1 / (left - right);\n    let bt = 1 / (bottom - top);\n    let nf = 1 / (near - far);\n    out[0] = -2 * lr;\n    out[1] = 0;\n    out[2] = 0;\n    out[3] = 0;\n    out[4] = 0;\n    out[5] = -2 * bt;\n    out[6] = 0;\n    out[7] = 0;\n    out[8] = 0;\n    out[9] = 0;\n    out[10] = 2 * nf;\n    out[11] = 0;\n    out[12] = (left + right) * lr;\n    out[13] = (top + bottom) * bt;\n    out[14] = (far + near) * nf;\n    out[15] = 1;\n    return out;\n}\n\n/**\n * Generates a matrix that makes something look at something else.\n *\n * @param {mat4} out mat4 frustum matrix will be written into\n * @param {vec3} eye Position of the viewer\n * @param {vec3} target Point the viewer is looking at\n * @param {vec3} up vec3 pointing up\n * @returns {mat4} out\n */\nexport function targetTo(out, eye, target, up) {\n    let eyex = eye[0],\n        eyey = eye[1],\n        eyez = eye[2],\n        upx = up[0],\n        upy = up[1],\n        upz = up[2];\n\n    let z0 = eyex - target[0],\n        z1 = eyey - target[1],\n        z2 = eyez - target[2];\n\n    let len = z0 * z0 + z1 * z1 + z2 * z2;\n    if (len === 0) {\n        // eye and target are in the same position\n        z2 = 1;\n    } else {\n        len = 1 / Math.sqrt(len);\n        z0 *= len;\n        z1 *= len;\n        z2 *= len;\n    }\n\n    let x0 = upy * z2 - upz * z1,\n        x1 = upz * z0 - upx * z2,\n        x2 = upx * z1 - upy * z0;\n\n    len = x0 * x0 + x1 * x1 + x2 * x2;\n    if (len === 0) {\n        // up and z are parallel\n        if (upz) {\n            upx += 1e-6;\n        } else if (upy) {\n            upz += 1e-6;\n        } else {\n            upy += 1e-6;\n        }\n        (x0 = upy * z2 - upz * z1), (x1 = upz * z0 - upx * z2), (x2 = upx * z1 - upy * z0);\n\n        len = x0 * x0 + x1 * x1 + x2 * x2;\n    }\n\n    len = 1 / Math.sqrt(len);\n    x0 *= len;\n    x1 *= len;\n    x2 *= len;\n\n    out[0] = x0;\n    out[1] = x1;\n    out[2] = x2;\n    out[3] = 0;\n    out[4] = z1 * x2 - z2 * x1;\n    out[5] = z2 * x0 - z0 * x2;\n    out[6] = z0 * x1 - z1 * x0;\n    out[7] = 0;\n    out[8] = z0;\n    out[9] = z1;\n    out[10] = z2;\n    out[11] = 0;\n    out[12] = eyex;\n    out[13] = eyey;\n    out[14] = eyez;\n    out[15] = 1;\n    return out;\n}\n\n/**\n * Adds two mat4's\n *\n * @param {mat4} out the receiving matrix\n * @param {mat4} a the first operand\n * @param {mat4} b the second operand\n * @returns {mat4} out\n */\nexport function add(out, a, b) {\n    out[0] = a[0] + b[0];\n    out[1] = a[1] + b[1];\n    out[2] = a[2] + b[2];\n    out[3] = a[3] + b[3];\n    out[4] = a[4] + b[4];\n    out[5] = a[5] + b[5];\n    out[6] = a[6] + b[6];\n    out[7] = a[7] + b[7];\n    out[8] = a[8] + b[8];\n    out[9] = a[9] + b[9];\n    out[10] = a[10] + b[10];\n    out[11] = a[11] + b[11];\n    out[12] = a[12] + b[12];\n    out[13] = a[13] + b[13];\n    out[14] = a[14] + b[14];\n    out[15] = a[15] + b[15];\n    return out;\n}\n\n/**\n * Subtracts matrix b from matrix a\n *\n * @param {mat4} out the receiving matrix\n * @param {mat4} a the first operand\n * @param {mat4} b the second operand\n * @returns {mat4} out\n */\nexport function subtract(out, a, b) {\n    out[0] = a[0] - b[0];\n    out[1] = a[1] - b[1];\n    out[2] = a[2] - b[2];\n    out[3] = a[3] - b[3];\n    out[4] = a[4] - b[4];\n    out[5] = a[5] - b[5];\n    out[6] = a[6] - b[6];\n    out[7] = a[7] - b[7];\n    out[8] = a[8] - b[8];\n    out[9] = a[9] - b[9];\n    out[10] = a[10] - b[10];\n    out[11] = a[11] - b[11];\n    out[12] = a[12] - b[12];\n    out[13] = a[13] - b[13];\n    out[14] = a[14] - b[14];\n    out[15] = a[15] - b[15];\n    return out;\n}\n\n/**\n * Multiply each element of the matrix by a scalar.\n *\n * @param {mat4} out the receiving matrix\n * @param {mat4} a the matrix to scale\n * @param {Number} b amount to scale the matrix's elements by\n * @returns {mat4} out\n */\nexport function multiplyScalar(out, a, b) {\n    out[0] = a[0] * b;\n    out[1] = a[1] * b;\n    out[2] = a[2] * b;\n    out[3] = a[3] * b;\n    out[4] = a[4] * b;\n    out[5] = a[5] * b;\n    out[6] = a[6] * b;\n    out[7] = a[7] * b;\n    out[8] = a[8] * b;\n    out[9] = a[9] * b;\n    out[10] = a[10] * b;\n    out[11] = a[11] * b;\n    out[12] = a[12] * b;\n    out[13] = a[13] * b;\n    out[14] = a[14] * b;\n    out[15] = a[15] * b;\n    return out;\n}\n","import * as Mat4Func from './functions/Mat4Func.js';\n\nexport class Mat4 extends Array {\n    constructor(\n        m00 = 1,\n        m01 = 0,\n        m02 = 0,\n        m03 = 0,\n        m10 = 0,\n        m11 = 1,\n        m12 = 0,\n        m13 = 0,\n        m20 = 0,\n        m21 = 0,\n        m22 = 1,\n        m23 = 0,\n        m30 = 0,\n        m31 = 0,\n        m32 = 0,\n        m33 = 1\n    ) {\n        super(m00, m01, m02, m03, m10, m11, m12, m13, m20, m21, m22, m23, m30, m31, m32, m33);\n        return this;\n    }\n\n    get x() {\n        return this[12];\n    }\n\n    get y() {\n        return this[13];\n    }\n\n    get z() {\n        return this[14];\n    }\n\n    get w() {\n        return this[15];\n    }\n\n    set x(v) {\n        this[12] = v;\n    }\n\n    set y(v) {\n        this[13] = v;\n    }\n\n    set z(v) {\n        this[14] = v;\n    }\n\n    set w(v) {\n        this[15] = v;\n    }\n\n    set(m00, m01, m02, m03, m10, m11, m12, m13, m20, m21, m22, m23, m30, m31, m32, m33) {\n        if (m00.length) return this.copy(m00);\n        Mat4Func.set(this, m00, m01, m02, m03, m10, m11, m12, m13, m20, m21, m22, m23, m30, m31, m32, m33);\n        return this;\n    }\n\n    translate(v, m = this) {\n        Mat4Func.translate(this, m, v);\n        return this;\n    }\n\n    rotate(v, axis, m = this) {\n        Mat4Func.rotate(this, m, v, axis);\n        return this;\n    }\n\n    scale(v, m = this) {\n        Mat4Func.scale(this, m, typeof v === 'number' ? [v, v, v] : v);\n        return this;\n    }\n\n    add(ma, mb) {\n        if (mb) Mat4Func.add(this, ma, mb);\n        else Mat4Func.add(this, this, ma);\n        return this;\n    }\n\n    sub(ma, mb) {\n        if (mb) Mat4Func.subtract(this, ma, mb);\n        else Mat4Func.subtract(this, this, ma);\n        return this;\n    }\n\n    multiply(ma, mb) {\n        if (!ma.length) {\n            Mat4Func.multiplyScalar(this, this, ma);\n        } else if (mb) {\n            Mat4Func.multiply(this, ma, mb);\n        } else {\n            Mat4Func.multiply(this, this, ma);\n        }\n        return this;\n    }\n\n    identity() {\n        Mat4Func.identity(this);\n        return this;\n    }\n\n    copy(m) {\n        Mat4Func.copy(this, m);\n        return this;\n    }\n\n    fromPerspective({ fov, aspect, near, far } = {}) {\n        Mat4Func.perspective(this, fov, aspect, near, far);\n        return this;\n    }\n\n    fromOrthogonal({ left, right, bottom, top, near, far }) {\n        Mat4Func.ortho(this, left, right, bottom, top, near, far);\n        return this;\n    }\n\n    fromQuaternion(q) {\n        Mat4Func.fromQuat(this, q);\n        return this;\n    }\n\n    setPosition(v) {\n        this.x = v[0];\n        this.y = v[1];\n        this.z = v[2];\n        return this;\n    }\n\n    inverse(m = this) {\n        Mat4Func.invert(this, m);\n        return this;\n    }\n\n    compose(q, pos, scale) {\n        Mat4Func.compose(this, q, pos, scale);\n        return this;\n    }\n\n    decompose(q, pos, scale) {\n        Mat4Func.decompose(this, q, pos, scale);\n        return this;\n    }\n\n    getRotation(q) {\n        Mat4Func.getRotation(q, this);\n        return this;\n    }\n\n    getTranslation(pos) {\n        Mat4Func.getTranslation(pos, this);\n        return this;\n    }\n\n    getScaling(scale) {\n        Mat4Func.getScaling(scale, this);\n        return this;\n    }\n\n    getMaxScaleOnAxis() {\n        return Mat4Func.getMaxScaleOnAxis(this);\n    }\n\n    lookAt(eye, target, up) {\n        Mat4Func.targetTo(this, eye, target, up);\n        return this;\n    }\n\n    determinant() {\n        return Mat4Func.determinant(this);\n    }\n\n    fromArray(a, o = 0) {\n        this[0] = a[o];\n        this[1] = a[o + 1];\n        this[2] = a[o + 2];\n        this[3] = a[o + 3];\n        this[4] = a[o + 4];\n        this[5] = a[o + 5];\n        this[6] = a[o + 6];\n        this[7] = a[o + 7];\n        this[8] = a[o + 8];\n        this[9] = a[o + 9];\n        this[10] = a[o + 10];\n        this[11] = a[o + 11];\n        this[12] = a[o + 12];\n        this[13] = a[o + 13];\n        this[14] = a[o + 14];\n        this[15] = a[o + 15];\n        return this;\n    }\n\n    toArray(a = [], o = 0) {\n        a[o] = this[0];\n        a[o + 1] = this[1];\n        a[o + 2] = this[2];\n        a[o + 3] = this[3];\n        a[o + 4] = this[4];\n        a[o + 5] = this[5];\n        a[o + 6] = this[6];\n        a[o + 7] = this[7];\n        a[o + 8] = this[8];\n        a[o + 9] = this[9];\n        a[o + 10] = this[10];\n        a[o + 11] = this[11];\n        a[o + 12] = this[12];\n        a[o + 13] = this[13];\n        a[o + 14] = this[14];\n        a[o + 15] = this[15];\n        return a;\n    }\n}\n","// assumes the upper 3x3 of m is a pure rotation matrix (i.e, unscaled)\nexport function fromRotationMatrix(out, m, order = 'YXZ') {\n    if (order === 'XYZ') {\n        out[1] = Math.asin(Math.min(Math.max(m[8], -1), 1));\n        if (Math.abs(m[8]) < 0.99999) {\n            out[0] = Math.atan2(-m[9], m[10]);\n            out[2] = Math.atan2(-m[4], m[0]);\n        } else {\n            out[0] = Math.atan2(m[6], m[5]);\n            out[2] = 0;\n        }\n    } else if (order === 'YXZ') {\n        out[0] = Math.asin(-Math.min(Math.max(m[9], -1), 1));\n        if (Math.abs(m[9]) < 0.99999) {\n            out[1] = Math.atan2(m[8], m[10]);\n            out[2] = Math.atan2(m[1], m[5]);\n        } else {\n            out[1] = Math.atan2(-m[2], m[0]);\n            out[2] = 0;\n        }\n    } else if (order === 'ZXY') {\n        out[0] = Math.asin(Math.min(Math.max(m[6], -1), 1));\n        if (Math.abs(m[6]) < 0.99999) {\n            out[1] = Math.atan2(-m[2], m[10]);\n            out[2] = Math.atan2(-m[4], m[5]);\n        } else {\n            out[1] = 0;\n            out[2] = Math.atan2(m[1], m[0]);\n        }\n    } else if (order === 'ZYX') {\n        out[1] = Math.asin(-Math.min(Math.max(m[2], -1), 1));\n        if (Math.abs(m[2]) < 0.99999) {\n            out[0] = Math.atan2(m[6], m[10]);\n            out[2] = Math.atan2(m[1], m[0]);\n        } else {\n            out[0] = 0;\n            out[2] = Math.atan2(-m[4], m[5]);\n        }\n    } else if (order === 'YZX') {\n        out[2] = Math.asin(Math.min(Math.max(m[1], -1), 1));\n        if (Math.abs(m[1]) < 0.99999) {\n            out[0] = Math.atan2(-m[9], m[5]);\n            out[1] = Math.atan2(-m[2], m[0]);\n        } else {\n            out[0] = 0;\n            out[1] = Math.atan2(m[8], m[10]);\n        }\n    } else if (order === 'XZY') {\n        out[2] = Math.asin(-Math.min(Math.max(m[4], -1), 1));\n        if (Math.abs(m[4]) < 0.99999) {\n            out[0] = Math.atan2(m[6], m[5]);\n            out[1] = Math.atan2(m[8], m[0]);\n        } else {\n            out[0] = Math.atan2(-m[9], m[10]);\n            out[1] = 0;\n        }\n    }\n\n    return out;\n}\n","import * as EulerFunc from './functions/EulerFunc.js';\nimport { Mat4 } from './Mat4.js';\n\nconst tmpMat4 = /* @__PURE__ */ new Mat4();\n\nexport class Euler extends Array {\n    constructor(x = 0, y = x, z = x, order = 'YXZ') {\n        super(x, y, z);\n        this.order = order;\n        this.onChange = () => {};\n\n        // Keep reference to proxy target to avoid triggering onChange internally\n        this._target = this;\n\n        // Return a proxy to trigger onChange when array elements are edited directly\n        const triggerProps = ['0', '1', '2'];\n        return new Proxy(this, {\n            set(target, property) {\n                const success = Reflect.set(...arguments);\n                if (success && triggerProps.includes(property)) target.onChange();\n                return success;\n            },\n        });\n    }\n\n    get x() {\n        return this[0];\n    }\n\n    get y() {\n        return this[1];\n    }\n\n    get z() {\n        return this[2];\n    }\n\n    set x(v) {\n        this._target[0] = v;\n        this.onChange();\n    }\n\n    set y(v) {\n        this._target[1] = v;\n        this.onChange();\n    }\n\n    set z(v) {\n        this._target[2] = v;\n        this.onChange();\n    }\n\n    set(x, y = x, z = x) {\n        if (x.length) return this.copy(x);\n        this._target[0] = x;\n        this._target[1] = y;\n        this._target[2] = z;\n        this.onChange();\n        return this;\n    }\n\n    copy(v) {\n        this._target[0] = v[0];\n        this._target[1] = v[1];\n        this._target[2] = v[2];\n        this.onChange();\n        return this;\n    }\n\n    reorder(order) {\n        this._target.order = order;\n        this.onChange();\n        return this;\n    }\n\n    fromRotationMatrix(m, order = this.order) {\n        EulerFunc.fromRotationMatrix(this._target, m, order);\n        this.onChange();\n        return this;\n    }\n\n    fromQuaternion(q, order = this.order, isInternal) {\n        tmpMat4.fromQuaternion(q);\n        this._target.fromRotationMatrix(tmpMat4, order);\n        // Avoid infinite recursion\n        if (!isInternal) this.onChange();\n        return this;\n    }\n\n    fromArray(a, o = 0) {\n        this._target[0] = a[o];\n        this._target[1] = a[o + 1];\n        this._target[2] = a[o + 2];\n        return this;\n    }\n\n    toArray(a = [], o = 0) {\n        a[o] = this[0];\n        a[o + 1] = this[1];\n        a[o + 2] = this[2];\n        return a;\n    }\n}\n","import { Vec3 } from '../math/Vec3.js';\nimport { Quat } from '../math/Quat.js';\nimport { Mat4 } from '../math/Mat4.js';\nimport { Euler } from '../math/Euler.js';\n\nexport class Transform {\n    constructor() {\n        this.parent = null;\n        this.children = [];\n        this.visible = true;\n\n        this.matrix = new Mat4();\n        this.worldMatrix = new Mat4();\n        this.matrixAutoUpdate = true;\n        this.worldMatrixNeedsUpdate = false;\n\n        this.position = new Vec3();\n        this.quaternion = new Quat();\n        this.scale = new Vec3(1);\n        this.rotation = new Euler();\n        this.up = new Vec3(0, 1, 0);\n\n        this.rotation._target.onChange = () => this.quaternion.fromEuler(this.rotation, true);\n        this.quaternion._target.onChange = () => this.rotation.fromQuaternion(this.quaternion, undefined, true);\n    }\n\n    setParent(parent, notifyParent = true) {\n        if (this.parent && parent !== this.parent) this.parent.removeChild(this, false);\n        this.parent = parent;\n        if (notifyParent && parent) parent.addChild(this, false);\n    }\n\n    addChild(child, notifyChild = true) {\n        if (!~this.children.indexOf(child)) this.children.push(child);\n        if (notifyChild) child.setParent(this, false);\n    }\n\n    removeChild(child, notifyChild = true) {\n        if (!!~this.children.indexOf(child)) this.children.splice(this.children.indexOf(child), 1);\n        if (notifyChild) child.setParent(null, false);\n    }\n\n    updateMatrixWorld(force) {\n        if (this.matrixAutoUpdate) this.updateMatrix();\n        if (this.worldMatrixNeedsUpdate || force) {\n            if (this.parent === null) this.worldMatrix.copy(this.matrix);\n            else this.worldMatrix.multiply(this.parent.worldMatrix, this.matrix);\n            this.worldMatrixNeedsUpdate = false;\n            force = true;\n        }\n\n        for (let i = 0, l = this.children.length; i < l; i++) {\n            this.children[i].updateMatrixWorld(force);\n        }\n    }\n\n    updateMatrix() {\n        this.matrix.compose(this.quaternion, this.position, this.scale);\n        this.worldMatrixNeedsUpdate = true;\n    }\n\n    traverse(callback) {\n        // Return true in callback to stop traversing children\n        if (callback(this)) return;\n        for (let i = 0, l = this.children.length; i < l; i++) {\n            this.children[i].traverse(callback);\n        }\n    }\n\n    decompose() {\n        this.matrix.decompose(this.quaternion._target, this.position, this.scale);\n        this.rotation.fromQuaternion(this.quaternion);\n    }\n\n    lookAt(target, invert = false) {\n        if (invert) this.matrix.lookAt(this.position, target, this.up);\n        else this.matrix.lookAt(target, this.position, this.up);\n        this.matrix.getRotation(this.quaternion._target);\n        this.rotation.fromQuaternion(this.quaternion);\n    }\n}\n","import { Transform } from './Transform.js';\nimport { Mat4 } from '../math/Mat4.js';\nimport { Vec3 } from '../math/Vec3.js';\n\nconst tempMat4 = /* @__PURE__ */ new Mat4();\nconst tempVec3a = /* @__PURE__ */ new Vec3();\nconst tempVec3b = /* @__PURE__ */ new Vec3();\n\nexport class Camera extends Transform {\n    constructor(gl, { near = 0.1, far = 100, fov = 45, aspect = 1, left, right, bottom, top, zoom = 1 } = {}) {\n        super();\n\n        Object.assign(this, { near, far, fov, aspect, left, right, bottom, top, zoom });\n\n        this.projectionMatrix = new Mat4();\n        this.viewMatrix = new Mat4();\n        this.projectionViewMatrix = new Mat4();\n        this.worldPosition = new Vec3();\n\n        // Use orthographic if left/right set, else default to perspective camera\n        this.type = left || right ? 'orthographic' : 'perspective';\n\n        if (this.type === 'orthographic') this.orthographic();\n        else this.perspective();\n    }\n\n    perspective({ near = this.near, far = this.far, fov = this.fov, aspect = this.aspect } = {}) {\n        Object.assign(this, { near, far, fov, aspect });\n        this.projectionMatrix.fromPerspective({ fov: fov * (Math.PI / 180), aspect, near, far });\n        this.type = 'perspective';\n        return this;\n    }\n\n    orthographic({\n        near = this.near,\n        far = this.far,\n        left = this.left || -1,\n        right = this.right || 1,\n        bottom = this.bottom || -1,\n        top = this.top || 1,\n        zoom = this.zoom,\n    } = {}) {\n        Object.assign(this, { near, far, left, right, bottom, top, zoom });\n        left /= zoom;\n        right /= zoom;\n        bottom /= zoom;\n        top /= zoom;\n        this.projectionMatrix.fromOrthogonal({ left, right, bottom, top, near, far });\n        this.type = 'orthographic';\n        return this;\n    }\n\n    updateMatrixWorld() {\n        super.updateMatrixWorld();\n        this.viewMatrix.inverse(this.worldMatrix);\n        this.worldMatrix.getTranslation(this.worldPosition);\n\n        // used for sorting\n        this.projectionViewMatrix.multiply(this.projectionMatrix, this.viewMatrix);\n        return this;\n    }\n\n    updateProjectionMatrix() {\n        if (this.type === 'perspective') {\n            return this.perspective();\n        } else {\n            return this.orthographic();\n        }\n    }\n\n    lookAt(target) {\n        super.lookAt(target, true);\n        return this;\n    }\n\n    // Project 3D coordinate to 2D point\n    project(v) {\n        v.applyMatrix4(this.viewMatrix);\n        v.applyMatrix4(this.projectionMatrix);\n        return this;\n    }\n\n    // Unproject 2D point to 3D coordinate\n    unproject(v) {\n        v.applyMatrix4(tempMat4.inverse(this.projectionMatrix));\n        v.applyMatrix4(this.worldMatrix);\n        return this;\n    }\n\n    updateFrustum() {\n        if (!this.frustum) {\n            this.frustum = [new Vec3(), new Vec3(), new Vec3(), new Vec3(), new Vec3(), new Vec3()];\n        }\n\n        const m = this.projectionViewMatrix;\n        this.frustum[0].set(m[3] - m[0], m[7] - m[4], m[11] - m[8]).constant = m[15] - m[12]; // -x\n        this.frustum[1].set(m[3] + m[0], m[7] + m[4], m[11] + m[8]).constant = m[15] + m[12]; // +x\n        this.frustum[2].set(m[3] + m[1], m[7] + m[5], m[11] + m[9]).constant = m[15] + m[13]; // +y\n        this.frustum[3].set(m[3] - m[1], m[7] - m[5], m[11] - m[9]).constant = m[15] - m[13]; // -y\n        this.frustum[4].set(m[3] - m[2], m[7] - m[6], m[11] - m[10]).constant = m[15] - m[14]; // +z (far)\n        this.frustum[5].set(m[3] + m[2], m[7] + m[6], m[11] + m[10]).constant = m[15] + m[14]; // -z (near)\n\n        for (let i = 0; i < 6; i++) {\n            const invLen = 1.0 / this.frustum[i].distance();\n            this.frustum[i].multiply(invLen);\n            this.frustum[i].constant *= invLen;\n        }\n    }\n\n    frustumIntersectsMesh(node, worldMatrix = node.worldMatrix) {\n        // If no position attribute, treat as frustumCulled false\n        if (!node.geometry.attributes.position) return true;\n\n        if (!node.geometry.bounds || node.geometry.bounds.radius === Infinity) node.geometry.computeBoundingSphere();\n\n        if (!node.geometry.bounds) return true;\n\n        const center = tempVec3a;\n        center.copy(node.geometry.bounds.center);\n        center.applyMatrix4(worldMatrix);\n\n        const radius = node.geometry.bounds.radius * worldMatrix.getMaxScaleOnAxis();\n\n        return this.frustumIntersectsSphere(center, radius);\n    }\n\n    frustumIntersectsSphere(center, radius) {\n        const normal = tempVec3b;\n\n        for (let i = 0; i < 6; i++) {\n            const plane = this.frustum[i];\n            const distance = normal.copy(plane).dot(center) + plane.constant;\n            if (distance < -radius) return false;\n        }\n        return true;\n    }\n}\n","const EPSILON = 0.000001;\n\n/**\n * Copies the upper-left 3x3 values into the given mat3.\n *\n * @param {mat3} out the receiving 3x3 matrix\n * @param {mat4} a   the source 4x4 matrix\n * @returns {mat3} out\n */\nexport function fromMat4(out, a) {\n    out[0] = a[0];\n    out[1] = a[1];\n    out[2] = a[2];\n    out[3] = a[4];\n    out[4] = a[5];\n    out[5] = a[6];\n    out[6] = a[8];\n    out[7] = a[9];\n    out[8] = a[10];\n    return out;\n}\n\n/**\n * Calculates a 3x3 matrix from the given quaternion\n *\n * @param {mat3} out mat3 receiving operation result\n * @param {quat} q Quaternion to create matrix from\n *\n * @returns {mat3} out\n */\nexport function fromQuat(out, q) {\n    let x = q[0],\n        y = q[1],\n        z = q[2],\n        w = q[3];\n    let x2 = x + x;\n    let y2 = y + y;\n    let z2 = z + z;\n\n    let xx = x * x2;\n    let yx = y * x2;\n    let yy = y * y2;\n    let zx = z * x2;\n    let zy = z * y2;\n    let zz = z * z2;\n    let wx = w * x2;\n    let wy = w * y2;\n    let wz = w * z2;\n\n    out[0] = 1 - yy - zz;\n    out[3] = yx - wz;\n    out[6] = zx + wy;\n\n    out[1] = yx + wz;\n    out[4] = 1 - xx - zz;\n    out[7] = zy - wx;\n\n    out[2] = zx - wy;\n    out[5] = zy + wx;\n    out[8] = 1 - xx - yy;\n\n    return out;\n}\n\n/**\n * Copy the values from one mat3 to another\n *\n * @param {mat3} out the receiving matrix\n * @param {mat3} a the source matrix\n * @returns {mat3} out\n */\nexport function copy(out, a) {\n    out[0] = a[0];\n    out[1] = a[1];\n    out[2] = a[2];\n    out[3] = a[3];\n    out[4] = a[4];\n    out[5] = a[5];\n    out[6] = a[6];\n    out[7] = a[7];\n    out[8] = a[8];\n    return out;\n}\n\n/**\n * Set the components of a mat3 to the given values\n *\n * @param {mat3} out the receiving matrix\n * @returns {mat3} out\n */\nexport function set(out, m00, m01, m02, m10, m11, m12, m20, m21, m22) {\n    out[0] = m00;\n    out[1] = m01;\n    out[2] = m02;\n    out[3] = m10;\n    out[4] = m11;\n    out[5] = m12;\n    out[6] = m20;\n    out[7] = m21;\n    out[8] = m22;\n    return out;\n}\n\n/**\n * Set a mat3 to the identity matrix\n *\n * @param {mat3} out the receiving matrix\n * @returns {mat3} out\n */\nexport function identity(out) {\n    out[0] = 1;\n    out[1] = 0;\n    out[2] = 0;\n    out[3] = 0;\n    out[4] = 1;\n    out[5] = 0;\n    out[6] = 0;\n    out[7] = 0;\n    out[8] = 1;\n    return out;\n}\n\n/**\n * Transpose the values of a mat3\n *\n * @param {mat3} out the receiving matrix\n * @param {mat3} a the source matrix\n * @returns {mat3} out\n */\nexport function transpose(out, a) {\n    // If we are transposing ourselves we can skip a few steps but have to cache some values\n    if (out === a) {\n        let a01 = a[1],\n            a02 = a[2],\n            a12 = a[5];\n        out[1] = a[3];\n        out[2] = a[6];\n        out[3] = a01;\n        out[5] = a[7];\n        out[6] = a02;\n        out[7] = a12;\n    } else {\n        out[0] = a[0];\n        out[1] = a[3];\n        out[2] = a[6];\n        out[3] = a[1];\n        out[4] = a[4];\n        out[5] = a[7];\n        out[6] = a[2];\n        out[7] = a[5];\n        out[8] = a[8];\n    }\n\n    return out;\n}\n\n/**\n * Inverts a mat3\n *\n * @param {mat3} out the receiving matrix\n * @param {mat3} a the source matrix\n * @returns {mat3} out\n */\nexport function invert(out, a) {\n    let a00 = a[0],\n        a01 = a[1],\n        a02 = a[2];\n    let a10 = a[3],\n        a11 = a[4],\n        a12 = a[5];\n    let a20 = a[6],\n        a21 = a[7],\n        a22 = a[8];\n\n    let b01 = a22 * a11 - a12 * a21;\n    let b11 = -a22 * a10 + a12 * a20;\n    let b21 = a21 * a10 - a11 * a20;\n\n    // Calculate the determinant\n    let det = a00 * b01 + a01 * b11 + a02 * b21;\n\n    if (!det) {\n        return null;\n    }\n    det = 1.0 / det;\n\n    out[0] = b01 * det;\n    out[1] = (-a22 * a01 + a02 * a21) * det;\n    out[2] = (a12 * a01 - a02 * a11) * det;\n    out[3] = b11 * det;\n    out[4] = (a22 * a00 - a02 * a20) * det;\n    out[5] = (-a12 * a00 + a02 * a10) * det;\n    out[6] = b21 * det;\n    out[7] = (-a21 * a00 + a01 * a20) * det;\n    out[8] = (a11 * a00 - a01 * a10) * det;\n    return out;\n}\n\n/**\n * Calculates the determinant of a mat3\n *\n * @param {mat3} a the source matrix\n * @returns {Number} determinant of a\n */\nexport function determinant(a) {\n    let a00 = a[0],\n        a01 = a[1],\n        a02 = a[2];\n    let a10 = a[3],\n        a11 = a[4],\n        a12 = a[5];\n    let a20 = a[6],\n        a21 = a[7],\n        a22 = a[8];\n\n    return a00 * (a22 * a11 - a12 * a21) + a01 * (-a22 * a10 + a12 * a20) + a02 * (a21 * a10 - a11 * a20);\n}\n\n/**\n * Multiplies two mat3's\n *\n * @param {mat3} out the receiving matrix\n * @param {mat3} a the first operand\n * @param {mat3} b the second operand\n * @returns {mat3} out\n */\nexport function multiply(out, a, b) {\n    let a00 = a[0],\n        a01 = a[1],\n        a02 = a[2];\n    let a10 = a[3],\n        a11 = a[4],\n        a12 = a[5];\n    let a20 = a[6],\n        a21 = a[7],\n        a22 = a[8];\n\n    let b00 = b[0],\n        b01 = b[1],\n        b02 = b[2];\n    let b10 = b[3],\n        b11 = b[4],\n        b12 = b[5];\n    let b20 = b[6],\n        b21 = b[7],\n        b22 = b[8];\n\n    out[0] = b00 * a00 + b01 * a10 + b02 * a20;\n    out[1] = b00 * a01 + b01 * a11 + b02 * a21;\n    out[2] = b00 * a02 + b01 * a12 + b02 * a22;\n\n    out[3] = b10 * a00 + b11 * a10 + b12 * a20;\n    out[4] = b10 * a01 + b11 * a11 + b12 * a21;\n    out[5] = b10 * a02 + b11 * a12 + b12 * a22;\n\n    out[6] = b20 * a00 + b21 * a10 + b22 * a20;\n    out[7] = b20 * a01 + b21 * a11 + b22 * a21;\n    out[8] = b20 * a02 + b21 * a12 + b22 * a22;\n    return out;\n}\n\n/**\n * Translate a mat3 by the given vector\n *\n * @param {mat3} out the receiving matrix\n * @param {mat3} a the matrix to translate\n * @param {vec2} v vector to translate by\n * @returns {mat3} out\n */\nexport function translate(out, a, v) {\n    let a00 = a[0],\n        a01 = a[1],\n        a02 = a[2],\n        a10 = a[3],\n        a11 = a[4],\n        a12 = a[5],\n        a20 = a[6],\n        a21 = a[7],\n        a22 = a[8],\n        x = v[0],\n        y = v[1];\n\n    out[0] = a00;\n    out[1] = a01;\n    out[2] = a02;\n\n    out[3] = a10;\n    out[4] = a11;\n    out[5] = a12;\n\n    out[6] = x * a00 + y * a10 + a20;\n    out[7] = x * a01 + y * a11 + a21;\n    out[8] = x * a02 + y * a12 + a22;\n    return out;\n}\n\n/**\n * Rotates a mat3 by the given angle\n *\n * @param {mat3} out the receiving matrix\n * @param {mat3} a the matrix to rotate\n * @param {Number} rad the angle to rotate the matrix by\n * @returns {mat3} out\n */\nexport function rotate(out, a, rad) {\n    let a00 = a[0],\n        a01 = a[1],\n        a02 = a[2],\n        a10 = a[3],\n        a11 = a[4],\n        a12 = a[5],\n        a20 = a[6],\n        a21 = a[7],\n        a22 = a[8],\n        s = Math.sin(rad),\n        c = Math.cos(rad);\n\n    out[0] = c * a00 + s * a10;\n    out[1] = c * a01 + s * a11;\n    out[2] = c * a02 + s * a12;\n\n    out[3] = c * a10 - s * a00;\n    out[4] = c * a11 - s * a01;\n    out[5] = c * a12 - s * a02;\n\n    out[6] = a20;\n    out[7] = a21;\n    out[8] = a22;\n    return out;\n}\n\n/**\n * Scales the mat3 by the dimensions in the given vec2\n *\n * @param {mat3} out the receiving matrix\n * @param {mat3} a the matrix to rotate\n * @param {vec2} v the vec2 to scale the matrix by\n * @returns {mat3} out\n **/\nexport function scale(out, a, v) {\n    let x = v[0],\n        y = v[1];\n\n    out[0] = x * a[0];\n    out[1] = x * a[1];\n    out[2] = x * a[2];\n\n    out[3] = y * a[3];\n    out[4] = y * a[4];\n    out[5] = y * a[5];\n\n    out[6] = a[6];\n    out[7] = a[7];\n    out[8] = a[8];\n    return out;\n}\n\n/**\n * Calculates a 3x3 normal matrix (transpose inverse) from the 4x4 matrix\n *\n * @param {mat3} out mat3 receiving operation result\n * @param {mat4} a Mat4 to derive the normal matrix from\n *\n * @returns {mat3} out\n */\nexport function normalFromMat4(out, a) {\n    let a00 = a[0],\n        a01 = a[1],\n        a02 = a[2],\n        a03 = a[3];\n    let a10 = a[4],\n        a11 = a[5],\n        a12 = a[6],\n        a13 = a[7];\n    let a20 = a[8],\n        a21 = a[9],\n        a22 = a[10],\n        a23 = a[11];\n    let a30 = a[12],\n        a31 = a[13],\n        a32 = a[14],\n        a33 = a[15];\n\n    let b00 = a00 * a11 - a01 * a10;\n    let b01 = a00 * a12 - a02 * a10;\n    let b02 = a00 * a13 - a03 * a10;\n    let b03 = a01 * a12 - a02 * a11;\n    let b04 = a01 * a13 - a03 * a11;\n    let b05 = a02 * a13 - a03 * a12;\n    let b06 = a20 * a31 - a21 * a30;\n    let b07 = a20 * a32 - a22 * a30;\n    let b08 = a20 * a33 - a23 * a30;\n    let b09 = a21 * a32 - a22 * a31;\n    let b10 = a21 * a33 - a23 * a31;\n    let b11 = a22 * a33 - a23 * a32;\n\n    // Calculate the determinant\n    let det = b00 * b11 - b01 * b10 + b02 * b09 + b03 * b08 - b04 * b07 + b05 * b06;\n\n    if (!det) {\n        return null;\n    }\n    det = 1.0 / det;\n\n    out[0] = (a11 * b11 - a12 * b10 + a13 * b09) * det;\n    out[1] = (a12 * b08 - a10 * b11 - a13 * b07) * det;\n    out[2] = (a10 * b10 - a11 * b08 + a13 * b06) * det;\n\n    out[3] = (a02 * b10 - a01 * b11 - a03 * b09) * det;\n    out[4] = (a00 * b11 - a02 * b08 + a03 * b07) * det;\n    out[5] = (a01 * b08 - a00 * b10 - a03 * b06) * det;\n\n    out[6] = (a31 * b05 - a32 * b04 + a33 * b03) * det;\n    out[7] = (a32 * b02 - a30 * b05 - a33 * b01) * det;\n    out[8] = (a30 * b04 - a31 * b02 + a33 * b00) * det;\n\n    return out;\n}\n\n/**\n * Generates a 2D projection matrix with the given bounds\n *\n * @param {mat3} out mat3 frustum matrix will be written into\n * @param {number} width Width of your gl context\n * @param {number} height Height of gl context\n * @returns {mat3} out\n */\nexport function projection(out, width, height) {\n    out[0] = 2 / width;\n    out[1] = 0;\n    out[2] = 0;\n    out[3] = 0;\n    out[4] = -2 / height;\n    out[5] = 0;\n    out[6] = -1;\n    out[7] = 1;\n    out[8] = 1;\n    return out;\n}\n\n/**\n * Adds two mat3's\n *\n * @param {mat3} out the receiving matrix\n * @param {mat3} a the first operand\n * @param {mat3} b the second operand\n * @returns {mat3} out\n */\nexport function add(out, a, b) {\n    out[0] = a[0] + b[0];\n    out[1] = a[1] + b[1];\n    out[2] = a[2] + b[2];\n    out[3] = a[3] + b[3];\n    out[4] = a[4] + b[4];\n    out[5] = a[5] + b[5];\n    out[6] = a[6] + b[6];\n    out[7] = a[7] + b[7];\n    out[8] = a[8] + b[8];\n    return out;\n}\n\n/**\n * Subtracts matrix b from matrix a\n *\n * @param {mat3} out the receiving matrix\n * @param {mat3} a the first operand\n * @param {mat3} b the second operand\n * @returns {mat3} out\n */\nexport function subtract(out, a, b) {\n    out[0] = a[0] - b[0];\n    out[1] = a[1] - b[1];\n    out[2] = a[2] - b[2];\n    out[3] = a[3] - b[3];\n    out[4] = a[4] - b[4];\n    out[5] = a[5] - b[5];\n    out[6] = a[6] - b[6];\n    out[7] = a[7] - b[7];\n    out[8] = a[8] - b[8];\n    return out;\n}\n\n/**\n * Multiply each element of the matrix by a scalar.\n *\n * @param {mat3} out the receiving matrix\n * @param {mat3} a the matrix to scale\n * @param {Number} b amount to scale the matrix's elements by\n * @returns {mat3} out\n */\nexport function multiplyScalar(out, a, b) {\n    out[0] = a[0] * b;\n    out[1] = a[1] * b;\n    out[2] = a[2] * b;\n    out[3] = a[3] * b;\n    out[4] = a[4] * b;\n    out[5] = a[5] * b;\n    out[6] = a[6] * b;\n    out[7] = a[7] * b;\n    out[8] = a[8] * b;\n    return out;\n}\n","import * as Mat3Func from './functions/Mat3Func.js';\n\nexport class Mat3 extends Array {\n    constructor(m00 = 1, m01 = 0, m02 = 0, m10 = 0, m11 = 1, m12 = 0, m20 = 0, m21 = 0, m22 = 1) {\n        super(m00, m01, m02, m10, m11, m12, m20, m21, m22);\n        return this;\n    }\n\n    set(m00, m01, m02, m10, m11, m12, m20, m21, m22) {\n        if (m00.length) return this.copy(m00);\n        Mat3Func.set(this, m00, m01, m02, m10, m11, m12, m20, m21, m22);\n        return this;\n    }\n\n    translate(v, m = this) {\n        Mat3Func.translate(this, m, v);\n        return this;\n    }\n\n    rotate(v, m = this) {\n        Mat3Func.rotate(this, m, v);\n        return this;\n    }\n\n    scale(v, m = this) {\n        Mat3Func.scale(this, m, v);\n        return this;\n    }\n\n    multiply(ma, mb) {\n        if (mb) {\n            Mat3Func.multiply(this, ma, mb);\n        } else {\n            Mat3Func.multiply(this, this, ma);\n        }\n        return this;\n    }\n\n    identity() {\n        Mat3Func.identity(this);\n        return this;\n    }\n\n    copy(m) {\n        Mat3Func.copy(this, m);\n        return this;\n    }\n\n    fromMatrix4(m) {\n        Mat3Func.fromMat4(this, m);\n        return this;\n    }\n\n    fromQuaternion(q) {\n        Mat3Func.fromQuat(this, q);\n        return this;\n    }\n\n    fromBasis(vec3a, vec3b, vec3c) {\n        this.set(vec3a[0], vec3a[1], vec3a[2], vec3b[0], vec3b[1], vec3b[2], vec3c[0], vec3c[1], vec3c[2]);\n        return this;\n    }\n\n    inverse(m = this) {\n        Mat3Func.invert(this, m);\n        return this;\n    }\n\n    getNormalMatrix(m) {\n        Mat3Func.normalFromMat4(this, m);\n        return this;\n    }\n}\n","import { Transform } from './Transform.js';\nimport { Mat3 } from '../math/Mat3.js';\nimport { Mat4 } from '../math/Mat4.js';\n\nlet ID = 0;\n\nexport class Mesh extends Transform {\n    constructor(gl, { geometry, program, mode = gl.TRIANGLES, frustumCulled = true, renderOrder = 0 } = {}) {\n        super();\n        if (!gl.canvas) console.error('gl not passed as first argument to Mesh');\n        this.gl = gl;\n        this.id = ID++;\n        this.geometry = geometry;\n        this.program = program;\n        this.mode = mode;\n\n        // Used to skip frustum culling\n        this.frustumCulled = frustumCulled;\n\n        // Override sorting to force an order\n        this.renderOrder = renderOrder;\n        this.modelViewMatrix = new Mat4();\n        this.normalMatrix = new Mat3();\n        this.beforeRenderCallbacks = [];\n        this.afterRenderCallbacks = [];\n    }\n\n    onBeforeRender(f) {\n        this.beforeRenderCallbacks.push(f);\n        return this;\n    }\n\n    onAfterRender(f) {\n        this.afterRenderCallbacks.push(f);\n        return this;\n    }\n\n    draw({ camera } = {}) {\n        if (camera) {\n            // Add empty matrix uniforms to program if unset\n            if (!this.program.uniforms.modelMatrix) {\n                Object.assign(this.program.uniforms, {\n                    modelMatrix: { value: null },\n                    viewMatrix: { value: null },\n                    modelViewMatrix: { value: null },\n                    normalMatrix: { value: null },\n                    projectionMatrix: { value: null },\n                    cameraPosition: { value: null },\n                });\n            }\n\n            // Set the matrix uniforms\n            this.program.uniforms.projectionMatrix.value = camera.projectionMatrix;\n            this.program.uniforms.cameraPosition.value = camera.worldPosition;\n            this.program.uniforms.viewMatrix.value = camera.viewMatrix;\n            this.modelViewMatrix.multiply(camera.viewMatrix, this.worldMatrix);\n            this.normalMatrix.getNormalMatrix(this.modelViewMatrix);\n            this.program.uniforms.modelMatrix.value = this.worldMatrix;\n            this.program.uniforms.modelViewMatrix.value = this.modelViewMatrix;\n            this.program.uniforms.normalMatrix.value = this.normalMatrix;\n        }\n        this.beforeRenderCallbacks.forEach((f) => f && f({ mesh: this, camera }));\n\n        // determine if faces need to be flipped - when mesh scaled negatively\n        let flipFaces = this.program.cullFace && this.worldMatrix.determinant() < 0;\n        this.program.use({ flipFaces });\n        this.geometry.draw({ mode: this.mode, program: this.program });\n        this.afterRenderCallbacks.forEach((f) => f && f({ mesh: this, camera }));\n    }\n}\n","// TODO: delete texture\n// TODO: use texSubImage2D for updates (video or when loaded)\n// TODO: need? encoding = linearEncoding\n// TODO: support non-compressed mipmaps uploads\n\nconst emptyPixel = new Uint8Array(4);\n\nfunction isPowerOf2(value) {\n    return (value & (value - 1)) === 0;\n}\n\nlet ID = 1;\n\nexport class Texture {\n    constructor(\n        gl,\n        {\n            image,\n            target = gl.TEXTURE_2D,\n            type = gl.UNSIGNED_BYTE,\n            format = gl.RGBA,\n            internalFormat = format,\n            wrapS = gl.CLAMP_TO_EDGE,\n            wrapT = gl.CLAMP_TO_EDGE,\n            wrapR = gl.CLAMP_TO_EDGE,\n            generateMipmaps = target === (gl.TEXTURE_2D || gl.TEXTURE_CUBE_MAP),\n            minFilter = generateMipmaps ? gl.NEAREST_MIPMAP_LINEAR : gl.LINEAR,\n            magFilter = gl.LINEAR,\n            premultiplyAlpha = false,\n            unpackAlignment = 4,\n            flipY = target == (gl.TEXTURE_2D || gl.TEXTURE_3D) ? true : false,\n            anisotropy = 0,\n            level = 0,\n            width, // used for RenderTargets or Data Textures\n            height = width,\n            length = 1,\n        } = {}\n    ) {\n        this.gl = gl;\n        this.id = ID++;\n\n        this.image = image;\n        this.target = target;\n        this.type = type;\n        this.format = format;\n        this.internalFormat = internalFormat;\n        this.minFilter = minFilter;\n        this.magFilter = magFilter;\n        this.wrapS = wrapS;\n        this.wrapT = wrapT;\n        this.wrapR = wrapR;\n        this.generateMipmaps = generateMipmaps;\n        this.premultiplyAlpha = premultiplyAlpha;\n        this.unpackAlignment = unpackAlignment;\n        this.flipY = flipY;\n        this.anisotropy = Math.min(anisotropy, this.gl.renderer.parameters.maxAnisotropy);\n        this.level = level;\n        this.width = width;\n        this.height = height;\n        this.length = length;\n        this.texture = this.gl.createTexture();\n\n        this.store = {\n            image: null,\n        };\n\n        // Alias for state store to avoid redundant calls for global state\n        this.glState = this.gl.renderer.state;\n\n        // State store to avoid redundant calls for per-texture state\n        this.state = {};\n        this.state.minFilter = this.gl.NEAREST_MIPMAP_LINEAR;\n        this.state.magFilter = this.gl.LINEAR;\n        this.state.wrapS = this.gl.REPEAT;\n        this.state.wrapT = this.gl.REPEAT;\n        this.state.anisotropy = 0;\n    }\n\n    bind() {\n        // Already bound to active texture unit\n        if (this.glState.textureUnits[this.glState.activeTextureUnit] === this.id) return;\n        this.gl.bindTexture(this.target, this.texture);\n        this.glState.textureUnits[this.glState.activeTextureUnit] = this.id;\n    }\n\n    update(textureUnit = 0) {\n        const needsUpdate = !(this.image === this.store.image && !this.needsUpdate);\n\n        // Make sure that texture is bound to its texture unit\n        if (needsUpdate || this.glState.textureUnits[textureUnit] !== this.id) {\n            // set active texture unit to perform texture functions\n            this.gl.renderer.activeTexture(textureUnit);\n            this.bind();\n        }\n\n        if (!needsUpdate) return;\n        this.needsUpdate = false;\n\n        if (this.flipY !== this.glState.flipY) {\n            this.gl.pixelStorei(this.gl.UNPACK_FLIP_Y_WEBGL, this.flipY);\n            this.glState.flipY = this.flipY;\n        }\n\n        if (this.premultiplyAlpha !== this.glState.premultiplyAlpha) {\n            this.gl.pixelStorei(this.gl.UNPACK_PREMULTIPLY_ALPHA_WEBGL, this.premultiplyAlpha);\n            this.glState.premultiplyAlpha = this.premultiplyAlpha;\n        }\n\n        if (this.unpackAlignment !== this.glState.unpackAlignment) {\n            this.gl.pixelStorei(this.gl.UNPACK_ALIGNMENT, this.unpackAlignment);\n            this.glState.unpackAlignment = this.unpackAlignment;\n        }\n\n        if (this.minFilter !== this.state.minFilter) {\n            this.gl.texParameteri(this.target, this.gl.TEXTURE_MIN_FILTER, this.minFilter);\n            this.state.minFilter = this.minFilter;\n        }\n\n        if (this.magFilter !== this.state.magFilter) {\n            this.gl.texParameteri(this.target, this.gl.TEXTURE_MAG_FILTER, this.magFilter);\n            this.state.magFilter = this.magFilter;\n        }\n\n        if (this.wrapS !== this.state.wrapS) {\n            this.gl.texParameteri(this.target, this.gl.TEXTURE_WRAP_S, this.wrapS);\n            this.state.wrapS = this.wrapS;\n        }\n\n        if (this.wrapT !== this.state.wrapT) {\n            this.gl.texParameteri(this.target, this.gl.TEXTURE_WRAP_T, this.wrapT);\n            this.state.wrapT = this.wrapT;\n        }\n\n        if (this.wrapR !== this.state.wrapR) {\n            this.gl.texParameteri(this.target, this.gl.TEXTURE_WRAP_R, this.wrapR);\n            this.state.wrapR = this.wrapR;\n        }\n\n        if (this.anisotropy && this.anisotropy !== this.state.anisotropy) {\n            this.gl.texParameterf(this.target, this.gl.renderer.getExtension('EXT_texture_filter_anisotropic').TEXTURE_MAX_ANISOTROPY_EXT, this.anisotropy);\n            this.state.anisotropy = this.anisotropy;\n        }\n\n        if (this.image) {\n            if (this.image.width) {\n                this.width = this.image.width;\n                this.height = this.image.height;\n            }\n\n            if (this.target === this.gl.TEXTURE_CUBE_MAP) {\n                // For cube maps\n                for (let i = 0; i < 6; i++) {\n                    this.gl.texImage2D(this.gl.TEXTURE_CUBE_MAP_POSITIVE_X + i, this.level, this.internalFormat, this.format, this.type, this.image[i]);\n                }\n            } else if (ArrayBuffer.isView(this.image)) {\n                // Data texture\n                if (this.target === this.gl.TEXTURE_2D) {\n                    this.gl.texImage2D(this.target, this.level, this.internalFormat, this.width, this.height, 0, this.format, this.type, this.image);\n                } else if (this.target === this.gl.TEXTURE_2D_ARRAY || this.target === this.gl.TEXTURE_3D) {\n                    this.gl.texImage3D(this.target, this.level, this.internalFormat, this.width, this.height, this.length, 0, this.format, this.type, this.image);\n                }\n            } else if (this.image.isCompressedTexture) {\n                // Compressed texture\n                for (let level = 0; level < this.image.length; level++) {\n                    this.gl.compressedTexImage2D(this.target, level, this.internalFormat, this.image[level].width, this.image[level].height, 0, this.image[level].data);\n                }\n            } else {\n                // Regular texture\n                if (this.target === this.gl.TEXTURE_2D) {\n                    this.gl.texImage2D(this.target, this.level, this.internalFormat, this.format, this.type, this.image);\n                } else {\n                    this.gl.texImage3D(this.target, this.level, this.internalFormat, this.width, this.height, this.length, 0, this.format, this.type, this.image);\n                }\n            }\n\n            if (this.generateMipmaps) {\n                // For WebGL1, if not a power of 2, turn off mips, set wrapping to clamp to edge and minFilter to linear\n                if (!this.gl.renderer.isWebgl2 && (!isPowerOf2(this.image.width) || !isPowerOf2(this.image.height))) {\n                    this.generateMipmaps = false;\n                    this.wrapS = this.wrapT = this.gl.CLAMP_TO_EDGE;\n                    this.minFilter = this.gl.LINEAR;\n                } else {\n                    this.gl.generateMipmap(this.target);\n                }\n            }\n\n            // Callback for when data is pushed to GPU\n            this.onUpdate && this.onUpdate();\n        } else {\n            if (this.target === this.gl.TEXTURE_CUBE_MAP) {\n                // Upload empty pixel for each side while no image to avoid errors while image or video loading\n                for (let i = 0; i < 6; i++) {\n                    this.gl.texImage2D(this.gl.TEXTURE_CUBE_MAP_POSITIVE_X + i, 0, this.gl.RGBA, 1, 1, 0, this.gl.RGBA, this.gl.UNSIGNED_BYTE, emptyPixel);\n                }\n            } else if (this.width) {\n                // image intentionally left null for RenderTarget\n                if (this.target === this.gl.TEXTURE_2D) {\n                    this.gl.texImage2D(this.target, this.level, this.internalFormat, this.width, this.height, 0, this.format, this.type, null);\n                } else {\n                    this.gl.texImage3D(this.target, this.level, this.internalFormat, this.width, this.height, this.length, 0, this.format, this.type, null);\n                }\n            } else {\n                // Upload empty pixel if no image to avoid errors while image or video loading\n                this.gl.texImage2D(this.target, 0, this.gl.RGBA, 1, 1, 0, this.gl.RGBA, this.gl.UNSIGNED_BYTE, emptyPixel);\n            }\n        }\n        this.store.image = this.image;\n    }\n}\n","import { Geometry } from '../core/Geometry.js';\n\nexport class Plane extends Geometry {\n    constructor(gl, { width = 1, height = 1, widthSegments = 1, heightSegments = 1, attributes = {} } = {}) {\n        const wSegs = widthSegments;\n        const hSegs = heightSegments;\n\n        // Determine length of arrays\n        const num = (wSegs + 1) * (hSegs + 1);\n        const numIndices = wSegs * hSegs * 6;\n\n        // Generate empty arrays once\n        const position = new Float32Array(num * 3);\n        const normal = new Float32Array(num * 3);\n        const uv = new Float32Array(num * 2);\n        const index = numIndices > 65536 ? new Uint32Array(numIndices) : new Uint16Array(numIndices);\n\n        Plane.buildPlane(position, normal, uv, index, width, height, 0, wSegs, hSegs);\n\n        Object.assign(attributes, {\n            position: { size: 3, data: position },\n            normal: { size: 3, data: normal },\n            uv: { size: 2, data: uv },\n            index: { data: index },\n        });\n\n        super(gl, attributes);\n    }\n\n    static buildPlane(position, normal, uv, index, width, height, depth, wSegs, hSegs, u = 0, v = 1, w = 2, uDir = 1, vDir = -1, i = 0, ii = 0) {\n        const io = i;\n        const segW = width / wSegs;\n        const segH = height / hSegs;\n\n        for (let iy = 0; iy <= hSegs; iy++) {\n            let y = iy * segH - height / 2;\n            for (let ix = 0; ix <= wSegs; ix++, i++) {\n                let x = ix * segW - width / 2;\n\n                position[i * 3 + u] = x * uDir;\n                position[i * 3 + v] = y * vDir;\n                position[i * 3 + w] = depth / 2;\n\n                normal[i * 3 + u] = 0;\n                normal[i * 3 + v] = 0;\n                normal[i * 3 + w] = depth >= 0 ? 1 : -1;\n\n                uv[i * 2] = ix / wSegs;\n                uv[i * 2 + 1] = 1 - iy / hSegs;\n\n                if (iy === hSegs || ix === wSegs) continue;\n                let a = io + ix + iy * (wSegs + 1);\n                let b = io + ix + (iy + 1) * (wSegs + 1);\n                let c = io + ix + (iy + 1) * (wSegs + 1) + 1;\n                let d = io + ix + iy * (wSegs + 1) + 1;\n\n                index[ii * 6] = a;\n                index[ii * 6 + 1] = b;\n                index[ii * 6 + 2] = d;\n                index[ii * 6 + 3] = b;\n                index[ii * 6 + 4] = c;\n                index[ii * 6 + 5] = d;\n                ii++;\n            }\n        }\n    }\n}\n","// Based from ThreeJS' OrbitControls class, rewritten using es6 with some additions and subtractions.\n// TODO: abstract event handlers so can be fed from other sources\n// TODO: make scroll zoom more accurate than just >/< zero\n// TODO: be able to pass in new camera position\n\nimport { Vec3 } from '../math/Vec3.js';\nimport { Vec2 } from '../math/Vec2.js';\n\nconst STATE = { NONE: -1, ROTATE: 0, DOLLY: 1, PAN: 2, DOLLY_PAN: 3 };\nconst tempVec3 = /* @__PURE__ */ new Vec3();\nconst tempVec2a = /* @__PURE__ */ new Vec2();\nconst tempVec2b = /* @__PURE__ */ new Vec2();\n\nexport function Orbit(\n    object,\n    {\n        element = document,\n        enabled = true,\n        target = new Vec3(),\n        ease = 0.25,\n        inertia = 0.85,\n        enableRotate = true,\n        rotateSpeed = 0.1,\n        autoRotate = false,\n        autoRotateSpeed = 1.0,\n        enableZoom = true,\n        zoomSpeed = 1,\n        zoomStyle = 'dolly',\n        enablePan = true,\n        panSpeed = 0.1,\n        minPolarAngle = 0,\n        maxPolarAngle = Math.PI,\n        minAzimuthAngle = -Infinity,\n        maxAzimuthAngle = Infinity,\n        minDistance = 0,\n        maxDistance = Infinity,\n    } = {}\n) {\n    this.enabled = enabled;\n    this.target = target;\n    this.zoomStyle = zoomStyle;\n\n    // Catch attempts to disable - set to 1 so has no effect\n    ease = ease || 1;\n    inertia = inertia || 0;\n\n    this.minDistance = minDistance;\n    this.maxDistance = maxDistance;\n\n    // current position in sphericalTarget coordinates\n    const sphericalDelta = { radius: 1, phi: 0, theta: 0 };\n    const sphericalTarget = { radius: 1, phi: 0, theta: 0 };\n    const spherical = { radius: 1, phi: 0, theta: 0 };\n    const panDelta = new Vec3();\n\n    // Grab initial position values\n    const offset = new Vec3();\n    offset.copy(object.position).sub(this.target);\n    spherical.radius = sphericalTarget.radius = offset.distance();\n    spherical.theta = sphericalTarget.theta = Math.atan2(offset.x, offset.z);\n    spherical.phi = sphericalTarget.phi = Math.acos(Math.min(Math.max(offset.y / sphericalTarget.radius, -1), 1));\n\n    this.offset = offset;\n\n    this.update = () => {\n        if (autoRotate) {\n            handleAutoRotate();\n        }\n\n        // apply delta\n        sphericalTarget.radius *= sphericalDelta.radius;\n        sphericalTarget.theta += sphericalDelta.theta;\n        sphericalTarget.phi += sphericalDelta.phi;\n\n        // apply boundaries\n        sphericalTarget.theta = Math.max(minAzimuthAngle, Math.min(maxAzimuthAngle, sphericalTarget.theta));\n        sphericalTarget.phi = Math.max(minPolarAngle, Math.min(maxPolarAngle, sphericalTarget.phi));\n        sphericalTarget.radius = Math.max(this.minDistance, Math.min(this.maxDistance, sphericalTarget.radius));\n\n        // ease values\n        spherical.phi += (sphericalTarget.phi - spherical.phi) * ease;\n        spherical.theta += (sphericalTarget.theta - spherical.theta) * ease;\n        spherical.radius += (sphericalTarget.radius - spherical.radius) * ease;\n\n        // apply pan to target. As offset is relative to target, it also shifts\n        this.target.add(panDelta);\n\n        // apply rotation to offset\n        let sinPhiRadius = spherical.radius * Math.sin(Math.max(0.000001, spherical.phi));\n        offset.x = sinPhiRadius * Math.sin(spherical.theta);\n        offset.y = spherical.radius * Math.cos(spherical.phi);\n        offset.z = sinPhiRadius * Math.cos(spherical.theta);\n\n        // Apply updated values to object\n        object.position.copy(this.target).add(offset);\n        object.lookAt(this.target);\n\n        // Apply inertia to values\n        sphericalDelta.theta *= inertia;\n        sphericalDelta.phi *= inertia;\n        panDelta.multiply(inertia);\n\n        // Reset scale every frame to avoid applying scale multiple times\n        sphericalDelta.radius = 1;\n    };\n\n    // Updates internals with new position\n    this.forcePosition = () => {\n        offset.copy(object.position).sub(this.target);\n        spherical.radius = sphericalTarget.radius = offset.distance();\n        spherical.theta = sphericalTarget.theta = Math.atan2(offset.x, offset.z);\n        spherical.phi = sphericalTarget.phi = Math.acos(Math.min(Math.max(offset.y / sphericalTarget.radius, -1), 1));\n        object.lookAt(this.target);\n    };\n\n    // Everything below here just updates panDelta and sphericalDelta\n    // Using those two objects' values, the orbit is calculated\n\n    const rotateStart = new Vec2();\n    const panStart = new Vec2();\n    const dollyStart = new Vec2();\n\n    let state = STATE.NONE;\n    this.mouseButtons = { ORBIT: 0, ZOOM: 1, PAN: 2 };\n\n    function getZoomScale() {\n        return Math.pow(0.95, zoomSpeed);\n    }\n\n    function panLeft(distance, m) {\n        tempVec3.set(m[0], m[1], m[2]);\n        tempVec3.multiply(-distance);\n        panDelta.add(tempVec3);\n    }\n\n    function panUp(distance, m) {\n        tempVec3.set(m[4], m[5], m[6]);\n        tempVec3.multiply(distance);\n        panDelta.add(tempVec3);\n    }\n\n    const pan = (deltaX, deltaY) => {\n        let el = element === document ? document.body : element;\n        tempVec3.copy(object.position).sub(this.target);\n        let targetDistance = tempVec3.distance();\n        targetDistance *= Math.tan((((object.fov || 45) / 2) * Math.PI) / 180.0);\n        panLeft((2 * deltaX * targetDistance) / el.clientHeight, object.matrix);\n        panUp((2 * deltaY * targetDistance) / el.clientHeight, object.matrix);\n    };\n\n    const dolly = (dollyScale) => {\n        if (this.zoomStyle === 'dolly') sphericalDelta.radius /= dollyScale;\n        else {\n            object.fov /= dollyScale;\n            if (object.type === 'orthographic') object.orthographic();\n            else object.perspective();\n        }\n    };\n\n    function handleAutoRotate() {\n        const angle = ((2 * Math.PI) / 60 / 60) * autoRotateSpeed;\n        sphericalDelta.theta -= angle;\n    }\n\n    function handleMoveRotate(x, y) {\n        tempVec2a.set(x, y);\n        tempVec2b.sub(tempVec2a, rotateStart).multiply(rotateSpeed);\n        let el = element === document ? document.body : element;\n        sphericalDelta.theta -= (2 * Math.PI * tempVec2b.x) / el.clientHeight;\n        sphericalDelta.phi -= (2 * Math.PI * tempVec2b.y) / el.clientHeight;\n        rotateStart.copy(tempVec2a);\n    }\n\n    function handleMouseMoveDolly(e) {\n        tempVec2a.set(e.clientX, e.clientY);\n        tempVec2b.sub(tempVec2a, dollyStart);\n        if (tempVec2b.y > 0) {\n            dolly(getZoomScale());\n        } else if (tempVec2b.y < 0) {\n            dolly(1 / getZoomScale());\n        }\n        dollyStart.copy(tempVec2a);\n    }\n\n    function handleMovePan(x, y) {\n        tempVec2a.set(x, y);\n        tempVec2b.sub(tempVec2a, panStart).multiply(panSpeed);\n        pan(tempVec2b.x, tempVec2b.y);\n        panStart.copy(tempVec2a);\n    }\n\n    function handleTouchStartDollyPan(e) {\n        if (enableZoom) {\n            let dx = e.touches[0].pageX - e.touches[1].pageX;\n            let dy = e.touches[0].pageY - e.touches[1].pageY;\n            let distance = Math.sqrt(dx * dx + dy * dy);\n            dollyStart.set(0, distance);\n        }\n\n        if (enablePan) {\n            let x = 0.5 * (e.touches[0].pageX + e.touches[1].pageX);\n            let y = 0.5 * (e.touches[0].pageY + e.touches[1].pageY);\n            panStart.set(x, y);\n        }\n    }\n\n    function handleTouchMoveDollyPan(e) {\n        if (enableZoom) {\n            let dx = e.touches[0].pageX - e.touches[1].pageX;\n            let dy = e.touches[0].pageY - e.touches[1].pageY;\n            let distance = Math.sqrt(dx * dx + dy * dy);\n            tempVec2a.set(0, distance);\n            tempVec2b.set(0, Math.pow(tempVec2a.y / dollyStart.y, zoomSpeed));\n            dolly(tempVec2b.y);\n            dollyStart.copy(tempVec2a);\n        }\n\n        if (enablePan) {\n            let x = 0.5 * (e.touches[0].pageX + e.touches[1].pageX);\n            let y = 0.5 * (e.touches[0].pageY + e.touches[1].pageY);\n            handleMovePan(x, y);\n        }\n    }\n\n    const onMouseDown = (e) => {\n        if (!this.enabled) return;\n\n        switch (e.button) {\n            case this.mouseButtons.ORBIT:\n                if (enableRotate === false) return;\n                rotateStart.set(e.clientX, e.clientY);\n                state = STATE.ROTATE;\n                break;\n            case this.mouseButtons.ZOOM:\n                if (enableZoom === false) return;\n                dollyStart.set(e.clientX, e.clientY);\n                state = STATE.DOLLY;\n                break;\n            case this.mouseButtons.PAN:\n                if (enablePan === false) return;\n                panStart.set(e.clientX, e.clientY);\n                state = STATE.PAN;\n                break;\n        }\n\n        if (state !== STATE.NONE) {\n            window.addEventListener('mousemove', onMouseMove, false);\n            window.addEventListener('mouseup', onMouseUp, false);\n        }\n    };\n\n    const onMouseMove = (e) => {\n        if (!this.enabled) return;\n\n        switch (state) {\n            case STATE.ROTATE:\n                if (enableRotate === false) return;\n                handleMoveRotate(e.clientX, e.clientY);\n                break;\n            case STATE.DOLLY:\n                if (enableZoom === false) return;\n                handleMouseMoveDolly(e);\n                break;\n            case STATE.PAN:\n                if (enablePan === false) return;\n                handleMovePan(e.clientX, e.clientY);\n                break;\n        }\n    };\n\n    const onMouseUp = () => {\n        window.removeEventListener('mousemove', onMouseMove, false);\n        window.removeEventListener('mouseup', onMouseUp, false);\n        state = STATE.NONE;\n    };\n\n    const onMouseWheel = (e) => {\n        if (!this.enabled || !enableZoom || (state !== STATE.NONE && state !== STATE.ROTATE)) return;\n        e.stopPropagation();\n        e.preventDefault();\n\n        if (e.deltaY < 0) {\n            dolly(1 / getZoomScale());\n        } else if (e.deltaY > 0) {\n            dolly(getZoomScale());\n        }\n    };\n\n    const onTouchStart = (e) => {\n        if (!this.enabled) return;\n        e.preventDefault();\n\n        switch (e.touches.length) {\n            case 1:\n                if (enableRotate === false) return;\n                rotateStart.set(e.touches[0].pageX, e.touches[0].pageY);\n                state = STATE.ROTATE;\n                break;\n            case 2:\n                if (enableZoom === false && enablePan === false) return;\n                handleTouchStartDollyPan(e);\n                state = STATE.DOLLY_PAN;\n                break;\n            default:\n                state = STATE.NONE;\n        }\n    };\n\n    const onTouchMove = (e) => {\n        if (!this.enabled) return;\n        e.preventDefault();\n        e.stopPropagation();\n\n        switch (e.touches.length) {\n            case 1:\n                if (enableRotate === false) return;\n                handleMoveRotate(e.touches[0].pageX, e.touches[0].pageY);\n                break;\n            case 2:\n                if (enableZoom === false && enablePan === false) return;\n                handleTouchMoveDollyPan(e);\n                break;\n            default:\n                state = STATE.NONE;\n        }\n    };\n\n    const onTouchEnd = () => {\n        if (!this.enabled) return;\n        state = STATE.NONE;\n    };\n\n    const onContextMenu = (e) => {\n        if (!this.enabled) return;\n        e.preventDefault();\n    };\n\n    function addHandlers() {\n        element.addEventListener('contextmenu', onContextMenu, false);\n        element.addEventListener('mousedown', onMouseDown, false);\n        element.addEventListener('wheel', onMouseWheel, { passive: false });\n        element.addEventListener('touchstart', onTouchStart, { passive: false });\n        element.addEventListener('touchend', onTouchEnd, false);\n        element.addEventListener('touchmove', onTouchMove, { passive: false });\n    }\n\n    this.remove = function () {\n        element.removeEventListener('contextmenu', onContextMenu);\n        element.removeEventListener('mousedown', onMouseDown);\n        element.removeEventListener('wheel', onMouseWheel);\n        element.removeEventListener('touchstart', onTouchStart);\n        element.removeEventListener('touchend', onTouchEnd);\n        element.removeEventListener('touchmove', onTouchMove);\n        window.removeEventListener('mousemove', onMouseMove);\n        window.removeEventListener('mouseup', onMouseUp);\n    };\n\n    addHandlers();\n}\n","import { Vec3 } from '../math/Vec3.js';\n\nconst CATMULLROM = 'catmullrom';\nconst CUBICBEZIER = 'cubicbezier';\nconst QUADRATICBEZIER = 'quadraticbezier';\n\n// temp\nconst _a0 = /* @__PURE__ */ new Vec3(),\n    _a1 = /* @__PURE__ */ new Vec3(),\n    _a2 = /* @__PURE__ */ new Vec3(),\n    _a3 = /* @__PURE__ */ new Vec3();\n\n/**\n * Get the control points of cubic bezier curve.\n * @param {*} i\n * @param {*} a\n * @param {*} b\n */\nfunction getCtrlPoint(points, i, a = 0.168, b = 0.168) {\n    if (i < 1) {\n        _a0.sub(points[1], points[0]).scale(a).add(points[0]);\n    } else {\n        _a0.sub(points[i + 1], points[i - 1])\n            .scale(a)\n            .add(points[i]);\n    }\n    if (i > points.length - 3) {\n        const last = points.length - 1;\n        _a1.sub(points[last - 1], points[last])\n            .scale(b)\n            .add(points[last]);\n    } else {\n        _a1.sub(points[i], points[i + 2])\n            .scale(b)\n            .add(points[i + 1]);\n    }\n    return [_a0.clone(), _a1.clone()];\n}\n\nfunction getQuadraticBezierPoint(t, p0, c0, p1) {\n    const k = 1 - t;\n    _a0.copy(p0).scale(k ** 2);\n    _a1.copy(c0).scale(2 * k * t);\n    _a2.copy(p1).scale(t ** 2);\n    const ret = new Vec3();\n    ret.add(_a0, _a1).add(_a2);\n    return ret;\n}\n\nfunction getCubicBezierPoint(t, p0, c0, c1, p1) {\n    const k = 1 - t;\n    _a0.copy(p0).scale(k ** 3);\n    _a1.copy(c0).scale(3 * k ** 2 * t);\n    _a2.copy(c1).scale(3 * k * t ** 2);\n    _a3.copy(p1).scale(t ** 3);\n    const ret = new Vec3();\n    ret.add(_a0, _a1).add(_a2).add(_a3);\n    return ret;\n}\n\nexport class Curve {\n    constructor({ points = [new Vec3(0, 0, 0), new Vec3(0, 1, 0), new Vec3(1, 1, 0), new Vec3(1, 0, 0)], divisions = 12, type = CATMULLROM } = {}) {\n        this.points = points;\n        this.divisions = divisions;\n        this.type = type;\n    }\n\n    _getQuadraticBezierPoints(divisions = this.divisions) {\n        const points = [];\n        const count = this.points.length;\n\n        if (count < 3) {\n            console.warn('Not enough points provided.');\n            return [];\n        }\n\n        const p0 = this.points[0];\n        let c0 = this.points[1],\n            p1 = this.points[2];\n\n        for (let i = 0; i <= divisions; i++) {\n            const p = getQuadraticBezierPoint(i / divisions, p0, c0, p1);\n            points.push(p);\n        }\n\n        let offset = 3;\n        while (count - offset > 0) {\n            p0.copy(p1);\n            c0 = p1.scale(2).sub(c0);\n            p1 = this.points[offset];\n            for (let i = 1; i <= divisions; i++) {\n                const p = getQuadraticBezierPoint(i / divisions, p0, c0, p1);\n                points.push(p);\n            }\n            offset++;\n        }\n\n        return points;\n    }\n\n    _getCubicBezierPoints(divisions = this.divisions) {\n        const points = [];\n        const count = this.points.length;\n\n        if (count < 4) {\n            console.warn('Not enough points provided.');\n            return [];\n        }\n\n        let p0 = this.points[0],\n            c0 = this.points[1],\n            c1 = this.points[2],\n            p1 = this.points[3];\n\n        for (let i = 0; i <= divisions; i++) {\n            const p = getCubicBezierPoint(i / divisions, p0, c0, c1, p1);\n            points.push(p);\n        }\n\n        let offset = 4;\n        while (count - offset > 1) {\n            p0.copy(p1);\n            c0 = p1.scale(2).sub(c1);\n            c1 = this.points[offset];\n            p1 = this.points[offset + 1];\n            for (let i = 1; i <= divisions; i++) {\n                const p = getCubicBezierPoint(i / divisions, p0, c0, c1, p1);\n                points.push(p);\n            }\n            offset += 2;\n        }\n\n        return points;\n    }\n\n    _getCatmullRomPoints(divisions = this.divisions, a = 0.168, b = 0.168) {\n        const points = [];\n        const count = this.points.length;\n\n        if (count <= 2) {\n            return this.points;\n        }\n\n        let p0;\n        this.points.forEach((p, i) => {\n            if (i === 0) {\n                p0 = p;\n            } else {\n                const [c0, c1] = getCtrlPoint(this.points, i - 1, a, b);\n                const c = new Curve({\n                    points: [p0, c0, c1, p],\n                    type: CUBICBEZIER,\n                });\n                points.pop();\n                points.push(...c.getPoints(divisions));\n                p0 = p;\n            }\n        });\n\n        return points;\n    }\n\n    getPoints(divisions = this.divisions, a = 0.168, b = 0.168) {\n        const type = this.type;\n\n        if (type === QUADRATICBEZIER) {\n            return this._getQuadraticBezierPoints(divisions);\n        }\n\n        if (type === CUBICBEZIER) {\n            return this._getCubicBezierPoints(divisions);\n        }\n\n        if (type === CATMULLROM) {\n            return this._getCatmullRomPoints(divisions, a, b);\n        }\n\n        return this.points;\n    }\n}\n\nCurve.CATMULLROM = CATMULLROM;\nCurve.CUBICBEZIER = CUBICBEZIER;\nCurve.QUADRATICBEZIER = QUADRATICBEZIER;\n","import { Texture } from '../core/Texture.js';\nimport { KTXTexture } from './KTXTexture.js';\n\n// For compressed textures, generate using https://github.com/TimvanScherpenzeel/texture-compressor\n\nlet cache = {};\nconst supportedExtensions = [];\n\nexport class TextureLoader {\n    static load(\n        gl,\n        {\n            src, // string or object of extension:src key-values\n            // {\n            //     pvrtc: '...ktx',\n            //     s3tc: '...ktx',\n            //     etc: '...ktx',\n            //     etc1: '...ktx',\n            //     astc: '...ktx',\n            //     webp: '...webp',\n            //     jpg: '...jpg',\n            //     png: '...png',\n            // }\n\n            // Only props relevant to KTXTexture\n            wrapS = gl.CLAMP_TO_EDGE,\n            wrapT = gl.CLAMP_TO_EDGE,\n            anisotropy = 0,\n\n            // For regular images\n            format = gl.RGBA,\n            internalFormat = format,\n            generateMipmaps = true,\n            minFilter = generateMipmaps ? gl.NEAREST_MIPMAP_LINEAR : gl.LINEAR,\n            magFilter = gl.LINEAR,\n            premultiplyAlpha = false,\n            unpackAlignment = 4,\n            flipY = true,\n        } = {}\n    ) {\n        const support = this.getSupportedExtensions(gl);\n        let ext = 'none';\n\n        // If src is string, determine which format from the extension\n        if (typeof src === 'string') {\n            ext = src.split('.').pop().split('?')[0].toLowerCase();\n        }\n\n        // If src is object, use supported extensions and provided list to choose best option\n        // Get first supported match, so put in order of preference\n        if (typeof src === 'object') {\n            for (const prop in src) {\n                if (support.includes(prop.toLowerCase())) {\n                    ext = prop.toLowerCase();\n                    src = src[prop];\n                    break;\n                }\n            }\n        }\n\n        // Stringify props\n        const cacheID = src + wrapS + wrapT + anisotropy + format + internalFormat + generateMipmaps + minFilter + magFilter + premultiplyAlpha + unpackAlignment + flipY + gl.renderer.id;\n\n        // Check cache for existing texture\n        if (cache[cacheID]) return cache[cacheID];\n\n        let texture;\n        switch (ext) {\n            case 'ktx':\n            case 'pvrtc':\n            case 's3tc':\n            case 'etc':\n            case 'etc1':\n            case 'astc':\n                // Load compressed texture using KTX format\n                texture = new KTXTexture(gl, {\n                    src,\n                    wrapS,\n                    wrapT,\n                    anisotropy,\n                    minFilter,\n                    magFilter,\n                });\n                texture.loaded = this.loadKTX(src, texture);\n                break;\n            case 'webp':\n            case 'jpg':\n            case 'jpeg':\n            case 'png':\n                texture = new Texture(gl, {\n                    wrapS,\n                    wrapT,\n                    anisotropy,\n                    format,\n                    internalFormat,\n                    generateMipmaps,\n                    minFilter,\n                    magFilter,\n                    premultiplyAlpha,\n                    unpackAlignment,\n                    flipY,\n                });\n                texture.loaded = this.loadImage(gl, src, texture, flipY);\n                break;\n            default:\n                console.warn('No supported format supplied');\n                texture = new Texture(gl);\n        }\n\n        texture.ext = ext;\n        cache[cacheID] = texture;\n        return texture;\n    }\n\n    static getSupportedExtensions(gl) {\n        if (supportedExtensions.length) return supportedExtensions;\n\n        const extensions = {\n            pvrtc: gl.renderer.getExtension('WEBGL_compressed_texture_pvrtc') || gl.renderer.getExtension('WEBKIT_WEBGL_compressed_texture_pvrtc'),\n            s3tc: gl.renderer.getExtension('WEBGL_compressed_texture_s3tc'),\n            // etc: gl.renderer.getExtension('WEBGL_compressed_texture_etc'),\n            etc1: gl.renderer.getExtension('WEBGL_compressed_texture_etc1'),\n            astc: gl.renderer.getExtension('WEBGL_compressed_texture_astc'),\n            bc7: gl.renderer.getExtension('EXT_texture_compression_bptc'),\n        };\n\n        for (const ext in extensions) if (extensions[ext]) supportedExtensions.push(ext);\n\n        // Formats supported by all\n        supportedExtensions.push('png', 'jpg', 'webp');\n\n        return supportedExtensions;\n    }\n\n    static loadKTX(src, texture) {\n        return fetch(src)\n            .then((res) => res.arrayBuffer())\n            .then((buffer) => texture.parseBuffer(buffer));\n    }\n\n    static loadImage(gl, src, texture, flipY) {\n        return decodeImage(src, flipY).then((imgBmp) => {\n            // Catch non POT textures for WebGL1 and update params to avoid errors\n            if (!gl.renderer.isWebgl2 && (!powerOfTwo(imgBmp.width) || !powerOfTwo(imgBmp.height))) {\n                if (texture.generateMipmaps) texture.generateMipmaps = false;\n                if (texture.minFilter === gl.NEAREST_MIPMAP_LINEAR) texture.minFilter = gl.LINEAR;\n                if (texture.wrapS === gl.REPEAT) texture.wrapS = texture.wrapT = gl.CLAMP_TO_EDGE;\n            }\n\n            texture.image = imgBmp;\n\n            // For createImageBitmap, close once uploaded\n            texture.onUpdate = () => {\n                if (imgBmp.close) imgBmp.close();\n                texture.onUpdate = null;\n            };\n\n            return imgBmp;\n        });\n    }\n\n    static clearCache() {\n        cache = {};\n    }\n}\n\nfunction powerOfTwo(value) {\n    // (width & (width - 1)) !== 0\n    return Math.log2(value) % 1 === 0;\n}\n\nfunction decodeImage(src, flipY) {\n    return new Promise((resolve, reject) => {\n        if (isCreateImageBitmap()) {\n            fetch(src, { mode: 'cors' })\n                .then((r) => r.blob())\n                .then((b) => createImageBitmap(b, { imageOrientation: flipY ? 'flipY' : 'none', premultiplyAlpha: 'none' }))\n                .then(resolve)\n                .catch((err) => reject(err));\n        } else {\n            const img = new Image();\n\n            img.crossOrigin = '';\n            img.src = src;\n            img.onerror = ({ type }) => reject(`${type}: Loading image`);\n            img.onload = () => resolve(img);\n        }\n    });\n}\n\nfunction isCreateImageBitmap() {\n    const isChrome = navigator.userAgent.toLowerCase().includes('chrome');\n    if (!isChrome) return false;\n    try {\n        createImageBitmap;\n    } catch (e) {\n        return false;\n    }\n    return true;\n}\n","// Core\nexport { Geometry } from './core/Geometry.js';\nexport { Program } from './core/Program.js';\nexport { Renderer } from './core/Renderer.js';\nexport { Camera } from './core/Camera.js';\nexport { Transform } from './core/Transform.js';\nexport { Mesh } from './core/Mesh.js';\nexport { Texture } from './core/Texture.js';\nexport { RenderTarget } from './core/RenderTarget.js';\n\n// Maths\nexport { Color } from './math/Color.js';\nexport { Euler } from './math/Euler.js';\nexport { Mat3 } from './math/Mat3.js';\nexport { Mat4 } from './math/Mat4.js';\nexport { Quat } from './math/Quat.js';\nexport { Vec2 } from './math/Vec2.js';\nexport { Vec3 } from './math/Vec3.js';\nexport { Vec4 } from './math/Vec4.js';\n\n// Extras\nexport { Plane } from './extras/Plane.js';\nexport { Box } from './extras/Box.js';\nexport { Sphere } from './extras/Sphere.js';\nexport { Cylinder } from './extras/Cylinder.js';\nexport { Triangle } from './extras/Triangle.js';\nexport { Torus } from './extras/Torus.js';\nexport { Orbit } from './extras/Orbit.js';\nexport { Raycast } from './extras/Raycast.js';\nexport { Curve } from './extras/Curve.js';\nexport { Path } from './extras/path/Path.js';\nexport { Tube } from './extras/Tube.js';\nexport { Post } from './extras/Post.js';\nexport { Skin } from './extras/Skin.js';\nexport { Animation } from './extras/Animation.js';\nexport { Text } from './extras/Text.js';\nexport { NormalProgram } from './extras/NormalProgram.js';\nexport { Flowmap } from './extras/Flowmap.js';\nexport { GPGPU } from './extras/GPGPU.js';\nexport { Polyline } from './extras/Polyline.js';\nexport { Shadow } from './extras/Shadow.js';\nexport { KTXTexture } from './extras/KTXTexture.js';\nexport { TextureLoader } from './extras/TextureLoader.js';\nexport { GLTFLoader } from './extras/GLTFLoader.js';\nexport { GLTFSkin } from './extras/GLTFSkin.js';\nexport { GLTFAnimation } from './extras/GLTFAnimation.js';\nexport { DracoManager } from './extras/DracoManager.js';\nexport { BasisManager } from './extras/BasisManager.js';\nexport { WireMesh } from './extras/WireMesh.js';\nexport { AxesHelper } from './extras/helpers/AxesHelper.js';\nexport { GridHelper } from './extras/helpers/GridHelper.js';\nexport { VertexNormalsHelper } from './extras/helpers/VertexNormalsHelper.js';\nexport { FaceNormalsHelper } from './extras/helpers/FaceNormalsHelper.js';\nexport { InstancedMesh } from './extras/InstancedMesh.js';\nexport { Texture3D } from './extras/Texture3D.js';\n","import{jsx as _jsx}from\"react/jsx-runtime\";import{useEffect,useRef,useState,useCallback}from\"react\";import{Renderer,Camera,Transform,Plane,Program,Mesh,Texture}from\"https://unpkg.com/ogl\";import{defaultFragmentShader,defaultVertexShader}from\"https://framerusercontent.com/modules/MpdGPgep8CrmVuG8IclI/3flka5fkGcFUNVW00KRS/OGLUtils.js\";export default function OGLScene(props){return /*#__PURE__*/_jsx(\"div\",{});}export function useOGLScene(mountRef,media,dimensions,mediaType,options={}){const sceneRef=useRef({});const[containerSize,setContainerSize]=useState({width:0,height:0});const[isReady,setIsReady]=useState(false);const isInitializedRef=useRef(false);const initialUniformsRef=useRef(null);const resizeObserverRef=useRef(null);const{vertexShader,fragmentShader,objectFit=\"cover\",uniforms={},accessibilityOptions={}}=options;// 默认的 canvas 配置\nconst defaultAccessibilityOptions={ariaLabel:null,role:null,tabIndex:null,...accessibilityOptions};// 保存初始 uniforms，避免重复创建场景\nif(!initialUniformsRef.current){initialUniformsRef.current=JSON.parse(JSON.stringify(uniforms));}// 应用 canvas 属性的辅助函数\nconst applyCanvasAttributes=useCallback((canvas,options)=>{// 设置 aria 属性\nif(options.ariaLabel){canvas.setAttribute(\"aria-label\",options.ariaLabel);}if(options.role){canvas.setAttribute(\"role\",options.role);}if(options.tabIndex!==null&&options.tabIndex!==undefined){canvas.tabIndex=options.tabIndex;}},[]);// 手动渲染函数 - 提前定义避免循环依赖\nconst renderFrame=useCallback(()=>{const{renderer,camera,scene,texture}=sceneRef.current;texture.needsUpdate=true;renderer.render({scene,camera});},[mediaType]);// 计算平面尺寸\nconst calculatePlaneSize=useCallback((mediaWidth,mediaHeight,containerWidth,containerHeight,fitMode)=>{const mediaAspect=mediaWidth/mediaHeight;const containerAspect=containerWidth/containerHeight;let planeWidth,planeHeight;if(fitMode===\"cover\"){planeHeight=containerHeight;planeWidth=containerWidth;}else if(fitMode===\"contain\"){if(mediaAspect>containerAspect){planeWidth=containerWidth;planeHeight=containerWidth/mediaAspect;}else{planeHeight=containerHeight;planeWidth=containerHeight*mediaAspect;}}return{width:planeWidth,height:planeHeight};},[]);// 更新场景尺寸相关参数（优化：避免不必要的重建）\nconst updateSceneSize=useCallback((width,height,fitMode)=>{const{renderer,camera,mesh,program}=sceneRef.current;if(!renderer||!camera||!mesh||!program)return;// 检查尺寸是否真的发生了变化\nconst currentCanvas=renderer.gl.canvas;if(currentCanvas.width===width*renderer.dpr&&currentCanvas.height===height*renderer.dpr){return;// 尺寸没有变化，跳过更新\n}// 更新渲染器尺寸\nrenderer.setSize(width,height);// 更新相机参数\nconst distance=1e3;const fov=2*Math.atan(height/2/distance)*(180/Math.PI);camera.fov=fov;camera.aspect=width/height;camera.updateProjectionMatrix();// 更新默认 uniforms\nif(program.uniforms){if(program.uniforms.uMediaSize&&dimensions.width&&dimensions.height){program.uniforms.uMediaSize.value=[dimensions.width,dimensions.height];}if(program.uniforms.uPanelSize){program.uniforms.uPanelSize.value=[width,height];}if(program.uniforms.uFitMode){program.uniforms.uFitMode.value=fitMode===\"cover\"?1:0;console.log(program.uniforms.uFitMode.value);}}// 重新计算平面尺寸并更新几何体\nif(dimensions.width&&dimensions.height){const planeSize=calculatePlaneSize(dimensions.width,dimensions.height,width,height,objectFit);// 只有当尺寸真的不同时才更新几何体\nconst gl=renderer.gl;const newGeometry=new Plane(gl,{width:planeSize.width,height:planeSize.height});// 更新mesh的几何体\nconst oldGeometry=mesh.geometry;mesh.geometry=newGeometry;sceneRef.current.geometry=newGeometry;// 清理旧几何体（如果需要）\nif(oldGeometry&&oldGeometry!==newGeometry&&oldGeometry.dispose){oldGeometry.dispose();}}},[dimensions,calculatePlaneSize,objectFit]);// 获取容器尺寸 - 优化以避免不必要的更新\nconst updateContainerSize=useCallback(()=>{if(!mountRef.current)return;const newWidth=mountRef.current.clientWidth;const newHeight=mountRef.current.clientHeight;// 只有当尺寸真的发生变化时才更新状态\nsetContainerSize(prevSize=>{if(prevSize.width!==newWidth||prevSize.height!==newHeight){return{width:newWidth,height:newHeight};}return prevSize;});},[mountRef]);// 监听容器尺寸变化 - 优化ResizeObserver\nuseEffect(()=>{updateContainerSize();// 清理之前的观察器\nif(resizeObserverRef.current){resizeObserverRef.current.disconnect();}if(mountRef.current){resizeObserverRef.current=new ResizeObserver(entries=>{// 使用entries直接获取尺寸，避免重复测量\nfor(const entry of entries){const{width,height}=entry.contentRect;setContainerSize(prevSize=>{if(prevSize.width!==width||prevSize.height!==height){return{width,height};}return prevSize;});}});resizeObserverRef.current.observe(mountRef.current);}return()=>{if(resizeObserverRef.current){resizeObserverRef.current.disconnect();}};},[mountRef]);// 初始化场景（只执行一次）\nuseEffect(()=>{if(!mountRef.current||containerSize.width===0||containerSize.height===0||isInitializedRef.current)return;let renderer,camera,scene,program,mesh,texture,geometry;const init=async()=>{const{width,height}=containerSize;// 创建渲染器\nrenderer=new Renderer({width,height,dpr:Math.min(window.devicePixelRatio,2),alpha:true,premultipliedAlpha:false});const gl=renderer.gl;// 清空容器并添加canvas\nmountRef.current.innerHTML=\"\";mountRef.current.appendChild(gl.canvas);// 设置canvas样式\ngl.canvas.style.width=\"100%\";gl.canvas.style.height=\"100%\";gl.canvas.style.display=\"block\";applyCanvasAttributes(gl.canvas,defaultAccessibilityOptions);gl.clearColor(0,0,0,0);gl.enable(gl.BLEND);gl.blendFunc(gl.SRC_ALPHA,gl.ONE_MINUS_SRC_ALPHA);// 计算相机参数\nconst distance=1e3;const fov=2*Math.atan(height/2/distance)*(180/Math.PI);// 创建相机\ncamera=new Camera(gl,{fov:fov,aspect:width/height,near:1,far:2e3});camera.position.set(0,0,distance);// 创建场景\nscene=new Transform;// 创建纹理\nconst generateMipmaps=mediaType===\"video\"?false:true;texture=new Texture(gl,{minFilter:generateMipmaps?gl.LINEAR_MIPMAP_LINEAR:gl.LINEAR,magFilter:gl.LINEAR,generateMipmaps:generateMipmaps,premultiplyAlpha:false,unpackAlignment:1,wrapS:gl.CLAMP_TO_EDGE,wrapT:gl.CLAMP_TO_EDGE,format:gl.RGBA,internalFormat:gl.RGBA});// 如果有初始媒体，设置到纹理\nif(media){texture.image=media;}// 计算平面尺寸\nconst planeSize=calculatePlaneSize(dimensions.width||width,dimensions.height||height,width,height,objectFit);// 创建着色器程序\nprogram=new Program(gl,{vertex:vertexShader||defaultVertexShader,fragment:fragmentShader||defaultFragmentShader,uniforms:{uTexture:{value:texture},uMediaSize:{value:[dimensions.width||width,dimensions.height||height]},uPanelSize:{value:[width,height]},uFitMode:{value:objectFit===\"cover\"?1:0},...initialUniformsRef.current},transparent:true,cullFace:null});// 创建几何体\ngeometry=new Plane(gl,{width:planeSize.width,height:planeSize.height});// 创建网格\nmesh=new Mesh(gl,{geometry,program});mesh.setParent(scene);// 存储场景对象\nsceneRef.current={renderer,camera,scene,program,mesh,texture,geometry,gl,updateUniforms:newUniforms=>{Object.keys(newUniforms).forEach(key=>{if(program.uniforms[key]){program.uniforms[key].value=newUniforms[key];}});}};isInitializedRef.current=true;setIsReady(true);};init();// 清理函数\nreturn()=>{// 清理事件监听器\nif(renderer){const gl=renderer.gl;if(gl.canvas&&gl.canvas.parentNode){gl.canvas.parentNode.removeChild(gl.canvas);}const loseContext=gl.getExtension(\"WEBGL_lose_context\");if(loseContext){loseContext.loseContext();}}// 清理引用\nsceneRef.current={};isInitializedRef.current=false;setIsReady(false);};},[media,vertexShader,fragmentShader,objectFit]);// 处理容器尺寸变化\nuseEffect(()=>{if(isInitializedRef.current&&containerSize.width>0&&containerSize.height>0){updateSceneSize(containerSize.width,containerSize.height,objectFit);}},[containerSize,updateSceneSize]);return{sceneRef:sceneRef.current,containerSize,renderFrame,isReady};}\nexport const __FramerMetadata__ = {\"exports\":{\"useOGLScene\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"default\":{\"type\":\"reactComponent\",\"name\":\"OGLScene\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","/*\n * UseOGLScene\n *\n * Learn More: https://www.framer.com/asset-urls\n */\n\nexport * from \"https://framerusercontent.com/modules/Qdd3eGacdk0a7XalD9lO/LmjERPAe2BydyHLwJYQM/UseOGLScene.js\"\nexport { default } from \"https://framerusercontent.com/modules/Qdd3eGacdk0a7XalD9lO/LmjERPAe2BydyHLwJYQM/UseOGLScene.js\"\n","import{CompatibleMedia,degToRad,propertyControls,useDarkMode,useMediaSource}from\"https://framer.com/m/GLUtils-cYf4.js\";import{calculatePlaneSize,defaultFragmentShader,defaultVertexShader}from\"https://framer.com/m/OGLUtils-LEvG.js\";import{useVariantValues}from\"https://framer.com/m/UseVariantValue-mxjI.js\";import{useAnimatedProgress,useAnimatedValues}from\"https://framer.com/m/UseAnimatedValue-6Bkx.js\";import{useMedia}from\"https://framer.com/m/UseMedia-AW14.js\";import{useOGLScene}from\"https://framer.com/m/UseOGLScene-gg2G.js\";/**\n * GLUtils Tool\n *\n */export{CompatibleMedia,degToRad,propertyControls,useDarkMode,useMediaSource,};/**\n * OGLUtils Tools\n *\n */export{calculatePlaneSize,defaultFragmentShader,defaultVertexShader};/**\n * Variant Value Tools\n *\n */export{useVariantValues};/**\n * Animated Value Tools\n *\n */export{useAnimatedProgress,useAnimatedValues};/**\n * Media Tools\n *\n */export{useMedia};/**\n * Main OGLScene Setup\n *\n */export{useOGLScene};\nexport const __FramerMetadata__ = {\"exports\":{\"useDarkMode\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useMedia\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useOGLScene\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"calculatePlaneSize\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"defaultVertexShader\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useMediaSource\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useVariantValues\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"CompatibleMedia\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"degToRad\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"defaultFragmentShader\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"propertyControls\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useAnimatedProgress\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useAnimatedValues\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./UseSetup.map","export const vertexShader=`\n        attribute vec3 position;\n        attribute vec2 uv;\n        uniform mat4 modelViewMatrix;\n        uniform mat4 projectionMatrix;\n        uniform vec2 uMediaSize;\n        uniform vec2 uPanelSize;\n        uniform int uFitMode; // 0: contain, 1: cover\n        varying vec2 vUv;\n        varying vec2 vTextureCoord; \n        \n        void main() {\n            vUv = uv;\n            \n            if (uFitMode == 1) {\n                vec2 ratio = vec2(\n                    min((uPanelSize.x / uPanelSize.y) / (uMediaSize.x / uMediaSize.y), 1.0),\n                    min((uPanelSize.y / uPanelSize.x) / (uMediaSize.y / uMediaSize.x), 1.0)\n                );\n                vTextureCoord = (uv - vec2(0.5)) * ratio + vec2(0.5);\n            } else {\n                vTextureCoord = uv;\n            }\n            \n            gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);\n        }\n    `;export const fragmentShader=`\n        precision mediump float;\n        uniform sampler2D uTexture;\n        uniform vec2 uMediaSize;\n        uniform vec2 uPanelSize;\n        \n        uniform float uStripeCount;           // 条纹数量\n        uniform float uStripeAngle;           // 条纹角度\n        uniform float uDistortion;            // 扭曲强度\n        uniform float uReflection;            // 高光强度\n        uniform float uDisturbance;           // 条纹宽度随机变化\n        uniform float uContortion;            // 条纹S形程度\n        uniform bool uBlend;                  // 基于亮度的高光调节\n        uniform float uDispersion;            // 色散强度\n        uniform float uDrift;                 // 不连续效果\n        uniform float uShadowIntensity;       // 阴影强度\n        uniform float uOffset;                // 条纹整体偏移\n        \n        varying vec2 vUv;\n        varying vec2 vTextureCoord; \n        \n        // 随机数生成函数\n        float random(vec2 st) {\n            return fract(sin(dot(st.xy, vec2(12.9898, 78.233))) * 43758.5453123);\n        }\n\n        // 2D旋转函数\n        vec2 rotate2D(vec2 position, float angle) {\n            float s = sin(angle);\n            float c = cos(angle);\n            mat2 rotationMatrix = mat2(c, -s, s, c);\n            return rotationMatrix * position;\n        }\n        \n        void main() {\n            // 使用调整后的 UV 坐标\n            vec2 textureCoord = vTextureCoord;\n            \n            // 中心化UV坐标并应用旋转\n            vec2 centeredUv = textureCoord - 0.5;\n            vec2 rotatedUv = rotate2D(centeredUv, uStripeAngle);\n            rotatedUv += 0.5;\n            \n            // 应用S形扭曲\n            float sWaveOffset = sin(rotatedUv.y * 3.14159 * 2.0) * uContortion * 0.2;\n            rotatedUv.x += sWaveOffset;\n            \n            // 应用整体条纹偏移\n            rotatedUv.x += uOffset;\n            \n            // 计算条纹位置 - 使用离散条纹索引方法\n            float adjustedStripeCount = uStripeCount;\n            \n            // 添加条纹宽度随机变化效果\n            if (uDisturbance > 0.0) {\n                // 基于X坐标生成平滑的扰动\n                float disturbancePattern = sin(rotatedUv.x * uStripeCount * 0.7) * \n                                         cos(rotatedUv.x * uStripeCount * 1.3) * \n                                         sin(rotatedUv.x * uStripeCount * 2.1);\n                // 调整条纹计数以创建宽度变化\n                float widthVariation = 1.0 + disturbancePattern * uDisturbance * 0.08;\n                adjustedStripeCount *= widthVariation;\n            }\n            \n            float stripeIndex = floor(rotatedUv.x * adjustedStripeCount);\n            float stripePosition = fract(rotatedUv.x * adjustedStripeCount);\n            \n            // 为每个条纹生成随机偏移\n            float randomOffset = (random(vec2(stripeIndex, 0.0)) - 0.5) * 2.0;\n            \n            // 计算双向凸起效果 - 核心效果\n            float bulge = sin(stripePosition * 3.14159 * 2.0) * uDistortion;\n            \n            // 计算旋转后的折射偏移\n            vec2 refractionBase = vec2(bulge * 0.1, 0.0);\n            vec2 refractionOffset = rotate2D(refractionBase, uStripeAngle);\n            \n            // 应用S形变化对折射的影响\n            float sInfluence = sin(textureCoord.y * 3.14159 * 2.0) * uContortion;\n            refractionOffset.x += sInfluence * bulge * 0.05;\n            \n            // 应用扭曲到纹理坐标\n            vec2 distortedUv = textureCoord + refractionOffset;\n            \n            // 添加基于凸起的微妙偏移（考虑旋转）\n            vec2 shiftBase = vec2(randomOffset * bulge * 0.02, 0.0);\n            vec2 rotatedShift = rotate2D(shiftBase, uStripeAngle);\n            distortedUv += rotatedShift;\n            \n            // 创建可控制宽度的不连续效果 - 支持双向移动\n            // 使用绝对值计算不连续区域，保持方向信息\n            float absDrift = abs(uDrift);\n            float driftDirection = sign(uDrift);\n            \n            float discontinuityIntensity = 0.0;\n            float driftInfluence = 0.0;\n            \n            if (uDrift > 0.0) {\n                // 正值：在条纹后边缘(接近1.0)产生向左偏移\n                float discontinuityStart = 1.0 - absDrift;\n                discontinuityIntensity = smoothstep(discontinuityStart, 1.0, stripePosition) * 0.01 * absDrift * 5.0;\n                driftInfluence = smoothstep(discontinuityStart, 1.0, stripePosition) * absDrift;\n            } else if (uDrift < 0.0) {\n                // 负值：在条纹前边缘(接近0.0)产生向右偏移  \n                float discontinuityEnd = absDrift;\n                discontinuityIntensity = smoothstep(discontinuityEnd, 0.0, stripePosition) * 0.01 * absDrift * 5.0;\n                driftInfluence = smoothstep(discontinuityEnd, 0.0, stripePosition) * absDrift;\n            }\n            \n            // 应用方向性的不连续偏移\n            vec2 discontinuityOffset = rotate2D(vec2(discontinuityIntensity * driftDirection, 0.0), uStripeAngle);\n            distortedUv += discontinuityOffset;\n            \n            vec4 textureColor;\n            \n            // 根据 uDispersion 参数决定是否应用色散效果\n            if (uDispersion > 0.0) {\n                // 修改后的色散逻辑：根据uDistortion和uDrift的组合决定色散影响因子和基础偏移\n                float dispersionInfluenceFactor = 1.0;\n                vec2 baseDispersionOffset = vec2(0.0);\n                \n                if (uDistortion > 0.0 && uDrift != 0.0) {\n                    // 情况1：同时受凸起效果和不连续效果影响\n                    float bulgeInfluence = abs(bulge) * uDistortion;\n                    float combinedDriftFactor = 1.0 + (driftInfluence * bulgeInfluence);\n                    dispersionInfluenceFactor = combinedDriftFactor;\n                    baseDispersionOffset = refractionOffset;\n                } else if (uDistortion == 0.0 && uDrift != 0.0) {\n                    // 情况2：只受不连续效果影响 - 创建基于不连续的色散偏移\n                    dispersionInfluenceFactor = 1.0 + (driftInfluence * 2.0);\n                    // 基于不连续强度创建横向偏移作为色散基础，使用更温和的系数\n                    vec2 driftDispersionBase = vec2(discontinuityIntensity * driftDirection * 0.8, 0.0);\n                    baseDispersionOffset = rotate2D(driftDispersionBase, uStripeAngle);\n                } else if (uDistortion != 0.0 && uDrift == 0.0) {\n                    // 情况3：只受凸起效果影响\n                    float bulgeInfluence = abs(bulge) * uDistortion;\n                    dispersionInfluenceFactor = 1.0 + bulgeInfluence;\n                    baseDispersionOffset = refractionOffset;\n                } else {\n                    // 两者都为0时，创建微小的基础偏移以保证平滑过渡\n                    dispersionInfluenceFactor = 1.0;\n                    baseDispersionOffset = vec2(0.0, 0.0);\n                }\n                \n                // 应用影响因子的色散强度\n                float adjustedDispersion = uDispersion * dispersionInfluenceFactor;\n                \n                // 创建色散偏移 - 只用于RGB通道间的分离，不影响基础扭曲\n                vec2 dispersionSeparation = baseDispersionOffset * adjustedDispersion * 0.5;\n                \n                // 红色通道 - 向一个方向偏移\n                vec2 redOffset = dispersionSeparation;\n                vec4 redSample = texture2D(uTexture, distortedUv - redOffset);\n                \n                // 绿色通道 - 使用原始扭曲位置（不额外偏移）\n                vec4 greenSample = texture2D(uTexture, distortedUv);\n                \n                // 蓝色通道 - 向另一个方向偏移\n                vec2 blueOffset = dispersionSeparation;\n                vec4 blueSample = texture2D(uTexture, distortedUv + blueOffset);\n                \n                // 组合RGB通道，使用绿色通道的alpha作为最终alpha\n                textureColor = vec4(redSample.r, greenSample.g, blueSample.b, greenSample.a);\n            } else {\n                // 无色散效果 - 所有通道使用相同的偏移\n                textureColor = texture2D(uTexture, distortedUv);\n            }\n            \n            // 计算纹理的感知亮度\n            float luminance = dot(textureColor.rgb, vec3(0.299, 0.587, 0.114));\n            \n            // 基于uDistortion和uDrift组合的高光强度计算\n            float reflectionInfluenceFactor = 1.0;\n            float baseHighlightValue = 0.0;\n            \n            if (uDistortion > 0.0 && uDrift != 0.0) {\n                // 情况1：同时受凸起效果和不连续效果影响\n                float bulgeInfluence = abs(bulge) * uDistortion;\n                float combinedDriftFactor = 1.0 + (driftInfluence * bulgeInfluence * 2.0);\n                reflectionInfluenceFactor = combinedDriftFactor;\n                baseHighlightValue = pow(abs(bulge), 3.0);\n            } else if (uDistortion == 0.0 && uDrift != 0.0) {\n                // 情况2：只受不连续效果影响 - 基于不连续区域创建高光\n                reflectionInfluenceFactor = 1.0 + (driftInfluence * 2.0);\n                // 在不连续边缘创建高光效果\n                baseHighlightValue = pow(driftInfluence, 2.0);\n            } else if (uDistortion != 0.0 && uDrift == 0.0) {\n                // 情况3：只受凸起效果影响\n                float bulgeInfluence = abs(bulge) * uDistortion;\n                reflectionInfluenceFactor = 1.0 + (bulgeInfluence * 2.0);\n                baseHighlightValue = pow(abs(bulge), 3.0);\n            } else {\n                // 两者都为0时，无高光效果\n                reflectionInfluenceFactor = 1.0;\n                baseHighlightValue = 0.0;\n            }\n            \n            float adjustedReflection = uReflection * reflectionInfluenceFactor;\n            float baseHighlightIntensity = baseHighlightValue * adjustedReflection;\n            \n            // 根据uBlend参数调整高光强度\n            float blendValue = uBlend ? 1.0 : 0.0;\n            float brightnessMultiplier = mix(1.0, luminance * 2.0, blendValue);\n            float finalHighlightIntensity = baseHighlightIntensity * brightnessMultiplier;\n            \n            // 应用高光 - 使用白色高光\n            textureColor.rgb += vec3(finalHighlightIntensity);\n            \n            // 创建阴影效果 - 在偏移区域添加阴影\n            if (abs(uDrift) > 0.0) {\n                // 计算阴影强度，基于drift影响区域\n                float shadowStrength = driftInfluence * 0.3; // 基础阴影强度\n                \n                // 创建横向渐变阴影效果 - 方向与drift相反\n                float shadowGradient = 1.0;\n                if (uDrift > 0.0) {\n                    // 正值drift向左偏移，阴影从左(0.0)到右(1.0)渐变（从暗到亮）\n                    shadowGradient = smoothstep(0.0, 1.0, stripePosition);\n                } else if (uDrift < 0.0) {\n                    // 负值drift向右偏移，阴影从右(1.0)到左(0.0)渐变（从暗到亮）\n                    shadowGradient = smoothstep(1.0, 0.0, stripePosition);\n                }\n                \n                // 应用阴影 - 降低亮度来模拟阴影\n                float shadowEffect = shadowStrength * shadowGradient * uShadowIntensity;\n                textureColor.rgb *= (1.0 - shadowEffect);\n            }\n            \n            gl_FragColor = textureColor;\n        }\n    `;\nexport const __FramerMetadata__ = {\"exports\":{\"vertexShader\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"fragmentShader\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./Shaders.map","import{jsx as _jsx}from\"react/jsx-runtime\";import{useRef,useEffect,useMemo}from\"react\";import{useIsStaticRenderer}from\"framer\";import{useAnimationFrame}from\"framer-motion\";import{vertexShader,fragmentShader}from\"https://framerusercontent.com/modules/UVQxuNxfb4duWQiQLK64/Z99waoqfxP0ras9Gnxc2/Shaders.js\";import{degToRad,useAnimatedProgress,useAnimatedValues,useMedia,useOGLScene,useVariantValues}from\"https://framerusercontent.com/modules/IWgT8yiaQB1ANE0NMqwg/8ayv1Nd0kqvJztnJf2dA/UseSetup.js\";export const OGLScene=({imageAlt,mediaSrc,mediaType,loop,fit,stripeCount,stripeAngle,distortion,drift,advance,animateProp,transitionProp,accessibility,ariaLabel,onLoad,onError,onVideoEnd,onAnimationComplete})=>{const mountRef=useRef(null);const isStaticRenderer=useIsStaticRenderer();const{media,dimensions,isLoaded,isError,isVideoPlaying,playVideo,pauseVideo}=useMedia(mediaSrc,mediaType,loop,!isStaticRenderer);const{sceneRef,renderFrame,containerSize,isReady}=useOGLScene(mountRef,media,dimensions,mediaType,{autoStart:false,vertexShader,fragmentShader,objectFit:fit,uniforms:{uStripeCount:{value:stripeCount},uStripeAngle:{value:degToRad(stripeAngle)},uDistortion:{value:distortion},uDrift:{value:drift},uDisturbance:{value:advance.disturbance},uReflection:{value:advance.reflection},uContortion:{value:advance.contortion},uBlend:{value:advance.blendReflection},uDispersion:{value:advance.dispersion},uShadowIntensity:{value:advance.shadow},uOffset:{value:advance.offset}},accessibilityOptions:{ariaLabel:accessibility.enableAria?ariaLabel:mediaType===\"video\"?\"\":imageAlt,role:mediaType===\"video\"?\"video\":\"img\",tabIndex:null}});// 在属性变化时，在 Framer Canvas 上进行一次渲染\nuseEffect(()=>{if(!isStaticRenderer||!isLoaded||!isReady)return;if(sceneRef.renderer){sceneRef.updateUniforms({uStripeCount:stripeCount,uStripeAngle:degToRad(stripeAngle),uDistortion:distortion,uDrift:drift,uDisturbance:advance.disturbance,uReflection:advance.reflection,uContortion:advance.contortion,uBlend:advance.blendReflection,uDispersion:advance.dispersion,uShadowIntensity:advance.shadow,uOffset:advance.offset});renderFrame();}},[isLoaded,isReady,sceneRef,fit,stripeCount,stripeAngle,distortion,advance,containerSize,isStaticRenderer]);// 在媒体类型和来源变化时，在 Framer Canvas 上进行一次渲染\nuseEffect(()=>{if(!isStaticRenderer||!isLoaded)return;if(sceneRef.renderer){renderFrame();const timeoutId=setTimeout(()=>{renderFrame();},300);return()=>{clearTimeout(timeoutId);};}},[isLoaded,isStaticRenderer]);// 配置自定义动画参数，只有当 animateProp.custom.enable 启用时才生效\nconst animationConfig=useMemo(()=>({stripeCount:{from:stripeCount,to:animateProp.custom.stripeCount},stripeAngle:{from:stripeAngle,to:animateProp.custom.stripeAngle},distortion:{from:distortion,to:animateProp.custom.distortion},disturbance:{from:advance.disturbance,to:animateProp.custom.disturbance},offset:{from:advance.offset,to:animateProp.custom.offset},shadow:{from:advance.shadow,to:animateProp.custom.shadow},reflection:{from:advance.reflection,to:animateProp.custom.reflection},contortion:{from:advance.contortion,to:animateProp.custom.contortion},dispersion:{from:advance.dispersion,to:animateProp.custom.dispersion},drift:{from:drift,to:animateProp.custom.drift}}),[stripeCount,stripeAngle,distortion,drift,advance.contortion,advance.disturbance,advance.offset,advance.shadow,advance.dispersion,advance.reflection,animateProp.custom.stripeCount,animateProp.custom.stripeAngle,animateProp.custom.distortion,animateProp.custom.contortion,animateProp.custom.disturbance,animateProp.custom.offset,animateProp.custom.shadow,animateProp.custom.dispersion,animateProp.custom.drift,animateProp.custom.reflection]);const customEnable=animateProp.custom.enable;const transition=useMemo(()=>({...transitionProp}),[transitionProp]);// 进度动画，适用于 appear\\enter\\transform\nconst{progress,isUpdatingProgress}=useAnimatedProgress(animateProp,transition,mountRef,!customEnable);// 自定义动画，适用于 appear\\enter\\transform\nconst{values,isUpdating}=useAnimatedValues(animationConfig,animateProp,transition,mountRef,customEnable);// 自定义动画，适用于 variant\nconst variantConfig=useMemo(()=>({stripeCount:stripeCount,stripeAngle:stripeAngle,distortion:distortion,drift:drift,disturbance:advance.disturbance,offset:advance.offset,shadow:advance.shadow,reflection:advance.reflection,contortion:advance.contortion,dispersion:advance.dispersion}),[stripeCount,stripeAngle,distortion,drift,advance.contortion,advance.disturbance,advance.offset,advance.shadow,advance.dispersion,advance.reflection]);const{variantValue,isVariantUpdating}=useVariantValues(variantConfig,transition,animateProp.type===\"variant\");// 为 uniforms 选择更新模式\nconst calculateCustomUniforms=useMemo(()=>{// variant 模式：使用固定的基础值，但仍然是动画值\nif(animateProp.type===\"variant\"){return values=>({uStripeCount:variantValue.stripeCount.get(),uStripeAngle:degToRad(variantValue.stripeAngle.get()),uDistortion:variantValue.distortion.get(),uDrift:variantValue.drift.get(),uDisturbance:variantValue.disturbance.get(),uReflection:variantValue.reflection.get(),uContortion:variantValue.contortion.get(),uDispersion:variantValue.dispersion.get(),uShadowIntensity:variantValue.shadow.get(),uOffset:variantValue.offset.get()});}// 非 variant 时，根据 customEnable 决定\nif(customEnable){// custom 模式：使用 values 中的动画值\nreturn values=>({uStripeCount:values.stripeCount,uStripeAngle:degToRad(values.stripeAngle),uDistortion:values.distortion,uDrift:values.drift,uDisturbance:values.disturbance,uReflection:values.reflection,uContortion:values.contortion,uDispersion:values.dispersion,uShadowIntensity:values.shadow,uOffset:values.offset});}else{// progress 模式：使用基础值乘以进度\nreturn(_,progress)=>({// uStripeCount: stripeCount * progress,\n    // uStripeAngle: degToRad(stripeAngle * progress),\n    uDistortion:distortion*progress,uDrift:drift*progress,// uDisturbance: advance.disturbance * progress,\n    // uReflection: advance.reflection * progress,\n    // uContortion: advance.contortion * progress,\n    // uDispersion: advance.dispersion * progress,\n    uShadowIntensity:advance.shadow*progress,uOffset:advance.offset*progress});}},[animateProp.type,customEnable,stripeCount,stripeAngle,distortion,advance]);// 在最终页面上尺寸变化时、媒体载入时进行一次渲染\nuseEffect(()=>{if(isStaticRenderer||!isLoaded||!isReady)return;if(sceneRef.renderer){renderFrame();}if(onLoad&&typeof onLoad===\"function\"){onLoad();}},[isLoaded,isReady,sceneRef,containerSize,isStaticRenderer,onLoad]);// 在最终页面上尺寸变化时进行渲染\nuseAnimationFrame(time=>{if(isStaticRenderer||!isLoaded||!isReady)return;if(sceneRef.renderer){const shouldUpdate=advance.render===\"always\"||animateProp.type===\"variant\"||isUpdating||isUpdatingProgress||isVideoPlaying;if(shouldUpdate){sceneRef.updateUniforms(calculateCustomUniforms(values,progress));renderFrame();}}});// 在最终页面上触发事件\nconst prevStateRef=useRef({isError,isVideoPlaying,isUpdating,isUpdatingProgress,isVariantUpdating});useEffect(()=>{if(isStaticRenderer)return;if(isError&&!prevStateRef.current.isError&&onError&&typeof onError===\"function\"){onError();}prevStateRef.current.isError=isError;},[isStaticRenderer,isError,onError]);useEffect(()=>{if(isStaticRenderer)return;if(!isVideoPlaying&&prevStateRef.current.isVideoPlaying&&onVideoEnd&&typeof onVideoEnd===\"function\"){onVideoEnd();}prevStateRef.current.isVideoPlaying=isVideoPlaying;},[isStaticRenderer,isVideoPlaying,onVideoEnd]);useEffect(()=>{if(isStaticRenderer)return;const allCurrentlyFalse=!isUpdating&&!isUpdatingProgress&&!isVariantUpdating;const prevHadTrueValue=prevStateRef.current.isUpdating||prevStateRef.current.isUpdatingProgress||prevStateRef.current.isVariantUpdating;if(allCurrentlyFalse&&prevHadTrueValue&&onAnimationComplete&&typeof onAnimationComplete===\"function\"){onAnimationComplete();}prevStateRef.current.isUpdating=isUpdating;prevStateRef.current.isUpdatingProgress=isUpdatingProgress;prevStateRef.current.isVariantUpdating=isVariantUpdating;},[isStaticRenderer,isUpdating,isUpdatingProgress,isVariantUpdating,onAnimationComplete]);return /*#__PURE__*/_jsx(\"div\",{ref:mountRef,style:{width:\"100%\",height:\"100%\",position:\"relative\",overflow:\"hidden\"}});};\nexport const __FramerMetadata__ = {\"exports\":{\"OGLScene\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","/*\n * Glass+ was created by Jayzhushi. Visit Reveals.cool to learn more.\n * For assistance, contact x.com/jayzhushi or email jayzhushi@gmail.com.\n * This component is licensed under the BSD License.\n */import{jsx as _jsx}from\"react/jsx-runtime\";import{ControlType,addPropertyControls,useReducedMotion}from\"framer\";import{CompatibleMedia,propertyControls,useMediaSource}from\"https://framerusercontent.com/modules/IWgT8yiaQB1ANE0NMqwg/8ayv1Nd0kqvJztnJf2dA/UseSetup.js\";import{OGLScene}from\"https://framerusercontent.com/modules/A3vJuy2yziwT5fff6nNt/M7oXh8bQkCNBrUIDFAsE/OGL.js\";/**\n *\n * @framerIntrinsicWidth 600\n * @framerIntrinsicHeight 800\n *\n * @framerDisableUnlink\n *\n * @framerSupportedLayoutWidth fixed\n * @framerSupportedLayoutHeight fixed\n *\n */function Glass({type,file,upImage,urlVideo,upVideo,defaultImage,dark,darkImage,loop,fit,stripeCount,stripeAngle,distortion,drift,advance,animateProp,transition,accessibility,ariaLabel,onLoad,onError,onVideoEnd,onAnimationComplete}){const{imageAlt,mediaSrc,mediaType}=useMediaSource(type,file,urlVideo,upVideo,defaultImage,darkImage,dark,\"flower_dark\");const shouldReduceMotion=useReducedMotion();if(accessibility.compatibility||accessibility.reduce&&shouldReduceMotion){return /*#__PURE__*/_jsx(CompatibleMedia,{mediaType:mediaType,mediaSrc:mediaSrc,imageAlt:imageAlt,fit:fit,loop:loop});}return /*#__PURE__*/_jsx(OGLScene,{mediaType:mediaType,mediaSrc:mediaSrc,imageAlt:imageAlt,loop:loop,fit:fit,stripeCount:stripeCount,stripeAngle:stripeAngle,distortion:distortion,drift:drift,advance:advance,animateProp:animateProp,transitionProp:transition,accessibility:accessibility,ariaLabel:ariaLabel,onLoad:onLoad,onError:onError,onVideoEnd:onVideoEnd,onAnimationComplete:onAnimationComplete});}export default Glass;Glass.displayName=\"Glass+\";addPropertyControls(Glass,{...propertyControls.media,...propertyControls.size,stripeCount:{type:ControlType.Number,title:\"Stripe\",displayStepper:false,step:1,max:200,min:0,defaultValue:40},stripeAngle:{type:ControlType.Number,title:\"Angle\",displayStepper:false,step:1,max:360,min:0,unit:\"\\xb0\",defaultValue:0},distortion:{type:ControlType.Number,title:\"Distortion\",displayStepper:true,step:.1,max:1,min:0,defaultValue:.3},drift:{type:ControlType.Number,title:\"Drift\",displayStepper:true,step:.1,max:1,min:-1,defaultValue:.1},advance:{type:ControlType.Object,title:\"Advance\",buttonTitle:\"Advance\",icon:\"effect\",controls:{contortion:{type:ControlType.Number,title:\"Contortion\",displayStepper:false,step:.1,max:1,min:-1,defaultValue:-.5},disturbance:{type:ControlType.Number,title:\"Disturbance\",displayStepper:true,step:.1,max:1,min:0,defaultValue:0},offset:{type:ControlType.Number,title:\"Offset\",displayStepper:true,step:.1,max:1,min:-1,defaultValue:0},shadow:{type:ControlType.Number,title:\"Shadow\",displayStepper:true,step:.1,max:1,min:0,defaultValue:0,description:\"Affected by *Drift*.\"},dispersion:{type:ControlType.Number,title:\"Dispersion\",displayStepper:true,step:.1,max:1,min:0,defaultValue:.2,description:\"Affected by *Distortion/Drift*.\"},reflection:{type:ControlType.Number,title:\"Reflection\",displayStepper:true,step:.1,max:1,min:0,defaultValue:0,description:\"Affected by *Distortion/Drift*.\"},blendReflection:{type:ControlType.Boolean,title:\"Blend\",defaultValue:true,hidden(props){return props.reflection===0;}}}},animateProp:{type:ControlType.Object,title:\"Animation\",buttonTitle:\"Animation\",icon:\"interaction\",controls:{...propertyControls.animateControls,custom:{type:ControlType.Object,title:\"Custom\",buttonTitle:\"Custom\",icon:\"effect\",hidden(props){return props.type===\"disable\"||props.type===\"variant\";},controls:{enable:{type:ControlType.Boolean,title:\"Enable\",defaultValue:false,description:\"Customize the animation target value for each property.\"},stripeCount:{type:ControlType.Number,title:\"Stripe\",displayStepper:false,step:1,max:200,min:0,defaultValue:40,hidden(props){return!props.enable;}},stripeAngle:{type:ControlType.Number,title:\"Angle\",displayStepper:false,step:1,max:360,min:0,unit:\"\\xb0\",defaultValue:0,hidden(props){return!props.enable;}},distortion:{type:ControlType.Number,title:\"Distortion\",displayStepper:true,step:.1,max:1,min:0,defaultValue:0,hidden(props){return!props.enable;}},drift:{type:ControlType.Number,title:\"Drift\",displayStepper:true,step:.1,max:1,min:-1,defaultValue:.1,hidden(props){return!props.enable;}},contortion:{type:ControlType.Number,title:\"Contortion\",displayStepper:false,step:.1,max:1,min:-1,defaultValue:0,hidden(props){return!props.enable;}},disturbance:{type:ControlType.Number,title:\"Disturbance\",displayStepper:true,step:.1,max:1,min:0,defaultValue:0,hidden(props){return!props.enable;}},offset:{type:ControlType.Number,title:\"Offset\",displayStepper:true,step:.1,max:1,min:-1,defaultValue:0,hidden(props){return!props.enable;}},shadow:{type:ControlType.Number,title:\"Shadow\",displayStepper:true,step:.1,max:1,min:0,defaultValue:0,hidden(props){return!props.enable;}},dispersion:{type:ControlType.Number,title:\"Dispersion\",displayStepper:true,step:.1,max:1,min:0,defaultValue:0,hidden(props){return!props.enable;}},reflection:{type:ControlType.Number,title:\"Reflection\",displayStepper:true,step:.1,max:1,min:0,defaultValue:0,hidden(props){return!props.enable;}}}}}},transition:{type:ControlType.Transition,title:\"Transition\",defaultValue:{ease:\"linear\",duration:2}},...propertyControls.accessibility,...propertyControls.eventHandler});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"Glass\",\"slots\":[],\"annotations\":{\"framerSupportedLayoutWidth\":\"fixed\",\"framerIntrinsicWidth\":\"600\",\"framerSupportedLayoutHeight\":\"fixed\",\"framerDisableUnlink\":\"*\",\"framerIntrinsicHeight\":\"800\",\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./Glass.map","// Generated by Framer (3f060d6)\nexport default function metadata(params,activeLocale){return{breakpoints:[{hash:\"72rtr7\",mediaQuery:\"(min-width: 1200px)\"},{hash:\"1iylkk1\",mediaQuery:\"(min-width: 810px) and (max-width: 1199.98px)\"},{hash:\"19zr51v\",mediaQuery:\"(min-width: 390px) and (max-width: 809.98px)\"},{hash:\"66tbvu\",mediaQuery:\"(max-width: 389.98px)\"}],description:\"Pavlo Haidamak Coming Soon Blog\",elements:{},robots:\"max-image-preview:large\",serializationId:\"framer-F3ymk\",socialImage:\"https://framerusercontent.com/assets/NCaiWMvmQHKEgZqXIUc8HpxkGI.png\",title:\"Coming Soon Blog By Pavlo Haidamak\",viewport:\"width=device-width\"};}export const metadataVersion=1;\nexport const __FramerMetadata__ = {\"exports\":{\"metadataVersion\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"default\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","// Generated by Framer (3f060d6)\nimport{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{addFonts,ComponentViewportProvider,Container,cx,GeneratedComponentContext,getFonts,useComponentViewport,useCustomCursors,useHydratedBreakpointVariants,useIsOnFramerCanvas,useLocaleInfo,useMetadata,withCSS}from\"framer\";import{LayoutGroup,motion,MotionConfigContext}from\"framer-motion\";import*as React from\"react\";import{useRef}from\"react\";import Glass from\"https://framerusercontent.com/modules/ZTYxvWWzwxxfmK6WP2oy/mJaMxajssSkfURwz07Wa/Glass.js\";import metadataProvider from\"#framer/local/webPageMetadata/augiA20Il/augiA20Il.js\";const GlassFonts=getFonts(Glass);const breakpoints={gCbEl7OW3:\"(min-width: 810px) and (max-width: 1199.98px)\",uU4QPkvdd:\"(min-width: 390px) and (max-width: 809.98px)\",WQLkyLRf1:\"(min-width: 1200px)\",yFd3GMxz7:\"(max-width: 389.98px)\"};const isBrowser=()=>typeof document!==\"undefined\";export const queryParamNames=[];const serializationHash=\"framer-F3ymk\";const variantClassNames={gCbEl7OW3:\"framer-v-1iylkk1\",uU4QPkvdd:\"framer-v-19zr51v\",WQLkyLRf1:\"framer-v-72rtr7\",yFd3GMxz7:\"framer-v-66tbvu\"};const getRootLayoutProp=(hasLayoutTemplate,hasInheritedFlowEffect,fallback)=>{if(!hasLayoutTemplate)return fallback;return hasInheritedFlowEffect?\"position\":fallback;};const addImageAlt=(image,alt)=>{if(!image||typeof image!==\"object\"){return;}return{...image,alt};};const humanReadableVariantMap={\"Phone 320\":\"yFd3GMxz7\",Desktop:\"WQLkyLRf1\",Phone:\"uU4QPkvdd\",Tablet:\"gCbEl7OW3\"};const HTMLStyle=({value})=>{const onCanvas=useIsOnFramerCanvas();if(onCanvas)return null;return /*#__PURE__*/_jsx(\"style\",{dangerouslySetInnerHTML:{__html:value},\"data-framer-html-style\":\"\"});};const getProps=({height,id,width,...props})=>{return{...props,variant:humanReadableVariantMap[props.variant]??props.variant??\"WQLkyLRf1\"};};const Component=/*#__PURE__*/React.forwardRef(function(props,ref){const fallbackRef=useRef(null);const refBinding=ref??fallbackRef;const defaultLayoutId=React.useId();const{activeLocale,setLocale}=useLocaleInfo();const componentViewport=useComponentViewport();const{style,className,layoutId,variant,...restProps}=getProps(props);const metadata=React.useMemo(()=>metadataProvider({},activeLocale),[activeLocale]);useMetadata(metadata);const[baseVariant,hydratedBaseVariant]=useHydratedBreakpointVariants(variant,breakpoints,false);const gestureVariant=undefined;const sharedStyleClassNames=[];const scopingClassNames=cx(serializationHash,...sharedStyleClassNames);const hasLayoutTemplate=React.useContext(GeneratedComponentContext)?.isLayoutTemplate;const hasInheritedFlowEffect=Boolean(React.useContext(MotionConfigContext)?.transition?.layout);const motionLayout=getRootLayoutProp(hasLayoutTemplate,hasInheritedFlowEffect);useCustomCursors({});return /*#__PURE__*/_jsx(GeneratedComponentContext.Provider,{value:{activeVariantId:baseVariant,humanReadableVariantMap,primaryVariantId:\"WQLkyLRf1\",variantClassNames},children:/*#__PURE__*/_jsxs(LayoutGroup,{id:layoutId??defaultLayoutId,children:[/*#__PURE__*/_jsx(HTMLStyle,{value:\"html body { background: rgb(255, 255, 255); }\"}),/*#__PURE__*/_jsx(motion.div,{...restProps,className:cx(scopingClassNames,\"framer-72rtr7\",className),ref:refBinding,style:{...style},children:/*#__PURE__*/_jsx(ComponentViewportProvider,{children:/*#__PURE__*/_jsx(Container,{className:\"framer-ku0elu-container\",isAuthoredByUser:true,isModuleExternal:true,layout:motionLayout,nodeId:\"yNAucWUxR\",scopeId:\"augiA20Il\",children:/*#__PURE__*/_jsx(Glass,{accessibility:{compatibility:false,enableAria:false,reduce:false,renderer:\"auto\"},advance:{blendReflection:true,contortion:-.5,dispersion:.2,disturbance:0,offset:0,reflection:0,shadow:0},animateProp:{amount:0,custom:{contortion:0,dispersion:0,distortion:0,disturbance:0,drift:.1,enable:false,offset:0,reflection:0,shadow:0,stripeAngle:0,stripeCount:40},replay:true,trigger:\"layer\",type:\"appear\",viewport:\"center\"},ariaLabel:\"\",defaultImage:addImageAlt({pixelHeight:680,pixelWidth:1800,src:\"https://framerusercontent.com/images/NCaiWMvmQHKEgZqXIUc8HpxkGI.png?width=1800&height=680\",srcSet:\"https://framerusercontent.com/images/NCaiWMvmQHKEgZqXIUc8HpxkGI.png?scale-down-to=512&width=1800&height=680 512w,https://framerusercontent.com/images/NCaiWMvmQHKEgZqXIUc8HpxkGI.png?scale-down-to=1024&width=1800&height=680 1024w,https://framerusercontent.com/images/NCaiWMvmQHKEgZqXIUc8HpxkGI.png?width=1800&height=680 1800w\"},\"\"),distortion:.3,drift:.1,file:\"url\",fit:\"cover\",height:\"100%\",id:\"yNAucWUxR\",layoutId:\"yNAucWUxR\",loop:true,stripeAngle:0,stripeCount:40,style:{height:\"100%\",width:\"100%\"},transition:{delay:0,duration:2,ease:[.44,0,.56,1],type:\"tween\"},type:\"image\",urlVideo:\"https://framerusercontent.com/assets/Jhocnrz23GM4PK1CT7mBiwAu5U.mp4\",width:\"100%\"})})})}),/*#__PURE__*/_jsx(\"div\",{id:\"overlay\"})]})});});const css=[\"@supports (aspect-ratio: 1) { body { --framer-aspect-ratio-supported: auto; } }\",\".framer-F3ymk.framer-lux5qc, .framer-F3ymk .framer-lux5qc { display: block; }\",\".framer-F3ymk.framer-72rtr7 { align-content: center; align-items: center; background-color: #ffffff; display: flex; flex-direction: column; flex-wrap: nowrap; gap: 0px; height: min-content; justify-content: flex-start; overflow: visible; padding: 0px 20px 0px 20px; position: relative; width: 1200px; }\",\".framer-F3ymk .framer-ku0elu-container { flex: none; height: 828px; position: relative; width: 1199px; }\",\"@media (min-width: 810px) and (max-width: 1199.98px) { .framer-F3ymk.framer-72rtr7 { width: 810px; } .framer-F3ymk .framer-ku0elu-container { width: 809px; }}\",\"@media (min-width: 390px) and (max-width: 809.98px) { .framer-F3ymk.framer-72rtr7 { width: 390px; } .framer-F3ymk .framer-ku0elu-container { width: 393px; }}\",\"@media (max-width: 389.98px) { .framer-F3ymk.framer-72rtr7 { overflow: var(--overflow-clip-fallback, clip); padding: 0px 16px 0px 16px; width: 320px; } .framer-F3ymk .framer-ku0elu-container { width: 320px; }}\"];/**\n * This is a generated Framer component.\n * @framerIntrinsicHeight 828\n * @framerIntrinsicWidth 1200\n * @framerCanvasComponentVariantDetails {\"propertyName\":\"variant\",\"data\":{\"default\":{\"layout\":[\"fixed\",\"auto\"]},\"gCbEl7OW3\":{\"layout\":[\"fixed\",\"auto\"]},\"uU4QPkvdd\":{\"layout\":[\"fixed\",\"auto\"]},\"yFd3GMxz7\":{\"layout\":[\"fixed\",\"auto\"]}}}\n * @framerImmutableVariables true\n * @framerDisplayContentsDiv false\n * @framerAutoSizeImages true\n * @framerComponentViewportWidth true\n * @framerColorSyntax true\n * @framerAcceptsLayoutTemplate true\n * @framerScrollSections false\n * @framerResponsiveScreen true\n * @framerLayoutTemplateFlowEffect true\n */const FrameraugiA20Il=withCSS(Component,css,\"framer-F3ymk\");export default FrameraugiA20Il;FrameraugiA20Il.displayName=\"Home\";FrameraugiA20Il.defaultProps={height:828,width:1200};addFonts(FrameraugiA20Il,[{explicitInter:true,fonts:[]},...GlassFonts],{supportsExplicitInterCodegen:true});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"FrameraugiA20Il\",\"slots\":[],\"annotations\":{\"framerLayoutTemplateFlowEffect\":\"true\",\"framerContractVersion\":\"1\",\"framerComponentViewportWidth\":\"true\",\"framerImmutableVariables\":\"true\",\"framerIntrinsicHeight\":\"828\",\"framerColorSyntax\":\"true\",\"framerResponsiveScreen\":\"true\",\"framerDisplayContentsDiv\":\"false\",\"framerAcceptsLayoutTemplate\":\"true\",\"framerScrollSections\":\"false\",\"framerAutoSizeImages\":\"true\",\"framerCanvasComponentVariantDetails\":\"{\\\"propertyName\\\":\\\"variant\\\",\\\"data\\\":{\\\"default\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"auto\\\"]},\\\"gCbEl7OW3\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"auto\\\"]},\\\"uU4QPkvdd\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"auto\\\"]},\\\"yFd3GMxz7\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"auto\\\"]}}}\",\"framerIntrinsicWidth\":\"1200\"}},\"queryParamNames\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"Props\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","// Generated by Framer (6819acd)\nconst snippets=[];const queryLoaders={};export const snippetsSorting={bodyEnd:[],bodyStart:[],headEnd:[],headStart:[]};export async function getSnippets(pageId,pathVariables,activeLocale){const queryLoader=queryLoaders[pageId];const params=queryLoader?await queryLoader(pathVariables,activeLocale):undefined;const result={bodyEnd:[],bodyStart:[],headEnd:[],headStart:[]};for(const snippet of snippets){if(snippet.pageIds&&!snippet.pageIds.has(pageId))continue;const code=snippet.code(params);if(code){result[snippet.placement].push({...snippet,code});}}return result;}\nexport const __FramerMetadata__ = {\"exports\":{\"snippetsSorting\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"getSnippets\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","import{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import*as React from\"react\";import{withCSS}from\"framer\";const NotFoundPage=()=>{React.useEffect(()=>{let robotsTag=document.querySelector('meta[name=\"robots\"]');if(robotsTag){robotsTag.setAttribute(\"content\",\"noindex\");}else{robotsTag=document.createElement(\"meta\");robotsTag.setAttribute(\"name\",\"robots\");robotsTag.setAttribute(\"content\",\"noindex\");document.head.appendChild(robotsTag);}},[]);return /*#__PURE__*/_jsx(\"div\",{className:\"__framer-not-found-page\",style:{display:\"flex\",height:\"100vh\",alignItems:\"center\",justifyContent:\"center\",backgroundColor:\"var(--color-primary)\",background:\"var(--color-background)\",fontSize:\"var(--font-size-body)\",boxSizing:\"border-box\",fontFeatureSettings:'\"liga\", \"clig\"',fontVariantLigatures:\"common-ligatures\",textRendering:\"optimizeLegibility\"},children:/*#__PURE__*/_jsxs(\"main\",{style:{boxSizing:\"border-box\",fontFamily:'\"Inter\", sans-serif',fontWeight:500,maxWidth:\"240px\",width:\"100%\",display:\"flex\",alignItems:\"center\",flexDirection:\"column\",padding:\"0 20px\",textWrap:\"balance\"},children:[/*#__PURE__*/_jsx(\"svg\",{xmlns:\"http://www.w3.org/2000/svg\",width:\"14\",height:\"21\",style:{verticalAlign:\"middle\",color:\"var(--color-primary)\",marginBottom:\"20px\"},children:/*#__PURE__*/_jsx(\"path\",{d:\"M 14 0 L 14 7 L 7 7 L 0 0 Z M 14 14 L 7 14 L 7 21 L 0 14 L 0 7 L 7 7 Z\",fill:\"currentColor\"})}),/*#__PURE__*/_jsx(\"h1\",{style:{margin:\"0 0 10px 0\",fontSize:\"var(--font-size-title)\",color:\"var(--color-primary)\",textAlign:\"center\"},children:\"Page Not Found\"}),/*#__PURE__*/_jsx(\"div\",{style:{color:\"var(--color-secondary)\",marginBottom:\"20px\",lineHeight:\"1.5em\",textAlign:\"center\"},children:\"The page you are looking for does not exist or may have been moved.\"}),/*#__PURE__*/_jsx(\"a\",{href:\"/\",role:\"button\",style:{backgroundColor:\"var(--color-tint)\",color:\"#ffffff\",paddingLeft:\"8px\",paddingRight:\"8px\",borderRadius:\"8px\",lineHeight:\"30px\",height:\"30px\",textDecoration:\"none\",verticalAlign:\"baseline\"},children:\"Back to Home\"})]})});};const css=[`@font-face {\n      font-family: Inter;\n      src: url(https://framerusercontent.com/assets/hyOgCu0Xnghbimh0pE8QTvtt2AU.woff2);\n      font-display: swap;\n      font-style: normal;\n      font-weight: 600;\n      unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F,\n        U+FE2E-FE2F;\n    }`,`@font-face {\n      font-family: Inter;\n      src: url(https://framerusercontent.com/assets/NeGmSOXrPBfEFIy5YZeHq17LEDA.woff2);\n      font-display: swap;\n      font-style: normal;\n      font-weight: 600;\n      unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;\n    }`,`@font-face {\n      font-family: Inter;\n      src: url(https://framerusercontent.com/assets/oYaAX5himiTPYuN8vLWnqBbfD2s.woff2);\n      font-display: swap;\n      font-style: normal;\n      font-weight: 600;\n      unicode-range: U+1F00-1FFF;\n    }`,`@font-face {\n      font-family: Inter;\n      src: url(https://framerusercontent.com/assets/lEJLP4R0yuCaMCjSXYHtJw72M.woff2);\n      font-display: swap;\n      font-style: normal;\n      font-weight: 600;\n      unicode-range: U+0370-03FF;\n    }`,`@font-face {\n      font-family: Inter;\n      src: url(https://framerusercontent.com/assets/cRJyLNuTJR5jbyKzGi33wU9cqIQ.woff2);\n      font-display: swap;\n      font-style: normal;\n      font-weight: 600;\n      unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB,\n        U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;\n    }`,`@font-face {\n      font-family: Inter;\n      src: url(https://framerusercontent.com/assets/1ZFS7N918ojhhd0nQWdj3jz4w.woff2);\n      font-display: swap;\n      font-style: normal;\n      font-weight: 600;\n      unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6,\n        U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193,\n        U+2212, U+2215, U+FEFF, U+FFFD;\n    }`,`@font-face {\n      font-family: Inter;\n      src: url(https://framerusercontent.com/assets/A0Wcc7NgXMjUuFdquHDrIZpzZw0.woff2);\n      font-display: swap;\n      font-style: normal;\n      font-weight: 600;\n      unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169,\n        U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB;\n    }`,`@font-face {\n      font-family: Inter;\n      src: url(https://framerusercontent.com/assets/5A3Ce6C9YYmCjpQx9M4inSaKU.woff2);\n      font-display: swap;\n      font-style: normal;\n      font-weight: 500;\n      unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F,\n        U+FE2E-FE2F;\n    }`,`@font-face {\n      font-family: Inter;\n      src: url(https://framerusercontent.com/assets/Qx95Xyt0Ka3SGhinnbXIGpEIyP4.woff2);\n      font-display: swap;\n      font-style: normal;\n      font-weight: 500;\n      unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;\n    }`,`@font-face {\n      font-family: Inter;\n      src: url(https://framerusercontent.com/assets/6mJuEAguuIuMog10gGvH5d3cl8.woff2);\n      font-display: swap;\n      font-style: normal;\n      font-weight: 500;\n      unicode-range: U+1F00-1FFF;\n    }`,`@font-face {\n      font-family: Inter;\n      src: url(https://framerusercontent.com/assets/xYYWaj7wCU5zSQH0eXvSaS19wo.woff2);\n      font-display: swap;\n      font-style: normal;\n      font-weight: 500;\n      unicode-range: U+0370-03FF;\n    }`,`@font-face {\n      font-family: Inter;\n      src: url(https://framerusercontent.com/assets/otTaNuNpVK4RbdlT7zDDdKvQBA.woff2);\n      font-display: swap;\n      font-style: normal;\n      font-weight: 500;\n      unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB,\n        U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;\n    }`,`@font-face {\n      font-family: Inter;\n      src: url(https://framerusercontent.com/assets/d3tHnaQIAeqiE5hGcRw4mmgWYU.woff2);\n      font-display: swap;\n      font-style: normal;\n      font-weight: 500;\n      unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6,\n        U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193,\n        U+2212, U+2215, U+FEFF, U+FFFD;\n    }`,`@font-face {\n      font-family: Inter;\n      src: url(https://framerusercontent.com/assets/DolVirEGb34pEXEp8t8FQBSK4.woff2);\n      font-display: swap;\n      font-style: normal;\n      font-weight: 500;\n      unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169,\n        U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB;\n    }`,`@font-face {\n      font-family: Inter Placeholder;\n      src: local(\"Arial\");\n      ascent-override: 89.79%;\n      descent-override: 22.36%;\n      line-gap-override: 0%;\n      size-adjust: 107.89%;\n    }`,`.__framer-not-found-page {\n      --color-background: #ffffff;\n      --color-primary: #333;\n      --color-secondary: #888;\n      --color-tint: #0099ff;\n      --font-size-body: 12px;\n      --font-size-title: 12px;\n    }`,`@media (prefers-color-scheme: dark) {\n      .__framer-not-found-page {\n        --color-background: #000000;\n        --color-primary: #fff;\n        --color-secondary: #888;\n      }\n    }`];const component=withCSS(NotFoundPage,css);export default component;\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"component\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./NotFoundPage.map","/*\n * NotFoundPage (framer/SitesNotFoundPage@1.4.0)\n *\n * Learn More: https://www.framer.com/asset-urls\n */\n\nexport * from \"https://framerusercontent.com/modules/7cPhjQw0EGNBHRZlzbhH/4hSO1fMoujYmMhk8FjXZ/NotFoundPage.js\"\nexport { default } from \"https://framerusercontent.com/modules/7cPhjQw0EGNBHRZlzbhH/4hSO1fMoujYmMhk8FjXZ/NotFoundPage.js\"\n"],"mappings":"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"}